diff options
Diffstat (limited to 'channels/chan_sip.c')
-rw-r--r-- | channels/chan_sip.c | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index b5ac72d59..81ea9e96e 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -15510,6 +15510,7 @@ struct ast_custom_function sippeer_function = { static int function_sipchaninfo_read(struct ast_channel *chan, const char *cmd, char *data, char *buf, size_t len) { struct sip_pvt *p; + static int deprecated = 0; *buf = 0; @@ -15525,6 +15526,11 @@ static int function_sipchaninfo_read(struct ast_channel *chan, const char *cmd, return -1; } + if (deprecated++ % 20 == 0) { + /* Deprecated in 1.6.1 */ + ast_log(LOG_WARNING, "SIPCHANINFO() is deprecated. Please transition to using CHANNEL().\n"); + } + p = chan->tech_pvt; /* If there is no private structure, this channel is no longer alive */ @@ -18524,7 +18530,25 @@ static int acf_channel_read(struct ast_channel *chan, const char *funcname, char memset(buf, 0, buflen); - if (!strcasecmp(args.param, "rtpdest")) { + if (!strcasecmp(args.param, "peerip")) { + ast_copy_string(buf, p->sa.sin_addr.s_addr ? ast_inet_ntoa(p->sa.sin_addr) : "", buflen); + } else if (!strcasecmp(args.param, "recvip")) { + ast_copy_string(buf, p->recv.sin_addr.s_addr ? ast_inet_ntoa(p->recv.sin_addr) : "", buflen); + } else if (!strcasecmp(args.param, "from")) { + ast_copy_string(buf, p->from, buflen); + } else if (!strcasecmp(args.param, "uri")) { + ast_copy_string(buf, p->uri, buflen); + } else if (!strcasecmp(args.param, "useragent")) { + ast_copy_string(buf, p->useragent, buflen); + } else if (!strcasecmp(args.param, "peername")) { + ast_copy_string(buf, p->peername, buflen); + } else if (!strcasecmp(args.param, "t38passthrough")) { + if (p->t38.state == T38_DISABLED) { + ast_copy_string(buf, "0", sizeof("0")); + } else { /* T38 is offered or enabled in this call */ + ast_copy_string(buf, "1", sizeof("1")); + } + } else if (!strcasecmp(args.param, "rtpdest")) { struct sockaddr_in sin; if (ast_strlen_zero(args.type)) |