From dba70c13408bac4a4648b8dc51792a35f0fd49d9 Mon Sep 17 00:00:00 2001 From: Mark Michelson Date: Mon, 30 Apr 2012 19:39:49 +0000 Subject: [PATCH] Revert improved identities sent in dialog-info NOTIFY requests in r360862 Revision 360862 was intended to improve identities sent in dialog-info NOTIFY requests. Some users reported that hint became broken once this was done. It's not clear exactly what part of the patch has caused this regression, but broken hints are bad. For now, this revision is being reverted so that the next releases of Asterisk do not have bad behavior in them. The original reported issue will have to be fixed differently in the next version of Asterisk. (issue ASTERISK-16735) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@364706 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- channels/chan_sip.c | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) diff --git a/channels/chan_sip.c b/channels/chan_sip.c index c758bcf9da..0f6d77cd49 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -12628,8 +12628,6 @@ static void state_notify_build_xml(int state, int full, const char *exten, const if ((state & AST_EXTENSION_RINGING) && sip_cfg.notifyringing) { const char *local_display = exten; char *local_target = ast_strdupa(mto); - const char *remote_display = exten; - char *remote_target = ast_strdupa(mfrom); /* There are some limitations to how this works. The primary one is that the callee must be dialing the same extension that is being monitored. Simply dialing @@ -12639,28 +12637,16 @@ static void state_notify_build_xml(int state, int full, const char *exten, const if ((caller = ast_channel_callback(find_calling_channel, NULL, p, 0))) { char *cid_num; - char *connected_num; int need; ast_channel_lock(caller); cid_num = S_COR(caller->caller.id.number.valid, caller->caller.id.number.str, ""); need = strlen(cid_num) + strlen(p->fromdomain) + sizeof("sip:@"); - remote_target = alloca(need); - snprintf(remote_target, need, "sip:%s@%s", cid_num, p->fromdomain); - - remote_display = ast_strdupa(S_COR(caller->caller.id.name.valid, - caller->caller.id.name.str, "")); - - connected_num = S_COR(caller->connected.id.number.valid, - caller->connected.id.number.str, ""); - need = strlen(connected_num) + strlen(p->fromdomain) + sizeof("sip:@"); local_target = alloca(need); - snprintf(local_target, need, "sip:%s@%s", connected_num, p->fromdomain); - - local_display = ast_strdupa(S_COR(caller->connected.id.name.valid, - caller->connected.id.name.str, "")); - + snprintf(local_target, need, "sip:%s@%s", cid_num, p->fromdomain); + local_display = ast_strdupa(S_COR(caller->caller.id.name.valid, + caller->caller.id.name.str, "")); ast_channel_unlock(caller); caller = ast_channel_unref(caller); } @@ -12682,10 +12668,10 @@ static void state_notify_build_xml(int state, int full, const char *exten, const "\n" "\n" "\n" - "%s\n" + "%s\n" "\n" "\n", - remote_display, remote_target, remote_target, local_display, local_target, local_target); + local_display, local_target, local_target, mto, mto); } else { ast_str_append(tmp, 0, "\n", exten); } -- 2.47.2