]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Merged revisions 282236 via svnmerge from
authorDavid Vossel <dvossel@digium.com>
Fri, 13 Aug 2010 18:58:49 +0000 (18:58 +0000)
committerDavid Vossel <dvossel@digium.com>
Fri, 13 Aug 2010 18:58:49 +0000 (18:58 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r282236 | dvossel | 2010-08-13 13:58:10 -0500 (Fri, 13 Aug 2010) | 23 lines

  Merged revisions 282235 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ........
    r282235 | dvossel | 2010-08-13 13:54:53 -0500 (Fri, 13 Aug 2010) | 16 lines

    only do magic pickup when notifycid is enabled

    A new way of doing BLF pickup was introduced into 1.6.2.  This feature
    adds a call-id value into the XML of a SIP_NOTIFY message sent to alert
    a subscriber that a device is ringing.  This option should only be enabled
    when the new 'notifycid' option is set... but this was not the case.  Instead
    the call-id value was included for every RINGING Notify message, which
    caused a regression for people who used other methods for call pickup.

    (closes issue #17633)
    Reported by: urosh
    Patches:
          chan_sip.txt uploaded by urosh (license )
          blf_cid_issue.diff uploaded by dvossel (license 671)
    Tested by: dvossel, urosh, okrief, alecdavis
  ........
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@282237 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_sip.c

index 07d414397c8812b4f028097c8a448c17c8b44764..e246819744a7d7a6cd9edd9967ca06a619466efa 100644 (file)
@@ -11663,23 +11663,26 @@ static void state_notify_build_xml(int state, int full, const char *exten, const
                                        ast_channel_unlock(caller);
                                        caller = ast_channel_unref(caller);
                                }
+
+                               /* We create a fake call-id which the phone will send back in an INVITE
+                                  Replaces header which we can grab and do some magic with. */
+                               ast_str_append(tmp, 0,
+                                               "<dialog id=\"%s\" call-id=\"pickup-%s\" direction=\"recipient\">\n"
+                                               "<remote>\n"
+                                               /* See the limitations of this above.  Luckily the phone seems to still be
+                                                  happy when these values are not correct. */
+                                               "<identity display=\"%s\">%s</identity>\n"
+                                               "<target uri=\"%s\"/>\n"
+                                               "</remote>\n"
+                                               "<local>\n"
+                                               "<identity>%s</identity>\n"
+                                               "<target uri=\"%s\"/>\n"
+                                               "</local>\n",
+                                               exten, p->callid, local_display, local_target, local_target, mto, mto);
+                       } else {
+                               ast_str_append(tmp, 0, "<dialog id=\"%s\" direction=\"recipient\">\n", exten);
                        }
 
-                       /* We create a fake call-id which the phone will send back in an INVITE
-                          Replaces header which we can grab and do some magic with. */
-                       ast_str_append(tmp, 0,
-                                       "<dialog id=\"%s\" call-id=\"pickup-%s\" direction=\"recipient\">\n"
-                                       "<remote>\n"
-                                       /* See the limitations of this above.  Luckily the phone seems to still be
-                                          happy when these values are not correct. */
-                                       "<identity display=\"%s\">%s</identity>\n"
-                                       "<target uri=\"%s\"/>\n"
-                                       "</remote>\n"
-                                       "<local>\n"
-                                       "<identity>%s</identity>\n"
-                                       "<target uri=\"%s\"/>\n"
-                                       "</local>\n",
-                                       exten, p->callid, local_display, local_target, local_target, mto, mto);
                } else {
                        ast_str_append(tmp, 0, "<dialog id=\"%s\">", exten);
                }