]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Update for certified/13.13-cert1-rc1 certified/13.13-cert1-rc1
authorKevin Harwell <kharwell@digium.com>
Wed, 23 Nov 2016 21:58:56 +0000 (16:58 -0500)
committerKevin Harwell <kharwell@digium.com>
Wed, 23 Nov 2016 21:58:56 +0000 (16:58 -0500)
.lastclean [new file with mode: 0644]
.version
ChangeLog
asterisk-13.13.0-summary.html [deleted file]
asterisk-13.13.0-summary.txt [deleted file]
asterisk-certified-13.13-cert1-rc1-summary.html [new file with mode: 0644]
asterisk-certified-13.13-cert1-rc1-summary.txt [new file with mode: 0644]

diff --git a/.lastclean b/.lastclean
new file mode 100644 (file)
index 0000000..425151f
--- /dev/null
@@ -0,0 +1 @@
+40
index 3ef73ef599f632f590392fb0f854772b70d27d92..2b6680f16e5b5c790850d1e049e21350c5b8630e 100644 (file)
--- a/.version
+++ b/.version
@@ -1 +1 @@
-certified/13.13
+certified/13.13-cert1-rc1
\ No newline at end of file
index dab185bb3efe42b9a12b4d8f235795be5e56f313..f083faf6430a97e465cc1fe642e8fcafbc785143 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,10 +1,32 @@
-2016-11-23 15:26 +0000  Asterisk Development Team <asteriskteam@digium.com>
+2016-11-23 21:58 +0000  Asterisk Development Team <asteriskteam@digium.com>
 
-       * asterisk 13.13.0 Released.
+       * asterisk certified/13.13-cert1-rc1 Released.
 
-2016-11-22 18:02 +0000  Asterisk Development Team <asteriskteam@digium.com>
+2016-11-23 15:20 +0000 [907160ee21]  Kevin Harwell <kharwell@digium.com>
 
-       * asterisk 13.13.0-rc2 Released.
+       * app_talkdectect: Now core supported, enable for cert
+
+         Change-Id: Ic0b2cacb21a6e11a25ebbff7e508e106ea156f6c
+
+2016-11-23 15:01 +0000 [0cd0495732]  Kevin Harwell <kharwell@digium.com>
+
+       * Disable extended support modules
+
+         Change-Id: Ib6b4f9451b5b68b738d8ab07a27de1c87c28f819
+
+2016-11-23 14:57 +0000 [854196eea9]  Kevin Harwell <kharwell@digium.com>
+
+       * .version: Update for certified/13.13
+
+         Change-Id: Ia1a0f035359d88b8885c7aca22f0d70b73aeb05d
+
+2016-11-23 09:26 +0000 [fdde690e0f]  Kevin Harwell <kharwell@digium.com>
+
+       * Update for 13.13.0
+
+2016-11-22 12:02 +0000 [f93e55d124]  Kevin Harwell <kharwell@digium.com>
+
+       * Update for 13.13.0-rc2
 
 2016-11-21 09:40 +0000 [e246b36a3c]  gtjoseph <gjoseph@digium.com>
 
@@ -23,9 +45,9 @@
 
        * Update for 13.13.0
 
-2016-11-18 18:59 +0000  Asterisk Development Team <asteriskteam@digium.com>
+2016-11-18 12:59 +0000 [751d43e8e4]  Joshua Colp <jcolp@digium.com>
 
-       * asterisk 13.13.0-rc1 Released.
+       * Update for 13.13.0-rc1
 
 2016-11-18 09:45 +0000 [cb624b10ae]  Mark Michelson <mmichelson@digium.com>
 
 
          Change-Id: I8079d515d6ea99f9ab320a7eaa71c2aaa101ccd5
 
+2016-10-17 11:39 +0000 [546ec4b038]  gtjoseph <gjoseph@digium.com>
+
+       * pjproject_bundled:  Add patch to address SSL crash
+
+         Addresses crashes when an attempt is made to operate on an SSL socket
+         after the socket has been closed.
+
+         ASTERISK-26477 #close
+
+         Change-Id: I421305b357558b4f9e690210dc0f4831ef4b3002
+
 2016-10-13 02:06 +0000 [644fad7477]  Moises Silva <moises.silva@gmail.com>
 
        * chan_rtp: Set a sane default rtp engine for unicast.
 
          Change-Id: Iaa6db87ca78a9a375e47d70e043ae08c1448cb72
 
-2016-10-13 14:09 +0000 [0306869399]  Leandro Dardini <ldardini@gmail.com>
-
-       * app_queue: Added initialization for "context" parameter
-
-         When using Asterisk Realtime Architecture, empty fields are skipped and the
-         default values are used. If the "context" parameter in queue was set and then
-         cleared from the database, the old value remains in memory and it continues
-         to be used. This change initialize the "context" parameter with an empty value,
-         allowing clearing the parameter.
-
-         ASTERISK-26462 #close
-
-         Change-Id: I64be73d5044ce38dd02408bd0e53de965ef65905
-
-2016-10-11 06:55 +0000 [a859bcb49c]  Alexander Traud <pabstraud@compuserve.com>
-
-       * chan_sip: Support nat=auto_comedia or nat=force_rport,auto_comedia.
-
-         In the SIP channel driver chan_sip, auto_comedia was expected to be used in
-         tandem with auto_force_rport. Or stated differently: Only when auto_force_rport
-         was chosen (the default), auto_comedia worked. This change allows auto_comedia
-         to be set independently of the state of (auto_)force_rport. For example,
-         nat=force_rport,auto_comedia is useful for IPv4/IPv6 Dual Stack deployments
-         when IPv6 clients are behind a Firewall.
-
-         ASTERISK-26457 #close
-
-         Change-Id: Ib29d66c6dbb61648e371e01fc36c6978ddae5bc2
-
-2016-10-17 19:08 +0000  Asterisk Development Team <asteriskteam@digium.com>
-
-       * asterisk 13.12.0-rc1 Released.
-
-2016-10-17 11:39 +0000 [546ec4b038]  gtjoseph <gjoseph@digium.com>
-
-       * pjproject_bundled:  Add patch to address SSL crash
-
-         Addresses crashes when an attempt is made to operate on an SSL socket
-         after the socket has been closed.
-
-         ASTERISK-26477 #close
-
-         Change-Id: I421305b357558b4f9e690210dc0f4831ef4b3002
-
 2016-10-15 04:58 +0000 [f1fd873df0]  Michael Kuron <m.kuron@gmx.de>
 
        * chan_sip: Only send video on outgoing channel if incoming channel supports it
 
          Change-Id: I782f4409d436114dbc97061c3570c0cd24f7c3ae
 
+2016-10-13 14:09 +0000 [0306869399]  Leandro Dardini <ldardini@gmail.com>
+
+       * app_queue: Added initialization for "context" parameter
+
+         When using Asterisk Realtime Architecture, empty fields are skipped and the
+         default values are used. If the "context" parameter in queue was set and then
+         cleared from the database, the old value remains in memory and it continues
+         to be used. This change initialize the "context" parameter with an empty value,
+         allowing clearing the parameter.
+
+         ASTERISK-26462 #close
+
+         Change-Id: I64be73d5044ce38dd02408bd0e53de965ef65905
+
 2016-10-14 00:18 +0000 [ce4cfd2eca]  Corey Farrell <git@cfware.com>
 
        * Fix issues with bundled pjproject cached download.
 
          Change-Id: I71742e0919aaa16784c30a2b2e73fbeed7672e47
 
+2016-10-11 06:55 +0000 [a859bcb49c]  Alexander Traud <pabstraud@compuserve.com>
+
+       * chan_sip: Support nat=auto_comedia or nat=force_rport,auto_comedia.
+
+         In the SIP channel driver chan_sip, auto_comedia was expected to be used in
+         tandem with auto_force_rport. Or stated differently: Only when auto_force_rport
+         was chosen (the default), auto_comedia worked. This change allows auto_comedia
+         to be set independently of the state of (auto_)force_rport. For example,
+         nat=force_rport,auto_comedia is useful for IPv4/IPv6 Dual Stack deployments
+         when IPv6 clients are behind a Firewall.
+
+         ASTERISK-26457 #close
+
+         Change-Id: Ib29d66c6dbb61648e371e01fc36c6978ddae5bc2
+
 2016-10-10 16:59 +0000 [a884b26392]  Badalyan Vyacheslav <v.badalyan@open-bs.ru>
 
        * vector: After remove element recheck index
 
          Change-Id: If229f656ef22050b50e7b34e90c4bffe796431f8
 
-2016-07-28 14:32 +0000  Asterisk Development Team <asteriskteam@digium.com>
-
-       * asterisk 13.11.0-rc1 Released.
-
-2016-07-28 09:29 +0000 [3bfaf6b172]  Mark Michelson <mmichelson@digium.com>
-
-       * Release summaries: Add summaries for 13.11.0-rc1
-
-2016-07-28 09:27 +0000 [ca145e1807]  Mark Michelson <mmichelson@digium.com>
-
-       * .version: Update for 13.11.0-rc1
-
-2016-07-28 09:27 +0000 [918ebf79ff]  Mark Michelson <mmichelson@digium.com>
-
-       * .lastclean: Update for 13.11.0-rc1
-
-2016-07-28 09:27 +0000 [d7afc1cf9d]  Mark Michelson <mmichelson@digium.com>
-
-       * realtime: Add database scripts for 13.11.0-rc1
-
 2016-07-21 22:28 +0000 [159e437e5a]  Richard Mudgett <rmudgett@digium.com>
 
        * dsp.c: Fix erroneous fax tone detection.
 
          Change-Id: I914c014385e1862102d90fe7650621def78db02e
 
-2016-06-02 17:26 +0000 [b3c787d1dd]  Alexei Gradinari <alex2grad@gmail.com>
-
-       * res_pjsip: improve realtime performance #2
-
-         The patch removes updating all Endpoints' status on startup.
-         Instead, only non-qualified aors with static contact
-         and non-qualified non-expired contacts are retrieved from the realtime to
-         update the endpoint status to ONLINE.
-         The endpoint name was added to the contact object to simply find the endpoint
-         that created this contact.
-
-         The status of endpoints with qualified aors will be updated by 'qualify'
-         functions.
-
-         ASTERISK-26061 #close
-
-         Change-Id: Id324c1776fa55d3741e0c5457ecac0304cb1a0df
-
-2016-06-23 13:47 +0000  Asterisk Development Team <asteriskteam@digium.com>
-
-       * asterisk 13.10.0-rc1 Released.
-
-2016-06-23 08:42 +0000 [62349ac1b4]  Mark Michelson <mmichelson@digium.com>
-
-       * Release summaries: Add summaries for 13.10.0-rc1
-
-2016-06-23 08:38 +0000 [8da6ba4328]  Mark Michelson <mmichelson@digium.com>
-
-       * .version: Update for 13.10.0-rc1
-
-2016-06-23 08:38 +0000 [170b85e3ae]  Mark Michelson <mmichelson@digium.com>
-
-       * .lastclean: Update for 13.10.0-rc1
-
-2016-06-23 08:38 +0000 [4af7049b8f]  Mark Michelson <mmichelson@digium.com>
-
-       * realtime: Add database scripts for 13.10.0-rc1
-
 2016-06-22 15:04 +0000 [3d904659ec]  Corey Farrell <git@cfware.com>
 
        * res_fax: Fix reference leak in fax_v21_session_new.
 
          Change-Id: I2ee64a999051452bc198c4e2c168c70769cd3757
 
+2016-06-02 17:26 +0000 [b3c787d1dd]  Alexei Gradinari <alex2grad@gmail.com>
+
+       * res_pjsip: improve realtime performance #2
+
+         The patch removes updating all Endpoints' status on startup.
+         Instead, only non-qualified aors with static contact
+         and non-qualified non-expired contacts are retrieved from the realtime to
+         update the endpoint status to ONLINE.
+         The endpoint name was added to the contact object to simply find the endpoint
+         that created this contact.
+
+         The status of endpoints with qualified aors will be updated by 'qualify'
+         functions.
+
+         ASTERISK-26061 #close
+
+         Change-Id: Id324c1776fa55d3741e0c5457ecac0304cb1a0df
+
 2016-06-21 06:52 +0000 [dfcd466bf0]  Torrey Searle <torrey@voxbone.com>
 
        * res_rtp_asterisk: fix memory leak in dtls
 
          Change-Id: I00be83d45cc7e8385de2523012bd196aafeeb256
 
+2016-04-22 17:53 +0000 [eb7c581806]  gtjoseph <gjoseph@digium.com>
+
+       * res_agi:  Prevent run_agi from eating frames it shouldn't
+
+         The run_agi function is eating control frames when it shouldn't be. This is
+         causing issues when an AGI is run from CONNECTED_LINE_SEND_SUB in a blond
+         transfer.
+
+         Alice calls Bob. Bob attended transfers to Charlie but hangs up before Charlie
+         answers.
+
+         Alice gets the COLP UPDATE indicating Charlie but Charlie never gets an UPDATE
+         and is left thinking he's connected to Bob.
+
+         In this case, when CONNECTED_LINE_SEND_SUB runs on Alice's channel and it calls
+         an AGI, the extra eaten frames prevent CONNECTED_LINE_SEND_SUB from running on
+         Charlie's channel.
+
+         The fix was to accumulate deferrable frames in the "forever" loop instead of
+         dropping them, and re-queue them just before running the actual agi command
+         or exiting.
+
+         ASTERISK-25951 #close
+
+         Change-Id: I0f4bbfd72fc1126c2aaba41da3233a33d0433645
+
 2016-04-22 15:25 +0000 [ebf0724a83]  Richard Mudgett <rmudgett@digium.com>
 
        * test_message.c: Wait longer in case dialplan also processes the test message.
 
          Change-Id: I97e2ade6a2bcd1214f24fb839fda948825b61a2b
 
-2016-03-17 12:28 +0000 [9740277713]  gtjoseph <george.joseph@fairview5.com>
+2016-04-22 13:49 +0000 [068ae54c76]  Mark Michelson <mmichelson@digium.com>
 
-       * res_pjsip:  Add serialized scheduler (res_pjsip/pjsip_scheduler.c)
+       * func_odbc: Use one connection per DSN.
 
-         There are several places that do scheduled tasks or periodic housecleaning,
-         each with its own implementation:
+         res_odbc was changed in Asterisk 13.8.0 to remove connection management,
+         opting instead to let unixodbc maintain open connections and return
+         those to Asterisk as requested.
 
-         * res_pjsip_keepalive has a thread that sends keepalives.
-         * pjsip_distributor has a thread that cleans up expired unidentified requests.
-         * res_pjsip_registrar_expire has a thread that cleans up expired contacts.
-         * res_pjsip_pubsub uses ast_sched directly and then calls ast_sip_push_task.
-         * res_pjsip_sdp_rtp also uses ast_sched to send keepalives.
+         This was a boon for realtime, since it meant that multiple threads could
+         potentially run parallel queries since they could each be using their
+         own database connections.
 
-         There are also places where we should be doing scheduled work but aren't.
-         A good example are the places we have sorcery observers to start registration
-         or qualify.  These don't work when changes are made to a backend database
-         without a pjsip reload.  We need to check periodically.
+         However, on the user-facing side, func_odbc, there were some inherent
+         behaviors being relied on that no longer hold true after the change.
+         One such reported behavior was that MySQL's LAST_INSERTED_ID() works
+         per-connection. This means that if Asterisk uses separate connections
+         for every database operation, whereas before it used one connection for
+         everything, we have broken expectations and functionality.
 
-         As a first step to solving these issues, a new ast_sip_sched facility has
-         been created.
+         The fix provided in this patch is to make func_odbc use a single
+         database connection per DSN. This way, user-facing database usage will
+         have the same behavior as it did pre-13.8.0. However, realtime, which is
+         the real workhorse of database interaction, will continue to let
+         unixodbc manage connections.
 
-         ast_sip_sched wraps ast_sched but only uses ast_sched as a scheduled queue.
-         When a task is ready to run, ast_sip_task_pusk is called for it. This ensures
-         that the task is executed in a PJLIB registered thread and doesn't hold up the
-         ast_sched thread so it can immediately continue processing the queue.  The
-         serializer used by ast_sip_sched is one of your choosing or a random one from
-         the res_pjsip pool if you don't choose one.
+         ASTERISK-25938 #close
+         Reported by Edwin Vandamme
 
-         Another feature is the ability to automatically clean up the task_data when the
-         task expires (if ever).  If it's an ao2 object, it will be dereferenced, if
-         it's a malloc'd object it will be freed.  This is selectable when the task is
-         scheduled.  Even if you choose to not auto dereference an ao2 task data object,
-         the scheduler itself maintains a reference to it while the task is under it's
-         control.  This prevents the data from disappearing out from under the task.
+         Change-Id: Iac961fe79154c6211569afcdfec843c0c24c46dc
 
-         There are two scheduling models.
+2016-04-22 13:02 +0000 [6aeefa89bc]  Leif Madsen <leif@leifmadsen.com>
 
-         AST_SIP_SCHED_TASK_PERIODIC specifies that the invocations of the task occur at
-         the specific interval.  That is, every "interval" milliseconds, regardless of
-         how long the task takes.  If the task takes longer than the interval, it will
-         be scheduled at the next available multiple of interval.  For exmaple: If the
-         task has an interval of 60 secs and the task takes 70 secs (it better not),
-         the next invocation will happen at 120 seconds.
+       * Remove reference to non-existent sip.conf option
 
-         AST_SIP_SCHED_TASK_DELAY specifies that the next invocation of the task should
-         start "interval" milliseconds after the current invocation has finished.
+         Option was removed in commit 7f883ef495b57ae9182e47213d01d5e8009dbf3f
 
-         Also, the same ast_sched facility for fixed or variable intervals exists.  The
-         task's return code in conjunction with the AST_SIP_SCHED_TASK_FIXED or
-         AST_SIP_SCHED_TASK_VARIABLE flags controls the next invocation start time.
+         ASTERISK-25927 #close
 
-         One res_pjsip.h housekeeping change was made.  The pjsip header files were
-         added to the top.  There have been a few cases lately where I've needed
-         res_pjsip.h just for ast_sip calls and had compiles fail spectacularly because
-         I didn't add the pjsip header files to my source even though I never referenced
-         any pjsip calls.
+         Change-Id: I92f9b0196d9fc41d1d58354c07340c465ef1fcf8
 
-         Finally, a few new convenience APIs were added to astobj2 to make things a
-         little easier in the scheduler.  ao2_ref_and_lock() calls ao2_ref() and
-         ao2_lock() in one go.  ao2_unlock_and_unref() does the reverse. A few macros
-         were also copied from res_phoneprov because I got tired of having to duplicate
-         the same hash, sort and compare functions over and over again. The
-         AO2_STRING_FIELD_(HASH|SORT|CMP)_FN macros will insert functions suitable for
-         aor_container_alloc into your source.
-
-         This facility can be used immediately for the situations where we already have
-         a thread that wakes up periodically or do some scheduled work.  For the
-         registration and qualify issues, additional sorcery and schema changes would
-         need to be made so that we can easily detect changed objects on a periodic
-         basis without having to pull the entire database back to check.  I'm thinking
-         of a last-updated timestamp on the rows but more on this later.
-
-         Change-Id: I7af6ad2b2d896ea68e478aa1ae201d6dd016ba1c
-
-2016-04-25 21:43 +0000  Asterisk Development Team <asteriskteam@digium.com>
-
-       * asterisk 13.9.0-rc1 Released.
-
-2016-04-25 16:42 +0000 [5237b7cd47]  Joshua Colp <jcolp@digium.com>
-
-       * Release summaries: Add summaries for 13.9.0-rc1
-
-2016-04-25 16:40 +0000 [5a3850ecba]  Joshua Colp <jcolp@digium.com>
-
-       * .version: Update for 13.9.0-rc1
-
-2016-04-25 16:40 +0000 [60b39040e4]  Joshua Colp <jcolp@digium.com>
-
-       * .lastclean: Update for 13.9.0-rc1
-
-2016-04-25 16:40 +0000 [5078454464]  Joshua Colp <jcolp@digium.com>
-
-       * realtime: Add database scripts for 13.9.0-rc1
-
-2016-04-22 17:53 +0000 [eb7c581806]  gtjoseph <gjoseph@digium.com>
-
-       * res_agi:  Prevent run_agi from eating frames it shouldn't
-
-         The run_agi function is eating control frames when it shouldn't be. This is
-         causing issues when an AGI is run from CONNECTED_LINE_SEND_SUB in a blond
-         transfer.
-
-         Alice calls Bob. Bob attended transfers to Charlie but hangs up before Charlie
-         answers.
-
-         Alice gets the COLP UPDATE indicating Charlie but Charlie never gets an UPDATE
-         and is left thinking he's connected to Bob.
-
-         In this case, when CONNECTED_LINE_SEND_SUB runs on Alice's channel and it calls
-         an AGI, the extra eaten frames prevent CONNECTED_LINE_SEND_SUB from running on
-         Charlie's channel.
-
-         The fix was to accumulate deferrable frames in the "forever" loop instead of
-         dropping them, and re-queue them just before running the actual agi command
-         or exiting.
-
-         ASTERISK-25951 #close
-
-         Change-Id: I0f4bbfd72fc1126c2aaba41da3233a33d0433645
-
-2016-04-22 13:49 +0000 [068ae54c76]  Mark Michelson <mmichelson@digium.com>
-
-       * func_odbc: Use one connection per DSN.
-
-         res_odbc was changed in Asterisk 13.8.0 to remove connection management,
-         opting instead to let unixodbc maintain open connections and return
-         those to Asterisk as requested.
-
-         This was a boon for realtime, since it meant that multiple threads could
-         potentially run parallel queries since they could each be using their
-         own database connections.
-
-         However, on the user-facing side, func_odbc, there were some inherent
-         behaviors being relied on that no longer hold true after the change.
-         One such reported behavior was that MySQL's LAST_INSERTED_ID() works
-         per-connection. This means that if Asterisk uses separate connections
-         for every database operation, whereas before it used one connection for
-         everything, we have broken expectations and functionality.
-
-         The fix provided in this patch is to make func_odbc use a single
-         database connection per DSN. This way, user-facing database usage will
-         have the same behavior as it did pre-13.8.0. However, realtime, which is
-         the real workhorse of database interaction, will continue to let
-         unixodbc manage connections.
-
-         ASTERISK-25938 #close
-         Reported by Edwin Vandamme
-
-         Change-Id: Iac961fe79154c6211569afcdfec843c0c24c46dc
-
-2016-04-22 13:02 +0000 [6aeefa89bc]  Leif Madsen <leif@leifmadsen.com>
-
-       * Remove reference to non-existent sip.conf option
-
-         Option was removed in commit 7f883ef495b57ae9182e47213d01d5e8009dbf3f
-
-         ASTERISK-25927 #close
-
-         Change-Id: I92f9b0196d9fc41d1d58354c07340c465ef1fcf8
-
-2016-04-21 08:26 +0000 [e750ea9b5b]  Diederik de Groot <dkgroot@talon.nl>
+2016-04-21 08:26 +0000 [e750ea9b5b]  Diederik de Groot <dkgroot@talon.nl>
 
        * lock.c: Check *lt before dereferencing it
 
 
          Change-Id: I5f7a37e2c80726a99afe9dc2a4a69bdedf661283
 
+2016-03-17 12:28 +0000 [9740277713]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip:  Add serialized scheduler (res_pjsip/pjsip_scheduler.c)
+
+         There are several places that do scheduled tasks or periodic housecleaning,
+         each with its own implementation:
+
+         * res_pjsip_keepalive has a thread that sends keepalives.
+         * pjsip_distributor has a thread that cleans up expired unidentified requests.
+         * res_pjsip_registrar_expire has a thread that cleans up expired contacts.
+         * res_pjsip_pubsub uses ast_sched directly and then calls ast_sip_push_task.
+         * res_pjsip_sdp_rtp also uses ast_sched to send keepalives.
+
+         There are also places where we should be doing scheduled work but aren't.
+         A good example are the places we have sorcery observers to start registration
+         or qualify.  These don't work when changes are made to a backend database
+         without a pjsip reload.  We need to check periodically.
+
+         As a first step to solving these issues, a new ast_sip_sched facility has
+         been created.
+
+         ast_sip_sched wraps ast_sched but only uses ast_sched as a scheduled queue.
+         When a task is ready to run, ast_sip_task_pusk is called for it. This ensures
+         that the task is executed in a PJLIB registered thread and doesn't hold up the
+         ast_sched thread so it can immediately continue processing the queue.  The
+         serializer used by ast_sip_sched is one of your choosing or a random one from
+         the res_pjsip pool if you don't choose one.
+
+         Another feature is the ability to automatically clean up the task_data when the
+         task expires (if ever).  If it's an ao2 object, it will be dereferenced, if
+         it's a malloc'd object it will be freed.  This is selectable when the task is
+         scheduled.  Even if you choose to not auto dereference an ao2 task data object,
+         the scheduler itself maintains a reference to it while the task is under it's
+         control.  This prevents the data from disappearing out from under the task.
+
+         There are two scheduling models.
+
+         AST_SIP_SCHED_TASK_PERIODIC specifies that the invocations of the task occur at
+         the specific interval.  That is, every "interval" milliseconds, regardless of
+         how long the task takes.  If the task takes longer than the interval, it will
+         be scheduled at the next available multiple of interval.  For exmaple: If the
+         task has an interval of 60 secs and the task takes 70 secs (it better not),
+         the next invocation will happen at 120 seconds.
+
+         AST_SIP_SCHED_TASK_DELAY specifies that the next invocation of the task should
+         start "interval" milliseconds after the current invocation has finished.
+
+         Also, the same ast_sched facility for fixed or variable intervals exists.  The
+         task's return code in conjunction with the AST_SIP_SCHED_TASK_FIXED or
+         AST_SIP_SCHED_TASK_VARIABLE flags controls the next invocation start time.
+
+         One res_pjsip.h housekeeping change was made.  The pjsip header files were
+         added to the top.  There have been a few cases lately where I've needed
+         res_pjsip.h just for ast_sip calls and had compiles fail spectacularly because
+         I didn't add the pjsip header files to my source even though I never referenced
+         any pjsip calls.
+
+         Finally, a few new convenience APIs were added to astobj2 to make things a
+         little easier in the scheduler.  ao2_ref_and_lock() calls ao2_ref() and
+         ao2_lock() in one go.  ao2_unlock_and_unref() does the reverse. A few macros
+         were also copied from res_phoneprov because I got tired of having to duplicate
+         the same hash, sort and compare functions over and over again. The
+         AO2_STRING_FIELD_(HASH|SORT|CMP)_FN macros will insert functions suitable for
+         aor_container_alloc into your source.
+
+         This facility can be used immediately for the situations where we already have
+         a thread that wakes up periodically or do some scheduled work.  For the
+         registration and qualify issues, additional sorcery and schema changes would
+         need to be made so that we can easily detect changed objects on a periodic
+         basis without having to pull the entire database back to check.  I'm thinking
+         of a last-updated timestamp on the rows but more on this later.
+
+         Change-Id: I7af6ad2b2d896ea68e478aa1ae201d6dd016ba1c
+
 2016-03-08 12:12 +0000 [7fb3724a77]  Mark Michelson <mmichelson@digium.com>
 
        * res_pjsip_transport_management: Kill idle TCP connections.
 
          Change-Id: If686b5d570473eb926693c73461177b35b13b186
 
-2016-04-20 10:46 +0000  Asterisk Development Team <asteriskteam@digium.com>
+2016-09-08 16:34 +0000  Asterisk Development Team <asteriskteam@digium.com>
 
-       * asterisk 13.8.2 Released.
+       * asterisk certified/13.8-cert3 Released.
 
-2016-04-20 05:45 +0000 [26d67ce885]  Joshua Colp <jcolp@digium.com>
+2016-09-08 11:34 +0000 [6cec20200b]  gtjoseph <gjoseph@digium.com>
 
        * Release summaries: Remove previous versions
 
-2016-04-20 05:45 +0000 [d9909232ed]  Joshua Colp <jcolp@digium.com>
+2016-09-08 11:34 +0000 [9c0f0eef6e]  gtjoseph <gjoseph@digium.com>
 
-       * .version: Update for 13.8.2
+       * .version: Update for certified/13.8-cert3
 
-2016-04-20 05:45 +0000 [fc57bb9b15]  Joshua Colp <jcolp@digium.com>
+2016-09-08 11:34 +0000 [3923b114b9]  gtjoseph <gjoseph@digium.com>
 
-       * .lastclean: Update for 13.8.2
+       * .lastclean: Update for certified/13.8-cert3
 
-2016-04-20 05:45 +0000 [ac04474f38]  Joshua Colp <jcolp@digium.com>
+2016-09-08 11:34 +0000 [83362b5590]  gtjoseph <gjoseph@digium.com>
 
-       * realtime: Add database scripts for 13.8.2
+       * realtime: Add database scripts for certified/13.8-cert3
 
-2016-04-18 17:00 +0000 [91a3e1184f]  Mark Michelson <mmichelson@digium.com>
+2016-08-23 06:35 +0000 [d947baa255]  Corey Farrell <git@cfware.com> (license 5909)
 
-       * res_pjsip_registrar: Fix bad memory-ness with user_agent.
+       * chan_sip: Don't allocate new RTP instances on top of old ones.
 
-         Recent changes to the PJSIP registrar resulted in tests failing due to
-         missing AOR_CONTACT_ADDED test events. The reason for this was that the
-         user_agent string had junk values in it, resulting in being unable to
-         generate the event.
+         In some scenarios dialog_initialize_rtp can be called multiple times on
+         the same dialog.  This can cause RTP instances to be leaked along with
+         multiple file descriptors for each instance.
 
-         I'm going to be honest here, I have no idea why this was happening. Here
-         are the steps needed for the user_agent variable to get messed up:
-         * REGISTER is received
-         * First contact in the REGISTER results in a contact being removed
-         * Second contact in the REGISTER results in a contact being added
-         * The contact, AOR, expiration, and user agent all have to be passed as
-           format parameters to the creation of a string. Any subset of those
-           parameters would not be enough to cause the problem.
+         This change makes it so the existing RTP instances are destroyed and
+         not overwritten, stopping the memory leak.
 
-         Looking into what was happening, the thing that struck me as odd was
-         that the user_agent variable was meant to be set to the value of the
-         User-Agent SIP header in the incoming REGISTER. However, when removing a
-         contact, the user_agent variable would be set (via ast_strdupa inside a
-         loop) to the stored contact's user_agent. This means that the
-         user_agent's value would be incorrect when attempting to process further
-         contacts in the incoming REGISTER.
+         ASTERISK-26272 #close
+         patches:
+           ASTERISK-26272-13.patch submitted by Corey Farrell (license 5909)
 
-         The fix here is to use a different variable for the stored user agent
-         when removing a contact. Correcting the behavior to be correct also
-         means the memory usage is less weird, and the issue no longer occurs.
+         Change-Id: Id529de1184c68f2f4d254ab41a1f458dafdb5f73
 
-         ASTERISK-25929 #close
-         Reported by Joshua Colp
+2016-08-10 15:14 +0000 [df9aa402a5]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I7cd24c86a38dec69ebcc94150614bc25f46b8c08
-         (cherry picked from commit f436b9ab111f1ff57c6dd3970051f123b42c1103)
+       * ConfBridge: Make some announcements asynchronous.
 
-2016-04-18 13:41 +0000 [70e25ced60]  Joshua Colp <jcolp@digium.com>
+         Confbridge announcements tend to block a channel while they are being
+         played. In some circumstances, this is warranted since you want that
+         particular channel not to hear the announcement (Example: "John Doe has
+         entered the conference"). For others it makes less sense.
 
-       * res_pjsip_transport_management: Allow unload to occur.
+         This change first introduces methods for playing sounds asynchronously
+         into the conference. This is very similar to how synchronous sounds are
+         played, except the channel initiating the playback does not wait for the
+         sound to complete before moving on.
 
-         At shutdown it is possible for modules to be unloaded that wouldn't
-         normally be unloaded. This allows the environment to be cleaned up.
+         Asynchronous announcements are used for two circumstances:
+         * Sounds played for a user after they have left the bridge
+         * Sounds that play first to a single user and then the rest of the
+           conference (if the channel and conference use the same language)
 
-         The res_pjsip_transport_management module did not have the unload
-         logic in it to clean itself up causing the res_pjsip module to not
-         get unloaded. As a result the res_pjsip monitor thread kept going
-         processing traffic and timers when it shouldn't.
+         ASTERISK-26289 #close
+         Reported by Mark Michelson
 
-         Change-Id: Ic8cadee131e3b2c436a81d3ae8bb5775999ae00a
-         (cherry picked from commit 49bfdc9ac029e0ef17cd8e85d8d7b7731387a34e)
+         Change-Id: Ie486bb3de1646d50894489030326a423e594ab0a
 
-2016-04-18 12:12 +0000 [856931edc2]  Mark Michelson <mmichelson@digium.com>
+2016-08-24 14:42 +0000 [b1e827d259]  gtjoseph <gjoseph@digium.com>
 
-       * PJSIP: Remove PJSIP parsing functions from uri length validation.
+       * res_rtp_multicast:  Fix SEGV in ast_multicast_rtp_create_options
 
-         The PJSIP parsing functions provide a nice concise way to check the
-         length of a hostname in a SIP URI. The problem is that in order to use
-         those parsing functions, it's required to use them from a thread that
-         has registered with PJLib.
+         ast_multicast_rtp_create_options now checks for NULL or empty options
 
-         On startup, when parsing AOR configuration, the permanent URI handler
-         may not be run from a PJLib-registered thread. Specifically, this could
-         happen when Asterisk was started in daemon mode rather than
-         console-mode. If PJProject were compiled with assertions enabled, then
-         this would cause Asterisk to crash on startup.
+         Change-Id: Ib845eae46a67a9787e89a87ebd1027344e5e0362
 
-         The solution presented here is to do our own parsing of the contact URI
-         in order to ensure that the hostname in the URI is not too long. The
-         parsing does not attempt to perform a full SIP URI parse/validation,
-         since the hostname in the URI is what is important.
+2016-08-10 15:14 +0000 [c218e038d7]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-25928 #close
-         Reported by Joshua Colp
+       * ConfBridge: Rework announcer channel methodology
 
-         Change-Id: Ic3d6c20ff3502507c17244a8b7e2ca761dc7fb60
-         (cherry picked from commit efae187217750e322cd6167705a33f888b631427)
+         NOTE: This patch was submitted earlier and reverted because of a failing
+         test. The test has been patched so that it adjusts for the changes here,
+         so this is being resubmitted for review.
 
-2016-04-14 20:26 +0000  Asterisk Development Team <asteriskteam@digium.com>
+         One feature that confbridge has is the ability to play sounds to all
+         participants in the conference. Prior to this commit, the algorithm for
+         this was as follows:
 
-       * asterisk 13.8.1 Released.
+         * Grab the playback lock
+         * Push the conference announcer channel into the bridge
+         * Play back the sound
+         * Pull the conference announcer channel from the bridge
+         * Release the playback lock
 
-2016-04-14 15:26 +0000 [18e6f12e83]  Kevin Harwell <kharwell@digium.com>
+         The issue here is that the act of adding the playback channel to the
+         bridge and removing it for each announcement is expensive. Amongst the
+         expenses:
 
-       * Release summaries: Remove previous versions
-
-2016-04-14 15:26 +0000 [625c07711a]  Kevin Harwell <kharwell@digium.com>
-
-       * .version: Update for 13.8.1
+         * The announcer channel is imparted into the bridge, meaning a new
+           thread is spun up for each playback.
+         * When the announcer is added or removed from the bridge, it results
+           in the BRIDGEPEER channel variable being set on all channels in the
+           bridge. This requires keeping the bridge locked and locking each
+           individual channel in order to set it.
+         * There's also just the general overhead of adding the channel and
+           removing it from the bridge. The bridge potentially has to reconfigure
+           every single time
 
-2016-04-14 15:26 +0000 [584f1fb3c7]  Kevin Harwell <kharwell@digium.com>
+         With this commit, the paradigm for playing back announcements has
+         shifted.
 
-       * .lastclean: Update for 13.8.1
+         * The announcer channel is now added to the bridge when the conference
+           is allocated, and it is hung up when the conference is destroyed.
+         * A taskprocessor is used to queue playbacks onto the announcer channel.
+           This keeps the behavior from before where playbacks do not overlap.
+         * The announcer channel is no longer placed into the bridge as
+           departable. Since we are not constantly removing the channel from
+           the bridge, it is safe to add the channel using an independent thread
+           and simply hang the channel up when it is time for the conference to
+           be destroyed.
 
-2016-04-14 15:26 +0000 [1e37a63379]  Kevin Harwell <kharwell@digium.com>
+         The use of the taskprocessor for playbacks opens up the interesting
+         possibility of having asynchronous announcements played. In this commit,
+         however, the behavior is still exactly the same as it previously was.
 
-       * realtime: Add database scripts for 13.8.1
+         ASTERISK-26289
+         Reported by Mark Michelson
 
-2016-04-14 13:49 +0000 [dcf1b3c098]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: Ica9fa4907c2f3728cdd1cf0bc564ef4eb40754a0
 
-       * transport management: Register thread with PJProject.
+2016-08-23 05:53 +0000 [b82f0b7722]  Joshua Colp <jcolp@digium.com>
 
-         The scheduler thread that kills idle TCP connections was not registering
-         with PJProject properly and causing assertions if PJProject was built in
-         debug mode.
+       * Revert "ConfBridge: Rework announcer channel methodology"
 
-         This change registers the thread with PJProject the first time that the
-         scheduler callback executes.
+         This reverts commit 4ca730127ccdc895e4d9e32cb0828c27bf74817b.
 
-         AST-2016-005
+         Change-Id: I8886feb69ae2dbf521a8c0937792349b70db52b2
 
-         Change-Id: I5f7a37e2c80726a99afe9dc2a4a69bdedf661283
+2016-08-10 15:14 +0000 [4ca730127c]  Mark Michelson <mmichelson@digium.com>
 
-2016-03-08 12:12 +0000 [efafbb1319]  Mark Michelson <mmichelson@digium.com>
+       * ConfBridge: Rework announcer channel methodology
 
-       * res_pjsip_transport_management: Kill idle TCP connections.
+         One feature that confbridge has is the ability to play sounds to all
+         participants in the conference. Prior to this commit, the algorithm for
+         this was as follows:
 
-         "Idle" here means that someone connects to us and does not send a SIP
-         request. PJProject will not automatically time out such connections, so
-         it's up to Asterisk to do it instead.
+         * Grab the playback lock
+         * Push the conference announcer channel into the bridge
+         * Play back the sound
+         * Pull the conference announcer channel from the bridge
+         * Release the playback lock
 
-         When we receive an incoming TCP connection, we will start a timer
-         (equivalent to transaction timer D) waiting to receive an incoming
-         request. If we do not receive a request in that timeframe, then we will
-         shut down the TCP connection.
+         The issue here is that the act of adding the playback channel to the
+         bridge and removing it for each announcement is expensive. Amongst the
+         expenses:
 
-         ASTERISK-25796 #close
-         Reported by George Joseph
+         * The announcer channel is imparted into the bridge, meaning a new
+           thread is spun up for each playback.
+         * When the announcer is added or removed from the bridge, it results
+           in the BRIDGEPEER channel variable being set on all channels in the
+           bridge. This requires keeping the bridge locked and locking each
+           individual channel in order to set it.
+         * There's also just the general overhead of adding the channel and
+           removing it from the bridge. The bridge potentially has to reconfigure
+           every single time
 
-         AST-2016-005
+         With this commit, the paradigm for playing back announcements has
+         shifted.
 
-         Change-Id: I7b0d303e5d140d0ccaf2f7af562071e3d1130ac6
+         * The announcer channel is now added to the bridge when the conference
+           is allocated, and it is hung up when the conference is destroyed.
+         * A taskprocessor is used to queue playbacks onto the announcer channel.
+           This keeps the behavior from before where playbacks do not overlap.
+         * The announcer channel is no longer placed into the bridge as
+           departable. Since we are not constantly removing the channel from
+           the bridge, it is safe to add the channel using an independent thread
+           and simply hang the channel up when it is time for the conference to
+           be destroyed.
 
-2016-03-08 10:52 +0000 [159f639770]  Mark Michelson <mmichelson@digium.com>
+         The use of the taskprocessor for playbacks opens up the interesting
+         possibility of having asynchronous announcements played. In this commit,
+         however, the behavior is still exactly the same as it previously was.
 
-       * Rename res_pjsip_keepalive res_pjsip_transport_management
+         ASTERISK-26289
+         Reported by Mark Michelson
 
-         ASTERISK-25796
-         Reported by George Joseph
+         Change-Id: Ic5cd2c4b98a1eaa1715eb7a5b35d62f1a76d78a5
 
-         AST-2016-005
+2016-08-16 15:36 +0000 [f40c6874c6]  gtjoseph <gjoseph@digium.com>
 
-         Change-Id: Id322a05f927392293570599730050bc677d99433
+       * res_pjsip:  Add contact_user to endpoint
 
-2016-04-14 07:15 +0000 [c164ff004d]  Mark Michelson <mmichelson@digium.com>
+         contact_user, when specified on an endpoint, will override the user
+         portion of the Contact header on outgoing requests.
 
-       * AST-2016-004: Fix crash on REGISTER with long URI.
+         Change-Id: Icd4ebfda2f2e44d3ac749d0b4066630e988407d4
 
-         Due to some ignored return values, Asterisk could crash if processing an
-         incoming REGISTER whose contact URI was above a certain length.
+2016-08-09 12:07 +0000 [78a6da0885]  Kevin Harwell <kharwell@digium.com>
 
-         ASTERISK-25707 #close
-         Reported by George Joseph
+       * alembic/sqlalchemy: auto increment only allowed on a single column
 
-         Patches:
-               0001-res_pjsip-Validate-that-URIs-don-t-exceed-pjproject-.patch
+         The extensions table defined two columns (id and priority) as primary key
+         autoincrement columns. However only one is allowed when defining the primary
+         key.
 
-         AST-2016-004
+         This patch removes the autoincrement attribute from the priority column since
+         it does not need to be as such and really should not have been on there in the
+         first place.
 
-         Change-Id: I0ed3898fe7ab10121b76c8c79046692de3a1be55
+         This patch also removes 'context', 'exten', and 'priority' from the primary key
+         index and creates a new combined unique contraint index on them.
 
-2016-03-29 19:39 +0000  Asterisk Development Team <asteriskteam@digium.com>
+         ASTERISK-26183 #close
 
-       * asterisk 13.8.0 Released.
+         Change-Id: Ib9c712c612a4d7ec1edb0dcb77f1bae0905a470b
+         (cherry picked from commit f6ec94cca66addac71d566d6fa48188b407f26ba)
 
-2016-03-29 14:39 +0000 [0f885f0076]  Mark Michelson <mmichelson@digium.com>
+2016-08-15 13:27 +0000  Asterisk Development Team <asteriskteam@digium.com>
 
-       * Release summaries: Add summaries for 13.8.0
+       * asterisk certified/13.8-cert2 Released.
 
-2016-03-29 14:34 +0000 [a1fa37aebd]  Mark Michelson <mmichelson@digium.com>
+2016-08-15 08:27 +0000 [d7eec92332]  Joshua Colp <jcolp@digium.com>
 
        * Release summaries: Remove previous versions
 
-2016-03-29 14:34 +0000 [e7de5fd439]  Mark Michelson <mmichelson@digium.com>
-
-       * .version: Update for 13.8.0
+2016-08-15 08:27 +0000 [847b0d007d]  Joshua Colp <jcolp@digium.com>
 
-2016-03-29 14:34 +0000 [8baf813848]  Mark Michelson <mmichelson@digium.com>
+       * .version: Update for certified/13.8-cert2
 
-       * .lastclean: Update for 13.8.0
+2016-08-15 08:27 +0000 [bd8581cd52]  Joshua Colp <jcolp@digium.com>
 
-2016-03-29 14:34 +0000 [42469df205]  Mark Michelson <mmichelson@digium.com>
+       * .lastclean: Update for certified/13.8-cert2
 
-       * realtime: Add database scripts for 13.8.0
+2016-08-15 08:27 +0000 [628620c5ef]  Joshua Colp <jcolp@digium.com>
 
-2016-03-22 18:31 +0000  Asterisk Development Team <asteriskteam@digium.com>
+       * realtime: Add database scripts for certified/13.8-cert2
 
-       * asterisk 13.8.0-rc1 Released.
+2016-08-09 16:19 +0000 [13b950f4be]  Mark Michelson <mmichelson@digium.com>
 
-2016-03-22 13:26 +0000 [a698424678]  Mark Michelson <mmichelson@lunkwill>
+       * res_rtp_asterisk: Cache local RTCP address.
 
-       * Release summaries: Add summaries for 13.8.0-rc1
+         When an RTCP packet is sent or received, res_rtp_asterisk generates a
+         Stasis event that contains the RTCP report as well as the local and
+         remote addresses that the report pertains to.
 
-2016-03-22 13:21 +0000 [e395a0b973]  Mark Michelson <mmichelson@lunkwill>
+         The addresses are determined using ast_find_ourip(). For the local
+         address, this will typically result in a lookup of the hostname of the
+         server, and then a DNS lookup of that hostname. If you do not have the
+         host in /etc/hosts, then this results in a full DNS lookup, which can
+         potentially block for some time.
 
-       * .version: Update for 13.8.0-rc1
+         This is especially problematic when performing RTCP reads, since those
+         are done on the same thread responsible for reading and writing media.
 
-2016-03-22 13:21 +0000 [38a86b2dbf]  Mark Michelson <mmichelson@lunkwill>
+         This patch addresses the issue by performing a lookup of the local
+         address when RTCP is allocated. We then use this cached local address
+         for the Stasis events when necessary.
 
-       * .lastclean: Update for 13.8.0-rc1
+         ASTERISK-26280 #close
+         Reported by Mark Michelson
 
-2016-03-22 13:21 +0000 [e0c8c8bf4a]  Mark Michelson <mmichelson@lunkwill>
+         Change-Id: I3dd61882c2e57036f09f0c390cf38f7c87e9b556
 
-       * realtime: Add database scripts for 13.8.0-rc1
+2016-08-01 06:57 +0000 [acf021cdec]  Joshua Colp <jcolp@digium.com>
 
-2016-03-18 14:31 +0000 [6a40520fe9]  Kevin Harwell <kharwell@digium.com>
+       * ChangeLog: Updated for certified/13.8-cert2-rc1
 
-       * chan_pjsip: ref leak when checking direct_media_glare
+2016-08-01 06:57 +0000 [fba5cf4a00]  Joshua Colp <jcolp@digium.com>
 
-         Fix the reference leak introduced in the following commit:
+       * Release summaries: Add summaries for certified/13.8-cert2-rc1
 
-         9444ddadf8525d1ce66a1faf1db97f9f6c265ca4
+2016-08-01 06:57 +0000 [b2cc9b4879]  Joshua Colp <jcolp@digium.com>
 
-         ASTERISK-25849
+       * Release summaries: Remove previous versions
 
-         Change-Id: I5cfefd5ee6c1c3a1715c050330aaa10e4d2a5e85
-2016-03-16 12:37 +0000 [9444ddadf8]  Kevin Harwell <kharwell@digium.com>
+2016-08-01 06:57 +0000 [20e25657fa]  Joshua Colp <jcolp@digium.com>
 
-       * chan_pjsip: transfers with direct media reinvite has wrong address/port
+       * .version: Update for certified/13.8-cert2-rc1
 
-         During a transfer involving direct media a race occurs between when the
-         transferer channel is swapped out, initiating rtp changes/updates, and the
-         subsequent reinvites.
+2016-08-01 06:57 +0000 [08c26fba06]  Joshua Colp <jcolp@digium.com>
 
-         When Alice, after speaking with Charlie (Bob is on hold), connects Bob and
-         Charlie invites are sent to each in order to establish the call between them.
-         Bob is taken off hold and Charlie is told to have his media flow through
-         Asterisk. However, if before those invites go out the bridge updates Bob's
-         and/or Charlie's rtp information with direct media data (i.e. address, port)
-         then the invite(s) will contain the remote data in the SDP instead of the
-         Asterisk data.
+       * .lastclean: Update for certified/13.8-cert2-rc1
 
-         The race occurs in the native bridge glue code when updating the peer. The
-         direct_media_address can get set twice before sending out the first invite
-         during call connection. This can happen because the checking/setting of the
-         direct_media_address happened in one thread while the sending of the invite(s)
-         happened in another thread.
+2016-08-01 06:57 +0000 [b539479f10]  Joshua Colp <jcolp@digium.com>
 
-         This fix removes the race condition by moving the checking/setting of the
-         direct_media_address to be in the same thread as the sending of the invites(s).
-         This serializes the checking/setting and sending so they can no longer happen
-         out of order.
+       * realtime: Add database scripts for certified/13.8-cert2-rc1
 
-         ASTERISK-25849 #close
+2016-06-21 10:53 +0000 [164bfc8574]  Scott Griepentrog <scott@griepentrog.com>
 
-         Change-Id: Idfea590175e74f401929a601dba0c91ca1a7f873
+       * PJSIP: provide transport type with received messages
 
-2015-10-19 07:11 +0000 [88240f98d9]  Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+         The receipt of a SIP MESSAGE may occur over any transport including TCP
+         and TLS. When the message is received, the original URI is added to the
+         message in the field PJSIP_RECVADDR, but this is insufficient to ensure
+         a reply message can reach the originating endpoint. This patch adds the
+         PJSIP_TRANSPORT field populated with the transport type.
 
-       * install_prereq: Update repositories before install on Debian systems
+         ASTERISK-26132 #close
 
-         When to install packages the indexed local is more old of the
-         version of software on the repository they have been upgraded by security
-         update then get the package will give 404 not found.
+         Change-Id: I28c4b1e40d573a056c81deb213ecf53e968f725e
+         (cherry picked from commit 69d58a1e377938e5236f51200e222eb219739441)
 
-         The patch prevent by update local index to repository for aptitude before
-         install.
+2016-07-21 22:28 +0000 [7809034c0d]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25495 #close
+       * dsp.c: Fix erroneous fax tone detection.
 
-         Reporte by: Rodrigo Ramírez Norambuena
+         The Goertzel calculations get less accurate the lower the signal level
+         being worked with becomes because there is less resolution remaining.
+         If it is too low we can erroneously detect a tone where none really
+         exists.  The searched for fax frequencies not only need to be so much
+         stronger than the background noise they must also be a minimum strength.
 
-         Change-Id: I645959e553aac542805ced394cac2dca964051fa
-         (cherry picked from commit 88f3dbaec9509bfba8bc1de7799aa0dc65304bb5)
+         * Add needed minimum threshold test to tone_detect().
 
-2015-06-03 20:12 +0000 [efcf9a96db]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+         * Set TONE_THRESHOLD to allow low volume frequency spread detection.
 
-       * install_prereq: Check if is installed aptitude otherwise to install.
+         ASTERISK-26237 #close
+         Reported by: Richard Mudgett
 
-         If in Debian or system based, dont have aptitude installed the script do
-         nothing. This patch checked if aptitude  installed, if not installed.
+         Change-Id: I84dbba7f7628fa13720add6a88eae3b129e066fc
 
-         Also, if execute script with all packages installed yet, the script not show
-         nothing and return exit 1 because the command 'grep' get nothing from pipe from
-         'awk'.
+2016-07-21 09:05 +0000 [5bc48a290b]  gtjoseph <gjoseph@digium.com>
 
-         ASTERISK-25113 #close
-         Reported By: Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+       * chan_sip: Prevent deadlock when issuing "sip show channels"
 
-         Change-Id: Iebdff55805d3917166e5e08e0a1e2176f36ff27f
-         (cherry picked from commit 6737ded0581a9e1256bdfe30c1d747e7ca93f8b3)
+         sip_show_channels locks the dialogs container first then locks each
+         sip_pvt so it can spit out the details.  The rest of sip dialog
+         processing locks the sip_pvt first then locks the dialogs container
+         if it needs to.  Both lock in the order they need but deadlocks can
+         result.  To fix, sip_show_channels and sip_show_channelstats have
+         been converted to use an iterator rather than ao2_callback.  This way
+         the container is locked only while getting the next entry and is
+         unlocked when the callback is called.
 
-2016-03-03 04:43 +0000 [2b1b8e382a]  Sergio Medina Toledo <lumasepa@gmail.com>
+         ASTERISK-23013 #close
 
-       * res_pjsip_refer.c: Fix seg fault in process of Refer-to header.
+         Change-Id: Id9980419909e811f89484950ed46ef117b9eb990
 
-         The "Refer-to" header of an incoming REFER request is parsed by
-         pjsip_parse_uri().  That function requires the URI parameter to be NULL
-         terminated.  Unfortunately, the previous code added the NULL terminator by
-         overwriting memory that may not be safe.  The overwritten memory results
-         could be benign, memory corruption, or a segmentation fault.  Now the URI
-         is NULL terminated safely by copying the URI to a new chunk of memory with
-         the correct size to be NULL terminated.
+2016-07-12 17:24 +0000 [49defa5578]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25814 #close
+       * res_fax: Fix FAXOPT(faxdetect) timeout option.
 
-         Change-Id: I32565496684a5a49c3278fce06474b8c94b37342
+         The fax detection timeout option did not work because basically the wrong
+         variable was checked in fax_detect_framehook().  As a result, the timer
+         would timeout immediately and disable fax detection.
 
-2016-03-11 12:22 +0000 [de04308ae4]  Richard Mudgett <rmudgett@digium.com>
+         * Fixed ignoring negative timeout values.  We'd complain and then go right
+         on using the negative value.
 
-       * chan_sip.c: Fix mwi resub deadlock potential.
+         * Fixed destroy_faxdetect() in the off-nominal case of an incomplete
+         object creation.
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+         * Added more range checking to FAXOPT(gateway) timeout parameter.
 
-         Stopping a scheduled event can result in a deadlock if the scheduled event
-         is running when you try to stop the event.  If you hold a lock needed by
-         the scheduled event while trying to stop the scheduled event then a
-         deadlock can happen.  The general strategy for resolving the deadlock
-         potential is to push the actual starting and stopping of the scheduled
-         events off onto the scheduler/do_monitor() thread by scheduling an
-         immediate one shot scheduled event.  Some restructuring may be needed
-         because the code may assume that the start/stop of the scheduled events is
-         immediate.
-
-         ASTERISK-25023 #close
+         ASTERISK-26214 #close
+         Reported by: Richard Mudgett
 
-         Change-Id: I96d429c57a48861fd8bde63dd93db4e92dc3adb6
+         Change-Id: Idc5e698dfe33572de9840bc68cd9fc043cbad976
 
-2016-03-10 17:01 +0000 [5f6627a8a4]  Richard Mudgett <rmudgett@digium.com>
+2016-07-18 16:16 +0000 [a0485fe851]  Richard Mudgett <rmudgett@digium.com>
 
-       * chan_sip.c: Fix registration timeout and expire deadlock potential.
+       * chan_dahdi: Add faxdetect_timeout option.
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+         The new option allows the channel driver's faxdetect option to timeout on
+         a call after the specified number of seconds into a call.  The new feature
+         is disabled if the timeout is set to zero.  The option is disabled by
+         default.
 
-         Stopping a scheduled event can result in a deadlock if the scheduled event
-         is running when you try to stop the event.  If you hold a lock needed by
-         the scheduled event while trying to stop the scheduled event then a
-         deadlock can happen.  The general strategy for resolving the deadlock
-         potential is to push the actual starting and stopping of the scheduled
-         events off onto the scheduler/do_monitor() thread by scheduling an
-         immediate one shot scheduled event.  Some restructuring may be needed
-         because the code may assume that the start/stop of the scheduled events is
-         immediate.
+         * Don't clear dsp_features after passing them to the dsp code in
+         my_pri_ss7_open_media().  We should still remember them especially for the
+         new faxdetect_timeout option.
 
-         ASTERISK-25023
+         ASTERISK-26214
+         Reported by: Richard Mudgett
 
-         Change-Id: I2e40de89efc8ae6e8850771d089ca44bc604b508
+         Change-Id: Ieffd3fe788788d56282844774365546dce8ac810
 
-2016-03-10 12:17 +0000 [32bd7a64f9]  Richard Mudgett <rmudgett@digium.com>
+2016-07-15 20:44 +0000 [d172104e12]  Richard Mudgett <rmudgett@digium.com>
 
-       * chan_sip.c: Fix t38id deadlock potential.
+       * res_pjsip: Add fax_detect_timeout endpoint option.
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+         The new endpoint option allows the PJSIP channel driver's fax_detect
+         endpoint option to timeout on a call after the specified number of
+         seconds into a call.  The new feature is disabled if the timeout is set
+         to zero.  The option is disabled by default.
 
-         Stopping a scheduled event can result in a deadlock if the scheduled event
-         is running when you try to stop the event.  If you hold a lock needed by
-         the scheduled event while trying to stop the scheduled event then a
-         deadlock can happen.  The general strategy for resolving the deadlock
-         potential is to push the actual starting and stopping of the scheduled
-         events off onto the scheduler/do_monitor() thread by scheduling an
-         immediate one shot scheduled event.  Some restructuring may be needed
-         because the code may assume that the start/stop of the scheduled events is
-         immediate.
+         ASTERISK-26214
+         Reported by: Richard Mudgett
 
-         ASTERISK-25023
+         Change-Id: Id5a87375fb2c4f9dc1d4b44c78ec8735ba65453d
 
-         Change-Id: If595e4456cd059d7171880c7f354e844c21b5f5f
+2016-07-13 14:09 +0000  Asterisk Development Team <asteriskteam@digium.com>
 
-2016-03-09 16:34 +0000 [43556b800b]  Richard Mudgett <rmudgett@digium.com>
+       * asterisk certified/13.8-cert1 Released.
 
-       * chan_sip.c: Fix reinviteid deadlock potential.
+2016-07-13 08:34 +0000 [482561f1e3]  Joshua Colp <jcolp@digium.com>
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+       * Release summaries: Remove previous versions
 
-         Stopping a scheduled event can result in a deadlock if the scheduled event
-         is running when you try to stop the event.  If you hold a lock needed by
-         the scheduled event while trying to stop the scheduled event then a
-         deadlock can happen.  The general strategy for resolving the deadlock
-         potential is to push the actual starting and stopping of the scheduled
-         events off onto the scheduler/do_monitor() thread by scheduling an
-         immediate one shot scheduled event.  Some restructuring may be needed
-         because the code may assume that the start/stop of the scheduled events is
-         immediate.
+2016-07-13 08:34 +0000 [3cb116d75a]  Joshua Colp <jcolp@digium.com>
 
-         ASTERISK-25023
+       * .version: Update for certified/13.8-cert1
 
-         Change-Id: I9c11b9d597468f63916c99e1dabff9f4a46f84c1
+2016-07-13 08:34 +0000 [797d39c81c]  Joshua Colp <jcolp@digium.com>
 
-2016-03-09 16:32 +0000 [38c1cdab2c]  Richard Mudgett <rmudgett@digium.com>
+       * .lastclean: Update for certified/13.8-cert1
 
-       * chan_sip.c: Fix packet retransid deadlock potential.
+2016-07-13 08:34 +0000 [f5fbfe9a6a]  Joshua Colp <jcolp@digium.com>
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+       * realtime: Add database scripts for certified/13.8-cert1
 
-         Stopping a scheduled event can result in a deadlock if the scheduled event
-         is running when you try to stop the event.  If you hold a lock needed by
-         the scheduled event while trying to stop the scheduled event then a
-         deadlock can happen.  The general strategy for resolving the deadlock
-         potential is to push the actual starting and stopping of the scheduled
-         events off onto the scheduler/do_monitor() thread by scheduling an
-         immediate one shot scheduled event.  Some restructuring may be needed
-         because the code may assume that the start/stop of the scheduled events is
-         immediate.
+2016-07-07 10:38 +0000 [22a36e5b10]  Joshua Colp <jcolp@digium.com>
 
-         * Fix retrans_pkt() to call check_pendings() with both the owner channel
-         and the private objects locked as required.
+       * chan_sip/res_pjsip_t38: Handle a request to negotiate T.38 after it is enabled.
 
-         * Refactor dialog retransmission packet list to safely remove packet
-         nodes.  The list nodes are now ao2 objects.  The list has a ref and the
-         scheduled entry has a ref.
+         Some T.38 implementations may send another re-invite after the initial
+         one which adds additional negotiation details (such as the max bitrate).
+         Currently this will fail when passthrough is being done in chan_sip as we
+         do nothing if T.38 is already active.
 
-         ASTERISK-25023
+         Other handlers of T.38 inside of Asterisk (such as res_fax) handle this
+         scenario so this change adds support for it to chan_sip and res_pjsip_t38.
+         If a request to negotiate is received while T.38 is already enabled a
+         new re-INVITE is sent and negotiation is done again.
 
-         Change-Id: I50926d81be53f4cd3d572a3292cd25f563f59641
+         ASTERISK-26179 #close
 
-2016-03-09 16:26 +0000 [e4ad55c888]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I0298494d3da6df3219bbfa4be9aa04015043145c
 
-       * chan_sip.c: Fix waitid deadlock potential.
+2016-06-22 13:41 +0000 [d0c04c8986]  gtjoseph <gjoseph@digium.com>
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+       * res_rtp_asterisk:  Fix a self-comparison identified by gcc 6
 
-         Stopping a scheduled event can result in a deadlock if the scheduled event
-         is running when you try to stop the event.  If you hold a lock needed by
-         the scheduled event while trying to stop the scheduled event then a
-         deadlock can happen.  The general strategy for resolving the deadlock
-         potential is to push the actual starting and stopping of the scheduled
-         events off onto the scheduler/do_monitor() thread by scheduling an
-         immediate one shot scheduled event.  Some restructuring may be needed
-         because the code may assume that the start/stop of the scheduled events is
-         immediate.
+         gcc 6 caught a previously unidentified self-comparison in
+         ice_candidate_cmp.  Fixed it and re-ordered the predicates for better
+         short-circuiting.
 
-         * Made always run check_pendings() under the scheduler thread so scheduler
-         ids can be checked safely.
+         ASTERISK-26140 #close
 
-         ASTERISK-25023
+         Change-Id: I3da713c568e24064430257b3502fbdafd35af7a7
 
-         Change-Id: Ia834d6edd5bdb47c163e4ecf884428a4a8b17d52
+2016-06-30 08:25 +0000 [0d694ce9b8]  gtjoseph <gjoseph@digium.com>
 
-2016-03-08 15:08 +0000 [98d5669c28]  Richard Mudgett <rmudgett@digium.com>
+       * configure:  Fix HAVE_PJSIP_EVSUB_GRP_LOCK not set with external pjproject
 
-       * chan_sip.c: Fix session timers deadlock potential.
+         There was a typo in configure.ac preventing HAVE_PJSIP_EVSUB_GRP_LOCK
+         from getting set when using an external pjproject.
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+         ASTERISK-26099 #close
+         Reported-by: Ross Beer
 
-         Stopping a scheduled event can result in a deadlock if the scheduled event
-         is running when you try to stop the event.  If you hold a lock needed by
-         the scheduled event while trying to stop the scheduled event then a
-         deadlock can happen.  The general strategy for resolving the deadlock
-         potential is to push the actual starting and stopping of the scheduled
-         events off onto the scheduler/do_monitor() thread by scheduling an
-         immediate one shot scheduled event.  Some restructuring may be needed
-         because the code may assume that the start/stop of the scheduled events is
-         immediate.
+         Change-Id: I709af70428e125fb5ccd44b171d25dd29141f0ae
 
-         ASTERISK-25023
+2016-06-28 08:22 +0000 [5f444b1f5b]  gtjoseph <gjoseph@digium.com>
 
-         Change-Id: I6d65269151ba95e0d8fe4e9e611881cde2ab4900
+       * BuildSystem:  Fix a few issues hightlighted by gcc 6.x
 
-2016-03-07 13:21 +0000 [9cb8f73226]  Richard Mudgett <rmudgett@digium.com>
+         gcc 6.1.1 caught a few more issues.
+         Made sure the unit tests still pass for the func_env and stdtime
+         issues.
 
-       * chan_sip.c: Fix autokillid deadlock potential.
+         ASTERISK-26157 #close
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+         Change-Id: I6664d8f34a45bc1481d2a854481c7878b0c1cf8e
 
-         Stopping a scheduled event can result in a deadlock if the scheduled event
-         is running when you try to stop the event.  If you hold a lock needed by
-         the scheduled event while trying to stop the scheduled event then a
-         deadlock can happen.  The general strategy for resolving the deadlock
-         potential is to push the actual starting and stopping of the scheduled
-         events off onto the scheduler/do_monitor() thread by scheduling an
-         immediate one shot scheduled event.  Some restructuring may be needed
-         because the code may assume that the start/stop of the scheduled events is
-         immediate.
+2016-06-22 16:15 +0000 [f282a88ee4]  Mark Michelson <mmichelson@digium.com>
 
-         * Fix clearing autokillid in __sip_autodestruct() even though we could
-         reschedule.
+       * ChangeLog: Updated for certified/13.8-cert1-rc3
 
-         ASTERISK-25023
+2016-06-22 16:15 +0000 [bd6da93116]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I450580dbf26e2e3952ee6628c735b001565c368f
+       * Release summaries: Add summaries for certified/13.8-cert1-rc3
 
-2016-03-07 18:28 +0000 [c5c7f48a15]  Richard Mudgett <rmudgett@digium.com>
+2016-06-22 16:14 +0000 [4df81def29]  Mark Michelson <mmichelson@digium.com>
 
-       * chan_sip.c: Fix provisional_keepalive_sched_id deadlock.
+       * Release summaries: Remove previous versions
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+2016-06-22 16:14 +0000 [286d58affc]  Mark Michelson <mmichelson@digium.com>
 
-         Stopping a scheduled event can result in a deadlock if the scheduled event
-         is running when you try to stop the event.  If you hold a lock needed by
-         the scheduled event while trying to stop the scheduled event then a
-         deadlock can happen.  The general strategy for resolving the deadlock
-         potential is to push the actual starting and stopping of the scheduled
-         events off onto the scheduler/do_monitor() thread by scheduling an
-         immediate one shot scheduled event.  Some restructuring may be needed
-         because the code may assume that the start/stop of the scheduled events is
-         immediate.
+       * .version: Update for certified/13.8-cert1-rc3
 
-         ASTERISK-25023
+2016-06-22 16:14 +0000 [8b7fe94df7]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I98a694fd42bc81436c83aa92de03226e6e4e3f48
+       * .lastclean: Update for certified/13.8-cert1-rc3
 
-2016-03-09 11:22 +0000 [f959d84dfd]  Richard Mudgett <rmudgett@digium.com>
+2016-06-22 16:14 +0000 [0449fd2e1e]  Mark Michelson <mmichelson@digium.com>
 
-       * chan_sip.c: Adjust how dialog_unlink_all() stops scheduled events.
+       * realtime: Add database scripts for certified/13.8-cert1-rc3
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+2016-06-09 09:20 +0000 [a6610fbe2f]  gtjoseph <gjoseph@digium.com>
 
-         * Make dialog_unlink_all() unschedule all items at once in the sched
-         thread.
+       * build:  Fix ast_sockaddr initialization to be more portable
 
-         ASTERISK-25023
+         A change to glibc 2.22 changed the order of the sockadddr_storage
+         members which caused the places where we do an initialization of
+         ast_sockaddr with '{ { 0, 0, } }' to fail compilation.  Those
+         initializers (which we shouldn't have been using anyway) have been
+         replaced with memsets.
 
-         Change-Id: I7743072fb228836e8228b72f6dc46c8cc50b3fb4
+         Change-Id: Idd1b3b320903d8771bfe221f0b015685de628fa4
 
-2016-03-10 21:54 +0000 [5f3225ddcc]  Richard Mudgett <rmudgett@digium.com>
+2016-06-12 11:19 +0000 [102d88e791]  gtjoseph <gjoseph@digium.com>
 
-       * chan_sip.c: Clear scheduled immediate events on unload.
+       * res_pjsip_pubsub: Address SEGV when attempting to terminate a subscription
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+         Occasionally under load we'll attempt to send a final NOTIFY on a
+         subscription that's already been terminated and a SEGV will occur
+         down in pjproject's evsub_destroy function.  This is a result of a
+         race condition between all the paths that can generate a notify
+         and/or destroy the underlying pjproject evsub object:
 
-         The reordering of chan_sip's shutdown is to handle any immediate events
-         that get put onto the scheduler so resources aren't leaked.  The typical
-         immediate events at this time are going to be concerned with stopping
-         other scheduled events.
+          * The client can send a SUBSCRIBE with Expires: 0.
+          * The client can send a SUBSCRIBE/refresh.
+          * The subscription timer can expire.
+          * An extension state can change.
+          * An MWI event can be generated.
+          * The pjproject transaction timer (timer_b) can expire.
 
-         ASTERISK-25023
+         Normally when our pubsub_on_evsub_state is called with a terminate,
+         we push a task to the serializer and return at which point the dialog
+         is unlocked.  This is usually not a problem because the task runs
+         immediately and locks the dialog again.  When the system is heavily
+         loaded though, there may be a delay between the unlock and relock
+         during which another event may occur such as the subscription timer
+         or timer_b expiring, an extension state change, etc.  These may also
+         cause a terminate to be processed and if so, we could cause pjproject
+         to try to destroy the evsub structure twice.  There's no way for us to
+         tell that the evsub was already destroyed and the evsub's group lock
+         can't tolerate this and SEGVs.
 
-         Change-Id: I3f6540717634f6f2e84d8531a054976f2bbb9d20
+         The remedy is twofold.
 
-2016-03-15 14:51 +0000 [7a74971771]  Richard Mudgett <rmudgett@digium.com>
+          * A patch has been submitted to Teluu and added to the bundled
+            pjproject which adds add/decrement operations on evsub's group lock.
 
-       * sip/dialplan_functions.c: Fix /channels/chan_sip/test_sip_rtpqos crash.
+          * In res_pjsip_pubsub:
+            * configure.ac and pjproject-bundled's configure.m4 were updated
+              to check for the new evsub group lock APIs.
+            * We now add a reference to the evsub group lock when we create
+              the subscription and remove the reference when we clean up the
+              subscription.  This prevents evsub from being destroyed before
+              we're done with it.
+            * A state has been added to the subscription tree structure so
+              termination progress can be tracked through the asyncronous tasks.
+            * The pubsub_on_evsub_state callback has been split so it's not doing
+              double duty.  It now only handles the final cleanup of the
+              subscription tree.  pubsub_on_rx_refresh now handles both client
+              refreshes and client terminates.  It was always being called for
+              both anyway.
+            * The serialized_on_server_timeout task was removed since
+              serialized_pubsub_on_rx_refresh was almost identical.
+            * Missing state checks and ao2_cleanups were added.
+            * Some debug levels were adjusted to make seeing only off-nominal
+              things at level 1 and nominal or progress things at level 2+.
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+         ASTERISK-26099 #close
+         Reported-by: Ross Beer.
 
-         Delaying destruction of the chan_sip sip_pvt structures caused the
-         /channels/chan_sip/test_sip_rtpqos unit test to crash.  That test
-         registers a special test ast_rtp_engine with the rtp engine module.  When
-         the unit test completes it cleans up by unregistering the test
-         ast_rtp_engine and exits.  Since the delayed destruction of the sip_pvt
-         happens after the unit test returns, the destructor tries to call the rtp
-         engine destroy callback of the test ast_rtp_engine auto variable which no
-         longer exists on the stack.
+         Change-Id: I779d11802cf672a51392e62a74a1216596075ba1
 
-         * Change the test ast_rtp_engine auto variable to a static variable.  Now
-         the variable can still exist after the unit test exits so the delayed
-         sip_pvt destruction can complete successfully.
+2016-06-13 13:33 +0000 [d9ab222edc]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25023
+       * res_rtp_multicast.c: Fix warning message typo.
 
-         Change-Id: I61e34a12d425189ef7e96fc69ae14993f82f3f13
+         Change-Id: Ic9928208b9957e09866abe3d9649030942ec52b3
 
-2016-03-15 13:31 +0000 [d2c09ed73b]  Andrew Nagy <andrew.nagy@the159.com>
+2016-06-10 12:35 +0000 [39329a9e66]  Richard Mudgett <rmudgett@digium.com>
 
-       * app_stasis: Don't hang up if app is not registered
+       * chan_rtp: Backport changes from master.
 
-         This prevents pbx_core from hanging up the channel if the app isn't
-         registered.
+         * Deprecate chan_multicast_rtp.
 
-         ASTERISK-25846 #close
+         Change-Id: Ib5a45e58c75ee8abd0b4f9575379b5321feb853e
 
-         Change-Id: I63216a61f30706d5362bc0906b50b6f0544aebce
-2016-03-07 15:50 +0000 [b2d2906445]  Richard Mudgett <rmudgett@digium.com>
+2016-06-10 16:13 +0000 [6d45341963]  Richard Mudgett <rmudgett@digium.com>
 
-       * sched.c: Ensure oldest expiring entry runs first.
+       * chan_rtp.c: Copy file from chan_multicast_rtp.c
 
-         This patch is part of a series to resolve deadlocks in chan_sip.c.
+         Change-Id: I1119b53f2152ab1cbec74b5be7ea44844dbda8ef
 
-         * Updated sched unit test to check new behavior.
+2016-06-03 22:44 +0000 [0322479ff7]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25023
+       * res_pjsip_registrar.c: Eliminate rx REGISTER request race condition.
 
-         Change-Id: Ib69437327b3cda5e14c4238d9ff91b2531b34ef3
+         This patch fixes a race condition processing received REGISTER requests
+         and their retransmissions caused by REGISTER requests being processed by
+         two threads.  The "sip_transaction Unable to register REGISTER transaction
+         (key exists)" message is a notable symptom of this issue.
 
-2016-03-04 18:25 +0000 [9ae21b510f]  Richard Mudgett <rmudgett@digium.com>
+         This issue was more likely to happen before the pjsip/distributor
+         serializers were created.  Instead of steps one and two below placing the
+         REGISTER messages into the same pjsip/distributor they were placed in
+         random pjsip/default serializers.
 
-       * chan_sip.c: Made sip_reinvite_retry() call sip_pvt_lock_full().
+         1) REGISTER requests come in and get placed on the pjsip/distributor
+         serializer.
 
-         Change-Id: I90f04208a089f95488a2460185a8dbc3f6acca12
+         2) Before the first request is processed a retransmission comes in and is
+         placed on the same pjsip/distributor serializer.
 
-2016-03-07 18:56 +0000 [56bcb97a3c]  Richard Mudgett <rmudgett@digium.com>
+         3) The first request goes up the pjsip stack and is then shunted off to
+         the pjsip/aor/<aor> serializer.
 
-       * chan_sip.c: Simplify sip_pvt destructor call levels.
+         4) Before the first request is completed processing in the pjsip/aor/<aor>
+         serializer, the second request goes up the pjsip stack and is also shunted
+         off to the pjsip/aor/<aor> serializer.
 
-         Remove destructor calling destroy_it calling really_destroy_it
-         for no benefit.  Just make the destructor the really_destroy_it
-         function.
+         5) The first request completes processing and sends out its response.
 
-         Change-Id: Idea0d47b27dd74f2488db75bcc7f353d8fdc614a
+         6) The second request completes processing and tries to send out its
+         response but pjlib complains that the REGISTER transaction key already
+         exists.
 
-2016-03-14 08:59 +0000 [677a65fcbb]  Joshua Colp <jcolp@digium.com>
+         7) Sadness ensues.
 
-       * build: Add configure check for proto field of PJSIP TLS transport setting.
+         * The race is eliminated by removing the pjsip/aor/<aor> serializer and
+         continuing the processing in the pjsip/distributor serializer.  Now any
+         retransmissions queued in the pjsip/distributor serializer will be
+         processed after the first message is completely processed.
 
-         Older versions of PJSIP do not have the proto field on the TLS transport
-         setting structure. This change adds a configure check so even if it is
-         not present we will still be able to build.
+         ASTERISK-26088 #close
+         Reported by:  Richard Mudgett
 
-         Change-Id: Ibf3f47befb91ed1b8194bf63888baa6fee05aba9
+         Change-Id: I842d714346088bf717ea27437f1dd85bff0bab5a
 
-2016-03-12 16:02 +0000 [32f0a3d52a]  gtjoseph <george.joseph@fairview5.com>
+2016-06-03 11:35 +0000 [942fa0c95b]  Richard Mudgett <rmudgett@digium.com>
 
-       * build_system:  Split COMPILE_DOUBLE from DONT_OPTIMIZE
+       * stasis: Add setting subscription congestion levels.
 
-         I can't ever recall actually needing the intermediate files or the checking
-         that a double compile produces.  What I CAN remember is every DONT_OPTIMIZE
-         build needing 3 invocations of gcc instead of 1 just to do the checks and
-         produce those intermediate files.
+         Stasis subscriptions and message routers create taskprocessors to process
+         the event messages.  API calls are needed to be able to set the congestion
+         levels of these taskprocessors for selected subscriptions and message
+         routers.
 
-         Having said that, Richard pointed out that the reason for the double compile
-         was that there were cases in the past where a submitted patch failed to compile
-         because the submitter never tried it with the optimizations turned on.
+         * Updated CDR, CEL, and manager's stasis subscription congestion levels
+         based upon stress testing.  Increased the congestion levels to reduce the
+         potential for bursty call setup/teardown activity from triggering the
+         taskprocessor overload alert.  CDRs in particular need an extra high
+         congestion level because they can take awhile to process the stasis
+         messages.
 
-         To get the best of both worlds, COMPILE_DOUBLE has been split into its own
-         option.  If DONT_OPTIMIZE is turned on, COMPILE_DOUBLE will also be selected
-         BUT you can then turn it off if all you need are the debugging symbols.  This
-         way you have to make an informed decision about disabling COMPILE_DOUBLE.
+         ASTERISK-26088
+         Reported by:  Richard Mudgett
 
-         To allow COMPILE_DOUBLE to be both auto-selected and turned off, a new feature
-         was added to menuselect.  The <use> element can now contain an "autoselect"
-         attribute which will turn the used member on but not create a hard dependency.
-         The cflags.xml implementation for COMPILE_DOUBLE looks like this...
+         Change-Id: Id0a716394b4eee746dd158acc63d703902450244
 
-         <member name="DONT_OPTIMIZE" displayname="Disable Optimizations ...">
-               <use autoselect="yes">COMPILE_DOUBLE</use>
-               <support_level>core</support_level>
-         </member>
-         <member name="COMPILE_DOUBLE" displayname="Pre-compile with ...>
-               <depend>DONT_OPTIMIZE</depend>
-               <support_level>core</support_level>
-         </member>
+2016-06-02 18:19 +0000 [b046fa1907]  Richard Mudgett <rmudgett@digium.com>
 
-         When DONT_OPTIMIZE is turned on, COMPILE_DOUBLE is turned on because
-         of the use.
-         When DONT_OPTIMIZE is turned off, COMPILE_DOUBLE is turned off because
-         of the depend.
-         When COMPILE_DOUBLE is turned on, DONT_OPTIMIZE is turned on because
-         of the depend.
-         When COMPILE_DOUBLE is turned off, DONT_OPTIMIZE is left as is because
-         it only uses COMPILE_DOUBLE, it doesn't depend on it.
+       * sorcery: Add setting object type congestion levels.
 
-         I also made a few tweaks to the ncurses implementation to move things
-         left a bit to allow longer descriptions.
+         Sorcery creates taskprocessors for object types to process object observer
+         callbacks.  An API call is needed to be able to set the congestion levels
+         of these taskprocessors for selected object types.
 
-         Change-Id: Id49ca930ac4b5ec4fc2d8141979ad888da7b1611
+         * Updated PJSIP's contact and contact_status sorcery object type observer
+         default congestion levels based upon stress testing.  Increased the
+         congestion levels to reduce the potential for bursty register/unregister
+         and subscribe/unsubscribe activity from triggering the taskprocessor
+         overload alert.
 
-2016-03-10 13:09 +0000 [38499e7125]  gtjoseph <george.joseph@fairview5.com>
+         ASTERISK-26088
+         Reported by:  Richard Mudgett
 
-       * pjproject:  Pass (dont_)optimize flags to pjproject and fix pjsua
+         Change-Id: I4542e83b556f0714009bfeff89505c801f1218c6
 
-         The pjproject Makefile now uses the Asterisk optimization flags which
-         are determined by the setting of the DONT_OPTMIZE menuselect flag.
-         The Makefile was also restructured so a change to the top level
-         menuselect.makeopts will result in a rebuild of pjproject.
+2016-06-02 16:08 +0000 [237f9ef7af]  Richard Mudgett <rmudgett@digium.com>
 
-         Also, "--disable-resample" was removed from the pjproject configure
-         options.  Without resample, pjsua (which is used by the testsuite)
-         can't make audio calls.  When it can't, it segfaults.
+       * taskprocessors: Implement high/low water mark alerts.
 
-         Change-Id: I24b0a4d0872acef00ed89b3c527a713ee4c2ccd4
+         When taskprocessors get backed up, there is a good chance that we are
+         being overloaded and need to defer adding new work to the system.
 
-2016-03-11 16:03 +0000 [336cae73cc]  Walter Doekes <walter+asterisk@wjd.nu>
+         * Implemented a high/low water alert mechanism for modules to check if the
+         system is being overloaded and take appropriate action.  When a
+         taskprocessor is created it has default congestion levels set.  A
+         taskprocessor can later have those congestion levels altered for specific
+         needs if stress testing shows that the taskprocessor is a symptom of
+         overloading or needs to handle bursty activity without triggering an
+         overload alert.
 
-       * app_chanspy: Fix occasional deadlock with ChanSpy and Local channels.
+         * Add CLI "core show taskprocessor" low/high water columns.
 
-         Channel masquerading had a conflict with autochannel locking.
+         * Fixed __allocate_taskprocessor() to not use RAII_VAR().  RAII_VAR() was
+         never a good thing to use when creating a taskprocessor because of the
+         nature of how its references needed to be cleaned up on a partial
+         creation.
 
-         When locking autochannel->channel, the channel is fetched from the
-         autochannel and then locked. During the fetch, the autochannel -- which
-         has no locks itself -- can be modified by someone who owns the channel
-         lock. That means that the value of autochan->channel cannot be trusted
-         until you hold the lock.
+         * Made res_pjsip's distributor check if the taskprocessor overload alert
+         is active before placing a message representing brand new work onto a
+         distributor serializer.
 
-         In practice, this caused problems with Local channels getting
-         masqueraded away while the ChanSpy attempted to get info from that
-         channel. The old channel which was about to get removed got locked, but
-         the new (replaced) channel got unlocked (no-op). Because the replaced
-         channel was now locked (and would never get unlocked), it couldn't get
-         removed from the channel list in a timely manner, and would now cause
-         deadlocks when iterating over the channel list.
+         ASTERISK-26088
+         Reported by:  Richard Mudgett
 
-         This change checks the autochannel after locking the channel for changes
-         to the autochannel. If the channel had been changed, the lock is
-         reobtained on the new channel.
+         Change-Id: I182f1be603529cd665958661c4c05ff9901825fa
 
-         In theory it seems possible that after this fix, the lock attempt on the
-         old (wrong) channel can be on an already destroyed lock, maybe causing
-         a crash. But that hasn't been observed in the wild and is harder induce
-         than the current deadlock.
+2016-05-27 17:31 +0000 [ff70f04a37]  Richard Mudgett <rmudgett@digium.com>
 
-         Thanks go to Filip Frank for suggesting a fix similar to this and
-         especially to IRC user hexanol for pointing out why this deadlock was
-         possible and testing this fix. And to Richard for catching my rookie
-         while loop mistake ;)
+       * res_pjsip_session: Use distributor serializer for incoming calls.
 
-         ASTERISK-25321 #close
+         We must continue using the serializer that the original INVITE came in on
+         for the dialog.  There may be retransmissions already enqueued in the
+         original serializer that can result in reentrancy and message sequencing
+         problems.
 
-         Change-Id: I293ae0014e531cd0e675c3f02d1d118a98683def
+         Outgoing call legs create the pjsip/outsess/<endpoint> serializers for
+         their dialogs.
 
-2016-03-07 21:34 +0000 [875d5e9872]  gtjoseph <george.joseph@fairview5.com>
+         ASTERISK-26088
+         Reported by:  Richard Mudgett
 
-       * pjproject_bundled: Remove --with-external-pa from configure options.
+         Change-Id: I24d7948749c582b8045d5389ba3f6588508adbbc
 
-         Not sure why it was there in the first place as we already specify
-         --disable-sound.
+2016-05-27 16:28 +0000 [4b26c9ead8]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Ia80a40e8b1e1acc287955ab11ba1fbd0c7d4cff9
+       * res_pjsip_pubsub.c: Recreate subscriptions using distributor serializer.
 
-2016-03-06 14:38 +0000 [530cff5f5f]  gtjoseph <george.joseph@fairview5.com>
+         * Resolves potential reentrancy problems if system restarted in the middle
+         of subscription message transactions.
 
-       * res_pjsip:  Strip spaces from items parsed from comma-separated lists
+         * Fixes memory leak recreating persistent subscriptions when the
+         subscription resource tree could not be created.
 
-         Configurations like "aors = a, b, c" were either ignoring everything after "a"
-         or trying to look up " b".  Same for mailboxes,  ciphers, contacts and a few
-         others.
+         ASTERISK-26088
+         Reported by:  Richard Mudgett
 
-         To fix, all the strsep(&copy, ",") calls have been wrapped in ast_strip.  To
-         facilitate this, ast_strip, ast_skip_blanks and ast_skip_nonblanks were
-         updated to handle null pointers.
+         Change-Id: I71e34d7ae8ed35a694f1030e820e2548c48697be
 
-         In some cases, an ast_strlen_zero() test was added to skip consecutive commas.
+2016-05-27 12:50 +0000 [a137d1822e]  Richard Mudgett <rmudgett@digium.com>
 
-         There was also an attempt to ast_free an ast_strdupa'd string in
-         ast_sip_for_each_aor which was causing a SEGV.  I removed it.
+       * res_pjsip_pubsub.c: Use distributor serializer for incoming subscriptions.
 
-         Although this issue was reported for realtime, the issue was in the res_pjsip
-         modules so all config mechanisms were affected.
+         We must continue using the serializer that the original SUBSCRIBE came in
+         on for the dialog.  There may be retransmissions already enqueued in the
+         original serializer that can result in reentrancy and message sequencing
+         problems.  The "sip_transaction Unable to register SUBSCRIBE transaction
+         (key exists)" message is a notable symptom of this issue.
 
-         ASTERISK-25829 #close
-         Reported-by: Mateusz Kowalski
+         Outgoing subscriptions still create the pjsip/pubsub/<endpoint>
+         serializers for their dialogs.
 
-         Change-Id: I0b22a2cf22a7c1c50d4ecacbfa540155bec0e7a2
+         ASTERISK-26088
+         Reported by:  Richard Mudgett
 
-2016-03-04 20:37 +0000 [3c8076a83b]  gtjoseph <george.joseph@fairview5.com>
+         Change-Id: I18b00bb74a56747b2c8c29543a82440b110bf0b0
 
-       * install_prereq: Add packages for bundled pjproject
+2016-05-26 17:35 +0000 [9a7a5aec18]  Richard Mudgett <rmudgett@digium.com>
 
-         RedHat/CentOS needs python-devel
-         Debian/Ubuntu needs automake, libsrtp-dev and python-dev
+       * pjsip_distributor.c: Consistently pick a serializer for messages.
 
-         Ubuntu also needed libncurses5-dev for cmenuselect so while not
-         needed for pjproject, I adedd it anyway.
+         Incoming messages that are not part of a dialog or a recognized response
+         to one of our requests need to be sent to a consistent serializer.  Under
+         load we may be queueing retransmissions before we can process the original
+         message.  We don't need to throw these messages onto random serializers
+         and cause reentrancy and message sequencing problems.
 
-         Change-Id: Idf5fa16e2d87c687439621507e122cb9461d7089
+         * Created a pool of pjsip/distributor serializers that get picked by
+         hashing the call-id and remote tag strings of the received messages.
 
-2016-02-24 17:25 +0000 [27f32cd0a6]  gtjoseph <george.joseph@fairview5.com>
+         * Made ast_sip_destroy_distributor() destroy items in the reverse order of
+         creation.
 
-       * res_pjsip_caller_id: Anonymize 'From' when caller id presentation is prohibited
+         ASTERISK-26088
+         Reported by:  Richard Mudgett
 
-         Per RFC3325, the 'From' header is now anonymized on outgoing calls when
-         caller id presentation is prohibited.
+         Change-Id: I2ce769389fc060d9f379977f559026fbcb632407
 
-         TID = trust_id_outbound
-         PRO = Set(CALLERID(pres)=prohib)
-         USR = endpoint/from_user
-         DOM = endpoint/from_domain
-         PAI = YES(privacy=off), NO(not sent), PRI(privacy=full) (assumes send_pai=yes)
+2016-06-02 12:51 +0000 [f2a76c4292]  Richard Mudgett <rmudgett@digium.com>
 
-         Conditions          |Result
-         --------------------|----------------------------------------------------
-         TID PRO USR DOM     |PAI    FROM
-         --------------------|----------------------------------------------------
-         Y   Y   abc def.ghi |PRI    "Anonymous" <sip:abc@def.ghi>
-         Y   Y   abc         |PRI    "Anonymous" <sip:abc@anonymous.invalid>
-         Y   Y       def.ghi |PRI    "Anonymous" <sip:anonymous@def.ghi>
-         Y   Y               |PRI    "Anonymous" <sip:anonymous@anonymous.invalid>
+       * pjsip_distributor.c: Ignore messages until fully booted.
 
-         Y   N   abc def.ghi |YES    <sip:abc@def.ghi>
-         Y   N   abc         |YES    <sip:abc@<ip_address>>
-         Y   N       def.ghi |YES    "Caller Name" <sip:<caller_exten>@def.ghi>
-         Y   N               |YES    "Caller Name" <sip:<caller_exten>@<ip_address>>
+         We should not be processing any incoming messages until we are fully
+         booted.  We may not have dialplan or other needed configuration loaded
+         yet.
 
-         N   Y   abc def.ghi |NO     "Anonymous" <sip:abc@def.ghi>
-         N   Y   abc         |NO     "Anonymous" <sip:abc@anonymous.invalid>
-         N   Y       def.ghi |NO     "Anonymous" <sip:anonymous@def.ghi>
-         N   Y               |NO     "Anonymous" <sip:anonymous@anonymous.invalid>
+         ASTERISK-26089 #close
+         Reported by: Scott Griepentrog
 
-         N   N   abc def.ghi |YES    <sip:abc@def.ghi>
-         N   N   abc         |YES    <sip:abc@<ip_address>>
-         N   N       def.ghi |YES    "Caller Name" <sip:<caller_exten>@def.ghi>
-         N   N               |YES    "Caller Name" <sip:<caller_exten>@<ip_address>>
+         ASTERISK-26088
+         Reported by:  Richard Mudgett
 
-         ASTERISK-25791 #close
-         Reported-by: Anthony Messina
+         Change-Id: I584aefb4f34b885a8927e1f13a2c64babd606264
 
-         Change-Id: I2c82a5ca1413c2c00fb62ea95b0ae8e97af54dc9
+2016-04-01 13:30 +0000 [51e45e5ca5]  gtjoseph <george.joseph@fairview5.com>
 
-2016-03-03 17:34 +0000 [7cf7b0a4f9]  gtjoseph <george.joseph@fairview5.com>
+       * res_pjsip contact:  Lock expiration/addition of contacts
 
-       * third_party/Makefile.rules:  Replace unsupported != operator with $(shell ...)
+         Contact expiration can occur in several places:  res_pjsip_registrar,
+         res_pjsip_registrar_expire, and automatically when anyone calls
+         ast_sip_location_retrieve_aor_contact.  At the same time, res_pjsip_registrar
+         may also be attempting to renew or add a contact.  Since none of this was locked
+         it was possible for one thread to be renewing a contact and another thread to
+         expire it immediately because it was working off of stale data.  This was the
+         casue of intermittent registration/inbound/nominal/multiple_contacts test
+         failures.
 
-         Apparently the != operator is fairly new so I've replaced it with
-         the old $(shell ...) syntax.
+         Now, the new named lock functionality is used to lock the aor during contact
+         expire and add operations and res_pjsip_registrar_expire now checks the
+         expiration with the lock held before deleting the contact.
 
-         Change-Id: I16b2e1878a4f91e7e9740abd427f9639f933c479
-         Reported-by: Richard Mudgett
-2016-01-23 15:50 +0000 [53f57001f2]  gtjoseph <george.joseph@fairview5.com>
+         ASTERISK-25885 #close
+         Reported-by: Josh Colp
 
-       * loader: Retry dlopen when loading fails
+         Change-Id: I83d413c46a47796f3ab052ca3b349f21cca47059
 
-         Although we use the RTLD_LAZY flag when calling dlopen
-         the first time on a module, this only defers resolution
-         for function calls.  Pointer references to functions are
-         determined at link time so dlopen expects them to be there.
-         Since we don't cross-module link, pointers to functions
-         in other modules won't be available and dlopen will fail.
+2016-03-31 20:04 +0000 [880d502141]  gtjoseph <george.joseph@fairview5.com>
 
-         Doing a "hardened" build also causes problems because it
-         typically sets "-z now" on the ld command line which
-         overrides RTLD_LAZY at run time.
+       * lock:  Add named lock capability
 
-         If the failing module isn't a GLOBAL_SYMBOLS module, then
-         dlopen will be called again after all the GLOBAL_SYMBOLS
-         modules have been loaded and they'll eventually resolve.
+         Locking some objects like sorcery objects can be tricky because the underlying
+         ao2 object may not be the same for all callers.  For instance, two threads that
+         call ast_sorcery_retrieve_by_id on the same aor name might actually get 2
+         different ao2 objects if the underlying wizard had to rehydrate the aor from a
+         database. Locking one ao2 object doesn't have any effect on the other even if
+         those objects had locks in the first place.
 
-         If the calling module IS a GLOBAL_SYMBOLS module itself
-         and a third module depends on it, then there's an issue
-         because the second time through the dlopen loop,
-         GLOBAL_SYMBOLS modules aren't given any special treatment
-         and since the order in which dlopen is called isn't
-         deterministic, the dependent may again be tried before the
-         module it needs is loaded.
+         Named locks allow access control by keyspace and key strings.  Now an "aor"
+         named "1000" can be locked and any other thread attempting to lock "aor" "1000"
+         will wait regardless of whether the underlying ao2 object is the same or not.
+         Mutex and rwlocks are supported.
 
-         Simple solution:  Save modules that fail load_resource
-         because of a dlopen error in a list and retry them
-         immediately after the first pass. Keep retrying until
-         the failed list is empty or we reach a #defined max
-         retries. Error messages are suppressed until the final
-         pass which also gets rid of those confusing error messages
-         about module failures that are later corrected.
+         This capability will initially be used to lock an aor when multiple threads may
+         be attempting to prune expired contacts from it.
 
-         Change-Id: Iddae1d97cd2f00b94e61662447432765755f64bb
+         Change-Id: If258c0b7f92b02d07243ce70e535821a1ea7fb45
 
-2016-03-01 16:18 +0000 [40d9e9e238]  Kevin Harwell <kharwell@digium.com>
+2016-06-02 12:04 +0000 [a81feefde9]  Joshua Colp <jcolp@digium.com>
 
-       * bridge.c: Crash during attended transfer when missing a local channel half
+       * res_odbc: Implement a connection pool.
 
-         It's possible for the transferer channel to get hung up early during the
-         attended transfer process. For instance, a phone may send a "bye" immediately
-         upon receiving a sip notify that contains a sip frag 100 (I'm looking at you
-         Jitsi). When this occurs a race begins between the transferer being hung up
-         and completion of the transfer code.
+         Testing has shown that our usage of UnixODBC is problematic
+         due to bugs within UnixODBC itself as well as the heavy weight
+         cost of connecting and disconnecting database connections, even
+         when pooling is enabled.
 
-         If the channel hangs up too early during a transfer involving stasis bridging
-         for instance, then when the created local channel goes to look up its swap
-         channel (and associated datastore) it can't find it (since it is no longer in
-         the bridge) thus it fails to enter the stasis application. Consequently, the
-         created local channel(s) hang up as well. If the timing is just right then the
-         bridging code attempts to add the message link with missing local channel(s).
-         Hence the crash.
+         For users of UnixODBC 2.3.1 and earlier crashes would occur due
+         to insufficient protection of the disconnect operation. This was
+         fixed in UnixODBC 2.3.2 and above.
 
-         Unfortunately, there is no great way to solve the problem of the unexpected
-         "bye". While we can't guarantee we won't receive an early hangup, and in this
-         case still fail to enter the stasis application, we can make it so asterisk
-         does not crash.
+         For users of UnixODBC 2.3.3 and higher a slow-down would occur
+         under heavy database use due to repeated connection establishment.
+         A regression is present where on each connection the database
+         configuration is cached again, with the cache growing out of
+         control.
 
-         This patch does just that by locking the local channel structure, checking
-         that the local channel's peer has not been lost, and then continuing. This
-         keeps the local channel's peer from being ripped out from underneath it by
-         the local/unreal hangup code while attempting to set the stasis message link.
+         The connection pool implementation present in this change helps
+         to mitigate these issues by reducing how much we connect and
+         disconnect database connections. We also solve the issue of
+         crashes under UnixODBC 2.3.1 by defaulting the maximum number of
+         connections to 1, returning us to the previous working behavior.
+         For users who may have a fixed version the maximum concurrent
+         connection limit can be increased helping with performance.
 
-         ASTERISK-25771
+         The connection pool works by keeping a list of active connections.
+         If the connection limit has not been reached a new connection is
+         established. If the connection limit has been reached then the
+         request waits until a connection becomes available before
+         continuing.
 
-         Change-Id: Ie6d6061e34c7c95f07116fffac9a09e5d225c880
+         ASTERISK-26074 #close
+         ASTERISK-26054 #close
 
-2016-03-01 18:08 +0000 [ff3da61c35]  Kevin Harwell <kharwell@digium.com>
+         Change-Id: I6774bf4bac49a0b30242c76a09c403d2e856ecff
 
-       * res_pjsip_refer.c: Delay sending the initial SIP Notify with frag 100
+2016-05-30 10:58 +0000 [aab8bc5d31]  gtjoseph <gjoseph@digium.com>
 
-         During the transfer process, some phones (okay it was the Jitsi softphone,
-         but maybe others are out there) send a "bye" immediately after receiving a
-         SIP Notify. When a "bye" is received early for some types of transfers the
-         transferer channel may no longer be available during late stage transfer
-         processing.
+       * pjproject_bundled:  Move to pjproject 2.5
 
-         For instance, during an attended transfer involving stasis bridging at one
-         point the created local channel looks for an associated swap channel in
-         order to retrieve the stasis application name. If the transferer has hung
-         up then the local channel will fail to find it. The local channel then has
-         no way to know which stasis app to enter, so it fails and hangs up as well.
-         Thus the transfer does not complete as expected.
+         Although all the patches we had against 2.4.5 were applied by Teluu,
+         a new bug was introduced preventing re-use of tcp and tls transports
+         This patch removes all the previous patches against 2.4.5, updates
+         the version to 2.5, and adds a new patch to correct the transport
+         re-use problem.
 
-         This patch delays the sending of the initial notify in order to give the
-         transfer process enough time to gather the necessary data for a successful
-         transfer.
+         Change-Id: I0dc6c438c3910f7887418a5832ca186aea23d068
+         (cherry picked from commit e8abfdcdc5ce4d32d1fe281e75b13fd652f9e5f7)
 
-         ASTERISK-25771
+2016-05-18 07:54 +0000 [b9a28ccbd4]  gtjoseph <gjoseph@digium.com>
 
-         Change-Id: I09cfc9a5d6ed4c007bc70625e0972b470393bf16
+       * udptl:  Don't eat sequence numbers until OK is received
 
-2016-03-03 08:26 +0000 [26b8f2692e]  Joshua Colp <jcolp@digium.com>
+         Scenario:
+         Local fax -> Asterisk w/ firewall -> Provider -> Remote fax
 
-       * res_pjsip_dtmf_info: NULL terminate the message body.
+         * Local fax starts rtp call to remote fax
+         * Remote fax starts t38 call back to local fax.
+         * Local fax sends t38 no-signal to Asterisk before sending an OK.
+         * udptl processes the frame and increments the expected sequence number.
+         * chan_sip drops the frame because the call isn't up so nothing goes out
+           the external interface to open the port for incoming packets.
+         * Local fax sends OK and Asterisk sends OK to the remote fax.
+         * Remote fax sends t38 packets which are dropped by the firewall.
+         * Local fax re-sends t38 no-signal with the same sequence number.
+         * udptl drops the frame because it thinks it's a dup.
+         * Still no outgoing packets to open the firewall.
+         * t38 negotiation fails.
 
-         PJSIP does not ensure that when printing the message body the
-         buffer will be NULL terminated. This is problematic when searching
-         for the signal and duration values of the DTMF.
+         The patch drops frames t38 received before udptl sequence processing
+         when the call hasn't been answered yet.  The second no-signal frame
+         is then seen as new and is relayed out the external interface which
+         opens the port and allows negotiation to continue.
 
-         This change ensures the buffer is always NULL terminated.
+         ASTERISK-26034 #close
 
-         Change-Id: I52653a1a60c93092d06af31a27408d569cc98968
+         Change-Id: I11744b39748bd2ecbbe8ea84cdb4f3c5943c5af9
 
-2016-03-01 20:03 +0000 [86d6e44cc1]  gtjoseph <george.joseph@fairview5.com>
+2016-05-17 11:14 +0000 [f85c77a9e1]  gtjoseph <gjoseph@digium.com>
 
-       * alembic: Fix downgrade and tweak for sqlite
+       * chan_sip:  Prevent extra Session-Expires headers from being added
 
-         Downgrade had a few issues.  First there was an errant 'update' statement in
-         add_auto_dtmf_mode that looks like it was a copy/paste error.  Second, we
-         weren't cleaning up the ENUMs so subsequent upgrades on postgres failed
-         because the types already existed.
+         When chan_sip does a re-INVITE to refresh a session and authentication
+         is required, the INVITE with the Authorization header containes a
+         second Session-Expires header without the ";refersher=" parameter.
+         This is causing some proxies to return a 400.  Also, when Asterisk is
+         the uas and the refresher, it is including the Session-Expires and
+         Min-SE headers in OPTIONS messages which is not allowed per RFC4028.
 
-         For sqlite...  sqlite doesn't support ALTER or DROP COLUMN directly.
-         Fortunately alembic batch_operations takes care of this for us if we
-         use it so the alter and drops were converted to use batch operations.
+         This patch (based on the reporter's) Checks to see if a Session-Expires
+         header is already in the message before adding another one.  It also
+         checks that the method is INVITE or UPDATE.
 
-         Here's an example downgrade:
+         ASTERISK-26030 #close
 
-             with op.batch_alter_table('ps_endpoints') as batch_op:
-                 batch_op.drop_column('tos_audio')
-                 batch_op.drop_column('tos_video')
-                 batch_op.add_column(sa.Column('tos_audio', yesno_values))
-                 batch_op.add_column(sa.Column('tos_video', yesno_values))
-                 batch_op.drop_column('cos_audio')
-                 batch_op.drop_column('cos_video')
-                 batch_op.add_column(sa.Column('cos_audio', yesno_values))
-                 batch_op.add_column(sa.Column('cos_video', yesno_values))
+         Change-Id: I58a7b07bab5a3177748d8a7034fb8ad8e11ce1d9
 
-             with op.batch_alter_table('ps_transports') as batch_op:
-                 batch_op.drop_column('tos')
-                 batch_op.add_column(sa.Column('tos', yesno_values))
-             # Can't cast integers to YESNO_VALUES, so dropping and adding is required
-                 batch_op.drop_column('cos')
-                 batch_op.add_column(sa.Column('cos', yesno_values))
+2016-05-07 14:39 +0000 [8bf050b853]  gtjoseph <gjoseph@digium.com>
 
-         Upgrades from base to head and downgrades from head to base were tested
-         repeatedly for postgresql, mysql/mariadb, and sqlite3.
+       * config_transport:  Tell pjproject to allow all SSL/TLS protocols
 
-         Change-Id: I862b0739eb3fd45ec3412dcc13c2340e1b7baef8
+         The default tls settings for pjproject only allow TLS 1, TLS 1.1 and TLS 1.2.
+         SSL is not allowed.   So, even if you specify "sslv3" for a transport method,
+         it's silently ignored and one of the TLS protocols is used.  This was a new
+         behavior of pjsip_tls_setting_default() in 2.4 (when tls.proto was added) that
+         we never caught.
 
-2016-03-02 15:55 +0000 [6f0d7ce9db]  gtjoseph <george.joseph@fairview5.com>
+         Now we need to set tls.proto = 0 after we call pjsip_tls_setting_default().
+         This tells pjproject to set the socket protocol to match the method.
 
-       * config_transport:  Fix objects returned by ast_sip_get_transport_states
+         ASTERISK-26004 #close
 
-         ast_sip_get_transport_states was returning a container of internal_state
-         objects instead of ast_sip_transport_state objects.  This was causing
-         transport lookups to fail, most noticably in res_pjsip_nat, which
-         couldn't find the correct external addresses.  This was causing contacts
-         to go out with internal ip addresses.
+         Change-Id: Icfb55c1ebe921298dedb4b1a1d3bdc3ca41dd078
 
-         ASTERISK-25830 #close
-         Reported-by: Sean Bright
+2016-05-05 11:37 +0000 [4fc2c98369]  Kevin Harwell <kharwell@digium.com>
 
-         Change-Id: I1aee6a2fd46c42e8dd0af72498d17de459ac750e
+       * res_pjsip_authenticator_digest: Don't use source port in nonce verification
 
-2016-03-02 11:17 +0000 [1ea7a5a774]  Scott Griepentrog <scott@griepentrog.com>
+         From the issue reporter:
+         "res_pjsip_outbound_authenticator_digest builds a nonce that is a hash of
+         the timestamp, the source address, the source port, a server UUID that is
+         calculated at startup, and the authentication realm.
 
-       * CHAOS: cleanup possible null vars on msg alloc failure
+         Rather than caching nonces that we create, we instead attempt to re-calculate
+         the nonce when receiving an incoming request with authentication. We then
+         compare the re-calculated nonce to the incoming nonce, and if they don't match,
+         then authentication has failed early.
 
-         In message.c, if msg_alloc fails to init the string field,
-         vars may be null, so use a null tolerant cleanup.
+         The problem is that it is possible, especially when using TCP, to receive two
+         requests from the same endpoint but have differing source ports for those
+         requests. Asterisk itself commonly will use different source ports for
+         outbound TCP requests."
 
-         In res_pjsip_messaging.c, if msg_data_create fails, mdata
-         will be null, so use a null tolerant cleanup.
+         This patch removes the source port dependency when building the nonce.
 
-         ASTERISK-25323
+         ASTERISK-25978 #close
 
-         Change-Id: Ic2d55c2c3750d5616e2a05ea92a19c717507ff56
+         Change-Id: I871b5f4adce102df1c4988066283095ec509dffe
 
-2016-03-02 09:34 +0000 [3c37c7071f]  Scott Griepentrog <scott@griepentrog.com>
+2016-05-05 05:07 +0000 [4e7791d483]  Joshua Colp <jcolp@digium.com>
 
-       * CHAOS: prevent crash on failed strdup
+       * file: Ensure nativeformats remains valid for lifetime of use.
 
-         This patch avoids crashing on a null pointer
-         if the strdup() allocation fails.
+         It is possible for the nativeformats of a channel to change
+         throughout its lifetime. As a result a user of it needs to either
+         ensure the channel is locked when accessing the formats or keep
+         a reference to the nativeformats themselves.
 
-         ASTERISK-25323
+         This change fixes the file playback support so it keeps a
+         reference to the nativeformats when accessing things.
 
-         Change-Id: I3f67434820ba53b53663efd6cbb42749f4f6c0f5
+         ASTERISK-25998 #close
 
-2016-02-29 18:11 +0000 [9633be9d25]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ie45b65475e1481ddf05b874ee48f63e39fff8915
 
-       * func_callerid.c: Update REDIRECTING reason documentation.
+2016-05-03 07:55 +0000 [601602f44b]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: I6e8d39b0711110a4bceafa652e58b30465e28386
+       * ChangeLog: Updated for certified/13.8-cert1-rc2
 
-2016-02-26 18:57 +0000 [4165ea7778]  Richard Mudgett <rmudgett@digium.com>
+2016-05-03 07:55 +0000 [13461bb9a6]  Joshua Colp <jcolp@digium.com>
 
-       * SIP diversion: Fix REDIRECTING(reason) value inconsistencies.
+       * Release summaries: Add summaries for certified/13.8-cert1-rc2
 
-         Previous chan_sip behavior:
+2016-05-03 07:54 +0000 [cadb5c4e64]  Joshua Colp <jcolp@digium.com>
 
-         Before this patch chan_sip would always strip any quotes from an incoming
-         reason and pass that value up as the REDIRECTING(reason).  For an outgoing
-         reason value, chan_sip would check the value against known values and
-         quote any it didn't recognize.  Incoming 480 response message reason text
-         was just assigned to the REDIRECTING(reason).
+       * Release summaries: Remove previous versions
 
-         Previous chan_pjsip behavior:
+2016-05-03 07:54 +0000 [d4d5548ef8]  Joshua Colp <jcolp@digium.com>
 
-         Before this patch chan_pjsip would always pass the incoming reason value
-         up as the REDIRECTING(reason).  For an outgoing reason value, chan_pjsip
-         would send the reason value as passed down.
+       * .version: Update for certified/13.8-cert1-rc2
 
-         With this patch:
+2016-05-03 07:54 +0000 [a5bc40ae51]  Joshua Colp <jcolp@digium.com>
 
-         Both channel drivers match incoming reason values with values documented
-         by REDIRECTING(reason) and values documented by RFC5806 regardless of
-         whether they are quoted or not.  RFC5806 values are mapped to the
-         equivalent REDIRECTING(reason) documented value and is set in
-         REDIRECTING(reason).  e.g., an incoming RFC5806 'unconditional' value or a
-         quoted string version ('"unconditional"') is converted to
-         REDIRECTING(reason)'s 'cfu' value.  The user's dialplan only needs to deal
-         with 'cfu' instead of any of the aliases.
+       * .lastclean: Update for certified/13.8-cert1-rc2
 
-         The incoming 480 response reason text supported by chan_sip checks for
-         known reason values and if not matched then puts quotes around the reason
-         string and assigns that to REDIRECTING(reason).
+2016-05-03 07:54 +0000 [2b6df52c66]  Joshua Colp <jcolp@digium.com>
 
-         Both channel drivers send outgoing known REDIRECTING(reason) values as the
-         unquoted RFC5806 equivalent.  User custom values are either sent as is or
-         with added quotes if SIP doesn't allow a character within the value as
-         part of a RFC3261 Section 25.1 token.  Note that there are still
-         limitations on what characters can be put in a custom user value.  e.g.,
-         embedding quotes in the middle of the reason string is silly and just
-         going to cause you grief.
+       * realtime: Add database scripts for certified/13.8-cert1-rc2
 
-         * Setting a REDIRECTING(reason) value now recognizes RFC5806 aliases.
-         e.g., Setting REDIRECTING(reason) to 'unconditional' is converted to the
-         'cfu' value.
+2016-04-15 11:59 +0000 [c4426f1035]  Alexei Gradinari <alex2grad@gmail.com>
 
-         * Added missing malloc() NULL return check in res_pjsip_diversion.c
-         set_redirecting_reason().
+       * res_pjsip: disable multi domain to improve realtime performace
 
-         * Fixed potential read from a stale pointer in res_pjsip_diversion.c
-         add_diversion_header().  The reason string needed to be copied into the
-         tdata memory pool to ensure that the string would always be available.
-         Otherwise, if the reason string returned by reason_code_to_str() was a
-         user's reason string then the string could be freed later by another
-         thread.
+         This patch added new global pjsip option 'disable_multi_domain'.
+         Disabling Multi Domain can improve Realtime performance by reducing
+         number of database requests.
 
-         Change-Id: Ifba83d23a195a9f64d55b9c681d2e62476b68a87
+         ASTERISK-25930 #close
 
-2016-02-26 18:54 +0000 [41f4af4ce5]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I2e7160f3aae68475d52742107949a799aa2c7dc7
 
-       * res_pjsip_send_to_voicemail.c: Allow either quoted or not send_to_vm reason.
+2016-04-26 05:48 +0000 [c69e0f1813]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: Id6350b3c7d4ec8df7ec89863566645e2b0f441fd
+       * app_queue: Fix crash when unloading module.
 
-2016-02-29 20:41 +0000 [4c5998ff55]  Richard Mudgett <rmudgett@digium.com>
+         When unloading the app_queue module the members in each queue are
+         destroyed and as part of this they are removed from the pending
+         members container. Unfortunately a crash would occur as the container
+         was destroyed before the members were removed.
 
-       * res_pjsip_send_to_voicemail.c: Fix off-nominal double channel unref.
+         This change tweaks ordering so the container destruction occurs
+         after the members are destroyed.
 
-         * Fix double unref of other_party channel in off nominal path.
+         ASTERISK-16115
 
-         * This is unlikely to be a real problem.  However, for safety,
-         in handle_incoming_request() keep the datastore ref with the
-         other_party channel ref until we are finished with the other_party
-         channel.
+         Change-Id: I48c728668c55aee3d05b751a5d450fb57e87f44b
 
-         Change-Id: I78f22547bf0bb99fb20814ceab75952bd857f821
+2016-04-21 14:23 +0000 [eebe8b3dd3]  Kevin Harwell <kharwell@digium.com>
 
-2016-01-18 21:54 +0000 [b59956a875]  gtjoseph <george.joseph@fairview5.com>
+       * app_queue: queue members can receive multiple calls
 
-       * build-system: Allow building with static pjproject
+         It was possible for a queue member that is a member of at least 2 or more
+         queues to receive mulitiple calls at the same time. This happened because
+         of a race between when a member was being rung and when the device state
+         notified the other queue(s) member object of the state change.
 
-         Background here:
-         http://lists.digium.com/pipermail/asterisk-dev/2016-January/075266.html
+         This patch makes it so when a queue member is being rung it gets added to
+         a global pool of queue members. If that same member is tried again, e.g.
+         from another queue, and it is found to already exist in the pending member
+         container then it will not ring that member.
 
-         From CHANGES:
-          * To help insure that Asterisk is compiled and run with the same known
-            version of pjproject, a new option (--with-pjproject-bundled) has been
-            added to ./configure.  When specified, the version of pjproject specified
-            in third-party/versions.mak will be downloaded and configured.  When you
-            make Asterisk, the build process will also automatically build pjproject
-            and Asterisk will be statically linked to it.  Once a particular version
-            of pjproject is configured and built, it won't be configured or built
-            again unless you run a 'make distclean'.
+         ASTERISK-16115 #close
 
-            To facilitate testing, when 'make install' is run, the pjsua and pjsystest
-            utilities and the pjproject python bindings will be installed in
-            ASTDATADIR/third-party/pjproject.
+         Change-Id: I546dd474776d158c2b6be44205353dee5bac7e48
 
-            The default behavior remains building with the shared pjproject
-            installation, if any.
+2016-04-22 17:53 +0000 [5cbd4b9799]  gtjoseph <gjoseph@digium.com>
 
-         Building:
+       * res_agi:  Prevent run_agi from eating frames it shouldn't
 
-            All you have to do is include the --with-pjproject-bundled option on
-            the ./configure command line (and remove any existing --with-pjproject
-            option if specified).  Everything else is automatic.
+         The run_agi function is eating control frames when it shouldn't be. This is
+         causing issues when an AGI is run from CONNECTED_LINE_SEND_SUB in a blond
+         transfer.
 
-         Behind the scenes:
+         Alice calls Bob. Bob attended transfers to Charlie but hangs up before Charlie
+         answers.
 
-            The top-level Makefile was modified to include 'third-party' in the
-            list of MOD_SUBDIRS.
+         Alice gets the COLP UPDATE indicating Charlie but Charlie never gets an UPDATE
+         and is left thinking he's connected to Bob.
 
-            The third-party directory was created to contain any third party
-            packages that may be needed in the future.  Its Makefile automatically
-            iterates over any subdirectories passing on targets.
+         In this case, when CONNECTED_LINE_SEND_SUB runs on Alice's channel and it calls
+         an AGI, the extra eaten frames prevent CONNECTED_LINE_SEND_SUB from running on
+         Charlie's channel.
 
-            The third-party/pjproject directory was created to house the pjproject
-            source distribution.  Its Makefile contains targets to download, patch
-            configure, generate dependencies, compile libs, apps and python bindings,
-            sanitized build.mak and generate a symbols list.
+         The fix was to accumulate deferrable frames in the "forever" loop instead of
+         dropping them, and re-queue them just before running the actual agi command
+         or exiting.
 
-            When bootstrap.sh is run, it automatically includes the configure.m4
-            file in third-party/pjproject.  This file has a macro to download and
-            conifgure pjproject and get and set PJPROJECT_INCLUDE, PJPROJECT_DIR
-            and PJPROJECT_BUNDLED.  It also tests for the capabilities like
-            PJ_TRANSACTION_GRP_LOCK by parsing preprocessor output as opposed to
-            trying to compile.  Of course, bootstrap.sh is only run once and the
-            configure file is incldued in the patch.
+         ASTERISK-25951 #close
 
-            When configure is run with the new options, the macro in configure.m4
-            triggers the download, patch, conifgure and tests.  No compilation is
-            performed at this time.  The downloaded tarball is cached in /tmp so
-            it doesn't get downloaded again on a distclean.
+         Change-Id: I0f4bbfd72fc1126c2aaba41da3233a33d0433645
 
-            When make is run in the top-level Asterisk source directory, it will
-            automatically descend all the subdirectories in third_party just as it
-            does for addons, apps, etc.  The top-level Makefile makes sure that
-            the 'third-party' is built before 'main' so that dependencies from the
-            other directories are built first.
+2016-04-15 14:36 +0000 [bc51227ef8]  Richard Mudgett <rmudgett@digium.com>
 
-            When main does build, a new shared library (libasteriskpj) is created that
-            links statically to the pjproject .a files and exports all their symbols.
-            The asterisk binary links to that, just as it does with libasteriskssl.
+       * res_stasis: Handle re-enter stasis bridge with swap channel.
 
-            When Asterisk is installed, the pjsua and pjsystest apps, and the pjproject
-            python bindings are installed in ASTDATADIR/third-party/pjproject.  This
-            will facilitate testing, including running the testsuite which will be
-            updated to check that directory for the pjsua module ahead of the system
-            python library.
+         We lose the fact that there is a swap channel if there is one.  We
+         currently wind up rejoining the stasis bridge as a normal join after the
+         swap channel has already been kicked from the bridge.
 
-         Modules should continue to depend on pjproject if they use pjproject APIs
-         directly.  They should not care about the implementation.  No changes to any
-         res_pjsip modules were made.
+         This patch preserves the swap channel so the AMI/ARI events can note that
+         the channel joining the bridge is swapping with another channel.  Another
+         benefit to swaqpping in one operation is if there are any channels that
+         get lonely (MOH, bridge playback, and bridge record channels).  The lonely
+         channels won't leave before the joining channel has a chance to come back
+         in under stasis if the swap channel is the only reason the lonely channels
+         are staying in the bridge.
 
-         Change-Id: Ia7a60c28c2e9ba9537c5570f933c1ebcb20a3103
+         ASTERISK-25947 #close
+         Reported by: Richard Mudgett
 
-2016-02-22 16:59 +0000 [18a323e542]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-24649
+         Reported by: John Bigelow
 
-       * chan_sip.c: Fix T.38 issues caused by leaving a bridge.
+         ASTERISK-24782
+         Reported by: John Bigelow
 
-         chan_sip could not handle AST_T38_TERMINATED frames being sent to it when
-         the channel left the bridge.  The action resulted in overlapping outgoing
-         reINVITEs.  The testsuite tests/fax/sip/directmedia_reinvite_t38 was not
-         happy.
+         Change-Id: If37ea508831d1fed6dbfac2f191c638fc0a850ee
 
-         * Force T.38 to be remembered as locally bridged.  Now when the channel
-         leaves the native RTP bridge after T.38, the channel remembers that it has
-         already reINVITEed the media back to Asterisk.  It just needs to terminate
-         T.38 when the AST_T38_TERMINATED arrives.
+2016-04-19 16:58 +0000 [8dd79720e6]  Richard Mudgett <rmudgett@digium.com>
 
-         * Prevent redundant AST_T38_TERMINATED from causing problems.  Redundant
-         AST_T38_TERMINATED frames could cause overlapping outgoing reINVITEs if
-         they happen before the T.38 state changes to disabled.  Now the T.38 state
-         is set to disabled before the reINVITE is sent.
+       * bridge: Hold off more than one imparting channel at a time.
 
-         ASTERISK-25582 #close
+         An earlier patch blocked the ast_bridge_impart() call until the channel
+         either entered the target bridge or it failed.  Unfortuantely, if the
+         target bridge is stasis and the imprted channel is not a stasis channel,
+         stasis bounces the channel out of the bridge to come back into the bridge
+         as a proper stasis channel.  When the channel is bounced out, that
+         released the block on ast_bridge_impart() to continue.  If the impart was
+         a result of a transfer, then it became a race to see if the swap channel
+         would get hung up before the imparted channel could come back into the
+         stasis bridge.  If the imparted channel won then everything is fine.  If
+         the swap channel gets hung up first then the transfer will fail because
+         the swap channel is leaving the bridge.
 
-         Change-Id: I53f5c6ce7d90b3f322a942af1a9bcab6d967b7ce
+         * Allow a chain of ast_bridge_impart()'s to happen before any are
+         unblocked to prevent the race condition described above.  When the channel
+         finally joins the bridge or completely fails to join the bridge then the
+         ast_bridge_impart() instances are unblocked.
 
-2016-02-18 18:27 +0000 [263a39f2cc]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25947
+         Reported by: Richard Mudgett
 
-       * res_pjsip_t38.c: Back out part of an earlier fix attempt.
+         ASTERISK-24649
+         Reported by: John Bigelow
 
-         This backs out item 4 of the 4875e5ac32f5ccad51add6a4216947bfb385245d
-         commit.  Item 4 added the t38_bye_supplement.  Unfortunately, the frame
-         that it puts into the bridge may or may not be processed by the time the
-         bridged peer is kicked out of the bridge.  If it is processed then all is
-         well.  However, if it is not processed then that channel is stuck in fax
-         mode until it hangs up or maybe if it joins another bridge for T.38
-         faxing.
+         ASTERISK-24782
+         Reported by: John Bigelow
 
-         ASTERISK-25582
+         Change-Id: I8fef369171f295f580024ab4971e95c799d0dde1
 
-         Change-Id: Ib20a03ecadf1bf8a0dcadfadf6c2f2e60919a9f7
+2016-04-19 17:52 +0000 [2a2e754d15]  gtjoseph <george.joseph@fairview5.com>
 
-2016-02-22 13:54 +0000 [221422be50]  Richard Mudgett <rmudgett@digium.com>
+       * res_pjsip_callerid:  Clear out display name if id->name is not valid
 
-       * bridge core: Add owed T.38 terminate when channel leaves a bridge.
+         When create_new_id_hdr creates a new RPID or PAI header, it starts by cloning
+         the From header, then it overwrites the display name and uri from the channel's
+         connected.id.  If the connected.id.name wasn't valid, create_new_id_hdr was
+         leaving the display name from the From header in the new RPID or PAI header.
+         On an attended transfer where the originator had a caller id number set but not
+         a display name, the re-INVITE to the final transferee had the number of the
+         originator but the display name of the transferer.
 
-         The channel is now going to get T.38 terminated when it leaves the
-         bridging system and the bridged peers are going to get T.38 terminated as
-         well.
+         Added a check to clear out the display name in the new header if
+         connected.id.name was invalid.
 
-         ASTERISK-25582
+         ASTERISK-25942 #close
 
-         Change-Id: I77a9205979910210e3068e1ddff400dbf35c4ca7
+         Change-Id: I60b4bf7a7ece9b7425eba74151c0b4969cd2738b
 
-2016-02-19 16:01 +0000 [0a5bc64491]  Richard Mudgett <rmudgett@digium.com>
+2016-04-19 13:02 +0000 [188ce34aff]  Joshua Colp <jcolp@digium.com>
 
-       * channel api: Create is_t38_active accessor functions.
+       * app_talkdetect: Make the module core supported.
 
-         ASTERISK-25582
+         This module is used as part of testsuite tests to confirm
+         stuff works. I'm accordingly marking it as core as it is
+         required by those tests.
 
-         Change-Id: I69451920b122de7ee18d15bb231c80ea7067a22b
+         Change-Id: I558e7af7679b22b8ed641d7dd37ee4ca35b11e88
 
-2016-02-19 19:06 +0000 [513638a5f4]  Richard Mudgett <rmudgett@digium.com>
+2016-04-19 13:00 +0000 [da80f40014]  Joshua Colp <jcolp@digium.com>
 
-       * bridge_channel: Don't settle owed events on an optimization.
+       * app_talkdetect: Enable for testsuite tests.
 
-         Local channel optimization could cause DTMF digits to be duplicated.
-         Pending DTMF end events would be posted to a bridge when the local channel
-         optimizes out and is replaced by the channel further down the chain.  When
-         the real digit ends, the channel would get another DTMF end posted to the
-         bridge.
+         Change-Id: I9acf2e2210f7a15cdd2c63c4c8dcb92de6b47d43
 
-         A -- LocalA;1/n -- LocalA;2/n -- LocalB;1 -- LocalB;2 -- B
+2016-04-18 12:12 +0000 [9f3ecf0a8d]  Mark Michelson <mmichelson@digium.com>
 
-         1) LocalA has the /n flag to prevent optimization.
-         2) B is sending DTMF to A through the local channel chain.
-         3) When LocalB optimizes out it can move B to the position of LocalB;1
-         4) Without this patch, when B swaps with LocalB;1 then LocalB;1 would
-         settle an owed DTMF end to the bridge toward LocalA;2.
-         5) When B finally ends its DTMF it sends the DTMF end down the chain.
-         6) Without this patch, A would hear the DTMF digit end when LocalB
-         optimizes out and when B ends the original digit.
+       * PJSIP: Remove PJSIP parsing functions from uri length validation.
 
-         ASTERISK-25582
+         The PJSIP parsing functions provide a nice concise way to check the
+         length of a hostname in a SIP URI. The problem is that in order to use
+         those parsing functions, it's required to use them from a thread that
+         has registered with PJLib.
 
-         Change-Id: I1bbd28b8b399c0fb54985a5747f330a4cd2aa251
+         On startup, when parsing AOR configuration, the permanent URI handler
+         may not be run from a PJLib-registered thread. Specifically, this could
+         happen when Asterisk was started in daemon mode rather than
+         console-mode. If PJProject were compiled with assertions enabled, then
+         this would cause Asterisk to crash on startup.
 
-2016-02-22 12:15 +0000 [7c4495cb70]  Richard Mudgett <rmudgett@digium.com>
+         The solution presented here is to do our own parsing of the contact URI
+         in order to ensure that the hostname in the URI is not too long. The
+         parsing does not attempt to perform a full SIP URI parse/validation,
+         since the hostname in the URI is what is important.
 
-       * channel.c: Route all control frames to a channel through the same code.
+         ASTERISK-25928 #close
+         Reported by Joshua Colp
 
-         Frame hooks can conceivably return a control frame in exchange for an
-         audio frame inside ast_write().  Those returned control frames were not
-         handled quite the same as if they were sent to ast_indicate().  Now it
-         doesn't matter if you use ast_write() to send an AST_FRAME_CONTROL to a
-         channel or ast_indicate().
+         Change-Id: Ic3d6c20ff3502507c17244a8b7e2ca761dc7fb60
 
-         ASTERISK-25582
+2016-04-18 17:00 +0000 [39b4742db1]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I5775f41421aca2b510128198e9b827bf9169629b
+       * res_pjsip_registrar: Fix bad memory-ness with user_agent.
 
-2016-02-25 15:13 +0000 [48d713a832]  gtjoseph <george.joseph@fairview5.com>
+         Recent changes to the PJSIP registrar resulted in tests failing due to
+         missing AOR_CONTACT_ADDED test events. The reason for this was that the
+         user_agent string had junk values in it, resulting in being unable to
+         generate the event.
 
-       * sorcery:  Refactor create, update and delete to better deal with caches
+         I'm going to be honest here, I have no idea why this was happening. Here
+         are the steps needed for the user_agent variable to get messed up:
+         * REGISTER is received
+         * First contact in the REGISTER results in a contact being removed
+         * Second contact in the REGISTER results in a contact being added
+         * The contact, AOR, expiration, and user agent all have to be passed as
+           format parameters to the creation of a string. Any subset of those
+           parameters would not be enough to cause the problem.
 
-         The ast_sorcery_create, update and delete function have been refactored
-         to better deal with caches and errors.
+         Looking into what was happening, the thing that struck me as odd was
+         that the user_agent variable was meant to be set to the value of the
+         User-Agent SIP header in the incoming REGISTER. However, when removing a
+         contact, the user_agent variable would be set (via ast_strdupa inside a
+         loop) to the stored contact's user_agent. This means that the
+         user_agent's value would be incorrect when attempting to process further
+         contacts in the incoming REGISTER.
 
-         The action is now called on all non-caching wizards first. If ANY succeed,
-         the action is called on all caching wizards and the observers are notified.
-         This way we don't put something in the cache (or update or delete) before
-         knowing the action was performed in at least 1 backend and we only call the
-         observers once even if there were multiple writable backends.
+         The fix here is to use a different variable for the stored user agent
+         when removing a contact. Correcting the behavior to be correct also
+         means the memory usage is less weird, and the issue no longer occurs.
 
-         ast_sorcery_create was never adding to caches in the first place which
-         was preventing contacts from getting added to a memory_cache when they
-         were created.  In turn this was causing memory_cache to emit errors if
-         the contact was deleted before being retrieved (which would have
-         populated the cache).
+         ASTERISK-25929 #close
+         Reported by Joshua Colp
 
-         ASTERISK-25811 #close
-         Reported-by: Ross Beer
+         Change-Id: I7cd24c86a38dec69ebcc94150614bc25f46b8c08
 
-         Change-Id: Id5596ce691685a79886e57b0865888458d6e7b46
-2016-02-25 15:39 +0000 [ee947d4a7a]  gtjoseph <george.joseph@fairview5.com>
+2016-04-18 13:41 +0000 [4caa57f6b3]  Joshua Colp <jcolp@digium.com>
 
-       * res_pjsip_mwi:  Turn some NOTICEs and WARNINGs into debug 1s.
+       * res_pjsip_transport_management: Allow unload to occur.
 
-         There are a few cases where we're emitting notices or warnings
-         for things that really need neither, like a client retrying to subscribe
-         to mwi when they're not conifgured for it.  They get a 404 so there's no
-         need for non-debug messages.
+         At shutdown it is possible for modules to be unloaded that wouldn't
+         normally be unloaded. This allows the environment to be cleaned up.
 
-         Change-Id: I05e38a7ff6c2f2521146f4be6a79731b9864e61f
-2016-02-25 14:17 +0000 [6e70e8ccdb]  gtjoseph <george.joseph@fairview5.com>
+         The res_pjsip_transport_management module did not have the unload
+         logic in it to clean itself up causing the res_pjsip module to not
+         get unloaded. As a result the res_pjsip monitor thread kept going
+         processing traffic and timers when it shouldn't.
 
-       * res_sorcery_memory_cache:  Fix SEGV in some CLI commands
+         Change-Id: Ic8cadee131e3b2c436a81d3ae8bb5775999ae00a
 
-         A few of the CLI commands weren't checking for enough arguments
-         and were SEGVing.
+2016-04-14 13:49 +0000 [0b35582bbb]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: Ie6494132ad2fe54b4f014bcdc112a37c36a9b413
+       * transport management: Register thread with PJProject.
 
-2016-02-25 10:29 +0000 [4417f64d83]  Leif Madsen <leif@leifmadsen.com>
+         The scheduler thread that kills idle TCP connections was not registering
+         with PJProject properly and causing assertions if PJProject was built in
+         debug mode.
 
-       * Add initial support to build Docker images
+         This change registers the thread with PJProject the first time that the
+         scheduler callback executes.
 
-         This work-in-progress is the first step to being able to reliably
-         build Asterisk containers from the Asterisk source. I'm submitting
-         this based on feedback gained at AstriDevCon 2015.
+         AST-2016-005
 
-         Information about how to use this is provided in contrib/docker/README.md
-         and will result in a local Asterisk container being built right from
-         your source. I believe this can eventually be automated via
-         hub.docker.com.
+         Change-Id: I5f7a37e2c80726a99afe9dc2a4a69bdedf661283
 
-         Change-Id: Ifa070706d40e56755797097b6ed72c1e243bd0d1
+2016-03-08 12:12 +0000 [9f8b803a29]  Mark Michelson <mmichelson@digium.com>
 
-2016-02-22 19:31 +0000 [e7a6abbbd3]  Richard Mudgett <rmudgett@digium.com>
+       * res_pjsip_transport_management: Kill idle TCP connections.
 
-       * rtp_engine.h: Remove extraneous semicolons.
+         "Idle" here means that someone connects to us and does not send a SIP
+         request. PJProject will not automatically time out such connections, so
+         it's up to Asterisk to do it instead.
 
-         Change-Id: Ib462633d396fa941379dfef648dcd2245e350084
+         When we receive an incoming TCP connection, we will start a timer
+         (equivalent to transaction timer D) waiting to receive an incoming
+         request. If we do not receive a request in that timeframe, then we will
+         shut down the TCP connection.
 
-2016-02-23 14:57 +0000 [6656afffa0]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25796 #close
+         Reported by George Joseph
 
-       * chan_sip.c: Suppress T.38 SDP c= line if addr is the same.
+         AST-2016-005
 
-         Use the correct comparison function since we only care if the address
-         without the port is the same.
+         Change-Id: I7b0d303e5d140d0ccaf2f7af562071e3d1130ac6
 
-         Change-Id: Ibf6c485f843a1be6dee58a47b33d81a7a8cbe3b0
+2016-03-08 10:52 +0000 [a35d3eb73b]  Mark Michelson <mmichelson@digium.com>
 
-2016-02-16 08:14 +0000 [ea9deff996]  Christof Lauber <christof.lauber@annax.ch>
+       * Rename res_pjsip_keepalive res_pjsip_transport_management
 
-       * res_config_sqlite3: Fix crashes when reading peers from sqlite3 tables
+         ASTERISK-25796
+         Reported by George Joseph
 
-         Introduced realloaction of ast_str buf in sqlite3_escape functions in case
-         the returned buffer from threadstorage was actually too small.
+         AST-2016-005
 
-         Change-Id: I3c5eb43aaade93ee457943daddc651781954c445
+         Change-Id: Id322a05f927392293570599730050bc677d99433
 
-2016-02-11 11:01 +0000 [d2a1457e0b]  gtjoseph <george.joseph@fairview5.com>
+2016-04-14 07:15 +0000 [3de37dee68]  Mark Michelson <mmichelson@digium.com>
 
-       * res_pjsip/config_transport: Allow reloading transports.
+       * AST-2016-004: Fix crash on REGISTER with long URI.
 
-         The 'reload' mechanism actually involves closing the underlying
-         socket and calling the appropriate udp, tcp or tls start functions
-         again.  Only outbound_registration, pubsub and session needed work
-         to reset the transport before sending requests to insure that the
-         pjsip transport didn't get pulled out from under them.
+         Due to some ignored return values, Asterisk could crash if processing an
+         incoming REGISTER whose contact URI was above a certain length.
 
-         In my testing, no calls were dropped when a transport was changed
-         for any of the 3 transport types even if ip addresses or ports were
-         changed. To be on the safe side however, a new transport option was
-         added (allow_reload) which defaults to 'no'.  Unless it's explicitly
-         set to 'yes' for a transport, changes to that transport will be ignored
-         on a reload of res_pjsip.  This should preserve the current behavior.
+         ASTERISK-25707 #close
+         Reported by George Joseph
 
-         Change-Id: I5e759850e25958117d4c02f62ceb7244d7ec9edf
+         Patches:
+               0001-res_pjsip-Validate-that-URIs-don-t-exceed-pjproject-.patch
 
-2016-02-07 17:34 +0000 [6b921f706d]  gtjoseph <george.joseph@fairview5.com>
+         AST-2016-004
 
-       * res_pjproject:  Add ability to map pjproject log levels to Asterisk log levels
+         Change-Id: I0ed3898fe7ab10121b76c8c79046692de3a1be55
 
-         Warnings and errors in the pjproject libraries are generally handled by
-         Asterisk.  In many cases, Asterisk wouldn't even consider them to be warnings
-         or errors so the messages emitted by pjproject directly are either superfluous
-         or misleading.  A good exampe of this are the level-0 errors pjproject emits
-         when it can't open a TCP/TLS socket to a client to send an OPTIONS.  We don't
-         consider a failure to qualify a UDP client an "ERROR", why should a TCP/TLS
-         client be treated any differently?
+2016-03-23 08:59 +0000 [e378c18815]  gtjoseph <george.joseph@fairview5.com>
 
-         A config file for res_pjproject has bene added (pjproject.conf) and a new
-         log_mappings object allows mapping pjproject levels to Asterisk levels
-         (or nothing).  The defaults if no pjproject.conf file is found are the same
-         as those that were hard-coded into res_pjproject initially: 0,1 = LOG_ERROR,
-         2 = LOG_WARNING, 3,4,5 = LOG_DEBUG<level>
+       * pjproject-bundled:  Cleanups for reported issues
 
-         Change-Id: Iba7bb349c70397586889b8f45b8c3d6c6c8c3898
+         PortAudio should no longer be required
+         PJSIP_MAX_PKT_LEN is now 6000
+         Older autoconf issue fixed. (CentOS 6)
 
-2016-02-18 10:55 +0000 [f295088764]  Alexei Gradinari <alex2grad@gmail.com>
+         Change-Id: I463fa9586cbe7c6b3b603289f535bd8e361611dd
+         (cherry picked from commit d963a3374991c64594cf196e90a5c74964c8ba7c)
 
-       * res_pjsip_outbound_publish: Fix processing 412 response
+2016-04-06 11:02 +0000 [dd93204a84]  Joshua Colp <jcolp@digium.com>
 
-         When Asterisk receives a 412 (Conditional Request Failed) response
-         it has to recreate publish session.
-         There is bug in res_pjsip_outbound_publish.c
-         The function sip_outbound_publish_client_alloc is called with wrong object
-         while processing 412 (Conditional Request Failed) response.
-         This patch fixes it.
+       * ChangeLog: Updated for certified/13.8-cert1-rc1
 
-         ASTERISK-25229 #close
+2016-04-06 11:01 +0000 [6d29a919d4]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: I3b62f2debf6bb1e5817cde7b13ea39ef2bf14359
-2016-02-18 11:15 +0000 [f1f79812c1]  Mark Michelson <mmichelson@digium.com>
+       * Release summaries: Add summaries for certified/13.8-cert1-rc1
 
-       * Fix failing threadpool_auto_increment test.
+2016-04-06 10:27 +0000 [4fa3428247]  Joshua Colp <jcolp@digium.com>
 
-         The threadpool_auto_increment test fails infrequently for a couple of
-         reasons
-         * The threadpool listener was notified of fewer tasks being pushed than
-           were actually pushed
-         * The "was_empty" flag was set to an unexpected value.
+       * Release summaries: Remove previous versions
 
-         The problem is that the test pushes three tasks into the threadpool.
-         Test expects the threadpool to essentially gather those three tasks, and
-         then distribute those to the threadpool threads. It also expects that as
-         the tasks are pushed in, the threadpool listener is alerted immediately
-         that the tasks have been pushed. In reality, a task can be distributed
-         to the threadpool threads quicker than expected, meaning that the
-         threadpool has already emptied by the time each subsequent task is
-         pushed. In addition, the internal threadpool queue can be delayed so
-         that the threadpool listener is not alerted that a task has been pushed
-         even after the task has been executed.
+2016-04-06 10:27 +0000 [b418e14998]  Joshua Colp <jcolp@digium.com>
 
-         From the test's point of view, there's no way to be able to predict
-         exactly the order that task execution/listener notifications will occur,
-         and there is no way to know which listener notifications will indicate
-         that the threadpool was previously empty.
+       * .version: Update for certified/13.8-cert1-rc1
 
-         For this reason, the test has been updated to only check the things it
-         can check. It ensures that all tasks get executed, that the threads go
-         idle after the tasks are executed, and that the listener is told the
-         proper number of tasks that were pushed.
+2016-04-06 10:27 +0000 [69b6cf2368]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: I7673120d74adad64ae6894594a606e102d9a1f2c
+       * .lastclean: Update for certified/13.8-cert1-rc1
 
-2016-02-16 23:37 +0000 [79dc5e2f00]  Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+2016-04-06 10:27 +0000 [847dc5c7d7]  Joshua Colp <jcolp@digium.com>
 
-       * app_queue: fix Calculate talktime when is first call answered
+       * realtime: Add database scripts for certified/13.8-cert1-rc1
 
-         Fix calculate of average time for talktime is wrong when is completed the
-         first call beacuse the time for talked would be that call.
+2016-04-06 09:20 +0000 [c23bf7c8df]  Joshua Colp <jcolp@digium.com>
 
-         ASTERISK-25800 #close
+       * ChangeLog: Updated for certified/13.8-cert1-rc1
 
-         Change-Id: I94f79028935913cd9174b090b52bb300b91b9492
+2016-04-06 09:19 +0000 [4f94668022]  Joshua Colp <jcolp@digium.com>
 
-2016-02-17 13:30 +0000 [5a3a857dd6]  Richard Mudgett <rmudgett@digium.com>
+       * Release summaries: Add summaries for certified/13.8-cert1-rc1
 
-       * cel.c: Fix mismatch in ast_cel_track_event() return type.
+2016-04-06 08:47 +0000 [454daec0e1]  Joshua Colp <jcolp@digium.com>
 
-         The return type of ast_cel_track_event() is not large enough to return all
-         64 potential bits of the event enable mask.  Fortunately, the defined CEL
-         events do not really need all 64 bits and the return value is only used to
-         determine if the requested CEL event is enabled.
+       * Release summaries: Remove previous versions
 
-         * Made the ast_cel_track_event() return 0 or 1 only so the return value
-         can fit inside an int type instead of zero or a truncated 64 bit non-zero
-         value.
+2016-04-06 08:47 +0000 [4ba2b5e92c]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: I783d932320db11a95c7bf7636a72b6fe2566904c
+       * .version: Update for certified/13.8-cert1-rc1
 
-2016-02-16 16:37 +0000 [87ab65c557]  gtjoseph <george.joseph@fairview5.com>
+2016-04-06 08:47 +0000 [e6f27ca09c]  Joshua Colp <jcolp@digium.com>
 
-       * res_odbc: Fix exports.in for missing symbols
+       * .lastclean: Update for certified/13.8-cert1-rc1
 
-         res_odbc.exports.in was missing a few symbols.
-         Changed to wildcards.
+2016-04-06 08:47 +0000 [08dbdd5996]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: Ieadd76df24e43ea92577f651d478a0f7b742c30c
+       * realtime: Add database scripts for certified/13.8-cert1-rc1
 
-2016-02-16 12:20 +0000 [c0f3062031]  gtjoseph <george.joseph@fairview5.com>
+2016-04-06 08:26 +0000 [ec7a89771d]  Joshua Colp <jcolp@digium.com>
 
-       * res_statsd:  Fix exports.in for missing symbols
+       * ChangeLog: Updated for certified/13.8-cert1-rc1
 
-         res_statsd.export.in was missing the _va variations of the log
-         functions causing Asterisk to crash in res_pjsip if OPTIONAL_API
-         wasn't enabled.
+2016-04-06 08:25 +0000 [ffcb651205]  Joshua Colp <jcolp@digium.com>
 
-         ASTERISK-25727 #close
-         Reported-by: Gergely Dömsödi
+       * Release summaries: Add summaries for certified/13.8-cert1-rc1
 
-         Change-Id: I395729f9f51bdd33c5ca757f5f96ebedad74077b
+2016-04-06 07:52 +0000 [97499f717a]  Joshua Colp <jcolp@digium.com>
 
-2016-02-15 21:31 +0000 [5e848dae7b]  gtjoseph <george.joseph@fairview5.com>
+       * Release summaries: Remove previous versions
 
-       * res_pjsip_config_wizard:  Add command to export primitive objects
+2016-04-06 07:52 +0000 [99d52771b5]  Joshua Colp <jcolp@digium.com>
 
-         A new command (pjsip export config_wizard primitives) has been added that
-         will export all the pjsip objects it created to the console or a file
-         suitable for reuse in a pjsip.conf file.
+       * .version: Update for certified/13.8-cert1-rc1
 
-         ASTERISK-24919 #close
-         Reported-by: Ray Crumrine
+2016-04-06 07:52 +0000 [eb9e193c65]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: Ica2a5f494244b4f8345b0437b16d06aa0484452b
+       * .lastclean: Update for certified/13.8-cert1-rc1
 
-2016-02-15 15:37 +0000 [34c64707d1]  gtjoseph <george.joseph@fairview5.com>
+2016-04-06 07:52 +0000 [8ec588b8b1]  Joshua Colp <jcolp@digium.com>
 
-       * res_pjsip_caller_id: Fix segfault when replacing rpid or pai header
+       * realtime: Add database scripts for certified/13.8-cert1-rc1
 
-         If the PJSIP_HEADER dialplan function adds a PAI or RPID header and send_rpid
-         or send_pai is set, res_pjsip_caller_id attemps to retrieve, parse and modify
-         the header added by the dialplan function.  Since the header added by the
-         dialplan function is generic string, there are no virtual functions to parse
-         the uri and we get a segfault when we try.  Since the modify, was really only
-         an overwrite, we now just delete the old header if it was type PJSIP_H_OTHER
-         and recreate it.
+2016-04-05 14:23 +0000 [4b87a773dc]  Mark Michelson <mmichelson@digium.com>
 
-         This raises a question for another time though:  What should happen with
-         duplicate headers?  Right now res_pjsip_header_funcs doesn't check for dups
-         so if it's session supplement is loaded after res_pjsip_caller_id's (or any
-         other module that adds headers), there'll be dups in the message.
+       * res_pjsip: Handle deferred SDP hold/unhold properly.
 
-         ASTERISK-25337 #close
+         Some SIP devices indicate hold/unhold using deferred SDP reinvites. In
+         other words, they provide no SDP in the reinvite.
 
-         Change-Id: I5e296b52d30f106b822c0eb27c4c2b0e0f71c7fa
+         A typical transaction that starts hold might look something like this:
 
-2016-02-15 13:08 +0000 [ebe167f792]  Mark Michelson <mmichelson@digium.com>
+         * Device sends reinvite with no SDP
+         * Asterisk sends 200 OK with SDP indicating sendrecv on streams.
+         * Device sends ACK with SDP indicating sendonly on streams.
 
-       * Fix creation race of contact_status structures.
+         At this point, PJMedia's SDP negotiator saves Asterisk's local state as
+         being recvonly.
 
-         It is possible when processing a SIP REGISTER request to have two
-         threads end up creating contact_status structures in sorcery.
-         contact_status is created using a "find or create" function. If two
-         threads call into this at the same time, each thread will fail to find
-         an existing contact_status, and so both will end up creating a new
-         contact status.
+         Now, when the device attempts to unhold, it again uses a deferred SDP
+         reinvite, so we end up doing the following:
 
-         During testing, we would see sporadic failures because the
-         PJSIP_CONTACT() dialplan function would operate on a different
-         contact_status than what had been updated by res_pjsip/pjsip_options.
+         * Device sends reinvite with no SDP
+         * Asterisk sends 200 OK with SDP indicating recvonly on streams
+         * Device sends ACK with SDP indicating sendonly on streams
 
-         The fix here is two-fold:
-         1) The "find or create" function for contact_status now has a lock
-         around the entire operation. This way, if two threads attempt the
-         operation simultaneously, the first to get there will create the object,
-         and the second will find the object created by the first thread.
+         The problem here is that Asterisk offered recvonly, and by RFC 3264's
+         rules, if an offer is recvonly, the answer has to be sendonly. The
+         result is that the device is not taken off hold.
 
-         2) res_sorcery_memory has had its create callback updated so that it
-         will not allow for objects with duplicate IDs to be created.
+         What is supposed to happen is that Asterisk should indicate sendrecv in
+         the 200 OK that it sends. This way, the device has the freedom to
+         indicate sendrecv if it wants the stream taken off hold, or it can
+         continue to respond with sendonly if the purpose of the reinvite was
+         something else (like a session timer refresher).
 
-         Change-Id: I55b1460ff1eb0af0a3697b82d7c2bac9f6af5b97
+         The fix here is to alter the SDP negotiator's state when we receive a
+         reinvite with no SDP. If the negotiator's state is currently in the
+         recvonly or inactive state, then we alter our local state to be
+         sendrecv. This way, we allow the device to indicate the stream state as
+         desired.
 
-2016-02-15 12:52 +0000 [1c4f2a920d]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-25854 #close
+         Reported by Robert McGilvray
 
-       * res_pjsip_pubsub: Move where the subscription is stored to after initialized.
+         Change-Id: I7615737276165eef3a593038413d936247dcc6ed
 
-         A problem arose when testing the AMI subscription listing actions where it
-         was possible for a subscription that had not been fully initialized to be
-         listed. This was problematic as the underlying listing code would crash.
+2016-04-05 09:06 +0000 [c29e2e3fb7]  Joshua Colp <jcolp@digium.com>
 
-         This change makes it so the subscription tree is fully set up before it is
-         added to the list of subscriptions. This ensures that when the listing actions
-         get the subscription it is valid.
+       * .version: Update for certified/13.8
 
-         ASTERISK-25738 #close
+         Change-Id: I37e5a8e36c2f4f9137f8f230c99220005424e514
 
-         Change-Id: Iace2b13641c31bbcc0d43a39f99aba1f340c0f48
+2015-01-06 21:29 +0000 [3c796e694e]  Matt Jordan <mjordan@digium.com>
 
-2015-02-20 20:51 +0000 [ac00c6bc2d]  Corey Farrell <git@cfware.com>
+       * Disable extended support modules
 
-       * main/asterisk.c: Reverse #if statement in listener() to fix code folding.
+         Change-Id: Ia2e359021b3eccecce20028098c5b6d1099c3f9e
 
-         listener() opens the same code block in two places (#if and #else).  This
-         confuses some folding editors causing it to think that an extra code block
-         was opened.  Folding in 'geany' causes all code after listener() to be
-         folded as if it were part of that procedure.
+2016-03-28 18:10 +0000 [7b6c4decd3]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-24813 #close
+       * res_stasis: Fix crash on a hanging up channel.
 
-         Change-Id: I4b8c766e6c91e327dd445e8c18f8a6f268acd961
+         * Give the struct stasis_app_control ao2 object a ref to the channel held
+         in the object.  Now the channel will still be around if a thread needs to
+         post a stasis message instead of crash because the topic was destroyed.
 
-2016-02-09 17:34 +0000 [b1b797e0e7]  gtjoseph <george.joseph@fairview5.com>
+         * Moved stopping any lingering silence generator out of the struct
+         stasis_app_control destructor and made it a part of exiting the Stasis
+         application.  Who knows which thread the destructor will be called under
+         so it cannot affect the channel's silence generator.  Not only was the
+         channel unprotected when the silence generator was stopped, stasis may no
+         longer even control the channel.
 
-       * res_pjsip:  Refactor load_module/unload_module
+         ASTERISK-25882
 
-         load_module was just too hairy with every step having to clean up all
-         previous steps on failure.
+         Change-Id: I21728161b5fe638cef7976fa36a605043a7497e4
 
-         Some of the pjproject init calls have now been moved to a separate
-         load_pjsip function and the unload_pjsip function was enhanced to clean
-         up everything if an error happened at any stage of the load process.
+2016-03-29 14:39 +0000 [fad0410486]  Mark Michelson <mmichelson@digium.com>
 
-         In the process, a bunch of missing pj_shutdowns, serializer_pool_shutdowns
-         and ast_threadpool_shutdowns were also corrected.
+       * ChangeLog: Updated for 13.8.0
 
-         Change-Id: I5eec711b437c35b56605ed99537ebbb30463b302
+2016-03-29 14:39 +0000 [0f885f0076]  Mark Michelson <mmichelson@digium.com>
 
-2016-02-09 22:42 +0000 [20e9792fbc]  Badalyan Vyacheslav <slavon.net@gmail.com>
+       * Release summaries: Add summaries for 13.8.0
 
-       * Resources/res_phoneprov: fix memory leak and heap-use-after-free
+2016-03-29 14:34 +0000 [a1fa37aebd]  Mark Michelson <mmichelson@digium.com>
 
-         * heap-use-after-free happens when we free "cfg"
-         but then use "value" which refers to it
+       * Release summaries: Remove previous versions
 
-         * A memory leak occurs because in some cases
-         it is not released "defaults"
+2016-03-29 14:34 +0000 [e7de5fd439]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-25721 #close
-         Reported by: Badalyan Vyacheslav
-         Tested by: Badalyan Vyacheslav
+       * .version: Update for 13.8.0
 
-         Change-Id: I3807d3f4726df6864430ec144cf6265d3f538469
+2016-03-29 14:34 +0000 [8baf813848]  Mark Michelson <mmichelson@digium.com>
 
-2016-02-11 11:21 +0000 [962a9d61f8]  Etienne Lessard (license #6394)
+       * .lastclean: Update for 13.8.0
 
-       * func_iconv: Ensure output strings are properly terminated.
+2016-03-29 14:34 +0000 [42469df205]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-25272 #close
-         Reported by: Etienne Lessard
-         patches:
-          AST-25272.patch submitted by Etienne Lessard (license #6394)
+       * realtime: Add database scripts for 13.8.0
 
-         Change-Id: Id75ad202300960a1e91afe15e319d992936ecc17
+2016-03-22 13:32 +0000 [06f5ace1fa]  Mark Michelson <mmichelson@lunkwill>
 
-2016-02-10 16:16 +0000 [c1bf014ea0]  gtjoseph <george.joseph@fairview5.com>
+       * ChangeLog: Updated for 13.8.0-rc1
 
-       * res_pjsip:  Handle pjsip_dlg_create_uas deprecation
+2016-03-22 13:26 +0000 [a698424678]  Mark Michelson <mmichelson@lunkwill>
 
-         Pjproject has deprecated pjsip_dlg_create_uas in 2.5 and replaced it with
-         pjsip_dlg_create_uas_and_inc_lock which, as the name implies, automatically
-         increments the lock on the returned dialog.  To account for this, configure.ac
-         now detects the presence of pjsip_dlg_create_uas_and_inc_lock and res_pjsip.c
-         has an #ifdef HAVE_PJSIP_DLG_CREATE_UAS_AND_INC_LOCK to decide whether to use
-         the original call or the new one.  If the new one was used, the ref count is
-         decremented before returning.
+       * Release summaries: Add summaries for 13.8.0-rc1
 
-         ASTERISK-25751 #close
-         Reported-by Josh Colp
+2016-03-22 13:21 +0000 [e395a0b973]  Mark Michelson <mmichelson@lunkwill>
 
-         Change-Id: I1be776b94761df03bd0693bc7795a75682615ca8
+       * .version: Update for 13.8.0-rc1
 
-2016-02-09 23:40 +0000 [bd07b6f0dd]  Badalyan Vyacheslav <slavon.net@gmail.com>
+2016-03-22 13:21 +0000 [38a86b2dbf]  Mark Michelson <mmichelson@lunkwill>
 
-       * Build: Added testing compiler to support the system sanitizes
+       * .lastclean: Update for 13.8.0-rc1
 
-         In older versions of the compiler was not sanitizes.
-         Compilers other than GCC can not support the Usan and TSAN
-         or have other options for *FLAGS.
+2016-03-22 13:21 +0000 [e0c8c8bf4a]  Mark Michelson <mmichelson@lunkwill>
 
-         ASTERISK-25767 #close
-         Reported by: Badalyan Vyacheslav
-         Tested by: Badalyan Vyacheslav
+       * realtime: Add database scripts for 13.8.0-rc1
 
-         Change-Id: Iefce6608221fa87884b82ae3cb5649b7b1804916
+2016-03-18 14:31 +0000 [6a40520fe9]  Kevin Harwell <kharwell@digium.com>
 
-2016-02-09 20:57 +0000 [e9e896abd1]  Badalyan Vyacheslav <v.badalyan@open-bs.ru>
+       * chan_pjsip: ref leak when checking direct_media_glare
 
-       * Build: Fix menuselect USAN conflicts
+         Fix the reference leak introduced in the following commit:
 
-         USAN can be used together with other sanitizers.
+         9444ddadf8525d1ce66a1faf1db97f9f6c265ca4
 
-         Reported by: Badalyan Vyacheslav
-         Tested by: Badalyan Vyacheslav
+         ASTERISK-25849
 
-         Change-Id: I3bffa350d70965c3026651dba3a12414d0aaa45f
+         Change-Id: I5cfefd5ee6c1c3a1715c050330aaa10e4d2a5e85
+2016-03-16 12:37 +0000 [9444ddadf8]  Kevin Harwell <kharwell@digium.com>
 
-2016-02-09 14:21 +0000 [93e8ed0154]  Corey Farrell <git@cfware.com>
+       * chan_pjsip: transfers with direct media reinvite has wrong address/port
 
-       * Simplify and fix conditional in FD_SET.
+         During a transfer involving direct media a race occurs between when the
+         transferer channel is swapped out, initiating rtp changes/updates, and the
+         subsequent reinvites.
 
-         FD_SET contains a conditional statement to protect against buffer
-         overruns.  The statement was overly complicated and prevented use
-         of the last array element of ast_fdset.  We now just verify the fd
-         is less than ast_FDMAX.
+         When Alice, after speaking with Charlie (Bob is on hold), connects Bob and
+         Charlie invites are sent to each in order to establish the call between them.
+         Bob is taken off hold and Charlie is told to have his media flow through
+         Asterisk. However, if before those invites go out the bridge updates Bob's
+         and/or Charlie's rtp information with direct media data (i.e. address, port)
+         then the invite(s) will contain the remote data in the SDP instead of the
+         Asterisk data.
 
-         Change-Id: I41895c0b497b052aef5bf49d75c817c48b326f40
+         The race occurs in the native bridge glue code when updating the peer. The
+         direct_media_address can get set twice before sending out the first invite
+         during call connection. This can happen because the checking/setting of the
+         direct_media_address happened in one thread while the sending of the invite(s)
+         happened in another thread.
 
-2016-02-09 07:11 +0000 [a7c8d4cd6b]  Joshua Colp <jcolp@digium.com>
+         This fix removes the race condition by moving the checking/setting of the
+         direct_media_address to be in the same thread as the sending of the invites(s).
+         This serializes the checking/setting and sending so they can no longer happen
+         out of order.
 
-       * tests/test_sorcery_memory_cache_thrash: Improve termination process.
+         ASTERISK-25849 #close
 
-         When terminating the threads thrashing a sorcery memory cache each
-         would be told to stop and then we would wait on them. During at
-         least one thrashing test this was problematic due to the specific
-         usage pattern in use. It would take some time for termination of the
-         thread to occur.
+         Change-Id: Idfea590175e74f401929a601dba0c91ca1a7f873
 
-         This would occur due to contention between the threads retrieving
-         and the threads updating the cache. As the retrieving threads are
-         given priority it may be some time before the updating threads
-         are able to proceed.
+2015-10-19 07:11 +0000 [88240f98d9]  Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
 
-         This change makes it so all threads are told to stop and then each
-         are joined to ensure they stop. This way all the threads should
-         stop at around the same time instead of waiting for one to stop,
-         the next to stop, then the next, and so on. As a result of this
-         the execution time for each thrash test is much closer to their
-         expected value than previously seen as well.
+       * install_prereq: Update repositories before install on Debian systems
 
-         Change-Id: I04a53470b0ea4170b8819180b0bd7475f3642827
-2016-01-29 17:56 +0000 [2451d4e455]  gtjoseph <george.joseph@fairview5.com>
+         When to install packages the indexed local is more old of the
+         version of software on the repository they have been upgraded by security
+         update then get the package will give 404 not found.
 
-       * res_pjsip:  Fix infinite recursion when loading transports from realtime
+         The patch prevent by update local index to repository for aptitude before
+         install.
 
-         Attempting to load a transport from realtime was forcing asterisk into an
-         infinite recursion loop.  The first thing transport_apply did was to do a
-         sorcery retrieve by id for an existing transport of the same name. For files,
-         this just returns the previous object from res_sorcery_config's internal
-         container, if any.  For realtime, the res_sourcery_realtime driver looks in the
-         database and finds the existing row but now it has to rehydrate it into a
-         sorcery object which means calling... transport_apply.  And so it goes.
+         ASTERISK-25495 #close
 
-         The main issue with loading from realtime (apart from the loop) was that
-         transport stores structures and pointers directly in the ast_sip_transport
-         structure instead of the separate ast_transport_state structure.  This patch
-         separates those items into the ast_sip_transport_state structure.  The pattern
-         is roughly the same as res_pjsip_outbound_registration.
+         Reporte by: Rodrigo Ramírez Norambuena
 
-         Although all current usages of ast_sip_transport and ast_sip_transport_state
-         were modified to use the new ast_sip_get_transport_state API, the original
-         items are left in ast_sip_transport and kept updated to maintain ABI
-         compatability for third-party modules.  They are marked as deprecated and
-         noted that they're now in ast_sip_transport_state.
+         Change-Id: I645959e553aac542805ced394cac2dca964051fa
+         (cherry picked from commit 88f3dbaec9509bfba8bc1de7799aa0dc65304bb5)
 
-         ASTERISK-25606 #close
-         Reported-by: Martin Moučka
+2015-06-03 20:12 +0000 [efcf9a96db]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
 
-         Change-Id: Ic7a836ea8e786e8def51fe3f8cce855ea54f5f19
+       * install_prereq: Check if is installed aptitude otherwise to install.
 
-2016-01-25 17:36 +0000 [6f978fbfe5]  Richard Mudgett <rmudgett@digium.com>
+         If in Debian or system based, dont have aptitude installed the script do
+         nothing. This patch checked if aptitude  installed, if not installed.
 
-       * app_confbridge: Only use b_profile options from the conference.
+         Also, if execute script with all packages installed yet, the script not show
+         nothing and return exit 1 because the command 'grep' get nothing from pipe from
+         'awk'.
 
-         A user cannot set new bridge options after the conference is created by
-         the first user.  Attempting to do so is documented as undefined behavior.
+         ASTERISK-25113 #close
+         Reported By: Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
 
-         This patch ensures that the bridge profile options used are from the
-         conference and not what a subsequent user may have tried to set.
+         Change-Id: Iebdff55805d3917166e5e08e0a1e2176f36ff27f
+         (cherry picked from commit 6737ded0581a9e1256bdfe30c1d747e7ca93f8b3)
 
-         Change-Id: I1b6383eba654679e5739d5a8de98199cf074a266
+2016-03-03 04:43 +0000 [2b1b8e382a]  Sergio Medina Toledo <lumasepa@gmail.com>
 
-2016-02-05 10:29 +0000 [ec8fd6714d]  gtjoseph <george.joseph@fairview5.com>
+       * res_pjsip_refer.c: Fix seg fault in process of Refer-to header.
 
-       * chan_misdn: Fix a few issues causing compile errors
+         The "Refer-to" header of an incoming REFER request is parsed by
+         pjsip_parse_uri().  That function requires the URI parameter to be NULL
+         terminated.  Unfortunately, the previous code added the NULL terminator by
+         overwriting memory that may not be safe.  The overwritten memory results
+         could be benign, memory corruption, or a segmentation fault.  Now the URI
+         is NULL terminated safely by copying the URI to a new chunk of memory with
+         the correct size to be NULL terminated.
 
-         Change-Id: I54b48c24d7ca88ed80496fdfd142d08772a7ab98
+         ASTERISK-25814 #close
 
-2016-02-04 16:17 +0000 [6a799cd78f]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: I32565496684a5a49c3278fce06474b8c94b37342
 
-       * Check for OpenSSL defines before trying to use them.
+2016-03-11 12:22 +0000 [de04308ae4]  Richard Mudgett <rmudgett@digium.com>
 
-         The SSL_OP_NO_TLSv1_1 and SSL_OP_NO_TLSv1_2 defines did not exist prior
-         to OpenSSL version 1.0.1. A recent commit attempts to, by default, set
-         these options, which can cause problems on systems with older OpenSSL
-         installations.
+       * chan_sip.c: Fix mwi resub deadlock potential.
 
-         This commit adds a configure script check for those defines and will not
-         attempt to make use of those if they do not exist. We will print a
-         warning urging the user to upgrade their OpenSSL installation if those
-         defines are not present.
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-         Change-Id: I6a2eb9a43fd0738b404d8f6f2cf4b5c22d9d752d
-2016-02-03 14:25 +0000 [953d1cc11a]  gtjoseph <george.joseph@fairview5.com>
+         Stopping a scheduled event can result in a deadlock if the scheduled event
+         is running when you try to stop the event.  If you hold a lock needed by
+         the scheduled event while trying to stop the scheduled event then a
+         deadlock can happen.  The general strategy for resolving the deadlock
+         potential is to push the actual starting and stopping of the scheduled
+         events off onto the scheduler/do_monitor() thread by scheduling an
+         immediate one shot scheduled event.  Some restructuring may be needed
+         because the code may assume that the start/stop of the scheduled events is
+         immediate.
 
-       * pjsip/alembic:  Add missing columns to system and registration
+         ASTERISK-25023 #close
 
-         ps_systems needed disable_tcp_switch
-         ps_registrations needed line and endpoint
+         Change-Id: I96d429c57a48861fd8bde63dd93db4e92dc3adb6
 
-         ASTERISK-25737 #close
+2016-03-10 17:01 +0000 [5f6627a8a4]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Iaf9c2d69e62243d9fa53104c28c5339c47d4ac19
+       * chan_sip.c: Fix registration timeout and expire deadlock potential.
 
-2016-02-04 11:39 +0000 [23829b3253]  Mark Michelson <mmichelson@digium.com>
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-       * res_stasis_device_state: Fix refcounting error.
+         Stopping a scheduled event can result in a deadlock if the scheduled event
+         is running when you try to stop the event.  If you hold a lock needed by
+         the scheduled event while trying to stop the scheduled event then a
+         deadlock can happen.  The general strategy for resolving the deadlock
+         potential is to push the actual starting and stopping of the scheduled
+         events off onto the scheduler/do_monitor() thread by scheduling an
+         immediate one shot scheduled event.  Some restructuring may be needed
+         because the code may assume that the start/stop of the scheduled events is
+         immediate.
 
-         Device state subscription lifetimes were governed by when the
-         subscription was established and unsubscribed from. However, it is
-         possible that at the time of unsubscription, there could be device state
-         events still in flight. When those device state events occur, the device
-         state callback could attempt to dereference a freed pointer. Crash.
+         ASTERISK-25023
 
-         This change ensures that the lifetime of the device state subscription
-         does not end until the underlying stasis subscription has confirmed that
-         its final message has been sent.
+         Change-Id: I2e40de89efc8ae6e8850771d089ca44bc604b508
 
-         Change-Id: I25a0f1472894c1a562252fb7129671478e25e9b2
+2016-03-10 12:17 +0000 [32bd7a64f9]  Richard Mudgett <rmudgett@digium.com>
 
-2016-01-27 10:44 +0000 [4e8e6d3922]  Sean Bright <sean.bright@gmail.com>
+       * chan_sip.c: Fix t38id deadlock potential.
 
-       * res_rtp_asterisk: Allow ICE host candidates to be overriden
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-         During ICE negotiation the IPs of the local interfaces are sent to the remote
-         peer as host candidates. In many cases Asterisk is behind a static one-to-one
-         NAT, so these host addresses will be internal IP addresses.
+         Stopping a scheduled event can result in a deadlock if the scheduled event
+         is running when you try to stop the event.  If you hold a lock needed by
+         the scheduled event while trying to stop the scheduled event then a
+         deadlock can happen.  The general strategy for resolving the deadlock
+         potential is to push the actual starting and stopping of the scheduled
+         events off onto the scheduler/do_monitor() thread by scheduling an
+         immediate one shot scheduled event.  Some restructuring may be needed
+         because the code may assume that the start/stop of the scheduled events is
+         immediate.
 
-         To help in hiding the topology of the internal network, this patch adds the
-         ability to override the host candidates by matching them against a
-         user-defined list of replacements.
+         ASTERISK-25023
 
-         Change-Id: I1c9541af97b83a4c690c8150d19bf7202c8bff1f
+         Change-Id: If595e4456cd059d7171880c7f354e844c21b5f5f
 
-2015-12-07 12:46 +0000 [c6b1b2b1c8]  Richard Mudgett <rmudgett@digium.com>
+2016-03-09 16:34 +0000 [43556b800b]  Richard Mudgett <rmudgett@digium.com>
 
-       * AST-2016-003 udptl.c: Fix uninitialized values.
+       * chan_sip.c: Fix reinviteid deadlock potential.
 
-         Sending UDPTL packets to Asterisk with the right amount of missing
-         sequence numbers and enough redundant 0-length IFP packets, can make
-         Asterisk crash.
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-         ASTERISK-25603 #close
-         Reported by: Walter Doekes
+         Stopping a scheduled event can result in a deadlock if the scheduled event
+         is running when you try to stop the event.  If you hold a lock needed by
+         the scheduled event while trying to stop the scheduled event then a
+         deadlock can happen.  The general strategy for resolving the deadlock
+         potential is to push the actual starting and stopping of the scheduled
+         events off onto the scheduler/do_monitor() thread by scheduling an
+         immediate one shot scheduled event.  Some restructuring may be needed
+         because the code may assume that the start/stop of the scheduled events is
+         immediate.
 
-         ASTERISK-25742 #close
-         Reported by: Torrey Searle
+         ASTERISK-25023
 
-         Change-Id: I97df8375041be986f3f266ac1946a538023a5255
-2016-02-03 12:05 +0000 [f8acadde2c]  Joshua Colp <jcolp@digium.com>
+         Change-Id: I9c11b9d597468f63916c99e1dabff9f4a46f84c1
 
-       * AST-2016-001 http: Provide greater control of TLS and set modern defaults.
+2016-03-09 16:32 +0000 [38c1cdab2c]  Richard Mudgett <rmudgett@digium.com>
 
-         This change exposes the configuration of various aspects of the TLS
-         support and sets the default to the modern standards.
+       * chan_sip.c: Fix packet retransid deadlock potential.
 
-         The TLS cipher is now set to the best values according to the
-         Mozilla OpSec team, different TLS versions can now be disabled, and
-         the cipher order can be forced to be that of the server instead of
-         the client.
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-         ASTERISK-24972 #close
+         Stopping a scheduled event can result in a deadlock if the scheduled event
+         is running when you try to stop the event.  If you hold a lock needed by
+         the scheduled event while trying to stop the scheduled event then a
+         deadlock can happen.  The general strategy for resolving the deadlock
+         potential is to push the actual starting and stopping of the scheduled
+         events off onto the scheduler/do_monitor() thread by scheduling an
+         immediate one shot scheduled event.  Some restructuring may be needed
+         because the code may assume that the start/stop of the scheduled events is
+         immediate.
 
-         Change-Id: I0a10f2883f7559af5e48dee0901251dbf30d45b8
-2015-09-28 17:07 +0000 [3c81a052c8]  Richard Mudgett <rmudgett@digium.com>
+         * Fix retrans_pkt() to call check_pendings() with both the owner channel
+         and the private objects locked as required.
 
-       * AST-2016-002 chan_sip.c: Fix retransmission timeout integer overflow.
+         * Refactor dialog retransmission packet list to safely remove packet
+         nodes.  The list nodes are now ao2 objects.  The list has a ref and the
+         scheduled entry has a ref.
 
-         Setting the sip.conf timert1 value to a value higher than 1245 can cause
-         an integer overflow and result in large retransmit timeout times.  These
-         large timeout times hold system file descriptors hostage and can cause the
-         system to run out of file descriptors.
+         ASTERISK-25023
 
-         NOTE: The default sip.conf timert1 value is 500 which does not expose the
-         vulnerability.
+         Change-Id: I50926d81be53f4cd3d572a3292cd25f563f59641
 
-         * The overflow is now detected and the previous timeout time is
-         calculated.
+2016-03-09 16:26 +0000 [e4ad55c888]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25397 #close
-         Reported by: Alexander Traud
+       * chan_sip.c: Fix waitid deadlock potential.
 
-         Change-Id: Ia7231f2f415af1cbf90b923e001b9219cff46290
-2016-02-03 14:07 +0000 [2a6ee8caeb]  gtjoseph <george.joseph@fairview5.com>
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-       * logging: Remove/fix some message annoyances
+         Stopping a scheduled event can result in a deadlock if the scheduled event
+         is running when you try to stop the event.  If you hold a lock needed by
+         the scheduled event while trying to stop the scheduled event then a
+         deadlock can happen.  The general strategy for resolving the deadlock
+         potential is to push the actual starting and stopping of the scheduled
+         events off onto the scheduler/do_monitor() thread by scheduling an
+         immediate one shot scheduled event.  Some restructuring may be needed
+         because the code may assume that the start/stop of the scheduled events is
+         immediate.
 
-         test_dlinklists doesn't need to NOTICE everyone that every macro worked.
+         * Made always run check_pendings() under the scheduler thread so scheduler
+         ids can be checked safely.
 
-         res_phoneprov doesn't need to VERBOSE everyone that a phoneprov extension or
-         provider was registered.
+         ASTERISK-25023
 
-         res_odbc was missing a newline at the end of one message.
+         Change-Id: Ia834d6edd5bdb47c163e4ecf884428a4a8b17d52
 
-         Change-Id: I6c06361518ef3711821795e535acd439782a995e
+2016-03-08 15:08 +0000 [98d5669c28]  Richard Mudgett <rmudgett@digium.com>
 
-2016-02-02 10:52 +0000 [32fc784284]  Alexei Gradinari License #5691
+       * chan_sip.c: Fix session timers deadlock potential.
 
-       * res_sorcery_realtime: Fix regex regression.
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-         A regression was introduced where searching for realtime PJSIP objects
-         by regex by starting the regex with a leading "^" would cause no items
-         to be returned.
+         Stopping a scheduled event can result in a deadlock if the scheduled event
+         is running when you try to stop the event.  If you hold a lock needed by
+         the scheduled event while trying to stop the scheduled event then a
+         deadlock can happen.  The general strategy for resolving the deadlock
+         potential is to push the actual starting and stopping of the scheduled
+         events off onto the scheduler/do_monitor() thread by scheduling an
+         immediate one shot scheduled event.  Some restructuring may be needed
+         because the code may assume that the start/stop of the scheduled events is
+         immediate.
 
-         This was due to a change which attempted to drop the requirement for a
-         leading "^" to be present due to how some CLI commands formulate their
-         regexes. However, the change, rather than simply eliminating the
-         requirement, caused any regexes that did begin with "^" to end up not
-         returning the expected results.
+         ASTERISK-25023
 
-         This change fixes the problem by inspecting the regex and formulating
-         the realtime query differently depending on if it begins with "^".
+         Change-Id: I6d65269151ba95e0d8fe4e9e611881cde2ab4900
 
-         ASTERISK-25702 #close
-         Reported by Nic Colledge
+2016-03-07 13:21 +0000 [9cb8f73226]  Richard Mudgett <rmudgett@digium.com>
 
-         Patches:
-             realtime_retrieve_regex.patch submitted by Alexei Gradinari License #5691
+       * chan_sip.c: Fix autokillid deadlock potential.
 
-         Change-Id: I055df608a6e6a10732044fa737a9fe8dca602693
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-2016-02-02 04:05 +0000 [0405c31756]  Karsten Wemheuer <kwe-digium@iptam.com>
+         Stopping a scheduled event can result in a deadlock if the scheduled event
+         is running when you try to stop the event.  If you hold a lock needed by
+         the scheduled event while trying to stop the scheduled event then a
+         deadlock can happen.  The general strategy for resolving the deadlock
+         potential is to push the actual starting and stopping of the scheduled
+         events off onto the scheduler/do_monitor() thread by scheduling an
+         immediate one shot scheduled event.  Some restructuring may be needed
+         because the code may assume that the start/stop of the scheduled events is
+         immediate.
 
-       * res_xmpp: Does not connect in component mode
+         * Fix clearing autokillid in __sip_autodestruct() even though we could
+         reschedule.
 
-         The module res_xmpp does not accept usernames in the form used in component
-         mode (XEP-0114). In component mode there is no @something in the name.
-         In component mode the connection is now not dropped anymore.
+         ASTERISK-25023
 
-         If the xmpp server sends out a "stream" tag before handshake is finished,
-         the connection gets dropped in res_xmpp. Now this tag will be ignored and
-         the connection will be established.
+         Change-Id: I450580dbf26e2e3952ee6628c735b001565c368f
 
-         After connecting there will be an exchange of presence states. This does
-         not work as expected in component mode. The responsible function
-         "xmpp_pak_presence" is left before the states get sent out. Sending
-         presence states in component mode is now moved to the top of the function.
+2016-03-07 18:28 +0000 [c5c7f48a15]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25735 #close
+       * chan_sip.c: Fix provisional_keepalive_sched_id deadlock.
 
-         Change-Id: I70e036f931c3124ebb2ad1e56f93ed35cfdd9d5c
-2016-02-01 13:04 +0000 [8804d0973c]  gtjoseph <george.joseph@fairview5.com>
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-       * build_system:  Fix some warnings highlighted by clang
+         Stopping a scheduled event can result in a deadlock if the scheduled event
+         is running when you try to stop the event.  If you hold a lock needed by
+         the scheduled event while trying to stop the scheduled event then a
+         deadlock can happen.  The general strategy for resolving the deadlock
+         potential is to push the actual starting and stopping of the scheduled
+         events off onto the scheduler/do_monitor() thread by scheduling an
+         immediate one shot scheduled event.  Some restructuring may be needed
+         because the code may assume that the start/stop of the scheduled events is
+         immediate.
 
-         Fix some warnings found with clang.
+         ASTERISK-25023
 
-         Change-Id: I5195b6189b148c2ee3ed4a19d015a6d4ef3e77bd
+         Change-Id: I98a694fd42bc81436c83aa92de03226e6e4e3f48
 
-2016-02-01 13:16 +0000 [109b0aff6b]  gtjoseph <george.joseph@fairview5.com>
+2016-03-09 11:22 +0000 [f959d84dfd]  Richard Mudgett <rmudgett@digium.com>
 
-       * res/Makefile: Fix bug in "clean" target for ari
+       * chan_sip.c: Adjust how dialog_unlink_all() stops scheduled events.
 
-         The "clean" target was attempting to clean res/ari from inside
-         the res directory which doesn't remove anything.  Removed the res/
-         prefix.
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-         Change-Id: Ib1a518d54efa81b9fd5a42742d43cc3767435bf6
+         * Make dialog_unlink_all() unschedule all items at once in the sched
+         thread.
 
-2016-01-31 20:13 +0000 [a85fab7c44]  gtjoseph <george.joseph@fairview5.com>
+         ASTERISK-25023
 
-       * pjsip/alembic: Fix definition of qualify_timeout
+         Change-Id: I7743072fb228836e8228b72f6dc46c8cc50b3fb4
 
-         A recent commit set qualify_timeout to Decimal which isn't supported.
-         This path corrects it to Float.
+2016-03-10 21:54 +0000 [5f3225ddcc]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I038f5274ba8cb60f8518a5845ce448d49306aadf
+       * chan_sip.c: Clear scheduled immediate events on unload.
 
-2016-01-29 07:39 +0000 [aa9348ab9a]  Stefan Engström <stefanen@kth.se>
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-       * chan_sip.c: AMI & CLI notify methods get different values of asterisk's own ip.
+         The reordering of chan_sip's shutdown is to handle any immediate events
+         that get put onto the scheduler so resources aren't leaked.  The typical
+         immediate events at this time are going to be concerned with stopping
+         other scheduled events.
 
-         When I ask asterisk to send a SIP NOTIFY message to a sip peer using either a)
-         AMI action: SIPnotify or b) cli command: sip notify <cmd> <peer>, I expect
-         asterisk to include the same value for its own ip in both cases a) and b),
-         but it seems a) produces a contact header like Contact:
-         <sip:asterisk@192.168.1.227:8060> whereas b) produces a contact header like
-         <sip:asterisk@127.0.0.1:8060>. 0.0.0.0:8060 is my udpbindaddr in sip.conf
+         ASTERISK-25023
 
-         My guess is that manager_sipnotify should call
-         ast_sip_ouraddrfor(&p->sa, &p->ourip, p) the same way sip_cli_notify does,
-         because after applying this patch, both cases a) and b) produce
-         the contact header that I expect: <sip:asterisk@192.168.1.227:8060>
+         Change-Id: I3f6540717634f6f2e84d8531a054976f2bbb9d20
 
-         Reported by: Stefan Engström
-         Tested by: Stefan Engström
+2016-03-15 14:51 +0000 [7a74971771]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I86af5e209db64aab82c25417de6c768fb645f476
-2015-12-23 15:07 +0000 [65bd4fcc3f]  Mark Michelson <mmichelson@digium.com>
+       * sip/dialplan_functions.c: Fix /channels/chan_sip/test_sip_rtpqos crash.
 
-       * res_odbc: Remove connection management
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-         Asterisk by default will create a single database connection and share
-         it among all threads that attempt to access the database. In previous
-         versions of Asterisk, this was tolerable, because the most used channel
-         driver, chan_sip, mostly accessed the database from a single thread.
-         With PJSIP, however, many threads may be attempting to perform database
-         operations, and there is the potential for many more database accesses,
-         meaning the concurrency is a horrible bottleneck if only one connection
-         is shared.
+         Delaying destruction of the chan_sip sip_pvt structures caused the
+         /channels/chan_sip/test_sip_rtpqos unit test to crash.  That test
+         registers a special test ast_rtp_engine with the rtp engine module.  When
+         the unit test completes it cleans up by unregistering the test
+         ast_rtp_engine and exits.  Since the delayed destruction of the sip_pvt
+         happens after the unit test returns, the destructor tries to call the rtp
+         engine destroy callback of the test ast_rtp_engine auto variable which no
+         longer exists on the stack.
 
-         Asterisk has a connection pooling facility built into it, but the
-         implementation has flaws. For one, there is a strict limit on the number
-         of simultaneous connections that could be made to the database. Anything
-         beyond the maximum would result in a failed operation. Attempting to
-         predict what the maximum should be is nearly impossible even for someone
-         intimately familiar with Asterisk's threading model. In addition, use of
-         transactions in the dialplan can cause some severe bugs if connection
-         pooling is enabled.
+         * Change the test ast_rtp_engine auto variable to a static variable.  Now
+         the variable can still exist after the unit test exits so the delayed
+         sip_pvt destruction can complete successfully.
 
-         This commit seeks to fix the concurrency problem by removing all
-         connection management code from Asterisk and leaving that to the
-         underlying unixODBC code instead. Now, Asterisk does not share a single
-         connection, nor does it try to maintain a connection pool. Instead, all
-         Asterisk ever does is request a connection from unixODBC and allow
-         unixODBC to either allocate those connections or retrieve them from a
-         pool.
+         ASTERISK-25023
 
-         Doing this has a bit of a ripple effect. For one, since connections are
-         not long-lived objects, several of the safeguards that previously
-         existed have been removed. We don't have to worry about trying to use a
-         connection that has gone stale. In every case, when we request a
-         connection, it has just been made and we don't need to perform any
-         sanity checks to be sure it's still active.
+         Change-Id: I61e34a12d425189ef7e96fc69ae14993f82f3f13
 
-         Another major player affected by this change is transactions.
-         Transactions and their respective connections were so tightly coupled
-         that it was almost pornographic. This code change moves
-         transaction-related code to its own file separate from the core ODBC
-         functionality. This way, the core of ODBC does not even have to know
-         that transactions exist.
+2016-03-15 13:31 +0000 [d2c09ed73b]  Andrew Nagy <andrew.nagy@the159.com>
 
-         In making this large change, I had to look at a lot of code and
-         understand it. When making this change, I discovered several places
-         where the behavior is definitely not ideal, but it seemed outside the
-         scope of this change to be fixing it. Instead, any place where I saw
-         some sort of room for improvement has had a XXX comment added explaining
-         what could be altered to improve it.
+       * app_stasis: Don't hang up if app is not registered
 
-         Change-Id: I37a84def5ea4ddf93868ce8105f39de078297fbf
+         This prevents pbx_core from hanging up the channel if the app isn't
+         registered.
 
-2016-01-28 12:44 +0000 [2a9e623ff9]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25846 #close
 
-       * config_options.c: Fix warning message wording.
+         Change-Id: I63216a61f30706d5362bc0906b50b6f0544aebce
+2016-03-07 15:50 +0000 [b2d2906445]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I915ea437936320393afde0e7552cf0a980a6b2e4
+       * sched.c: Ensure oldest expiring entry runs first.
 
-2016-01-25 17:34 +0000 [ed3c9c1512]  Richard Mudgett <rmudgett@digium.com>
+         This patch is part of a series to resolve deadlocks in chan_sip.c.
 
-       * app_confbridge.c: Replace inlined code with existing function.
+         * Updated sched unit test to check new behavior.
 
-         Change-Id: Ida5594e9f8d7c1fc18eeb733a11f8fb96326da51
+         ASTERISK-25023
 
-2016-01-25 16:05 +0000 [1d0abf86e7]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ib69437327b3cda5e14c4238d9ff91b2531b34ef3
 
-       * app_confbridge: Add ability to get the muted conference state.
+2016-03-04 18:25 +0000 [9ae21b510f]  Richard Mudgett <rmudgett@digium.com>
 
-         * Added CONFBRIDGE_INFO(muted,) for querying the muted conference state.
+       * chan_sip.c: Made sip_reinvite_retry() call sip_pvt_lock_full().
 
-         * Added Muted header to AMI ConfbridgeListRooms action response list
-         events to indicate the muted conference state.
+         Change-Id: I90f04208a089f95488a2460185a8dbc3f6acca12
 
-         * Added Muted column to CLI "confbridge list" output to indicate the muted
-         conference state and made the locked column a yes/no value instead of a
-         locked/unlocked value.
+2016-03-07 18:56 +0000 [56bcb97a3c]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-20987
-         Reported by: hristo
+       * chan_sip.c: Simplify sip_pvt destructor call levels.
 
-         Change-Id: I4076bd8ea1c23a3afd4f5833e9291b49a0c448b1
+         Remove destructor calling destroy_it calling really_destroy_it
+         for no benefit.  Just make the destructor the really_destroy_it
+         function.
 
-2016-01-26 17:59 +0000 [f0d40afa69]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Idea0d47b27dd74f2488db75bcc7f353d8fdc614a
 
-       * app_confbridge.c: Update CONFBRIDGE and CONFBRIDGE_INFO documentation.
+2016-03-14 08:59 +0000 [677a65fcbb]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: Ic1f9e22ba1f2ff3b3f5cb017c5ddcd9bd48eccc7
+       * build: Add configure check for proto field of PJSIP TLS transport setting.
 
-2016-01-25 15:48 +0000 [3e51e5c7fd]  Richard Mudgett <rmudgett@digium.com>
+         Older versions of PJSIP do not have the proto field on the TLS transport
+         setting structure. This change adds a configure check so even if it is
+         not present we will still be able to build.
 
-       * app_confbridge: Make non-admin users join a muted conference muted.
+         Change-Id: Ibf3f47befb91ed1b8194bf63888baa6fee05aba9
 
-         ASTERISK-20987 #close
-         Reported by: hristo
+2016-03-12 16:02 +0000 [32f0a3d52a]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: Ic61a2b524ab3a4cfadf227fc6b3506527bc03f38
+       * build_system:  Split COMPILE_DOUBLE from DONT_OPTIMIZE
 
-2016-01-27 13:02 +0000 [9da18af992]  gtjoseph <george.joseph@fairview5.com>
+         I can't ever recall actually needing the intermediate files or the checking
+         that a double compile produces.  What I CAN remember is every DONT_OPTIMIZE
+         build needing 3 invocations of gcc instead of 1 just to do the checks and
+         produce those intermediate files.
 
-       * res_pjsip:  Add res_pjproject dependency to UPGRADE.txt and samples
+         Having said that, Richard pointed out that the reason for the double compile
+         was that there were cases in the past where a submitted patch failed to compile
+         because the submitter never tried it with the optimizations turned on.
 
-         Since res_pjsip now depends on res_pjproject, this is now mentioned
-         in UPGRADE.txt and the basic-pbx modules.conf has been updated.
+         To get the best of both worlds, COMPILE_DOUBLE has been split into its own
+         option.  If DONT_OPTIMIZE is turned on, COMPILE_DOUBLE will also be selected
+         BUT you can then turn it off if all you need are the debugging symbols.  This
+         way you have to make an informed decision about disabling COMPILE_DOUBLE.
 
-         Change-Id: I42826597d5e10f08e518208860c44c96e52f1b2d
-2016-01-27 10:29 +0000 [aee8448bc2]  gtjoseph <george.joseph@fairview5.com>
+         To allow COMPILE_DOUBLE to be both auto-selected and turned off, a new feature
+         was added to menuselect.  The <use> element can now contain an "autoselect"
+         attribute which will turn the used member on but not create a hard dependency.
+         The cflags.xml implementation for COMPILE_DOUBLE looks like this...
 
-       * build_system: Prevent goals needing makeopts from running when it's missing
+         <member name="DONT_OPTIMIZE" displayname="Disable Optimizations ...">
+               <use autoselect="yes">COMPILE_DOUBLE</use>
+               <support_level>core</support_level>
+         </member>
+         <member name="COMPILE_DOUBLE" displayname="Pre-compile with ...>
+               <depend>DONT_OPTIMIZE</depend>
+               <support_level>core</support_level>
+         </member>
 
-         The Makefile only optionally includes makeopts so when goals like uninstall that
-         dont depend on anything else are run after a distclean, rules like
-         'rm -f "$(DESTDIR)$(ASTMODDIR)/"*' get run as 'rm -f ""/*' which attempts
-         to remove everything in the root directory.
+         When DONT_OPTIMIZE is turned on, COMPILE_DOUBLE is turned on because
+         of the use.
+         When DONT_OPTIMIZE is turned off, COMPILE_DOUBLE is turned off because
+         of the depend.
+         When COMPILE_DOUBLE is turned on, DONT_OPTIMIZE is turned on because
+         of the depend.
+         When COMPILE_DOUBLE is turned off, DONT_OPTIMIZE is left as is because
+         it only uses COMPILE_DOUBLE, it doesn't depend on it.
 
-         Although there's a rule defined for makeopts which prints a message and does
-         an 'exit 1', since '-include makepopts' was specified (with the -), the exit
-         was ignored letting the rest of the rules run.
+         I also made a few tweaks to the ncurses implementation to move things
+         left a bit to allow longer descriptions.
 
-         This patch makes makeopts required unless the goal has the string 'clean' in it.
+         Change-Id: Id49ca930ac4b5ec4fc2d8141979ad888da7b1611
 
-         ASTERISK-25730 #close
-         Reported-by: George Joseph
+2016-03-10 13:09 +0000 [38499e7125]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: I1bce59a7ea4f48e7a468e22b2abbb13c63417ac7
+       * pjproject:  Pass (dont_)optimize flags to pjproject and fix pjsua
 
-2016-01-25 09:35 +0000 [f22074e5d9]  Joshua Colp <jcolp@digium.com>
+         The pjproject Makefile now uses the Asterisk optimization flags which
+         are determined by the setting of the DONT_OPTMIZE menuselect flag.
+         The Makefile was also restructured so a change to the top level
+         menuselect.makeopts will result in a rebuild of pjproject.
 
-       * config: Allow options to register when documentation is unavailable.
+         Also, "--disable-resample" was removed from the pjproject configure
+         options.  Without resample, pjsua (which is used by the testsuite)
+         can't make audio calls.  When it can't, it segfaults.
 
-         The config options framework is strict in that configuration options must
-         be documented unless XML documentation support is not available. In
-         practice this is useful as it ensures documentation exists however in
-         off-nominal cases this can cause strange problems.
+         Change-Id: I24b0a4d0872acef00ed89b3c527a713ee4c2ccd4
 
-         If it is expected that a config option has a non-zero or non-empty
-         default value but the config option documentation is unavailable
-         this reasonable expectation will not be met. This can cause obscure
-         crashes and weirdness depending on how the code handles it.
+2016-03-11 16:03 +0000 [336cae73cc]  Walter Doekes <walter+asterisk@wjd.nu>
 
-         This change tweaks the behavior to ensure that the config option
-         is still allowed to register, apply default values, and be set when
-         devmode is not enabled. If devmode is enabled then the option can
-         NOT be set.
+       * app_chanspy: Fix occasional deadlock with ChanSpy and Local channels.
 
-         This also does not remove the initial documentation error message that
-         is output on load when registering the configuration option.
+         Channel masquerading had a conflict with autochannel locking.
 
-         ASTERISK-25725 #close
+         When locking autochannel->channel, the channel is fetched from the
+         autochannel and then locked. During the fetch, the autochannel -- which
+         has no locks itself -- can be modified by someone who owns the channel
+         lock. That means that the value of autochan->channel cannot be trusted
+         until you hold the lock.
 
-         Change-Id: Iec42fca6b35f31326c33fcdc25473f6fd7bc8af8
+         In practice, this caused problems with Local channels getting
+         masqueraded away while the ChanSpy attempted to get info from that
+         channel. The old channel which was about to get removed got locked, but
+         the new (replaced) channel got unlocked (no-op). Because the replaced
+         channel was now locked (and would never get unlocked), it couldn't get
+         removed from the channel list in a timely manner, and would now cause
+         deadlocks when iterating over the channel list.
 
-2016-01-25 10:23 +0000 [4a3275abb9]  Mark Michelson <mmichelson@digium.com>
+         This change checks the autochannel after locking the channel for changes
+         to the autochannel. If the channel had been changed, the lock is
+         reobtained on the new channel.
 
-       * Stasis: Use custom structure when setting variables.
+         In theory it seems possible that after this fix, the lock attempt on the
+         old (wrong) channel can be on an already destroyed lock, maybe causing
+         a crash. But that hasn't been observed in the wild and is harder induce
+         than the current deadlock.
 
-         A recent change to queue channel variable setting to the Stasis control
-         queue caused a regression. When setting channel variables, it is
-         possible to give a NULL channel variable value in order to unset the
-         variable (i.e. remove it from the channel variable list). The change
-         introduced a call to ast_variable_new(), which is not tolerant of NULL
-         channel variable values.
+         Thanks go to Filip Frank for suggesting a fix similar to this and
+         especially to IRC user hexanol for pointing out why this deadlock was
+         possible and testing this fix. And to Richard for catching my rookie
+         while loop mistake ;)
 
-         This new change switches from using ast_variable to using a custom
-         channel variable struct that is lighter weight and NULL value-tolerant.
+         ASTERISK-25321 #close
 
-         Change-Id: I784d7beaaa3c036ea936d103e7caf0bb1562162d
+         Change-Id: I293ae0014e531cd0e675c3f02d1d118a98683def
 
-2016-01-25 16:56 +0000 [b2c8a99f9e]  Rusty Newton <rnewton@digium.com>
+2016-03-07 21:34 +0000 [875d5e9872]  gtjoseph <george.joseph@fairview5.com>
 
-       * sounds/Makefile: Incremented core and extra sounds versions to 1.5
+       * pjproject_bundled: Remove --with-external-pa from configure options.
 
-         Core and extra sounds 1.5 was recently released! The tarballs contain
-         change descriptions however I figure more people will see this one so
-         I'll try to be a bit detailed. Approximately 60 sounds were moved from Extra
-         to Core for en, en_GB, fr and added for languages that didn't already
-         have Extra sound sets (it,ja,ru).
+         Not sure why it was there in the first place as we already specify
+         --disable-sound.
 
-         In addition all of the English and Russian sounds have been completely
-         re-recorded.
+         Change-Id: Ia80a40e8b1e1acc287955ab11ba1fbd0c7d4cff9
 
-         Sounds moved and added:
-         activated,added,all-circuits-busy-now,astcc-followed-by-pound
-         at-tone-time-exactly,call-forwarding,call-fwd-no-ans,call-fwd-on-busy
-         ,call-fwd-unconditional,calling,call-waiting,cancelled,
-         cannot-complete-as-dialed,check-number-dial-again,conf-full,de-activated
-         ,disabled,do-not-disturb,enabled,enter-num-blacklist,entr-num-rmv-blklist
-         ,extension,feature-not-avail-line,for,from-unknown-caller,goodbye,hello
-         ,if-correct-press,im-sorry,info-about-last-call,is,is-in-use,is-set-to
-         ,location,number,number-not-answering,num-was-successfully,one-moment-please
-         ,please-try-again,pls-hold-while-try,pls-try-call-later,pm-invalid-option
-         ,privacy-to-blacklist-last-caller,removed,simul-call-limit-reached
-         ,something-terribly-wrong,sorry,sorry-youre-having-problems,speed-dial
-         ,speed-dial-empty,telephone-number,time,to-call-this-number,to-extension
-         ,to-listen-to-it,to-rerecord-it,unidentified-no-callback,with,you-entered
-         ,your
+2016-03-06 14:38 +0000 [530cff5f5f]  gtjoseph <george.joseph@fairview5.com>
 
-         There were also a few random fixes here and there to file names for a few
-         of the languages.
+       * res_pjsip:  Strip spaces from items parsed from comma-separated lists
 
-         ASTERISK-25068 #close
+         Configurations like "aors = a, b, c" were either ignoring everything after "a"
+         or trying to look up " b".  Same for mailboxes,  ciphers, contacts and a few
+         others.
 
-         Change-Id: I2b594344ec585d7dfd922b40c1af43b1508828b3
-2016-01-25 16:51 +0000 [8261bda1bf]  Mark Michelson <mmichelson@digium.com>
+         To fix, all the strsep(&copy, ",") calls have been wrapped in ast_strip.  To
+         facilitate this, ast_strip, ast_skip_blanks and ast_skip_nonblanks were
+         updated to handle null pointers.
 
-       * res_pjsip_pubsub: Prevent crash from AMI command on freed subscription.
+         In some cases, an ast_strlen_zero() test was added to skip consecutive commas.
 
-         A test recently uncovered that running an ill-timed AMI command to show
-         inbound subscriptions could cause a crash since Asterisk will try to
-         operate on a freed subscription.
+         There was also an attempt to ast_free an ast_strdupa'd string in
+         ast_sip_for_each_aor which was causing a SEGV.  I removed it.
 
-         The fix for this is to remove the subscription tree from the list of
-         subscriptions at the time that we are sending our final NOTIFY request
-         out. This way, as the subscription is in the process of dying, it is
-         inaccessible from AMI.
+         Although this issue was reported for realtime, the issue was in the res_pjsip
+         modules so all config mechanisms were affected.
 
-         Change-Id: Ic0239003d8d73e04c47c12dd2a7e23867e5b5b23
+         ASTERISK-25829 #close
+         Reported-by: Mateusz Kowalski
 
-2016-01-25 11:03 +0000 [a6823bb0c4]  Corey Farrell <git@cfware.com>
+         Change-Id: I0b22a2cf22a7c1c50d4ecacbfa540155bec0e7a2
 
-       * chan_sip: Fix buffer overrun in sip_sipredirect.
+2016-03-04 20:37 +0000 [3c8076a83b]  gtjoseph <george.joseph@fairview5.com>
 
-         sip_sipredirect uses sscanf to copy up to 256 characters to a stacked buffer
-         of 256 characters.  This patch reduces the copy to 255 characters to leave
-         room for the string null terminator.
+       * install_prereq: Add packages for bundled pjproject
 
-         ASTERISK-25722 #close
+         RedHat/CentOS needs python-devel
+         Debian/Ubuntu needs automake, libsrtp-dev and python-dev
 
-         Change-Id: Id6c3a629a609e94153287512c59aa1923e8a03ab
+         Ubuntu also needed libncurses5-dev for cmenuselect so while not
+         needed for pjproject, I adedd it anyway.
 
-2016-01-22 15:08 +0000 [1003c2eb05]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: Idf5fa16e2d87c687439621507e122cb9461d7089
 
-       * Stasis: Fix potential memory leak of control data.
+2016-02-24 17:25 +0000 [27f32cd0a6]  gtjoseph <george.joseph@fairview5.com>
 
-         When queuing tasks onto the Stasis control queue, you can pass an
-         arbitrary data pointer and a function to free that data. All ARI
-         commands that use the Stasis control queue made the assumption that the
-         destructor function would be called in all paths, whether the task was
-         queued successfully or not. However, this was not correct. If a task was
-         queued onto a control structure that was already completed, the
-         allocated data would not be freed properly.
+       * res_pjsip_caller_id: Anonymize 'From' when caller id presentation is prohibited
 
-         This patch corrects this by making sure that all return paths call the
-         data destructor.
+         Per RFC3325, the 'From' header is now anonymized on outgoing calls when
+         caller id presentation is prohibited.
 
-         Change-Id: Ibf06522094f8e5c4cce652537dc5d7222b1c4fcb
+         TID = trust_id_outbound
+         PRO = Set(CALLERID(pres)=prohib)
+         USR = endpoint/from_user
+         DOM = endpoint/from_domain
+         PAI = YES(privacy=off), NO(not sent), PRI(privacy=full) (assumes send_pai=yes)
 
-2016-01-21 10:58 +0000 [eedd77fda0]  Mark Michelson <mmichelson@digium.com>
+         Conditions          |Result
+         --------------------|----------------------------------------------------
+         TID PRO USR DOM     |PAI    FROM
+         --------------------|----------------------------------------------------
+         Y   Y   abc def.ghi |PRI    "Anonymous" <sip:abc@def.ghi>
+         Y   Y   abc         |PRI    "Anonymous" <sip:abc@anonymous.invalid>
+         Y   Y       def.ghi |PRI    "Anonymous" <sip:anonymous@def.ghi>
+         Y   Y               |PRI    "Anonymous" <sip:anonymous@anonymous.invalid>
 
-       * Stasis: Use control queue to prevent crash.
+         Y   N   abc def.ghi |YES    <sip:abc@def.ghi>
+         Y   N   abc         |YES    <sip:abc@<ip_address>>
+         Y   N       def.ghi |YES    "Caller Name" <sip:<caller_exten>@def.ghi>
+         Y   N               |YES    "Caller Name" <sip:<caller_exten>@<ip_address>>
 
-         A crash occurred when attempting to set a channel variable on a channel
-         that had already been hung up. This is because there is a small window
-         between when a control is grabbed and when the channel variable is set
-         that the channel can be hung up.
+         N   Y   abc def.ghi |NO     "Anonymous" <sip:abc@def.ghi>
+         N   Y   abc         |NO     "Anonymous" <sip:abc@anonymous.invalid>
+         N   Y       def.ghi |NO     "Anonymous" <sip:anonymous@def.ghi>
+         N   Y               |NO     "Anonymous" <sip:anonymous@anonymous.invalid>
 
-         The fix here is to queue the setting of the channel variable onto the
-         control queue. This way, the manipulation of the channel happens in a
-         thread where it is safe to be done.
+         N   N   abc def.ghi |YES    <sip:abc@def.ghi>
+         N   N   abc         |YES    <sip:abc@<ip_address>>
+         N   N       def.ghi |YES    "Caller Name" <sip:<caller_exten>@def.ghi>
+         N   N               |YES    "Caller Name" <sip:<caller_exten>@<ip_address>>
 
-         In this change, I also noticed that the setting of bridge roles on
-         channels was being done outside of the control queue, so I also changed
-         those operations to be done in the control queue.
+         ASTERISK-25791 #close
+         Reported-by: Anthony Messina
 
-         ASTERISK-25709 #close
-         Reported by Mark Michelson
+         Change-Id: I2c82a5ca1413c2c00fb62ea95b0ae8e97af54dc9
 
-         Change-Id: I2a0a4d51bce6fba6f1d9954e40935e42f366ea78
+2016-03-03 17:34 +0000 [7cf7b0a4f9]  gtjoseph <george.joseph@fairview5.com>
 
-2016-01-22 11:48 +0000 [1c95b211a0]  Richard Mudgett <rmudgett@digium.com>
+       * third_party/Makefile.rules:  Replace unsupported != operator with $(shell ...)
 
-       * logger.c: Fix buffer overrun found by address sanitizer.
+         Apparently the != operator is fairly new so I've replaced it with
+         the old $(shell ...) syntax.
 
-         The null terminator of the tail struct member was not being allocated
-         when no logger.conf config file is installed.
+         Change-Id: I16b2e1878a4f91e7e9740abd427f9639f933c479
+         Reported-by: Richard Mudgett
+2016-01-23 15:50 +0000 [53f57001f2]  gtjoseph <george.joseph@fairview5.com>
 
-         ASTERISK-25714 #close
-         Reported by: Badalian Vyacheslav
+       * loader: Retry dlopen when loading fails
 
-         Change-Id: I45770fdd08af39506a3bc33ba279c4f16e047a30
+         Although we use the RTLD_LAZY flag when calling dlopen
+         the first time on a module, this only defers resolution
+         for function calls.  Pointer references to functions are
+         determined at link time so dlopen expects them to be there.
+         Since we don't cross-module link, pointers to functions
+         in other modules won't be available and dlopen will fail.
 
-2016-01-21 16:40 +0000 [6ff945ab87]  Corey Farrell <git@cfware.com>
+         Doing a "hardened" build also causes problems because it
+         typically sets "-z now" on the ld command line which
+         overrides RTLD_LAZY at run time.
 
-       * Build System: Add support for checking alembic branches.
+         If the failing module isn't a GLOBAL_SYMBOLS module, then
+         dlopen will be called again after all the GLOBAL_SYMBOLS
+         modules have been loaded and they'll eventually resolve.
 
-         * Add 'check-alembic' target to root Makefile.
-         * Create build_tools/make_check_alembic to do the actual checks.
+         If the calling module IS a GLOBAL_SYMBOLS module itself
+         and a third module depends on it, then there's an issue
+         because the second time through the dlopen loop,
+         GLOBAL_SYMBOLS modules aren't given any special treatment
+         and since the order in which dlopen is called isn't
+         deterministic, the dependent may again be tried before the
+         module it needs is loaded.
 
-         ASTERISK-25685
+         Simple solution:  Save modules that fail load_resource
+         because of a dlopen error in a list and retry them
+         immediately after the first pass. Keep retrying until
+         the failed list is empty or we reach a #defined max
+         retries. Error messages are suppressed until the final
+         pass which also gets rid of those confusing error messages
+         about module failures that are later corrected.
 
-         Change-Id: Ibb3cae7d1202ac23dc70b0f3b5801571ad46b004
+         Change-Id: Iddae1d97cd2f00b94e61662447432765755f64bb
 
-2016-01-19 18:20 +0000 [02035212de]  Richard Mudgett <rmudgett@digium.com>
+2016-03-01 16:18 +0000 [40d9e9e238]  Kevin Harwell <kharwell@digium.com>
 
-       * res/res_pjsip/presence_xml.c: Add missing 2nd call presence state case.
+       * bridge.c: Crash during attended transfer when missing a local channel half
 
-         ASTERISK-25712 #close
-         Reported by: Richard Mudgett
+         It's possible for the transferer channel to get hung up early during the
+         attended transfer process. For instance, a phone may send a "bye" immediately
+         upon receiving a sip notify that contains a sip frag 100 (I'm looking at you
+         Jitsi). When this occurs a race begins between the transferer being hung up
+         and completion of the transfer code.
 
-         Change-Id: I70634df24f8c6c3a2c66c45af61d021e4999253f
+         If the channel hangs up too early during a transfer involving stasis bridging
+         for instance, then when the created local channel goes to look up its swap
+         channel (and associated datastore) it can't find it (since it is no longer in
+         the bridge) thus it fails to enter the stasis application. Consequently, the
+         created local channel(s) hang up as well. If the timing is just right then the
+         bridging code attempts to add the message link with missing local channel(s).
+         Hence the crash.
 
-2016-01-18 03:49 +0000 [c68c66c61f]  Diederik de Groot <ddegroot@talon.nl>
+         Unfortunately, there is no great way to solve the problem of the unexpected
+         "bye". While we can't guarantee we won't receive an early hangup, and in this
+         case still fail to enter the stasis application, we can make it so asterisk
+         does not crash.
 
-       * main/asterisk.c: ast_el_read_char
+         This patch does just that by locking the local channel structure, checking
+         that the local channel's peer has not been lost, and then continuing. This
+         keeps the local channel's peer from being ripped out from underneath it by
+         the local/unreal hangup code while attempting to set the stasis message link.
 
-         Make sure buf[res] is not accessed at res=-1 (buffer underrun).
-         Address Sanitizer will complain about this quite loudly.
+         ASTERISK-25771
 
-         ASTERISK-24801 #close
+         Change-Id: Ie6d6061e34c7c95f07116fffac9a09e5d225c880
 
-         Change-Id: Ifcd7f691310815a31756b76067c56fba299d3ae9
+2016-03-01 18:08 +0000 [ff3da61c35]  Kevin Harwell <kharwell@digium.com>
 
-2016-01-13 16:49 +0000 [f87c3275cc]  Richard Mudgett <rmudgett@digium.com>
+       * res_pjsip_refer.c: Delay sending the initial SIP Notify with frag 100
 
-       * res_pjsip: Add CLI "pjsip dump endpt [details]"
+         During the transfer process, some phones (okay it was the Jitsi softphone,
+         but maybe others are out there) send a "bye" immediately after receiving a
+         SIP Notify. When a "bye" is received early for some types of transfers the
+         transferer channel may no longer be available during late stage transfer
+         processing.
 
-         Dump the res_pjsip endpt internals.
+         For instance, during an attended transfer involving stasis bridging at one
+         point the created local channel looks for an associated swap channel in
+         order to retrieve the stasis application name. If the transferer has hung
+         up then the local channel will fail to find it. The local channel then has
+         no way to know which stasis app to enter, so it fails and hangs up as well.
+         Thus the transfer does not complete as expected.
 
-         In non-developer mode we will not document or make easily accessible the
-         "details" option even though it is still available.  The user has to know
-         it exists to use it.  Presumably they would also be aware of the potential
-         crash warning below.
+         This patch delays the sending of the initial notify in order to give the
+         transfer process enough time to gather the necessary data for a successful
+         transfer.
 
-         Warning: PJPROJECT documents that the function used by this CLI command
-         may cause a crash when asking for details because it tries to access all
-         active memory pools.
+         ASTERISK-25771
 
-         Change-Id: If2d98a3641c9873364d1daaad971376311aef3cb
+         Change-Id: I09cfc9a5d6ed4c007bc70625e0972b470393bf16
 
-2016-01-18 17:16 +0000 [46b2de55f9]  Matt Jordan <mjordan@digium.com>
+2016-03-03 08:26 +0000 [26b8f2692e]  Joshua Colp <jcolp@digium.com>
 
-       * funcs/func_cdr: Correctly report high precision values for duration and billsec
+       * res_pjsip_dtmf_info: NULL terminate the message body.
 
-         When CDRs were refactored, func_cdr's ability to report high precision values
-         for duration and billsec (the 'f' option) was broken. This was due to func_cdr
-         incorrectly interpreting the duration/billsec values provided by the CDR engine
-         in milliseconds, as opposed to seconds. Since the CDR engine only provides
-         duration and billsec in seconds, and does not expose either attribute with
-         sufficient precision to merely pass back the underlying value, this patch fixes
-         the bug by re-calculating duration and billsec with microsecond precision based
-         on the start/answer/end times on the CDR.
+         PJSIP does not ensure that when printing the message body the
+         buffer will be NULL terminated. This is problematic when searching
+         for the signal and duration values of the DTMF.
 
-         ASTERISK-25179 #close
+         This change ensures the buffer is always NULL terminated.
 
-         Change-Id: I8bc63822b496537a5bf80baf6102c06206bee841
+         Change-Id: I52653a1a60c93092d06af31a27408d569cc98968
 
-2016-01-18 19:20 +0000 [137fe5ae01]  gtjoseph <george.joseph@fairview5.com>
+2016-03-01 20:03 +0000 [86d6e44cc1]  gtjoseph <george.joseph@fairview5.com>
 
-       * res_pjproject:  Add module providing pjproject logging and utils
+       * alembic: Fix downgrade and tweak for sqlite
 
-         res_pjsip_log_forwarder has been renamed to res_pjproject
-         and enhanced as follows:
+         Downgrade had a few issues.  First there was an errant 'update' statement in
+         add_auto_dtmf_mode that looks like it was a copy/paste error.  Second, we
+         weren't cleaning up the ENUMs so subsequent upgrades on postgres failed
+         because the types already existed.
 
-         As a follow-on to the recent 'Add CLI "pjsip show buildopts"' patch,
-         a new ast_pjproject_get_buildopt function has been added.  It
-         allows the caller to get the value of one of the buildopts.
+         For sqlite...  sqlite doesn't support ALTER or DROP COLUMN directly.
+         Fortunately alembic batch_operations takes care of this for us if we
+         use it so the alter and drops were converted to use batch operations.
 
-         The initial use case is retrieving the runtime value of
-         PJ_MAX_HOSTNAME to insure we don't send a hostname greater
-         than pjproject can handle.  Since it can differ between
-         the version of pjproject that Asterisk was compiled against
-         and the version of pjproject that Asterisk is running against,
-         we can't use the PJ_MAX_HOSTNAME macro directly in Asterisk
-         source code.
+         Here's an example downgrade:
 
-         Change-Id: Iab6e82fec3d7cf00c1cf6185c42be3e7569dee1e
+             with op.batch_alter_table('ps_endpoints') as batch_op:
+                 batch_op.drop_column('tos_audio')
+                 batch_op.drop_column('tos_video')
+                 batch_op.add_column(sa.Column('tos_audio', yesno_values))
+                 batch_op.add_column(sa.Column('tos_video', yesno_values))
+                 batch_op.drop_column('cos_audio')
+                 batch_op.drop_column('cos_video')
+                 batch_op.add_column(sa.Column('cos_audio', yesno_values))
+                 batch_op.add_column(sa.Column('cos_video', yesno_values))
 
-2016-01-19 17:15 +0000 [b5c13c1545]  Joshua Colp <jcolp@digium.com>
+             with op.batch_alter_table('ps_transports') as batch_op:
+                 batch_op.drop_column('tos')
+                 batch_op.add_column(sa.Column('tos', yesno_values))
+             # Can't cast integers to YESNO_VALUES, so dropping and adding is required
+                 batch_op.drop_column('cos')
+                 batch_op.add_column(sa.Column('cos', yesno_values))
 
-       * test_threadpool: Wait for each task to complete and fix memory leak.
+         Upgrades from base to head and downgrades from head to base were tested
+         repeatedly for postgresql, mysql/mariadb, and sqlite3.
 
-         This change makes the thread_timeout_thrash unit test wait for
-         each task to complete. This fixes the problem where the test would
-         prematurely end when all threads were gone and a new one had to be
-         started to handle the last task. It also increases the thrasing as
-         it is now more likely for each task to encounter the above scenario.
+         Change-Id: I862b0739eb3fd45ec3412dcc13c2340e1b7baef8
 
-         This also fixes a memory leak where the data for each task was not
-         being freed.
+2016-03-02 15:55 +0000 [6f0d7ce9db]  gtjoseph <george.joseph@fairview5.com>
 
-         ASTERISK-25611 #close
+       * config_transport:  Fix objects returned by ast_sip_get_transport_states
 
-         Change-Id: I5017d621a4dc911f509074c16229b86bff2fb3c6
+         ast_sip_get_transport_states was returning a container of internal_state
+         objects instead of ast_sip_transport_state objects.  This was causing
+         transport lookups to fail, most noticably in res_pjsip_nat, which
+         couldn't find the correct external addresses.  This was causing contacts
+         to go out with internal ip addresses.
 
-2016-01-18 19:44 +0000 [0ab89182d9]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25830 #close
+         Reported-by: Sean Bright
 
-       * taskprocessor.c: Increase CLI "core ping taskprocessor" timeout.
+         Change-Id: I1aee6a2fd46c42e8dd0af72498d17de459ac750e
 
-         Change-Id: I4892d6acbb580d6c207d006341eaf5e0f8f2a029
+2016-03-02 11:17 +0000 [1ea7a5a774]  Scott Griepentrog <scott@griepentrog.com>
 
-2016-01-18 19:43 +0000 [a2a8ea3330]  Richard Mudgett <rmudgett@digium.com>
+       * CHAOS: cleanup possible null vars on msg alloc failure
 
-       * taskprocessor.c: Fix some taskprocessor unrefs.
+         In message.c, if msg_alloc fails to init the string field,
+         vars may be null, so use a null tolerant cleanup.
 
-         You have to call ast_taskprocessor_unref() outside of the taskprocessor
-         implementation code.  Taskprocessor use since v12 has become more
-         transient than just the singleton uses in earlier versions.
+         In res_pjsip_messaging.c, if msg_data_create fails, mdata
+         will be null, so use a null tolerant cleanup.
 
-         Change-Id: If7675299924c0cc65f2a43a85254e6f06f2d61bb
+         ASTERISK-25323
 
-2016-01-19 13:44 +0000 [d604a9afc8]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ic2d55c2c3750d5616e2a05ea92a19c717507ff56
 
-       * Fix alembic branches on v13.
+2016-03-02 09:34 +0000 [3c37c7071f]  Scott Griepentrog <scott@griepentrog.com>
 
-         Change-Id: I313449b609ede18ad1e1763a655dd23b9210a8e0
+       * CHAOS: prevent crash on failed strdup
 
-2016-01-18 18:45 +0000 [a0c79f3a4f]  gtjoseph <george.joseph@fairview5.com>
+         This patch avoids crashing on a null pointer
+         if the strdup() allocation fails.
 
-       * pjsip_loging_refactor: Rename res_pjsip_log_forwarder to res_pjproject
+         ASTERISK-25323
 
-         Change-Id: I5387821f29e5caa0cba0b7d62b0fc0d341e7e20b
+         Change-Id: I3f67434820ba53b53663efd6cbb42749f4f6c0f5
 
-2016-01-14 09:26 +0000 [018ccf680b]  Rusty Newton <rnewton@digium.com>
+2016-02-29 18:11 +0000 [9633be9d25]  Richard Mudgett <rmudgett@digium.com>
 
-       * func_channel: Add help text for undocumented CHANNEL function arguments
+       * func_callerid.c: Update REDIRECTING reason documentation.
 
-         Adding help text documentation for:
-         * hangupsource
-         * appname
-         * appdata
-         * exten
-         * context
-         * channame
-         * uniqueid
-         * linkedid
+         Change-Id: I6e8d39b0711110a4bceafa652e58b30465e28386
 
-         ASTERISK-24097 #close
-         Reported by: Steven T. Wheeler
-         Tested by: Rusty Newton
+2016-02-26 18:57 +0000 [4165ea7778]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Ib94b00568b0433987df87d5b67ea529b5905754d
+       * SIP diversion: Fix REDIRECTING(reason) value inconsistencies.
 
-2016-01-16 13:18 +0000 [5644bca9f9]  Daniel Journo <dan@keshercommunications.com>
+         Previous chan_sip behavior:
 
-       * Update version number in features.conf.sample
+         Before this patch chan_sip would always strip any quotes from an incoming
+         reason and pass that value up as the REDIRECTING(reason).  For an outgoing
+         reason value, chan_sip would check the value against known values and
+         quote any it didn't recognize.  Incoming 480 response message reason text
+         was just assigned to the REDIRECTING(reason).
 
-         Update the version number in the comments from Asterisk 12 to Asterisk 12+
+         Previous chan_pjsip behavior:
 
-         Change-Id: Ie692ac8cda3c993c3bf10f27f51a1cca3317ec7b
-
-2016-01-15 19:52 +0000 [3f5f30cf82]  Corey Farrell <git@cfware.com>
-
-       * main/config: Clean config maps on shutdown.
+         Before this patch chan_pjsip would always pass the incoming reason value
+         up as the REDIRECTING(reason).  For an outgoing reason value, chan_pjsip
+         would send the reason value as passed down.
 
-         ASTERISK-25700 #close
+         With this patch:
 
-         Change-Id: I096da84f9c62c6095f68bcf98eac4b7c7868e808
+         Both channel drivers match incoming reason values with values documented
+         by REDIRECTING(reason) and values documented by RFC5806 regardless of
+         whether they are quoted or not.  RFC5806 values are mapped to the
+         equivalent REDIRECTING(reason) documented value and is set in
+         REDIRECTING(reason).  e.g., an incoming RFC5806 'unconditional' value or a
+         quoted string version ('"unconditional"') is converted to
+         REDIRECTING(reason)'s 'cfu' value.  The user's dialplan only needs to deal
+         with 'cfu' instead of any of the aliases.
 
-2016-01-14 14:42 +0000 [660fedecb7]  Kevin Harwell <kharwell@digium.com>
+         The incoming 480 response reason text supported by chan_sip checks for
+         known reason values and if not matched then puts quotes around the reason
+         string and assigns that to REDIRECTING(reason).
 
-       * bridge_basic: don't cache xferfailsound during an attended transfer
+         Both channel drivers send outgoing known REDIRECTING(reason) values as the
+         unquoted RFC5806 equivalent.  User custom values are either sent as is or
+         with added quotes if SIP doesn't allow a character within the value as
+         part of a RFC3261 Section 25.1 token.  Note that there are still
+         limitations on what characters can be put in a custom user value.  e.g.,
+         embedding quotes in the middle of the reason string is silly and just
+         going to cause you grief.
 
-         The xferfailsound was read from the channel at the beginning of the transfer,
-         and that value is "cached" for the duration of the transfer. Therefore, changing
-         the xferfailsound on the channel using the FEATURE() dialplan function does
-         nothing once the transfer is under way.
+         * Setting a REDIRECTING(reason) value now recognizes RFC5806 aliases.
+         e.g., Setting REDIRECTING(reason) to 'unconditional' is converted to the
+         'cfu' value.
 
-         This makes it so the transfer code instead gets the xferfailsound configuration
-         options from the channel when it is actually going to be used.
+         * Added missing malloc() NULL return check in res_pjsip_diversion.c
+         set_redirecting_reason().
 
-         This patch also fixes a potential memory leak of the props object as well as
-         making sure the condition variable gets initialized before being destroyed.
+         * Fixed potential read from a stale pointer in res_pjsip_diversion.c
+         add_diversion_header().  The reason string needed to be copied into the
+         tdata memory pool to ensure that the string would always be available.
+         Otherwise, if the reason string returned by reason_code_to_str() was a
+         user's reason string then the string could be freed later by another
+         thread.
 
-         ASTERISK-25696 #close
+         Change-Id: Ifba83d23a195a9f64d55b9c681d2e62476b68a87
 
-         Change-Id: Ic726b0f54ef588bd9c9c67f4b0e4d787934f85e4
+2016-02-26 18:54 +0000 [41f4af4ce5]  Richard Mudgett <rmudgett@digium.com>
 
-2015-07-10 10:37 +0000 [9cda1de34d]  Richard Mudgett <rmudgett@digium.com>
+       * res_pjsip_send_to_voicemail.c: Allow either quoted or not send_to_vm reason.
 
-       * taskprocessor.c: Simplify ast_taskprocessor_get() return code.
+         Change-Id: Id6350b3c7d4ec8df7ec89863566645e2b0f441fd
 
-         Change-Id: Id5bd18ef1f60ef8be453e677e98478298358a9d1
+2016-02-29 20:41 +0000 [4c5998ff55]  Richard Mudgett <rmudgett@digium.com>
 
-2016-01-13 18:20 +0000 [a79af2b312]  Richard Mudgett <rmudgett@digium.com>
+       * res_pjsip_send_to_voicemail.c: Fix off-nominal double channel unref.
 
-       * astmm.c: Add more stats to CLI "memory show" commands.
+         * Fix double unref of other_party channel in off nominal path.
 
-         * Add freed regions totals to allocations and summary.
+         * This is unlikely to be a real problem.  However, for safety,
+         in handle_incoming_request() keep the datastore ref with the
+         other_party channel ref until we are finished with the other_party
+         channel.
 
-         * Add totals for all allocations and not just the selected allocations.
+         Change-Id: I78f22547bf0bb99fb20814ceab75952bd857f821
 
-         Change-Id: I61d5a5112617b0733097f2545a3006a344b4032a
+2016-01-18 21:54 +0000 [b59956a875]  gtjoseph <george.joseph@fairview5.com>
 
-2016-01-14 16:00 +0000 [83feb7db3b]  Kevin Harwell <kharwell@digium.com>
+       * build-system: Allow building with static pjproject
 
-       * bridge_basic: don't play an attended transfer fail sound after target hangs up
+         Background here:
+         http://lists.digium.com/pipermail/asterisk-dev/2016-January/075266.html
 
-         If the attended transfer destination answers (picks call up or goes to
-         voicemail) and then hangs up on the transferer then transferer hears the
-         fail sound.
+         From CHANGES:
+          * To help insure that Asterisk is compiled and run with the same known
+            version of pjproject, a new option (--with-pjproject-bundled) has been
+            added to ./configure.  When specified, the version of pjproject specified
+            in third-party/versions.mak will be downloaded and configured.  When you
+            make Asterisk, the build process will also automatically build pjproject
+            and Asterisk will be statically linked to it.  Once a particular version
+            of pjproject is configured and built, it won't be configured or built
+            again unless you run a 'make distclean'.
 
-         This patch makes it so the fail sound is not played when the transfer
-         destination/target hangs up after answering.
+            To facilitate testing, when 'make install' is run, the pjsua and pjsystest
+            utilities and the pjproject python bindings will be installed in
+            ASTDATADIR/third-party/pjproject.
 
-         ASTERISK-25697 #close
+            The default behavior remains building with the shared pjproject
+            installation, if any.
 
-         Change-Id: I97f142fe4fc2805d1a24b7c16143069dc03d9ded
+         Building:
 
-2016-01-14 13:22 +0000 [935d641f3b]  Mark Michelson <mmichelson@digium.com>
+            All you have to do is include the --with-pjproject-bundled option on
+            the ./configure command line (and remove any existing --with-pjproject
+            option if specified).  Everything else is automatic.
 
-       * Remove res/ari/* content during 'make clean'.
+         Behind the scenes:
 
-         'make clean' and 'make distclean' can leave behind .o files in the
-         res/ari/ directory. One observed consequence of this is that running
-         Asterisk with MALLOC_DEBUG can cause Asterisk to crash immediately on
-         startup sometimes.
+            The top-level Makefile was modified to include 'third-party' in the
+            list of MOD_SUBDIRS.
 
-         By ensuring that we are making a clean build, we can be sure that stale
-         files are not being included in the build and causing problems when
-         build options should have caused files to be re-built.
+            The third-party directory was created to contain any third party
+            packages that may be needed in the future.  Its Makefile automatically
+            iterates over any subdirectories passing on targets.
 
-         ASTERISK-25683 #close
-         Reported by yaron nahum
+            The third-party/pjproject directory was created to house the pjproject
+            source distribution.  Its Makefile contains targets to download, patch
+            configure, generate dependencies, compile libs, apps and python bindings,
+            sanitized build.mak and generate a symbols list.
 
-         Change-Id: I1f48baa904d2468eddeefb42ee68a56af7adc7b7
+            When bootstrap.sh is run, it automatically includes the configure.m4
+            file in third-party/pjproject.  This file has a macro to download and
+            conifgure pjproject and get and set PJPROJECT_INCLUDE, PJPROJECT_DIR
+            and PJPROJECT_BUNDLED.  It also tests for the capabilities like
+            PJ_TRANSACTION_GRP_LOCK by parsing preprocessor output as opposed to
+            trying to compile.  Of course, bootstrap.sh is only run once and the
+            configure file is incldued in the patch.
 
-2016-01-13 15:58 +0000 [46f21df302]  Daniel Journo <dan@keshercommunications.com>
+            When configure is run with the new options, the macro in configure.m4
+            triggers the download, patch, conifgure and tests.  No compilation is
+            performed at this time.  The downloaded tarball is cached in /tmp so
+            it doesn't get downloaded again on a distclean.
 
-       * pjsip/alembic:  Fix qualify_timeout column definition
+            When make is run in the top-level Asterisk source directory, it will
+            automatically descend all the subdirectories in third_party just as it
+            does for addons, apps, etc.  The top-level Makefile makes sure that
+            the 'third-party' is built before 'main' so that dependencies from the
+            other directories are built first.
 
-         Corrects the qualify_timeout column type from Integer to Decimal
+            When main does build, a new shared library (libasteriskpj) is created that
+            links statically to the pjproject .a files and exports all their symbols.
+            The asterisk binary links to that, just as it does with libasteriskssl.
 
-         ASTERISK-25686 #close
-         Reported-by: Marcelo Terres
+            When Asterisk is installed, the pjsua and pjsystest apps, and the pjproject
+            python bindings are installed in ASTDATADIR/third-party/pjproject.  This
+            will facilitate testing, including running the testsuite which will be
+            updated to check that directory for the pjsua module ahead of the system
+            python library.
 
-         Change-Id: I757d0e3c011ee9be6cd5abd48bc92441a405d3c8
+         Modules should continue to depend on pjproject if they use pjproject APIs
+         directly.  They should not care about the implementation.  No changes to any
+         res_pjsip modules were made.
 
-2016-01-12 11:14 +0000 [32b29d7b02]  Joshua Colp <jcolp@digium.com>
+         Change-Id: Ia7a60c28c2e9ba9537c5570f933c1ebcb20a3103
 
-       * app: Queue hangup if channel is hung up during sub or macro execution.
+2016-02-22 16:59 +0000 [18a323e542]  Richard Mudgett <rmudgett@digium.com>
 
-         This issue was exposed when executing a connected line subroutine.
-         When connected or redirected subroutines or macros are executed it is
-         expected that the underlying applications and logic invoked are fast
-         and do not consume frames. In practice this constraint is not enforced
-         and if not adhered to will cause channels to continue when they shouldn't.
-         This is because each caller of the connected or redirected logic does not
-         check whether the channel has been hung up on return. As a result the
-         the hung up channel continues.
+       * chan_sip.c: Fix T.38 issues caused by leaving a bridge.
 
-         This change makes it so when the API to execute a subroutine or
-         macro is invoked the channel is checked to determine if it has hung up.
-         If it has then a hangup is queued again so the caller will see it
-         and stop.
+         chan_sip could not handle AST_T38_TERMINATED frames being sent to it when
+         the channel left the bridge.  The action resulted in overlapping outgoing
+         reINVITEs.  The testsuite tests/fax/sip/directmedia_reinvite_t38 was not
+         happy.
 
-         ASTERISK-25690 #close
+         * Force T.38 to be remembered as locally bridged.  Now when the channel
+         leaves the native RTP bridge after T.38, the channel remembers that it has
+         already reINVITEed the media back to Asterisk.  It just needs to terminate
+         T.38 when the AST_T38_TERMINATED arrives.
 
-         Change-Id: I1f9a8ceb1487df0389f0d346ce0f6dcbcaf476ea
+         * Prevent redundant AST_T38_TERMINATED from causing problems.  Redundant
+         AST_T38_TERMINATED frames could cause overlapping outgoing reINVITEs if
+         they happen before the T.38 state changes to disabled.  Now the T.38 state
+         is set to disabled before the reINVITE is sent.
 
-2016-01-13 07:20 +0000 [e7cfda0b38]  Sean Bright <sean.bright@gmail.com>
+         ASTERISK-25582 #close
 
-       * res_musiconhold: Prevent multiple simultaneous reloads.
+         Change-Id: I53f5c6ce7d90b3f322a942af1a9bcab6d967b7ce
 
-         There are two ways in which the reload() function in res_musiconhold can be
-         called from the CLI:
+2016-02-18 18:27 +0000 [263a39f2cc]  Richard Mudgett <rmudgett@digium.com>
 
-           * module reload res_musiconhold.so
-           * moh reload
+       * res_pjsip_t38.c: Back out part of an earlier fix attempt.
 
-         In the former case, the module loader holds a lock that prevents multiple
-         concurrent calls, but in the latter there is no such protection.
+         This backs out item 4 of the 4875e5ac32f5ccad51add6a4216947bfb385245d
+         commit.  Item 4 added the t38_bye_supplement.  Unfortunately, the frame
+         that it puts into the bridge may or may not be processed by the time the
+         bridged peer is kicked out of the bridge.  If it is processed then all is
+         well.  However, if it is not processed then that channel is stuck in fax
+         mode until it hangs up or maybe if it joins another bridge for T.38
+         faxing.
 
-         This patch changes the 'moh reload' CLI command to invoke the module loader
-         directly, rather than call reload() explicitly.
+         ASTERISK-25582
 
-         ASTERISK-25687 #close
+         Change-Id: Ib20a03ecadf1bf8a0dcadfadf6c2f2e60919a9f7
 
-         Change-Id: I408968b4c8932864411b7f9ad88cfdc7b9ba711c
-2016-01-12 14:25 +0000 [5586abc957]  Richard Mudgett <rmudgett@digium.com>
+2016-02-22 13:54 +0000 [221422be50]  Richard Mudgett <rmudgett@digium.com>
 
-       * res_pjsip_log_forwarder.c: Add CLI "pjsip show buildopts".
+       * bridge core: Add owed T.38 terminate when channel leaves a bridge.
 
-         PJPROJECT has a function available to dump the compile time
-         options used when building the library.
+         The channel is now going to get T.38 terminated when it leaves the
+         bridging system and the bridged peers are going to get T.38 terminated as
+         well.
 
-         * Add CLI "pjsip show buildopts" command.
+         ASTERISK-25582
 
-         * Update contrib/scripts/autosupport to get pjproject information.
+         Change-Id: I77a9205979910210e3068e1ddff400dbf35c4ca7
 
-         Change-Id: Id93a6a916d765b2a2e5a1aeb54caaf83206be748
+2016-02-19 16:01 +0000 [0a5bc64491]  Richard Mudgett <rmudgett@digium.com>
 
-2016-01-12 10:36 +0000 [4cd58c3b20]  Mark Michelson <mmichelson@digium.com>
+       * channel api: Create is_t38_active accessor functions.
 
-       * res_sorcery_realtime: Remove leading ^ requirement.
+         ASTERISK-25582
 
-         res_sorcery_realtime's search-by-regex callback performed a check to
-         ensure that the passed-in regex began with a caret (^). If it did not,
-         then no results would be returned.
+         Change-Id: I69451920b122de7ee18d15bb231c80ea7067a22b
 
-         This callback only started to become used when "like" support was added
-         to PJSIP CLI commands. The CLI command for listing objects would pass an
-         empty regex ("") to the sorcery backend if no "like" statement was
-         present. For most sorcery backends, this resulted in returning all
-         objects. However, for realtime, this resulted in returning no objects.
+2016-02-19 19:06 +0000 [513638a5f4]  Richard Mudgett <rmudgett@digium.com>
 
-         This commit seeks to fix the regression by removing the requirement from
-         res_sorcery_realtime for the passed-in-regex to begin with a caret.
+       * bridge_channel: Don't settle owed events on an optimization.
 
-         ASTERISK-25689 #close
-         Reported by Marcelo Terres
+         Local channel optimization could cause DTMF digits to be duplicated.
+         Pending DTMF end events would be posted to a bridge when the local channel
+         optimizes out and is replaced by the channel further down the chain.  When
+         the real digit ends, the channel would get another DTMF end posted to the
+         bridge.
 
-         Change-Id: I22b4dc5d7f3f11bb29ac2e42ef94682e9bab3b20
+         A -- LocalA;1/n -- LocalA;2/n -- LocalB;1 -- LocalB;2 -- B
 
-2016-01-07 11:57 +0000 [219c204a41]  gtjoseph <george.joseph@fairview5.com>
+         1) LocalA has the /n flag to prevent optimization.
+         2) B is sending DTMF to A through the local channel chain.
+         3) When LocalB optimizes out it can move B to the position of LocalB;1
+         4) Without this patch, when B swaps with LocalB;1 then LocalB;1 would
+         settle an owed DTMF end to the bridge toward LocalA;2.
+         5) When B finally ends its DTMF it sends the DTMF end down the chain.
+         6) Without this patch, A would hear the DTMF digit end when LocalB
+         optimizes out and when B ends the original digit.
 
-       * pjsip_sdp_rtp:  Add option endpoint/bind_rtp_to_media_address
+         ASTERISK-25582
 
-         On a system with multiple ip addresses in the same subnet, if a
-         transport is bound to a specific ip address and endpoint/media_address
-          is set, the SIP/SDP will have the correct address in all fields but
-         the rtp stream MAY still originate from one of the other ip addresses,
-         most probably the "primary" ip address.  This happens because
-          res_pjsip_sdp_rtp/create_rtp always calls ast_instance_new with
-         the "all" ip address (0.0.0.0 or ::).
+         Change-Id: I1bbd28b8b399c0fb54985a5747f330a4cd2aa251
 
-         The new option causes res_pjsip_sdp_rtp/create_rtp to call
-         ast_rtp_instance_new with the endpoint's media_address (if specified)
-         instead of the "all" address.  This causes the packets to originate from
-         the specified address.
+2016-02-22 12:15 +0000 [7c4495cb70]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25632
-         ASTERISK-25637
-         Reported-by: Olivier Krief
-         Reported-by: Dan Journo
+       * channel.c: Route all control frames to a channel through the same code.
 
-         Change-Id: I3dfaa079e54ba7fb7c4fd1f5f7bd9509bbf8bd88
+         Frame hooks can conceivably return a control frame in exchange for an
+         audio frame inside ast_write().  Those returned control frames were not
+         handled quite the same as if they were sent to ast_indicate().  Now it
+         doesn't matter if you use ast_write() to send an AST_FRAME_CONTROL to a
+         channel or ast_indicate().
 
-2016-01-10 16:22 +0000 [22801a06ee]  Daniel Journo <dan@keshercommunications.com>
+         ASTERISK-25582
 
-       * pjsip:  Add option global/regcontext
+         Change-Id: I5775f41421aca2b510128198e9b827bf9169629b
 
-         Added new global option (regcontext) to pjsip. When set, Asterisk will
-         dynamically create and destroy a NoOp priority 1 extension
-         for a given endpoint who registers or unregisters with us.
+2016-02-25 15:13 +0000 [48d713a832]  gtjoseph <george.joseph@fairview5.com>
 
-         ASTERISK-25670 #close
-         Reported-by: Daniel Journo
+       * sorcery:  Refactor create, update and delete to better deal with caches
 
-         Change-Id: Ib1530c5b45340625805c057f8ff1fb240a43ea62
+         The ast_sorcery_create, update and delete function have been refactored
+         to better deal with caches and errors.
 
-2016-01-08 15:22 +0000 [1600ebca7d]  Kevin Harwell <kharwell@digium.com>
+         The action is now called on all non-caching wizards first. If ANY succeed,
+         the action is called on all caching wizards and the observers are notified.
+         This way we don't put something in the cache (or update or delete) before
+         knowing the action was performed in at least 1 backend and we only call the
+         observers once even if there were multiple writable backends.
 
-       * pbx: Deadlock between contexts container and context_merge locks
+         ast_sorcery_create was never adding to caches in the first place which
+         was preventing contacts from getting added to a memory_cache when they
+         were created.  In turn this was causing memory_cache to emit errors if
+         the contact was deleted before being retrieved (which would have
+         populated the cache).
 
-         Recent changes (ASTERISK-25394 commit 2bd27d12223fe33b58c453965ed5c6ed3af7c4f5)
-         introduced the possibility of a deadlock. Due to the mentioned modifications
-         ast_change_hints now needs to keep both merge/delete and state callbacks from
-         occurring while it executes. Unfortunately, sometimes ast_change_hints can be
-         called with the contexts container locked. When this happens it's possible for
-         another thread to grab the context_merge_lock before the thread calling into
-         ast_change_hints does and then try to obtain the contexts container lock. This
-         of course causes a deadlock between the two threads. The thread calling into
-         ast_change_hints waits for the other thread to release context_merge_lock and
-         the other thread is waiting on that one to release the contexts container lock.
+         ASTERISK-25811 #close
+         Reported-by: Ross Beer
 
-         Unfortunately, there is not a great way to fix this problem. When hints change,
-         the subsequent state callbacks cannot run at the same time as a merge/delete,
-         nor when the usual state callbacks do. This patch alleviates the problem by
-         having those particular callbacks (the ones run after a hint change) occur in a
-         serialized task. By moving the context_merge_lock to a task it can now safely be
-         attempted or held without a deadlock occurring.
+         Change-Id: Id5596ce691685a79886e57b0865888458d6e7b46
+2016-02-25 15:39 +0000 [ee947d4a7a]  gtjoseph <george.joseph@fairview5.com>
 
-         ASTERISK-25640 #close
-         Reported by: Krzysztof Trempala
+       * res_pjsip_mwi:  Turn some NOTICEs and WARNINGs into debug 1s.
 
-         Change-Id: If2210ea241afd1585dc2594c16faff84579bf302
+         There are a few cases where we're emitting notices or warnings
+         for things that really need neither, like a client retrying to subscribe
+         to mwi when they're not conifgured for it.  They get a 404 so there's no
+         need for non-debug messages.
 
-2016-01-10 17:08 +0000 [0fc3dad965]  Corey Farrell <git@cfware.com>
+         Change-Id: I05e38a7ff6c2f2521146f4be6a79731b9864e61f
+2016-02-25 14:17 +0000 [6e70e8ccdb]  gtjoseph <george.joseph@fairview5.com>
 
-       * devicestate: Cleanup engine thread during graceful shutdown.
+       * res_sorcery_memory_cache:  Fix SEGV in some CLI commands
 
-         ASTERISK-25681 #close
+         A few of the CLI commands weren't checking for enough arguments
+         and were SEGVing.
 
-         Change-Id: I64337c70f0ebd8c77f70792042684607c950c8f1
+         Change-Id: Ie6494132ad2fe54b4f014bcdc112a37c36a9b413
 
-2016-01-10 13:51 +0000 [f34dd10495]  Corey Farrell <git@cfware.com>
+2016-02-25 10:29 +0000 [4417f64d83]  Leif Madsen <leif@leifmadsen.com>
 
-       * manager: Cleanup manager_channelvars during shutdown.
+       * Add initial support to build Docker images
 
-         ASTERISK-25680 #close
+         This work-in-progress is the first step to being able to reliably
+         build Asterisk containers from the Asterisk source. I'm submitting
+         this based on feedback gained at AstriDevCon 2015.
 
-         Change-Id: I3251d781cbc3f48a6a7e1b969ac4983f552b2446
+         Information about how to use this is provided in contrib/docker/README.md
+         and will result in a local Asterisk container being built right from
+         your source. I believe this can eventually be automated via
+         hub.docker.com.
 
-2016-01-10 13:27 +0000 [1d3a1167fc]  Corey Farrell <git@cfware.com>
+         Change-Id: Ifa070706d40e56755797097b6ed72c1e243bd0d1
 
-       * res_calendar: Cleanup scheduler context at unload.
+2016-02-22 19:31 +0000 [e7a6abbbd3]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25679 #close
+       * rtp_engine.h: Remove extraneous semicolons.
 
-         Change-Id: I839159bf6882cccc1b23494c7aa2bc2a2624613f
+         Change-Id: Ib462633d396fa941379dfef648dcd2245e350084
 
-2016-01-08 11:49 +0000 [3a160cdbf6]  Joshua Colp <jcolp@digium.com>
+2016-02-23 14:57 +0000 [6656afffa0]  Richard Mudgett <rmudgett@digium.com>
 
-       * res_rtp_asterisk: Revert DTLS negotiation changes.
+       * chan_sip.c: Suppress T.38 SDP c= line if addr is the same.
 
-         Due to locking issues within pjnath these changes are being
-         reverted until pjnath can be changed.
+         Use the correct comparison function since we only care if the address
+         without the port is the same.
 
-         ASTERISK-25645
+         Change-Id: Ibf6c485f843a1be6dee58a47b33d81a7a8cbe3b0
 
-         Revert "res_rtp_asterisk.c: Fix DTLS negotiation delays."
+2016-02-16 08:14 +0000 [ea9deff996]  Christof Lauber <christof.lauber@annax.ch>
 
-         This reverts commit 24ae124e4f7310cfa64c187b944b2ffc060da28d.
+       * res_config_sqlite3: Fix crashes when reading peers from sqlite3 tables
 
-         Change-Id: I2986cfb2c43dc14455c1bcaf92c3804f9da49705
+         Introduced realloaction of ast_str buf in sqlite3_escape functions in case
+         the returned buffer from threadstorage was actually too small.
 
-         Revert "res_rtp_asterisk: Resolve further timing issues with DTLS negotiation"
+         Change-Id: I3c5eb43aaade93ee457943daddc651781954c445
 
-         This reverts commit 965a0eee46d24321f74c244e23c5a5f45e67e12b.
+2016-02-11 11:01 +0000 [d2a1457e0b]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: Ie68fafde27dad4b03cb7a1e27ce2a8502c3f7bbe
+       * res_pjsip/config_transport: Allow reloading transports.
 
-2016-01-09 17:57 +0000 [4b10fc9173]  gtjoseph <george.joseph@fairview5.com>
+         The 'reload' mechanism actually involves closing the underlying
+         socket and calling the appropriate udp, tcp or tls start functions
+         again.  Only outbound_registration, pubsub and session needed work
+         to reset the transport before sending requests to insure that the
+         pjsip transport didn't get pulled out from under them.
 
-       * Revert "pjsip_location: Delete contact_status object when contact is deleted"
+         In my testing, no calls were dropped when a transport was changed
+         for any of the 3 transport types even if ip addresses or ports were
+         changed. To be on the safe side however, a new transport option was
+         added (allow_reload) which defaults to 'no'.  Unless it's explicitly
+         set to 'yes' for a transport, changes to that transport will be ignored
+         on a reload of res_pjsip.  This should preserve the current behavior.
 
-         This reverts commit 0a9941de9d24093b5ff44096d1d7406f29d11e45.
+         Change-Id: I5e759850e25958117d4c02f62ceb7244d7ec9edf
 
-         Matt,
+2016-02-07 17:34 +0000 [6b921f706d]  gtjoseph <george.joseph@fairview5.com>
 
-         This patch causes another problem and should not have been needed.
-         Before this patch, persistent_endpoint_contact_deleted_observer WAS
-         deleting the contact_status when ast_sip_location_delete_contact was
-         called.  By deleting it yourself in ast_sip_location_delete_contact
-         it was gone before the observer could run and the observer therefore
-         was throwing an error and not sending stasis/AMI/statsd messages.
+       * res_pjproject:  Add ability to map pjproject log levels to Asterisk log levels
 
-         So, I don't think this was the cause of your original issue.  I also
-         had verified the contact AMI and statsd lifecycle and it was working.
-         I'll double check now though.
+         Warnings and errors in the pjproject libraries are generally handled by
+         Asterisk.  In many cases, Asterisk wouldn't even consider them to be warnings
+         or errors so the messages emitted by pjproject directly are either superfluous
+         or misleading.  A good exampe of this are the level-0 errors pjproject emits
+         when it can't open a TCP/TLS socket to a client to send an OPTIONS.  We don't
+         consider a failure to qualify a UDP client an "ERROR", why should a TCP/TLS
+         client be treated any differently?
 
-         ASTERISK-25675
-         Reported-by: Daniel Journo
+         A config file for res_pjproject has bene added (pjproject.conf) and a new
+         log_mappings object allows mapping pjproject levels to Asterisk levels
+         (or nothing).  The defaults if no pjproject.conf file is found are the same
+         as those that were hard-coded into res_pjproject initially: 0,1 = LOG_ERROR,
+         2 = LOG_WARNING, 3,4,5 = LOG_DEBUG<level>
 
-         Change-Id: Ib586a6b7f90acb641b0c410f659743ab90e84f1a
+         Change-Id: Iba7bb349c70397586889b8f45b8c3d6c6c8c3898
 
-2016-01-09 18:04 +0000 [79b4309881]  Corey Farrell <git@cfware.com>
+2016-02-18 10:55 +0000 [f295088764]  Alexei Gradinari <alex2grad@gmail.com>
 
-       * pbx_dundi: Run cleanup on failed load.
+       * res_pjsip_outbound_publish: Fix processing 412 response
 
-         During failed startup of pbx_dundi no cleanup was performed.  Add a call
-         to unload_module before returning AST_MODULE_LOAD_DECLINE.
+         When Asterisk receives a 412 (Conditional Request Failed) response
+         it has to recreate publish session.
+         There is bug in res_pjsip_outbound_publish.c
+         The function sip_outbound_publish_client_alloc is called with wrong object
+         while processing 412 (Conditional Request Failed) response.
+         This patch fixes it.
 
-         ASTERISK-25677 #close
+         ASTERISK-25229 #close
 
-         Change-Id: I8ffa226fda4365ee7068ac1f464473f1a4ebbb29
+         Change-Id: I3b62f2debf6bb1e5817cde7b13ea39ef2bf14359
+2016-02-18 11:15 +0000 [f1f79812c1]  Mark Michelson <mmichelson@digium.com>
 
-2016-01-09 13:28 +0000 [a5406b1f9e]  Corey Farrell <git@cfware.com>
+       * Fix failing threadpool_auto_increment test.
 
-       * res_crypto: Perform cleanup at shutdown.
+         The threadpool_auto_increment test fails infrequently for a couple of
+         reasons
+         * The threadpool listener was notified of fewer tasks being pushed than
+           were actually pushed
+         * The "was_empty" flag was set to an unexpected value.
 
-         This change causes res_crypto to unregister CLI at shutdown while still
-         preventing the module from being unloaded.
+         The problem is that the test pushes three tasks into the threadpool.
+         Test expects the threadpool to essentially gather those three tasks, and
+         then distribute those to the threadpool threads. It also expects that as
+         the tasks are pushed in, the threadpool listener is alerted immediately
+         that the tasks have been pushed. In reality, a task can be distributed
+         to the threadpool threads quicker than expected, meaning that the
+         threadpool has already emptied by the time each subsequent task is
+         pushed. In addition, the internal threadpool queue can be delayed so
+         that the threadpool listener is not alerted that a task has been pushed
+         even after the task has been executed.
 
-         ASTERISK-25673 #close
+         From the test's point of view, there's no way to be able to predict
+         exactly the order that task execution/listener notifications will occur,
+         and there is no way to know which listener notifications will indicate
+         that the threadpool was previously empty.
 
-         Change-Id: Ie5d57338dc2752abfc0dd05d0eec86413f2304fc
+         For this reason, the test has been updated to only check the things it
+         can check. It ensures that all tasks get executed, that the threads go
+         idle after the tasks are executed, and that the listener is told the
+         proper number of tasks that were pushed.
 
-2016-01-06 19:10 +0000 [cf8e7a580b]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I7673120d74adad64ae6894594a606e102d9a1f2c
 
-       * res_pjsip: Create human friendly serializer names.
+2016-02-16 23:37 +0000 [79dc5e2f00]  Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
 
-         PJSIP name formats:
-         pjsip/aor/<aor>-<seq> -- registrar thread pool serializer
-         pjsip/default-<seq> -- default thread pool serializer
-         pjsip/messaging -- messaging thread pool serializer
-         pjsip/outreg/<registration>-<seq> -- outbound registration thread pool
-         serializer
-         pjsip/pubsub/<endpoint>-<seq> -- pubsub thread pool serializer
-         pjsip/refer/<endpoint>-<seq> -- REFER thread pool serializer
-         pjsip/session/<endpoint>-<seq> -- session thread pool serializer
-         pjsip/websocket-<seq> -- websocket thread pool serializer
+       * app_queue: fix Calculate talktime when is first call answered
 
-         Change-Id: Iff9df8da3ddae1132cb2ef65f64df0c465c5e084
+         Fix calculate of average time for talktime is wrong when is completed the
+         first call beacuse the time for talked would be that call.
 
-2016-01-06 19:09 +0000 [4276f185f0]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25800 #close
 
-       * Sorcery: Create human friendly serializer names.
+         Change-Id: I94f79028935913cd9174b090b52bb300b91b9492
 
-         Sorcery name formats:
-         sorcery/<type>-<seq> -- Sorcery thread pool serializer
+2016-02-17 13:30 +0000 [5a3a857dd6]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Idc2e5d3dbab15c825b97c38c028319a0d2315c47
+       * cel.c: Fix mismatch in ast_cel_track_event() return type.
 
-2016-01-06 19:09 +0000 [f02ac1b7f9]  Richard Mudgett <rmudgett@digium.com>
+         The return type of ast_cel_track_event() is not large enough to return all
+         64 potential bits of the event enable mask.  Fortunately, the defined CEL
+         events do not really need all 64 bits and the return value is only used to
+         determine if the requested CEL event is enabled.
 
-       * Stasis: Create human friendly taskprocessor/serializer names.
+         * Made the ast_cel_track_event() return 0 or 1 only so the return value
+         can fit inside an int type instead of zero or a truncated 64 bit non-zero
+         value.
 
-         Stasis name formats:
-         subm:<topic>-<seq> -- Stasis subscription mailbox task processor
-         subp:<topic>-<seq> -- Stasis subscription thread pool serializer
+         Change-Id: I783d932320db11a95c7bf7636a72b6fe2566904c
 
-         Change-Id: Id19234b306e3594530bb040bc95d977f18ac7bfd
+2016-02-16 16:37 +0000 [87ab65c557]  gtjoseph <george.joseph@fairview5.com>
 
-2016-01-07 16:15 +0000 [ec1f1c6742]  Richard Mudgett <rmudgett@digium.com>
+       * res_odbc: Fix exports.in for missing symbols
 
-       * taskprocessor.c: New API for human friendly taskprocessor names.
+         res_odbc.exports.in was missing a few symbols.
+         Changed to wildcards.
 
-         * Add new API call to get a sequence number for use in human friendly
-         taskprocessor names.
+         Change-Id: Ieadd76df24e43ea92577f651d478a0f7b742c30c
 
-         * Add new API call to create a taskprocessor name in a given buffer and
-         append a sequence number.
+2016-02-16 12:20 +0000 [c0f3062031]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: Iac458f05b45232315ed64aa31b1df05b875537a9
+       * res_statsd:  Fix exports.in for missing symbols
 
-2016-01-06 17:19 +0000 [d8bc3e0c8b]  Richard Mudgett <rmudgett@digium.com>
+         res_statsd.export.in was missing the _va variations of the log
+         functions causing Asterisk to crash in res_pjsip if OPTIONAL_API
+         wasn't enabled.
 
-       * taskprocessor.c: Fix CLI "core show taskprocessors" output format.
+         ASTERISK-25727 #close
+         Reported-by: Gergely Dömsödi
 
-         Update the CLI "core show taskprocessors" output format to not be
-         distorted because UUID names are longer than previously used taskprocessor
-         names.
+         Change-Id: I395729f9f51bdd33c5ca757f5f96ebedad74077b
 
-         Change-Id: I1a5c82ce3e8f765a0627796aba87f8f7be077601
+2016-02-15 21:31 +0000 [5e848dae7b]  gtjoseph <george.joseph@fairview5.com>
 
-2016-01-07 21:07 +0000 [2c4b7502de]  Richard Mudgett <rmudgett@digium.com>
+       * res_pjsip_config_wizard:  Add command to export primitive objects
 
-       * taskprocessor.c: Fix CLI "core show taskprocessors" unref.
+         A new command (pjsip export config_wizard primitives) has been added that
+         will export all the pjsip objects it created to the console or a file
+         suitable for reuse in a pjsip.conf file.
 
-         Change-Id: I1d9f4e532caa6dfabe034745dd16d06134efdce5
+         ASTERISK-24919 #close
+         Reported-by: Ray Crumrine
 
-2016-01-07 20:44 +0000 [3b33ac7a46]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ica2a5f494244b4f8345b0437b16d06aa0484452b
 
-       * taskprocessor.c: Sort CLI "core show taskprocessors" output.
+2016-02-15 15:37 +0000 [34c64707d1]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: I71e7bf57c7b908c8b8c71f1816348ed7c5a5d51e
+       * res_pjsip_caller_id: Fix segfault when replacing rpid or pai header
 
-2016-01-06 19:00 +0000 [0fc32c4dd3]  Richard Mudgett <rmudgett@digium.com>
+         If the PJSIP_HEADER dialplan function adds a PAI or RPID header and send_rpid
+         or send_pai is set, res_pjsip_caller_id attemps to retrieve, parse and modify
+         the header added by the dialplan function.  Since the header added by the
+         dialplan function is generic string, there are no virtual functions to parse
+         the uri and we get a segfault when we try.  Since the modify, was really only
+         an overwrite, we now just delete the old header if it was type PJSIP_H_OTHER
+         and recreate it.
 
-       * ccss.c: Replace space in taskprocessor name.
+         This raises a question for another time though:  What should happen with
+         duplicate headers?  Right now res_pjsip_header_funcs doesn't check for dups
+         so if it's session supplement is loaded after res_pjsip_caller_id's (or any
+         other module that adds headers), there'll be dups in the message.
 
-         The CLI "core ping taskprocessor" command does not work very
-         well with taskprocessor names that have spaces in them.  You
-         have to put quotes around the name so using tab completion
-         becomes awkward.
+         ASTERISK-25337 #close
 
-         Change-Id: I29e806dd0a8a0256f4e2e0a7ab88c9e19ab0eda0
+         Change-Id: I5e296b52d30f106b822c0eb27c4c2b0e0f71c7fa
 
-2016-01-05 16:54 +0000 [0e0c24ad78]  Richard Mudgett <rmudgett@digium.com>
+2016-02-15 13:08 +0000 [ebe167f792]  Mark Michelson <mmichelson@digium.com>
 
-       * taskprocessor.c: Add CLI "core ping taskprocessor" missing unlock.
+       * Fix creation race of contact_status structures.
 
-         Change-Id: I78247e0faf978bf850b5ba4e9f4933ab3c59d17b
+         It is possible when processing a SIP REGISTER request to have two
+         threads end up creating contact_status structures in sorcery.
+         contact_status is created using a "find or create" function. If two
+         threads call into this at the same time, each thread will fail to find
+         an existing contact_status, and so both will end up creating a new
+         contact status.
 
-2016-01-07 03:33 +0000 [0f79c8839b]  Diederik de Groot <ddegroot@talon.nl>
+         During testing, we would see sporadic failures because the
+         PJSIP_CONTACT() dialplan function would operate on a different
+         contact_status than what had been updated by res_pjsip/pjsip_options.
 
-       * main: Use ast_strdup instead of strdup
+         The fix here is two-fold:
+         1) The "find or create" function for contact_status now has a lock
+         around the entire operation. This way, if two threads attempt the
+         operation simultaneously, the first to get there will create the object,
+         and the second will find the object created by the first thread.
 
-         Fix compile error in main/utils.c because strdup was used in dummy_start
+         2) res_sorcery_memory has had its create callback updated so that it
+         will not allow for objects with duplicate IDs to be created.
 
-         Change-Id: Id61a6cf4f3cbf235450441e10e7da101a6335793
+         Change-Id: I55b1460ff1eb0af0a3697b82d7c2bac9f6af5b97
 
-2016-01-07 03:21 +0000 [4285dee778]  Diederik de Groot <ddegroot@talon.nl>
+2016-02-15 12:52 +0000 [1c4f2a920d]  Joshua Colp <jcolp@digium.com>
 
-       * include/asterisk/time.h: Renamed global declaration:tv
+       * res_pjsip_pubsub: Move where the subscription is stored to after initialized.
 
-         Renamed global declaration:tv to dummy_tv_var_for_types,
-         which would oltherwise cause 'shadow' warnings when 'tv'
-         was declared as a local variable elsewhere.
+         A problem arose when testing the AMI subscription listing actions where it
+         was possible for a subscription that had not been fully initialized to be
+         listed. This was problematic as the underlying listing code would crash.
 
-         Added comment to note that dummy_tv_var_for_types is never
-         really exported and only used as a place holder.
+         This change makes it so the subscription tree is fully set up before it is
+         added to the list of subscriptions. This ensures that when the listing actions
+         get the subscription it is valid.
 
-         ASTERISK-25627 #close
+         ASTERISK-25738 #close
 
-         Change-Id: I9a6e17995006584f3627efe8988e3f8aa0f5dc28
+         Change-Id: Iace2b13641c31bbcc0d43a39f99aba1f340c0f48
 
-2016-01-07 15:37 +0000 [96094feab6]  Mark Michelson <mmichelson@digium.com>
+2015-02-20 20:51 +0000 [ac00c6bc2d]  Corey Farrell <git@cfware.com>
 
-       * PJSIP: Prevent deadlock due to dialog/transaction lock inversion.
+       * main/asterisk.c: Reverse #if statement in listener() to fix code folding.
 
-         A deadlock was observed where the monitor thread was stuck, therefore
-         resulting in no incoming SIP traffic being processed.
+         listener() opens the same code block in two places (#if and #else).  This
+         confuses some folding editors causing it to think that an extra code block
+         was opened.  Folding in 'geany' causes all code after listener() to be
+         folded as if it were part of that procedure.
 
-         The problem occurred when two 200 OK responses arrived in response to a
-         terminating NOTIFY request sent from Asterisk. The first 200 OK was
-         dispatched to a threadpool worker, who locked the corresponding
-         transaction. The second 200 OK arrived, resulting in the monitor thread
-         locking the dialog. At this point, the two threads are at odds, because
-         the monitor thread attempts to lock the transaction, and the threadpool
-         thread loops attempting to try to lock the dialog.
+         ASTERISK-24813 #close
 
-         In this case, the fix is to not have the monitor thread attempt to hold
-         both the dialog and transaction locks at the same time. Instead, we
-         release the dialog lock before attempting to lock the transaction.
+         Change-Id: I4b8c766e6c91e327dd445e8c18f8a6f268acd961
 
-         There have also been some debug messages added to the process in an
-         attempt to make it more clear what is going on in the process.
+2016-02-09 17:34 +0000 [b1b797e0e7]  gtjoseph <george.joseph@fairview5.com>
 
-         ASTERISK-25668 #close
-         Reported by Mark Michelson
+       * res_pjsip:  Refactor load_module/unload_module
 
-         Change-Id: I4db0705f1403737b4360e33a8e6276805d086d4a
+         load_module was just too hairy with every step having to clean up all
+         previous steps on failure.
 
-2016-01-07 09:39 +0000 [52e9de0016]  Corey Farrell <git@cfware.com>
+         Some of the pjproject init calls have now been moved to a separate
+         load_pjsip function and the unload_pjsip function was enhanced to clean
+         up everything if an error happened at any stage of the load process.
 
-       * ast_format_cap_append_by_type: Resolve codec reference leak.
+         In the process, a bunch of missing pj_shutdowns, serializer_pool_shutdowns
+         and ast_threadpool_shutdowns were also corrected.
 
-         This resolves a reference leak caused by ASTERISK-25535.  The pointer
-         returned by ast_format_get_codec is saved so it can be released.
+         Change-Id: I5eec711b437c35b56605ed99537ebbb30463b302
 
-         ASTERISK-25664 #close
+2016-02-09 22:42 +0000 [20e9792fbc]  Badalyan Vyacheslav <slavon.net@gmail.com>
 
-         Change-Id: If9941b1bf4320b2c59056546d6bce9422726d1ec
+       * Resources/res_phoneprov: fix memory leak and heap-use-after-free
 
-2016-01-04 04:26 +0000 [86eae38d7e]  Aaron An <anjb@ti-net.com.cn>
+         * heap-use-after-free happens when we free "cfg"
+         but then use "value" which refers to it
 
-       * cel/cel_radius: Fix wrong pointer.
+         * A memory leak occurs because in some cases
+         it is not released "defaults"
 
-         The macro ADD_VENDOR_CODE defined in the cel_radius.c should use the parameter
-         y not the address of y.
+         ASTERISK-25721 #close
+         Reported by: Badalyan Vyacheslav
+         Tested by: Badalyan Vyacheslav
 
-         I capture the radius UDP packet via tcpdump, and the AV pairs are not correct,
-         then i review the source code and compare it with cdr/cdr_radius.c. Fix it and
-          it works.
+         Change-Id: I3807d3f4726df6864430ec144cf6265d3f538469
 
-         ASTERISK-25647 #close
-         Reported by: Aaron An
-         Tested by: Aaron An
+2016-02-11 11:21 +0000 [962a9d61f8]  Etienne Lessard (license #6394)
 
-         Change-Id: I72889bccd8fde120d47aa659edc0e7e6d4d019f0
+       * func_iconv: Ensure output strings are properly terminated.
 
-2016-01-05 14:52 +0000 [881dc862e0]  gtjoseph <george.joseph@fairview5.com>
+         ASTERISK-25272 #close
+         Reported by: Etienne Lessard
+         patches:
+          AST-25272.patch submitted by Etienne Lessard (license #6394)
 
-       * asterisk.h: Add ASTERISK_REGISTER_FILE macro
+         Change-Id: Id75ad202300960a1e91afe15e319d992936ecc17
 
-         The 11/13 branches and master use 2 different file version macros. 11/13
-         uses ASTERISK_FILE_VERSION but master uses ASTERISK_REGISTER_FILE. This
-         means a new file added to 11/13 can't just be cherry-picked to master
-         because the macro has to be changed.
+2016-02-10 16:16 +0000 [c1bf014ea0]  gtjoseph <george.joseph@fairview5.com>
 
-         To make cherry-picking possible, ASTERISK_REGISTER_FILE was added
-         to asterisk.h as a simple alias for ASTERISK_FILE_VERSION(__FILE__, NULL)
-         The "$Revision$" tag doesn't do anything since Asterisk moved to git so
-         just passing NULL as the verison works fine.  asterisk.h was also
-         annotated to deprecate ASTERISK_FILE_VERSION and suggest using
-         ASTERISK_REGISTER_FILE for all new files.
+       * res_pjsip:  Handle pjsip_dlg_create_uas deprecation
 
-         Finally, 2 recent file additions, pbx_builtins.c and pbx_functions.c,
-         were modified to use the new macro to make sure it actually worked.
-         'core show file version' showed the correct output.
+         Pjproject has deprecated pjsip_dlg_create_uas in 2.5 and replaced it with
+         pjsip_dlg_create_uas_and_inc_lock which, as the name implies, automatically
+         increments the lock on the returned dialog.  To account for this, configure.ac
+         now detects the presence of pjsip_dlg_create_uas_and_inc_lock and res_pjsip.c
+         has an #ifdef HAVE_PJSIP_DLG_CREATE_UAS_AND_INC_LOCK to decide whether to use
+         the original call or the new one.  If the new one was used, the ref count is
+         decremented before returning.
 
-         Change-Id: I5867ed898818d26ee49bb6e5c7d4c1a45d4789a5
+         ASTERISK-25751 #close
+         Reported-by Josh Colp
 
-2016-01-05 11:06 +0000 [d228b62fd4]  gtjoseph <george.joseph@fairview5.com>
+         Change-Id: I1be776b94761df03bd0693bc7795a75682615ca8
 
-       * stasis_cache_pattern:  Backport to 13
+2016-02-09 23:40 +0000 [bd07b6f0dd]  Badalyan Vyacheslav <slavon.net@gmail.com>
 
-         Somehow stasis_cache_pattern got out of sync between 13 and master
-         and it was causing duplicate channel message issues in 13 when
-         related to a specific endpoint. I.E. from statsd,
-         'endpoints.PJSIP.1174.channels 0|g' was being emitted twice.
+       * Build: Added testing compiler to support the system sanitizes
 
-         Backporting stasis_cache_pattern from master to 13 solved
-         the issue and running the unit and testsuite tests confirmed
-         that no new ones were created.
+         In older versions of the compiler was not sanitizes.
+         Compilers other than GCC can not support the Usan and TSAN
+         or have other options for *FLAGS.
 
-         ASTERISK-25317 #close
+         ASTERISK-25767 #close
+         Reported by: Badalyan Vyacheslav
+         Tested by: Badalyan Vyacheslav
 
-         Change-Id: Ia8707462f62d15eed14541c37f332a7bbbceb548
-2016-01-04 20:23 +0000 [e462f0063f]  Corey Farrell <git@cfware.com>
+         Change-Id: Iefce6608221fa87884b82ae3cb5649b7b1804916
 
-       * main/pbx: Move hangup handler routines to pbx_hangup_handler.c.
+2016-02-09 20:57 +0000 [e9e896abd1]  Badalyan Vyacheslav <v.badalyan@open-bs.ru>
 
-         This is the sixth patch in a series meant to reduce the bulk of pbx.c.
-         This moves hangup handler management functions to their own source.
+       * Build: Fix menuselect USAN conflicts
 
-         Change-Id: Ib25a75aa57fc7d5c4294479e5cc46775912fb104
+         USAN can be used together with other sanitizers.
 
-2016-01-04 19:46 +0000 [ab191d124c]  Corey Farrell <git@cfware.com>
+         Reported by: Badalyan Vyacheslav
+         Tested by: Badalyan Vyacheslav
 
-       * main/pbx: Move dialplan application management routines to pbx_app.c.
+         Change-Id: I3bffa350d70965c3026651dba3a12414d0aaa45f
 
-         This is the sixth patch in a series meant to reduce the bulk of pbx.c.
-         This moves dialplan application management functions to their own source.
+2016-02-09 14:21 +0000 [93e8ed0154]  Corey Farrell <git@cfware.com>
 
-         Change-Id: I444c10fb90a3cdf9f3047605d6a8aad49c22c44c
+       * Simplify and fix conditional in FD_SET.
 
-2016-01-04 18:20 +0000 [09a9b93896]  Corey Farrell <git@cfware.com>
+         FD_SET contains a conditional statement to protect against buffer
+         overruns.  The statement was overly complicated and prevented use
+         of the last array element of ast_fdset.  We now just verify the fd
+         is less than ast_FDMAX.
 
-       * main/pbx: Move switch routines to pbx_switch.c.
+         Change-Id: I41895c0b497b052aef5bf49d75c817c48b326f40
 
-         This is the fifth patch in a series meant to reduce the bulk of pbx.c.
-         This moves ast_switch functions to their own source.
+2016-02-09 07:11 +0000 [a7c8d4cd6b]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: Ic2592a18a5c4d8a3c2dcf9786c9a6f650a8c628e
+       * tests/test_sorcery_memory_cache_thrash: Improve termination process.
 
-2016-01-04 18:00 +0000 [c608274a39]  Corey Farrell <git@cfware.com>
+         When terminating the threads thrashing a sorcery memory cache each
+         would be told to stop and then we would wait on them. During at
+         least one thrashing test this was problematic due to the specific
+         usage pattern in use. It would take some time for termination of the
+         thread to occur.
 
-       * main/pbx: Move timing routines to pbx_timing.c.
+         This would occur due to contention between the threads retrieving
+         and the threads updating the cache. As the retrieving threads are
+         given priority it may be some time before the updating threads
+         are able to proceed.
 
-         This is the fourth patch in a series meant to reduce the bulk of pbx.c.
-         This moves pbx timing functions to their own source.
+         This change makes it so all threads are told to stop and then each
+         are joined to ensure they stop. This way all the threads should
+         stop at around the same time instead of waiting for one to stop,
+         the next to stop, then the next, and so on. As a result of this
+         the execution time for each thrash test is much closer to their
+         expected value than previously seen as well.
 
-         Change-Id: I05c45186cb11edfc901e95f6be4e6a8abf129cd6
+         Change-Id: I04a53470b0ea4170b8819180b0bd7475f3642827
+2016-01-29 17:56 +0000 [2451d4e455]  gtjoseph <george.joseph@fairview5.com>
 
-2015-12-29 04:31 +0000 [338a8ffed6]  Martin Tomec <tomec.martin@gmail.com>
+       * res_pjsip:  Fix infinite recursion when loading transports from realtime
 
-       * app_queue: Add member flag "in_call" to prevent reading wrong lastcall time
+         Attempting to load a transport from realtime was forcing asterisk into an
+         infinite recursion loop.  The first thing transport_apply did was to do a
+         sorcery retrieve by id for an existing transport of the same name. For files,
+         this just returns the previous object from res_sorcery_config's internal
+         container, if any.  For realtime, the res_sourcery_realtime driver looks in the
+         database and finds the existing row but now it has to rehydrate it into a
+         sorcery object which means calling... transport_apply.  And so it goes.
 
-         Member lastcall time is updated later than member status. There was chance to
-         check wrapuptime for available member with wrong (old) lastcall time.
-         New boolean flag "in_call" is set to true right before connecting call, and
-         reset to false after update of lastcall time. Members with "in_call" set to true
-         are treat as unavailable.
+         The main issue with loading from realtime (apart from the loop) was that
+         transport stores structures and pointers directly in the ast_sip_transport
+         structure instead of the separate ast_transport_state structure.  This patch
+         separates those items into the ast_sip_transport_state structure.  The pattern
+         is roughly the same as res_pjsip_outbound_registration.
 
-         ASTERISK-19820 #close
+         Although all current usages of ast_sip_transport and ast_sip_transport_state
+         were modified to use the new ast_sip_get_transport_state API, the original
+         items are left in ast_sip_transport and kept updated to maintain ABI
+         compatability for third-party modules.  They are marked as deprecated and
+         noted that they're now in ast_sip_transport_state.
 
-         Change-Id: I1923230cf9859ee51563a8ed420a0628b4d2e500
+         ASTERISK-25606 #close
+         Reported-by: Martin Moučka
 
-2015-12-28 17:23 +0000 [e13719bff1]  Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+         Change-Id: Ic7a836ea8e786e8def51fe3f8cce855ea54f5f19
 
-       * app_queue: Added reason pause of member
+2016-01-25 17:36 +0000 [6f978fbfe5]  Richard Mudgett <rmudgett@digium.com>
 
-         In app_queue added value Paused Reason on QueueMemberStatus when a member
-         on queue is paused and the reason was set.
+       * app_confbridge: Only use b_profile options from the conference.
 
-         ASTERISK-25480 #close
-         Reporte by: Rodrigo Ramírez Norambuena
+         A user cannot set new bridge options after the conference is created by
+         the first user.  Attempting to do so is documented as undefined behavior.
 
-         Change-Id: Ia5db503482f50764c15e2020196c785f59d4a68e
+         This patch ensures that the bridge profile options used are from the
+         conference and not what a subsequent user may have tried to set.
 
-2015-12-30 10:49 +0000 [4ec85a9f07]  gtjoseph <george.joseph@fairview5.com>
+         Change-Id: I1b6383eba654679e5739d5a8de98199cf074a266
 
-       * voicemail: Move app_voicemail / res_mwi_external conflict to runtime
+2016-02-05 10:29 +0000 [ec8fd6714d]  gtjoseph <george.joseph@fairview5.com>
 
-         The menuselect conflict between app_voicemail and res_mwi_external
-         makes it hard to package 1 version of Asterisk.  There no actual
-         build dependencies between the 2 so moving this check to runtime
-         seems like a better solution.
+       * chan_misdn: Fix a few issues causing compile errors
 
-         The ast_vm_register and ast_vm_greeter_register functions in app.c
-         were modified to return AST_MODULE_LOAD_DECLINE instead of -1 if there
-         is already a voicemail module registered. The modules' load_module
-         functions were then modified to return DECLINE instead of -1 to the
-         loader.  Since -1 is interpreted by the loader as AST_MODULE_LOAD_FAILURE,
-         the modules were incorrectly causing Asterisk to stop so this needed
-         to be cleaned up anyway.
+         Change-Id: I54b48c24d7ca88ed80496fdfd142d08772a7ab98
 
-         Now you can build both and use modules.conf to decide which voicemail
-         implementation to load.
+2016-02-04 16:17 +0000 [6a799cd78f]  Mark Michelson <mmichelson@digium.com>
 
-         The default menuselect options still build app_voicemail and not
-         res_mwi_external but if both ARE built, res_mwi_external will load
-         first and become the voicemail provider unless modules.conf rules
-         prevent it.  This is noted in CHANGES.
+       * Check for OpenSSL defines before trying to use them.
 
-         Change-Id: I7d98d4e8a3b87b8df9e51c2608f0da6ddfb89247
+         The SSL_OP_NO_TLSv1_1 and SSL_OP_NO_TLSv1_2 defines did not exist prior
+         to OpenSSL version 1.0.1. A recent commit attempts to, by default, set
+         these options, which can cause problems on systems with older OpenSSL
+         installations.
 
-2016-01-04 16:22 +0000 [7fdcfd7724]  Corey Farrell <git@cfware.com>
+         This commit adds a configure script check for those defines and will not
+         attempt to make use of those if they do not exist. We will print a
+         warning urging the user to upgrade their OpenSSL installation if those
+         defines are not present.
 
-       * main/pbx: Move variable routines to pbx_variables.c.
+         Change-Id: I6a2eb9a43fd0738b404d8f6f2cf4b5c22d9d752d
+2016-02-03 14:25 +0000 [953d1cc11a]  gtjoseph <george.joseph@fairview5.com>
 
-         This is the third patch in a series meant to reduce the bulk of pbx.c.
-         This moves channel and global variable routines to their own source.
+       * pjsip/alembic:  Add missing columns to system and registration
 
-         Change-Id: Ibe8fb4647db11598591d443a99e3f99200a56bc6
+         ps_systems needed disable_tcp_switch
+         ps_registrations needed line and endpoint
 
-2015-12-04 17:22 +0000 [80a8b2a4cd]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25737 #close
 
-       * app_dial: Immediately exit dial if the caller is already hung up.
+         Change-Id: Iaf9c2d69e62243d9fa53104c28c5339c47d4ac19
 
-         If a caller hangs up before dial is executed within an AGI then the AGI
-         has likely eaten all queued frames before executing the dial in DeadAGI
-         mode.  With the caller hung up and no pending frames from the caller's
-         read queue, dial would not know that the call has hung up until a called
-         channel answers.  It is rather annoying to whoever just answered the
-         non-existent call.
+2016-02-04 11:39 +0000 [23829b3253]  Mark Michelson <mmichelson@digium.com>
 
-         Dial should not continue execution in DeadAGI mode, hangup handlers, or
-         the h exten.
+       * res_stasis_device_state: Fix refcounting error.
 
-         * Added a check early in dial to abort dialing if the caller has hungup.
+         Device state subscription lifetimes were governed by when the
+         subscription was established and unsubscribed from. However, it is
+         possible that at the time of unsubscription, there could be device state
+         events still in flight. When those device state events occur, the device
+         state callback could attempt to dereference a freed pointer. Crash.
 
-         ASTERISK-25307 #close
-         Reported by: David Cunningham
+         This change ensures that the lifetime of the device state subscription
+         does not end until the underlying stasis subscription has confirmed that
+         its final message has been sent.
 
-         Change-Id: Icd1bc0764726ef8c809f76743ca008d0f102f418
+         Change-Id: I25a0f1472894c1a562252fb7129671478e25e9b2
 
-2016-01-02 10:26 +0000 [1087b0c6ed]  Matt Jordan <mjordan@digium.com>
+2016-01-27 10:44 +0000 [4e8e6d3922]  Sean Bright <sean.bright@gmail.com>
 
-       * main/cdr: Allow setting properties on a finalized CDR if it is the last one
+       * res_rtp_asterisk: Allow ICE host candidates to be overriden
 
-         Prior to this patch, we explicitly disallowed setting any properties on a
-         finalized CDR. This seemed like a good idea at the time; in practice, it was
-         more restrictive.
+         During ICE negotiation the IPs of the local interfaces are sent to the remote
+         peer as host candidates. In many cases Asterisk is behind a static one-to-one
+         NAT, so these host addresses will be internal IP addresses.
 
-         There are weird and strange scenarios where setting a property on a finalized
-         CDR is definitely wrong. For example, we may Fork a CDR, finalizing the
-         previous one, then change a property. In said case, the old CDR is supposed
-         to now be 'immutable' (so to speak), and should not be updated. From the
-         perspective of the code, a forked CDR that is finalized is just finalized.
-         Hence why we decided these should not be updated.
+         To help in hiding the topology of the internal network, this patch adds the
+         ability to override the host candidates by matching them against a
+         user-defined list of replacements.
 
-         In practice, it is much more common to want to set a property on a CDR in
-         the h extension or in a hangup handler. Disallowing a common scenario to make
-         an esoteric behaviour work isn't good. This patch fixes this by allowing
-         callers to set a property IF we are the last CDR in the chain. This preserves
-         the finalized CDR if it was forked, while allowing the more common case to
-         function.
+         Change-Id: I1c9541af97b83a4c690c8150d19bf7202c8bff1f
 
-         ASTERISK-25458 #close
+2015-12-07 12:46 +0000 [c6b1b2b1c8]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Icf3553c607b9f561152a41e6d8381d594ccdf4b9
+       * AST-2016-003 udptl.c: Fix uninitialized values.
 
-2016-01-02 10:23 +0000 [1f23e65b89]  Matt Jordan <mjordan@digium.com>
+         Sending UDPTL packets to Asterisk with the right amount of missing
+         sequence numbers and enough redundant 0-length IFP packets, can make
+         Asterisk crash.
 
-       * main/cdr: Set the end time on a CDR if endbeforehexten is Yes
+         ASTERISK-25603 #close
+         Reported by: Walter Doekes
 
-         Prior to this patch, the CDR engine attempted to set the end time on a CDR
-         that was executing hangup logic and with endbeforehexten set to Yes by
-         calling a function that inspects the properties on the Party A snapshot to
-         determine if we are ready to set the end time. That always failed. This is
-         because a Party A snapshot is not updated for CDRs that are executing hangup
-         logic with endbeforehexten=Yes.
+         ASTERISK-25742 #close
+         Reported by: Torrey Searle
 
-         Instead of calling a function that looks at the Party A snapshot, we just
-         simply set the end time on the CDR. This is safe to call multiple times, and is
-         safe to call at this point as we know that (a) we are executing hangup logic,
-         and (b) we are supposed to set the end time at this point.
+         Change-Id: I97df8375041be986f3f266ac1946a538023a5255
+2016-02-03 12:05 +0000 [f8acadde2c]  Joshua Colp <jcolp@digium.com>
 
-         ASTERISK-25458
+       * AST-2016-001 http: Provide greater control of TLS and set modern defaults.
 
-         Change-Id: I0c27b493861f9c13c43addbbb21257f79047a3b3
+         This change exposes the configuration of various aspects of the TLS
+         support and sets the default to the modern standards.
 
-2015-12-30 20:51 +0000 [2ffade4574]  Corey Farrell <git@cfware.com>
+         The TLS cipher is now set to the best values according to the
+         Mozilla OpSec team, different TLS versions can now be disabled, and
+         the cipher order can be forced to be that of the server instead of
+         the client.
 
-       * main/pbx: Move custom function routines to pbx_functions.c.
+         ASTERISK-24972 #close
 
-         This is the second patch in a series meant to reduce the bulk of pbx.c.
-         This moves custom function management routines to their own source.
+         Change-Id: I0a10f2883f7559af5e48dee0901251dbf30d45b8
+2015-09-28 17:07 +0000 [3c81a052c8]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I34a6190282f781cdbbd3ce9d3adeac3c3805e177
+       * AST-2016-002 chan_sip.c: Fix retransmission timeout integer overflow.
 
-2015-12-28 19:18 +0000 [20b8474f20]  gtjoseph <george.joseph@fairview5.com>
+         Setting the sip.conf timert1 value to a value higher than 1245 can cause
+         an integer overflow and result in large retransmit timeout times.  These
+         large timeout times hold system file descriptors hostage and can cause the
+         system to run out of file descriptors.
 
-       * main/pbx: Move pbx_builtin dialplan applications to pbx_builtins.c
+         NOTE: The default sip.conf timert1 value is 500 which does not expose the
+         vulnerability.
 
-         We joked about splitting pbx.c into multiple files but this first step was
-         fairly easy.  All of the pbx_builtin dialplan applications have been moved
-         into pbx_builtins.c and a new pbx_private.h file was added. load_pbx_builtins()
-         is called by asterisk.c just after load_pbx().
+         * The overflow is now detected and the previous timeout time is
+         calculated.
 
-         A few functions were renamed and are cross-exposed between the 2 source files.
+         ASTERISK-25397 #close
+         Reported by: Alexander Traud
 
-         Change-Id: I87066be3dbf7f5822942ac1449d98cc43fc7561a
+         Change-Id: Ia7231f2f415af1cbf90b923e001b9219cff46290
+2016-02-03 14:07 +0000 [2a6ee8caeb]  gtjoseph <george.joseph@fairview5.com>
 
-2015-12-24 20:26 +0000 [e4a566918a]  Matt Jordan <mjordan@digium.com>
+       * logging: Remove/fix some message annoyances
 
-       * tests/test_stasis_endpoints: Remove expected duplicate events
+         test_dlinklists doesn't need to NOTICE everyone that every macro worked.
 
-         The cache_clear test was written to expect duplicate Stasis messages
-         sent from the technology endpoint to the all caching topic. This patch
-         fixes the test to no longer expect these duplicate messages.
+         res_phoneprov doesn't need to VERBOSE everyone that a phoneprov extension or
+         provider was registered.
 
-         ASTERISK-25137
+         res_odbc was missing a newline at the end of one message.
 
-         Change-Id: I58075d70d6cdf42e792e0fb63ba624720bfce981
+         Change-Id: I6c06361518ef3711821795e535acd439782a995e
 
-2015-12-28 14:02 +0000 [a280400758]  Joshua Colp <jcolp@digium.com>
+2016-02-02 10:52 +0000 [32fc784284]  Alexei Gradinari License #5691
 
-       * test_time: Provide a timeout when waiting.
+       * res_sorcery_realtime: Fix regex regression.
 
-         The test_timezone_watch unit test is written to expect a
-         condition to be signaled when the inotify daemon thread runs.
-         There exists a small window where the test_timezone_watch
-         thread can signal the inotify daemon thread while it is not
-         reading on the underlying file descriptor. If this occurs
-         the test_timezone_watch thread will wait indefinitely for a
-         signal that will never arrive.
+         A regression was introduced where searching for realtime PJSIP objects
+         by regex by starting the regex with a leading "^" would cause no items
+         to be returned.
 
-         This change adds a timeout to the condition so it will return
-         regardless after a period of time.
+         This was due to a change which attempted to drop the requirement for a
+         leading "^" to be present due to how some CLI commands formulate their
+         regexes. However, the change, rather than simply eliminating the
+         requirement, caused any regexes that did begin with "^" to end up not
+         returning the expected results.
 
-         Change-Id: Ifed981879df6de3d93acd3ee0a70f92546517390
+         This change fixes the problem by inspecting the regex and formulating
+         the realtime query differently depending on if it begins with "^".
 
-2015-05-27 13:22 +0000 [3a1c4885be]  gtjoseph <george.joseph@fairview5.com>
+         ASTERISK-25702 #close
+         Reported by Nic Colledge
 
-       * endpoint/stasis: Eliminate duplicate events on endpoint status change
+         Patches:
+             realtime_retrieve_regex.patch submitted by Alexei Gradinari License #5691
 
-         When an endpoint is created, its messages are forwarded to both the tech
-         endpoint topic and the all endpoints topic. This is done so that various
-         parties interested in endpoint messages can subscribe to just the tech
-         endpoint and receive all messages associated with that particular technology,
-         as opposed to subscribing to the all endpoints topic. Unfortunately, when the
-         tech endpoint is created, it also forwards all of its messages to the all
-         topic. This results in duplicate messages whenever an endpoint publishes its
-         messages.
+         Change-Id: I055df608a6e6a10732044fa737a9fe8dca602693
 
-         This patch resolves the duplicate message issue by creating a new function
-         for Stasis caching topics, stasis_cp_sink_create. In most respects, this acts
-         as a normal caching topic, save that it no longer forwards messages it receives
-         to the all endpoints topic. This allows it to act as an aggregation "sink",
-         while preserving the necessary caching behaviour.
+2016-02-02 04:05 +0000 [0405c31756]  Karsten Wemheuer <kwe-digium@iptam.com>
 
-         ASTERISK-25137 #close
-         Reported-by: Vitezslav Novy
+       * res_xmpp: Does not connect in component mode
 
-         ASTERISK-25116 #close
-         Reported-by: George Joseph <george.joseph@fairview5.com>
-         Tested-by: George Joseph <george.joseph@fairview5.com>
+         The module res_xmpp does not accept usernames in the form used in component
+         mode (XEP-0114). In component mode there is no @something in the name.
+         In component mode the connection is now not dropped anymore.
 
-         Change-Id: Ie47784adfb973ab0063e59fc18f390d7dd26d17b
-2015-12-24 22:19 +0000 [136c537695]  Dade Brandon <dade@xencall.com>
+         If the xmpp server sends out a "stream" tag before handshake is finished,
+         the connection gets dropped in res_xmpp. Now this tag will be ignored and
+         the connection will be established.
 
-       * res_http_websocket.c: prevent avoidable disconnections caused by write errors
+         After connecting there will be an exchange of presence states. This does
+         not work as expected in component mode. The responsible function
+         "xmpp_pak_presence" is left before the states get sent out. Sending
+         presence states in component mode is now moved to the top of the function.
 
-         Updated ast_websocket_write to encode the entire frame in to one
-         write operation, to ensure that we don't end up with a situation
-         where the websocket header has been sent, while the body can not
-         be written.
+         ASTERISK-25735 #close
 
-         Previous to August's patch in commit b9bd3c14, certain network
-         conditions could cause the header to be written, and then the
-         sub-sequent body to fail - which would cause the next successful
-         write to contain a new header, and a new body (resulting in
-         the peer receiving two headers - the second of which would be
-         read as part of the body for the first header).
+         Change-Id: I70e036f931c3124ebb2ad1e56f93ed35cfdd9d5c
+2016-02-01 13:04 +0000 [8804d0973c]  gtjoseph <george.joseph@fairview5.com>
 
-         This was patched to have both write operations individually fail
-         by closing the websocket.
+       * build_system:  Fix some warnings highlighted by clang
 
-         In a case available to the submitter of this patch, the same
-         body which would consistently fail to write, would succeed
-         if written at the same time as the header.
+         Fix some warnings found with clang.
 
-         This update merges the two operations in to one, adds debug messages
-         indicating the reason for a websocket connection being closed during
-         a write operation, and clarifies some variable names for code legibility.
+         Change-Id: I5195b6189b148c2ee3ed4a19d015a6d4ef3e77bd
 
-         Change-Id: I4db7a586af1c7a57184c31d3d55bf146f1a40598
+2016-02-01 13:16 +0000 [109b0aff6b]  gtjoseph <george.joseph@fairview5.com>
 
-2015-12-27 22:38 +0000 [f2efbb5d75]  Corey Farrell <git@cfware.com>
+       * res/Makefile: Fix bug in "clean" target for ari
 
-       * Remove res_jabber file that was left behind.
+         The "clean" target was attempting to clean res/ari from inside
+         the res directory which doesn't remove anything.  Removed the res/
+         prefix.
 
-         Change-Id: I9d88fac0394d5bbaff0900a2ee911c4e4478846b
+         Change-Id: Ib1a518d54efa81b9fd5a42742d43cc3767435bf6
 
-2015-12-13 13:09 +0000 [dde7f3c1c4]  Matt Jordan <mjordan@digium.com>
+2016-01-31 20:13 +0000 [a85fab7c44]  gtjoseph <george.joseph@fairview5.com>
 
-       * res_pjsip_history: Add a module that provides PJSIP history for debugging
+       * pjsip/alembic: Fix definition of qualify_timeout
 
-         This patch adds a new module, res_pjsip_history, that provides a slightly
-         better way of debugging SIP message traffic on a busy Asterisk system. The
-         existing mechanisms all rely on passively dumping a SIP message to the CLI.
-         While this is perfectly fine for logging purposes and well controlled
-         environments, on many installations, the amount of SIP messages Asterisk
-         receives will quickly swamp the CLI. This makes it difficult to view/capture
-         those messages that you want to diagnose in real time.
+         A recent commit set qualify_timeout to Decimal which isn't supported.
+         This path corrects it to Float.
 
-         This patch provides another way of handling this. When enabled, the module
-         will store SIP message traffic in memory. This traffic can then be queried
-         at leisure.
+         Change-Id: I038f5274ba8cb60f8518a5845ce448d49306aadf
 
-         In order to make the querying useful, a CLI command has been implemented,
-         'pjsip show history', that supports a basic expression syntax similar to
-         SQL or other query languages. A small number of useful fields have been
-         added in this initial patch; additional fields can easily be added in
-         later improvements. Those fields are:
-          - number: The entry index in the history
-          - timestamp: The time the message was recieved
-          - addr: The source/destination address of the message
-          - sip.msg.request.method: The request method
-          - sip.msg.call-id: The Call-ID header
+2016-01-29 07:39 +0000 [aa9348ab9a]  Stefan Engström <stefanen@kth.se>
 
-         Note - this is a resurrection of the module initially proposed on Review Board
-         here: https://reviewboard.asterisk.org/r/4053/
+       * chan_sip.c: AMI & CLI notify methods get different values of asterisk's own ip.
 
-         Change-Id: I39bd74ce998e99ad5ebc0aab3e84df3a150f8e36
+         When I ask asterisk to send a SIP NOTIFY message to a sip peer using either a)
+         AMI action: SIPnotify or b) cli command: sip notify <cmd> <peer>, I expect
+         asterisk to include the same value for its own ip in both cases a) and b),
+         but it seems a) produces a contact header like Contact:
+         <sip:asterisk@192.168.1.227:8060> whereas b) produces a contact header like
+         <sip:asterisk@127.0.0.1:8060>. 0.0.0.0:8060 is my udpbindaddr in sip.conf
 
-2015-12-25 09:56 +0000 [be050f2638]  Dade Brandon <dade@xencall.com>
+         My guess is that manager_sipnotify should call
+         ast_sip_ouraddrfor(&p->sa, &p->ourip, p) the same way sip_cli_notify does,
+         because after applying this patch, both cases a) and b) produce
+         the contact header that I expect: <sip:asterisk@192.168.1.227:8060>
 
-       * chan_sip.c: fix websocket_write_timeout default value
+         Reported by: Stefan Engström
+         Tested by: Stefan Engström
 
-         websocket_write_timeout was not being set to its default value
-         during sip config reload, which meant that prior to this commit,
-         1) the default value of 100 was not used, unless an invalid value
-         (or 1) was specified in sip.conf for websocket_write_timeout, and
-         2) if the websocket_write_timeout directive was removed from sip.conf
-         without a full restart of asterisk, then the previous value would
-         continue to be used indefinitely.
+         Change-Id: I86af5e209db64aab82c25417de6c768fb645f476
+2015-12-23 15:07 +0000 [65bd4fcc3f]  Mark Michelson <mmichelson@digium.com>
 
-         This essentially lead to a 0ms write timeout (the first write attempt
-         in ast_careful_fwrite must have succeeded) in websocket write requests
-         from chan_sip, unless websocket_write_timeout was explicitely set in sip.conf.
+       * res_odbc: Remove connection management
 
-         Changes to websocket_write_timeout still only apply to new websocket
-         sessions, after the sip reload -- timeouts on existing sessions are
-         not adjusted during sip reload.
+         Asterisk by default will create a single database connection and share
+         it among all threads that attempt to access the database. In previous
+         versions of Asterisk, this was tolerable, because the most used channel
+         driver, chan_sip, mostly accessed the database from a single thread.
+         With PJSIP, however, many threads may be attempting to perform database
+         operations, and there is the potential for many more database accesses,
+         meaning the concurrency is a horrible bottleneck if only one connection
+         is shared.
 
-         Change-Id: Ibed3816ed29cc354af6564c5ab3e75eab72cb953
+         Asterisk has a connection pooling facility built into it, but the
+         implementation has flaws. For one, there is a strict limit on the number
+         of simultaneous connections that could be made to the database. Anything
+         beyond the maximum would result in a failed operation. Attempting to
+         predict what the maximum should be is nearly impossible even for someone
+         intimately familiar with Asterisk's threading model. In addition, use of
+         transactions in the dialplan can cause some severe bugs if connection
+         pooling is enabled.
 
-2015-12-23 17:40 +0000 [b3024cad10]  Richard Mudgett <rmudgett@digium.com>
+         This commit seeks to fix the concurrency problem by removing all
+         connection management code from Asterisk and leaving that to the
+         underlying unixODBC code instead. Now, Asterisk does not share a single
+         connection, nor does it try to maintain a connection pool. Instead, all
+         Asterisk ever does is request a connection from unixODBC and allow
+         unixODBC to either allocate those connections or retrieve them from a
+         pool.
 
-       * bridge_basic.c: Fix GOTO_ON_BLINDXFR
+         Doing this has a bit of a ripple effect. For one, since connections are
+         not long-lived objects, several of the safeguards that previously
+         existed have been removed. We don't have to worry about trying to use a
+         connection that has gone stale. In every case, when we request a
+         connection, it has just been made and we don't need to perform any
+         sanity checks to be sure it's still active.
 
-         Use of GOTO_ON_BLINDXFR would not work at all.  The target location would
-         never be executed by the transferring channel.
+         Another major player affected by this change is transactions.
+         Transactions and their respective connections were so tightly coupled
+         that it was almost pornographic. This code change moves
+         transaction-related code to its own file separate from the core ODBC
+         functionality. This way, the core of ODBC does not even have to know
+         that transactions exist.
 
-         * Made feature_blind_transfer() call ast_bridge_set_after_go_on() with
-         valid context, exten, and priority parameters from the transferring
-         channel.
+         In making this large change, I had to look at a lot of code and
+         understand it. When making this change, I discovered several places
+         where the behavior is definitely not ideal, but it seemed outside the
+         scope of this change to be fixing it. Instead, any place where I saw
+         some sort of room for improvement has had a XXX comment added explaining
+         what could be altered to improve it.
 
-         * Renamed some feature_blind_transfer() local variables for clarity.
+         Change-Id: I37a84def5ea4ddf93868ce8105f39de078297fbf
 
-         ASTERISK-25641 #close
-         Reported by Dmitry Melekhov
+2016-01-28 12:44 +0000 [2a9e623ff9]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I19bead9ffdc4aee8d58c654ca05a198da1e4b7ac
+       * config_options.c: Fix warning message wording.
 
-2015-12-24 12:19 +0000 [0a9941de9d]  Matt Jordan <mjordan@digium.com>
+         Change-Id: I915ea437936320393afde0e7552cf0a980a6b2e4
 
-       * res/res_pjsip_location: Delete contact_status object when contact is deleted
+2016-01-25 17:34 +0000 [ed3c9c1512]  Richard Mudgett <rmudgett@digium.com>
 
-         In 450579e908, a change was made that removed the deletion of the
-         'contact_status' object when a 'contact' object is deleted in sorcery.
-         This unfortunately means that the 'contact_status' object persists, even when
-         something has explicitly removed a contact. The result is that the state of
-         the contact will not be regenerated if that contact is re-created, and the
-         stale state will be reported/used for that contact. It also results in
-         no ContactStatusChanged events being generated for either ARI or AMI.
+       * app_confbridge.c: Replace inlined code with existing function.
 
-         This patch restores the deletion logic that was removed. Doing so now
-         results in the expected events being generated again.
+         Change-Id: Ida5594e9f8d7c1fc18eeb733a11f8fb96326da51
 
-         Change-Id: I28789a112e845072308b5b34522690e3faf58f07
+2016-01-25 16:05 +0000 [1d0abf86e7]  Richard Mudgett <rmudgett@digium.com>
 
-2015-12-24 10:18 +0000 [1e24a0ca8a]  Kevin Harwell <kharwell@digium.com>
+       * app_confbridge: Add ability to get the muted conference state.
 
-       * res_rtp_asterisk: rtp->ice check not wrapped in HAVE_PJPROJECT ifdef
+         * Added CONFBRIDGE_INFO(muted,) for querying the muted conference state.
 
-         Change-Id: I19b49112e1b630bd04e859f14ccf96f8ebd6b151
+         * Added Muted header to AMI ConfbridgeListRooms action response list
+         events to indicate the muted conference state.
 
-2015-12-20 21:33 +0000 [1d3d20dd68]  Dade Brandon <dade@xencall.com>
+         * Added Muted column to CLI "confbridge list" output to indicate the muted
+         conference state and made the locked column a yes/no value instead of a
+         locked/unlocked value.
 
-       * app_amd: Correct documentation to reflect functionality
+         ASTERISK-20987
+         Reported by: hristo
 
-         Update documentation to reflect that maximum_number_of_words
-         has functionality inconsistent with the variable name (and inconsistent
-         with prior documentation.)
+         Change-Id: I4076bd8ea1c23a3afd4f5833e9291b49a0c448b1
 
-         Update documentation for silence_threshold, which previously implied
-         that it was measuring time, rather than noise averages in the sample.
+2016-01-26 17:59 +0000 [f0d40afa69]  Richard Mudgett <rmudgett@digium.com>
 
-         Update the comments in amd.conf.sample.
+       * app_confbridge.c: Update CONFBRIDGE and CONFBRIDGE_INFO documentation.
 
-         ASTERISK-25639 #close
-         Change-Id: I4b1451e5dc9cb3cb06d59b6ab872f5275ba79093
-
-2015-12-17 19:05 +0000 [965a0eee46]  Dade Brandon <dade@xencall.com>
-
-       * res_rtp_asterisk: Resolve further timing issues with DTLS negotiation
-
-         Resolves an edge case dtls negotiation delay for certain networks which
-         somehow manage to drop the rtcp side's packet when these are both sent
-         ast_rtp_remote_address_set, causing it to have to time-out and restart
-         the handshake.
-
-         Move dtls pending bio flush in to it's own function, and call it from
-         ast_rtp_on_ice_complete, when we're rtp->ice, rather than when
-         ast_rtp_remote_address_set.
-
-         Keep the existing flush from the recent change to res_rtp_remote_address_set
-         if ice is not being used.
+         Change-Id: Ic1f9e22ba1f2ff3b3f5cb017c5ddcd9bd48eccc7
 
-         ASTERISK-25614 #close
-         Reported-by: XenCALL
-         Tested by: XenCALL
+2016-01-25 15:48 +0000 [3e51e5c7fd]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Ie2caedbdee1783159f375589b6fd3845c8577ba5
+       * app_confbridge: Make non-admin users join a muted conference muted.
 
-2015-12-18 09:54 +0000 [ae428d8460]  Carlos Oliva <carlos.oliva@invoxcontact.com>
+         ASTERISK-20987 #close
+         Reported by: hristo
 
-       * app_queue: update RT members when the 1st call joins a queue with no agents
+         Change-Id: Ic61a2b524ab3a4cfadf227fc6b3506527bc03f38
 
-         If a call enters on a queue and the members on that queue are updated in
-         realtime (ex: using mysql inserting a new agent) the queue members are
-         never refreshed and the call will stay in the queue until other event occurs.
-         This happens only if this is the first call of the queue and there is no
-         agents servicing.
-         This patch prevent this issue, ensuring realtime members are updated if
-         there is one call in the queue and no available agents
+2016-01-27 13:02 +0000 [9da18af992]  gtjoseph <george.joseph@fairview5.com>
 
-         ASTERISK-25442 #close
+       * res_pjsip:  Add res_pjproject dependency to UPGRADE.txt and samples
 
-         Change-Id: If1e036d013a5c1d8b0bf60d71d48fe98694a8682
+         Since res_pjsip now depends on res_pjproject, this is now mentioned
+         in UPGRADE.txt and the basic-pbx modules.conf has been updated.
 
-2015-12-05 10:01 +0000 [59d5bb0613]  Joshua Colp <jcolp@digium.com>
+         Change-Id: I42826597d5e10f08e518208860c44c96e52f1b2d
+2016-01-27 10:29 +0000 [aee8448bc2]  gtjoseph <george.joseph@fairview5.com>
 
-       * res_sorcery_memory_cache: Add support for a full backend cache.
+       * build_system: Prevent goals needing makeopts from running when it's missing
 
-         This change introduces the configuration option 'full_backend_cache'
-         which changes the cache to be a full mirror of the backend instead
-         of a per-object cache. This allows all sorcery retrieval operations
-         to be carried out against it and is useful for object types which
-         are used in a "retrieve all" or "retrieve some" pattern.
+         The Makefile only optionally includes makeopts so when goals like uninstall that
+         dont depend on anything else are run after a distclean, rules like
+         'rm -f "$(DESTDIR)$(ASTMODDIR)/"*' get run as 'rm -f ""/*' which attempts
+         to remove everything in the root directory.
 
-         ASTERISK-25625 #close
+         Although there's a rule defined for makeopts which prints a message and does
+         an 'exit 1', since '-include makepopts' was specified (with the -), the exit
+         was ignored letting the rest of the rules run.
 
-         Change-Id: Ie2993487e9c19de563413ad5561c7403b48caab5
+         This patch makes makeopts required unless the goal has the string 'clean' in it.
 
-2015-12-17 10:25 +0000 [0cefcabd58]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-25730 #close
+         Reported-by: George Joseph
 
-       * rtp_engine: Ignore empty filenames in DTLS configuration.
+         Change-Id: I1bce59a7ea4f48e7a468e22b2abbb13c63417ac7
 
-         When applying an empty DTLS configuration the filenames in the
-         configuration will be empty. This is actually valid to do and
-         each filename should simply be ignored.
+2016-01-25 09:35 +0000 [f22074e5d9]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: Ib761dc235638a3fb701df337952f831fc3e69539
+       * config: Allow options to register when documentation is unavailable.
 
-2015-12-17 08:10 +0000 [158a0a5422]  Joshua Colp <jcolp@digium.com>
+         The config options framework is strict in that configuration options must
+         be documented unless XML documentation support is not available. In
+         practice this is useful as it ensures documentation exists however in
+         off-nominal cases this can cause strange problems.
 
-       * chan_sip: Enable WebSocket support by default.
+         If it is expected that a config option has a non-zero or non-empty
+         default value but the config option documentation is unavailable
+         this reasonable expectation will not be met. This can cause obscure
+         crashes and weirdness depending on how the code handles it.
 
-         Per the documentation the WebSocket support in chan_sip is
-         supposed to be enabled by default but is not. This change
-         corrects that.
+         This change tweaks the behavior to ensure that the config option
+         is still allowed to register, apply default values, and be set when
+         devmode is not enabled. If devmode is enabled then the option can
+         NOT be set.
 
-         Change-Id: Icb02bbcad47b11a795c14ce20a9bf29649a54423
+         This also does not remove the initial documentation error message that
+         is output on load when registering the configuration option.
 
-2015-12-14 12:04 +0000 [a9d6fc571d]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-25725 #close
 
-       * json: Audit ast_json_* usage for thread safety.
+         Change-Id: Iec42fca6b35f31326c33fcdc25473f6fd7bc8af8
 
-         The JSON library Asterisk uses, jansson, is not thread
-         safe for us in a few ways. To help with this wrappers for JSON
-         object reference count increasing and decreasing were added
-         which use a global lock to ensure they don't clobber over
-         each other. This does not extend to reference count manipulation
-         within the jansson library itself. This means you can't safely
-         use the object borrowing specifier (O) in ast_json_pack and
-         you can't share JSON instances between objects.
+2016-01-25 10:23 +0000 [4a3275abb9]  Mark Michelson <mmichelson@digium.com>
 
-         This change removes uses of the O specifier and replaces them
-         with the o specifier and an explicit ast_json_ref. Some cases
-         of instance sharing have also been removed.
+       * Stasis: Use custom structure when setting variables.
 
-         ASTERISK-25601 #close
+         A recent change to queue channel variable setting to the Stasis control
+         queue caused a regression. When setting channel variables, it is
+         possible to give a NULL channel variable value in order to unset the
+         variable (i.e. remove it from the channel variable list). The change
+         introduced a call to ast_variable_new(), which is not tolerant of NULL
+         channel variable values.
 
-         Change-Id: I06550d8b0cc1bfeb56cab580a4e608ae4f1ec7d1
+         This new change switches from using ast_variable to using a custom
+         channel variable struct that is lighter weight and NULL value-tolerant.
 
-2015-12-16 11:28 +0000 [53bd5a539a]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: I784d7beaaa3c036ea936d103e7caf0bb1562162d
 
-       * Alembic: Increase column size of PJSIP AOR "contact".
+2016-01-25 16:56 +0000 [b2c8a99f9e]  Rusty Newton <rnewton@digium.com>
 
-         When running the PJSIP AMI "show_endpoint" test with automatic
-         conversion to realtime, the test would fail. This was because the AOR
-         "contact" column was sized at 40, and the configured contact was larger
-         than that.
+       * sounds/Makefile: Incremented core and extra sounds versions to 1.5
 
-         This commit increases the size of the contact column to 255 characters.
+         Core and extra sounds 1.5 was recently released! The tarballs contain
+         change descriptions however I figure more people will see this one so
+         I'll try to be a bit detailed. Approximately 60 sounds were moved from Extra
+         to Core for en, en_GB, fr and added for languages that didn't already
+         have Extra sound sets (it,ja,ru).
 
-         Change-Id: Ia65bc7fd37699b7c0eaef9629a1a31eab9a24ba1
+         In addition all of the English and Russian sounds have been completely
+         re-recorded.
 
-2015-12-16 11:25 +0000 [da17dc4d75]  Mark Michelson <mmichelson@digium.com>
+         Sounds moved and added:
+         activated,added,all-circuits-busy-now,astcc-followed-by-pound
+         at-tone-time-exactly,call-forwarding,call-fwd-no-ans,call-fwd-on-busy
+         ,call-fwd-unconditional,calling,call-waiting,cancelled,
+         cannot-complete-as-dialed,check-number-dial-again,conf-full,de-activated
+         ,disabled,do-not-disturb,enabled,enter-num-blacklist,entr-num-rmv-blklist
+         ,extension,feature-not-avail-line,for,from-unknown-caller,goodbye,hello
+         ,if-correct-press,im-sorry,info-about-last-call,is,is-in-use,is-set-to
+         ,location,number,number-not-answering,num-was-successfully,one-moment-please
+         ,please-try-again,pls-hold-while-try,pls-try-call-later,pm-invalid-option
+         ,privacy-to-blacklist-last-caller,removed,simul-call-limit-reached
+         ,something-terribly-wrong,sorry,sorry-youre-having-problems,speed-dial
+         ,speed-dial-empty,telephone-number,time,to-call-this-number,to-extension
+         ,to-listen-to-it,to-rerecord-it,unidentified-no-callback,with,you-entered
+         ,your
 
-       * Alembic: Add PJSIP global keep_alive_interval.
+         There were also a few random fixes here and there to file names for a few
+         of the languages.
 
-         The keep_alive_interval option was added about a year ago, but no
-         alembic revision was created to add the appropriate column to the
-         database.
+         ASTERISK-25068 #close
 
-         This commit fixes the problem and adds the column. This was discovered
-         by running the testsuite with automatic conversion to realtime enabled.
+         Change-Id: I2b594344ec585d7dfd922b40c1af43b1508828b3
+2016-01-25 16:51 +0000 [8261bda1bf]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: If3ef92a7c4f4844d08f8aae170d2178aec5c4c1a
+       * res_pjsip_pubsub: Prevent crash from AMI command on freed subscription.
 
-2015-12-08 13:04 +0000 [fe8011cc50]  sungtae kim <pchero21@gmail.com>
+         A test recently uncovered that running an ill-timed AMI command to show
+         inbound subscriptions could cause a crash since Asterisk will try to
+         operate on a freed subscription.
 
-       * AMI: Fixed OriginateResponse message
+         The fix for this is to remove the subscription tree from the list of
+         subscriptions at the time that we are sending our final NOTIFY request
+         out. This way, as the subscription is in the process of dying, it is
+         inaccessible from AMI.
 
-         When the asterisk sending OriginateResponse message,
-         it doesn't set the "Uniqueid".
-         And it didn't support correct response message for
-         Application originate.
+         Change-Id: Ic0239003d8d73e04c47c12dd2a7e23867e5b5b23
 
-         ASTERISK-25624 #close
+2016-01-25 11:03 +0000 [a6823bb0c4]  Corey Farrell <git@cfware.com>
 
-         Change-Id: I26f54f677ccfb0b7cfd4967a844a1657fd69b74d
+       * chan_sip: Fix buffer overrun in sip_sipredirect.
 
-2015-12-15 18:01 +0000  Asterisk Development Team <asteriskteam@digium.com>
+         sip_sipredirect uses sscanf to copy up to 256 characters to a stacked buffer
+         of 256 characters.  This patch reduces the copy to 255 characters to leave
+         room for the string null terminator.
 
-       * asterisk 13.7.0-rc1 Released.
+         ASTERISK-25722 #close
 
-2015-12-15 11:57 +0000 [0370acecfc]  Kevin Harwell <kharwell@lunkwill>
+         Change-Id: Id6c3a629a609e94153287512c59aa1923e8a03ab
 
-       * Release summaries: Add summaries for 13.7.0-rc1
+2016-01-22 15:08 +0000 [1003c2eb05]  Mark Michelson <mmichelson@digium.com>
 
-2015-12-15 11:54 +0000 [d1bb33fe0b]  Kevin Harwell <kharwell@lunkwill>
+       * Stasis: Fix potential memory leak of control data.
 
-       * .version: Update for 13.7.0-rc1
+         When queuing tasks onto the Stasis control queue, you can pass an
+         arbitrary data pointer and a function to free that data. All ARI
+         commands that use the Stasis control queue made the assumption that the
+         destructor function would be called in all paths, whether the task was
+         queued successfully or not. However, this was not correct. If a task was
+         queued onto a control structure that was already completed, the
+         allocated data would not be freed properly.
 
-2015-12-15 11:54 +0000 [d06a65de01]  Kevin Harwell <kharwell@lunkwill>
+         This patch corrects this by making sure that all return paths call the
+         data destructor.
 
-       * .lastclean: Update for 13.7.0-rc1
+         Change-Id: Ibf06522094f8e5c4cce652537dc5d7222b1c4fcb
 
-2015-12-15 11:54 +0000 [fb37b44660]  Kevin Harwell <kharwell@lunkwill>
+2016-01-21 10:58 +0000 [eedd77fda0]  Mark Michelson <mmichelson@digium.com>
 
-       * realtime: Add database scripts for 13.7.0-rc1
+       * Stasis: Use control queue to prevent crash.
 
-2015-12-15 11:48 +0000 [20b7164b8c]  Kevin Harwell <kharwell@lunkwill>
+         A crash occurred when attempting to set a channel variable on a channel
+         that had already been hung up. This is because there is a small window
+         between when a control is grabbed and when the channel variable is set
+         that the channel can be hung up.
 
-       * .version: Update for 13.7.0-rc1
+         The fix here is to queue the setting of the channel variable onto the
+         control queue. This way, the manipulation of the channel happens in a
+         thread where it is safe to be done.
 
-2015-12-15 11:48 +0000 [6cbf2414c3]  Kevin Harwell <kharwell@lunkwill>
+         In this change, I also noticed that the setting of bridge roles on
+         channels was being done outside of the control queue, so I also changed
+         those operations to be done in the control queue.
 
-       * .lastclean: Update for 13.7.0-rc1
+         ASTERISK-25709 #close
+         Reported by Mark Michelson
 
-2015-12-15 11:48 +0000 [ba1794464d]  Kevin Harwell <kharwell@lunkwill>
+         Change-Id: I2a0a4d51bce6fba6f1d9954e40935e42f366ea78
 
-       * realtime: Add database scripts for 13.7.0-rc1
+2016-01-22 11:48 +0000 [1c95b211a0]  Richard Mudgett <rmudgett@digium.com>
 
-2015-12-15 11:39 +0000 [b3e9753a23]  Kevin Harwell <kharwell@lunkwill>
+       * logger.c: Fix buffer overrun found by address sanitizer.
 
-       * .version: Update for 13.7.0-rc1
+         The null terminator of the tail struct member was not being allocated
+         when no logger.conf config file is installed.
 
-2015-12-15 11:39 +0000 [b0df64b5f0]  Kevin Harwell <kharwell@lunkwill>
+         ASTERISK-25714 #close
+         Reported by: Badalian Vyacheslav
 
-       * .lastclean: Update for 13.7.0-rc1
+         Change-Id: I45770fdd08af39506a3bc33ba279c4f16e047a30
 
-2015-12-15 11:39 +0000 [ce9a59faf6]  Kevin Harwell <kharwell@lunkwill>
+2016-01-21 16:40 +0000 [6ff945ab87]  Corey Farrell <git@cfware.com>
 
-       * realtime: Add database scripts for 13.7.0-rc1
+       * Build System: Add support for checking alembic branches.
 
-2015-12-15 11:28 +0000 [2e26bef5bb]  Kevin Harwell <kharwell@lunkwill>
+         * Add 'check-alembic' target to root Makefile.
+         * Create build_tools/make_check_alembic to do the actual checks.
 
-       * .version: Update for 13.7.0-rc1
+         ASTERISK-25685
 
-2015-12-15 11:28 +0000 [5e9b47516d]  Kevin Harwell <kharwell@lunkwill>
+         Change-Id: Ibb3cae7d1202ac23dc70b0f3b5801571ad46b004
 
-       * .lastclean: Update for 13.7.0-rc1
+2016-01-19 18:20 +0000 [02035212de]  Richard Mudgett <rmudgett@digium.com>
 
-2015-12-15 11:28 +0000 [034112c574]  Kevin Harwell <kharwell@lunkwill>
+       * res/res_pjsip/presence_xml.c: Add missing 2nd call presence state case.
 
-       * realtime: Add database scripts for 13.7.0-rc1
+         ASTERISK-25712 #close
+         Reported by: Richard Mudgett
 
-2015-12-15 11:19 +0000 [d1f8ff1789]  Kevin Harwell <kharwell@lunkwill>
+         Change-Id: I70634df24f8c6c3a2c66c45af61d021e4999253f
 
-       * .version: Update for 13.7.0-rc1
+2016-01-18 03:49 +0000 [c68c66c61f]  Diederik de Groot <ddegroot@talon.nl>
 
-2015-12-15 11:19 +0000 [9376488bef]  Kevin Harwell <kharwell@lunkwill>
+       * main/asterisk.c: ast_el_read_char
 
-       * .lastclean: Update for 13.7.0-rc1
+         Make sure buf[res] is not accessed at res=-1 (buffer underrun).
+         Address Sanitizer will complain about this quite loudly.
 
-2015-12-15 11:19 +0000 [a894c9e7a9]  Kevin Harwell <kharwell@lunkwill>
+         ASTERISK-24801 #close
 
-       * realtime: Add database scripts for 13.7.0-rc1
+         Change-Id: Ifcd7f691310815a31756b76067c56fba299d3ae9
 
-2015-12-15 11:12 +0000 [52afb0f112]  Kevin Harwell <kharwell@lunkwill>
+2016-01-13 16:49 +0000 [f87c3275cc]  Richard Mudgett <rmudgett@digium.com>
 
-       * .version: Update for 13.7.0-rc1
+       * res_pjsip: Add CLI "pjsip dump endpt [details]"
 
-2015-12-15 11:12 +0000 [2de343eb85]  Kevin Harwell <kharwell@lunkwill>
+         Dump the res_pjsip endpt internals.
 
-       * .lastclean: Update for 13.7.0-rc1
+         In non-developer mode we will not document or make easily accessible the
+         "details" option even though it is still available.  The user has to know
+         it exists to use it.  Presumably they would also be aware of the potential
+         crash warning below.
 
-2015-12-15 11:12 +0000 [184de2a160]  Kevin Harwell <kharwell@lunkwill>
+         Warning: PJPROJECT documents that the function used by this CLI command
+         may cause a crash when asking for details because it tries to access all
+         active memory pools.
 
-       * realtime: Add database scripts for 13.7.0-rc1
+         Change-Id: If2d98a3641c9873364d1daaad971376311aef3cb
 
-2015-12-14 13:53 +0000 [24ae124e4f]  server-pandora <server-pandora@xencall.com>
+2016-01-18 17:16 +0000 [46b2de55f9]  Matt Jordan <mjordan@digium.com>
 
-       * res_rtp_asterisk.c: Fix DTLS negotiation delays.
+       * funcs/func_cdr: Correctly report high precision values for duration and billsec
 
-         - Trigger pending DTLS packets to send out, once the RTP instance's remote
-           address is set.
-         - Avoids locking the DTLS structure unnecessarily by only doing this if
-           DTLS is passive.
-         - Add DTLS locks around the structurally sensitive calls in the SSL
-           portion of __rtp_recvfrom, since dtls_srtp_check_pending does not lock
-           inside of itself, and we're dealing with the SSL BIO in at least two
-           threads.
+         When CDRs were refactored, func_cdr's ability to report high precision values
+         for duration and billsec (the 'f' option) was broken. This was due to func_cdr
+         incorrectly interpreting the duration/billsec values provided by the CDR engine
+         in milliseconds, as opposed to seconds. Since the CDR engine only provides
+         duration and billsec in seconds, and does not expose either attribute with
+         sufficient precision to merely pass back the underlying value, this patch fixes
+         the bug by re-calculating duration and billsec with microsecond precision based
+         on the start/answer/end times on the CDR.
 
-         WebRTC channels may receive a DTLS handshake before
-         ast_rtp_remote_address_set is called, which causes there to be a pending
-         response to send out.   Previous to 1ad827, this was handled by calling
-         dtls_srtp_check_pending on receipt of any RTP packet - a STUN or RTP
-         packet could trigger the pending handshake response.  Since that was
-         rightfully removed, whenever the DTLS handshake is received before the
-         remote address is set, we would have to wait until another SSL packet
-         arrives.
+         ASTERISK-25179 #close
 
-         As of Chrome M47's optimizations to their handshake process, WebRTC
-         conversations between Chrome M47+ and Asterisk, where Asterisk is passive,
-         experience a 1 second delay without this patch, because the SSL handshake
-         is received before ICE negotation stores the remote_address, and the next
-         SSL packet isn't received until after a 1 second timeout in Chrome, which
-         causes a new handshake request.
+         Change-Id: I8bc63822b496537a5bf80baf6102c06206bee841
 
-         ASTERISK-25614 #close
+2016-01-18 19:20 +0000 [137fe5ae01]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: I547f1be7e302dbf71f6553dd8cbc0657b1d0b908
+       * res_pjproject:  Add module providing pjproject logging and utils
 
-2015-12-14 15:25 +0000 [36097a185d]  Richard Mudgett <rmudgett@digium.com>
+         res_pjsip_log_forwarder has been renamed to res_pjproject
+         and enhanced as follows:
 
-       * Fix sscanf() format string type mismatch.
+         As a follow-on to the recent 'Add CLI "pjsip show buildopts"' patch,
+         a new ast_pjproject_get_buildopt function has been added.  It
+         allows the caller to get the value of one of the buildopts.
 
-         ASTERISK-25615
-         Reported by: George Joseph
+         The initial use case is retrieving the runtime value of
+         PJ_MAX_HOSTNAME to insure we don't send a hostname greater
+         than pjproject can handle.  Since it can differ between
+         the version of pjproject that Asterisk was compiled against
+         and the version of pjproject that Asterisk is running against,
+         we can't use the PJ_MAX_HOSTNAME macro directly in Asterisk
+         source code.
 
-         Change-Id: Ieff35307254ca193f3d473cff2e396ca57c7ce0b
+         Change-Id: Iab6e82fec3d7cf00c1cf6185c42be3e7569dee1e
 
-2015-12-13 13:13 +0000 [94f9927784]  Matt Jordan <mjordan@digium.com>
+2016-01-19 17:15 +0000 [b5c13c1545]  Joshua Colp <jcolp@digium.com>
 
-       * main/utils: Don't emit an ERROR message if the read end of a pipe closes
+       * test_threadpool: Wait for each task to complete and fix memory leak.
 
-         An ERROR or WARNING message should generally indicate that something has gone
-         wrong in Asterisk. In the case of writing to a file descriptor, Asterisk is not
-         in control of when the far end closes its reading on a file descriptor. If the
-         far end does close the file descriptor in an unclean fashion, this isn't a bug
-         or error in Asterisk, particularly when the situation can be gracefully
-         handled in Asterisk.
+         This change makes the thread_timeout_thrash unit test wait for
+         each task to complete. This fixes the problem where the test would
+         prematurely end when all threads were gone and a new one had to be
+         started to handle the last task. It also increases the thrasing as
+         it is now more likely for each task to encounter the above scenario.
 
-         Currently, when this happens, a user would see the following somewhat cryptic
-         ERROR message:
+         This also fixes a memory leak where the data for each task was not
+         being freed.
 
-           "utils.c: write() returned error: Broken pipe"
+         ASTERISK-25611 #close
 
-         There's a few problems with this:
-         (1) It doesn't provide any context, other than 'something broke a pipe'
-         (2) As noted, it isn't actually an error in Asterisk
-         (3) It can get rather spammy if the thing breaking the pipe occurs often, such
-             as a FastAGI server
-         (4) Spammy ERROR messages make Asterisk appear to be having issues, or can even
-             mask legitimate issues
+         Change-Id: I5017d621a4dc911f509074c16229b86bff2fb3c6
 
-         This patch changes ast_carefulwrite to only log an ERROR if we actually had one
-         that was reasonably under our control. For debugging purposes, we still emit
-         a debug message if we detect that the far side has stopped reading.
+2016-01-18 19:44 +0000 [0ab89182d9]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Ia503bb1efcec685fa6f3017bedf98061f8e1b566
+       * taskprocessor.c: Increase CLI "core ping taskprocessor" timeout.
 
-2015-12-12 11:08 +0000 [5b867fa904]  gtjoseph <george.joseph@fairview5.com>
+         Change-Id: I4892d6acbb580d6c207d006341eaf5e0f8f2a029
 
-       * pjsip/config_transport: Check pjproject version at runtime for async ops
+2016-01-18 19:43 +0000 [a2a8ea3330]  Richard Mudgett <rmudgett@digium.com>
 
-         pjproject < 2.5.0 will segfault on a tls transport if async_operations
-         is greater than 1.  A runtime version check has been added to throw
-         an error if the version is < 2.5.0 and async_operations > 1.
+       * taskprocessor.c: Fix some taskprocessor unrefs.
 
-         To assist in the check, a new api "ast_compare_versions" was added
-         to utils which compares 2 major.minor.patch.extra version strings.
+         You have to call ast_taskprocessor_unref() outside of the taskprocessor
+         implementation code.  Taskprocessor use since v12 has become more
+         transient than just the singleton uses in earlier versions.
 
-         ASTERISK-25615 #close
+         Change-Id: If7675299924c0cc65f2a43a85254e6f06f2d61bb
 
-         Change-Id: I8e88bb49cbcfbca88d9de705496d6f6a8c938a98
-         Reported-by: George Joseph
-         Tested-by: George Joseph
+2016-01-19 13:44 +0000 [d604a9afc8]  Richard Mudgett <rmudgett@digium.com>
 
-2015-12-10 11:44 +0000 [14b41115e3]  Jonathan Rose <jrose@digium.com>
+       * Fix alembic branches on v13.
 
-       * chan_sip: Add TCP/TLS keepalive to TCP/TLS server
+         Change-Id: I313449b609ede18ad1e1763a655dd23b9210a8e0
 
-         Adds the TCP Keep Alive option to TCP and TLS server sockets. Previously
-         this option was only being set on session sockets.
-         http://www.tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/
-         According to the link above, the SO_KEEPALIVE option is useful for knowing
-         when a TCP connected endpoint has severed communication without indicating
-         it or has become unreachable for some reason. Without this patch, keep
-         alive is not set on the socket listening for incoming TCP sessions and
-         in Komatsu's report this resulted in the thread listening for TCP becoming
-         stuck in a waiting state.
+2016-01-18 18:45 +0000 [a0c79f3a4f]  gtjoseph <george.joseph@fairview5.com>
 
-         ASTERISK-25364 #close
-         Reported by: Hiroaki Komatsu
+       * pjsip_loging_refactor: Rename res_pjsip_log_forwarder to res_pjproject
 
-         Change-Id: I7ed7bcfa982b367dc64b4b73fbd962da49b9af36
-2015-12-09 09:48 +0000 [cd119ed4a2]  Tyler Cambron <tcambron@digium.com>
+         Change-Id: I5387821f29e5caa0cba0b7d62b0fc0d341e7e20b
 
-       * res_chan_stats: Fix bug to send correct statistics to StatsD
+2016-01-14 09:26 +0000 [018ccf680b]  Rusty Newton <rnewton@digium.com>
 
-         Fixed a bug that originally would show a negative number of
-         active calls occuring in Asterisk. A gauge is persistent so
-         incrementing and decrementing it results in a more consistent
-         performance. Also changed to the call to StatsD to use
-         ast_statsd_log_string() so that a "+" could be sent to StatsD.
+       * func_channel: Add help text for undocumented CHANNEL function arguments
 
-         ASTERISK-25619 #close
+         Adding help text documentation for:
+         * hangupsource
+         * appname
+         * appdata
+         * exten
+         * context
+         * channame
+         * uniqueid
+         * linkedid
 
-         Change-Id: Iaaeff5c4c6a46535366b4d16ea0ed0ee75ab2ee7
+         ASTERISK-24097 #close
+         Reported by: Steven T. Wheeler
+         Tested by: Rusty Newton
 
-2015-12-07 13:07 +0000 [ddf4dddf4f]  Corey Farrell <git@cfware.com>
+         Change-Id: Ib94b00568b0433987df87d5b67ea529b5905754d
 
-       * app_meetme: Set default value for audio_buffers.
+2016-01-16 13:18 +0000 [5644bca9f9]  Daniel Journo <dan@keshercommunications.com>
 
-         The default value was never set for audio_buffers, causing bad
-         audio quality.  This ensures the default is always set.
+       * Update version number in features.conf.sample
 
-         ASTERISK-25569 #close
+         Update the version number in the comments from Asterisk 12 to Asterisk 12+
 
-         Change-Id: I2d2ee3e644120b0f9f6ea6ab9286d7d590942a44
-2015-12-08 01:57 +0000 [142d4fefb8]  Filip Jenicek <phill@janevim.cz>
+         Change-Id: Ie692ac8cda3c993c3bf10f27f51a1cca3317ec7b
 
-       * chan_sip: Check sip_pvt pointer in ast_channel_get_t38_state(c)
+2016-01-15 19:52 +0000 [3f5f30cf82]  Corey Farrell <git@cfware.com>
 
-         Asterisk may crash when calling ast_channel_get_t38_state(c)
-         on a locked channel which is being hung up.
+       * main/config: Clean config maps on shutdown.
 
-         ASTERISK-25609 #close
+         ASTERISK-25700 #close
 
-         Change-Id: Ifaa707c04b865a290ffab719bd2e5c48ff667c7b
+         Change-Id: I096da84f9c62c6095f68bcf98eac4b7c7868e808
 
-2015-12-08 17:49 +0000 [21962dad93]  gtjoseph <george.joseph@fairview5.com>
+2016-01-14 14:42 +0000 [660fedecb7]  Kevin Harwell <kharwell@digium.com>
 
-       * res_pjsip:  Add existence and readablity checks for tls related files
+       * bridge_basic: don't cache xferfailsound during an attended transfer
 
-         Both transport and endpoint now check for the existence and readability
-         of tls certificate and key files before passing them on to pjproject.
-         This will cause the object to not load rather than waiting for pjproject
-         to discover that there's a problem when a session is attempted.
+         The xferfailsound was read from the channel at the beginning of the transfer,
+         and that value is "cached" for the duration of the transfer. Therefore, changing
+         the xferfailsound on the channel using the FEATURE() dialplan function does
+         nothing once the transfer is under way.
 
-         NOTE: chan_sip also uses ast_rtp_dtls_cfg_parse but it's located
-         in build_peer which is gigantic and I didn't want to disturb it.
-         Error messages will emit but it won't interrupt chan_sip loading.
+         This makes it so the transfer code instead gets the xferfailsound configuration
+         options from the channel when it is actually going to be used.
 
-         ASTERISK-25618 #close
+         This patch also fixes a potential memory leak of the props object as well as
+         making sure the condition variable gets initialized before being destroyed.
 
-         Change-Id: Ie43f2c1d653ac1fda6a6f6faecb7c2ebadaf47c9
-         Reported-by: George Joseph
-         Tested-by: George Joseph
+         ASTERISK-25696 #close
 
-2015-12-02 12:42 +0000 [28d9243079]  Eugene Voityuk <eugene@thirdlane.com>
+         Change-Id: Ic726b0f54ef588bd9c9c67f4b0e4d787934f85e4
 
-       * chan_sip.c: Start ICE negotiation when response is sent or received.
+2015-07-10 10:37 +0000 [9cda1de34d]  Richard Mudgett <rmudgett@digium.com>
 
-         The current logic for ICE negotiation starts it
-         when receiving an SDP with ICE candidates. This is
-         incorrect as ICE negotiation can only start when each 
-         call party have at least one pair of local and remote 
-         candidate. Starting ICE negotiation early would result 
-         in negotiation failure and ultimately no audio.
+       * taskprocessor.c: Simplify ast_taskprocessor_get() return code.
 
-         This change makes it so ICE negotiation is only started
-         when a response with SDP is received or when a response
-         with SDP is sent.
+         Change-Id: Id5bd18ef1f60ef8be453e677e98478298358a9d1
 
-         ASTERISK-24146
+2016-01-13 18:20 +0000 [a79af2b312]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I55a632bde9e9827871b09141d82747e08379a8ca
-2015-12-08 11:03 +0000 [e03582a1c2]  gtjoseph <george.joseph@fairview5.com>
+       * astmm.c: Add more stats to CLI "memory show" commands.
 
-       * res_pjsip/config_transport: Prevent async_operations > 1 when protocol = tls
+         * Add freed regions totals to allocations and summary.
 
-         See ASTERISK-25615.
-         If the transport protocol is tls and async_operations > 1, pjproject
-         will segfault if more than one operation is attempted on the same socket.
-         Until this is fixed upstream, a check has been added to throw an error
-         if a tls transport config has async_operations set to > 1.
+         * Add totals for all allocations and not just the selected allocations.
 
-         ASTERISK-25615
+         Change-Id: I61d5a5112617b0733097f2545a3006a344b4032a
 
-         Change-Id: I76b9a5b2a5a0054fe71ca5851e635f2dca7685a6
-         Reported-by: George Joseph
-         Tested-by: George Joseph
+2016-01-14 16:00 +0000 [83feb7db3b]  Kevin Harwell <kharwell@digium.com>
 
-2015-12-08 08:39 +0000 [876600ce6e]  Alexander Traud <pabstraud@compuserve.com>
+       * bridge_basic: don't play an attended transfer fail sound after target hangs up
 
-       * codec_resample: Increase buffer for Opus Codec with FEC.
+         If the attended transfer destination answers (picks call up or goes to
+         voicemail) and then hangs up on the transferer then transferer hears the
+         fail sound.
 
-         ASTERISK-25599 #close
+         This patch makes it so the fail sound is not played when the transfer
+         destination/target hangs up after answering.
 
-         Change-Id: Idbd187f711b2ec63dda949ca0f79aa0c1a0a0b6e
+         ASTERISK-25697 #close
 
-2015-12-08 03:46 +0000 [69e3d40ad7]  Alexander Traud <pabstraud@compuserve.com>
+         Change-Id: I97f142fe4fc2805d1a24b7c16143069dc03d9ded
 
-       * translate: Avoid a warning message when doing FEC within Opus Codec.
+2016-01-14 13:22 +0000 [935d641f3b]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-25616 #close
+       * Remove res/ari/* content during 'make clean'.
 
-         Change-Id: Ibe729aaf2e6e25506cff247cec5149ec1e589319
+         'make clean' and 'make distclean' can leave behind .o files in the
+         res/ari/ directory. One observed consequence of this is that running
+         Asterisk with MALLOC_DEBUG can cause Asterisk to crash immediately on
+         startup sometimes.
 
-2015-12-04 15:36 +0000 [2b992014dc]  Richard Mudgett <rmudgett@digium.com>
+         By ensuring that we are making a clean build, we can be sure that stale
+         files are not being included in the build and causing problems when
+         build options should have caused files to be re-built.
 
-       * chan_sip: Fix crash involving the bogus peer during sip reload.
+         ASTERISK-25683 #close
+         Reported by yaron nahum
 
-         A crash happens sometimes when performing a CLI "sip reload".  The bogus
-         peer gets refreshed while it is in use by a new call which can cause the
-         crash.
+         Change-Id: I1f48baa904d2468eddeefb42ee68a56af7adc7b7
 
-         * Protected the global bogus peer object with an ao2 global object
-         container.
+2016-01-13 15:58 +0000 [46f21df302]  Daniel Journo <dan@keshercommunications.com>
 
-         ASTERISK-25610 #close
+       * pjsip/alembic:  Fix qualify_timeout column definition
 
-         Change-Id: I5b528c742195681abcf713c6e1011ea65354eeed
+         Corrects the qualify_timeout column type from Integer to Decimal
 
-2015-12-06 16:32 +0000 [529535f0c2]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25686 #close
+         Reported-by: Marcelo Terres
 
-       * Revert "bridges/bridge_t38: Add a bridging module for managing T.38 state"
+         Change-Id: I757d0e3c011ee9be6cd5abd48bc92441a405d3c8
 
-         This reverts commit 6614babea27fbafbe11820ea03737dd5c4f9ecec.
+2016-01-12 11:14 +0000 [32b29d7b02]  Joshua Colp <jcolp@digium.com>
 
-         Unfortunately, using a bridge to manage T.38 state will cause severe deadlocks
-         in core_unreal/chan_local. Local channels attempt to reach across both their
-         peer and the peer's bridge to inspect T.38 state. Given the propensity of
-         Local channel chains, managing the locking situation in such a scenario is
-         practically infeasible.
+       * app: Queue hangup if channel is hung up during sub or macro execution.
 
-         Change-Id: Ic687397ffea08dfb899345a443bd990ec3d0416a
+         This issue was exposed when executing a connected line subroutine.
+         When connected or redirected subroutines or macros are executed it is
+         expected that the underlying applications and logic invoked are fast
+         and do not consume frames. In practice this constraint is not enforced
+         and if not adhered to will cause channels to continue when they shouldn't.
+         This is because each caller of the connected or redirected logic does not
+         check whether the channel has been hung up on return. As a result the
+         the hung up channel continues.
 
-2015-12-04 16:23 +0000 [450579e908]  gtjoseph <george.joseph@fairview5.com>
+         This change makes it so when the API to execute a subroutine or
+         macro is invoked the channel is checked to determine if it has hung up.
+         If it has then a hangup is queued again so the caller will see it
+         and stop.
 
-       * res_pjsip/contacts/statsd:  Make contact lifecycle events more consistent
+         ASTERISK-25690 #close
 
-         It will never be perfect or even pretty, mostly because of the differences
-         between static and dynamic contacts.
+         Change-Id: I1f9a8ceb1487df0389f0d346ce0f6dcbcaf476ea
 
-         Created:
+2016-01-13 07:20 +0000 [e7cfda0b38]  Sean Bright <sean.bright@gmail.com>
 
-         Can't use the contact or contact_status alloc functions
-         because the objects come and go regardless of the actual state.
+       * res_musiconhold: Prevent multiple simultaneous reloads.
 
-         Can't use the contact_apply_handler, ast_sip_location_add_contact or
-         a sorcery created handler because they only get called for dynamic
-         contacts.  Similarly, permanent_uri_handler only gets called for
-         static contacts.
+         There are two ways in which the reload() function in res_musiconhold can be
+         called from the CLI:
 
-         So, Matt had it right. :)  ast_res_pjsip_find_or_create_contact_status is
-         the only place it can go and not have duplicated code.  Both
-         permanent_uri_handler and contact_apply_handler call find_or_create.
+           * module reload res_musiconhold.so
+           * moh reload
 
-         Removed:
+         In the former case, the module loader holds a lock that prevents multiple
+         concurrent calls, but in the latter there is no such protection.
 
-         Can't use the destructors for the same reason as above.  The only
-         place to put this is in persistent_endpoint_contact_deleted_observer
-         which I believe is the "correct" place but even that will handle only
-         dynamic contacts.  This doesn't called on shutdown however.  There is
-         no hook to use for static contacts that may be removed because of a
-         config change while asterisk is in operation.
+         This patch changes the 'moh reload' CLI command to invoke the module loader
+         directly, rather than call reload() explicitly.
 
-         I moved the cleanup of contact_status from ast_sip_location_delete_contact
-         to the handler as well.
+         ASTERISK-25687 #close
 
-         Status Change and RTT:
+         Change-Id: I408968b4c8932864411b7f9ad88cfdc7b9ba711c
+2016-01-12 14:25 +0000 [5586abc957]  Richard Mudgett <rmudgett@digium.com>
 
-         Although they worked fine where they were (in update_contact_status) I
-         moved them to persistent_endpoint_contact_status_observer to make it
-         more consistent with removed.  There was logic there already to detect
-         a state change.
+       * res_pjsip_log_forwarder.c: Add CLI "pjsip show buildopts".
 
-         Finally, fixed a nit in permanent_uri_handler rmudgett reported
-         eralier.
+         PJPROJECT has a function available to dump the compile time
+         options used when building the library.
 
-         ASTERISK-25608 #close
+         * Add CLI "pjsip show buildopts" command.
 
-         Change-Id: I4b56e7dfc3be3baaaf6f1eac5b2068a0b79e357d
-         Reported-by: George Joseph
-         Tested-by: George Joseph
+         * Update contrib/scripts/autosupport to get pjproject information.
 
-2015-11-21 06:02 +0000 [5a18193dc0]  Alexander Traud <pabstraud@compuserve.com>
+         Change-Id: Id93a6a916d765b2a2e5a1aeb54caaf83206be748
 
-       * res_format_attr_vp8: In SDP, forward max-fr and max-fs for video-codec VP8.
+2016-01-12 10:36 +0000 [4cd58c3b20]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-25584 #close
+       * res_sorcery_realtime: Remove leading ^ requirement.
 
-         Change-Id: Iae00071b4ff1ae76f24995aeac4d00284fd14f91
+         res_sorcery_realtime's search-by-regex callback performed a check to
+         ensure that the passed-in regex began with a caret (^). If it did not,
+         then no results would be returned.
 
-2015-11-21 05:21 +0000 [3e2178c05e]  Alexander Traud <pabstraud@compuserve.com>
+         This callback only started to become used when "like" support was added
+         to PJSIP CLI commands. The CLI command for listing objects would pass an
+         empty regex ("") to the sorcery backend if no "like" statement was
+         present. For most sorcery backends, this resulted in returning all
+         objects. However, for realtime, this resulted in returning no objects.
 
-       * res_format_attr_opus: Update to latest RFC 7587.
+         This commit seeks to fix the regression by removing the requirement from
+         res_sorcery_realtime for the passed-in-regex to begin with a caret.
 
-         Beside that, the format-attribute module sends only non-default values in the
-         line fmtp, now. This avoids unnecessary overhead in SDP messages. Furthermore,
-         previously the parameter stereo was not parsed when being the first parameter.
+         ASTERISK-25689 #close
+         Reported by Marcelo Terres
 
-         ASTERISK-25583 #close
+         Change-Id: I22b4dc5d7f3f11bb29ac2e42ef94682e9bab3b20
 
-         Change-Id: Iae85ba3e5960bfd5d51cf65bcffad00dd4875a73
-2015-12-02 14:11 +0000 [072d94183c]  Jonathan Rose <jrose@digium.com>
+2016-01-07 11:57 +0000 [219c204a41]  gtjoseph <george.joseph@fairview5.com>
 
-       * Fix crash in audiohook translate to slin
+       * pjsip_sdp_rtp:  Add option endpoint/bind_rtp_to_media_address
 
-         This patch fixes a crash which would occur when an audiohook was
-         applied to a channel using an audio codec that could not be translated
-         to signed linear (such as when using pass-through codecs like OPUS or
-         when the codec translator module for the format in use is not loaded).
+         On a system with multiple ip addresses in the same subnet, if a
+         transport is bound to a specific ip address and endpoint/media_address
+          is set, the SIP/SDP will have the correct address in all fields but
+         the rtp stream MAY still originate from one of the other ip addresses,
+         most probably the "primary" ip address.  This happens because
+          res_pjsip_sdp_rtp/create_rtp always calls ast_instance_new with
+         the "all" ip address (0.0.0.0 or ::).
 
-         ASTERISK-25498 #close
-         Reported by: Ben Langfeld
+         The new option causes res_pjsip_sdp_rtp/create_rtp to call
+         ast_rtp_instance_new with the endpoint's media_address (if specified)
+         instead of the "all" address.  This causes the packets to originate from
+         the specified address.
 
-         Change-Id: Ib6ea7373fcc22e537cad373996136636201f4384
+         ASTERISK-25632
+         ASTERISK-25637
+         Reported-by: Olivier Krief
+         Reported-by: Dan Journo
 
-2015-12-03 12:07 +0000 [9184fbeb34]  gtjoseph <george.joseph@fairview5.com>
+         Change-Id: I3dfaa079e54ba7fb7c4fd1f5f7bd9509bbf8bd88
 
-       * res_pjsip: Use a MD5 hash for static Contact IDs
+2016-01-10 16:22 +0000 [22801a06ee]  Daniel Journo <dan@keshercommunications.com>
 
-         When 90d9a70789 was merged, it mostly tested dynamic contacts created as
-         a result of registering a PJSIP endpoint. Contacts generated in this
-         fashion typically have a long alphanumeric string as their object identifier,
-         which maps reasonably well for StatsD. Unfortunately, this doesn't work in the
-         general case. StatsD treats both '.' and ':' characters as special characters.
-         In particular, having a ':' appear in the middle of a StatsD metric will
-         result in the metric being rejected.
+       * pjsip:  Add option global/regcontext
 
-         This causes some obvious issues with SIP URIs.
+         Added new global option (regcontext) to pjsip. When set, Asterisk will
+         dynamically create and destroy a NoOp priority 1 extension
+         for a given endpoint who registers or unregisters with us.
 
-         The StatsD API should not be responsible for escaping the metric name passed
-         to it. The metric is treated as a single long string, and it would be
-         challenging to know what to escape in the string passed to the function.
-         Likewise, we don't want to escape the metric in PJSIP, as that involves
-         overhead that is wasted when either res_statsd isn't loaded or enabled.
+         ASTERISK-25670 #close
+         Reported-by: Daniel Journo
 
-         This patch takes an alternative approach. The Contact ID has been changed
-         to be "aor@@uri_hash" instead of "aor@@uri". This (a) won't contain any of the
-         aforementioned special characters, (b) can be done on Contact creation,
-         which has minimal impact on run-time performance, and (c) also conforms to an
-         earlier commit that changed the ID for dynamic contacts.
+         Change-Id: Ib1530c5b45340625805c057f8ff1fb240a43ea62
 
-         The downside of this is that StatsD users will have to map SHA1 hashes back to
-         the Contacts that are emitting the statistics. To that end, the CLI commands
-         have been updated to include the first 10 characters of the MD5 hash, which
-         should be enough to match what is shown in Graphite (or some other StatsD
-         backend).
+2016-01-08 15:22 +0000 [1600ebca7d]  Kevin Harwell <kharwell@digium.com>
 
-         ASTERISK-25595 #close
+       * pbx: Deadlock between contexts container and context_merge locks
 
-         Change-Id: Ic674a3307280365b4a45864a3571c295b48a01e2
-         Reported-by: Matt Jordan
-         Tested-by: George Joseph
+         Recent changes (ASTERISK-25394 commit 2bd27d12223fe33b58c453965ed5c6ed3af7c4f5)
+         introduced the possibility of a deadlock. Due to the mentioned modifications
+         ast_change_hints now needs to keep both merge/delete and state callbacks from
+         occurring while it executes. Unfortunately, sometimes ast_change_hints can be
+         called with the contexts container locked. When this happens it's possible for
+         another thread to grab the context_merge_lock before the thread calling into
+         ast_change_hints does and then try to obtain the contexts container lock. This
+         of course causes a deadlock between the two threads. The thread calling into
+         ast_change_hints waits for the other thread to release context_merge_lock and
+         the other thread is waiting on that one to release the contexts container lock.
 
-2015-11-30 22:19 +0000 [ed9134282e]  gtjoseph <george.joseph@fairview5.com>
+         Unfortunately, there is not a great way to fix this problem. When hints change,
+         the subsequent state callbacks cannot run at the same time as a merge/delete,
+         nor when the usual state callbacks do. This patch alleviates the problem by
+         having those particular callbacks (the ones run after a hint change) occur in a
+         serialized task. By moving the context_merge_lock to a task it can now safely be
+         attempted or held without a deadlock occurring.
 
-       * res_pjsip:  Update logging to show contact->uri in messages
+         ASTERISK-25640 #close
+         Reported by: Krzysztof Trempala
 
-         An earlier commit changed the id of dynamic contacts to contain
-         a hash instead of the uri.  This patch updates status change
-         logging to show the aor/uri instead of the id.  This required
-         adding the aor id to contact and contact_status and adding
-         uri to contact_status.  The aor id gets added to contact and
-         contact_status in their allocators and the uri gets added to
-         contact_status in pjsip_options when the contact_status is
-         created or updated.
+         Change-Id: If2210ea241afd1585dc2594c16faff84579bf302
 
-         ASTERISK-25598 #close
+2016-01-10 17:08 +0000 [0fc3dad965]  Corey Farrell <git@cfware.com>
 
-         Reported-by: George Joseph
-         Tested-by: George Joseph
+       * devicestate: Cleanup engine thread during graceful shutdown.
 
-         Change-Id: I56cbec1d2ddbe8461367dd8b6da8a6f47f6fe511
+         ASTERISK-25681 #close
 
-2015-12-01 16:11 +0000 [eadad24b59]  Jonathan Rose <jrose@digium.com>
+         Change-Id: I64337c70f0ebd8c77f70792042684607c950c8f1
 
-       * Unset BRIDGEPEER when leaving a bridge
+2016-01-10 13:51 +0000 [f34dd10495]  Corey Farrell <git@cfware.com>
 
-         Currently if a channel is transferred out of a bridge, the BRIDGEPEER
-         variable (also BRIDGEPVTCALLID) remain set even once the channel is
-         out of the bridge. This patch removes these variables when leaving
-         the bridge.
+       * manager: Cleanup manager_channelvars during shutdown.
 
-         ASTERISK-25600 #close
-         Reported by: Mark Michelson
+         ASTERISK-25680 #close
 
-         Change-Id: I753ead2fffbfc65427ed4e9244c7066610e546da
+         Change-Id: I3251d781cbc3f48a6a7e1b969ac4983f552b2446
 
-2015-11-30 14:22 +0000 [bb0b60619d]  Richard Mudgett <rmudgett@digium.com>
+2016-01-10 13:27 +0000 [1d3a1167fc]  Corey Farrell <git@cfware.com>
 
-       * res_sorcery_memory_cache.c: Fix off nominal ref leak.
+       * res_calendar: Cleanup scheduler context at unload.
 
-         Change-Id: If83d63cf11cbc6df9b15251848b01feb570ade49
+         ASTERISK-25679 #close
 
-2015-11-30 16:42 +0000 [e7c88e11aa]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I839159bf6882cccc1b23494c7aa2bc2a2624613f
 
-       * sched.c: Make not return a sched id of 0.
+2016-01-08 11:49 +0000 [3a160cdbf6]  Joshua Colp <jcolp@digium.com>
 
-         According to the API doxygen a sched ID of 0 is valid.  Unfortunately, 0
-         was never returned historically and several users incorrectly coded usage
-         of the returned sched ID assuming that 0 was invalid.
+       * res_rtp_asterisk: Revert DTLS negotiation changes.
 
-         ASTERISK-25476
+         Due to locking issues within pjnath these changes are being
+         reverted until pjnath can be changed.
 
-         Change-Id: Ib19c7ebb44ec9fd393ef6646dea806d4f34e3a20
+         ASTERISK-25645
 
-2015-11-25 12:23 +0000 [4aed349a7b]  Richard Mudgett <rmudgett@digium.com>
-
-       * Audit improper usage of scheduler exposed by 5c713fdf18f. (v13 additions)
+         Revert "res_rtp_asterisk.c: Fix DTLS negotiation delays."
 
-         chan_sip.c:
-         * Initialize mwi subscription scheduler ids earlier because of ASTOBJ to
-         ao2 conversion.
+         This reverts commit 24ae124e4f7310cfa64c187b944b2ffc060da28d.
 
-         * Initialize register scheduler ids earlier because of ASTOBJ to ao2
-         conversion.
+         Change-Id: I2986cfb2c43dc14455c1bcaf92c3804f9da49705
 
-         chan_skinny.c:
-         * Fix more scheduler usage for the valid 0 id value.
+         Revert "res_rtp_asterisk: Resolve further timing issues with DTLS negotiation"
 
-         ASTERISK-25476
+         This reverts commit 965a0eee46d24321f74c244e23c5a5f45e67e12b.
 
-         Change-Id: If9f0e5d99638b2f9d102d1ebc9c5a14b2d706e95
+         Change-Id: Ie68fafde27dad4b03cb7a1e27ce2a8502c3f7bbe
 
-2015-11-24 12:44 +0000 [6d9156d10f]  Richard Mudgett <rmudgett@digium.com>
+2016-01-09 17:57 +0000 [4b10fc9173]  gtjoseph <george.joseph@fairview5.com>
 
-       * Audit improper usage of scheduler exposed by 5c713fdf18f.
+       * Revert "pjsip_location: Delete contact_status object when contact is deleted"
 
-         channels/chan_iax2.c:
-         * Initialize struct chan_iax2_pvt scheduler ids earlier because of
-         iax2_destroy_helper().
+         This reverts commit 0a9941de9d24093b5ff44096d1d7406f29d11e45.
 
-         channels/chan_sip.c:
-         channels/sip/config_parser.c:
-         * Fix initialization of scheduler id struct members.  Some off nominal
-         paths had 0 as a scheduler id to be destroyed when it was never started.
+         Matt,
 
-         chan_skinny.c:
-         * Fix some scheduler id comparisons that excluded the valid 0 id.
+         This patch causes another problem and should not have been needed.
+         Before this patch, persistent_endpoint_contact_deleted_observer WAS
+         deleting the contact_status when ast_sip_location_delete_contact was
+         called.  By deleting it yourself in ast_sip_location_delete_contact
+         it was gone before the observer could run and the observer therefore
+         was throwing an error and not sending stasis/AMI/statsd messages.
 
-         channel.c:
-         * Fix channel initialization of the video stream scheduler id.
+         So, I don't think this was the cause of your original issue.  I also
+         had verified the contact AMI and statsd lifecycle and it was working.
+         I'll double check now though.
 
-         pbx_dundi.c:
-         * Fix channel initialization of the packet retransmission scheduler id.
+         ASTERISK-25675
+         Reported-by: Daniel Journo
 
-         ASTERISK-25476
+         Change-Id: Ib586a6b7f90acb641b0c410f659743ab90e84f1a
 
-         Change-Id: I07a3449f728f671d326a22fcbd071f150ba2e8c8
+2016-01-09 18:04 +0000 [79b4309881]  Corey Farrell <git@cfware.com>
 
-2015-12-01 07:55 +0000 [b76c196e13]  Alexander Traud <pabstraud@compuserve.com>
+       * pbx_dundi: Run cleanup on failed load.
 
-       * codec_resample: Increase buffer for Opus Codec.
+         During failed startup of pbx_dundi no cleanup was performed.  Add a call
+         to unload_module before returning AST_MODULE_LOAD_DECLINE.
 
-         ASTERISK-25599 #close
+         ASTERISK-25677 #close
 
-         Change-Id: I1f88a88c59fb4e1e62bbdbb100c7152d48e73f10
+         Change-Id: I8ffa226fda4365ee7068ac1f464473f1a4ebbb29
 
-2015-11-28 08:46 +0000 [6614babea2]  Matt Jordan <mjordan@digium.com>
+2016-01-09 13:28 +0000 [a5406b1f9e]  Corey Farrell <git@cfware.com>
 
-       * bridges/bridge_t38: Add a bridging module for managing T.38 state
+       * res_crypto: Perform cleanup at shutdown.
 
-         When 4875e5ac32 was merged, it fixed several issues with a direct media bridge
-         transitioning to handling a T.38 fax. However, it uncovered a race condition
-         caused by the bridging core. When a channel involved in a T.38 fax leaves a
-         bridge, the frame queued by the channel driver that should inform the far side
-         that it is no longer in a T.38 fax may not make it across the bridge. The
-         bridging framework is *extremely* aggressive in tearing down the bridge, and
-         control frames that are currently in flight *may* get dropped.
+         This change causes res_crypto to unregister CLI at shutdown while still
+         preventing the module from being unloaded.
 
-         This patch adds a new module to the bridging framework, bridge_t38. This module
-         maintains some notion of the T.38 state for the two channels in a bridge. When
-         the bridge detects that it is being torn down or when one of the two channels
-         leaves, it informs the respective channel(s) that they should stop faxing. This
-         ensures that channels switch back to audio if they survive and are ejected out
-         of a bridge while faxing.
+         ASTERISK-25673 #close
 
-         ASTERISK-25582
+         Change-Id: Ie5d57338dc2752abfc0dd05d0eec86413f2304fc
 
-         Change-Id: If5b0bb478eb01c4607c9f4a7fc17c7957d260ea0
+2016-01-06 19:10 +0000 [cf8e7a580b]  Richard Mudgett <rmudgett@digium.com>
 
-2015-11-27 07:39 +0000 [3fcf160fae]  Niklas Larsson <niklas@tese.se>
+       * res_pjsip: Create human friendly serializer names.
 
-       * CHANGES: Fix a typo
+         PJSIP name formats:
+         pjsip/aor/<aor>-<seq> -- registrar thread pool serializer
+         pjsip/default-<seq> -- default thread pool serializer
+         pjsip/messaging -- messaging thread pool serializer
+         pjsip/outreg/<registration>-<seq> -- outbound registration thread pool
+         serializer
+         pjsip/pubsub/<endpoint>-<seq> -- pubsub thread pool serializer
+         pjsip/refer/<endpoint>-<seq> -- REFER thread pool serializer
+         pjsip/session/<endpoint>-<seq> -- session thread pool serializer
+         pjsip/websocket-<seq> -- websocket thread pool serializer
 
-         Change-Id: Iceb3d9bb78140c376174a7bee197dfcf8ef9cda7
-2015-11-25 15:26 +0000 [45efbf8503]  Kevin Harwell <kharwell@digium.com>
+         Change-Id: Iff9df8da3ddae1132cb2ef65f64df0c465c5e084
 
-       * fastagi: record file closed after sending result
+2016-01-06 19:09 +0000 [4276f185f0]  Richard Mudgett <rmudgett@digium.com>
 
-         The fastagi record-file testsuite test sometimes fails reporting an empty
-         recorded file. This was happening because Asterisk was sending the agi result
-         notification prior to actually closing the file and the data, being buffered,
-         had not been written to the file yet when the test attempts to check the file
-         size.
+       * Sorcery: Create human friendly serializer names.
 
-         This patch makes it so the record file stream is closed prior to sending the
-         agi result notification.
+         Sorcery name formats:
+         sorcery/<type>-<seq> -- Sorcery thread pool serializer
 
-         ASTERISK-25593 #close
+         Change-Id: Idc2e5d3dbab15c825b97c38c028319a0d2315c47
 
-         Change-Id: I6b2b3be3ae37f7c7b18e672c419a89b3b8513cde
+2016-01-06 19:09 +0000 [f02ac1b7f9]  Richard Mudgett <rmudgett@digium.com>
 
-2015-11-25 13:29 +0000 [b2787876d6]  Walter Doekes <walter+asterisk@wjd.nu>
+       * Stasis: Create human friendly taskprocessor/serializer names.
 
-       * main: Slight refactor of main. Improve color situation.
+         Stasis name formats:
+         subm:<topic>-<seq> -- Stasis subscription mailbox task processor
+         subp:<topic>-<seq> -- Stasis subscription thread pool serializer
 
-         Several issues are addressed here:
-         - main() is large, and half of it is only used if we're not rasterisk;
-           fixed by spliting up the daemon part into a separate function.
-         - Call ast_term_init from rasterisk as well.
-         - Remove duplicate code reading/writing asterisk history file.
-         - Attempt to tackle background color issues and color changes that
-           occur. Tested by starting asterisk -c until the colors stopped
-           changing at odd locations.
+         Change-Id: Id19234b306e3594530bb040bc95d977f18ac7bfd
 
-         ASTERISK-25585 #close
+2016-01-07 16:15 +0000 [ec1f1c6742]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Ib641a0964c59ef9fe6f59efa8ccb481a9580c52f
+       * taskprocessor.c: New API for human friendly taskprocessor names.
 
-2015-11-24 13:54 +0000 [59881fbb99]  David M. Lee <dlee@respoke.io>
+         * Add new API call to get a sequence number for use in human friendly
+         taskprocessor names.
 
-       * Fixed some typos
+         * Add new API call to create a taskprocessor name in a given buffer and
+         append a sequence number.
 
-         Fixes some minor typos in the CHANGES file, plus an embarrasing typo in
-         the StatsD API.
+         Change-Id: Iac458f05b45232315ed64aa31b1df05b875537a9
 
-         Change-Id: I9ca4858c64a4a07d2643b81baa64baebb27a4eb7
+2016-01-06 17:19 +0000 [d8bc3e0c8b]  Richard Mudgett <rmudgett@digium.com>
 
-2015-11-24 13:07 +0000 [b75f587d15]  Corey Farrell <git@cfware.com>
+       * taskprocessor.c: Fix CLI "core show taskprocessors" output format.
 
-       * res_pjsip_notify: Fix CLI usage info
+         Update the CLI "core show taskprocessors" output format to not be
+         distorted because UUID names are longer than previously used taskprocessor
+         names.
 
-         The usage info for 'pjsip send notify' previously referenced the
-         chan_sip configuration sip_notify.conf.  Fix this to reference
-         the correct configuration pjsip_notify.conf.
+         Change-Id: I1a5c82ce3e8f765a0627796aba87f8f7be077601
 
-         ASTERISK-25590 #close
+2016-01-07 21:07 +0000 [2c4b7502de]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I3898271a8e8a8b1db201741e790ebe2c6bf5cdea
+       * taskprocessor.c: Fix CLI "core show taskprocessors" unref.
 
-2015-11-23 14:27 +0000 [fc45f4040d]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I1d9f4e532caa6dfabe034745dd16d06134efdce5
 
-       * res_sorcery_realtime.c: Fix crash from NULL sorcery object type.
+2016-01-07 20:44 +0000 [3b33ac7a46]  Richard Mudgett <rmudgett@digium.com>
 
-         If the sorcery object type is not found a NULL is returned.
-         Unfortunately, sorcery_realtime_filter_objectset() will crash after
-         complaining about not finding the object type and saying to expect errors.
+       * taskprocessor.c: Sort CLI "core show taskprocessors" output.
 
-         * Use ao2_cleanup() instead of ao2_ref() to prevent the crash.
+         Change-Id: I71e7bf57c7b908c8b8c71f1816348ed7c5a5d51e
 
-         ASTERISK-25165
-         Reported by Corey Farrell
+2016-01-06 19:00 +0000 [0fc32c4dd3]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Ic3b64453ea3058cb68d5c26d97d4fe7b8eea2e97
+       * ccss.c: Replace space in taskprocessor name.
 
-2015-11-20 21:08 +0000 [4875e5ac32]  Matt Jordan <mjordan@digium.com>
+         The CLI "core ping taskprocessor" command does not work very
+         well with taskprocessor names that have spaces in them.  You
+         have to put quotes around the name so using tab completion
+         becomes awkward.
 
-       * chan_pjsip: Handle T.38 faxes with direct media bridges
+         Change-Id: I29e806dd0a8a0256f4e2e0a7ab88c9e19ab0eda0
 
-         When a channel is in a direct media bridge, a re-INVITE may arrive that forces
-         Asterisk to re-negotiate the media to a T.38 fax. When this occurs, the bridge
-         must change its technology to a simple bridge, and re-INVITE the media back
-         to Asterisk.
+2016-01-05 16:54 +0000 [0e0c24ad78]  Richard Mudgett <rmudgett@digium.com>
 
-         Generally, this logic mostly already exists in Asterisk. However, prior to this
-         patch, there were a few bugs:
-         (1) The T.38 framehook currently prevents a channel capable of T.38 faxes from
-             ever entering into a direct media bridge. This applies even when the only
-             media being passed over the channel is audio. This patch fixes this bug
-             by having the framehook specify that it defers caring about any frame type.
-             This allows the channels to enter into a direct media bridge, which will
-             be broken when a re-INVITE is received.
-         (2) When a re-INVITE is received, nothing instructed the bridging layer to
-             re-inspect the allowed bridging technology. This now occurs when either
-             a re-INVITE is received from a peer, or when a response is received from
-             the far end (that is, when the T.38 state changes to either
-             T38_PEER_REINVITE or T38_LOCAL_REINVITE).
-         (3) chan_pjsip needs to do a small amount of work to prevent a direct media
-             bridge from being chosen when a T.38 session is in progress. When a T.38
-             session supplement has a t38 datastore - which is added when we detect
-             we should start thinking about T.38 on a channel - we now refuse a native
-             RTP bridge.
-         (4) When a BYE request is received, we don't terminate the T.38 session. If
-             the other side of a T.38 fax survives the hangup (due to the 'g' flag
-             in Dial, for example), we don't currently re-INVITE the media on the
-             other channel back to audio. This patch now has res_pjsip_t38 intercept
-             BYE requests and inform the far side that the T.38 session is terminated.
-             This naturally causes the correct re-INVITEs to be sent.
+       * taskprocessor.c: Add CLI "core ping taskprocessor" missing unlock.
 
-         ASTERISK-25582
+         Change-Id: I78247e0faf978bf850b5ba4e9f4933ab3c59d17b
 
-         Change-Id: Iabd6aa578e633d16e6b9f342091264e4324a79eb
+2016-01-07 03:33 +0000 [0f79c8839b]  Diederik de Groot <ddegroot@talon.nl>
 
-2015-11-20 21:07 +0000 [2b94d9a10d]  Matt Jordan <mjordan@digium.com>
+       * main: Use ast_strdup instead of strdup
 
-       * res/res_pjsip_t38: Add debug statements
+         Fix compile error in main/utils.c because strdup was used in dummy_start
 
-         This patch adds some debug statements to res_pjsip_t38. These statements help
-         to determine which SDP negotiation callbacks are being executed, and, when
-         a particular callback exits, why a callback may not have applied its logic
-         to the local or remote SDP.
+         Change-Id: Id61a6cf4f3cbf235450441e10e7da101a6335793
 
-         Change-Id: I61b3fb9183b7ebbb5da8e9f48b59a5d9d7042d77
+2016-01-07 03:21 +0000 [4285dee778]  Diederik de Groot <ddegroot@talon.nl>
 
-2015-10-22 09:44 +0000 [af288b2d96]  Matt Jordan <mjordan@digium.com>
+       * include/asterisk/time.h: Renamed global declaration:tv
 
-       * main/cli: Use proper string methods to check existence of context/exten/app
+         Renamed global declaration:tv to dummy_tv_var_for_types,
+         which would oltherwise cause 'shadow' warnings when 'tv'
+         was declared as a local variable elsewhere.
 
-         Because the context, extension, and application are stored in stringfields,
-         checking for them being NULL doesn't work so well. This patch uses the
-         appropriate string library call, ast_strlen_zero, to see if there is a value
-         in the context/exten/app values.
+         Added comment to note that dummy_tv_var_for_types is never
+         really exported and only used as a place holder.
 
-         Change-Id: Ie09623bfdf35f5a8d3b23dd596647fe3c97b9a23
+         ASTERISK-25627 #close
 
-2015-11-18 09:43 +0000 [d27aac0a9d]  Matt Jordan <mjordan@digium.com>
+         Change-Id: I9a6e17995006584f3627efe8988e3f8aa0f5dc28
 
-       * res/res_endpoint_stats: Add module to emit endpoint StatsD statistics
+2016-01-07 15:37 +0000 [96094feab6]  Mark Michelson <mmichelson@digium.com>
 
-         This patch adds a module that emits StatsD statistics about Asterisk
-         endpoints. This includes:
-          * A GUAGE statistic for endpoint states, tracking how many endpoints are in
-            a particular state.
-          * A GUAGE statistic for each endpoint, counting the number of channels
-            currently associated with an endpoint.
+       * PJSIP: Prevent deadlock due to dialog/transaction lock inversion.
 
-         ASTERISK-25572
+         A deadlock was observed where the monitor thread was stuck, therefore
+         resulting in no incoming SIP traffic being processed.
 
-         Change-Id: If7e1333c5aeda8d136850b30c2101c0ee1c97305
+         The problem occurred when two 200 OK responses arrived in response to a
+         terminating NOTIFY request sent from Asterisk. The first 200 OK was
+         dispatched to a threadpool worker, who locked the corresponding
+         transaction. The second 200 OK arrived, resulting in the monitor thread
+         locking the dialog. At this point, the two threads are at odds, because
+         the monitor thread attempts to lock the transaction, and the threadpool
+         thread loops attempting to try to lock the dialog.
 
-2015-11-18 10:07 +0000 [90d9a70789]  Matt Jordan <mjordan@digium.com>
+         In this case, the fix is to not have the monitor thread attempt to hold
+         both the dialog and transaction locks at the same time. Instead, we
+         release the dialog lock before attempting to lock the transaction.
 
-       * res_pjsip/pjsip_options: Add StatsD statistics for PJSIP contacts
+         There have also been some debug messages added to the process in an
+         attempt to make it more clear what is going on in the process.
 
-         This patch adds the ability to send StatsD statistics related to the
-         state of PJSIP contacts. This includes:
-          * A GUAGE statistic measuring the count of contacts in a particular state.
-            This measures how many contacts are reachable, unreachable, etc.
-          * The RTT time for each contact, if those contacts are qualified. This
-            provides StatsD engines useful time-based data about each contact.
+         ASTERISK-25668 #close
+         Reported by Mark Michelson
 
-         ASTERISK-25571
+         Change-Id: I4db0705f1403737b4360e33a8e6276805d086d4a
 
-         Change-Id: Ib8378d73afedfc622be0643b87c542557e0b332c
+2016-01-07 09:39 +0000 [52e9de0016]  Corey Farrell <git@cfware.com>
 
-2015-11-13 10:34 +0000 [75097a0955]  Matt Jordan <mjordan@digium.com>
+       * ast_format_cap_append_by_type: Resolve codec reference leak.
 
-       * res/res_pjsip_outbound_registration: Add registration statistics for StatsD
+         This resolves a reference leak caused by ASTERISK-25535.  The pointer
+         returned by ast_format_get_codec is saved so it can be released.
 
-         This patch adds outbound registration statistics for StatsD. This includes
-         the following:
-          * A GUAGE metric for the overall count of outbound registrations.
-          * A GUAGE metric for each state an outbound registration can be in. As the
-            outbound registrations change state, the overall count of how many
-            outbound registrations are in the particular state is changed.
+         ASTERISK-25664 #close
 
-         These statistics are particularly useful for systems with a large number of
-         SIP trunks, and where measuring the change in state of the trunks is useful
-         for monitoring.
+         Change-Id: If9941b1bf4320b2c59056546d6bce9422726d1ec
 
-         ASTERISK-25571
+2016-01-04 04:26 +0000 [86eae38d7e]  Aaron An <anjb@ti-net.com.cn>
 
-         Change-Id: Iba6ff248f5d1c1e01acbb63e9f0da1901692eb37
+       * cel/cel_radius: Fix wrong pointer.
 
-2015-11-19 09:40 +0000 [8f71263e72]  Matt Jordan <mjordan@digium.com>
+         The macro ADD_VENDOR_CODE defined in the cel_radius.c should use the parameter
+         y not the address of y.
 
-       * res/res_pjsip_outbound_registration: Apply configuration on object type load
+         I capture the radius UDP packet via tcpdump, and the AV pairs are not correct,
+         then i review the source code and compare it with cdr/cdr_radius.c. Fix it and
+          it works.
 
-         When Asterisk is configured to use a dynamic sorcery backend (such as
-         res_sorcery_astdb) with 'registration' objects, it will fail to create the
-         internal state objects associated with the registration objects on module
-         load. This is due to nothing actually querying for the specific objects
-         and calling their sorcery apply handler during module load.
+         ASTERISK-25647 #close
+         Reported by: Aaron An
+         Tested by: Aaron An
 
-         This patch fixes that by calling get_registrations in the sorcery observer's
-         object_type_loaded handler. Doing this causes the sorcery backends to be
-         asked for the current state of all registration objects, which causes the
-         apply handler to be called and the internal run-time state to be created.
+         Change-Id: I72889bccd8fde120d47aa659edc0e7e6d4d019f0
 
-         ASTERISK-25575 #close
+2016-01-05 14:52 +0000 [881dc862e0]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: Ie9306e797098c6d4da7bcf4a5434a15891508b23
+       * asterisk.h: Add ASTERISK_REGISTER_FILE macro
 
-2015-11-11 11:51 +0000 [0b508789ab]  Alexander Traud <pabstraud@compuserve.com>
+         The 11/13 branches and master use 2 different file version macros. 11/13
+         uses ASTERISK_FILE_VERSION but master uses ASTERISK_REGISTER_FILE. This
+         means a new file added to 11/13 can't just be cherry-picked to master
+         because the macro has to be changed.
 
-       * translate: Provide translation modules the result of SDP negotiation.
+         To make cherry-picking possible, ASTERISK_REGISTER_FILE was added
+         to asterisk.h as a simple alias for ASTERISK_FILE_VERSION(__FILE__, NULL)
+         The "$Revision$" tag doesn't do anything since Asterisk moved to git so
+         just passing NULL as the verison works fine.  asterisk.h was also
+         annotated to deprecate ASTERISK_FILE_VERSION and suggest using
+         ASTERISK_REGISTER_FILE for all new files.
 
-         Previously, a trancoding module did not have access to the joint but cached
-         format. Therefore, the module did not have access to the attributes negotiated
-         via SDP (line fmtp). Now, a translation module receives the joint format.
+         Finally, 2 recent file additions, pbx_builtins.c and pbx_functions.c,
+         were modified to use the new macro to make sure it actually worked.
+         'core show file version' showed the correct output.
 
-         ASTERISK-25545 #close
+         Change-Id: I5867ed898818d26ee49bb6e5c7d4c1a45d4789a5
 
-         Change-Id: Id6878a989b50573298dab115d3371ea369e1a718
+2016-01-05 11:06 +0000 [d228b62fd4]  gtjoseph <george.joseph@fairview5.com>
 
-2015-11-19 01:14 +0000 [1aa552b2a2]  Alexander Traud <pabstraud@compuserve.com>
+       * stasis_cache_pattern:  Backport to 13
 
-       * res_format_attr_h264: Do not reset string buffer.
+         Somehow stasis_cache_pattern got out of sync between 13 and master
+         and it was causing duplicate channel message issues in 13 when
+         related to a specific endpoint. I.E. from statsd,
+         'endpoints.PJSIP.1174.channels 0|g' was being emitted twice.
 
-         When no parameter is present, Asterisk does not generate the line fmtp, as
-         expected. However, because a buffer was reset, even rtpmap and fmtp of previous
-         media codecs got removed. Now, Asterisk does not reset other codecs in case of
-         no parameter for H.264.
+         Backporting stasis_cache_pattern from master to 13 solved
+         the issue and running the unit and testsuite tests confirmed
+         that no new ones were created.
 
-         ASTERISK-25573 #close
+         ASTERISK-25317 #close
 
-         Change-Id: I93811331f4a28c45418a9e14ee46c0debd47a286
+         Change-Id: Ia8707462f62d15eed14541c37f332a7bbbceb548
+2016-01-04 20:23 +0000 [e462f0063f]  Corey Farrell <git@cfware.com>
 
-2015-11-18 10:05 +0000 [3354b325c6]  Matt Jordan <mjordan@digium.com>
+       * main/pbx: Move hangup handler routines to pbx_hangup_handler.c.
 
-       * res_statsd: Add functions that support variable arguments
+         This is the sixth patch in a series meant to reduce the bulk of pbx.c.
+         This moves hangup handler management functions to their own source.
 
-         Often, the metric names of statistics we are generating for StatsD have some
-         dynamic component to them. This can be the name of a particular resource, or
-         some internal status label in Asterisk. With the current set of functions,
-         callers of the statsd API must first build the metric name themselves, then
-         pass this to the API functions. This results in a large amount of boilerplate
-         code and usage of either fixed length static buffers or dynamic memory
-         allocation, neither of which is desireable.
+         Change-Id: Ib25a75aa57fc7d5c4294479e5cc46775912fb104
 
-         This patch adds two new functions to the StatsD API that support a printf
-         style format specifier for constructing the metric name. A dynamic string,
-         allocated in threadstorage, is used to build the metric name. This eases
-         the burden on users of the StatsD API.
+2016-01-04 19:46 +0000 [ab191d124c]  Corey Farrell <git@cfware.com>
 
-         Change-Id: If533c72d1afa26d807508ea48b4d8c7b32f414ea
+       * main/pbx: Move dialplan application management routines to pbx_app.c.
 
-2015-11-17 14:53 +0000 [d4a522d587]  Richard Mudgett <rmudgett@digium.com>
+         This is the sixth patch in a series meant to reduce the bulk of pbx.c.
+         This moves dialplan application management functions to their own source.
 
-       * res_pjsip_outbound_registration.c: Be tolerant of short registration timeouts.
+         Change-Id: I444c10fb90a3cdf9f3047605d6a8aad49c22c44c
 
-         Change-Id: Ie16f5053ebde0dc6507845393709b4d6a3ea526d
+2016-01-04 18:20 +0000 [09a9b93896]  Corey Farrell <git@cfware.com>
 
-2015-11-17 14:53 +0000 [e44ab3816c]  Richard Mudgett <rmudgett@digium.com>
+       * main/pbx: Move switch routines to pbx_switch.c.
 
-       * res_pjsip_outbound_registration.c: Fix 423 response handling.
+         This is the fifth patch in a series meant to reduce the bulk of pbx.c.
+         This moves ast_switch functions to their own source.
 
-         Receiving a 423 Interval Too Brief response after authentication for an
-         outbound registration attempt results in assuming that the registrar has
-         rejected the registration permanently.  If there are no configured retries
-         for fatal responses then the outbound registration is stopped for that
-         endpoint.
+         Change-Id: Ic2592a18a5c4d8a3c2dcf9786c9a6f650a8c628e
 
-         For registrations, PJSIP/PJPROJECT intercepts the handling of 423
-         responses and does not include any authentication in the updated
-         registration request.  When the updated request is challenged then the
-         Asterisk code assumes that we were challenged again because the peer
-         rejected the authentication we sent earlier.
+2016-01-04 18:00 +0000 [c608274a39]  Corey Farrell <git@cfware.com>
 
-         * Made registration challenges keep track of the CSeq number to determine
-         if the received challenge response was for the request we thought we sent.
-         If the response's CSeq number differs from the CSeq number we last sent
-         with authentication then authenticate again because it is a challenge to a
-         different request.
+       * main/pbx: Move timing routines to pbx_timing.c.
 
-         Change-Id: I81b4bd36d1be095bab606e34b8b44e6302971b09
+         This is the fourth patch in a series meant to reduce the bulk of pbx.c.
+         This moves pbx timing functions to their own source.
 
-2015-11-03 14:36 +0000 [1e0040b88f]  Tyler Cambron <tcambron@digium.com>
+         Change-Id: I05c45186cb11edfc901e95f6be4e6a8abf129cd6
 
-       * StatsD: Add res_statsd compatibility
+2015-12-29 04:31 +0000 [338a8ffed6]  Martin Tomec <tomec.martin@gmail.com>
 
-         Added a new api to res_statsd.c to allow it to receive a
-         character pointer for the value argument. This allows for a
-         '+' and a '-' to easily be sent with the value.
+       * app_queue: Add member flag "in_call" to prevent reading wrong lastcall time
 
-         ASTERISK-25419
-         Reported By: Ashley Sanders
+         Member lastcall time is updated later than member status. There was chance to
+         check wrapuptime for available member with wrong (old) lastcall time.
+         New boolean flag "in_call" is set to true right before connecting call, and
+         reset to false after update of lastcall time. Members with "in_call" set to true
+         are treat as unavailable.
 
-         Change-Id: Id6bb53600943d27347d2bcae26c0bd5643567611
+         ASTERISK-19820 #close
 
-2015-11-16 13:56 +0000 [f62b642fe3]  Matt Jordan <mjordan@digium.com>
+         Change-Id: I1923230cf9859ee51563a8ed420a0628b4d2e500
 
-       * res/res_pjsip: Fix off nominal crash with requests that fail and have a timer
+2015-12-28 17:23 +0000 [e13719bff1]  Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
 
-         When a request is sent using pjsip_endpt_send_request and fails, a condition
-         exists where the request wrapper, which is an AO2 object, may be de-ref'd
-         more times than it should. This occurs when the request's callback is called,
-         and, in the callback, the timer on the PJSIP heap is cancelled. When that
-         occurs, the request wrapper's lifetime is decremented. When
-         pjsip_endpt_send_request fails, we unilaterally decrement the lifetime of
-         the request wrapper again, even though we've already cancelled the reference
-         associated with the timer.
+       * app_queue: Added reason pause of member
 
-         This patch checks the return result of pj_timer_heap_cancel_if_active before
-         removing the reference associated with the timer. We now only decrement it
-         in this case if a timer is cancelled as a result of the function call.
+         In app_queue added value Paused Reason on QueueMemberStatus when a member
+         on queue is paused and the reason was set.
 
-         Change-Id: I21332343a1a019c1117076f9bf2df27be2850102
+         ASTERISK-25480 #close
+         Reporte by: Rodrigo Ramírez Norambuena
 
-2015-11-13 14:03 +0000 [fdd2afcd16]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: Ia5db503482f50764c15e2020196c785f59d4a68e
 
-       * Confbridge: Add a user timeout option
+2015-12-30 10:49 +0000 [4ec85a9f07]  gtjoseph <george.joseph@fairview5.com>
 
-         This option adds the ability to specify a timeout, in seconds, for a
-         participant in a ConfBridge. When the user's timeout has been reached,
-         the user is ejected from the conference with the CONFBRIDGE_RESULT
-         channel variable set to "TIMEOUT".
+       * voicemail: Move app_voicemail / res_mwi_external conflict to runtime
 
-         The rationale for this change is that there have been times where we
-         have seen channels get "stuck" in ConfBridge because a network issue
-         results in a SIP BYE not being received by Asterisk. While these
-         channels can be hung up manually via CLI/AMI/ARI, adding some sort of
-         automatic cleanup of the channels is a nice feature to have.
+         The menuselect conflict between app_voicemail and res_mwi_external
+         makes it hard to package 1 version of Asterisk.  There no actual
+         build dependencies between the 2 so moving this check to runtime
+         seems like a better solution.
 
-         ASTERISK-25549 #close
-         Reported by Mark Michelson
+         The ast_vm_register and ast_vm_greeter_register functions in app.c
+         were modified to return AST_MODULE_LOAD_DECLINE instead of -1 if there
+         is already a voicemail module registered. The modules' load_module
+         functions were then modified to return DECLINE instead of -1 to the
+         loader.  Since -1 is interpreted by the loader as AST_MODULE_LOAD_FAILURE,
+         the modules were incorrectly causing Asterisk to stop so this needed
+         to be cleaned up anyway.
 
-         Change-Id: I2996b6c5e16a3dda27595f8352abad0bda9c2d98
+         Now you can build both and use modules.conf to decide which voicemail
+         implementation to load.
 
-2015-11-16 04:29 +0000 [7debb986a5]  Alec Davis <sivad.a@paradise.net.nz>
+         The default menuselect options still build app_voicemail and not
+         res_mwi_external but if both ARE built, res_mwi_external will load
+         first and become the voicemail provider unless modules.conf rules
+         prevent it.  This is noted in CHANGES.
 
-       * app_queue: (try_calling): mutex 'qe->chan' freed more times than we've locked!
+         Change-Id: I7d98d4e8a3b87b8df9e51c2608f0da6ddfb89247
 
-         commit aae45acbd (Mark Michelson 2015-04-15 10:38:02 -0500 6525)
-         refer ASTERISK-24958
+2016-01-04 16:22 +0000 [7fdcfd7724]  Corey Farrell <git@cfware.com>
 
-         above commit removed ast_channel_lock(qe->chan);
-         but failed to remove corresponding ast_channel_unlock(qe->chan);
+       * main/pbx: Move variable routines to pbx_variables.c.
 
-         ASTERISK-25561 #close
-         Reported Alec Davis
+         This is the third patch in a series meant to reduce the bulk of pbx.c.
+         This moves channel and global variable routines to their own source.
 
-         Change-Id: Ie05f4e2d08912606178bf1fded57cc022c7a2e1a
+         Change-Id: Ibe8fb4647db11598591d443a99e3f99200a56bc6
 
-2015-11-14 07:02 +0000 [afd9a89e5a]  Joshua Colp <jcolp@digium.com>
+2015-12-04 17:22 +0000 [80a8b2a4cd]  Richard Mudgett <rmudgett@digium.com>
 
-       * hashtab: Add NULL check when destroying iterator.
+       * app_dial: Immediately exit dial if the caller is already hung up.
 
-         The hashtab API is pretty NULL tolerant which has resulted
-         in remaining callers not doing much checks themselves.
-         Unfortunately the function to destroy an iterator does not
-         do a NULL check and will result in a crash if passed NULL.
-         This change fixes that.
+         If a caller hangs up before dial is executed within an AGI then the AGI
+         has likely eaten all queued frames before executing the dial in DeadAGI
+         mode.  With the caller hung up and no pending frames from the caller's
+         read queue, dial would not know that the call has hung up until a called
+         channel answers.  It is rather annoying to whoever just answered the
+         non-existent call.
 
-         ASTERISK-25552 #close
+         Dial should not continue execution in DeadAGI mode, hangup handlers, or
+         the h exten.
 
-         Change-Id: Ic1bf8eec3639e5a440f1c941d3ae3893ac6ed619
+         * Added a check early in dial to abort dialing if the caller has hungup.
 
-2015-11-13 14:32 +0000 [c0f2f8de45]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25307 #close
+         Reported by: David Cunningham
 
-       * res_pjsip_rfc3326.c: Fix crash when channel goes away.
+         Change-Id: Icd1bc0764726ef8c809f76743ca008d0f102f418
 
-         If an authenticated incoming caller does not respond to our 200 OK INVITE
-         response with an ACK then PJSIP will hangup the call.  Unfortunately,
-         there is a chance that the session's channel will go away between one use
-         of the channel pointer and another when building the BYE request because
-         the BYE is being built by the monitor thread and not the call's serializer
-         thread.
+2016-01-02 10:26 +0000 [1087b0c6ed]  Matt Jordan <mjordan@digium.com>
 
-         * Added a check to ensure that the thread trying to add the Reason header
-         is the call's serializer thread.  This ensures that the channel will not
-         go away on us.
+       * main/cdr: Allow setting properties on a finalized CDR if it is the last one
 
-         Change-Id: I866388d2b97ea2032eaae3f3ab3f1ca6cbd2df89
+         Prior to this patch, we explicitly disallowed setting any properties on a
+         finalized CDR. This seemed like a good idea at the time; in practice, it was
+         more restrictive.
 
-2015-11-13 14:19 +0000 [4f43b85c92]  Mark Michelson <mmichelson@digium.com>
+         There are weird and strange scenarios where setting a property on a finalized
+         CDR is definitely wrong. For example, we may Fork a CDR, finalizing the
+         previous one, then change a property. In said case, the old CDR is supposed
+         to now be 'immutable' (so to speak), and should not be updated. From the
+         perspective of the code, a forked CDR that is finalized is just finalized.
+         Hence why we decided these should not be updated.
 
-       * Taskprocessors: Increase high-water mark
+         In practice, it is much more common to want to set a property on a CDR in
+         the h extension or in a hangup handler. Disallowing a common scenario to make
+         an esoteric behaviour work isn't good. This patch fixes this by allowing
+         callers to set a property IF we are the last CDR in the chain. This preserves
+         the finalized CDR if it was forked, while allowing the more common case to
+         function.
 
-         In practical tests, we have seen certain taskprocessors, specifically
-         Stasis subscription taskprocessors, cross the recently-added high-water
-         mark and emit a warning. This high-water mark warning is only intended
-         to be emitted when things have tanked on the system and things are
-         heading south quickly. In the practical tests, the Stasis taskprocessors
-         sometimes had a max depth of 180 tasks in them, and Asterisk wasn't in
-         any danger at all.
+         ASTERISK-25458 #close
 
-         As such, this ups the high-water mark to 500 tasks instead. It also
-         redefines the SIP threadpool request denial number to be a multiple of
-         the taskprocessor high-water mark.
+         Change-Id: Icf3553c607b9f561152a41e6d8381d594ccdf4b9
 
-         Change-Id: Ic8d3e9497452fecd768ac427bb6f58aa616eebce
+2016-01-02 10:23 +0000 [1f23e65b89]  Matt Jordan <mjordan@digium.com>
 
-2015-11-11 11:46 +0000 [d8d3991390]  Alexander Traud <pabstraud@compuserve.com>
+       * main/cdr: Set the end time on a CDR if endbeforehexten is Yes
 
-       * format: Register format-attribute module with cached formats.
+         Prior to this patch, the CDR engine attempted to set the end time on a CDR
+         that was executing hangup logic and with endbeforehexten set to Yes by
+         calling a function that inspects the properties on the Party A snapshot to
+         determine if we are ready to set the end time. That always failed. This is
+         because a Party A snapshot is not updated for CDRs that are executing hangup
+         logic with endbeforehexten=Yes.
 
-         In Asterisk 13, cached formats are created before their corresponding format-
-         attribute module is registered. Cached formats are involved when a local
-         extension is called. Therefore, ast_format_generate_sdp_fmtp did not work
-         on local extensions. This change affects the Opus Codec, H.263 (Plus), H.264,
-         and format-attribute modules provided externally.
+         Instead of calling a function that looks at the Party A snapshot, we just
+         simply set the end time on the CDR. This is safe to call multiple times, and is
+         safe to call at this point as we know that (a) we are executing hangup logic,
+         and (b) we are supposed to set the end time at this point.
 
-         ASTERISK-25160 #close
+         ASTERISK-25458
 
-         Change-Id: I1ea1f0483e5261e2a050112e4ebdfc22057d1354
+         Change-Id: I0c27b493861f9c13c43addbbb21257f79047a3b3
 
-2015-11-12 11:17 +0000 [367972e42d]  Mark Michelson <mmichelson@digium.com>
+2015-12-30 20:51 +0000 [2ffade4574]  Corey Farrell <git@cfware.com>
 
-       * res_pjsip distributor: Don't send 503 response to responses.
+       * main/pbx: Move custom function routines to pbx_functions.c.
 
-         When the SIP threadpool is backed up with tasks, we send 503 responses
-         to ensure that we don't try to overload ourselves. The problem is that
-         we were not insuring that we were not trying to send a 503 to an
-         incoming SIP response.
+         This is the second patch in a series meant to reduce the bulk of pbx.c.
+         This moves custom function management routines to their own source.
 
-         This change makes it so that we only send the 503 on incoming requests.
+         Change-Id: I34a6190282f781cdbbd3ce9d3adeac3c3805e177
 
-         Change-Id: Ie2b418d89c0e453cc6c2b5c7d543651c981e1404
+2015-12-28 19:18 +0000 [20b8474f20]  gtjoseph <george.joseph@fairview5.com>
 
-2015-11-11 17:11 +0000 [2f9cb7d62b]  Mark Michelson <mmichelson@digium.com>
+       * main/pbx: Move pbx_builtin dialplan applications to pbx_builtins.c
 
-       * res_pjsip: Deny requests when threadpool queue is backed up.
+         We joked about splitting pbx.c into multiple files but this first step was
+         fairly easy.  All of the pbx_builtin dialplan applications have been moved
+         into pbx_builtins.c and a new pbx_private.h file was added. load_pbx_builtins()
+         is called by asterisk.c just after load_pbx().
 
-         We have observed situations where the SIP threadpool may become
-         deadlocked. However, because incoming traffic is still arriving, the SIP
-         threadpool's queue can continue to grow, eventually running the system
-         out of memory.
+         A few functions were renamed and are cross-exposed between the 2 source files.
 
-         This change makes it so that incoming traffic gets rejected with a 503
-         response if the queue is backed up too much.
+         Change-Id: I87066be3dbf7f5822942ac1449d98cc43fc7561a
 
-         Change-Id: I4e736d48a2ba79fd1f8056c0dcd330e38e6a3816
+2015-12-24 20:26 +0000 [e4a566918a]  Matt Jordan <mjordan@digium.com>
 
-2015-11-12 06:24 +0000 [4e5bf12b33]  Joshua Colp <jcolp@digium.com>
+       * tests/test_stasis_endpoints: Remove expected duplicate events
 
-       * format_cap: Don't append the 'none' format when appending all.
+         The cache_clear test was written to expect duplicate Stasis messages
+         sent from the technology endpoint to the all caching topic. This patch
+         fixes the test to no longer expect these duplicate messages.
 
-         When appending all formats of a type all the codecs are iterated
-         and added. This operation was incorrectly adding the ast_format_none
-         format which is special in that it is supposed to be used when no
-         format is present. It shouldn't be appended.
+         ASTERISK-25137
 
-         ASTERISK-25535
+         Change-Id: I58075d70d6cdf42e792e0fb63ba624720bfce981
 
-         Change-Id: I7b00f3bdf4a5f3022e483d6ece602b1e8b12827c
+2015-12-28 14:02 +0000 [a280400758]  Joshua Colp <jcolp@digium.com>
 
-2015-11-11 04:16 +0000 [07583c2888]  Steve Davies <steve@one47.co.uk>
+       * test_time: Provide a timeout when waiting.
 
-       * Further fixes to improper usage of scheduler
+         The test_timezone_watch unit test is written to expect a
+         condition to be signaled when the inotify daemon thread runs.
+         There exists a small window where the test_timezone_watch
+         thread can signal the inotify daemon thread while it is not
+         reading on the underlying file descriptor. If this occurs
+         the test_timezone_watch thread will wait indefinitely for a
+         signal that will never arrive.
 
-         When ASTERISK-25449 was closed, a number of scheduler issues mentioned in
-         the comments were missed. These have since beed raised in ASTERISK-25476
-         and elsewhere.
+         This change adds a timeout to the condition so it will return
+         regardless after a period of time.
 
-         This patch attempts to collect all of the scheduler issues discovered so
-         far and address them sensibly.
+         Change-Id: Ifed981879df6de3d93acd3ee0a70f92546517390
 
-         ASTERISK-25476 #close
+2015-05-27 13:22 +0000 [3a1c4885be]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: I87a77d581e2e0d91d33b4b2fbff80f64a566d05b
+       * endpoint/stasis: Eliminate duplicate events on endpoint status change
 
-2015-11-11 11:04 +0000 [b818d70533]  Joshua Colp <jcolp@digium.com>
+         When an endpoint is created, its messages are forwarded to both the tech
+         endpoint topic and the all endpoints topic. This is done so that various
+         parties interested in endpoint messages can subscribe to just the tech
+         endpoint and receive all messages associated with that particular technology,
+         as opposed to subscribing to the all endpoints topic. Unfortunately, when the
+         tech endpoint is created, it also forwards all of its messages to the all
+         topic. This results in duplicate messages whenever an endpoint publishes its
+         messages.
 
-       * threadpool: Handle worker thread transitioning to dead when going active.
+         This patch resolves the duplicate message issue by creating a new function
+         for Stasis caching topics, stasis_cp_sink_create. In most respects, this acts
+         as a normal caching topic, save that it no longer forwards messages it receives
+         to the all endpoints topic. This allows it to act as an aggregation "sink",
+         while preserving the necessary caching behaviour.
 
-         This change adds handling of dead worker threads when moving them
-         to be active. When this happens the worker thread is removed from
-         both the active and idle threads container. If no threads are able
-         to be moved to active then the pool grows as configured.
+         ASTERISK-25137 #close
+         Reported-by: Vitezslav Novy
 
-         A unit test has also been added which thrashes the idle timeout
-         and thread activation to exploit any race conditions between the
-         two.
+         ASTERISK-25116 #close
+         Reported-by: George Joseph <george.joseph@fairview5.com>
+         Tested-by: George Joseph <george.joseph@fairview5.com>
 
-         ASTERISK-25546 #close
+         Change-Id: Ie47784adfb973ab0063e59fc18f390d7dd26d17b
+2015-12-24 22:19 +0000 [136c537695]  Dade Brandon <dade@xencall.com>
 
-         Change-Id: I6c455f9a40de60d9e86458d447b548fb52ba1143
+       * res_http_websocket.c: prevent avoidable disconnections caused by write errors
 
-2015-11-10 09:27 +0000 [4bf84459c7]  Alexander Traud <pabstraud@compuserve.com>
+         Updated ast_websocket_write to encode the entire frame in to one
+         write operation, to ensure that we don't end up with a situation
+         where the websocket header has been sent, while the body can not
+         be written.
 
-       * rtp_engine: Init a format-attribute module to its RFC defaults.
+         Previous to August's patch in commit b9bd3c14, certain network
+         conditions could cause the header to be written, and then the
+         sub-sequent body to fail - which would cause the next successful
+         write to contain a new header, and a new body (resulting in
+         the peer receiving two headers - the second of which would be
+         read as part of the body for the first header).
 
-         Previously, format-attribute modules relied on an existing fmtp line in SDP
-         negotiation. However, fmtp is optional for several formats like the Opus Codec.
-         Now, the format-attribute module is called with an empty fmtp, which allows the
-         module to initialise itself to RFC defaults. Furthermore now, Asterisk is able
-         to differentiate between internally and externally created formats.
+         This was patched to have both write operations individually fail
+         by closing the websocket.
 
-         ASTERISK-25537 #close
+         In a case available to the submitter of this patch, the same
+         body which would consistently fail to write, would succeed
+         if written at the same time as the header.
 
-         Change-Id: I28f680cef7fdf51c0969ff8da71548edad72ec52
+         This update merges the two operations in to one, adds debug messages
+         indicating the reason for a websocket connection being closed during
+         a write operation, and clarifies some variable names for code legibility.
 
-2015-11-09 03:04 +0000 [1bff400df7]  Alexander Traud <pabstraud@compuserve.com>
+         Change-Id: I4db7a586af1c7a57184c31d3d55bf146f1a40598
 
-       * ast_format_cap_get_names: To display all formats, the buffer was increased.
+2015-12-27 22:38 +0000 [f2efbb5d75]  Corey Farrell <git@cfware.com>
 
-         ASTERISK-25533 #close
+       * Remove res_jabber file that was left behind.
 
-         Change-Id: Ie1a9d1a6511b3f1a56b93d04475fbf8a4e40010a
+         Change-Id: I9d88fac0394d5bbaff0900a2ee911c4e4478846b
 
-2015-11-09 07:04 +0000 [f3ac4d8090]  Alexander Traud <pabstraud@compuserve.com>
+2015-12-13 13:09 +0000 [dde7f3c1c4]  Matt Jordan <mjordan@digium.com>
 
-       * ast_format_cap: Avoid format creation on module load, use cache instead.
+       * res_pjsip_history: Add a module that provides PJSIP history for debugging
 
-         Since Asterisk 13, formats are immutable and cached. However while loading a
-         module like chan_sip, some formats were created instead using cached ones.
+         This patch adds a new module, res_pjsip_history, that provides a slightly
+         better way of debugging SIP message traffic on a busy Asterisk system. The
+         existing mechanisms all rely on passively dumping a SIP message to the CLI.
+         While this is perfectly fine for logging purposes and well controlled
+         environments, on many installations, the amount of SIP messages Asterisk
+         receives will quickly swamp the CLI. This makes it difficult to view/capture
+         those messages that you want to diagnose in real time.
 
-         ASTERISK-25535 #close
+         This patch provides another way of handling this. When enabled, the module
+         will store SIP message traffic in memory. This traffic can then be queried
+         at leisure.
 
-         Change-Id: I479cdc220d5617c840a98f3389b3bd91e91fbd9b
+         In order to make the querying useful, a CLI command has been implemented,
+         'pjsip show history', that supports a basic expression syntax similar to
+         SQL or other query languages. A small number of useful fields have been
+         added in this initial patch; additional fields can easily be added in
+         later improvements. Those fields are:
+          - number: The entry index in the history
+          - timestamp: The time the message was recieved
+          - addr: The source/destination address of the message
+          - sip.msg.request.method: The request method
+          - sip.msg.call-id: The Call-ID header
 
-2015-11-06 07:54 +0000 [6d1bdb9d3b]  Walter Doekes <walter+asterisk@wjd.nu>
+         Note - this is a resurrection of the module initially proposed on Review Board
+         here: https://reviewboard.asterisk.org/r/4053/
 
-       * func_callerid: Document that CALLERID(pres) is available.
+         Change-Id: I39bd74ce998e99ad5ebc0aab3e84df3a150f8e36
 
-         CALLERPRES() says that it's deprecated in favor of CALLERID(num-pres)
-         and CALLERID(name-pres).  But for channel driver that don't make a
-         distinction between the two (e.g. SIP), it makes more sense to get/set
-         both at once.  This change reveals the availability of CALLERID(pres),
-         CONNECTEDLINE(pres), REDIRECTING(orig-pres), REDIRECTING(to-pres) and
-         REDIRECTING(from-pres).
+2015-12-25 09:56 +0000 [be050f2638]  Dade Brandon <dade@xencall.com>
 
-         ASTERISK-25373 #close
+       * chan_sip.c: fix websocket_write_timeout default value
 
-         Change-Id: I5614ae4ab7d3bbe9c791c1adf147e10de8698d7a
-2015-11-06 07:52 +0000 [8410336681]  Walter Doekes <walter+asterisk@wjd.nu>
+         websocket_write_timeout was not being set to its default value
+         during sip config reload, which meant that prior to this commit,
+         1) the default value of 100 was not used, unless an invalid value
+         (or 1) was specified in sip.conf for websocket_write_timeout, and
+         2) if the websocket_write_timeout directive was removed from sip.conf
+         without a full restart of asterisk, then the previous value would
+         continue to be used indefinitely.
 
-       * docs: Fix a few typo's in app docs (more then, resourse).
+         This essentially lead to a 0ms write timeout (the first write attempt
+         in ast_careful_fwrite must have succeeded) in websocket write requests
+         from chan_sip, unless websocket_write_timeout was explicitely set in sip.conf.
 
-         Change-Id: Iba57efadf6c0b822e762c7a001bc89611d98afd7
+         Changes to websocket_write_timeout still only apply to new websocket
+         sessions, after the sip reload -- timeouts on existing sessions are
+         not adjusted during sip reload.
 
-2015-11-06 07:36 +0000 [0d425f2eb4]  Walter Doekes <walter+asterisk@wjd.nu>
+         Change-Id: Ibed3816ed29cc354af6564c5ab3e75eab72cb953
 
-       * xmldoc: Improve xmldoc wrapping of 'core show ...' output.
+2015-12-23 17:40 +0000 [b3024cad10]  Richard Mudgett <rmudgett@digium.com>
 
-         Previously, the wrapping did both lookahead and lookback, which,
-         together with color escape sequences, caused some lines to be wrapped
-         way earlier than other lines.  This led to inconsistent output.
+       * bridge_basic.c: Fix GOTO_ON_BLINDXFR
 
-         This simplifies the wrapping code and makes it more sane: if maxcolumns
-         is hit, we simply jump back to the last space and wrap there.
+         Use of GOTO_ON_BLINDXFR would not work at all.  The target location would
+         never be executed by the transferring channel.
 
-         ASTERISK-25527 #close
+         * Made feature_blind_transfer() call ast_bridge_set_after_go_on() with
+         valid context, exten, and priority parameters from the transferring
+         channel.
 
-         Change-Id: I56d01c6f9a812642b1b05535c98d4db48d17c957
+         * Renamed some feature_blind_transfer() local variables for clarity.
 
-2015-11-06 06:57 +0000 [33752e0837]  Sean Bright (license #5060)
+         ASTERISK-25641 #close
+         Reported by Dmitry Melekhov
 
-       * res_pjsip_sdp_rtp: Enable Opus to be negotiated via SIP/SDP.
+         Change-Id: I19bead9ffdc4aee8d58c654ca05a198da1e4b7ac
 
-         In SIP/SDP, Opus has two channels always (see RFC 7587 section 7). The actual
-         amount of channels is negotiated in-band. Therefore now, the Opus codec and its
-         attribute rtpmap are registered with two channels.
+2015-12-24 12:19 +0000 [0a9941de9d]  Matt Jordan <mjordan@digium.com>
 
-         ASTERISK-24779 #close
-         Reported by: PowerPBX
-         Tested by: Alexander Traud
-         patches:
-           asterisk-24779.patch submitted by Sean Bright (license #5060)
+       * res/res_pjsip_location: Delete contact_status object when contact is deleted
 
-         Change-Id: Ic7ac13cafa1d3450b4fa4987350924b42cbb657b
+         In 450579e908, a change was made that removed the deletion of the
+         'contact_status' object when a 'contact' object is deleted in sorcery.
+         This unfortunately means that the 'contact_status' object persists, even when
+         something has explicitly removed a contact. The result is that the state of
+         the contact will not be regenerated if that contact is re-created, and the
+         stale state will be reported/used for that contact. It also results in
+         no ContactStatusChanged events being generated for either ARI or AMI.
 
-2015-11-03 16:19 +0000 [6ff48319d9]  Jonathan Rose <jrose@digium.com>
+         This patch restores the deletion logic that was removed. Doing so now
+         results in the expected events being generated again.
 
-       * taskprocessor: Add high water mark warnings
+         Change-Id: I28789a112e845072308b5b34522690e3faf58f07
 
-         If a taskprocessor's queue grows large, this can indicate that there
-         may be a problem with tasks not leaving the processor or else that
-         the number of available task processors for a given type of task is
-         too low. This patch makes it so that if a taskprocessor's task queue
-         grows above 100 queued tasks that it will emit a warning message.
-         Warning messages are emitted only once per task processor.
+2015-12-24 10:18 +0000 [1e24a0ca8a]  Kevin Harwell <kharwell@digium.com>
 
-         ASTERISK-25518 #close
-         Reported by: Jonathan Rose
+       * res_rtp_asterisk: rtp->ice check not wrapped in HAVE_PJPROJECT ifdef
 
-         Change-Id: Ib1607c35d18c1d6a0575b3f0e3ff5d932fd6600c
+         Change-Id: I19b49112e1b630bd04e859f14ccf96f8ebd6b151
 
-2015-11-04 14:31 +0000 [506aea26e6]  Matt Jordan <mjordan@digium.com>
+2015-12-20 21:33 +0000 [1d3d20dd68]  Dade Brandon <dade@xencall.com>
 
-       * main/dial: Protect access to the format_cap structure of the requesting channel
+       * app_amd: Correct documentation to reflect functionality
 
-         When a dial attempt is made that involves a requesting channel, we previously
-         were not:
-         a) Protecting access to the native format capabilities structure on the
-            requesting channel. That is inherently unsafe.
-         b) Reference bumping the lifetime of the format capabilities structure.
+         Update documentation to reflect that maximum_number_of_words
+         has functionality inconsistent with the variable name (and inconsistent
+         with prior documentation.)
 
-         In both cases, something else could sneak in, blow away the format
-         capabilities, and we'd be holding onto an invalid format_cap structure. When
-         the newly created channel attempts to construct its format capabilities, things
-         go poorly.
+         Update documentation for silence_threshold, which previously implied
+         that it was measuring time, rather than noise averages in the sample.
 
-         This patch:
-         a) Ensures that we get a reference to the native format capabilities while
-            the requesting channel is locked
-         b) Holds a reference to the native format capabilities during the creation
-            of the new channel.
+         Update the comments in amd.conf.sample.
 
-         ASTERISK-25522 #close
+         ASTERISK-25639 #close
+         Change-Id: I4b1451e5dc9cb3cb06d59b6ab872f5275ba79093
 
-         Change-Id: I0bfb7ba8b9711f4158cbeaae96edf9626e88a54f
+2015-12-17 19:05 +0000 [965a0eee46]  Dade Brandon <dade@xencall.com>
 
-2015-10-30 22:57 +0000 [d098d00424]  Corey Farrell <git@cfware.com>
+       * res_rtp_asterisk: Resolve further timing issues with DTLS negotiation
 
-       * Fix cli display of build options.
+         Resolves an edge case dtls negotiation delay for certain networks which
+         somehow manage to drop the rtcp side's packet when these are both sent
+         ast_rtp_remote_address_set, causing it to have to time-out and restart
+         the handshake.
 
-         A previous commit reduced the AST_BUILDOPTS compiler define to
-         only include options that affected ABI.  This included some options
-         that were previously displayed by cli "core show settings".  This
-         change corrects the CLI display while still restricting buildopts.h
-         to ABI effecting options only.
+         Move dtls pending bio flush in to it's own function, and call it from
+         ast_rtp_on_ice_complete, when we're rtp->ice, rather than when
+         ast_rtp_remote_address_set.
 
-         ASTERISK-25434 #close
-         Reported by: Rusty Newton
+         Keep the existing flush from the recent change to res_rtp_remote_address_set
+         if ice is not being used.
 
-         Change-Id: Id07af6bedd1d7d325878023e403fbd9d3607e325
+         ASTERISK-25614 #close
+         Reported-by: XenCALL
+         Tested by: XenCALL
 
-2015-11-03 11:15 +0000 [afec1b1b64]  Matt Jordan <mjordan@digium.com>
+         Change-Id: Ie2caedbdee1783159f375589b6fd3845c8577ba5
 
-       * res_pjsip/location: Destroy contact_status objects on contact deletion
+2015-12-18 09:54 +0000 [ae428d8460]  Carlos Oliva <carlos.oliva@invoxcontact.com>
 
-         The contact_status Sorcery objects are currently not destroyed when a contact
-         is deleted. This causes the contact's last known RTT/status to be 'sticky'
-         when the contact itself may no longer exist. This patch causes the
-         contact_status objects associated with both dynamic and static contacts to
-         be destroyed if the AoR holding those contacts is also destroyed (or via
-         other paths where a contact may be deleted.)
+       * app_queue: update RT members when the 1st call joins a queue with no agents
 
-         Change-Id: I7feec8b9278cac3c5263a4c0483f4a0f3b62426e
+         If a call enters on a queue and the members on that queue are updated in
+         realtime (ex: using mysql inserting a new agent) the queue members are
+         never refreshed and the call will stay in the queue until other event occurs.
+         This happens only if this is the first call of the queue and there is no
+         agents servicing.
+         This patch prevent this issue, ensuring realtime members are updated if
+         there is one call in the queue and no available agents
 
-2015-11-03 10:58 +0000 [715f770c9f]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25442 #close
 
-       * pjsip_configuration: On delete, remove the persistent version of an endpoint
+         Change-Id: If1e036d013a5c1d8b0bf60d71d48fe98694a8682
 
-         When an endpoint is deleted (such as through an API), the persistent endpoint
-         currently continues to lurk around. While this isn't harmful from a memory
-         consumption perspective - as all persistent endpoints are reclaimed on
-         shutdown - it does cause Stasis endpoint related operations to continue
-         to believe that the endpoint may or may not exist.
+2015-12-05 10:01 +0000 [59d5bb0613]  Joshua Colp <jcolp@digium.com>
 
-         This patch causes the persistent endpoint related to a PJSIP endpoint to be
-         destroyed if the PJSIP endpoint is deleted.
+       * res_sorcery_memory_cache: Add support for a full backend cache.
 
-         Change-Id: I85ac707b4d5e6aad882ac275b0c2e2154affa5bb
-2015-11-03 08:15 +0000 [f0f190af08]  Matt Jordan <mjordan@digium.com>
+         This change introduces the configuration option 'full_backend_cache'
+         which changes the cache to be a full mirror of the backend instead
+         of a per-object cache. This allows all sorcery retrieval operations
+         to be carried out against it and is useful for object types which
+         are used in a "retrieve all" or "retrieve some" pattern.
 
-       * main/stasis_endpoints: Fix ContactStatusChange JSON for roundtrip_usec field
+         ASTERISK-25625 #close
 
-         The JSON packing for the ContactStatusChange event forgot to include the
-         roundtrip_usec field. As a result, the field never showed up in any event,
-         even when the data was available. This patch corrects that error by properly
-         packing the JSON blob with the data.
+         Change-Id: Ie2993487e9c19de563413ad5561c7403b48caab5
 
-         Change-Id: I8df80da659a44010afbd48f645967518ff5daa17
+2015-12-17 10:25 +0000 [0cefcabd58]  Joshua Colp <jcolp@digium.com>
 
-2015-11-02 20:24 +0000 [0393bd6bed]  Corey Farrell <git@cfware.com>
+       * rtp_engine: Ignore empty filenames in DTLS configuration.
 
-       * chan_sip: Allow websockets to be disabled.
+         When applying an empty DTLS configuration the filenames in the
+         configuration will be empty. This is actually valid to do and
+         each filename should simply be ignored.
 
-         This patch adds a new setting "websockets_enabled" to sip.conf.
-         Setting this to false allows chan_sip to be used without causing
-         conflicts with res_pjsip_transport_websocket.
+         Change-Id: Ib761dc235638a3fb701df337952f831fc3e69539
 
-         ASTERISK-24106 #close
-         Reported by: Andrew Nagy
+2015-12-17 08:10 +0000 [158a0a5422]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: I04fe8c4f2d57b2d7375e0e25826c91a72e93bea7
+       * chan_sip: Enable WebSocket support by default.
 
-2015-11-02 17:19 +0000 [6fbffe42e1]  Mark Michelson <mmichelson@digium.com>
+         Per the documentation the WebSocket support in chan_sip is
+         supposed to be enabled by default but is not. This change
+         corrects that.
 
-       * res_pjsip: Set threadpool max size default to 50.
+         Change-Id: Icb02bbcad47b11a795c14ce20a9bf29649a54423
 
-         During a stress test of subscriptions, a huge blast of
-         subscription-related traffic resulted in the threadpool expanding to a
-         ridiculous number of threads. The balooning of threads resulted in an
-         increase of memory, which led to a crash due to being out of memory.
+2015-12-14 12:04 +0000 [a9d6fc571d]  Joshua Colp <jcolp@digium.com>
 
-         An easy fix for the particular test was to limit the size of the
-         threadpool, thus reining in the amount of memory that would be used. It
-         was decided that there really is no downside to having a non-infinite
-         default value for the maximum size of the threadpool, so this change
-         introduces 50 threads as the maximum threadpool size for the SIP
-         threadpool.
+       * json: Audit ast_json_* usage for thread safety.
 
-         ASTERISK-25513 #close
-         Reported by John Bigelow
+         The JSON library Asterisk uses, jansson, is not thread
+         safe for us in a few ways. To help with this wrappers for JSON
+         object reference count increasing and decreasing were added
+         which use a global lock to ensure they don't clobber over
+         each other. This does not extend to reference count manipulation
+         within the jansson library itself. This means you can't safely
+         use the object borrowing specifier (O) in ast_json_pack and
+         you can't share JSON instances between objects.
 
-         Change-Id: If0b9514f1d9b172540ce1a6e2f2ffa1f2b6119be
+         This change removes uses of the O specifier and replaces them
+         with the o specifier and an explicit ast_json_ref. Some cases
+         of instance sharing have also been removed.
 
-2015-11-02 06:57 +0000 [11e54b1932]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25601 #close
 
-       * pjsip_options: Schedule/unschedule qualifies on AoR creation/destruction
+         Change-Id: I06550d8b0cc1bfeb56cab580a4e608ae4f1ec7d1
 
-         When an AoR is created or destroyed dynamically, the scheduled OPTIONS
-         requests that qualify the contacts on the AoR are not necessarily started
-         or destroyed, particularly for persistent contacts created for that AoR.
-         This patch adds create/update/delete sorcery observers for an AoR, which
-         schedule/unschedule the qualifies as expected.
+2015-12-16 11:28 +0000 [53bd5a539a]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: Ic287ed2e2952a7808ee068776fe966f9554bdf7d
+       * Alembic: Increase column size of PJSIP AOR "contact".
 
-2015-10-30 13:22 +0000 [118d628e08]  Matt Jordan <mjordan@digium.com>
+         When running the PJSIP AMI "show_endpoint" test with automatic
+         conversion to realtime, the test would fail. This was because the AOR
+         "contact" column was sized at 40, and the configured contact was larger
+         than that.
 
-       * Makefile: Add a rule 'basic-pbx' that installs the Basic PBX configs
+         This commit increases the size of the contact column to 255 characters.
 
-         This patch adds a rule for installing the Super Awesome Company based 'Basic
-         PBX' configuration files. As part of adding this rule, a bit of the content
-         that makes up installing the configuration files under the 'samples' target
-         was refactored into a make subroutine for usage by additional later config
-         make targets.
+         Change-Id: Ia65bc7fd37699b7c0eaef9629a1a31eab9a24ba1
 
-         Change-Id: I6c2e27906f73e2919a2b691da0be20ae70302404
-2015-10-29 08:28 +0000 [9a021a42ad]  Joshua Colp <jcolp@digium.com>
+2015-12-16 11:25 +0000 [da17dc4d75]  Mark Michelson <mmichelson@digium.com>
 
-       * res_pjsip_pubsub: Fix assertion when UAS dialog creation fails.
+       * Alembic: Add PJSIP global keep_alive_interval.
 
-         When compiled with assertions enabled one will occur when destroying
-         the subscription tree when UAS dialog creation fails. This is because
-         the code assumes that a dialog will always exist on a subscription
-         tree when in reality during this specific scenario it won't.
+         The keep_alive_interval option was added about a year ago, but no
+         alembic revision was created to add the appropriate column to the
+         database.
 
-         This change makes it so a dialog is not removed from the subscription
-         tree if it is not present.
+         This commit fixes the problem and adds the column. This was discovered
+         by running the testsuite with automatic conversion to realtime enabled.
 
-         ASTERISK-25505 #close
+         Change-Id: If3ef92a7c4f4844d08f8aae170d2178aec5c4c1a
 
-         Change-Id: Id5c182b055aacc5e66c80546c64804ce19218dee
+2015-12-14 13:53 +0000 [24ae124e4f]  server-pandora <server-pandora@xencall.com>
 
-2015-10-26 11:42 +0000 [1256aedf66]  Alexander Traud <pabstraud@compuserve.com>
+       * res_rtp_asterisk.c: Fix DTLS negotiation delays.
 
-       * chan_sip: Do not send all codecs on INVITE.
+         - Trigger pending DTLS packets to send out, once the RTP instance's remote
+           address is set.
+         - Avoids locking the DTLS structure unnecessarily by only doing this if
+           DTLS is passive.
+         - Add DTLS locks around the structurally sensitive calls in the SSL
+           portion of __rtp_recvfrom, since dtls_srtp_check_pending does not lock
+           inside of itself, and we're dealing with the SSL BIO in at least two
+           threads.
 
-         Since version 13, Asterisk sent all allowed codecs as callee, even when the
-         caller did not request/support them. In case of dynamic RTP payloads, this led
-         to the same ID for different codecs, which is not allowed by SIP/SDP. Now, the
-         intersection between the requested and the supported codecs is send again.
+         WebRTC channels may receive a DTLS handshake before
+         ast_rtp_remote_address_set is called, which causes there to be a pending
+         response to send out.   Previous to 1ad827, this was handled by calling
+         dtls_srtp_check_pending on receipt of any RTP packet - a STUN or RTP
+         packet could trigger the pending handshake response.  Since that was
+         rightfully removed, whenever the DTLS handshake is received before the
+         remote address is set, we would have to wait until another SSL packet
+         arrives.
 
-         ASTERISK-24543 #close
+         As of Chrome M47's optimizations to their handshake process, WebRTC
+         conversations between Chrome M47+ and Asterisk, where Asterisk is passive,
+         experience a 1 second delay without this patch, because the SSL handshake
+         is received before ICE negotation stores the remote_address, and the next
+         SSL packet isn't received until after a 1 second timeout in Chrome, which
+         causes a new handshake request.
 
-         Change-Id: Ie90cb8bf893b0895f8d505e77343de3ba152a287
+         ASTERISK-25614 #close
 
-2015-10-24 13:08 +0000 [5f593e7c38]  gtjoseph <george.joseph@fairview5.com>
+         Change-Id: I547f1be7e302dbf71f6553dd8cbc0657b1d0b908
 
-       * build: GCC 5.1.x catches some new const, array bounds and missing paren issues
+2015-12-14 15:25 +0000 [36097a185d]  Richard Mudgett <rmudgett@digium.com>
 
-         Fixed 1 issue in each of the affected files.
+       * Fix sscanf() format string type mismatch.
 
-         ASTERISK-25494 #close
-         Reported-by: George Joseph
-         Tested-by: George Joseph
+         ASTERISK-25615
+         Reported by: George Joseph
 
-         Change-Id: I818f149cd66a93b062df421e1c73c7942f5a4a77
+         Change-Id: Ieff35307254ca193f3d473cff2e396ca57c7ce0b
 
-2015-10-20 16:02 +0000 [162acd45f7]  gtjoseph <george.joseph@fairview5.com>
+2015-12-13 13:13 +0000 [94f9927784]  Matt Jordan <mjordan@digium.com>
 
-       * res_pjsip:  Add "like" processing to pjsip list and show commands
+       * main/utils: Don't emit an ERROR message if the read end of a pipe closes
 
-         Add the ability to filter output from pjsip list and show commands
-         using the "like" predicate like chan_sip.
+         An ERROR or WARNING message should generally indicate that something has gone
+         wrong in Asterisk. In the case of writing to a file descriptor, Asterisk is not
+         in control of when the far end closes its reading on a file descriptor. If the
+         far end does close the file descriptor in an unclean fashion, this isn't a bug
+         or error in Asterisk, particularly when the situation can be gracefully
+         handled in Asterisk.
 
-         For endpoints, aors, auths, registrations, identifyies and transports,
-         the modification was a simple change of an ast_sorcery_retrieve_by_fields
-         call to ast_sorcery_retrieve_by_regex.  For channels and contacts a
-         little more work had to be done because neither of those objects are
-         true sorcery objects.  That was just removing the non-matching object
-         from the final container.  Of course, a little extra plumbing in the
-         common pjsip_cli code was needed to parse the "like" and pass the regex
-         to the get_container callbacks.
+         Currently, when this happens, a user would see the following somewhat cryptic
+         ERROR message:
 
-         Some of the get_container code in res_pjsip_endpoint_identifier was also
-         refactored for simplicity.
+           "utils.c: write() returned error: Broken pipe"
 
-         ASTERISK-25477 #close
-         Reported by: Bryant Zimmerman
-         Tested by: George Joseph
+         There's a few problems with this:
+         (1) It doesn't provide any context, other than 'something broke a pipe'
+         (2) As noted, it isn't actually an error in Asterisk
+         (3) It can get rather spammy if the thing breaking the pipe occurs often, such
+             as a FastAGI server
+         (4) Spammy ERROR messages make Asterisk appear to be having issues, or can even
+             mask legitimate issues
 
-         Change-Id: I646d9326b778aac26bb3e2bcd7fa1346d24434f1
+         This patch changes ast_carefulwrite to only log an ERROR if we actually had one
+         that was reasonably under our control. For debugging purposes, we still emit
+         a debug message if we detect that the far side has stopped reading.
 
-2015-10-21 11:51 +0000 [c58091737d]  Kevin Harwell <kharwell@digium.com>
+         Change-Id: Ia503bb1efcec685fa6f3017bedf98061f8e1b566
 
-       * res_pjsip_outbound_registration: registration stops due to fatal 4xx response
+2015-12-12 11:08 +0000 [5b867fa904]  gtjoseph <george.joseph@fairview5.com>
 
-         During outbound registration it is possible to receive a fatal (any permanent/
-         non-temporary 4xx, 5xx, 6xx) response from the registrar that is simply due
-         to a problem with the registrar itself. Upon receiving the failure response
-         Asterisk terminates outbound registration for the given endpoint.
+       * pjsip/config_transport: Check pjproject version at runtime for async ops
 
-         This patch adds an option, 'fatal_retry_interval', that when set continues
-         outbound registration at the given interval up to 'max_retries' upon receiving
-         a fatal response.
+         pjproject < 2.5.0 will segfault on a tls transport if async_operations
+         is greater than 1.  A runtime version check has been added to throw
+         an error if the version is < 2.5.0 and async_operations > 1.
 
-         ASTERISK-25485 #close
+         To assist in the check, a new api "ast_compare_versions" was added
+         to utils which compares 2 major.minor.patch.extra version strings.
 
-         Change-Id: Ibc2c7b47164ac89cc803433c0bbe7063bfa143a2
+         ASTERISK-25615 #close
 
-2015-10-22 17:07 +0000 [ebe69dee0d]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: I8e88bb49cbcfbca88d9de705496d6f6a8c938a98
+         Reported-by: George Joseph
+         Tested-by: George Joseph
 
-       * format_cap: Detect vector allocation failures.
+2015-12-10 11:44 +0000 [14b41115e3]  Jonathan Rose <jrose@digium.com>
 
-         A crash was seen on a system that ran out of memory due to Asterisk not
-         checking for vector allocation failures in format_cap.c. With this
-         change, if either of the AST_VECTOR_INIT calls fail, we will return a
-         value indicating failure.
+       * chan_sip: Add TCP/TLS keepalive to TCP/TLS server
 
-         Change-Id: Ieb9c59f39dfde6d11797a92b45e0cf8ac5722bc8
+         Adds the TCP Keep Alive option to TCP and TLS server sockets. Previously
+         this option was only being set on session sockets.
+         http://www.tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/
+         According to the link above, the SO_KEEPALIVE option is useful for knowing
+         when a TCP connected endpoint has severed communication without indicating
+         it or has become unreachable for some reason. Without this patch, keep
+         alive is not set on the socket listening for incoming TCP sessions and
+         in Komatsu's report this resulted in the thread listening for TCP becoming
+         stuck in a waiting state.
 
-2015-10-02 15:32 +0000 [3b19efefef]  Mark Michelson <mmichelson@digium.com>
+         ASTERISK-25364 #close
+         Reported by: Hiroaki Komatsu
 
-       * res_pjsip_pubsub: Prevent sending NOTIFY on destroyed dialog.
+         Change-Id: I7ed7bcfa982b367dc64b4b73fbd962da49b9af36
+2015-12-08 13:04 +0000 [fe8011cc50]  sungtae kim <pchero21@gmail.com>
 
-         A certain situation can result in our attempting to send a NOTIFY on a
-         destroyed dialog. Say we attempt to send a NOTIFY to a subscriber, but
-         that subscriber has dropped off the network. We end up retransmitting
-         that NOTIFY until the appropriate SIP timer says to destroy the NOTIFY
-         transaction. When the pjsip evsub code is told that the transaction has
-         been terminated, it responds in kind by alerting us that the
-         subscription has been terminated, destroying the subscription, and then
-         removing its reference to the dialog, thus destroying the dialog.
+       * AMI: Fixed OriginateResponse message
 
-         The problem is that when we get told that the subscription is being
-         terminated, we detect that we have not sent a terminating NOTIFY
-         request, so we queue up such a NOTIFY to be sent out. By the time that
-         queued NOTIFY gets sent, the dialog has been destroyed, so attempting to
-         send that NOTIFY can result in a crash.
+         When the asterisk sending OriginateResponse message,
+         it doesn't set the "Uniqueid".
+         And it didn't support correct response message for
+         Application originate.
 
-         The fix being introduced here is actually a reintroduction of something
-         the pubsub code used to employ. We hold a reference to the dialog and
-         wait to decrement our reference to the dialog until our subscription
-         tree object is destroyed. This way, we can send messages on the dialog
-         even if the PJSIP evsub code wants to terminate earlier than we would
-         like.
+         ASTERISK-25624 #close
 
-         In doing this, some NULL checks for subscription tree dialogs have been
-         removed since NULL dialogs are no longer actually possible.
+         Change-Id: I26f54f677ccfb0b7cfd4967a844a1657fd69b74d
 
-         Change-Id: I013f43cddd9408bb2a31b77f5db87a7972bfe1e5
+2015-12-09 09:48 +0000 [cd119ed4a2]  Tyler Cambron <tcambron@digium.com>
 
-2015-09-29 14:53 +0000 [0a346f095f]  Mark Michelson <mmichelson@digium.com>
+       * res_chan_stats: Fix bug to send correct statistics to StatsD
 
-       * res_pjsip_pubsub: Ensure dialog lock balance.
+         Fixed a bug that originally would show a negative number of
+         active calls occuring in Asterisk. A gauge is persistent so
+         incrementing and decrementing it results in a more consistent
+         performance. Also changed to the call to StatsD to use
+         ast_statsd_log_string() so that a "+" could be sent to StatsD.
 
-         When sending a NOTIFY, we lock the dialog and then unlock the dialog
-         when finished. A recent change made it so that the subscription tree's
-         dialog pointer will be set NULL when sending the final NOTIFY request
-         out. This means that when we attempt to unlock the dialog, we pass a
-         NULL pointer to pjsip_dlg_dec_lock(). The result is that the dialog
-         remains locked after we think we have unlocked it. When a response to
-         the NOTIFY arrives, the monitor thread attempts to lock the dialog, but
-         it cannot because we never released the dialog lock. This results in
-         Asterisk being unable to process incoming SIP traffic any longer.
+         ASTERISK-25619 #close
 
-         The fix in this patch is to use a local pointer to save off the pointer
-         value of the subscription tree's dialog when locking and unlocking the
-         dialog. This way, if the subscription tree's dialog pointer is NULLed
-         out, the local pointer will still have point to the proper place and the
-         dialog lock will be unlocked as we expect.
+         Change-Id: Iaaeff5c4c6a46535366b4d16ea0ed0ee75ab2ee7
 
-         Change-Id: I7ddb3eaed7276cceb9a65daca701c3d5e728e63a
+2015-12-07 13:07 +0000 [ddf4dddf4f]  Corey Farrell <git@cfware.com>
 
-2015-09-28 16:36 +0000 [ad39508095]  Mark Michelson <mmichelson@digium.com>
+       * app_meetme: Set default value for audio_buffers.
 
-       * res_pjsip_pubsub: Prevent crashes on final NOTIFY.
+         The default value was never set for audio_buffers, causing bad
+         audio quality.  This ensures the default is always set.
 
-         The SIP dialog is removed from the subscription tree when the final
-         NOTIFY is sent. However, after the final NOTIFY is sent, the persistence
-         update function still attempts to access the cseq from the dialog,
-         resulting in a crash.
+         ASTERISK-25569 #close
 
-         This fix removes the subscription persistence at the same time that the
-         dialog is removed from the subscription tree. This way, there is no
-         attempt to update persistence when the subscription is being destroyed.
+         Change-Id: I2d2ee3e644120b0f9f6ea6ab9286d7d590942a44
+2015-12-08 01:57 +0000 [142d4fefb8]  Filip Jenicek <phill@janevim.cz>
 
-         Change-Id: Ibb46977a6cef9c51dc95f40f43446e3d11eed5bb
+       * chan_sip: Check sip_pvt pointer in ast_channel_get_t38_state(c)
 
-2015-09-17 17:28 +0000 [067f408760]  Mark Michelson <mmichelson@digium.com>
+         Asterisk may crash when calling ast_channel_get_t38_state(c)
+         on a locked channel which is being hung up.
 
-       * res_pjsip_pubsub: Remove serializer when sending final NOTIFY.
+         ASTERISK-25609 #close
 
-         There have been crashes seen where a taskprocessor's listener is NULL
-         unexpectedly.
+         Change-Id: Ifaa707c04b865a290ffab719bd2e5c48ff667c7b
 
-         Looking at backtraces, the problem was specifically seen in PJSIP
-         serializers.
+2015-12-08 17:49 +0000 [21962dad93]  gtjoseph <george.joseph@fairview5.com>
 
-         Subscriptions make the mistake of removing a serializer from a dialog
-         during subscription tree destruction. Since subscription trees are
-         reference-counted, guaranteeing the circumstances behind the destruction
-         are not possible. This makes it so that the dialog serializer can be
-         removed while not holding the dialog lock. This makes it possible for
-         the distributor to get a pointer to the dialog serializer and have that
-         serializer get freed out from under it.
+       * res_pjsip:  Add existence and readablity checks for tls related files
 
-         The fix for this is to remove the serializer from a subscription dialog
-         when sending the final NOTIFY. This guarantees that the serializer is
-         removed with the dialog lock held. By doing this, we guarantee that if
-         the distributor gains access to the dialog's serializer, it will not be
-         possible for the serializer to get freed by another thread.
+         Both transport and endpoint now check for the existence and readability
+         of tls certificate and key files before passing them on to pjproject.
+         This will cause the object to not load rather than waiting for pjproject
+         to discover that there's a problem when a session is attempted.
 
-         Change-Id: I21f5dac33529f65cec45679bdace60670800ff66
+         NOTE: chan_sip also uses ast_rtp_dtls_cfg_parse but it's located
+         in build_peer which is gigantic and I didn't want to disturb it.
+         Error messages will emit but it won't interrupt chan_sip loading.
 
-2015-09-02 09:14 +0000 [1bcc592765]  Mark Michelson <mmichelson@digium.com>
+         ASTERISK-25618 #close
 
-       * res_pjsip_pubsub: Fix crash on destruction of empty subscription tree.
+         Change-Id: Ie43f2c1d653ac1fda6a6f6faecb7c2ebadaf47c9
+         Reported-by: George Joseph
+         Tested-by: George Joseph
 
-         If an old persistent subscription is recreated but then immediately
-         destroyed because it is out of date, the subscription tree will have no
-         leaf subscriptions on it. This was resulting in a crash when attempting
-         to destroy the subscription tree.
+2015-12-02 12:42 +0000 [28d9243079]  Eugene Voityuk <eugene@thirdlane.com>
 
-         A simple NULL check fixes this problem.
+       * chan_sip.c: Start ICE negotiation when response is sent or received.
 
-         Change-Id: I85570b9e2bcc7260a3fe0ad85904b2a9bf36d2ac
+         The current logic for ICE negotiation starts it
+         when receiving an SDP with ICE candidates. This is
+         incorrect as ICE negotiation can only start when each 
+         call party have at least one pair of local and remote 
+         candidate. Starting ICE negotiation early would result 
+         in negotiation failure and ultimately no audio.
 
-2015-09-01 15:47 +0000 [b3cc2bd7df]  Mark Michelson <mmichelson@digium.com>
+         This change makes it so ICE negotiation is only started
+         when a response with SDP is received or when a response
+         with SDP is sent.
 
-       * res_pjsip_pubsub: Solidify lifetime and ownership of objects.
+         ASTERISK-24146
 
-         There have been crashes and general instability seen in the pubsub code,
-         so this patch introduces three changes to increase the stability.
+         Change-Id: I55a632bde9e9827871b09141d82747e08379a8ca
+2015-12-08 11:03 +0000 [e03582a1c2]  gtjoseph <george.joseph@fairview5.com>
 
-         First, the ownership model for subscriptions has been modified. Due to
-         RLS, subscriptions are stored in memory as a tree structure. Prior to my
-         patch, the PJSIP subscription was the owner of the subscription tree.
-         When the PJSIP subscription told us that it was terminating, we started
-         destroying the subscription tree along with all of the individual leaf
-         subscriptions that belong to the tree. The problem with this model is
-         that the two actors in play here, the PJSIP subscription and the
-         individual leaf subscriptions, need to have joint ownership of the
-         subscription tree. So now, the PJSIP subscription and the individual
-         leaf subscriptions each have a reference to the subscription tree. This
-         way, we will not actually free memory until no players are left that
-         care. The PJSIP subscription is a bigger stakeholder, in that if the
-         PJSIP subscription's reference to the subscription tree is removed, the
-         subscription tree instructs the leaf subscriptions to shut down and drop
-         their references to the subscription tree when possible. The individual
-         leaf subscriptions, upon being told to shut down, can drop their stasis
-         subscriptions or whatever they use to learn of new state, and then drop
-         their reference to the subscription tree once they are ready to die.
+       * res_pjsip/config_transport: Prevent async_operations > 1 when protocol = tls
 
-         Second, the lifetime of a PJSIP subscription's reference to our
-         subscription tree has been altered. As I learned from doing a deep dive,
-         the PJSIP evsub code can tell Asterisk multiple times that the
-         subscription has been terminated, and not all of these times
-         are especially helpful. I have altered the message flow that we use for
-         SIP subscriptions such that we will always drop the PJSIP subscription's
-         reference to the subscription tree when we send the NOTIFY that
-         terminates a SIP subscription. This also means that we will now queue
-         NOTIFY requests to be sent after responding to incoming SUBSCRIBEs so
-         that we can have predictable state changes from the PJSIP evsub code.
+         See ASTERISK-25615.
+         If the transport protocol is tls and async_operations > 1, pjproject
+         will segfault if more than one operation is attempted on the same socket.
+         Until this is fixed upstream, a check has been added to throw an error
+         if a tls transport config has async_operations set to > 1.
 
-         Third, the synchronization of operations has been improved. PJSIP can
-         call into our code from a serializer thread (e.g. upon receiving an
-         incoming request) or from the monitor thread (e.g. when a subscription
-         times out). Because of this, there is the possibility of competing
-         threads stepping on each other. PJSIP attempts to do some
-         synchronization on its own by always keeping the dialog lock held when
-         it calls into us. However, since we end up pushing tasks into the
-         serializer, the result was that serialized operations were not grabbing
-         the dialog lock and could, as a result, step on something that was being
-         attempted by a different thread. Now we ensure that serialized
-         operations grab the dialog lock, then check for extenuating
-         circumstances, then proceed with their operation if they can.
+         ASTERISK-25615
 
-         Change-Id: Iff2990c40178dad9cc5f6a5c7f76932ec644b2e5
+         Change-Id: I76b9a5b2a5a0054fe71ca5851e635f2dca7685a6
+         Reported-by: George Joseph
+         Tested-by: George Joseph
 
-2015-10-19 15:28 +0000 [c8c65dfa41]  Richard Mudgett <rmudgett@digium.com>
+2015-12-08 08:39 +0000 [876600ce6e]  Alexander Traud <pabstraud@compuserve.com>
 
-       * strings.c: Fix __ast_str_helper() to always return a terminated string.
+       * codec_resample: Increase buffer for Opus Codec with FEC.
 
-         Users of functions which call __ast_str_helper() such as the ones listed
-         below are likely to not check the return value for failure so ensuring
-         that the string is always nil terminated is a good safety measure.
+         ASTERISK-25599 #close
 
-         ast_str_set_va()
-         ast_str_append_va()
-         ast_str_set()
-         ast_str_append()
+         Change-Id: Idbd187f711b2ec63dda949ca0f79aa0c1a0a0b6e
 
-         Change-Id: I36ab2d14bb6015868b49329dda8639d70fbcae07
+2015-12-08 03:46 +0000 [69e3d40ad7]  Alexander Traud <pabstraud@compuserve.com>
 
-2015-10-19 15:27 +0000 [b271d4a28a]  Richard Mudgett <rmudgett@digium.com>
+       * translate: Avoid a warning message when doing FEC within Opus Codec.
 
-       * Add missing failure checks to ast_str_set_va() callers.
+         ASTERISK-25616 #close
 
-         Change-Id: I0c2cdcd53727bdc6634095c61294807255bd278f
+         Change-Id: Ibe729aaf2e6e25506cff247cec5149ec1e589319
 
-2015-10-21 11:44 +0000 [f2725c8b77]  Joshua Colp <jcolp@digium.com>
+2015-12-04 15:36 +0000 [2b992014dc]  Richard Mudgett <rmudgett@digium.com>
 
-       * res_pjsip: Move URI validation to use time.
+       * chan_sip: Fix crash involving the bogus peer during sip reload.
 
-         In a realtime based system with a limited number of threadpool threads
-         it is possible for a deadlock to occur. This happens when permanent
-         endpoint state is updated, which will cause database queries to be done.
-         These queries may result in URI validation being done which is done
-         synchronously using a PJSIP thread. If all PJSIP threads are in use
-         processing traffic they themselves may be blocked waiting to get the
-         permanent endpoint container lock when identifying an endpoint.
+         A crash happens sometimes when performing a CLI "sip reload".  The bogus
+         peer gets refreshed while it is in use by a new call which can cause the
+         crash.
 
-         This change moves URI validation to occur at use time instead of
-         configuration time. While this comes at a cost of not seeing a problem
-         until you use it it does solve the underlying deadlock problem.
+         * Protected the global bogus peer object with an ao2 global object
+         container.
 
-         ASTERISK-25486 #close
+         ASTERISK-25610 #close
 
-         Change-Id: I2d7d167af987d23b3e8199e4a68f3359eba4c76a
+         Change-Id: I5b528c742195681abcf713c6e1011ea65354eeed
 
-2015-10-21 08:08 +0000 [84ff075d41]  Alexander Traud <pabstraud@compuserve.com>
+2015-12-06 16:32 +0000 [529535f0c2]  Matt Jordan <mjordan@digium.com>
 
-       * format: Update the maximum packetization time for iLBC 30.
+       * Revert "bridges/bridge_t38: Add a bridging module for managing T.38 state"
 
-         In September 2006, the maximum packetization time (ptime) were set to such a
-         low value, packetization was disabled for many codecs actually. This was fixed
-         for many codecs but not for iLBC 30. This enables packetization for iLBC which
-         can be enabled for example via allow=ilbc:60,gsm,alaw,ulaw in the file sip.conf.
+         This reverts commit 6614babea27fbafbe11820ea03737dd5c4f9ecec.
 
-         ASTERISK-7803
+         Unfortunately, using a bridge to manage T.38 state will cause severe deadlocks
+         in core_unreal/chan_local. Local channels attempt to reach across both their
+         peer and the peer's bridge to inspect T.38 state. Given the propensity of
+         Local channel chains, managing the locking situation in such a scenario is
+         practically infeasible.
 
-         Change-Id: I2ef90023d35efb7cb8fe96ed74f53f6846ffad12
-2015-10-21 09:51 +0000 [869ef2a8ee]  Alexander Traud <pabstraud@compuserve.com>
+         Change-Id: Ic687397ffea08dfb899345a443bd990ec3d0416a
 
-       * chan_sip: Fix autoframing=yes.
+2015-12-04 16:23 +0000 [450579e908]  gtjoseph <george.joseph@fairview5.com>
 
-         With Asterisk 13, the structures ast_format and ast_codec changed. Because of
-         that, the paketization timing (framing) of the RTP channel moved away from the
-         formats/codecs. In the course of that change, the ptime of the callee was not
-         honored anymore, when the optional autoframing was enabled.
+       * res_pjsip/contacts/statsd:  Make contact lifecycle events more consistent
 
-         ASTERISK-25484 #close
+         It will never be perfect or even pretty, mostly because of the differences
+         between static and dynamic contacts.
 
-         Change-Id: Ic600ccaa125e705922f89c72212c698215d239b4
+         Created:
 
-2015-10-20 22:24 +0000 [9fd2adc204]  Matt Jordan <mjordan@digium.com>
+         Can't use the contact or contact_status alloc functions
+         because the objects come and go regardless of the actual state.
 
-       * rest-api-templates: Wikify error code response reasons
+         Can't use the contact_apply_handler, ast_sip_location_add_contact or
+         a sorcery created handler because they only get called for dynamic
+         contacts.  Similarly, permanent_uri_handler only gets called for
+         static contacts.
 
-         Error response code descriptions may contain wiki markup that need to be
-         escaped. Without this patch, Confluence will reject the document being sent
-         and the responsible script will raise an exception.
+         So, Matt had it right. :)  ast_res_pjsip_find_or_create_contact_status is
+         the only place it can go and not have duplicated code.  Both
+         permanent_uri_handler and contact_apply_handler call find_or_create.
 
-         Change-Id: I21fcb66fee7f6332381f2b99b1b0195dff215ee5
+         Removed:
 
-2015-10-20 12:06 +0000 [72cbb6df55]  Matt Jordan <mjordan@digium.com>
+         Can't use the destructors for the same reason as above.  The only
+         place to put this is in persistent_endpoint_contact_deleted_observer
+         which I believe is the "correct" place but even that will handle only
+         dynamic contacts.  This doesn't called on shutdown however.  There is
+         no hook to use for static contacts that may be removed because of a
+         config change while asterisk is in operation.
 
-       * funcs/func_holdintercept: Actually add the HOLD_INTERCEPT function
+         I moved the cleanup of contact_status from ast_sip_location_delete_contact
+         to the handler as well.
 
-         When ab803ec342 was committed, it accidentally forgot to actually *add* the
-         HOLD_INTERCEPT function. This highlights two interesting points:
-         * Gerrit forces you to put the patch as it is going to into the repo up for
-           review, which Review Board did not. Yay Gerrit.
-         * No one apparently bothered to use this feature, or else they don't know about
-           it. I'm going to go with the latter explanation.
+         Status Change and RTT:
 
-         ASTERISK-24922
+         Although they worked fine where they were (in update_contact_status) I
+         moved them to persistent_endpoint_contact_status_observer to make it
+         more consistent with removed.  There was logic there already to detect
+         a state change.
 
-         Change-Id: Ida38278f259dd07c334a36f9b7d5475b5db72396
+         Finally, fixed a nit in permanent_uri_handler rmudgett reported
+         eralier.
 
-2015-10-19 19:59 +0000 [9fc9777fa3]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25608 #close
 
-       * contrib/scripts/autosupport: Update for Asterisk 13
+         Change-Id: I4b56e7dfc3be3baaaf6f1eac5b2068a0b79e357d
+         Reported-by: George Joseph
+         Tested-by: George Joseph
 
-         This patch adds some minor tweaks for autosupport to update it for Asterisk 13.
-         This includes:
-         * Finally removing most references to Zaptel
-         * Adding support for some additional 'core' commands, and fixing nomenclature
-           that generally hasn't been used for some time
-         * Adding some PJSIP/SIP commands to gather endpoints/peers and active channels
+2015-11-21 06:02 +0000 [5a18193dc0]  Alexander Traud <pabstraud@compuserve.com>
 
-         Change-Id: Ic997b418cbd9313588b6608e50f47b0ce6f4f1f1
+       * res_format_attr_vp8: In SDP, forward max-fr and max-fs for video-codec VP8.
 
-2015-10-14 14:15 +0000 [dc6ec661b3]  mdu113 <mulitskiy@acedsl.com>
+         ASTERISK-25584 #close
 
-       * res_config_pgsql.c: Fix deadlock loading realtime configuration.
+         Change-Id: Iae00071b4ff1ae76f24995aeac4d00284fd14f91
 
-         On v13, loading several thousand PJSIP endpoints on Asterisk start causes
-         a deadlock most of the time.
+2015-11-21 05:21 +0000 [3e2178c05e]  Alexander Traud <pabstraud@compuserve.com>
 
-         Thanks to mdu113 for discovering that there was a call to pgsql_exec() not
-         protected by the pgsql_lock reentrancy lock.
+       * res_format_attr_opus: Update to latest RFC 7587.
 
-         {quote}
-         I believe a code path exists that attempts to use pgsql connection without
-         locking pgsql_lock.  I believe what happens during that deadlock that I
-         see is two concurrent threads are both attempting to send query to pgsql,
-         one of the thread is using a code path without locking pgsql_lock.  If
-         they managed to send queries at the same time, it seems postgres ignores
-         one of the queries and replies only to the one of them.  If it happens so
-         that the thread holding the lock didn't receive the reply it will wait for
-         it (and hold the lock) forever (or at least for very long time), thus
-         completely blocking all access to db.
-         {quote}
+         Beside that, the format-attribute module sends only non-default values in the
+         line fmtp, now. This avoids unnecessary overhead in SDP messages. Furthermore,
+         previously the parameter stereo was not parsed when being the first parameter.
 
-         * Added missing reentrancy locking around pgsql_exec() in find_table().
+         ASTERISK-25583 #close
 
-         * Moved unlock of pgsql_lock in unload_module() to avoid locking inversion
-         between the psql_tables list lock and the pgsql_lock.
+         Change-Id: Iae85ba3e5960bfd5d51cf65bcffad00dd4875a73
+2015-12-02 14:11 +0000 [072d94183c]  Jonathan Rose <jrose@digium.com>
 
-         ASTERISK-25455 #close
-         Reported by:  mdu113
-         Patches:
-               res_config_pgsql.c-connlock2.diff (license #5543) patch uploaded by mdu113
+       * Fix crash in audiohook translate to slin
 
-         Change-Id: Id9e7cdf8a3b65ff19964b0cf942ace567938c4e2
+         This patch fixes a crash which would occur when an audiohook was
+         applied to a channel using an audio codec that could not be translated
+         to signed linear (such as when using pass-through codecs like OPUS or
+         when the codec translator module for the format in use is not loaded).
 
-2015-10-13 14:13 +0000 [f8707ae9a5]  Olle Johansson (License 5267)
+         ASTERISK-25498 #close
+         Reported by: Ben Langfeld
 
-       * channels/chan_sip: Set cause code to 44 on RTP timeout
+         Change-Id: Ib6ea7373fcc22e537cad373996136636201f4384
 
-         To quote Olle:
+2015-12-03 12:07 +0000 [9184fbeb34]  gtjoseph <george.joseph@fairview5.com>
 
-         "When issuing a hangup due to RTP timeouts the cause code is not set. I have
-         selected 44 based on Cisco's implementation..."
+       * res_pjsip: Use a MD5 hash for static Contact IDs
 
-         ASTERISK-25135 #close
-         Reported by: Olle Johansson
-         patches:
-           rtp-timeout-cause-1.8.diff uploaded by Olle Johansson (License 5267)
+         When 90d9a70789 was merged, it mostly tested dynamic contacts created as
+         a result of registering a PJSIP endpoint. Contacts generated in this
+         fashion typically have a long alphanumeric string as their object identifier,
+         which maps reasonably well for StatsD. Unfortunately, this doesn't work in the
+         general case. StatsD treats both '.' and ':' characters as special characters.
+         In particular, having a ':' appear in the middle of a StatsD metric will
+         result in the metric being rejected.
 
-         Change-Id: Ia62100c55077d77901caee0bcae299f8dc7375fc
+         This causes some obvious issues with SIP URIs.
 
-2015-10-10 15:20 +0000 [486b172b50]  Ivan Poddubny <ivan.poddubny@gmail.com>
+         The StatsD API should not be responsible for escaping the metric name passed
+         to it. The metric is treated as a single long string, and it would be
+         challenging to know what to escape in the string passed to the function.
+         Likewise, we don't want to escape the metric in PJSIP, as that involves
+         overhead that is wasted when either res_statsd isn't loaded or enabled.
 
-       * Build: Add menuselect options for using compiler sanitizers
+         This patch takes an alternative approach. The Contact ID has been changed
+         to be "aor@@uri_hash" instead of "aor@@uri". This (a) won't contain any of the
+         aforementioned special characters, (b) can be done on Contact creation,
+         which has minimal impact on run-time performance, and (c) also conforms to an
+         earlier commit that changed the ID for dynamic contacts.
 
-         This patch adds menuselect options for building Asterisk with
-         various sanitizers provided by gcc and clang.
+         The downside of this is that StatsD users will have to map SHA1 hashes back to
+         the Contacts that are emitting the statistics. To that end, the CLI commands
+         have been updated to include the first 10 characters of the MD5 hash, which
+         should be enough to match what is shown in Graphite (or some other StatsD
+         backend).
 
-         When one of *SANITIZER flags is set in menuselect, the appropriate
-         option is added to CFLAGS ad LDFLAGS for the build.
+         ASTERISK-25595 #close
 
-         Information on sanitizers in the project wiki:
-         https://github.com/google/sanitizers/wiki
+         Change-Id: Ic674a3307280365b4a45864a3571c295b48a01e2
+         Reported-by: Matt Jordan
+         Tested-by: George Joseph
 
-         GCC Manual:
-         https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
+2015-11-30 22:19 +0000 [ed9134282e]  gtjoseph <george.joseph@fairview5.com>
 
-         Clang Compiler User's Manual:
-         http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
+       * res_pjsip:  Update logging to show contact->uri in messages
 
-         ASTERISK-24718 #close
-         Reported by: Badalian Vyacheslav
+         An earlier commit changed the id of dynamic contacts to contain
+         a hash instead of the uri.  This patch updates status change
+         logging to show the aor/uri instead of the id.  This required
+         adding the aor id to contact and contact_status and adding
+         uri to contact_status.  The aor id gets added to contact and
+         contact_status in their allocators and the uri gets added to
+         contact_status in pjsip_options when the contact_status is
+         created or updated.
 
-         Change-Id: Iafa51b792b7bcb20e848b99d16cf362d08590fa0
+         ASTERISK-25598 #close
 
-2015-10-12 11:21 +0000 [e14023ca35]  Richard Mudgett <rmudgett@digium.com>
+         Reported-by: George Joseph
+         Tested-by: George Joseph
 
-       * config.c: Fix off-nominal memory leak.
+         Change-Id: I56cbec1d2ddbe8461367dd8b6da8a6f47f6fe511
 
-         Change-Id: I06e346e9a5c63cc5071e7eda537310c4b43bffe0
+2015-12-01 16:11 +0000 [eadad24b59]  Jonathan Rose <jrose@digium.com>
 
-2015-10-12 11:20 +0000 [a99e821520]  Richard Mudgett <rmudgett@digium.com>
+       * Unset BRIDGEPEER when leaving a bridge
 
-       * config.c: Fix potential memory corruption after [section](+).
+         Currently if a channel is transferred out of a bridge, the BRIDGEPEER
+         variable (also BRIDGEPVTCALLID) remain set even once the channel is
+         out of the bridge. This patch removes these variables when leaving
+         the bridge.
 
-         The memory corruption could happen if the [section](+) is the last section
-         in the file with trailing comments.  In this case process_text_line() has
-         left *last_cat is set to newcat and newcat is destroyed.
+         ASTERISK-25600 #close
+         Reported by: Mark Michelson
 
-         Change-Id: I0d1d999f553986f591becd000e7cc6ddfb978d93
+         Change-Id: I753ead2fffbfc65427ed4e9244c7066610e546da
 
-2015-10-12 11:21 +0000 [8d31d2526b]  Richard Mudgett <rmudgett@digium.com>
+2015-11-30 14:22 +0000 [bb0b60619d]  Richard Mudgett <rmudgett@digium.com>
 
-       * config.c: Fix #include after [section](+).
+       * res_sorcery_memory_cache.c: Fix off nominal ref leak.
 
-         An #include right after a [section](+) would associate any variable
-         assignments before a new section in the #include with the wrong section.
+         Change-Id: If83d63cf11cbc6df9b15251848b01feb570ade49
 
-         * Fix section association by setting the current section to the appended
-         section.
+2015-11-30 16:42 +0000 [e7c88e11aa]  Richard Mudgett <rmudgett@digium.com>
 
-         * Fix '+' and '!' section flag interaction corner case depending upon
-         which flag came first.  If the '!' came first then it would be ignored.
-         If the '!' came after then it would affect the appended section.  The '!'
-         will now no longer be ignored.
+       * sched.c: Make not return a sched id of 0.
 
-         ASTERISK-25461 #close
-         Reported by: Sean Pimental
+         According to the API doxygen a sched ID of 0 is valid.  Unfortunately, 0
+         was never returned historically and several users incorrectly coded usage
+         of the returned sched ID assuming that 0 was invalid.
 
-         Change-Id: Ic9d3191c8758048e2cbce6432f854b32531731c3
+         ASTERISK-25476
 
-2015-10-06 18:01 +0000 [3329c714f7]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ib19c7ebb44ec9fd393ef6646dea806d4f34e3a20
 
-       * res_pjsip: Fix deadlock when sending out-of-dialog requests.
+2015-11-25 12:23 +0000 [4aed349a7b]  Richard Mudgett <rmudgett@digium.com>
 
-         The struct send_request_wrapper has a pjsip lock associated with it that
-         is created non-recursive.  There is a code path for the struct
-         send_request_wrapper lock that will attempt to lock it recursively.  The
-         reporter's deadlock showed that the thread calling endpt_send_request()
-         deadlocked itself right after the wrapper object got created.
+       * Audit improper usage of scheduler exposed by 5c713fdf18f. (v13 additions)
 
-         Out-of-dialog requests such as MESSAGE, qualify OPTIONS, and unsolicited
-         MWI NOTIFY messages can hit this deadlock.
+         chan_sip.c:
+         * Initialize mwi subscription scheduler ids earlier because of ASTOBJ to
+         ao2 conversion.
 
-         * Replaced the struct send_request_wrapper pjsip lock with the mutex lock
-         that can come with an ao2 object since all of Asterisk's mutexes are
-         recursive.  Benefits include removal of code maintaining the pjsip
-         non-recursive lock since ao2 objects already know how to maintain their
-         own lock and the lock will show up in the CLI "core show locks" output.
+         * Initialize register scheduler ids earlier because of ASTOBJ to ao2
+         conversion.
 
-         ASTERISK-25435 #close
-         Reported by: Dmitriy Serov
+         chan_skinny.c:
+         * Fix more scheduler usage for the valid 0 id value.
 
-         Change-Id: I458e131dd1b9816f9e963f796c54136e9e84322d
+         ASTERISK-25476
 
-2015-10-06 11:05 +0000 [a1435aa3fa]  Stefan Engström <stefanen@kth.se>
+         Change-Id: If9f0e5d99638b2f9d102d1ebc9c5a14b2d706e95
 
-       * res/res_rtp_asterisk.c: Fix incorrect assignment of frame->subclass.frame_ending
+2015-11-24 12:44 +0000 [6d9156d10f]  Richard Mudgett <rmudgett@digium.com>
 
-         In ast_rtp_read, the value of the variable 'mark' which we try to assign to a
-         frame->subclass.frame_ending may be 0, 1 or (1<<23), but we should translate
-         it to 0 or 1.
+       * Audit improper usage of scheduler exposed by 5c713fdf18f.
 
-         ASTERISK-25451 #close
-         Change-Id: I53bdf5c026041730184a6a809009c028549ce626
+         channels/chan_iax2.c:
+         * Initialize struct chan_iax2_pvt scheduler ids earlier because of
+         iax2_destroy_helper().
 
-2015-10-07 01:24 +0000 [3357678b94]  Ivan Poddubny <ivan.poddubny@gmail.com>
+         channels/chan_sip.c:
+         channels/sip/config_parser.c:
+         * Fix initialization of scheduler id struct members.  Some off nominal
+         paths had 0 as a scheduler id to be destroyed when it was never started.
 
-       * func_presencestate: Return "not_set" when no data is set in AstDB
+         chan_skinny.c:
+         * Fix some scheduler id comparisons that excluded the valid 0 id.
 
-         Return AST_PRESENCE_NOT_SET when CustomPresence AstDB key does not
-         exist, i.e. when a new CustomPresence is added in the dialplan.
+         channel.c:
+         * Fix channel initialization of the video stream scheduler id.
 
-         ASTERISK-25400 #close
-         Reported by: Andrew Nagy
+         pbx_dundi.c:
+         * Fix channel initialization of the packet retransmission scheduler id.
 
-         Change-Id: I6fb17b16591b5a55fbffe96f3994ec26b1b1723a
+         ASTERISK-25476
 
-2015-10-06 20:43 +0000 [b714b2152d]  Matt Jordan <mjordan@digium.com>
+         Change-Id: I07a3449f728f671d326a22fcbd071f150ba2e8c8
 
-       * res/res_rtp_asterisk: Fix assignment after ao2 decrement
+2015-12-01 07:55 +0000 [b76c196e13]  Alexander Traud <pabstraud@compuserve.com>
 
-         When we decide we will no longer schedule an RTCP write, we remove the
-         reference to the RTP instance, then assign -1 to the stored scheduler ID
-         in case something else comes along and wants to see if anything is scheduled.
+       * codec_resample: Increase buffer for Opus Codec.
 
-         That scheduler ID is on the RTP instance. After 60a9172d7ef2 was merged to
-         fix the regression introduced by 3cf0f29310, this improper assignment on a
-         potentially destroyed object started getting tripped on the build agents.
+         ASTERISK-25599 #close
 
-         Frankly, this should have been crashing a lot more often earlier. I can only
-         assume that the timing was changed just enough by both changes to start
-         actually hitting this problem.
+         Change-Id: I1f88a88c59fb4e1e62bbdbb100c7152d48e73f10
 
-         As it is, simply moving the assignment prior to the ao2 deference is sufficient
-         to keep the RTP instance from being referenced when it is very, truly,
-         aboslutely dead.
+2015-11-28 08:46 +0000 [6614babea2]  Matt Jordan <mjordan@digium.com>
 
-         (Note that it is still good practice to assign -1 to the scheduler ID when we
-         know we won't be scheduling it again, as the ao2 deref *may* not always destroy
-         the ao2 object.)
+       * bridges/bridge_t38: Add a bridging module for managing T.38 state
 
-         ASTERISK-25449
+         When 4875e5ac32 was merged, it fixed several issues with a direct media bridge
+         transitioning to handling a T.38 fax. However, it uncovered a race condition
+         caused by the bridging core. When a channel involved in a T.38 fax leaves a
+         bridge, the frame queued by the channel driver that should inform the far side
+         that it is no longer in a T.38 fax may not make it across the bridge. The
+         bridging framework is *extremely* aggressive in tearing down the bridge, and
+         control frames that are currently in flight *may* get dropped.
 
-         Change-Id: Ie6d3cb4adc7b1a6c078b1c38c19fc84cf787cda7
+         This patch adds a new module to the bridging framework, bridge_t38. This module
+         maintains some notion of the T.38 state for the two channels in a bridge. When
+         the bridge detects that it is being torn down or when one of the two channels
+         leaves, it informs the respective channel(s) that they should stop faxing. This
+         ensures that channels switch back to audio if they survive and are ejected out
+         of a bridge while faxing.
 
-2015-10-06 12:40 +0000 [f939e2bd48]  Florian Sauerteig <ffs@ccn.net>
+         ASTERISK-25582
 
-       * chan_sip: Fix port parsing for IPv6 addresses in SIP Via headers.
+         Change-Id: If5b0bb478eb01c4607c9f4a7fc17c7957d260ea0
 
-         If a Via header containes an IPv6 address and a port number is ommitted,
-         as it is the standard port, we now leave the port empty and to not set it
-         to the value after the first colon of the IPv6 address.
+2015-11-27 07:39 +0000 [3fcf160fae]  Niklas Larsson <niklas@tese.se>
 
-         ASTERISK-25443 #close
+       * CHANGES: Fix a typo
 
-         Change-Id: Ie3c2f05471cd006bf04ed15598589c09577b1e70
+         Change-Id: Iceb3d9bb78140c376174a7bee197dfcf8ef9cda7
+2015-11-25 15:26 +0000 [45efbf8503]  Kevin Harwell <kharwell@digium.com>
 
-2015-10-05 16:53 +0000 [426263a64d]  Richard Mudgett <rmudgett@digium.com>
+       * fastagi: record file closed after sending result
 
-       * chan_pjsip: Fix crash on reINVITE before initial INVITE completes.
+         The fastagi record-file testsuite test sometimes fails reporting an empty
+         recorded file. This was happening because Asterisk was sending the agi result
+         notification prior to actually closing the file and the data, being buffered,
+         had not been written to the file yet when the test attempts to check the file
+         size.
 
-         Apparently some endpoints attempt to send a reINVITE before completing the
-         initial INVITE transaction.  In this case PJSIP responds appropriately to
-         the reINVITE with a 491 INVITE request pending.  Unfortunately chan_pjsip
-         is using the initial INVITE transaction state to determine if an INVITE is
-         the initial INVITE or a reINVITE.  Since the initial INVITE transaction
-         has not been confirmed yet chan_pjsip thinks the reINVITE is an initial
-         INVITE and starts another PBX thread on the channel.  The extra PBX thread
-         ensures that hilarity ensues.
+         This patch makes it so the record file stream is closed prior to sending the
+         agi result notification.
 
-         * Fix checks for a reINVITE on incoming requests to look for the presence
-         of a to-tag instead of the initial INVITE transaction state.
+         ASTERISK-25593 #close
 
-         * Made caller_id_incoming_request() determine what to do if there is a
-         channel on the session or not.  After a channel is created it is too late
-         to just store the new party id on the session because the session's party
-         id has already been copied to the channel's caller id.
+         Change-Id: I6b2b3be3ae37f7c7b18e672c419a89b3b8513cde
 
-         ASTERISK-25404 #close
-         Reported by: Chet Stevens
+2015-11-25 13:29 +0000 [b2787876d6]  Walter Doekes <walter+asterisk@wjd.nu>
 
-         Change-Id: Ie78201c304a2b13226f3a4ce59908beecc2c68be
+       * main: Slight refactor of main. Improve color situation.
 
-2015-10-05 21:34 +0000 [50fa9ff997]  Matt Jordan <mjordan@digium.com>
+         Several issues are addressed here:
+         - main() is large, and half of it is only used if we're not rasterisk;
+           fixed by spliting up the daemon part into a separate function.
+         - Call ast_term_init from rasterisk as well.
+         - Remove duplicate code reading/writing asterisk history file.
+         - Attempt to tackle background color issues and color changes that
+           occur. Tested by starting asterisk -c until the colors stopped
+           changing at odd locations.
 
-       * Fix improper usage of scheduler exposed by 5c713fdf18f
+         ASTERISK-25585 #close
 
-         When 5c713fdf18f was merged, it allowed for scheduled items to have an ID of
-         '0' returned. While this was valid per the documentation for the API, it was
-         apparently never returned previously. As a result, several users of the
-         scheduler API viewed the result as being invalid, causing them to reschedule
-         already scheduled items or otherwise fail in interesting ways.
-
-         This patch corrects the users such that they view '0' as valid, and a returned
-         ID of -1 as being invalid.
-
-         Note that the failing HEP RTCP tests now pass with this patch. These tests
-         failed due to a duplicate scheduling of the RTCP transmissions.
+         Change-Id: Ib641a0964c59ef9fe6f59efa8ccb481a9580c52f
 
-         ASTERISK-25449 #close
+2015-11-24 13:54 +0000 [59881fbb99]  David M. Lee <dlee@respoke.io>
 
-         Change-Id: I019a9aa8b6997584f66876331675981ac9e07e39
-2015-08-26 16:58 +0000 [8f777ab584]  Debian Amtelco <dan@amtelco.com>
+       * Fixed some typos
 
-       * chan_pjsip: Add Referred-By header to the PJSIP REFER packet.
+         Fixes some minor typos in the CHANGES file, plus an embarrasing typo in
+         the StatsD API.
 
-         Some systems require the REFER packet to include a Referred-By header.
-         If the channel variable SIPREFERREDBYHDR is set, it passes that value as the
-         Referred-By header value.  Otherwise, it adds the current dialog’s local info.
+         Change-Id: I9ca4858c64a4a07d2643b81baa64baebb27a4eb7
 
-         Reported by: Dan Cropp
-         Tested by: Dan Cropp
+2015-11-24 13:07 +0000 [b75f587d15]  Corey Farrell <git@cfware.com>
 
-         Change-Id: I3d17912ce548667edf53cb549e88a25475eda245
+       * res_pjsip_notify: Fix CLI usage info
 
-2015-10-03 06:27 +0000 [74635b5638]  Ivan Poddubny <ivan.poddubny@gmail.com>
+         The usage info for 'pjsip send notify' previously referenced the
+         chan_sip configuration sip_notify.conf.  Fix this to reference
+         the correct configuration pjsip_notify.conf.
 
-       * manager: Fix GetConfigJSON returning invalid JSON
+         ASTERISK-25590 #close
 
-         When GetConfigJSON was introduced back in 1.6, it returned each
-         section as an array of strings: ["key=value", "key2=value2"].
-         Afterwards, it was changed a few times and became
-         ["key": "value", "key2": "value2"], which is not a correct JSON.
-         This patch fixes that by constructing a JSON object {} instead of
-         an array [].
+         Change-Id: I3898271a8e8a8b1db201741e790ebe2c6bf5cdea
 
-         Also, the keys "istemplate" and "tempates" that are used to
-         indicate templates and their inherited categories are now wrapped in
-         quotes.
+2015-11-23 14:27 +0000 [fc45f4040d]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25391 #close
-         Reported by: Bojan Nemčić
+       * res_sorcery_realtime.c: Fix crash from NULL sorcery object type.
 
-         Change-Id: Ibbe93c6a227dff14d4a54b0d152341857bcf6ad8
+         If the sorcery object type is not found a NULL is returned.
+         Unfortunately, sorcery_realtime_filter_objectset() will crash after
+         complaining about not finding the object type and saying to expect errors.
 
-2015-09-30 17:28 +0000 [40c69e78f5]  Richard Mudgett <rmudgett@digium.com>
+         * Use ao2_cleanup() instead of ao2_ref() to prevent the crash.
 
-       * res_sorcery_memory_cache.c: Fix deadlock with scheduler.
+         ASTERISK-25165
+         Reported by Corey Farrell
 
-         A deadlock can happen when a sorcery object is being expired from the
-         memory cache when at the same time another object is being placed into the
-         memory cache.  There are a couple other variations on this theme that
-         could cause the deadlock.  Basically if an object is being expired from
-         the sorcery memory cache at the same time as another thread tries to
-         update the next object expiration timer the deadlock can happen.
+         Change-Id: Ic3b64453ea3058cb68d5c26d97d4fe7b8eea2e97
 
-         * Add a deadlock avoidance loop in expire_objects_from_cache() to check if
-         someone is trying to remove the scheduler callback from the scheduler.
+2015-11-20 21:08 +0000 [4875e5ac32]  Matt Jordan <mjordan@digium.com>
 
-         ASTERISK-25441 #close
+       * chan_pjsip: Handle T.38 faxes with direct media bridges
 
-         Change-Id: Iec7b0bdb81a72b39477727b1535b2539ad0cf4dc
+         When a channel is in a direct media bridge, a re-INVITE may arrive that forces
+         Asterisk to re-negotiate the media to a T.38 fax. When this occurs, the bridge
+         must change its technology to a simple bridge, and re-INVITE the media back
+         to Asterisk.
 
-2015-10-01 14:30 +0000 [dfeb513e85]  Richard Mudgett <rmudgett@digium.com>
+         Generally, this logic mostly already exists in Asterisk. However, prior to this
+         patch, there were a few bugs:
+         (1) The T.38 framehook currently prevents a channel capable of T.38 faxes from
+             ever entering into a direct media bridge. This applies even when the only
+             media being passed over the channel is audio. This patch fixes this bug
+             by having the framehook specify that it defers caring about any frame type.
+             This allows the channels to enter into a direct media bridge, which will
+             be broken when a re-INVITE is received.
+         (2) When a re-INVITE is received, nothing instructed the bridging layer to
+             re-inspect the allowed bridging technology. This now occurs when either
+             a re-INVITE is received from a peer, or when a response is received from
+             the far end (that is, when the T.38 state changes to either
+             T38_PEER_REINVITE or T38_LOCAL_REINVITE).
+         (3) chan_pjsip needs to do a small amount of work to prevent a direct media
+             bridge from being chosen when a T.38 session is in progress. When a T.38
+             session supplement has a t38 datastore - which is added when we detect
+             we should start thinking about T.38 on a channel - we now refuse a native
+             RTP bridge.
+         (4) When a BYE request is received, we don't terminate the T.38 session. If
+             the other side of a T.38 fax survives the hangup (due to the 'g' flag
+             in Dial, for example), we don't currently re-INVITE the media on the
+             other channel back to audio. This patch now has res_pjsip_t38 intercept
+             BYE requests and inform the far side that the T.38 session is terminated.
+             This naturally causes the correct re-INVITEs to be sent.
 
-       * res_sorcery_memory_cache.c: Replace inline code with function.
+         ASTERISK-25582
 
-         Make sorcery_memory_cache_close() call remove_all_from_cache() instead of
-         partially inlining it.
+         Change-Id: Iabd6aa578e633d16e6b9f342091264e4324a79eb
 
-         ASTERISK-25441
+2015-11-20 21:07 +0000 [2b94d9a10d]  Matt Jordan <mjordan@digium.com>
 
-         Change-Id: I1aa6cb425b1a4307096f3f914d17af8ec179a74c
+       * res/res_pjsip_t38: Add debug statements
 
-2015-10-01 14:27 +0000 [ced0a2d71b]  Richard Mudgett <rmudgett@digium.com>
+         This patch adds some debug statements to res_pjsip_t38. These statements help
+         to determine which SDP negotiation callbacks are being executed, and, when
+         a particular callback exits, why a callback may not have applied its logic
+         to the local or remote SDP.
 
-       * res_sorcery_memory_cache.c: Shutdown in a less crash potential order.
+         Change-Id: I61b3fb9183b7ebbb5da8e9f48b59a5d9d7042d77
 
-         Basically you should shutdown in the opposite order of how you setup since
-         later setup pieces likely depend on earlier setup pieces.  e.g.,
-         Registering your external API with the rest of the system should be the
-         last thing setup and the first thing unregistered during shutdown.
+2015-10-22 09:44 +0000 [af288b2d96]  Matt Jordan <mjordan@digium.com>
 
-         Change-Id: I5715765b723100c8d3c2642e9e72cc7ad5ad115e
+       * main/cli: Use proper string methods to check existence of context/exten/app
 
-2015-09-30 17:27 +0000 [cc279eea11]  Richard Mudgett <rmudgett@digium.com>
+         Because the context, extension, and application are stored in stringfields,
+         checking for them being NULL doesn't work so well. This patch uses the
+         appropriate string library call, ast_strlen_zero, to see if there is a value
+         in the context/exten/app values.
 
-       * res_sorcery_memory_cache.c: Misc tweaks.
+         Change-Id: Ie09623bfdf35f5a8d3b23dd596647fe3c97b9a23
 
-         Change-Id: I8cd32dffbb4f33bb0c39518d6e4c991e73573160
+2015-11-18 09:43 +0000 [d27aac0a9d]  Matt Jordan <mjordan@digium.com>
 
-2015-09-30 17:27 +0000 [9af3b613f6]  Richard Mudgett <rmudgett@digium.com>
+       * res/res_endpoint_stats: Add module to emit endpoint StatsD statistics
 
-       * res_sorcery_memory_cache.c: Made use OBJ_SEARCH_MASK.
+         This patch adds a module that emits StatsD statistics about Asterisk
+         endpoints. This includes:
+          * A GUAGE statistic for endpoint states, tracking how many endpoints are in
+            a particular state.
+          * A GUAGE statistic for each endpoint, counting the number of channels
+            currently associated with an endpoint.
 
-         Change-Id: Ibca6574dc3c213b29cc93486e01ccd51f5caa46c
+         ASTERISK-25572
 
-2015-09-30 13:42 +0000 [56ed7b9dd5]  Joshua Colp <jcolp@digium.com>
+         Change-Id: If7e1333c5aeda8d136850b30c2101c0ee1c97305
 
-       * res_rtp_asterisk: Move "Set role" warning to be debug.
+2015-11-18 10:07 +0000 [90d9a70789]  Matt Jordan <mjordan@digium.com>
 
-         In practice the set_role API callback can be invoked even
-         when no ICE is present on an RTP instance. This can occur
-         if ICE has not been enabled on it.
+       * res_pjsip/pjsip_options: Add StatsD statistics for PJSIP contacts
 
-         ASTERISK-25438 #close
+         This patch adds the ability to send StatsD statistics related to the
+         state of PJSIP contacts. This includes:
+          * A GUAGE statistic measuring the count of contacts in a particular state.
+            This measures how many contacts are reachable, unreachable, etc.
+          * The RTT time for each contact, if those contacts are qualified. This
+            provides StatsD engines useful time-based data about each contact.
 
-         Change-Id: I0e17e4316f0f0d7f095c78c3d4fd73a913b6ba69
+         ASTERISK-25571
 
-2015-09-28 15:31 +0000 [ddebb217f0]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ib8378d73afedfc622be0643b87c542557e0b332c
 
-       * sched.c: Add warning about negative time interval request.
+2015-11-13 10:34 +0000 [75097a0955]  Matt Jordan <mjordan@digium.com>
 
-         Change-Id: Ib91435fb45b7f5f7c0fc83d0eec20b88098707bc
+       * res/res_pjsip_outbound_registration: Add registration statistics for StatsD
 
-2015-09-29 21:15 +0000  Asterisk Development Team <asteriskteam@digium.com>
+         This patch adds outbound registration statistics for StatsD. This includes
+         the following:
+          * A GUAGE metric for the overall count of outbound registrations.
+          * A GUAGE metric for each state an outbound registration can be in. As the
+            outbound registrations change state, the overall count of how many
+            outbound registrations are in the particular state is changed.
 
-       * asterisk 13.6.0-rc1 Released.
+         These statistics are particularly useful for systems with a large number of
+         SIP trunks, and where measuring the change in state of the trunks is useful
+         for monitoring.
 
-2015-09-29 16:12 +0000 [bba1c4066b]  Kevin Harwell <kharwell@lunkwill>
+         ASTERISK-25571
 
-       * Release summaries: Add summaries for 13.6.0-rc1
+         Change-Id: Iba6ff248f5d1c1e01acbb63e9f0da1901692eb37
 
-2015-09-29 16:08 +0000 [82c4aecdbb]  Kevin Harwell <kharwell@lunkwill>
+2015-11-19 09:40 +0000 [8f71263e72]  Matt Jordan <mjordan@digium.com>
 
-       * .version: Update for 13.6.0-rc1
+       * res/res_pjsip_outbound_registration: Apply configuration on object type load
 
-2015-09-29 16:08 +0000 [bc18db7388]  Kevin Harwell <kharwell@lunkwill>
+         When Asterisk is configured to use a dynamic sorcery backend (such as
+         res_sorcery_astdb) with 'registration' objects, it will fail to create the
+         internal state objects associated with the registration objects on module
+         load. This is due to nothing actually querying for the specific objects
+         and calling their sorcery apply handler during module load.
 
-       * .lastclean: Update for 13.6.0-rc1
+         This patch fixes that by calling get_registrations in the sorcery observer's
+         object_type_loaded handler. Doing this causes the sorcery backends to be
+         asked for the current state of all registration objects, which causes the
+         apply handler to be called and the internal run-time state to be created.
 
-2015-09-29 16:08 +0000 [b9c53f95e3]  Kevin Harwell <kharwell@lunkwill>
+         ASTERISK-25575 #close
 
-       * realtime: Add database scripts for 13.6.0-rc1
+         Change-Id: Ie9306e797098c6d4da7bcf4a5434a15891508b23
 
-2015-09-29 14:53 +0000 [d30939b6e8]  Kevin Harwell <kharwell@digium.com>
+2015-11-11 11:51 +0000 [0b508789ab]  Alexander Traud <pabstraud@compuserve.com>
 
-       * ARI: Changed version from 1.8.0 to 1.9.0
+       * translate: Provide translation modules the result of SDP negotiation.
 
-         Change-Id: I510991c60d28d171f47c4b58bba4947f7fc71b13
+         Previously, a trancoding module did not have access to the joint but cached
+         format. Therefore, the module did not have access to the attributes negotiated
+         via SDP (line fmtp). Now, a translation module receives the joint format.
 
-2015-09-25 18:37 +0000 [5f19c9bade]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25545 #close
 
-       * res/ari/config.c: Fix user sort compare function.
+         Change-Id: Id6878a989b50573298dab115d3371ea369e1a718
 
-         Made use the ao2 sort compare template function and OBJ_SEARCH_xxx
-         identifiers.
+2015-11-19 01:14 +0000 [1aa552b2a2]  Alexander Traud <pabstraud@compuserve.com>
 
-         Change-Id: Ic53005dc5aafa7a36c72300dd89b75fb63c92f4c
+       * res_format_attr_h264: Do not reset string buffer.
 
-2015-09-25 17:26 +0000 [3a85764039]  Richard Mudgett <rmudgett@digium.com>
+         When no parameter is present, Asterisk does not generate the line fmtp, as
+         expected. However, because a buffer was reset, even rtpmap and fmtp of previous
+         media codecs got removed. Now, Asterisk does not reset other codecs in case of
+         no parameter for H.264.
 
-       * res/ari/config.c: Optimize conf_alloc() object init.
+         ASTERISK-25573 #close
 
-         * Now conf_alloc() has more off nominal error checking.
+         Change-Id: I93811331f4a28c45418a9e14ee46c0debd47a286
 
-         * Eliminated RAII_VAR() use in conf_alloc().
+2015-11-18 10:05 +0000 [3354b325c6]  Matt Jordan <mjordan@digium.com>
 
-         * Eliminated a dubius shortcut when destroying cfg->general in
-         conf_destructor() that would cause a crash if cfg->general failed to get
-         allocated.
+       * res_statsd: Add functions that support variable arguments
 
-         * Add some ACO registration section comments.
+         Often, the metric names of statistics we are generating for StatsD have some
+         dynamic component to them. This can be the name of a particular resource, or
+         some internal status label in Asterisk. With the current set of functions,
+         callers of the statsd API must first build the metric name themselves, then
+         pass this to the API functions. This results in a large amount of boilerplate
+         code and usage of either fixed length static buffers or dynamic memory
+         allocation, neither of which is desireable.
 
-         Change-Id: Ia40c2b1b2d0777d641605118ae019c5a73865e1a
+         This patch adds two new functions to the StatsD API that support a printf
+         style format specifier for constructing the metric name. A dynamic string,
+         allocated in threadstorage, is used to build the metric name. This eases
+         the burden on users of the StatsD API.
 
-2015-09-25 16:48 +0000 [028033e5a8]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: If533c72d1afa26d807508ea48b4d8c7b32f414ea
 
-       * res/ari/config.c: Fix conf_alloc() object init.
+2015-11-17 14:53 +0000 [d4a522d587]  Richard Mudgett <rmudgett@digium.com>
 
-         Need to finish initializing the string fields in the ao2 object before
-         putting any default strings into them.
+       * res_pjsip_outbound_registration.c: Be tolerant of short registration timeouts.
 
-         ASTERISK-25383 #close
-         Reported by:  yaron nahum
+         Change-Id: Ie16f5053ebde0dc6507845393709b4d6a3ea526d
 
-         Change-Id: I9f7f3a03f0c4991a01593abf8697b9a587c0ea84
+2015-11-17 14:53 +0000 [e44ab3816c]  Richard Mudgett <rmudgett@digium.com>
 
-2015-09-27 20:45 +0000 [90165e306d]  Matt Jordan <mjordan@digium.com>
+       * res_pjsip_outbound_registration.c: Fix 423 response handling.
 
-       * res/res_stasis: Fix accidental subscription to 'all' bridge topic
+         Receiving a 423 Interval Too Brief response after authentication for an
+         outbound registration attempt results in assuming that the registrar has
+         rejected the registration permanently.  If there are no configured retries
+         for fatal responses then the outbound registration is stopped for that
+         endpoint.
 
-         When b99a7052621700a1aa641a1c24308f5873275fc8 was merged, subscribing to a
-         NULL bridge will now cause app_subscribe_bridge to implicitly subscribe to
-         all bridges. Unfortunately, the res_stasis control loop did not check that
-         a bridge changing on a channel's control object was actually also non-NULL.
-         As a result, app_subscribe_bridge will be called with a NULL bridge when a
-         channel leaves a bridge. This causes a new subscription to be made to the
-         bridge. If an application has also subscribed to the bridge, the application
-         will now have two subscriptions:
-         (1) The explicit one created by the app
-         (2) The implicit one accidentally created by the control structure
+         For registrations, PJSIP/PJPROJECT intercepts the handling of 423
+         responses and does not include any authentication in the updated
+         registration request.  When the updated request is challenged then the
+         Asterisk code assumes that we were challenged again because the peer
+         rejected the authentication we sent earlier.
 
-         As a result, the 'BridgeDestroyed' event can be sent multiple times. This
-         patch corrects the control loop such that it only subscribes an application
-         to a new bridge if the bridge pointer is non-NULL.
+         * Made registration challenges keep track of the CSeq number to determine
+         if the received challenge response was for the request we thought we sent.
+         If the response's CSeq number differs from the CSeq number we last sent
+         with authentication then authenticate again because it is a challenge to a
+         different request.
 
-         ASTERISK-24870
+         Change-Id: I81b4bd36d1be095bab606e34b8b44e6302971b09
 
-         Change-Id: I3510e55f6bc36517c10597ead857b964463c9f4f
+2015-11-03 14:36 +0000 [1e0040b88f]  Tyler Cambron <tcambron@digium.com>
 
-2015-09-04 13:51 +0000 [e1223ff6db]  Scott Griepentrog <scott@griepentrog.com>
+       * StatsD: Add res_statsd compatibility
 
-       * Scripts: check file versions of Asterisk and dependencies
+         Added a new api to res_statsd.c to allow it to receive a
+         character pointer for the value argument. This allows for a
+         '+' and a '-' to easily be sent with the value.
 
-         To help in diagnosing mismatched modules and libraries, this
-         script scans for version, repository, and source information
-         and reports what is found.
+         ASTERISK-25419
+         Reported By: Ashley Sanders
 
-         ASTERISK-25376 #close
-         Reported by: Ashley Sanders
+         Change-Id: Id6bb53600943d27347d2bcae26c0bd5643567611
 
-         Change-Id: Ib0642d0fb96712476f59760d6d137a24633fe2d6
+2015-11-16 13:56 +0000 [f62b642fe3]  Matt Jordan <mjordan@digium.com>
 
-2015-09-24 14:56 +0000 [6b1e7583c1]  Richard Mudgett <rmudgett@digium.com>
+       * res/res_pjsip: Fix off nominal crash with requests that fail and have a timer
 
-       * app_queue.c: Force COLP update if outgoing channel name changed.
+         When a request is sent using pjsip_endpt_send_request and fails, a condition
+         exists where the request wrapper, which is an AO2 object, may be de-ref'd
+         more times than it should. This occurs when the request's callback is called,
+         and, in the callback, the timer on the PJSIP heap is cancelled. When that
+         occurs, the request wrapper's lifetime is decremented. When
+         pjsip_endpt_send_request fails, we unilaterally decrement the lifetime of
+         the request wrapper again, even though we've already cancelled the reference
+         associated with the timer.
 
-         * When a call is answered and the outgoing channel name has changed then
-         force a connected line update because the channel is no longer the same.
-         The channel was masqueraded into by another channel.  This is usually
-         because of a call pickup.
+         This patch checks the return result of pj_timer_heap_cancel_if_active before
+         removing the reference associated with the timer. We now only decrement it
+         in this case if a timer is cancelled as a result of the function call.
 
-         Note: Forwarded calls are handled in a controlled manner so the original
-         channel name is replaced with the forwarded channel.
+         Change-Id: I21332343a1a019c1117076f9bf2df27be2850102
 
-         ASTERISK-25423 #close
-         Reported by: John Hardin
+2015-11-13 14:03 +0000 [fdd2afcd16]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: Ie275ea9e99c092ad369db23e0feb08c44498c172
+       * Confbridge: Add a user timeout option
 
-2015-09-24 14:20 +0000 [6bf304bf25]  Richard Mudgett <rmudgett@digium.com>
+         This option adds the ability to specify a timeout, in seconds, for a
+         participant in a ConfBridge. When the user's timeout has been reached,
+         the user is ejected from the conference with the CONFBRIDGE_RESULT
+         channel variable set to "TIMEOUT".
 
-       * app_queue.c: Factor out a connected line update routine.
+         The rationale for this change is that there have been times where we
+         have seen channels get "stuck" in ConfBridge because a network issue
+         results in a SIP BYE not being received by Asterisk. While these
+         channels can be hung up manually via CLI/AMI/ARI, adding some sort of
+         automatic cleanup of the channels is a nice feature to have.
 
-         Replace inlined code with update_connected_line_from_peer().
+         ASTERISK-25549 #close
+         Reported by Mark Michelson
 
-         ASTERISK-25423
-         Reported by: John Hardin
+         Change-Id: I2996b6c5e16a3dda27595f8352abad0bda9c2d98
 
-         Change-Id: I33bbd033596fcb0208d41d8970369b4e87b806f3
+2015-11-16 04:29 +0000 [7debb986a5]  Alec Davis <sivad.a@paradise.net.nz>
 
-2015-09-24 13:27 +0000 [e36b5f1e8e]  Richard Mudgett <rmudgett@digium.com>
+       * app_queue: (try_calling): mutex 'qe->chan' freed more times than we've locked!
 
-       * app_dial.c: Make 'A' option pass COLP updates.
+         commit aae45acbd (Mark Michelson 2015-04-15 10:38:02 -0500 6525)
+         refer ASTERISK-24958
 
-         While the 'A' option is playing the announcement file allow the caller and
-         peer to exchange COLP update frames.
+         above commit removed ast_channel_lock(qe->chan);
+         but failed to remove corresponding ast_channel_unlock(qe->chan);
 
-         ASTERISK-25423
-         Reported by: John Hardin
+         ASTERISK-25561 #close
+         Reported Alec Davis
 
-         Change-Id: Iac6cf89b56d26452c6bb88e9363622bbf23895f9
+         Change-Id: Ie05f4e2d08912606178bf1fded57cc022c7a2e1a
 
-2015-09-24 12:59 +0000 [747bfac895]  Richard Mudgett <rmudgett@digium.com>
+2015-11-14 07:02 +0000 [afd9a89e5a]  Joshua Colp <jcolp@digium.com>
 
-       * app_dial.c: Force COLP update if outgoing channel name changed.
+       * hashtab: Add NULL check when destroying iterator.
 
-         * When a call is answered and the outgoing channel name has changed then
-         force a connected line update because the channel is no longer the same.
-         The channel was masqueraded into by another channel.  This is usually
-         because of a call pickup.
+         The hashtab API is pretty NULL tolerant which has resulted
+         in remaining callers not doing much checks themselves.
+         Unfortunately the function to destroy an iterator does not
+         do a NULL check and will result in a crash if passed NULL.
+         This change fixes that.
 
-         Note: Forwarded calls are handled in a controlled manner so the original
-         channel name is replaced with the forwarded channel.
+         ASTERISK-25552 #close
 
-         ASTERISK-25423
-         Reported by: John Hardin
+         Change-Id: Ic1bf8eec3639e5a440f1c941d3ae3893ac6ed619
 
-         Change-Id: I2e01f7a698fbbc8c26344a59c2be40c6cd98b00c
+2015-11-13 14:32 +0000 [c0f2f8de45]  Richard Mudgett <rmudgett@digium.com>
 
-2015-09-24 12:37 +0000 [14481d9aa0]  Richard Mudgett <rmudgett@digium.com>
+       * res_pjsip_rfc3326.c: Fix crash when channel goes away.
 
-       * app_dial.c: Factor out a connected line update routine.
+         If an authenticated incoming caller does not respond to our 200 OK INVITE
+         response with an ACK then PJSIP will hangup the call.  Unfortunately,
+         there is a chance that the session's channel will go away between one use
+         of the channel pointer and another when building the BYE request because
+         the BYE is being built by the monitor thread and not the call's serializer
+         thread.
 
-         Replace inlined code with update_connected_line_from_peer().
+         * Added a check to ensure that the thread trying to add the Reason header
+         is the call's serializer thread.  This ensures that the channel will not
+         go away on us.
 
-         ASTERISK-25423
-         Reported by: John Hardin
+         Change-Id: I866388d2b97ea2032eaae3f3ab3f1ca6cbd2df89
 
-         Change-Id: Ia14f18def417645cd7fb453e1bdac682630a5091
+2015-11-13 14:19 +0000 [4f43b85c92]  Mark Michelson <mmichelson@digium.com>
 
-2015-09-23 17:41 +0000 [bbeda190c3]  Richard Mudgett <rmudgett@digium.com>
+       * Taskprocessors: Increase high-water mark
 
-       * app_dial.c: Remove some no-op code.
+         In practical tests, we have seen certain taskprocessors, specifically
+         Stasis subscription taskprocessors, cross the recently-added high-water
+         mark and emit a warning. This high-water mark warning is only intended
+         to be emitted when things have tanked on the system and things are
+         heading south quickly. In the practical tests, the Stasis taskprocessors
+         sometimes had a max depth of 180 tasks in them, and Asterisk wasn't in
+         any danger at all.
 
-         Change-Id: Ice1884a94315d3cb7e3bbd47a9fba76a27276c54
+         As such, this ups the high-water mark to 500 tasks instead. It also
+         redefines the SIP threadpool request denial number to be a multiple of
+         the taskprocessor high-water mark.
 
-2015-09-23 14:02 +0000 [f050fa76eb]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: Ic8d3e9497452fecd768ac427bb6f58aa616eebce
 
-       * logger: Prevent duplicate dynamic channels from being added.
+2015-11-11 11:46 +0000 [d8d3991390]  Alexander Traud <pabstraud@compuserve.com>
 
-         There was a problem observed where the "logger add channel" CLI command
-         would allow for a channel with the same name to be added multiple times.
-         This would result in each message being written out to the same file
-         multiple times.
+       * format: Register format-attribute module with cached formats.
 
-         The problem was due to the difference in how logger channel filenames
-         are stored versus the format they are allowed to be presented when they
-         are added. For instance, if adding the logger channel "foo" through the
-         CLI, the result would be a logger channel with the file name
-         /var/log/asterisk/foo being stored. So when trying to add another "foo"
-         channel, "foo" would not match "/var/log/asterisk/foo" so we'd happily
-         add the duplicate channel.
+         In Asterisk 13, cached formats are created before their corresponding format-
+         attribute module is registered. Cached formats are involved when a local
+         extension is called. Therefore, ast_format_generate_sdp_fmtp did not work
+         on local extensions. This change affects the Opus Codec, H.263 (Plus), H.264,
+         and format-attribute modules provided externally.
 
-         The fix presented here is to introduce two new methods in the logger
-         code:
-          * make_filename(): given a logger channel name, this creates the
-            filename for that logger channel.
-          * find_logchannel(): given a logger channel name, this calls
-            make_filename() and then traverses the list of logchannels in order
-            to find a match.
+         ASTERISK-25160 #close
 
-         This change has made use of make_filename() and find_logchannel()
-         throughout to more consistently behave.
+         Change-Id: I1ea1f0483e5261e2a050112e4ebdfc22057d1354
 
-         ASTERISK-25305 #close
-         Reported by Mark Michelson
+2015-11-12 11:17 +0000 [367972e42d]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I892d52954d6007d8bc453c3cbdd9235dec9c4a36
+       * res_pjsip distributor: Don't send 503 response to responses.
 
-2015-09-24 14:49 +0000 [629458d349]  Mark Michelson <mmichelson@digium.com>
+         When the SIP threadpool is backed up with tasks, we send 503 responses
+         to ensure that we don't try to overload ourselves. The problem is that
+         we were not insuring that we were not trying to send a 503 to an
+         incoming SIP response.
 
-       * Do not swallow frames on channels leaving bridges.
+         This change makes it so that we only send the 503 on incoming requests.
 
-         When leaving a bridge, indications on a channel could be swallowed by
-         the internal indication logic because it appears that the channel is on
-         its way to be hung up anyway. One such situation where this is
-         detrimental is when channels on hold are redirected out of a bridge. The
-         AST_CONTROL_UNHOLD indication from the bridging code is swallowed,
-         leaving the channel in question to still appear to be on hold.
+         Change-Id: Ie2b418d89c0e453cc6c2b5c7d543651c981e1404
 
-         The fix here is to modify the logic inside ast_indicate_data() to not
-         drop the indication if the channel is simply leaving a bridge. This way,
-         channels on hold redirected out of a bridge revert to their expected "in
-         use" state after the redirection.
+2015-11-11 17:11 +0000 [2f9cb7d62b]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-25418 #close
-         Reported by Mark Michelson
+       * res_pjsip: Deny requests when threadpool queue is backed up.
 
-         Change-Id: If6115204dfa0551c050974ee138fabd15f978949
+         We have observed situations where the SIP threadpool may become
+         deadlocked. However, because incoming traffic is still arriving, the SIP
+         threadpool's queue can continue to grow, eventually running the system
+         out of memory.
 
-2015-09-22 17:08 +0000 [5f15cd93f0]  Richard Mudgett <rmudgett@digium.com>
+         This change makes it so that incoming traffic gets rejected with a 503
+         response if the queue is backed up too much.
 
-       * app_page.c: Fix crash when forwarding with a predial handler.
+         Change-Id: I4e736d48a2ba79fd1f8056c0dcd330e38e6a3816
 
-         Page uses the async method of dialing with the dial API.  When a call gets
-         forwarded there is no calling channel available.  If the predial handler
-         was set then the calling channel could not be put into auto-service
-         for the forwarded call because it doesn't exist.  A crash is the result.
+2015-11-12 06:24 +0000 [4e5bf12b33]  Joshua Colp <jcolp@digium.com>
 
-         * Moved the callee predial parameter string processing to before the
-         string is passed to the dial API rather than having the dial API do it.
-         There are a few benefits do doing this.  The first is the predial
-         parameter string processing doesn't need to be done for each channel
-         called by the dial API.  The second is in async mode and the forwarded
-         channel is to have the predial handler executed on it then the
-         non-existent calling channel does not need to be present to process the
-         predial parameter string.
+       * format_cap: Don't append the 'none' format when appending all.
 
-         * Don't start auto-service on a non-existent calling channel to execute
-         the predial handler when the dial API is in async mode and forwarding a
-         call.
+         When appending all formats of a type all the codecs are iterated
+         and added. This operation was incorrectly adding the ast_format_none
+         format which is special in that it is supposed to be used when no
+         format is present. It shouldn't be appended.
 
-         ASTERISK-25384 #close
-         Reported by: Chet Stevens
+         ASTERISK-25535
 
-         Change-Id: If53892b286d29f6cf955e2545b03dcffa2610981
+         Change-Id: I7b00f3bdf4a5f3022e483d6ece602b1e8b12827c
 
-2015-09-03 21:19 +0000 [b50e372394]  Matt Jordan <mjordan@digium.com>
+2015-11-11 04:16 +0000 [07583c2888]  Steve Davies <steve@one47.co.uk>
 
-       * ARI: Add events for Contact and Peer Status changes
+       * Further fixes to improper usage of scheduler
 
-         This patch adds support for receiving events regarding Peer status changes
-         and Contact status changes. This is particularly useful in scenarios where
-         we are subscribed to all endpoints and channels, where we often want to know
-         more about the state of channel technology specific items than a single
-         endpoint's state.
+         When ASTERISK-25449 was closed, a number of scheduler issues mentioned in
+         the comments were missed. These have since beed raised in ASTERISK-25476
+         and elsewhere.
 
-         ASTERISK-24870
+         This patch attempts to collect all of the scheduler issues discovered so
+         far and address them sensibly.
 
-         Change-Id: I6137459cdc25ce27efc134ad58abf065653da4e9
+         ASTERISK-25476 #close
 
-2015-09-04 12:24 +0000 [3502c0431d]  Matt Jordan <mjordan@digium.com>
+         Change-Id: I87a77d581e2e0d91d33b4b2fbff80f64a566d05b
 
-       * res/res_stasis_device_state: Allow for subscribing to 'all' device state
+2015-11-11 11:04 +0000 [b818d70533]  Joshua Colp <jcolp@digium.com>
 
-         This patch adds support for subscribing to all device state changes. This is
-         done either by subscribing to an empty device, e.g., 'eventSource=deviceState:',
-         or by the WebSocket connection specifying that it wants all state in the
-         system.
+       * threadpool: Handle worker thread transitioning to dead when going active.
 
-         ASTERISK-24870
+         This change adds handling of dead worker threads when moving them
+         to be active. When this happens the worker thread is removed from
+         both the active and idle threads container. If no threads are able
+         to be moved to active then the pool grows as configured.
 
-         Change-Id: I9cfeca1c9e2231bd7ea73e45919111d44d2eda32
+         A unit test has also been added which thrashes the idle timeout
+         and thread activation to exploit any race conditions between the
+         two.
 
-2015-09-04 12:25 +0000 [4c9f613309]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25546 #close
 
-       * ARI: Add the ability to subscribe to all events
+         Change-Id: I6c455f9a40de60d9e86458d447b548fb52ba1143
 
-         This patch adds the ability to subscribe to all events. There are two possible
-         ways to accomplish this:
-         (1) On initial WebSocket connection. This patch adds a new query parameter,
-             'subscribeAll'. If present and True, Asterisk will subscribe the
-             applications to all ARI events.
-         (2) Via the applications resource. When subscribing in this manner, an ARI
-             client should merely specify a blank resource name, i.e., 'channels:'
-             instead of 'channels:12354'. This will subscribe the application to all
-             resources of the 'channels' type.
+2015-11-10 09:27 +0000 [4bf84459c7]  Alexander Traud <pabstraud@compuserve.com>
 
-         ASTERISK-24870 #close
+       * rtp_engine: Init a format-attribute module to its RFC defaults.
 
-         Change-Id: I4a943b4db24442cf28bc64b24bfd541249790ad6
+         Previously, format-attribute modules relied on an existing fmtp line in SDP
+         negotiation. However, fmtp is optional for several formats like the Opus Codec.
+         Now, the format-attribute module is called with an empty fmtp, which allows the
+         module to initialise itself to RFC defaults. Furthermore now, Asterisk is able
+         to differentiate between internally and externally created formats.
 
-2015-09-21 08:16 +0000 [ec514ad64d]  Elazar Broad <elazar@thebroadfamily.com>
+         ASTERISK-25537 #close
 
-       * core/logging: Fix logging to more than one syslog channel
+         Change-Id: I28f680cef7fdf51c0969ff8da71548edad72ec52
 
-         Currently, Asterisk will log to the last configured syslog
-         channel in logger.conf. This is due to the fact that the
-         final call to openlog() supersedes all of the previous calls.
-         This commit removes the call to openlog() and passes the
-         facility to ast_log_vsyslog(), along with utilizing the
-         LOG_MAKEPRI macro to ensure that the message is routed to
-         the correct facility and with the correct priority.
+2015-11-09 03:04 +0000 [1bff400df7]  Alexander Traud <pabstraud@compuserve.com>
 
-         ASTERISK-25407 #close
-         Reported by: Elazar Broad
-         Tested by: Elazar Broad
+       * ast_format_cap_get_names: To display all formats, the buffer was increased.
 
-         Change-Id: Ie2a2416bc00cce1b04e99ef40917c2011953ddd2
+         ASTERISK-25533 #close
 
-2015-09-21 18:06 +0000 [aeddee39fb]  Kevin Harwell <kharwell@digium.com>
+         Change-Id: Ie1a9d1a6511b3f1a56b93d04475fbf8a4e40010a
 
-       * app_record: RECORDED_FILE variable not being populated
+2015-11-09 07:04 +0000 [f3ac4d8090]  Alexander Traud <pabstraud@compuserve.com>
 
-         The RECORDED_FILE variable is empty unless a '%d' is specified in the filename.
-         This patch makes it so the variable is always set to the filename.
+       * ast_format_cap: Avoid format creation on module load, use cache instead.
 
-         ASTERISK-25410 #close
+         Since Asterisk 13, formats are immutable and cached. However while loading a
+         module like chan_sip, some formats were created instead using cached ones.
 
-         Change-Id: I4ec826d8eb582ae2ad184e717be8668b74d37653
+         ASTERISK-25535 #close
 
-2015-09-16 08:22 +0000 [2bd27d1222]  Joshua Colp <jcolp@digium.com>
+         Change-Id: I479cdc220d5617c840a98f3389b3bd91e91fbd9b
 
-       * pbx: Update device and presence state when changing a hint extension.
+2015-11-06 07:54 +0000 [6d1bdb9d3b]  Walter Doekes <walter+asterisk@wjd.nu>
 
-         When changing a hint extension without removing the hint first the
-         device state and presence state is not updated. This causes the state
-         of the hint to be that of the previous extension and not the current
-         one. This state is kept until a state change occurs as a result of
-         something (presence state change, device state change).
+       * func_callerid: Document that CALLERID(pres) is available.
 
-         This change updates the hint with the current device and presence
-         state of the new extension when it is changed. Any state callbacks
-         which may have been added before the hint extension is changed are
-         also informed of the new device and presence state if either have
-         changed.
+         CALLERPRES() says that it's deprecated in favor of CALLERID(num-pres)
+         and CALLERID(name-pres).  But for channel driver that don't make a
+         distinction between the two (e.g. SIP), it makes more sense to get/set
+         both at once.  This change reveals the availability of CALLERID(pres),
+         CONNECTEDLINE(pres), REDIRECTING(orig-pres), REDIRECTING(to-pres) and
+         REDIRECTING(from-pres).
 
-         ASTERISK-25394 #close
+         ASTERISK-25373 #close
 
-         Change-Id: If268f1110290e502c73dd289c9e7e7b27bc8432f
+         Change-Id: I5614ae4ab7d3bbe9c791c1adf147e10de8698d7a
+2015-11-06 07:52 +0000 [8410336681]  Walter Doekes <walter+asterisk@wjd.nu>
 
-2015-09-17 16:34 +0000 [c94f46080f]  Scott Griepentrog <scott@griepentrog.com>
+       * docs: Fix a few typo's in app docs (more then, resourse).
 
-       * CHAOS: avoid crash if string create fails
+         Change-Id: Iba57efadf6c0b822e762c7a001bc89611d98afd7
 
-         Validate string buffer allocation before using them.
+2015-11-06 07:36 +0000 [0d425f2eb4]  Walter Doekes <walter+asterisk@wjd.nu>
 
-         ASTERISK-25323
+       * xmldoc: Improve xmldoc wrapping of 'core show ...' output.
 
-         Change-Id: Ib9c338bdc1e53fb8b81366f0b39482b83ef56ce0
+         Previously, the wrapping did both lookahead and lookback, which,
+         together with color escape sequences, caused some lines to be wrapped
+         way earlier than other lines.  This led to inconsistent output.
 
-2015-09-17 04:52 +0000 [b59c4d82b5]  Walter Doekes <walter+asterisk@wjd.nu>
+         This simplifies the wrapping code and makes it more sane: if maxcolumns
+         is hit, we simply jump back to the last space and wrap there.
 
-       * chan_sip: Fix From header truncation for extremely long CALLERID(name).
+         ASTERISK-25527 #close
 
-         The CALLERID(num) and CALLERID(name) and other info are placed into the
-         `char from[256]` in initreqprep. If the name was too long, the addr-spec
-         and params wouldn't fit.
+         Change-Id: I56d01c6f9a812642b1b05535c98d4db48d17c957
 
-         Code is moved around so the addr-spec with params is placed there first,
-         and then fitting in as much of the display-name as possible.
+2015-11-06 06:57 +0000 [33752e0837]  Sean Bright (license #5060)
 
-         ASTERISK-25396 #close
+       * res_pjsip_sdp_rtp: Enable Opus to be negotiated via SIP/SDP.
 
-         Change-Id: I33632baf024f01b6a00f8c7f35c91e5f68c40260
+         In SIP/SDP, Opus has two channels always (see RFC 7587 section 7). The actual
+         amount of channels is negotiated in-band. Therefore now, the Opus codec and its
+         attribute rtpmap are registered with two channels.
 
-2015-09-17 16:59 +0000 [4cc59533b9]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-24779 #close
+         Reported by: PowerPBX
+         Tested by: Alexander Traud
+         patches:
+           asterisk-24779.patch submitted by Sean Bright (license #5060)
 
-       * CHAOS: res_pjsip_diversion avoid crash if allocation fails
+         Change-Id: Ic7ac13cafa1d3450b4fa4987350924b42cbb657b
 
-         Validate ast_malloc buffer returned before using it in
-         set_redirecting_value().
+2015-11-03 16:19 +0000 [6ff48319d9]  Jonathan Rose <jrose@digium.com>
 
-         ASTERISK-25323
+       * taskprocessor: Add high water mark warnings
 
-         Change-Id: I15d2ed7cb0546818264c0bf251aa40adeae83253
+         If a taskprocessor's queue grows large, this can indicate that there
+         may be a problem with tasks not leaving the processor or else that
+         the number of available task processors for a given type of task is
+         too low. This patch makes it so that if a taskprocessor's task queue
+         grows above 100 queued tasks that it will emit a warning message.
+         Warning messages are emitted only once per task processor.
 
-2015-09-17 16:47 +0000 [4fb95bbc4e]  Kevin Harwell <kharwell@digium.com>
+         ASTERISK-25518 #close
+         Reported by: Jonathan Rose
 
-       * app_queue: AgentComplete event has wrong reason
+         Change-Id: Ib1607c35d18c1d6a0575b3f0e3ff5d932fd6600c
 
-         When a queued caller transfers an agent to another extension sometimes the
-         raised AgentComplete event has a reason of "caller" and sometimes "transfer".
-         Since a transfer has taken place this should always be transfer. This occurs
-         because sometimes the stasis hangup event arrives before the transfer event
-         thus writing a different reason out.
+2015-11-04 14:31 +0000 [506aea26e6]  Matt Jordan <mjordan@digium.com>
 
-         With this patch, when a hangup event is received during a transfer it will
-         check to see if the channel that is hanging up is part of a transfer. If so
-         it will return and let the subsequently received transfer event handler take
-         care of the cleanup.
+       * main/dial: Protect access to the format_cap structure of the requesting channel
 
-         ASTERISK-25399 #close
+         When a dial attempt is made that involves a requesting channel, we previously
+         were not:
+         a) Protecting access to the native format capabilities structure on the
+            requesting channel. That is inherently unsafe.
+         b) Reference bumping the lifetime of the format capabilities structure.
 
-         Change-Id: Ic63c49bd9a5ed463ea7a032fd2ea3d63bc81a50d
+         In both cases, something else could sneak in, blow away the format
+         capabilities, and we'd be holding onto an invalid format_cap structure. When
+         the newly created channel attempts to construct its format capabilities, things
+         go poorly.
 
-2015-09-17 13:09 +0000 [fb6b5c684b]  Scott Griepentrog <scott@griepentrog.com>
+         This patch:
+         a) Ensures that we get a reference to the native format capabilities while
+            the requesting channel is locked
+         b) Holds a reference to the native format capabilities during the creation
+            of the new channel.
 
-       * PJSIP: avoid crash when getting rtp peer
+         ASTERISK-25522 #close
 
-         Although unlikely, if the tech private is returned as
-         a NULL, chan_pjsip_get_rtp_peer() would crash.
+         Change-Id: I0bfb7ba8b9711f4158cbeaae96edf9626e88a54f
 
-         ASTERISK-25323
+2015-10-30 22:57 +0000 [d098d00424]  Corey Farrell <git@cfware.com>
 
-         Change-Id: Ie231369bfa7da926fb2b9fdaac228261a3152e6a
+       * Fix cli display of build options.
 
-2015-09-17 11:31 +0000 [6409e7b11a]  Kevin Harwell <kharwell@digium.com>
+         A previous commit reduced the AST_BUILDOPTS compiler define to
+         only include options that affected ABI.  This included some options
+         that were previously displayed by cli "core show settings".  This
+         change corrects the CLI display while still restricting buildopts.h
+         to ABI effecting options only.
 
-       * app_queue: Crash when transferring
+         ASTERISK-25434 #close
+         Reported by: Rusty Newton
 
-         During some transfer scenarios involving queues Asterisk would sometimes
-         crash when trying to obtain a channel snapshot (could happen on caller or
-         member channels). This occurred because the underlying channel had already
-         disappeared when trying to obtain the latest snapshot.
+         Change-Id: Id07af6bedd1d7d325878023e403fbd9d3607e325
 
-         This patch adds a reference to both the member and caller channels that
-         extends to the lifetime of the queue'd call, thus making sure the channels
-         will always exist when retrieving the latest snapshots.
+2015-11-03 11:15 +0000 [afec1b1b64]  Matt Jordan <mjordan@digium.com>
 
-         ASTERISK-25185 #close
-         Reported by: Etienne Lessard
+       * res_pjsip/location: Destroy contact_status objects on contact deletion
 
-         Change-Id: Ic397fa68fb4ff35fbc378e745da9246a7b552128
+         The contact_status Sorcery objects are currently not destroyed when a contact
+         is deleted. This causes the contact's last known RTT/status to be 'sticky'
+         when the contact itself may no longer exist. This patch causes the
+         contact_status objects associated with both dynamic and static contacts to
+         be destroyed if the AoR holding those contacts is also destroyed (or via
+         other paths where a contact may be deleted.)
 
-2015-09-16 17:36 +0000 [fe5077b1f8]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: I7feec8b9278cac3c5263a4c0483f4a0f3b62426e
 
-       * res_pjsip_pubsub: Eliminate race during initial NOTIFY.
+2015-11-03 10:58 +0000 [715f770c9f]  Matt Jordan <mjordan@digium.com>
 
-         There is a slim chance of a race condition occurring where two threads
-         can both attempt to manipulate the same area.
+       * pjsip_configuration: On delete, remove the persistent version of an endpoint
 
-         Thread A can be handling an incoming initial SUBSCRIBE request. Thread A
-         lets the specific subscription handler know that the subscription has
-         been established.
+         When an endpoint is deleted (such as through an API), the persistent endpoint
+         currently continues to lurk around. While this isn't harmful from a memory
+         consumption perspective - as all persistent endpoints are reclaimed on
+         shutdown - it does cause Stasis endpoint related operations to continue
+         to believe that the endpoint may or may not exist.
 
-         At this point, Thread B may detect a state change on the subscribed
-         resource and queue up a notification task on Thread C, the subscription
-         serializer thread.
+         This patch causes the persistent endpoint related to a PJSIP endpoint to be
+         destroyed if the PJSIP endpoint is deleted.
 
-         Now Thread A attempts to generate the initial NOTIFY request to send to
-         the subscriber at the same time that Thread C attempts to generate a
-         state change NOTIFY request to send to the subscriber.
+         Change-Id: I85ac707b4d5e6aad882ac275b0c2e2154affa5bb
+2015-11-03 08:15 +0000 [f0f190af08]  Matt Jordan <mjordan@digium.com>
 
-         The result is that Threads A and C can step on the same memory area,
-         resulting in a crash. The crash has been observed as happening when
-         attempting to allocate more space to hold the body for the NOTIFY.
+       * main/stasis_endpoints: Fix ContactStatusChange JSON for roundtrip_usec field
 
-         The solution presented here is to queue the subscription establishment
-         and initial NOTIFY generation onto the subscription serializer thread
-         (Thread C in the above scenario). This way, there is no way that a state
-         change notification can occur before the initial NOTIFY is sent, and if
-         there is a quick succession of NOTIFYs, we can guarantee that the two
-         NOTIFY requests will be sent in succession.
-
-         Change-Id: I5a89a77b5f2717928c54d6efb9955e5f6f5cf815
+         The JSON packing for the ContactStatusChange event forgot to include the
+         roundtrip_usec field. As a result, the field never showed up in any event,
+         even when the data was available. This patch corrects that error by properly
+         packing the JSON blob with the data.
 
-2015-08-28 15:42 +0000 [b88c54fa4b]  Alexander Traud <pabstraud@compuserve.com>
+         Change-Id: I8df80da659a44010afbd48f645967518ff5daa17
 
-       * translate: Fix transcoding while different in frame size.
+2015-11-02 20:24 +0000 [0393bd6bed]  Corey Farrell <git@cfware.com>
 
-         When Asterisk translates between codecs, each with a different frame size (for
-         example between iLBC 30 and Speex-WB), too large frames were created by
-         ast_trans_frameout. Now, ast_trans_frameout is called with the correct frame
-         length, creating several frames when necessary. Affects all transcoding modules
-         which used ast_trans_frameout: GSM, iLBC, LPC10, and Speex.
+       * chan_sip: Allow websockets to be disabled.
 
-         ASTERISK-25353 #close
+         This patch adds a new setting "websockets_enabled" to sip.conf.
+         Setting this to false allows chan_sip to be used without causing
+         conflicts with res_pjsip_transport_websocket.
 
-         Change-Id: I2e229569d73191d66a4e43fef35432db24000212
+         ASTERISK-24106 #close
+         Reported by: Andrew Nagy
 
-2015-09-10 17:19 +0000 [5c713fdf18]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: I04fe8c4f2d57b2d7375e0e25826c91a72e93bea7
 
-       * scheduler: Use queue for allocating sched IDs.
+2015-11-02 17:19 +0000 [6fbffe42e1]  Mark Michelson <mmichelson@digium.com>
 
-         It has been observed that on long-running busy systems, a scheduler
-         context can eventually hit INT_MAX for its assigned IDs and end up
-         overflowing into a very low negative number. When this occurs, this can
-         result in odd behaviors, because a negative return is interpreted by
-         callers as being a failure. However, the item actually was successfully
-         scheduled. The result may be that a freed item remains in the scheduler,
-         resulting in a crash at some point in the future.
+       * res_pjsip: Set threadpool max size default to 50.
 
-         The scheduler can overflow because every time that an item is added to
-         the scheduler, a counter is bumped and that counter's current value is
-         assigned as the new item's ID.
+         During a stress test of subscriptions, a huge blast of
+         subscription-related traffic resulted in the threadpool expanding to a
+         ridiculous number of threads. The balooning of threads resulted in an
+         increase of memory, which led to a crash due to being out of memory.
 
-         This patch introduces a new method for assigning scheduler IDs. Instead
-         of assigning from a counter, a queue of available IDs is maintained.
-         When assigning a new ID, an ID is pulled from the queue. When a
-         scheduler item is released, its ID is pushed back onto the queue. This
-         way, IDs may be reused when they become available, and the growth of ID
-         numbers is directly related to concurrent activity within a scheduler
-         context rather than the uptime of the system.
+         An easy fix for the particular test was to limit the size of the
+         threadpool, thus reining in the amount of memory that would be used. It
+         was decided that there really is no downside to having a non-infinite
+         default value for the maximum size of the threadpool, so this change
+         introduces 50 threads as the maximum threadpool size for the SIP
+         threadpool.
 
-         Change-Id: I532708eef8f669d823457d7fefdad9a6078b99b2
+         ASTERISK-25513 #close
+         Reported by John Bigelow
 
-2015-08-21 21:50 +0000 [865377fc38]  Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
+         Change-Id: If0b9514f1d9b172540ce1a6e2f2ffa1f2b6119be
 
-       * chan_sip.c: Validation on module reload
+2015-11-02 06:57 +0000 [11e54b1932]  Matt Jordan <mjordan@digium.com>
 
-         Change validation on reload module because now used the cli function for
-         reload. The sip_reload() function never fail and ever return NULL for this
-         reason on reload() now use the call the sip_reload() and return
-         AST_MODULE_LOAD_SUCCESS.
+       * pjsip_options: Schedule/unschedule qualifies on AoR creation/destruction
 
-         This problem is dectected on reload by PUT method on ARI, getting always
-         404 http code when the module is reloaded.
+         When an AoR is created or destroyed dynamically, the scheduled OPTIONS
+         requests that qualify the contacts on the AoR are not necessarily started
+         or destroyed, particularly for persistent contacts created for that AoR.
+         This patch adds create/update/delete sorcery observers for an AoR, which
+         schedule/unschedule the qualifies as expected.
 
-         ASTERISK-25325 #close
-         Reporte by: Rodrigo Ramírez Norambuena
+         Change-Id: Ic287ed2e2952a7808ee068776fe966f9554bdf7d
 
-         Change-Id: I41215877fb2cfc589e0d4d464000cf6825f4d7fb
+2015-10-30 13:22 +0000 [118d628e08]  Matt Jordan <mjordan@digium.com>
 
-2015-08-21 17:39 +0000 [e75aff53e6]  Richard Mudgett <rmudgett@digium.com>
+       * Makefile: Add a rule 'basic-pbx' that installs the Basic PBX configs
 
-       * res_pjsip_pubsub.c: Mark ast_sip_create_subscription() as not used.
+         This patch adds a rule for installing the Super Awesome Company based 'Basic
+         PBX' configuration files. As part of adding this rule, a bit of the content
+         that makes up installing the configuration files under the 'samples' target
+         was refactored into a make subroutine for usage by additional later config
+         make targets.
 
-         Change-Id: I2b8db18eac36c01a5c7eb9467699124e203fd093
+         Change-Id: I6c2e27906f73e2919a2b691da0be20ae70302404
+2015-10-29 08:28 +0000 [9a021a42ad]  Joshua Colp <jcolp@digium.com>
 
-2015-09-09 12:24 +0000 [4d91d01df1]  Richard Mudgett <rmudgett@digium.com>
+       * res_pjsip_pubsub: Fix assertion when UAS dialog creation fails.
 
-       * res_pjsip_pubsub.c: Add some notification comments.
+         When compiled with assertions enabled one will occur when destroying
+         the subscription tree when UAS dialog creation fails. This is because
+         the code assumes that a dialog will always exist on a subscription
+         tree when in reality during this specific scenario it won't.
 
-         Change-Id: Ie62ff1f4b7adc1a12fa0303f53926af249b25e20
+         This change makes it so a dialog is not removed from the subscription
+         tree if it is not present.
 
-2015-08-21 18:01 +0000 [f36a9d1221]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25505 #close
 
-       * res_pjsip_pubsub.c: Set dlg_status code instead of sending SIP response.
+         Change-Id: Id5c182b055aacc5e66c80546c64804ce19218dee
 
-         We should not try to send a SIP response message because we may be
-         restoring a persistent subscription where we are not responding to a SIP
-         request.
+2015-10-26 11:42 +0000 [1256aedf66]  Alexander Traud <pabstraud@compuserve.com>
 
-         Change-Id: Id89167ef90320c5563f37e632db0dda6cb9e7dec
+       * chan_sip: Do not send all codecs on INVITE.
 
-2015-08-21 17:40 +0000 [94582f8fab]  Richard Mudgett <rmudgett@digium.com>
+         Since version 13, Asterisk sent all allowed codecs as callee, even when the
+         caller did not request/support them. In case of dynamic RTP payloads, this led
+         to the same ID for different codecs, which is not allowed by SIP/SDP. Now, the
+         intersection between the requested and the supported codecs is send again.
 
-       * res_pjsip_pubsub.c: Fix off-nominal memory leak.
+         ASTERISK-24543 #close
 
-         Fix off-nominal visited vector leak in build_resource_tree().
+         Change-Id: Ie90cb8bf893b0895f8d505e77343de3ba152a287
 
-         Change-Id: If0399c7941c9c0b1038bcfb7b9a371760977831c
+2015-10-24 13:08 +0000 [5f593e7c38]  gtjoseph <george.joseph@fairview5.com>
 
-2015-08-21 15:26 +0000 [8b3ed52239]  Richard Mudgett <rmudgett@digium.com>
+       * build: GCC 5.1.x catches some new const, array bounds and missing paren issues
 
-       * res_pjsip_pubsub.c: Fix one byte buffer overrun error.
+         Fixed 1 issue in each of the affected files.
 
-         ast_sip_pubsub_register_body_generator() did not account for the null
-         terminator set by sprintf() in the allocated output buffer.
+         ASTERISK-25494 #close
+         Reported-by: George Joseph
+         Tested-by: George Joseph
 
-         Change-Id: I388688a132e479bca6ad1c19275eae0070969ae2
+         Change-Id: I818f149cd66a93b062df421e1c73c7942f5a4a77
 
-2015-08-21 15:25 +0000 [4329bd1e4c]  Richard Mudgett <rmudgett@digium.com>
+2015-10-20 16:02 +0000 [162acd45f7]  gtjoseph <george.joseph@fairview5.com>
 
-       * res_pjsip_pubsub.c: Use ast_alloca() instead of alloca().
+       * res_pjsip:  Add "like" processing to pjsip list and show commands
 
-         Change-Id: Ia396096b4fedc2874649ca11137612c3f55e83e3
+         Add the ability to filter output from pjsip list and show commands
+         using the "like" predicate like chan_sip.
 
-2015-08-21 11:04 +0000 [a456a20ecf]  Richard Mudgett <rmudgett@digium.com>
+         For endpoints, aors, auths, registrations, identifyies and transports,
+         the modification was a simple change of an ast_sorcery_retrieve_by_fields
+         call to ast_sorcery_retrieve_by_regex.  For channels and contacts a
+         little more work had to be done because neither of those objects are
+         true sorcery objects.  That was just removing the non-matching object
+         from the final container.  Of course, a little extra plumbing in the
+         common pjsip_cli code was needed to parse the "like" and pass the regex
+         to the get_container callbacks.
 
-       * res_pjsip_pubsub.c: Add missing error return in load_module().
+         Some of the get_container code in res_pjsip_endpoint_identifier was also
+         refactored for simplicity.
 
-         Change-Id: I15debd0f717f16ee2f78e7f56151c3b3b97b72fc
+         ASTERISK-25477 #close
+         Reported by: Bryant Zimmerman
+         Tested by: George Joseph
 
-2015-08-21 11:03 +0000 [f58f4c6e27]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I646d9326b778aac26bb3e2bcd7fa1346d24434f1
 
-       * res_pjsip/location.c: Use the builtin ao2_callback() match function instead.
+2015-10-21 11:51 +0000 [c58091737d]  Kevin Harwell <kharwell@digium.com>
 
-         Change-Id: I364906d6d2bad3472929986704a0286b9a2cbe3f
+       * res_pjsip_outbound_registration: registration stops due to fatal 4xx response
 
-2015-09-10 09:49 +0000 [9d1f176e29]  Mark Michelson <mmichelson@digium.com>
+         During outbound registration it is possible to receive a fatal (any permanent/
+         non-temporary 4xx, 5xx, 6xx) response from the registrar that is simply due
+         to a problem with the registrar itself. Upon receiving the failure response
+         Asterisk terminates outbound registration for the given endpoint.
 
-       * res_pjsip: Copy default_from_user to avoid crash.
+         This patch adds an option, 'fatal_retry_interval', that when set continues
+         outbound registration at the given interval up to 'max_retries' upon receiving
+         a fatal response.
 
-         The default_from_user retrieval function was pulling the
-         default_from_user from the global configuration struct in an unsafe way.
-         If using a database as a backend configuration store, the global
-         configuration struct is short-lived, so grabbing a pointer from it
-         results in referencing freed memory.
+         ASTERISK-25485 #close
 
-         The fix here is to copy the default_from_user value out of the global
-         configuration struct.
+         Change-Id: Ibc2c7b47164ac89cc803433c0bbe7063bfa143a2
 
-         Thanks go to John Hardin for discovering this problem and proposing the
-         patch on which this fix is based.
+2015-10-22 17:07 +0000 [ebe69dee0d]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-25390 #close
-         Reported by Mark Michelson
+       * format_cap: Detect vector allocation failures.
 
-         Change-Id: I6b96067a495c1259da768f4012d44e03e7c6148c
+         A crash was seen on a system that ran out of memory due to Asterisk not
+         checking for vector allocation failures in format_cap.c. With this
+         change, if either of the AST_VECTOR_INIT calls fail, we will return a
+         value indicating failure.
 
-2015-09-10 08:39 +0000 [1dd0e220bf]  Matt Jordan <mjordan@digium.com>
+         Change-Id: Ieb9c59f39dfde6d11797a92b45e0cf8ac5722bc8
 
-       * res/res_pjsip_nat: Ignore REGISTER requests when looking for a Record-Route
+2015-10-02 15:32 +0000 [3b19efefef]  Mark Michelson <mmichelson@digium.com>
 
-         We will only rewrite the Contact header if there is no Record-Route header in
-         the received request. If a malfunctioning proxy places a Record-Route header
-         into a REGISTER request, we will decide that we shouldn't update the IP/port
-         in the Contact header, and we will end up storing a contact with an AoR that
-         contains the NAT'd IP address.
+       * res_pjsip_pubsub: Prevent sending NOTIFY on destroyed dialog.
 
-         While it is nice to have the proxy *not* send a Record-Route in a REGISTER
-         request, it's also a good idea to not process the header in a non-dialog
-         message. This patch updates the code to explicitly ignore the Record-Route
-         header in REGISTER requests.
+         A certain situation can result in our attempting to send a NOTIFY on a
+         destroyed dialog. Say we attempt to send a NOTIFY to a subscriber, but
+         that subscriber has dropped off the network. We end up retransmitting
+         that NOTIFY until the appropriate SIP timer says to destroy the NOTIFY
+         transaction. When the pjsip evsub code is told that the transaction has
+         been terminated, it responds in kind by alerting us that the
+         subscription has been terminated, destroying the subscription, and then
+         removing its reference to the dialog, thus destroying the dialog.
 
-         ASTERISK-25387 #close
+         The problem is that when we get told that the subscription is being
+         terminated, we detect that we have not sent a terminating NOTIFY
+         request, so we queue up such a NOTIFY to be sent out. By the time that
+         queued NOTIFY gets sent, the dialog has been destroyed, so attempting to
+         send that NOTIFY can result in a crash.
 
-         Change-Id: I4bd3bcccc4003d460cc354d986b0dea2e433ef3f
+         The fix being introduced here is actually a reintroduction of something
+         the pubsub code used to employ. We hold a reference to the dialog and
+         wait to decrement our reference to the dialog until our subscription
+         tree object is destroyed. This way, we can send messages on the dialog
+         even if the PJSIP evsub code wants to terminate earlier than we would
+         like.
 
-2015-09-03 21:15 +0000 [4eedd9ef9d]  Matt Jordan <mjordan@digium.com>
+         In doing this, some NULL checks for subscription tree dialogs have been
+         removed since NULL dialogs are no longer actually possible.
 
-       * main/config_options: Check for existance of internal object before derefing
+         Change-Id: I013f43cddd9408bb2a31b77f5db87a7972bfe1e5
 
-         Asterisk can load and register an object type while still having an invalid
-         sorcery mapping. This can cause an issue when a creation call is invoked.
-         For example, mis-configuring PJSIP's endpoint identifier by IP address mapping
-         in sorcery.conf will cause the sorcery mechanism to be invalidated; however, a
-         subsequent ARI invocation to create the object will cause a crash, as the
-         internal type may not be registered as sorcery expects.
+2015-09-29 14:53 +0000 [0a346f095f]  Mark Michelson <mmichelson@digium.com>
 
-         Merely checking for a NULL pointer here solves the issue.
+       * res_pjsip_pubsub: Ensure dialog lock balance.
 
-         Change-Id: I54079fb94a1440992f4735a9a1bbf1abb1c601ac
-2015-09-09 16:46 +0000 [71408df2b8]  Alexander Anikin <may213@yandex.ru>
+         When sending a NOTIFY, we lock the dialog and then unlock the dialog
+         when finished. A recent change made it so that the subscription tree's
+         dialog pointer will be set NULL when sending the final NOTIFY request
+         out. This means that when we attempt to unlock the dialog, we pass a
+         NULL pointer to pjsip_dlg_dec_lock(). The result is that the dialog
+         remains locked after we think we have unlocked it. When a response to
+         the NOTIFY arrives, the monitor thread attempts to lock the dialog, but
+         it cannot because we never released the dialog lock. This results in
+         Asterisk being unable to process incoming SIP traffic any longer.
 
-       * chan_ooh323: Add ProgressIndicator IE with inband info available
+         The fix in this patch is to use a local pointer to save off the pointer
+         value of the subscription tree's dialog when locking and unlocking the
+         dialog. This way, if the subscription tree's dialog pointer is NULLed
+         out, the local pointer will still have point to the proper place and the
+         dialog lock will be unlocked as we expect.
 
-         Add ProgressIndicator IE with inband info present to Progress and
-         Alerting Q.931 message
+         Change-Id: I7ddb3eaed7276cceb9a65daca701c3d5e728e63a
 
-         ASTERISK-25227 #close
-         Reported by: Alexandr Dranchuk
+2015-09-28 16:36 +0000 [ad39508095]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I326ad13cb1db9a72b3fd902bafed3c28a3684203
-2015-09-08 10:35 +0000 [f72f9ceefc]  Scott Griepentrog <scott@griepentrog.com>
+       * res_pjsip_pubsub: Prevent crashes on final NOTIFY.
 
-       * pjsip: avoid possible crash req_caps allocation failure
+         The SIP dialog is removed from the subscription tree when the final
+         NOTIFY is sent. However, after the final NOTIFY is sent, the persistence
+         update function still attempts to access the cseq from the dialog,
+         resulting in a crash.
 
-         Make certain that the pjsip session has not failed to
-         allocate the format capabilities structure, which can
-         otherwise cause a crash when referenced.
+         This fix removes the subscription persistence at the same time that the
+         dialog is removed from the subscription tree. This way, there is no
+         attempt to update persistence when the subscription is being destroyed.
 
-         ASTERISK-25323
+         Change-Id: Ibb46977a6cef9c51dc95f40f43446e3d11eed5bb
 
-         Change-Id: I602790ba12714741165e441cc64a3ecde4cb5750
+2015-09-17 17:28 +0000 [067f408760]  Mark Michelson <mmichelson@digium.com>
 
-2015-09-03 14:07 +0000 [fbf720db91]  Jonathan Rose <jrose@digium.com>
+       * res_pjsip_pubsub: Remove serializer when sending final NOTIFY.
 
-       * ParkAndAnnounce: Add variable inheritance
+         There have been crashes seen where a taskprocessor's listener is NULL
+         unexpectedly.
 
-         In Asterisk 11, the announcer channel would receive channel variables
-         from the channel being parked by means of normal channel inheritance.
-         This functionality was lost during the big res_parking project in
-         Asterisk 12. This patch restores that functionality.
+         Looking at backtraces, the problem was specifically seen in PJSIP
+         serializers.
 
-         ASTERISK-25369 #close
-         Review: https://gerrit.asterisk.org/#/c/1180/
+         Subscriptions make the mistake of removing a serializer from a dialog
+         during subscription tree destruction. Since subscription trees are
+         reference-counted, guaranteeing the circumstances behind the destruction
+         are not possible. This makes it so that the dialog serializer can be
+         removed while not holding the dialog lock. This makes it possible for
+         the distributor to get a pointer to the dialog serializer and have that
+         serializer get freed out from under it.
 
-         Change-Id: Ie47e618330114ad2ea91e2edcef1cb6f341eed6e
+         The fix for this is to remove the serializer from a subscription dialog
+         when sending the final NOTIFY. This guarantees that the serializer is
+         removed with the dialog lock held. By doing this, we guarantee that if
+         the distributor gains access to the dialog's serializer, it will not be
+         possible for the serializer to get freed by another thread.
 
-2015-09-04 16:33 +0000 [695f26cbb7]  David M. Lee <dlee@respoke.io>
+         Change-Id: I21f5dac33529f65cec45679bdace60670800ff66
 
-       * res_rtp_asterisk: Add more ICE debugging
+2015-09-02 09:14 +0000 [1bcc592765]  Mark Michelson <mmichelson@digium.com>
 
-         In working through a recent ICE negotiation bug, I found the debug
-         logging in res_rtp_asterisk to be lacking. This patch adds a number of
-         debug and warning statements that were helpful.
+       * res_pjsip_pubsub: Fix crash on destruction of empty subscription tree.
 
-         Change-Id: I950c6d8f13a41f14b3d6334b4cafe7d4e997be80
-2015-09-01 10:16 +0000 [4ed9c9a280]  Guido Falsi <madpilot@freebsd.org>
+         If an old persistent subscription is recreated but then immediately
+         destroyed because it is out of date, the subscription tree will have no
+         leaf subscriptions on it. This was resulting in a crash when attempting
+         to destroy the subscription tree.
 
-       * Core/General: Add #ifdef needed on FreeBSD.
+         A simple NULL check fixes this problem.
 
-         pthread_attr_init() defaults to PTHREAD_EXPLICIT_SCHED on FreeBSD
-         too.
+         Change-Id: I85570b9e2bcc7260a3fe0ad85904b2a9bf36d2ac
 
-         ASTERISK-25310 #close
-         Reported by: Guido Falsi
+2015-09-01 15:47 +0000 [b3cc2bd7df]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: Iae6befac9028b5b9795f86986a4a08a1ae6ab7c4
+       * res_pjsip_pubsub: Solidify lifetime and ownership of objects.
 
-2015-09-08 07:21 +0000 [5469caa9dd]  Joshua Colp <jcolp@digium.com>
+         There have been crashes and general instability seen in the pubsub code,
+         so this patch introduces three changes to increase the stability.
 
-       * res_pjsip: Use hash for contact object identity instead of Contact URI.
+         First, the ownership model for subscriptions has been modified. Due to
+         RLS, subscriptions are stored in memory as a tree structure. Prior to my
+         patch, the PJSIP subscription was the owner of the subscription tree.
+         When the PJSIP subscription told us that it was terminating, we started
+         destroying the subscription tree along with all of the individual leaf
+         subscriptions that belong to the tree. The problem with this model is
+         that the two actors in play here, the PJSIP subscription and the
+         individual leaf subscriptions, need to have joint ownership of the
+         subscription tree. So now, the PJSIP subscription and the individual
+         leaf subscriptions each have a reference to the subscription tree. This
+         way, we will not actually free memory until no players are left that
+         care. The PJSIP subscription is a bigger stakeholder, in that if the
+         PJSIP subscription's reference to the subscription tree is removed, the
+         subscription tree instructs the leaf subscriptions to shut down and drop
+         their references to the subscription tree when possible. The individual
+         leaf subscriptions, upon being told to shut down, can drop their stasis
+         subscriptions or whatever they use to learn of new state, and then drop
+         their reference to the subscription tree once they are ready to die.
 
-         In the wild it is possible for Contact URIs to be quite long as
-         parameters can exist on them. This can present a problem when storing
-         them in the AstDB as the URI is used as part of the object name and
-         there is a fixed length limit for the AstDB. This will cause
-         the contact to not get stored.
+         Second, the lifetime of a PJSIP subscription's reference to our
+         subscription tree has been altered. As I learned from doing a deep dive,
+         the PJSIP evsub code can tell Asterisk multiple times that the
+         subscription has been terminated, and not all of these times
+         are especially helpful. I have altered the message flow that we use for
+         SIP subscriptions such that we will always drop the PJSIP subscription's
+         reference to the subscription tree when we send the NOTIFY that
+         terminates a SIP subscription. This also means that we will now queue
+         NOTIFY requests to be sent after responding to incoming SUBSCRIBEs so
+         that we can have predictable state changes from the PJSIP evsub code.
 
-         This change uses the MD5 hash of the Contact URI as part of the
-         object name instead. This has a fixed length which is guaranteed
-         to not exceed the AstDB length limit.
+         Third, the synchronization of operations has been improved. PJSIP can
+         call into our code from a serializer thread (e.g. upon receiving an
+         incoming request) or from the monitor thread (e.g. when a subscription
+         times out). Because of this, there is the possibility of competing
+         threads stepping on each other. PJSIP attempts to do some
+         synchronization on its own by always keeping the dialog lock held when
+         it calls into us. However, since we end up pushing tasks into the
+         serializer, the result was that serialized operations were not grabbing
+         the dialog lock and could, as a result, step on something that was being
+         attempted by a different thread. Now we ensure that serialized
+         operations grab the dialog lock, then check for extenuating
+         circumstances, then proceed with their operation if they can.
 
-         ASTERISK-25295 #close
+         Change-Id: Iff2990c40178dad9cc5f6a5c7f76932ec644b2e5
 
-         Change-Id: Ie8252a75331ca00b41b9f308f42cc1fbdf701a02
+2015-10-19 15:28 +0000 [c8c65dfa41]  Richard Mudgett <rmudgett@digium.com>
 
-2015-09-07 13:19 +0000 [480c443e26]  Alexander Anikin <may213@yandex.ru>
+       * strings.c: Fix __ast_str_helper() to always return a terminated string.
 
-       * chan_ooh323: call ast_rtp_instance_stop on ooh323_destroy
+         Users of functions which call __ast_str_helper() such as the ones listed
+         below are likely to not check the return value for failure so ensuring
+         that the string is always nil terminated is a good safety measure.
 
-             Call ast_rtp_instance_stop on ooh323_destroy to free resources
-             allocated by rtp instance
+         ast_str_set_va()
+         ast_str_append_va()
+         ast_str_set()
+         ast_str_append()
 
-             ASTERISK-25299 #close
-             Report by: Alexandr Dranchuk
+         Change-Id: I36ab2d14bb6015868b49329dda8639d70fbcae07
 
-         Change-Id: I455096bd7da016b871afe90af86067c2c7c9f33f
+2015-10-19 15:27 +0000 [b271d4a28a]  Richard Mudgett <rmudgett@digium.com>
 
-2015-09-07 11:15 +0000 [c3e6debdb9]  Matt Jordan <mjordan@digium.com>
+       * Add missing failure checks to ast_str_set_va() callers.
 
-       * res/res_pjsip: Purge contacts when an AoR is deleted
+         Change-Id: I0c2cdcd53727bdc6634095c61294807255bd278f
 
-         When an AoR is deleted by an external mechanism, such as through ARI, we
-         currently do not remove dynamic contacts that were created for that AoR as a
-         result of a received REGISTER request. As a result, re-creating the AoR will
-         cause the dynamic contact to be interpreted as a persistent contact, leading
-         to some rather strange state being created for the contacts/endpoints.
+2015-10-21 11:44 +0000 [f2725c8b77]  Joshua Colp <jcolp@digium.com>
 
-         This patch adds a sorcery observer for the 'aor' object. When a delete is
-         issued on the underlying sorcery object, the observer is called, and all
-         contacts created and persisted in sorcery for that AoR are also removed. Note
-         that we don't want to perform this action when an AO2 object that is an AoR is
-         destroyed, as the AoR can still exist in the backing storage (and we would
-         thus be removing valid contacts from an AoR that still "exists".)
+       * res_pjsip: Move URI validation to use time.
 
-         ASTERISK-25381 #close
+         In a realtime based system with a limited number of threadpool threads
+         it is possible for a deadlock to occur. This happens when permanent
+         endpoint state is updated, which will cause database queries to be done.
+         These queries may result in URI validation being done which is done
+         synchronously using a PJSIP thread. If all PJSIP threads are in use
+         processing traffic they themselves may be blocked waiting to get the
+         permanent endpoint container lock when identifying an endpoint.
 
-         Change-Id: I6697e51ef6b2858b5d63401f35dc378bb0f90328
+         This change moves URI validation to occur at use time instead of
+         configuration time. While this comes at a cost of not seeing a problem
+         until you use it it does solve the underlying deadlock problem.
 
-2015-09-05 14:58 +0000 [78d0b9d97e]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25486 #close
 
-       * channels/pjsip/dialplan_functions: Add an option for extracting the SIP call-id
+         Change-Id: I2d7d167af987d23b3e8199e4a68f3359eba4c76a
 
-         This patch adds a new option to the CHANNEL function that allows for the
-         extraction of the SIP call-id. It is used in conjunction with the 'pjsip'
-         option, and will return the Call-ID of the INVITE request that established
-         the PJSIP channel.
+2015-10-21 08:08 +0000 [84ff075d41]  Alexander Traud <pabstraud@compuserve.com>
 
-         ASTERISK-25352
+       * format: Update the maximum packetization time for iLBC 30.
 
-         Change-Id: I278d1f8bcfe3a53c5aa1dadebc14e92b0abd476a
+         In September 2006, the maximum packetization time (ptime) were set to such a
+         low value, packetization was disabled for many codecs actually. This was fixed
+         for many codecs but not for iLBC 30. This enables packetization for iLBC which
+         can be enabled for example via allow=ilbc:60,gsm,alaw,ulaw in the file sip.conf.
 
-2015-09-04 16:06 +0000 [61c6c6aa6c]  David M. Lee <dlee@respoke.io>
+         ASTERISK-7803
 
-       * Fix when remote candidates exceed PJ_ICE_MAX_CAND
+         Change-Id: I2ef90023d35efb7cb8fe96ed74f53f6846ffad12
+2015-10-21 09:51 +0000 [869ef2a8ee]  Alexander Traud <pabstraud@compuserve.com>
 
-         We were passing the wrong count into pj_ice_sess_create_check_list(),
-         causing the create to fail if we ever received more than PJ_ICE_MAX_CAND
-         candidates.
+       * chan_sip: Fix autoframing=yes.
 
-         Change-Id: I0303d8e1ecb20a8de9fe629a3209d216c4028378
+         With Asterisk 13, the structures ast_format and ast_codec changed. Because of
+         that, the paketization timing (framing) of the RTP channel moved away from the
+         formats/codecs. In the course of that change, the ptime of the callee was not
+         honored anymore, when the optional autoframing was enabled.
 
-2015-09-04 14:40 +0000 [ac62928d6b]  Mark Michelson <mmichelson@digium.com>
+         ASTERISK-25484 #close
 
-       * res_pjsip: Change default from user value.
+         Change-Id: Ic600ccaa125e705922f89c72212c698215d239b4
 
-         When Asterisk sends an outbound SIP request, if there is no direct
-         reason to place a specific value for the username in the From header,
-         Asterisk would generate a UUID. For example, this would happen when
-         sending outbound OPTIONS requests when qualifying or when sending
-         outbound INVITE requests when originating (if no explicit caller ID were
-         provided). The issue is that some SIP providers reject these sorts of
-         requests with a "Name too long" error response.
+2015-10-20 22:24 +0000 [9fd2adc204]  Matt Jordan <mjordan@digium.com>
 
-         This patch aims to fix this by changing the default outbound username in
-         From headers to "asterisk". This value can be overridden by changing the
-         default_from_user option in the global options if desired.
+       * rest-api-templates: Wikify error code response reasons
 
-         ASTERISK-25377 #close
-         Reported by Mark Michelson
+         Error response code descriptions may contain wiki markup that need to be
+         escaped. Without this patch, Confluence will reject the document being sent
+         and the responsible script will raise an exception.
 
-         Change-Id: I6a4d34a56ff73ff4f661b0075aeba5461b7f3190
+         Change-Id: I21fcb66fee7f6332381f2b99b1b0195dff215ee5
 
-2015-09-04 09:26 +0000 [6002472a62]  Scott Griepentrog <scott@griepentrog.com>
+2015-10-20 12:06 +0000 [72cbb6df55]  Matt Jordan <mjordan@digium.com>
 
-       * endpoint snapshot: avoid second cleanup on alloc failure
+       * funcs/func_holdintercept: Actually add the HOLD_INTERCEPT function
 
-         In ast_endpoint_snapshot_create(), a failure to init the
-         string fields results in two attempts to ao2_cleanup the
-         same pointer.  Removed RAII_VAR to eliminate problem.
+         When ab803ec342 was committed, it accidentally forgot to actually *add* the
+         HOLD_INTERCEPT function. This highlights two interesting points:
+         * Gerrit forces you to put the patch as it is going to into the repo up for
+           review, which Review Board did not. Yay Gerrit.
+         * No one apparently bothered to use this feature, or else they don't know about
+           it. I'm going to go with the latter explanation.
 
-         ASTERISK-25375 #close
-         Reported by: Scott Griepentrog
+         ASTERISK-24922
 
-         Change-Id: If4d9dfb1bbe3836b623642ec690b6d49b25e8979
+         Change-Id: Ida38278f259dd07c334a36f9b7d5475b5db72396
 
-2015-09-04 05:33 +0000 [d32e516c7c]  Martin Tomec <tomec.martin@gmail.com>
+2015-10-19 19:59 +0000 [9fc9777fa3]  Matt Jordan <mjordan@digium.com>
 
-       * res/pjsip: Mark WSS transport as secure
+       * contrib/scripts/autosupport: Update for Asterisk 13
 
-         Pjsip is refusing to use unsecure transport with "sips" in url.
-         WSS should be considered as secure transport.
+         This patch adds some minor tweaks for autosupport to update it for Asterisk 13.
+         This includes:
+         * Finally removing most references to Zaptel
+         * Adding support for some additional 'core' commands, and fixing nomenclature
+           that generally hasn't been used for some time
+         * Adding some PJSIP/SIP commands to gather endpoints/peers and active channels
 
-         ASTERISK-24602 #comment Partially fixed by setting WSS as secure
+         Change-Id: Ic997b418cbd9313588b6608e50f47b0ce6f4f1f1
 
-         Change-Id: Iddac406c6deba6240c41a603b8859dfefe1a5353
+2015-10-14 14:15 +0000 [dc6ec661b3]  mdu113 <mulitskiy@acedsl.com>
 
-2015-09-02 17:26 +0000 [ad9cb6c2ce]  Mark Michelson <mmichelson@digium.com>
+       * res_config_pgsql.c: Fix deadlock loading realtime configuration.
 
-       * res_pjsip: Fix contact refleak on stateful responses.
+         On v13, loading several thousand PJSIP endpoints on Asterisk start causes
+         a deadlock most of the time.
 
-         When sending a stateful response, creation of the transaction can fail,
-         most commonly because we are trying to create a transaction from a
-         retransmitted request. When creation of the transaction fails, we end up
-         leaking a reference to a contact that was bumped when the response was
-         created.
+         Thanks to mdu113 for discovering that there was a call to pgsql_exec() not
+         protected by the pgsql_lock reentrancy lock.
 
-         This patch adds the missing deref and fixes the reference leak.
+         {quote}
+         I believe a code path exists that attempts to use pgsql connection without
+         locking pgsql_lock.  I believe what happens during that deadlock that I
+         see is two concurrent threads are both attempting to send query to pgsql,
+         one of the thread is using a code path without locking pgsql_lock.  If
+         they managed to send queries at the same time, it seems postgres ignores
+         one of the queries and replies only to the one of them.  If it happens so
+         that the thread holding the lock didn't receive the reply it will wait for
+         it (and hold the lock) forever (or at least for very long time), thus
+         completely blocking all access to db.
+         {quote}
 
-         Change-Id: I2f97ad512aeb1b17e87ca29ae0abacb4d6395f07
+         * Added missing reentrancy locking around pgsql_exec() in find_table().
 
-2015-09-02 12:41 +0000 [cc1363209e]  Joshua Colp <jcolp@digium.com>
+         * Moved unlock of pgsql_lock in unload_module() to avoid locking inversion
+         between the psql_tables list lock and the pgsql_lock.
 
-       * pbx: Fix crash when issuing "core show hints" with long pattern match.
+         ASTERISK-25455 #close
+         Reported by:  mdu113
+         Patches:
+               res_config_pgsql.c-connlock2.diff (license #5543) patch uploaded by mdu113
 
-         When issuing the "core show hints" CLI command a combination of both
-         the hint extension and context is created. This uses a fixed size
-         buffer expecting that the extension will not exceed maximum extension
-         length. When the extension is actually a pattern match this constraint
-         does not hold true, and the extension may exceed the maximum extension
-         length. In this case extra characters are written past the end of the
-         fixed size buffer.
+         Change-Id: Id9e7cdf8a3b65ff19964b0cf942ace567938c4e2
 
-         This change makes it so the construction of the combined hint extension
-         and context can not exceed the size of the buffer.
+2015-10-13 14:13 +0000 [f8707ae9a5]  Olle Johansson (License 5267)
 
-         ASTERISK-25367 #close
+       * channels/chan_sip: Set cause code to 44 on RTP timeout
 
-         Change-Id: Idfa1b95d0d4dc38e675be7c1de8900b3f981f499
+         To quote Olle:
 
-2015-09-01 09:05 +0000 [d58c8d73af]  Mark Michelson <mmichelson@digium.com>
+         "When issuing a hangup due to RTP timeouts the cause code is not set. I have
+         selected 44 based on Cisco's implementation..."
 
-       * res_pjsip_pubsub: re-re-fix persistent subscription storage.
+         ASTERISK-25135 #close
+         Reported by: Olle Johansson
+         patches:
+           rtp-timeout-cause-1.8.diff uploaded by Olle Johansson (License 5267)
 
-         A recent change to res_pjsip_pubsub switched to using pjsip_msg_print as
-         a means of writing an appropriate packet to persistent storage. While
-         this partially solved the issue, it had its own problems.
-         pjsip_msg_print will always add a Content-Length header to the message
-         it prints. Frequent restarts of Asterisk can result in persistent
-         subscriptions being written with five or more Content-Length headers. In
-         addition, sometimes some apparent corruption of individual headers could
-         be seen.
+         Change-Id: Ia62100c55077d77901caee0bcae299f8dc7375fc
 
-         This aims to fix the problem by not running a parsed message through an
-         interpreter but rather by taking the raw message and saving it. The
-         logic for what to save is going to be different depending on whether a
-         SUBSCRIBE was received from the wire or if it was pulled from
-         persistence. When receiving a packet from the wire, when using a
-         streaming transport, the rdata->pkt_info.packet may contain multiple SIP
-         messages or fragments. However, the rdata->msg_info.msg_buf will always
-         contain the current SIP message to be processed. When pulling from
-         persistence, though, the rdata->msg_info.msg_buf will be NULL since no
-         transport actually handled the packet. However, since we know that we
-         will always ever pull one SIP message from persistence, we are free to
-         save directly from rdata->pkt_info.packet instead.
+2015-10-10 15:20 +0000 [486b172b50]  Ivan Poddubny <ivan.poddubny@gmail.com>
 
-         ASTERISK-25365 #close
-         Reported by Mark Michelson
+       * Build: Add menuselect options for using compiler sanitizers
 
-         Change-Id: I33153b10d0b4dc8e3801aaaee2f48173b867855b
+         This patch adds menuselect options for building Asterisk with
+         various sanitizers provided by gcc and clang.
 
-2015-08-31 15:24 +0000 [03fe79f29e]  Mark Michelson <mmichelson@digium.com>
+         When one of *SANITIZER flags is set in menuselect, the appropriate
+         option is added to CFLAGS ad LDFLAGS for the build.
 
-       * Fix deadlock on presence state changes.
+         Information on sanitizers in the project wiki:
+         https://github.com/google/sanitizers/wiki
 
-         A deadlock was observed where three threads were competing for different
-         locks:
+         GCC Manual:
+         https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
 
-         * One thread held the hints lock and was attempting to lock a specific
-           hint.
-         * One thread was holding the specific hint's lock and was attempting to
-           lock the contexts lock
-         * One thread was holding the contexts lock and attempting to lock the
-           hints lock.
+         Clang Compiler User's Manual:
+         http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation
 
-         Clearly the second thread was doing the wrong thing here. The fix for
-         this is to make sure that the hint's lock is not held on presence state
-         changes. Something similar is already done (and commented about) for
-         device state changes.
+         ASTERISK-24718 #close
+         Reported by: Badalian Vyacheslav
 
-         ASTERISK-25362 #close
-         Reported by Mark Michelson
+         Change-Id: Iafa51b792b7bcb20e848b99d16cf362d08590fa0
 
-         Change-Id: I15ec2416b92978a4c0c08273b2d46cb21aff97e2
+2015-10-12 11:21 +0000 [e14023ca35]  Richard Mudgett <rmudgett@digium.com>
 
-2015-08-29 10:36 +0000 [a676ba2aad]  Joshua Colp <jcolp@digium.com>
+       * config.c: Fix off-nominal memory leak.
 
-       * taskprocessor: Fix race condition between unreferencing and finding.
+         Change-Id: I06e346e9a5c63cc5071e7eda537310c4b43bffe0
 
-         When unreferencing a taskprocessor its reference count is checked
-         to determine if it should be unlinked from the taskprocessors
-         container and its listener shut down. In between the time when the
-         reference count is checked and unlinking it is possible for
-         another thread to jump in, find it, and get a reference to it. If
-         the thread then uses the taskprocessor it may find that it is not
-         in the state it expects.
+2015-10-12 11:20 +0000 [a99e821520]  Richard Mudgett <rmudgett@digium.com>
 
-         This change locks the taskprocessors container during almost the
-         entire unreference operation to ensure that any other thread which
-         may attempt to find the taskprocessor has to wait.
+       * config.c: Fix potential memory corruption after [section](+).
 
-         ASTERISK-25295
+         The memory corruption could happen if the [section](+) is the last section
+         in the file with trailing comments.  In this case process_text_line() has
+         left *last_cat is set to newcat and newcat is destroyed.
 
-         Change-Id: Icb842db82fe1cf238da55df92e95938a4419377c
+         Change-Id: I0d1d999f553986f591becd000e7cc6ddfb978d93
 
-2015-08-28 20:22 +0000 [1b1561f4c8]  Joshua Colp <jcolp@digium.com>
+2015-10-12 11:21 +0000 [8d31d2526b]  Richard Mudgett <rmudgett@digium.com>
 
-       * res_pjsip_sdp_rtp: Fix multiple keepalive scheduled items.
+       * config.c: Fix #include after [section](+).
 
-         The keepalive support in res_pjsip_sdp_rtp currently assumes
-         that a stream will only be negotiated once. This is false.
-         If the stream is replaced and later added back it can be
-         negotiated again causing multiple keepalive scheduled items
-         to exist. This change explicitly deletes the existing
-         keepalive scheduled item before adding the new one.
+         An #include right after a [section](+) would associate any variable
+         assignments before a new section in the #include with the wrong section.
 
-         The res_pjsip_sdp_rtp module also does not stop RTP
-         keepalives or timeout timer if the stream has been
-         replaced. This change adds a callback to the session media
-         interface to allow a media stream to be stopped without
-         the resources being destroyed. This allows the scheduled
-         items and RTP to be stopped when the stream no longer
-         exists.
+         * Fix section association by setting the current section to the appended
+         section.
 
-         ASTERISK-25356 #close
+         * Fix '+' and '!' section flag interaction corner case depending upon
+         which flag came first.  If the '!' came first then it would be ignored.
+         If the '!' came after then it would affect the appended section.  The '!'
+         will now no longer be ignored.
 
-         Change-Id: Ibe6a7cc0927c87326fd5f1c0d4ad889dbfbea1de
+         ASTERISK-25461 #close
+         Reported by: Sean Pimental
 
-2015-08-28 19:57 +0000 [85e1cb51b2]  Joshua Colp <jcolp@digium.com>
+         Change-Id: Ic9d3191c8758048e2cbce6432f854b32531731c3
 
-       * sched: ast_sched_del may return prematurely due to spurious wakeup
+2015-10-06 18:01 +0000 [3329c714f7]  Richard Mudgett <rmudgett@digium.com>
 
-         When deleting a scheduled item if the item in question is currently
-         executing the ast_sched_del function waits until it has completed.
-         This is accomplished using ast_cond_wait. Unfortunately the
-         ast_cond_wait function can suffer from spurious wakeups so the
-         predicate needs to be checked after it returns to make sure it has
-         really woken up as a result of being signaled.
+       * res_pjsip: Fix deadlock when sending out-of-dialog requests.
 
-         This change adds a loop around the ast_cond_wait to make sure that
-         it only exits when the executing task has really completed.
+         The struct send_request_wrapper has a pjsip lock associated with it that
+         is created non-recursive.  There is a code path for the struct
+         send_request_wrapper lock that will attempt to lock it recursively.  The
+         reporter's deadlock showed that the thread calling endpt_send_request()
+         deadlocked itself right after the wrapper object got created.
 
-         ASTERISK-25355 #close
+         Out-of-dialog requests such as MESSAGE, qualify OPTIONS, and unsolicited
+         MWI NOTIFY messages can hit this deadlock.
 
-         Change-Id: I51198270eb0b637c956c61aa409f46283432be61
+         * Replaced the struct send_request_wrapper pjsip lock with the mutex lock
+         that can come with an ao2 object since all of Asterisk's mutexes are
+         recursive.  Benefits include removal of code maintaining the pjsip
+         non-recursive lock since ao2 objects already know how to maintain their
+         own lock and the lock will show up in the CLI "core show locks" output.
 
-2015-08-27 12:26 +0000 [c2c7319082]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-25435 #close
+         Reported by: Dmitriy Serov
 
-       * res_pjsip_session: Don't invoke session supplements twice for BYE requests.
+         Change-Id: I458e131dd1b9816f9e963f796c54136e9e84322d
 
-         When a BYE request is received the PJSIP invite session implementation
-         creates and sends a 200 OK response before we are aware of it. This
-         causes the INVITE session state callback to be called into and ultimately
-         the session supplements run on the BYE request. Once this response has
-         been sent the normal transaction state callback is invoked which
-         invokes the session supplements on the BYE request again. This can
-         be problematic in particular with res_pjsip_rfc3326 as it may
-         attempt to update the hangup cause code on the channel while it is
-         in the process of being hung up.
+2015-10-06 11:05 +0000 [a1435aa3fa]  Stefan Engström <stefanen@kth.se>
 
-         This change makes it so the session supplements are only invoked
-         once by the INVITE session state callback.
+       * res/res_rtp_asterisk.c: Fix incorrect assignment of frame->subclass.frame_ending
 
-         ASTERISK-25318 #close
+         In ast_rtp_read, the value of the variable 'mark' which we try to assign to a
+         frame->subclass.frame_ending may be 0, 1 or (1<<23), but we should translate
+         it to 0 or 1.
 
-         Change-Id: I69c17df55ccbb61ef779ac38cc8c6b411376c19a
+         ASTERISK-25451 #close
+         Change-Id: I53bdf5c026041730184a6a809009c028549ce626
 
-2015-08-26 15:26 +0000 [6862c2a167]  Scott Griepentrog <scott@griepentrog.com>
+2015-10-07 01:24 +0000 [3357678b94]  Ivan Poddubny <ivan.poddubny@gmail.com>
 
-       * Chaos: handle failed allocation in get_media_encryption_type
+       * func_presencestate: Return "not_set" when no data is set in AstDB
 
-         If the ast_strndup() call fails to allocate a copy of the
-         transport string for parsing, fail gracefully.
+         Return AST_PRESENCE_NOT_SET when CustomPresence AstDB key does not
+         exist, i.e. when a new CustomPresence is added in the dialplan.
 
-         ASTERISK-25323
-         Reported by: Scott Griepentrog
+         ASTERISK-25400 #close
+         Reported by: Andrew Nagy
 
-         Change-Id: Ia4b905ce6d03da53fea526224455c1044b1a5a28
+         Change-Id: I6fb17b16591b5a55fbffe96f3994ec26b1b1723a
 
-2015-08-26 14:25 +0000 [f1cd636658]  Scott Griepentrog <scott@griepentrog.com>
+2015-10-06 20:43 +0000 [b714b2152d]  Matt Jordan <mjordan@digium.com>
 
-       * Chaos: make hangup NULL tolerant
+       * res/res_rtp_asterisk: Fix assignment after ao2 decrement
 
-         In chan_pjsip_new, if allocation of the pvt
-         structure fails, ast_hangup is called.  But
-         it was written to assume pvt was valid, and
-         this change corrects that.
+         When we decide we will no longer schedule an RTCP write, we remove the
+         reference to the RTP instance, then assign -1 to the stored scheduler ID
+         in case something else comes along and wants to see if anything is scheduled.
 
-         ASTERISK-25323
-         Reported by: Scott Griepentrog
+         That scheduler ID is on the RTP instance. After 60a9172d7ef2 was merged to
+         fix the regression introduced by 3cf0f29310, this improper assignment on a
+         potentially destroyed object started getting tripped on the build agents.
 
-         Change-Id: I5f47860fe9cee4cd56abd3f79b108678ab72cc87
+         Frankly, this should have been crashing a lot more often earlier. I can only
+         assume that the timing was changed just enough by both changes to start
+         actually hitting this problem.
 
-2015-08-26 05:40 +0000 [c01111223f]  Joshua Colp <jcolp@digium.com>
+         As it is, simply moving the assignment prior to the ao2 deference is sufficient
+         to keep the RTP instance from being referenced when it is very, truly,
+         aboslutely dead.
 
-       * chan_sip: Allow call pickup to set the hangup cause.
+         (Note that it is still good practice to assign -1 to the scheduler ID when we
+         know we won't be scheduling it again, as the ao2 deref *may* not always destroy
+         the ao2 object.)
 
-         The call pickup implementation in chan_sip currently sets the channel
-         hangup cause to "normal clearing" if call pickup is successfully
-         performed. This action overwrites the "answered elsewhere" hangup cause
-         set by the call pickup code and can result in the SIP device in
-         question showing a missed call when it should not.
+         ASTERISK-25449
 
-         This change sets the hangup cause to "normal clearing" as a
-         default initially but allows the call pickup to change it as
-         needed.
+         Change-Id: Ie6d3cb4adc7b1a6c078b1c38c19fc84cf787cda7
 
-         ASTERISK-25346 #close
+2015-10-06 12:40 +0000 [f939e2bd48]  Florian Sauerteig <ffs@ccn.net>
 
-         Change-Id: I00ac2c269cee9e29586ee2c65e83c70e52a02cff
+       * chan_sip: Fix port parsing for IPv6 addresses in SIP Via headers.
 
-2015-08-25 07:17 +0000 [2a4eee0cd9]  Joshua Colp <jcolp@digium.com>
+         If a Via header containes an IPv6 address and a port number is ommitted,
+         as it is the standard port, we now leave the port empty and to not set it
+         to the value after the first colon of the IPv6 address.
 
-       * res_pjsip: Add common ast_sip_get_host_ip API.
+         ASTERISK-25443 #close
 
-         Modules commonly used the pj_gethostip function for retrieving the
-         IP address of the host. This function does not cache the result and may
-         result in a DNS lookup occurring, or additional work. If the DNS
-         server is unreachable or network issues arise this can cause the
-         pj_gethostip function to block for a period of time.
+         Change-Id: Ie3c2f05471cd006bf04ed15598589c09577b1e70
 
-         This change adds an ast_sip_get_host_ip and ast_sip_get_host_ip_string
-         function which does the same thing but caches the host IP address at
-         module load time. This results in no additional work being done each
-         time the local host IP address is needed.
+2015-10-05 16:53 +0000 [426263a64d]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25342 #close
+       * chan_pjsip: Fix crash on reINVITE before initial INVITE completes.
 
-         Change-Id: I3205deb679b01fa5ac05a94b623bfd620a2abe1e
+         Apparently some endpoints attempt to send a reINVITE before completing the
+         initial INVITE transaction.  In this case PJSIP responds appropriately to
+         the reINVITE with a 491 INVITE request pending.  Unfortunately chan_pjsip
+         is using the initial INVITE transaction state to determine if an INVITE is
+         the initial INVITE or a reINVITE.  Since the initial INVITE transaction
+         has not been confirmed yet chan_pjsip thinks the reINVITE is an initial
+         INVITE and starts another PBX thread on the channel.  The extra PBX thread
+         ensures that hilarity ensues.
 
-2015-08-24 11:04 +0000 [7c4d0c3506]  Joshua Colp <jcolp@digium.com>
+         * Fix checks for a reINVITE on incoming requests to look for the presence
+         of a to-tag instead of the initial INVITE transaction state.
 
-       * res_pjsip_pubsub: On recreated notify fail deleted sub_tree is referenced
+         * Made caller_id_incoming_request() determine what to do if there is a
+         channel on the session or not.  After a channel is created it is too late
+         to just store the new party id on the session because the session's party
+         id has already been copied to the channel's caller id.
 
-         When recreating a subscription it is possible for a freed sub_tree
-         to be referenced when the initial NOTIFY fails to be created.
+         ASTERISK-25404 #close
+         Reported by: Chet Stevens
 
-         Change-Id: I681c215309aad01b21d611c2de47b3b0a6022788
+         Change-Id: Ie78201c304a2b13226f3a4ce59908beecc2c68be
 
-2015-08-24 06:21 +0000 [6c2dab1e88]  Joshua Colp <jcolp@digium.com>
+2015-10-05 21:34 +0000 [50fa9ff997]  Matt Jordan <mjordan@digium.com>
 
-       * bridge: Kick channel from bridge if hung up during action.
+       * Fix improper usage of scheduler exposed by 5c713fdf18f
 
-         When executing an action in a bridge it is possible for the
-         channel to be hung up without the bridge becoming aware of it.
-         This is most easily reproducible by hanging up when the bridge
-         is streaming DTMF due to a feature timeout. This change makes
-         it so after action execution the channel is checked to determine
-         if it has been hung up and if it has it is kicked from the bridge.
+         When 5c713fdf18f was merged, it allowed for scheduled items to have an ID of
+         '0' returned. While this was valid per the documentation for the API, it was
+         apparently never returned previously. As a result, several users of the
+         scheduler API viewed the result as being invalid, causing them to reschedule
+         already scheduled items or otherwise fail in interesting ways.
 
-         ASTERISK-25341 #close
+         This patch corrects the users such that they view '0' as valid, and a returned
+         ID of -1 as being invalid.
 
-         Change-Id: I6dd8b0c3f5888da1c57afed9e8a802ae0a053062
+         Note that the failing HEP RTCP tests now pass with this patch. These tests
+         failed due to a duplicate scheduling of the RTCP transmissions.
 
-2015-08-23 18:26 +0000 [bc6fe07f5c]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25449 #close
 
-       * res_pjsip/pjsip_configuration: Disregard empty auth values
+         Change-Id: I019a9aa8b6997584f66876331675981ac9e07e39
+2015-08-26 16:58 +0000 [8f777ab584]  Debian Amtelco <dan@amtelco.com>
 
-         When an endpoint is backed by a non-static conf file backend (such as
-         the AstDB or Realtime), the 'auth' object may be returned as being an
-         empty string. Currently, res_pjsip will interpret that as being a valid
-         auth object, and will attempt to authenticate inbound requests. This
-         isn't desired; is an auth value is empty (which the name of an auth
-         object cannot be), we should instead interpret that as being an invalid
-         auth object and skip it.
+       * chan_pjsip: Add Referred-By header to the PJSIP REFER packet.
 
-         ASTERISK-25339 #close
+         Some systems require the REFER packet to include a Referred-By header.
+         If the channel variable SIPREFERREDBYHDR is set, it passes that value as the
+         Referred-By header value.  Otherwise, it adds the current dialog’s local info.
 
-         Change-Id: Ic32b0c6eb5575107d5164a8c40099e687cd722c7
+         Reported by: Dan Cropp
+         Tested by: Dan Cropp
 
-2015-08-19 12:10 +0000 [0582776f7f]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I3d17912ce548667edf53cb549e88a25475eda245
 
-       * ari/ari_websockets.c: Fix ast_debug parameter type mismatch.
+2015-10-03 06:27 +0000 [74635b5638]  Ivan Poddubny <ivan.poddubny@gmail.com>
 
-         This is a type mismatch fix of the debugging commit
-         c63316eec10e1990a88bf4712238d6deb375bfa9 made to find out why
-         a testsuite test was failing only on one of the continuous
-         integration build agents.
+       * manager: Fix GetConfigJSON returning invalid JSON
 
-         Change-Id: Iba34f6e87cec331f6ac80e4daff6476ea6f00a75
+         When GetConfigJSON was introduced back in 1.6, it returned each
+         section as an array of strings: ["key=value", "key2=value2"].
+         Afterwards, it was changed a few times and became
+         ["key": "value", "key2": "value2"], which is not a correct JSON.
+         This patch fixes that by constructing a JSON object {} instead of
+         an array [].
 
-2015-08-19 10:30 +0000 [504213f542]  Scott Griepentrog <scott@griepentrog.com>
+         Also, the keys "istemplate" and "tempates" that are used to
+         indicate templates and their inherited categories are now wrapped in
+         quotes.
 
-       * contrib: script install_prereq should install sqlite3
+         ASTERISK-25391 #close
+         Reported by: Bojan Nemčić
 
-         Asterisk needs the sqlite 3 library, which is package
-         sqlite-devel in CentOS. By adding this package to the
-         script, a problem with configure failing is resolved.
+         Change-Id: Ibbe93c6a227dff14d4a54b0d152341857bcf6ad8
 
-         ASTERISK-25331 #close
-         Reported by: Kevin Harwell
+2015-09-30 17:28 +0000 [40c69e78f5]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I90efaf6a01914fea03f21e5cdbd91c348f44b0ec
+       * res_sorcery_memory_cache.c: Fix deadlock with scheduler.
 
-2015-08-18 16:06 +0000 [77518d5434]  Richard Mudgett <rmudgett@digium.com>
+         A deadlock can happen when a sorcery object is being expired from the
+         memory cache when at the same time another object is being placed into the
+         memory cache.  There are a couple other variations on this theme that
+         could cause the deadlock.  Basically if an object is being expired from
+         the sorcery memory cache at the same time as another thread tries to
+         update the next object expiration timer the deadlock can happen.
 
-       * res_http_websocket.c: Fix some off nominal path cleanup.
+         * Add a deadlock avoidance loop in expire_objects_from_cache() to check if
+         someone is trying to remove the scheduler callback from the scheduler.
 
-         * Remove extraneous unlock on off-nominal path.
-         * Add missing HTTP error reply.
+         ASTERISK-25441 #close
 
-         Change-Id: I1f402bfe448fba8696b507477cab5f060ccd9b2b
+         Change-Id: Iec7b0bdb81a72b39477727b1535b2539ad0cf4dc
 
-2015-08-18 14:46 +0000 [c61547fee6]  Richard Mudgett <rmudgett@digium.com>
+2015-10-01 14:30 +0000 [dfeb513e85]  Richard Mudgett <rmudgett@digium.com>
 
-       * res_ari.c: Add missing off nominal unlock and remove a RAII_VAR().
+       * res_sorcery_memory_cache.c: Replace inline code with function.
 
-         Change-Id: I0c5e7b34057f26dadb39489c4dac3015c52f5dbf
+         Make sorcery_memory_cache_close() call remove_all_from_cache() instead of
+         partially inlining it.
 
-2015-08-17 16:41 +0000 [bd867cd078]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25441
 
-       * app_queue.c: Extract some functions for simpler code.
+         Change-Id: I1aa6cb425b1a4307096f3f914d17af8ec179a74c
 
-         * Extract set_queue_member_pause() from set_member_paused() for simpler
-         and more consistent code.
+2015-10-01 14:27 +0000 [ced0a2d71b]  Richard Mudgett <rmudgett@digium.com>
 
-         * Extract set_queue_member_ringinuse() from
-         set_member_ringinuse_help_members() for simpler code.
+       * res_sorcery_memory_cache.c: Shutdown in a less crash potential order.
 
-         Change-Id: Iecc1f4119c63347341d7ea6b65f5fc4963706306
+         Basically you should shutdown in the opposite order of how you setup since
+         later setup pieces likely depend on earlier setup pieces.  e.g.,
+         Registering your external API with the rest of the system should be the
+         last thing setup and the first thing unregistered during shutdown.
 
-2015-08-14 12:55 +0000 [e5f5b9f384]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I5715765b723100c8d3c2642e9e72cc7ad5ad115e
 
-       * app_queue.c: Fix setting QUEUE_MEMBER 'paused' and 'ringinuse'.
+2015-09-30 17:27 +0000 [cc279eea11]  Richard Mudgett <rmudgett@digium.com>
 
-         Setting the 'paused' and 'ringinuse' options on a queue member using the
-         dialplan function QUEUE_MEMBER did not behave the same way as the
-         equivalent dialplan applications or AMI actions.
+       * res_sorcery_memory_cache.c: Misc tweaks.
 
-         * Made queue_function_mem_write() call the set_member_paused() and
-         set_member_value() for the 'paused' and 'ringinuse' options respectively.
-         A beneficial side effect is that the queue name is now optional and sets
-         the value in all queues the interface is a member.
+         Change-Id: I8cd32dffbb4f33bb0c39518d6e4c991e73573160
 
-         * Update QUEUE_MEMBER XML documentation.
+2015-09-30 17:27 +0000 [9af3b613f6]  Richard Mudgett <rmudgett@digium.com>
 
-         * Fix error checking in QUEUE_MEMBER() write.
+       * res_sorcery_memory_cache.c: Made use OBJ_SEARCH_MASK.
 
-         ASTERISK-25215 #close
-         Reported by: Lorne Gaetz
+         Change-Id: Ibca6574dc3c213b29cc93486e01ccd51f5caa46c
 
-         Change-Id: I3a016be8dc94d63a9cc155295ff9c9afa5f707cb
+2015-09-30 13:42 +0000 [56ed7b9dd5]  Joshua Colp <jcolp@digium.com>
 
-2015-08-17 13:34 +0000 [ded51e3d77]  Richard Mudgett <rmudgett@digium.com>
+       * res_rtp_asterisk: Move "Set role" warning to be debug.
 
-       * app_queue.c: Fix error checking in QUEUE_MEMBER() read.
+         In practice the set_role API callback can be invoked even
+         when no ICE is present on an RTP instance. This can occur
+         if ICE has not been enabled on it.
 
-         Change-Id: I7294e13d27875851c2f4ef6818adba507509d224
+         ASTERISK-25438 #close
 
-2015-08-17 11:00 +0000 [ab373f2cef]  Scott Griepentrog <scott@griepentrog.com>
+         Change-Id: I0e17e4316f0f0d7f095c78c3d4fd73a913b6ba69
 
-       * CHAOS: prevent sorcery object with null id
+2015-09-28 15:31 +0000 [ddebb217f0]  Richard Mudgett <rmudgett@digium.com>
 
-         When allocating a sorcery object, fail if the
-         id value was not allocated.
+       * sched.c: Add warning about negative time interval request.
 
-         ASTERISK-25323
-         Reported by: Scott Griepentrog
+         Change-Id: Ib91435fb45b7f5f7c0fc83d0eec20b88098707bc
 
-         Change-Id: I152133fb7545a4efcf7a0080ada77332d038669e
+2015-09-29 14:53 +0000 [d30939b6e8]  Kevin Harwell <kharwell@digium.com>
 
-2015-08-14 15:46 +0000 [b719f56c72]  Mark Michelson <mmichelson@digium.com>
+       * ARI: Changed version from 1.8.0 to 1.9.0
 
-       * res_pjsip_sdp_rtp: Restore removed NULL check.
+         Change-Id: I510991c60d28d171f47c4b58bba4947f7fc71b13
 
-         When sending an RTP keepalive, we need to be sure we're not dealing with
-         a NULL RTP instance. There had been a NULL check, but the commit that
-         added the rtp_timeout and rtp_hold_timeout options removed the NULL
-         check.
+2015-09-25 18:37 +0000 [5f19c9bade]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I2d7dcd5022697cfc6bf3d9e19245419078e79b64
+       * res/ari/config.c: Fix user sort compare function.
 
-2015-08-13 12:30 +0000 [cea5dc7b8a]  Richard Mudgett <rmudgett@digium.com>
+         Made use the ao2 sort compare template function and OBJ_SEARCH_xxx
+         identifiers.
 
-       * audiohook.c: Simplify variable usage in audiohook_read_frame_both().
+         Change-Id: Ic53005dc5aafa7a36c72300dd89b75fb63c92f4c
 
-         Change-Id: I58bed58631a94295b267991c5b61a3a93c167f0c
+2015-09-25 17:26 +0000 [3a85764039]  Richard Mudgett <rmudgett@digium.com>
 
-2015-08-13 12:22 +0000 [b3a56bee83]  Richard Mudgett <rmudgett@digium.com>
+       * res/ari/config.c: Optimize conf_alloc() object init.
 
-       * audiohook.c: Fix MixMonitor crash when using the r() or t() options.
+         * Now conf_alloc() has more off nominal error checking.
 
-         The built frame format in audiohook_read_frame_both() is now set to a
-         signed linear format before the rx and tx frames are duplicated instead of
-         only for the mixed audio frame duplication.
+         * Eliminated RAII_VAR() use in conf_alloc().
 
-         ASTERISK-25322 #close
-         Reported by Sean Pimental
+         * Eliminated a dubius shortcut when destroying cfg->general in
+         conf_destructor() that would cause a crash if cfg->general failed to get
+         allocated.
 
-         Change-Id: I86f85b5c48c49e4e2d3b770797b9d484250a1538
-
-2015-08-12 12:59 +0000 [25af2d71c8]  Kevin Harwell <kharwell@digium.com>
+         * Add some ACO registration section comments.
 
-       * chan_sip.c: wrong peer searched in sip_report_security_event
+         Change-Id: Ia40c2b1b2d0777d641605118ae019c5a73865e1a
 
-         In chan_sip, after handling an incoming invite a security event is raised
-         describing authorization (success, failure, etc...). However, it was doing
-         a lookup of the peer by extension. This is fine for register messages, but
-         in the case of an invite it may search and find the wrong peer, or a non
-         existent one (for instance, in the case of call pickup). Also, if the peers
-         are configured through realtime this may cause an unnecessary database lookup
-         when caching is enabled.
+2015-09-25 16:48 +0000 [028033e5a8]  Richard Mudgett <rmudgett@digium.com>
 
-         This patch makes it so that sip_report_security_event searches by IP address
-         when looking for a peer instead of by extension after an invite is processed.
+       * res/ari/config.c: Fix conf_alloc() object init.
 
-         ASTERISK-25320 #close
+         Need to finish initializing the string fields in the ao2 object before
+         putting any default strings into them.
 
-         Change-Id: I9b3f11549efb475b6561c64f0e6da1a481d98bc4
-2015-08-13 05:26 +0000 [e18c300550]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-25383 #close
+         Reported by:  yaron nahum
 
-       * res_http_websocket: When shutting down a session don't close closed socket
+         Change-Id: I9f7f3a03f0c4991a01593abf8697b9a587c0ea84
 
-         Due to the use of ast_websocket_close in session termination it is
-         possible for the underlying socket to already be closed when the
-         session is terminated. This occurs when the close frame is attempted
-         to be written out but fails.
+2015-09-27 20:45 +0000 [90165e306d]  Matt Jordan <mjordan@digium.com>
 
-         Change-Id: I7572583529a42a7dc911ea77a974d8307d5c0c8b
-2015-08-11 05:24 +0000 [b4e9416138]  Joshua Colp <jcolp@digium.com>
+       * res/res_stasis: Fix accidental subscription to 'all' bridge topic
 
-       * res_http_websocket: Forcefully terminate on write errors.
+         When b99a7052621700a1aa641a1c24308f5873275fc8 was merged, subscribing to a
+         NULL bridge will now cause app_subscribe_bridge to implicitly subscribe to
+         all bridges. Unfortunately, the res_stasis control loop did not check that
+         a bridge changing on a channel's control object was actually also non-NULL.
+         As a result, app_subscribe_bridge will be called with a NULL bridge when a
+         channel leaves a bridge. This causes a new subscription to be made to the
+         bridge. If an application has also subscribed to the bridge, the application
+         will now have two subscriptions:
+         (1) The explicit one created by the app
+         (2) The implicit one accidentally created by the control structure
 
-         The res_http_websocket module will currently attempt to close
-         the WebSocket connection if fatal cases occur, such as when
-         attempting to write out data and being unable to. When the
-         fatal cases occur the code attempts to write a WebSocket close
-         frame out to have the remote side close the connection. If
-         writing this fails then the connection is not terminated.
+         As a result, the 'BridgeDestroyed' event can be sent multiple times. This
+         patch corrects the control loop such that it only subscribes an application
+         to a new bridge if the bridge pointer is non-NULL.
 
-         This change forcefully terminates the connection if the
-         WebSocket is to be closed but is unable to send the close frame.
+         ASTERISK-24870
 
-         ASTERISK-25312 #close
+         Change-Id: I3510e55f6bc36517c10597ead857b964463c9f4f
 
-         Change-Id: I10973086671cc192a76424060d9ec8e688602845
+2015-09-04 13:51 +0000 [e1223ff6db]  Scott Griepentrog <scott@griepentrog.com>
 
-2015-08-10 13:43 +0000 [256bc52b66]  Richard Mudgett <rmudgett@digium.com>
+       * Scripts: check file versions of Asterisk and dependencies
 
-       * chan_dahdi.c: Flush the DAHDI write buffer after starting DTMF.
+         To help in diagnosing mismatched modules and libraries, this
+         script scans for version, repository, and source information
+         and reports what is found.
 
-         Pressing DTMF digits on a phone to go out on a DAHDI channel can result in
-         the digit not being recognized or even heard by the peer.
+         ASTERISK-25376 #close
+         Reported by: Ashley Sanders
 
-         Phone -> Asterisk -> DAHDI/channel
+         Change-Id: Ib0642d0fb96712476f59760d6d137a24633fe2d6
 
-         Turns out the DAHDI behavior with DTMF generation (and any other generated
-         tones) is exposed by the "buffers=" setting in chan_dahdi.conf.  When
-         Asterisk requests to start sending DTMF then DAHDI waits until its write
-         buffer is empty before generating any samples for the DTMF tones.  When
-         Asterisk subsequently requests DAHDI to stop sending DTMF then DAHDI
-         immediately stops generating the DTMF samples.  As a result, the more
-         samples there are in the DAHDI write buffer the shorter the time DTMF
-         actually gets sent on the wire.  If there are more samples in the write
-         buffer than the time DTMF is supposed to be sent then no DTMF gets sent on
-         the wire.  With the "buffers=12,half" setting and each buffer representing
-         20 ms of samples then the DAHDI write buffer is going to contain around
-         120 ms of samples.  For DTMF to be recognized by the peer the actual sent
-         DTMF duration needs to be a minimum of 40 ms.  Therefore, the intended
-         duration needs to be a minimum of 160 ms for the peer to receive the
-         minimum DTMF digit duration to recognize it.
+2015-09-24 14:56 +0000 [6b1e7583c1]  Richard Mudgett <rmudgett@digium.com>
 
-         A simple and effective solution to work around the DAHDI behavior is for
-         Asterisk to flush the DAHDI write buffer when sending DTMF so the full
-         duration of DTMF is actually sent on the wire.  When someone is going to
-         send DTMF they are not likely to be talking before sending the tones so
-         the flushed write samples are expected to just contain silence.
+       * app_queue.c: Force COLP update if outgoing channel name changed.
 
-         * Made dahdi_digit_begin() flush the DAHDI write buffer after requesting
-         to send a DTMF digit.
+         * When a call is answered and the outgoing channel name has changed then
+         force a connected line update because the channel is no longer the same.
+         The channel was masqueraded into by another channel.  This is usually
+         because of a call pickup.
 
-         ASTERISK-25315 #close
-         Reported by John Hardin
+         Note: Forwarded calls are handled in a controlled manner so the original
+         channel name is replaced with the forwarded channel.
 
-         Change-Id: Ib56262c708cb7858082156bfc70ebd0a220efa6a
+         ASTERISK-25423 #close
+         Reported by: John Hardin
 
-2015-08-05 14:21 +0000 [800e0ea48d]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ie275ea9e99c092ad369db23e0feb08c44498c172
 
-       * chan_dahdi.c: Lock private struct for ast_write().
+2015-09-24 14:20 +0000 [6bf304bf25]  Richard Mudgett <rmudgett@digium.com>
 
-         There is a window of opportunity for DTMF to not go out if an audio frame
-         is in the process of being written to DAHDI while another thread starts
-         sending DTMF.  The thread sending the audio frame could be past the
-         currently dialing check before being preempted by another thread starting
-         a DTMF generation request.  When the thread sending the audio frame
-         resumes it will then cause DAHDI to stop the DTMF tone generation.  The
-         result is no DTMF goes out.
+       * app_queue.c: Factor out a connected line update routine.
 
-         * Made dahdi_write() lock the private struct before writing to the DAHDI
-         file descriptor.
+         Replace inlined code with update_connected_line_from_peer().
 
-         ASTERISK-25315
-         Reported by John Hardin
+         ASTERISK-25423
+         Reported by: John Hardin
 
-         Change-Id: Ib4e0264cf63305ed5da701188447668e72ec9abb
+         Change-Id: I33bbd033596fcb0208d41d8970369b4e87b806f3
 
-2015-08-10 18:23 +0000 [c126afe18f]  Richard Mudgett <rmudgett@digium.com>
+2015-09-24 13:27 +0000 [e36b5f1e8e]  Richard Mudgett <rmudgett@digium.com>
 
-       * res_pjsip.c: Fix crash from corrupt saved SUBSCRIBE message.
+       * app_dial.c: Make 'A' option pass COLP updates.
 
-         If the saved SUBSCRIBE message is not parseable for whatever reason then
-         Asterisk could crash when libpjsip tries to parse the message and adds an
-         error message to the parse error list.
+         While the 'A' option is playing the announcement file allow the caller and
+         peer to exchange COLP update frames.
 
-         * Made ast_sip_create_rdata() initialize the parse error rdata list.  The
-         list is checked after parsing to see that it remains empty for the
-         function to return successful.
+         ASTERISK-25423
+         Reported by: John Hardin
 
-         ASTERISK-25306
-         Reported by Mark Michelson
+         Change-Id: Iac6cf89b56d26452c6bb88e9363622bbf23895f9
 
-         Change-Id: Ie0677f69f707503b1a37df18723bd59418085256
+2015-09-24 12:59 +0000 [747bfac895]  Richard Mudgett <rmudgett@digium.com>
 
-2015-08-10 07:40 +0000 [f68c995bc9]  Alexander Traud <pabstraud@compuserve.com>
+       * app_dial.c: Force COLP update if outgoing channel name changed.
 
-       * chan_sip: Fix negotiation of iLBC 30.
+         * When a call is answered and the outgoing channel name has changed then
+         force a connected line update because the channel is no longer the same.
+         The channel was masqueraded into by another channel.  This is usually
+         because of a call pickup.
 
-         iLBC 20 was advertised in a SIP/SDP negotiation. However, only iLBC 30 is
-         supported. Removes "a=fmtp:x mode=y" from SDP. Because of RFC 3952 section 5,
-         only iLBC 30 is negotiated now.
+         Note: Forwarded calls are handled in a controlled manner so the original
+         channel name is replaced with the forwarded channel.
 
-         ASTERISK-25309 #close
+         ASTERISK-25423
+         Reported by: John Hardin
 
-         Change-Id: I92d724600a183eec3114da0ac607b994b1a793da
+         Change-Id: I2e01f7a698fbbc8c26344a59c2be40c6cd98b00c
 
-2015-08-09 18:42 +0000 [8e194047ac]  Matt Jordan <mjordan@digium.com>
+2015-09-24 12:37 +0000 [14481d9aa0]  Richard Mudgett <rmudgett@digium.com>
 
-       * res/res_format_attr_silk: Expose format attributes to other modules
+       * app_dial.c: Factor out a connected line update routine.
 
-         This patch adds the .get callback to the format attribute module, such
-         that the Asterisk core or other third party modules can query for the
-         negotiated format attributes.
+         Replace inlined code with update_connected_line_from_peer().
 
-         Change-Id: Ia24f55cf9b661d651ce89b4f4b023d921380f19c
+         ASTERISK-25423
+         Reported by: John Hardin
 
-2015-08-09 17:56 +0000 [a0f451c35e]  Matt Jordan <mjordan@digium.com>
+         Change-Id: Ia14f18def417645cd7fb453e1bdac682630a5091
 
-       * main/format: Add an API call for retrieving format attributes
+2015-09-23 17:41 +0000 [bbeda190c3]  Richard Mudgett <rmudgett@digium.com>
 
-         Some codecs that may be a third party library to Asterisk need to have
-         knowledge of the format attributes that were negotiated. Unfortunately,
-         when the great format migration of Asterisk 13 occurred, that ability
-         was lost.
+       * app_dial.c: Remove some no-op code.
 
-         This patch adds an API call, ast_format_attribute_get, to the core
-         format API, along with updates to the unit test to check the new API
-         call. A new callback is also now available for format attribute modules,
-         such that they can provide the format attribute values they manage.
+         Change-Id: Ice1884a94315d3cb7e3bbd47a9fba76a27276c54
 
-         Note that the API returns a void *. This is done as the format attribute
-         modules themselves may store format attributes in any particular manner
-         they like. Care should be taken by consumers of the API to check the
-         return value before casting and dereferencing. Consumers will obviously
-         need to have a priori knowledge of the type of the format attribute as
-         well.
+2015-09-23 14:02 +0000 [f050fa76eb]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: Ieec76883dfb46ecd7aff3dc81a52c81f4dc1b9e3
+       * logger: Prevent duplicate dynamic channels from being added.
 
-2015-08-07 22:11 +0000 [26f0559a94]  David M. Lee <dlee@respoke.io>
+         There was a problem observed where the "logger add channel" CLI command
+         would allow for a channel with the same name to be added multiple times.
+         This would result in each message being written out to the same file
+         multiple times.
 
-       * Replace htobe64 with htonll
+         The problem was due to the difference in how logger channel filenames
+         are stored versus the format they are allowed to be presented when they
+         are added. For instance, if adding the logger channel "foo" through the
+         CLI, the result would be a logger channel with the file name
+         /var/log/asterisk/foo being stored. So when trying to add another "foo"
+         channel, "foo" would not match "/var/log/asterisk/foo" so we'd happily
+         add the duplicate channel.
 
-         We don't have a compatability function to fill in a missing htobe64; but
-         we already have one for the identical htonll.
+         The fix presented here is to introduce two new methods in the logger
+         code:
+          * make_filename(): given a logger channel name, this creates the
+            filename for that logger channel.
+          * find_logchannel(): given a logger channel name, this calls
+            make_filename() and then traverses the list of logchannels in order
+            to find a match.
 
-         Change-Id: Ic0a95db1c5b0041e14e6b127432fb533b97e4cac
+         This change has made use of make_filename() and find_logchannel()
+         throughout to more consistently behave.
 
-2015-08-07 14:20 +0000 [df9ce36366]  Scott Emidy <jemidy@digium.com>
+         ASTERISK-25305 #close
+         Reported by Mark Michelson
 
-       * ARI: Retrieve existing log channels
+         Change-Id: I892d52954d6007d8bc453c3cbdd9235dec9c4a36
 
-         An http request can be sent to get the existing Asterisk logs.
+2015-09-24 14:49 +0000 [629458d349]  Mark Michelson <mmichelson@digium.com>
 
-         The command "curl -v -u user:pass -X GET 'http://localhost:8088
-         /ari/asterisk/logging'" can be run in the terminal to access the
-         newly implemented functionality.
+       * Do not swallow frames on channels leaving bridges.
 
-         * Retrieve all existing log channels
+         When leaving a bridge, indications on a channel could be swallowed by
+         the internal indication logic because it appears that the channel is on
+         its way to be hung up anyway. One such situation where this is
+         detrimental is when channels on hold are redirected out of a bridge. The
+         AST_CONTROL_UNHOLD indication from the bridging code is swallowed,
+         leaving the channel in question to still appear to be on hold.
 
-         ASTERISK-25252
+         The fix here is to modify the logic inside ast_indicate_data() to not
+         drop the indication if the channel is simply leaving a bridge. This way,
+         channels on hold redirected out of a bridge revert to their expected "in
+         use" state after the redirection.
 
-         Change-Id: I7bb08b93e3b938c991f3f56cc5d188654768a808
+         ASTERISK-25418 #close
+         Reported by Mark Michelson
 
-2015-08-07 11:14 +0000 [e9f1bc08cb]  Scott Emidy <jemidy@digium.com>
+         Change-Id: If6115204dfa0551c050974ee138fabd15f978949
 
-       * ARI: Creating log channels
+2015-09-22 17:08 +0000 [5f15cd93f0]  Richard Mudgett <rmudgett@digium.com>
 
-         An http request can be sent to create a log channel
-         in Asterisk.
+       * app_page.c: Fix crash when forwarding with a predial handler.
 
-         The command "curl -v -u user:pass -X POST
-         'http://localhost:088/ari/asterisk/logging/mylog?
-         configuration=notice,warning'" can be run in the terminal
-         to access the newly implemented functionality for ARI.
+         Page uses the async method of dialing with the dial API.  When a call gets
+         forwarded there is no calling channel available.  If the predial handler
+         was set then the calling channel could not be put into auto-service
+         for the forwarded call because it doesn't exist.  A crash is the result.
 
-         * Ability to create log channels using ARI
+         * Moved the callee predial parameter string processing to before the
+         string is passed to the dial API rather than having the dial API do it.
+         There are a few benefits do doing this.  The first is the predial
+         parameter string processing doesn't need to be done for each channel
+         called by the dial API.  The second is in async mode and the forwarded
+         channel is to have the predial handler executed on it then the
+         non-existent calling channel does not need to be present to process the
+         predial parameter string.
 
-         ASTERISK-25252
+         * Don't start auto-service on a non-existent calling channel to execute
+         the predial handler when the dial API is in async mode and forwarding a
+         call.
 
-         Change-Id: I9a20e5c75716dfbb6b62fd3474faf55be20bd782
+         ASTERISK-25384 #close
+         Reported by: Chet Stevens
 
-2015-08-06 15:18 +0000 [78364132ce]  Scott Emidy <jemidy@digium.com>
+         Change-Id: If53892b286d29f6cf955e2545b03dcffa2610981
 
-       * ARI: Deleting log channels
+2015-09-03 21:19 +0000 [b50e372394]  Matt Jordan <mjordan@digium.com>
 
-         An http request can be sent to delete a log channel
-         in Asterisk.
+       * ARI: Add events for Contact and Peer Status changes
 
-         The command "curl -v -u user:pass -X DELETE 'http://localhost:8088
-         /ari/asterisk/logging/mylog'" can be run in the terminal
-         to access the newly implemented functionally for ARI.
+         This patch adds support for receiving events regarding Peer status changes
+         and Contact status changes. This is particularly useful in scenarios where
+         we are subscribed to all endpoints and channels, where we often want to know
+         more about the state of channel technology specific items than a single
+         endpoint's state.
 
-         * Able to delete log channels using ARI
+         ASTERISK-24870
 
-         ASTERISK-25252
+         Change-Id: I6137459cdc25ce27efc134ad58abf065653da4e9
 
-         Change-Id: Id6eeb54ebcc511595f0418d586ff55914bc3aae6
+2015-09-04 12:24 +0000 [3502c0431d]  Matt Jordan <mjordan@digium.com>
 
-2015-08-06 12:48 +0000 [e25569ef95]  Mark Michelson <mmichelson@digium.com>
+       * res/res_stasis_device_state: Allow for subscribing to 'all' device state
 
-       * res_pjsip_pubsub: More accurately persist packet.
+         This patch adds support for subscribing to all device state changes. This is
+         done either by subscribing to an empty device, e.g., 'eventSource=deviceState:',
+         or by the WebSocket connection specifying that it wants all state in the
+         system.
 
-         The pjsip_rx_data structure has a pkt_info.packet field on it that is
-         the packet that was read from the transport. For datagram transports,
-         the packet read from the transport will correspond to the SIP message
-         that arrived. For streamed transports, however, it is possible to read
-         multiple SIP messages in one packet.
+         ASTERISK-24870
 
-         In a recent case, Asterisk crashed on a system where TCP was being used.
-         This is because at some point, a read from the TCP socket resulted in a
-         200 OK response as well as an incoming SUBSCRIBE request being stored in
-         rdata->pkt_info.packet. When the SUBSCRIBE was processed, the
-         combination 200 OK and SUBSCRIBE was saved in persistent storage. Later,
-         a restart of Asterisk resulted in the crash because the persistent
-         subscription recreation code ended up building the 200 OK response
-         instead of a SUBSCRIBE request, and we attempted to access
-         request-specific data.
+         Change-Id: I9cfeca1c9e2231bd7ea73e45919111d44d2eda32
 
-         The fix here is to use the pjsip_msg_print() function in order to
-         persist SUBSCRIBE requests. This way, rather than using the raw socket
-         data, we use the parsed SIP message that PJSIP has given us. If we
-         receive multiple SIP messages from a single read, we will be sure only
-         to save off the relevant SIP message. There also is a safeguard put in
-         place to make sure that if we do end up reconstructing a SIP response,
-         it will not cause a crash.
+2015-09-04 12:25 +0000 [4c9f613309]  Matt Jordan <mjordan@digium.com>
 
-         ASTERISK-25306 #close
-         Reported by Mark Michelson
+       * ARI: Add the ability to subscribe to all events
 
-         Change-Id: I4bf16f7b76a2541d10b55de82bcd14c6e542afb2
+         This patch adds the ability to subscribe to all events. There are two possible
+         ways to accomplish this:
+         (1) On initial WebSocket connection. This patch adds a new query parameter,
+             'subscribeAll'. If present and True, Asterisk will subscribe the
+             applications to all ARI events.
+         (2) Via the applications resource. When subscribing in this manner, an ARI
+             client should merely specify a blank resource name, i.e., 'channels:'
+             instead of 'channels:12354'. This will subscribe the application to all
+             resources of the 'channels' type.
 
-2015-08-04 16:12 +0000 [8521a86367]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-24870 #close
 
-       * res_pjsip: Ensure sanitized XML is NULL terminated.
+         Change-Id: I4a943b4db24442cf28bc64b24bfd541249790ad6
 
-         The ast_sip_sanitize_xml function is used to sanitize
-         a string for placement into XML. This is done by examining
-         an input string and then appending values to an output
-         buffer. The function used by its implementation, strncat,
-         has specific behavior that was not taken into account.
-         If the size of the input string exceeded the available
-         output buffer size it was possible for the sanitization
-         function to write past the output buffer itself causing
-         a crash. The crash would either occur because it was
-         writing into memory it shouldn't be or because the resulting
-         string was not NULL terminated.
+2015-09-21 08:16 +0000 [ec514ad64d]  Elazar Broad <elazar@thebroadfamily.com>
 
-         This change keeps count of how much remaining space is
-         available in the output buffer for text and only allows
-         strncat to use that amount.
+       * core/logging: Fix logging to more than one syslog channel
 
-         Since this was exposed by the res_pjsip_pidf_digium_body_supplement
-         module attempting to send a large message the maximum allowed
-         message size has also been increased in it.
+         Currently, Asterisk will log to the last configured syslog
+         channel in logger.conf. This is due to the fact that the
+         final call to openlog() supersedes all of the previous calls.
+         This commit removes the call to openlog() and passes the
+         facility to ast_log_vsyslog(), along with utilizing the
+         LOG_MAKEPRI macro to ensure that the message is routed to
+         the correct facility and with the correct priority.
 
-         A unit test has also been added which confirms that the
-         ast_sip_sanitize_xml function is providing NULL terminated
-         output even when the input length exceeds the output
-         buffer size.
+         ASTERISK-25407 #close
+         Reported by: Elazar Broad
+         Tested by: Elazar Broad
 
-         ASTERISK-25304 #close
+         Change-Id: Ie2a2416bc00cce1b04e99ef40917c2011953ddd2
 
-         Change-Id: I743dd9809d3e13d722df1b0509dfe34621398302
+2015-09-21 18:06 +0000 [aeddee39fb]  Kevin Harwell <kharwell@digium.com>
 
-2015-08-05 05:23 +0000 [9a12804e59]  Joshua Colp <jcolp@digium.com>
+       * app_record: RECORDED_FILE variable not being populated
 
-       * res_rtp_asterisk: Don't leak temporary key when enabling PFS.
+         The RECORDED_FILE variable is empty unless a '%d' is specified in the filename.
+         This patch makes it so the variable is always set to the filename.
 
-         A change recently went in which enabled perfect forward secrecy for
-         DTLS in res_rtp_asterisk. This was accomplished two different ways
-         depending on the availability of a feature in OpenSSL. The fallback
-         method created a temporary instance of a key but did not free it.
-         This change fixes that.
+         ASTERISK-25410 #close
 
-         ASTERISK-25265
+         Change-Id: I4ec826d8eb582ae2ad184e717be8668b74d37653
 
-         Change-Id: Iadc031b67a91410bbefb17ffb4218d615d051396
-2015-08-04 09:47 +0000 [27dc2094e9]  Mark Michelson <mmichelson@digium.com>
+2015-09-16 08:22 +0000 [2bd27d1222]  Joshua Colp <jcolp@digium.com>
 
-       * res_http_websocket: Debug write lengths.
+       * pbx: Update device and presence state when changing a hint extension.
 
-         Commit 39cc28f6ea2140ad6d561fd4c9e9a66f065cecee attempted to fix a
-         test failure observed on 32 bit test agents by ensuring that a cast from
-         a 32 bit unsigned integer to a 64 bit unsigned integer was happening in
-         a predictable place. As it turns out, this did not cause test runs to
-         succeed.
+         When changing a hint extension without removing the hint first the
+         device state and presence state is not updated. This causes the state
+         of the hint to be that of the previous extension and not the current
+         one. This state is kept until a state change occurs as a result of
+         something (presence state change, device state change).
 
-         This commit adds several redundant debug messages that print the payload
-         lengths of websocket frames. The idea here is that this commit will not
-         cause tests to succeed for the faulty test agent, but we might deduce
-         where the fault lies more easily this way by observing at what point the
-         expected value (537) changes to some ungangly huge number.
+         This change updates the hint with the current device and presence
+         state of the new extension when it is changed. Any state callbacks
+         which may have been added before the hint extension is changed are
+         also informed of the new device and presence state if either have
+         changed.
 
-         If you are wondering why something like this is being committed to the
-         branch, keep in mind that in commit
-         39cc28f6ea2140ad6d561fd4c9e9a66f065cecee I noted that the observed test
-         failures only happen when automated tests are run. Attempts to run the
-         tests by hand manually on the test agent result in the tests passing.
+         ASTERISK-25394 #close
 
-         Change-Id: I14a65c19d8af40dadcdbd52348de3b0016e1ae8d
+         Change-Id: If268f1110290e502c73dd289c9e7e7b27bc8432f
 
-2015-08-03 11:06 +0000 [39cc28f6ea]  Mark Michelson <mmichelson@digium.com>
+2015-09-17 16:34 +0000 [c94f46080f]  Scott Griepentrog <scott@griepentrog.com>
 
-       * res_http_websocket: Avoid passing strlen() to ast_websocket_write().
+       * CHAOS: avoid crash if string create fails
 
-         We have seen a rash of test failures on a 32-bit build agent. Commit
-         48698a5e21d7307f61b5fb2bd39fd593bc1423ca solved an obvious problem where
-         we were not encoding a 64-bit value correctly over the wire. This
-         commit, however, did not solve the test failures.
+         Validate string buffer allocation before using them.
 
-         In the failing tests, ARI is attempting to send a 537 byte text frame
-         over a websocket. When sending a frame this small, 16 bits are all that
-         is required in order to encode the payload length on the websocket
-         frame. However, ast_websocket_write() thinks that the payload length is
-         greater than 65535 and therefore writes out a 64 bit payload length.
-         Inspecting this payload length, the lower 32 bits are exactly what we
-         would expect it to be, 537 in hex. The upper 32 bits, are junk values
-         that are not expected to be there.
+         ASTERISK-25323
 
-         In the failure, we are passing the result of strlen() to a function that
-         expects a uint64_t parameter to be passed in. strlen() returns a size_t,
-         which on this 32-bit machine is 32 bits wide. Normally, passing a 32-bit
-         unsigned value to somewhere where a 64-bit unsigned value is expected
-         would cause no problems. In fact, in manual runs of failing tests, this
-         works just fine. However, ast_websocket_write() uses the Asterisk
-         optional API, which means that rather than a simple function call, there
-         are a series of macros that are used for its declaration and
-         implementation. These macros may be causing some sort of error to occur
-         when converting from a 32 bit quantity to a 64 bit quantity.
+         Change-Id: Ib9c338bdc1e53fb8b81366f0b39482b83ef56ce0
 
-         This commit changes the logic by making existing ast_websocket_write()
-         calls use ast_websocket_write_string() instead. Within
-         ast_websocket_write_string(), the 64-bit converted strlen is saved in a
-         local variable, and that variable is passed to ast_websocket_write()
-         instead.
+2015-09-17 04:52 +0000 [b59c4d82b5]  Walter Doekes <walter+asterisk@wjd.nu>
 
-         Note that this commit message is full of speculation rather than
-         certainty. This is because the observed test failures, while always
-         present in automated test runs, never occur when tests are manually
-         attempted on the same test agent. The idea behind this commit is to fix
-         a theoretical issue by performing changes that should, at the least,
-         cause no harm. If it turns out that this change does not fix the failing
-         tests, then this commit should be reverted.
+       * chan_sip: Fix From header truncation for extremely long CALLERID(name).
 
-         Change-Id: I4458dd87d785ca322b89c152b223a540a3d23e67
+         The CALLERID(num) and CALLERID(name) and other info are placed into the
+         `char from[256]` in initreqprep. If the name was too long, the addr-spec
+         and params wouldn't fit.
 
-2015-07-28 05:33 +0000 [aed068844c]  Mark Duncan <mark@syon.co.jp>
+         Code is moved around so the addr-spec with params is placed there first,
+         and then fitting in as much of the display-name as possible.
 
-       * res/res_rtp_asterisk: Add ECDH support
+         ASTERISK-25396 #close
 
-         This will add ECDH support to Asterisk. It will
-         detect auto ECDH support in OpenSSL
-         (1.0.2b and above) during ./configure. If this is
-         available, it will use it,
-         otherwise it will fall back to prime256v1 (this
-         behavior is consistent with
-         other projects such as Apache and nginx).
+         Change-Id: I33632baf024f01b6a00f8c7f35c91e5f68c40260
 
-         This fixes WebRTC being broken in Firefox 38+ due
-         to Firefox now only supporting
-         ciphers with perfect forward secrecy.
+2015-09-17 16:59 +0000 [4cc59533b9]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25265 #close
+       * CHAOS: res_pjsip_diversion avoid crash if allocation fails
 
-         Change-Id: I8c13b33a2a79c0bde2e69e4ba6afa5ab9351465b
+         Validate ast_malloc buffer returned before using it in
+         set_redirecting_value().
 
-2015-07-29 14:17 +0000 [1ae762634c]  Benjamin Ford <bford@digium.com>
+         ASTERISK-25323
 
-       * ARI: Rotate log channels.
+         Change-Id: I15d2ed7cb0546818264c0bf251aa40adeae83253
 
-         An http request can be sent to rotate a specified log channel.
-         If the channel does not exist, an error response will be
-         returned.
+2015-09-17 16:47 +0000 [4fb95bbc4e]  Kevin Harwell <kharwell@digium.com>
 
-         The command "curl -v -u user:pass -X PUT 'http://localhost:8088
-         /ari/asterisk/logging/logChannelName/rotate'" can be run in the
-         terminal to access this new functionality.
-
-         * Added the ability to rotate log files through ARI
-
-         ASTERISK-25252
+       * app_queue: AgentComplete event has wrong reason
 
-         Change-Id: Iaefa21cbbc1b29effb33004ee3d89c977e76ab01
+         When a queued caller transfers an agent to another extension sometimes the
+         raised AgentComplete event has a reason of "caller" and sometimes "transfer".
+         Since a transfer has taken place this should always be transfer. This occurs
+         because sometimes the stasis hangup event arrives before the transfer event
+         thus writing a different reason out.
 
-2015-07-29 13:49 +0000 [aeeb170fc4]  Richard Mudgett <rmudgett@digium.com>
+         With this patch, when a hangup event is received during a transfer it will
+         check to see if the channel that is hanging up is part of a transfer. If so
+         it will return and let the subsequently received transfer event handler take
+         care of the cleanup.
 
-       * rtp_engine.c: Fix performance issue with several channel drivers that use RTP.
+         ASTERISK-25399 #close
 
-         ast_rtp_codecs_get_payload() gets called once or twice for every received
-         RTP frame so it would be nice to not allocate an ao2 object to then have
-         it destroyed shortly thereafter.  The ao2 object gets allocated only if
-         the payload type is not set by the channel driver as a negotiated value.
-         The issue affects chan_skinny, chan_unistim, chan_rtp, and chan_ooh323.
+         Change-Id: Ic63c49bd9a5ed463ea7a032fd2ea3d63bc81a50d
 
-         * Made static_RTP_PT[] an array of ao2 objects that
-         ast_rtp_codecs_get_payload() can return instead of an array of structs
-         that must be copied into a created ao2 object.
+2015-09-17 13:09 +0000 [fb6b5c684b]  Scott Griepentrog <scott@griepentrog.com>
 
-         ASTERISK-25296 #close
-         Reported by: Richard Mudgett
+       * PJSIP: avoid crash when getting rtp peer
 
-         Change-Id: Icb6de5cd90bfae07d44403a1352963db9109dac0
+         Although unlikely, if the tech private is returned as
+         a NULL, chan_pjsip_get_rtp_peer() would crash.
 
-2015-07-29 17:00 +0000 [84262749d2]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25323
 
-       * res_rtp_asterisk.c: Fix off-nominal crash potential.
+         Change-Id: Ie231369bfa7da926fb2b9fdaac228261a3152e6a
 
-         ASTERISK-25296
-         Reported by: Richard Mudgett
+2015-09-17 11:31 +0000 [6409e7b11a]  Kevin Harwell <kharwell@digium.com>
 
-         Change-Id: I08549fb7c3ab40a559f41a3940f3732a4059b55b
+       * app_queue: Crash when transferring
 
-2015-07-29 13:48 +0000 [1519eb44a7]  Richard Mudgett <rmudgett@digium.com>
+         During some transfer scenarios involving queues Asterisk would sometimes
+         crash when trying to obtain a channel snapshot (could happen on caller or
+         member channels). This occurred because the underlying channel had already
+         disappeared when trying to obtain the latest snapshot.
 
-       * rtp_engine.c: Must protect mime_types_len with mime_types_lock.
+         This patch adds a reference to both the member and caller channels that
+         extends to the lifetime of the queue'd call, thus making sure the channels
+         will always exist when retrieving the latest snapshots.
 
-         Change-Id: I44220dd369cc151ebf5281d5119d84bb9e54d54e
+         ASTERISK-25185 #close
+         Reported by: Etienne Lessard
 
-2015-07-24 18:42 +0000 [a93b7a927c]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ic397fa68fb4ff35fbc378e745da9246a7b552128
 
-       * res_pjsip_sdp_rtp.c: Fix processing wrong SDP media list.
+2015-09-16 17:36 +0000 [fe5077b1f8]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I7c076826c2d3c6ae8c923ca73b7a71980cca11f2
+       * res_pjsip_pubsub: Eliminate race during initial NOTIFY.
 
-2015-07-24 18:38 +0000 [741fa0d26d]  Richard Mudgett <rmudgett@digium.com>
+         There is a slim chance of a race condition occurring where two threads
+         can both attempt to manipulate the same area.
 
-       * res_pjsip_sdp_rtp.c: Fixup some whitespace.
+         Thread A can be handling an incoming initial SUBSCRIBE request. Thread A
+         lets the specific subscription handler know that the subscription has
+         been established.
 
-         Change-Id: Ib4eb7ef7dcaf93ddc26538f0a498aaf110d7a973
+         At this point, Thread B may detect a state change on the subscribed
+         resource and queue up a notification task on Thread C, the subscription
+         serializer thread.
 
-2015-07-27 19:10 +0000 [89b21fd9a3]  Richard Mudgett <rmudgett@digium.com>
+         Now Thread A attempts to generate the initial NOTIFY request to send to
+         the subscriber at the same time that Thread C attempts to generate a
+         state change NOTIFY request to send to the subscriber.
 
-       * rtp_engine.h: No sense allowing payload types larger than RFC allows.
+         The result is that Threads A and C can step on the same memory area,
+         resulting in a crash. The crash has been observed as happening when
+         attempting to allocate more space to hold the body for the NOTIFY.
 
-         * Tweaked add_static_payload() to not use magic numbers.
+         The solution presented here is to queue the subscription establishment
+         and initial NOTIFY generation onto the subscription serializer thread
+         (Thread C in the above scenario). This way, there is no way that a state
+         change notification can occur before the initial NOTIFY is sent, and if
+         there is a quick succession of NOTIFYs, we can guarantee that the two
+         NOTIFY requests will be sent in succession.
 
-         Change-Id: I1719ff0f6d3ce537a91572501eae5bcd912a420b
+         Change-Id: I5a89a77b5f2717928c54d6efb9955e5f6f5cf815
 
-2015-07-23 14:04 +0000 [7427c7f13b]  Richard Mudgett <rmudgett@digium.com>
+2015-08-28 15:42 +0000 [b88c54fa4b]  Alexander Traud <pabstraud@compuserve.com>
 
-       * rtp_engine.c: Minor tweaks.
+       * translate: Fix transcoding while different in frame size.
 
-         * Fix off nominial ref leak of new_type in
-         ast_rtp_codecs_payloads_set_m_type().
+         When Asterisk translates between codecs, each with a different frame size (for
+         example between iLBC 30 and Speex-WB), too large frames were created by
+         ast_trans_frameout. Now, ast_trans_frameout is called with the correct frame
+         length, creating several frames when necessary. Affects all transcoding modules
+         which used ast_trans_frameout: GSM, iLBC, LPC10, and Speex.
 
-         * No need to lock static_RTP_PT_lock in
-         ast_rtp_codecs_payloads_set_m_type() and
-         ast_rtp_codecs_payloads_set_rtpmap_type_rate() before the payload type
-         parameter sanity check.
+         ASTERISK-25353 #close
 
-         * No need to create ast_rtp_payload_type ao2 objects with a lock since the
-         lock is not used.
+         Change-Id: I2e229569d73191d66a4e43fef35432db24000212
 
-         Change-Id: I64dd1bb4dfabdc7e981e3f61448beac9bb7504d4
+2015-09-10 17:19 +0000 [5c713fdf18]  Mark Michelson <mmichelson@digium.com>
 
-2015-07-23 12:41 +0000 [e20f435b60]  Richard Mudgett <rmudgett@digium.com>
+       * scheduler: Use queue for allocating sched IDs.
 
-       * rtp_engine.h: Misc comment fixes.
+         It has been observed that on long-running busy systems, a scheduler
+         context can eventually hit INT_MAX for its assigned IDs and end up
+         overflowing into a very low negative number. When this occurs, this can
+         result in odd behaviors, because a negative return is interpreted by
+         callers as being a failure. However, the item actually was successfully
+         scheduled. The result may be that a freed item remains in the scheduler,
+         resulting in a crash at some point in the future.
 
-         Change-Id: If98139264d5d97427b4685ecbdc54518f725bc43
+         The scheduler can overflow because every time that an item is added to
+         the scheduler, a counter is bumped and that counter's current value is
+         assigned as the new item's ID.
 
-2015-07-17 16:23 +0000 [bc5d7f9c37]  Richard Mudgett <rmudgett@digium.com>
+         This patch introduces a new method for assigning scheduler IDs. Instead
+         of assigning from a counter, a queue of available IDs is maintained.
+         When assigning a new ID, an ID is pulled from the queue. When a
+         scheduler item is released, its ID is pushed back onto the queue. This
+         way, IDs may be reused when they become available, and the growth of ID
+         numbers is directly related to concurrent activity within a scheduler
+         context rather than the uptime of the system.
 
-       * chan_sip.c: Tweak glue->update_peer() parameter nil value.
+         Change-Id: I532708eef8f669d823457d7fefdad9a6078b99b2
 
-         Change glue->update_peer() parameter from 0 to NULL to better indicate it
-         is a pointer.
+2015-08-21 21:50 +0000 [865377fc38]  Rodrigo Ramírez Norambuena <a@rodrigoramirez.com>
 
-         Change-Id: I8ff2e5087f0e19f6998e3488a712a2470cc823bd
+       * chan_sip.c: Validation on module reload
 
-2015-07-30 17:05 +0000 [13eb491e35]  Richard Mudgett <rmudgett@digium.com>
+         Change validation on reload module because now used the cli function for
+         reload. The sip_reload() function never fail and ever return NULL for this
+         reason on reload() now use the call the sip_reload() and return
+         AST_MODULE_LOAD_SUCCESS.
 
-       * res_pjsip_session.c: Fix crashes seen when call cancelled.
+         This problem is dectected on reload by PUT method on ARI, getting always
+         404 http code when the module is reloaded.
 
-         Two testsuite tests crashed in the same place as a result of an INVITE
-         being CANCELed.
+         ASTERISK-25325 #close
+         Reporte by: Rodrigo Ramírez Norambuena
 
-         tests/channels/pjsip/resolver/srv/failover/in_dialog/transport_unspecified
-         tests/channels/pjsip/resolver/srv/failover/in_dialog/transport_tcp
+         Change-Id: I41215877fb2cfc589e0d4d464000cf6825f4d7fb
 
-         The session pointer is no longer in the inv->mod_data[session_module.id]
-         location because the INVITE transaction has reached the terminated state.
+2015-08-21 17:39 +0000 [e75aff53e6]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25297 #close
-         Reported by: Richard Mudgett
+       * res_pjsip_pubsub.c: Mark ast_sip_create_subscription() as not used.
 
-         Change-Id: Idb75fdca0321f5447d5dac737a632a5f03614427
+         Change-Id: I2b8db18eac36c01a5c7eb9467699124e203fd093
 
-2015-07-29 14:35 +0000 [48698a5e21]  Mark Michelson <mmichelson@digium.com>
+2015-09-09 12:24 +0000 [4d91d01df1]  Richard Mudgett <rmudgett@digium.com>
 
-       * res_http_websocket: Properly encode 64 bit payload
+       * res_pjsip_pubsub.c: Add some notification comments.
 
-         A test agent was continuously failing all ARI tests when run against
-         Asterisk 13. As it turns out, the reason for this is that on those test
-         runs, for some reason we decided to use the super extended 64 bit
-         payload length for websocket text frames instead of the extended 16 bit
-         payload length. For 64-bit payloads, the expected byte order over the
-         network is
+         Change-Id: Ie62ff1f4b7adc1a12fa0303f53926af249b25e20
 
-         7, 6, 5, 4, 3, 2, 1, 0
+2015-08-21 18:01 +0000 [f36a9d1221]  Richard Mudgett <rmudgett@digium.com>
 
-         However, we were sending the payload as
+       * res_pjsip_pubsub.c: Set dlg_status code instead of sending SIP response.
 
-         3, 2, 1, 0, 7, 6, 5, 4
+         We should not try to send a SIP response message because we may be
+         restoring a persistent subscription where we are not responding to a SIP
+         request.
 
-         This meant that we were saying to expect an absolutely MASSIVE payload
-         to arrive. Since we did not follow through on this expected payload
-         size, the client would sit patiently waiting for the rest of the payload
-         to arrive until the test would time out.
+         Change-Id: Id89167ef90320c5563f37e632db0dda6cb9e7dec
 
-         With this change, we use the htobe64() function instead of htonl() so
-         that a 64-bit byte-swap is performed instead of a 32 bit byte-swap.
+2015-08-21 17:40 +0000 [94582f8fab]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Ibcd8552392845fbcdd017a8c8c1043b7fe35964a
+       * res_pjsip_pubsub.c: Fix off-nominal memory leak.
 
-2015-07-29 12:23 +0000 [10ba72a927]  Mark Michelson <mmichelson@digium.com>
+         Fix off-nominal visited vector leak in build_resource_tree().
 
-       * Add a test event for inband ringing.
+         Change-Id: If0399c7941c9c0b1038bcfb7b9a371760977831c
 
-         This event is necessary for the bridge_wait_e_options test to be able to
-         confirm that ringing is being played on the local channel that runs the
-         BridgeWait() application with the e(r) option.
+2015-08-21 15:26 +0000 [8b3ed52239]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25292 #close
-         Reported by Kevin Harwell
+       * res_pjsip_pubsub.c: Fix one byte buffer overrun error.
 
-         Change-Id: Ifd3d3d2bebc73344d4b5310d0d55c7675359d72e
+         ast_sip_pubsub_register_body_generator() did not account for the null
+         terminator set by sprintf() in the allocated output buffer.
 
-2015-07-16 12:16 +0000 [8458b8d441]  Jonathan Rose <jrose@digium.com>
+         Change-Id: I388688a132e479bca6ad1c19275eae0070969ae2
 
-       * holding_bridge: ensure moh participants get frames
+2015-08-21 15:25 +0000 [4329bd1e4c]  Richard Mudgett <rmudgett@digium.com>
 
-         Currently, if a blank musiconhold.conf is used, musiconhold will fail
-         to start for a channel going into a holding bridge with an anticipation
-         of getting music on hold. That being the case, no frames will be written
-         to the channel and that can pose a problem for blind transfers in PJSIP
-         which may rely on frames being written to get past the REFER framehook.
-         This patch makes holding bridges start a silence generator if starting
-         music on hold fails and makes it so that if no music on hold functions
-         are installed that the ast_moh_start function will report a failure so
-         that consumers of that function will be able to respond appropriately.
+       * res_pjsip_pubsub.c: Use ast_alloca() instead of alloca().
 
-         ASTERISK-25271 #close
+         Change-Id: Ia396096b4fedc2874649ca11137612c3f55e83e3
 
-         Change-Id: I06f066728604943cba0bb0b39fa7cf658a21cd99
+2015-08-21 11:04 +0000 [a456a20ecf]  Richard Mudgett <rmudgett@digium.com>
 
-2015-07-24 22:20 +0000  Asterisk Development Team <asteriskteam@digium.com>
+       * res_pjsip_pubsub.c: Add missing error return in load_module().
 
-       * asterisk 13.5.0-rc1 Released.
+         Change-Id: I15debd0f717f16ee2f78e7f56151c3b3b97b72fc
 
-2015-07-24 17:15 +0000 [a4b527393b]  Matt Jordan <mjordan@digium.com>
+2015-08-21 11:03 +0000 [f58f4c6e27]  Richard Mudgett <rmudgett@digium.com>
 
-       * Release summaries: Add summaries for 13.5.0-rc1
+       * res_pjsip/location.c: Use the builtin ao2_callback() match function instead.
 
-2015-07-24 17:11 +0000 [158b0b8ebf]  Matt Jordan <mjordan@digium.com>
+         Change-Id: I364906d6d2bad3472929986704a0286b9a2cbe3f
 
-       * .version: Update for 13.5.0-rc1
+2015-09-10 09:49 +0000 [9d1f176e29]  Mark Michelson <mmichelson@digium.com>
 
-2015-07-24 17:11 +0000 [a0a7650e34]  Matt Jordan <mjordan@digium.com>
+       * res_pjsip: Copy default_from_user to avoid crash.
 
-       * .lastclean: Update for 13.5.0-rc1
+         The default_from_user retrieval function was pulling the
+         default_from_user from the global configuration struct in an unsafe way.
+         If using a database as a backend configuration store, the global
+         configuration struct is short-lived, so grabbing a pointer from it
+         results in referencing freed memory.
 
-2015-07-24 17:11 +0000 [4d238af086]  Matt Jordan <mjordan@digium.com>
+         The fix here is to copy the default_from_user value out of the global
+         configuration struct.
 
-       * realtime: Add database scripts for 13.5.0-rc1
+         Thanks go to John Hardin for discovering this problem and proposing the
+         patch on which this fix is based.
 
-2015-07-24 12:56 +0000 [f78a4b52b8]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25390 #close
+         Reported by Mark Michelson
 
-       * Bump the ARI version to 1.8.0
+         Change-Id: I6b96067a495c1259da768f4012d44e03e7c6148c
 
-         Due to backwards compatible changes, the ARI version should be bumped to
-         1.8.0 prior to the release of 13.5.0. Note that a previous patch already
-         bumped the version of AMI for this release.
+2015-09-10 08:39 +0000 [1dd0e220bf]  Matt Jordan <mjordan@digium.com>
 
-         Change-Id: I419033bfbbc0d3533a29ccb32b2981f39e0883e7
+       * res/res_pjsip_nat: Ignore REGISTER requests when looking for a Record-Route
 
-2015-07-18 11:16 +0000 [2749721791]  Joshua Colp <jcolp@digium.com>
+         We will only rewrite the Contact header if there is no Record-Route header in
+         the received request. If a malfunctioning proxy places a Record-Route header
+         into a REGISTER request, we will decide that we shouldn't update the IP/port
+         in the Contact header, and we will end up storing a contact with an AoR that
+         contains the NAT'd IP address.
 
-       * pjsip: Add rtp_timeout and rtp_timeout_hold endpoint options.
+         While it is nice to have the proxy *not* send a Record-Route in a REGISTER
+         request, it's also a good idea to not process the header in a non-dialog
+         message. This patch updates the code to explicitly ignore the Record-Route
+         header in REGISTER requests.
 
-         This change adds support for the 'rtp_timeout' and 'rtp_timeout_hold'
-         endpoint options. These allow the channel to be hung up if RTP
-         is not received from the remote endpoint for a specified number of
-         seconds.
+         ASTERISK-25387 #close
 
-         ASTERISK-25259 #close
+         Change-Id: I4bd3bcccc4003d460cc354d986b0dea2e433ef3f
 
-         Change-Id: I3f39daaa7da2596b5022737b77799d16204175b9
+2015-09-03 21:15 +0000 [4eedd9ef9d]  Matt Jordan <mjordan@digium.com>
 
-2015-07-24 09:46 +0000 [b4e19e414a]  Mark Michelson <mmichelson@digium.com>
+       * main/config_options: Check for existance of internal object before derefing
 
-       * res_pjsip: Add rtp_keepalive to sample config file.
+         Asterisk can load and register an object type while still having an invalid
+         sorcery mapping. This can cause an issue when a creation call is invoked.
+         For example, mis-configuring PJSIP's endpoint identifier by IP address mapping
+         in sorcery.conf will cause the sorcery mechanism to be invalidated; however, a
+         subsequent ARI invocation to create the object will cause a crash, as the
+         internal type may not be registered as sorcery expects.
 
-         Change-Id: I5f62d0c5684f8b2335f9f8ac2d79ee04fbdafb19
+         Merely checking for a NULL pointer here solves the issue.
 
-2015-07-23 13:11 +0000 [f635520527]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: I54079fb94a1440992f4735a9a1bbf1abb1c601ac
+2015-09-09 16:46 +0000 [71408df2b8]  Alexander Anikin <may213@yandex.ru>
 
-       * Local channels: Alternate solution to ringback problem.
+       * chan_ooh323: Add ProgressIndicator IE with inband info available
 
-         Commit 54b25c80c8387aea9eb20f9f4f077486cbdf3e5d solved an issue where a
-         specific scenario involving local channels and a native local RTP bridge
-         could result in ringback still being heard on a calling channel even
-         after the call is bridged.
+         Add ProgressIndicator IE with inband info present to Progress and
+         Alerting Q.931 message
 
-         That commit caused many tests in the testsuite to fail with alarming
-         consequences, such as not sending DialBegin and DialEnd events, and
-         giving incorrect hangup causes during calls.
+         ASTERISK-25227 #close
+         Reported by: Alexandr Dranchuk
 
-         This commit reverts the previous commit and implements and alternate
-         solution. This new solution involves only passing AST_CONTROL_RINGING
-         frames across local channels if the local channel is in AST_STATE_RING.
-         Otherwise, the frame does not traverse the local channels. By doing
-         this, we can ensure that a playtones generator does not get started on
-         the calling channel but rather is started on the local channel on which
-         the ringing frame was initially indicated.
+         Change-Id: I326ad13cb1db9a72b3fd902bafed3c28a3684203
+2015-09-08 10:35 +0000 [f72f9ceefc]  Scott Griepentrog <scott@griepentrog.com>
 
-         ASTERISK-25250 #close
-         Reported by Etienne Lessard
+       * pjsip: avoid possible crash req_caps allocation failure
 
-         Change-Id: I3bc87a18a38eb2b68064f732d098edceb5c19f39
+         Make certain that the pjsip session has not failed to
+         allocate the format capabilities structure, which can
+         otherwise cause a crash when referenced.
 
-2015-07-22 12:24 +0000 [f509730cb9]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-25323
 
-       * audiohook: Use manipulated frame instead of dropping it.
+         Change-Id: I602790ba12714741165e441cc64a3ecde4cb5750
 
-         Previous changes to sample rate support in audiohooks accidentally
-         removed code responsible for allowing the manipulate audiohooks
-         to work. Without this code the manipulated frame would be dropped
-         and not used. This change restores it.
+2015-09-03 14:07 +0000 [fbf720db91]  Jonathan Rose <jrose@digium.com>
 
-         ASTERISK-25253 #close
+       * ParkAndAnnounce: Add variable inheritance
 
-         Change-Id: I3ff50664cd82faac8941f976fcdcb3918a50fe13
+         In Asterisk 11, the announcer channel would receive channel variables
+         from the channel being parked by means of normal channel inheritance.
+         This functionality was lost during the big res_parking project in
+         Asterisk 12. This patch restores that functionality.
 
-2015-07-22 09:46 +0000 [54b25c80c8]  Mark Michelson <mmichelson@digium.com>
+         ASTERISK-25369 #close
+         Review: https://gerrit.asterisk.org/#/c/1180/
 
-       * Local channels: Do not block control -1 payloads.
+         Change-Id: Ie47e618330114ad2ea91e2edcef1cb6f341eed6e
 
-         Control frames with a -1 payload are used as a special signal to stop
-         playtones generators on channels. This indication is sent both by
-         app_dial as well as by ast_answer() when a call is answered in case any
-         tones were being generated on a calling channel.
+2015-09-04 16:33 +0000 [695f26cbb7]  David M. Lee <dlee@respoke.io>
 
-         This control frame type was made to stop traversing local channel pairs
-         as an optimization, because it was thought that it was unnecessary to
-         send these indications, and allowing such unnecessary control frames to
-         traverse the local channels would cause the local channels to optimize
-         away less quickly.
+       * res_rtp_asterisk: Add more ICE debugging
 
-         As it turns out, through some special magic dialplan code, it is
-         possible to have a tones being played on a non-local channel, and it is
-         important for the local channel to convey that the tones should be
-         stopped. The result of having tones continue to be played on the
-         non-local channel is that the tones play even once the channel has been
-         bridged. By not blocking the -1 control frame type, we can ensure that
-         this situation does not happen.
+         In working through a recent ICE negotiation bug, I found the debug
+         logging in res_rtp_asterisk to be lacking. This patch adds a number of
+         debug and warning statements that were helpful.
 
-         ASTERISK-25250 #close
-         Reported by Etienne Lessard
+         Change-Id: I950c6d8f13a41f14b3d6334b4cafe7d4e997be80
+2015-09-01 10:16 +0000 [4ed9c9a280]  Guido Falsi <madpilot@freebsd.org>
 
-         Change-Id: I0bcaac3d70b619afdbd0ca8a8dd708f33fd2f815
+       * Core/General: Add #ifdef needed on FreeBSD.
 
-2015-07-22 05:16 +0000 [f1493f900e]  Joshua Colp <jcolp@digium.com>
+         pthread_attr_init() defaults to PTHREAD_EXPLICIT_SCHED on FreeBSD
+         too.
 
-       * audiohook: Read the correct number of samples based on audiohook format.
+         ASTERISK-25310 #close
+         Reported by: Guido Falsi
 
-         Due to changes in audiohooks to support different sample rates the
-         underlying storage of samples is in the format of the audiohook
-         itself and not of the format being requested. This means that if a
-         channel is using G722 the samples stored will be at 16kHz. If
-         something subsequently reads from the audiohook at a format which
-         is not the same sample rate as the audiohook the number of samples
-         needs to be adjusted.
+         Change-Id: Iae6befac9028b5b9795f86986a4a08a1ae6ab7c4
 
-         Given the following example:
-         1. Channel writing into audiohook at 16kHz (as it is using G722).
-         2. Chanspy reading from audiohook at 8kHz.
+2015-09-08 07:21 +0000 [5469caa9dd]  Joshua Colp <jcolp@digium.com>
 
-         The original code would read 160 samples from the audiohook for
-         each 20ms of audio. This is incorrect. Since the audio in the
-         audiohook is at 16kHz the actual number needing to be read is 320.
-         Failure to read this much would cause the audiohook to reset
-         itself constantly as the buffer became full.
+       * res_pjsip: Use hash for contact object identity instead of Contact URI.
 
-         This change adjusts the requested number of samples by determining
-         the duration of audio requested and then calculating how many
-         samples that would be in the audiohook format.
+         In the wild it is possible for Contact URIs to be quite long as
+         parameters can exist on them. This can present a problem when storing
+         them in the AstDB as the URI is used as part of the object name and
+         there is a fixed length limit for the AstDB. This will cause
+         the contact to not get stored.
 
-         ASTERISK-25247 #close
+         This change uses the MD5 hash of the Contact URI as part of the
+         object name instead. This has a fixed length which is guaranteed
+         to not exceed the AstDB length limit.
 
-         Change-Id: Ia91ce516121882387a315fd8ee116b118b90653d
+         ASTERISK-25295 #close
 
-2015-07-20 12:39 +0000 [62c64c3bd1]  Rusty Newton <rnewton@digium.com>
+         Change-Id: Ie8252a75331ca00b41b9f308f42cc1fbdf701a02
 
-       * Documentation: A couple of trivial fixes in sip.conf.sample and func_cdr.c
+2015-09-07 13:19 +0000 [480c443e26]  Alexander Anikin <may213@yandex.ru>
 
-          * In sip.conf.sample fix sentence where we said that WS or WSS are supported
-            transports for use in an outbound register definition. They are not
-            supported in that case.
-          * In func_cdr.c made it clear that the Disable option for CDR_PROP can be used
-            to enable CDR on a channel.
+       * chan_ooh323: call ast_rtp_instance_stop on ooh323_destroy
 
-         ASTERISK-24867 #close
-         Reported by: Rusty Newton
+             Call ast_rtp_instance_stop on ooh323_destroy to free resources
+             allocated by rtp instance
 
-         ASTERISK-24853 #close
-         Reported by: PSDK
+             ASTERISK-25299 #close
+             Report by: Alexandr Dranchuk
 
-         Change-Id: I3d698bc6302b9d00a0a995b5c4ad9a42d69b48ca
+         Change-Id: I455096bd7da016b871afe90af86067c2c7c9f33f
 
-2015-07-09 14:17 +0000 [d9094ddd73]  Mark Michelson <mmichelson@digium.com>
+2015-09-07 11:15 +0000 [c3e6debdb9]  Matt Jordan <mjordan@digium.com>
 
-       * res_pjsip: Add rtp_keepalive endpoint option.
+       * res/res_pjsip: Purge contacts when an AoR is deleted
 
-         This adds an "rtp_keepalive" option for PJSIP endpoints. Similar to the
-         chan_sip option, this specifies an interval, in seconds, at which we
-         will send RTP comfort noise frames. This can be useful for keeping RTP
-         sessions alive as well as keeping NAT associations alive during lulls.
+         When an AoR is deleted by an external mechanism, such as through ARI, we
+         currently do not remove dynamic contacts that were created for that AoR as a
+         result of a received REGISTER request. As a result, re-creating the AoR will
+         cause the dynamic contact to be interpreted as a persistent contact, leading
+         to some rather strange state being created for the contacts/endpoints.
 
-         ASTERISK-25242 #close
-         Reported by Mark Michelson
+         This patch adds a sorcery observer for the 'aor' object. When a delete is
+         issued on the underlying sorcery object, the observer is called, and all
+         contacts created and persisted in sorcery for that AoR are also removed. Note
+         that we don't want to perform this action when an AO2 object that is an AoR is
+         destroyed, as the AoR can still exist in the backing storage (and we would
+         thus be removing valid contacts from an AoR that still "exists".)
 
-         Change-Id: I06660ba672c0a343814af4cec838e6025cafd54b
+         ASTERISK-25381 #close
 
-2015-07-16 09:13 +0000 [a23adcca3d]  Michael Cargile <mikec@vicidial.com>
+         Change-Id: I6697e51ef6b2858b5d63401f35dc378bb0f90328
 
-       * res/res_musiconhold: Add a warning when MOH does not exist
+2015-09-05 14:58 +0000 [78d0b9d97e]  Matt Jordan <mjordan@digium.com>
 
-         Change-Id: Ifdfbd0b97cf31478d29923ec30aabce28d01740b
+       * channels/pjsip/dialplan_functions: Add an option for extracting the SIP call-id
 
-2015-07-19 09:11 +0000 [03064daeb2]  Matt Jordan <mjordan@digium.com>
+         This patch adds a new option to the CHANNEL function that allows for the
+         extraction of the SIP call-id. It is used in conjunction with the 'pjsip'
+         option, and will return the Call-ID of the INVITE request that established
+         the PJSIP channel.
 
-       * res/res_sorcery_config: Prevent crash from misconfigured sorcery.conf
+         ASTERISK-25352
 
-         Misconfiguring sorcery.conf with a 'config' wizard with no extra data
-         will currently crash Asterisk on startup, as the wizard requires a comma
-         delineated list to parse. This patch updates res_sorcery_config to check
-         for the presence of the data before it starts manipulating it.
+         Change-Id: I278d1f8bcfe3a53c5aa1dadebc14e92b0abd476a
 
-         Change-Id: I4c97512e8258bc82abe190627a9206c28f5d3847
+2015-09-04 16:06 +0000 [61c6c6aa6c]  David M. Lee <dlee@respoke.io>
 
-2015-07-16 09:46 +0000 [2c626ceb64]  Joshua Colp <jcolp@digium.com>
+       * Fix when remote candidates exceed PJ_ICE_MAX_CAND
 
-       * chan_pjsip: Don't change formats when frame of unsupported format is received.
+         We were passing the wrong count into pj_ice_sess_create_check_list(),
+         causing the create to fail if we ever received more than PJ_ICE_MAX_CAND
+         candidates.
 
-         Receipt of an RTP packet currently causes the formats on an PJSIP channel to
-         change to the format of the RTP packet. In some off-nominal cases it's possible
-         for this to be a format that has not been configured or negotiated. This change
-         makes it so only formats explicitly configured on the endpoint are allowed.
+         Change-Id: I0303d8e1ecb20a8de9fe629a3209d216c4028378
 
-         ASTERISK-25258 #close
+2015-09-04 14:40 +0000 [ac62928d6b]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: If93d641fb6418a285928839300d7854cab8c1020
+       * res_pjsip: Change default from user value.
 
-2015-07-17 04:59 +0000 [abb14ac5b8]  Patric Marschall <patric.marschall@1und1.de>
+         When Asterisk sends an outbound SIP request, if there is no direct
+         reason to place a specific value for the username in the From header,
+         Asterisk would generate a UUID. For example, this would happen when
+         sending outbound OPTIONS requests when qualifying or when sending
+         outbound INVITE requests when originating (if no explicit caller ID were
+         provided). The issue is that some SIP providers reject these sorts of
+         requests with a "Name too long" error response.
 
-       * sig_pri.h: force_restart_unavailable_chans in wrong scope
+         This patch aims to fix this by changing the default outbound username in
+         From headers to "asterisk". This value can be overridden by changing the
+         default_from_user option in the global options if desired.
 
-         In channels/sig_pri.h, struct sig_pri_span, the field
-         force_restart_unavailable_chans is only defined if
+         ASTERISK-25377 #close
+         Reported by Mark Michelson
 
-         #if defined(HAVE_PRI_MCID) is true.
+         Change-Id: I6a4d34a56ff73ff4f661b0075aeba5461b7f3190
 
-         All other occurences of force_restart_unavailable_chans are outside of the
+2015-09-04 09:26 +0000 [6002472a62]  Scott Griepentrog <scott@griepentrog.com>
 
-         #if defined(HAVE_PRI_MCID)
-         endif
+       * endpoint snapshot: avoid second cleanup on alloc failure
 
-         scope.
+         In ast_endpoint_snapshot_create(), a failure to init the
+         string fields results in two attempts to ao2_cleanup the
+         same pointer.  Removed RAII_VAR to eliminate problem.
 
-         ASTERISK-25257 #close
-         Reported by: Patric Marschall
+         ASTERISK-25375 #close
+         Reported by: Scott Griepentrog
 
-         Change-Id: I071de89cc2cd0d85927a013036e235851f672549
-2015-07-14 16:55 +0000 [875aee4c09]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: If4d9dfb1bbe3836b623642ec690b6d49b25e8979
 
-       * pbx.c: Post AMI VarSet event if delete a non-empty dialplan variable.
+2015-09-04 05:33 +0000 [d32e516c7c]  Martin Tomec <tomec.martin@gmail.com>
 
-         ASTERISK-25256 #close
-         Reported by: Richard Mudgett
+       * res/pjsip: Mark WSS transport as secure
 
-         Change-Id: I0b6be720b66fa956f6a798cd22ef8934eb0c0ff3
+         Pjsip is refusing to use unsecure transport with "sips" in url.
+         WSS should be considered as secure transport.
 
-2015-07-08 16:39 +0000 [8bcf6d2801]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-24602 #comment Partially fixed by setting WSS as secure
 
-       * ARI: Add support for push configuration of dynamic object
+         Change-Id: Iddac406c6deba6240c41a603b8859dfefe1a5353
 
-         This patch adds support for push configuration of dynamic, i.e.,
-         sorcery, objects in Asterisk. It adds three new REST API calls to the
-         'asterisk' resource:
-          * GET /asterisk/{configClass}/{objectType}/{id}: retrieve the current
-            object given its ID. This returns back a list of ConfigTuples, which
-            define the fields and their present values that make up the object.
-          * PUT /asterisk/{configClass}/{objectType}/{id}: create or update an
-            object. A body may be passed with the request that contains fields to
-            populate in the object. The same format as what is retrieved using
-            the GET operation is used for the body, save that we specify that the
-            list of fields to update are contained in the "fields" attribute.
-          * DELETE /asterisk/{configClass}/{objectType}/{id}: remove a dynamic
-            object from its backing storage.
+2015-09-02 17:26 +0000 [ad9cb6c2ce]  Mark Michelson <mmichelson@digium.com>
 
-         Note that the success/failure of these operations is somewhat
-         configuration dependent, i.e., you must be using a sorcery wizard that
-         supports the operation in question. If a sorcery wizard does not support
-         the create or delete mechanisms, then the REST API call will fail with a
-         403 forbidden.
+       * res_pjsip: Fix contact refleak on stateful responses.
 
-         ASTERISK-25238 #close
+         When sending a stateful response, creation of the transaction can fail,
+         most commonly because we are trying to create a transaction from a
+         retransmitted request. When creation of the transaction fails, we end up
+         leaking a reference to a contact that was bumped when the response was
+         created.
 
-         Change-Id: I28cd5c7bf6f67f8e9e437ff097f8fd171d30ff5c
+         This patch adds the missing deref and fixes the reference leak.
 
-2015-07-15 15:40 +0000 [e31cb6b248]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I2f97ad512aeb1b17e87ca29ae0abacb4d6395f07
 
-       * strings.h: Fix issues with escape string functions.
+2015-09-02 12:41 +0000 [cc1363209e]  Joshua Colp <jcolp@digium.com>
 
-         Fixes for issues with the ASTERISK-24934 patch.
+       * pbx: Fix crash when issuing "core show hints" with long pattern match.
 
-         * Fixed ast_escape_alloc() and ast_escape_c_alloc() if the s parameter is
-         an empty string.  If it were an empty string the functions returned NULL
-         as if there were a memory allocation failure.  This failure caused the AMI
-         VarSet event to not get posted if the new value was an empty string.
+         When issuing the "core show hints" CLI command a combination of both
+         the hint extension and context is created. This uses a fixed size
+         buffer expecting that the extension will not exceed maximum extension
+         length. When the extension is actually a pattern match this constraint
+         does not hold true, and the extension may exceed the maximum extension
+         length. In this case extra characters are written past the end of the
+         fixed size buffer.
 
-         * Fixed dest buffer overwrite potential in ast_escape() and
-         ast_escape_c().  If the dest buffer size is smaller than the space needed
-         by the escaped s parameter string then the dest buffer would be written
-         beyond the end by the nul string terminator.  The num parameter was really
-         the dest buffer size parameter so I renamed it to size.
+         This change makes it so the construction of the combined hint extension
+         and context can not exceed the size of the buffer.
 
-         * Made nul terminate the dest buffer if the source string parameter s was
-         an empty string in ast_escape() and ast_escape_c().
+         ASTERISK-25367 #close
 
-         * Updated ast_escape() and ast_escape_c() doxygen function description
-         comments to reflect reality.
+         Change-Id: Idfa1b95d0d4dc38e675be7c1de8900b3f981f499
 
-         * Added some more unit test cases to /main/strings/escape to cover the
-         empty source string issues.
+2015-09-01 09:05 +0000 [d58c8d73af]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-25255 #close
-         Reported by: Richard Mudgett
+       * res_pjsip_pubsub: re-re-fix persistent subscription storage.
 
-         Change-Id: Id77fc704600ebcce81615c1200296f74de254104
+         A recent change to res_pjsip_pubsub switched to using pjsip_msg_print as
+         a means of writing an appropriate packet to persistent storage. While
+         this partially solved the issue, it had its own problems.
+         pjsip_msg_print will always add a Content-Length header to the message
+         it prints. Frequent restarts of Asterisk can result in persistent
+         subscriptions being written with five or more Content-Length headers. In
+         addition, sometimes some apparent corruption of individual headers could
+         be seen.
 
-2015-07-14 14:29 +0000 [243c0d1609]  Richard Mudgett <rmudgett@digium.com>
+         This aims to fix the problem by not running a parsed message through an
+         interpreter but rather by taking the raw message and saving it. The
+         logic for what to save is going to be different depending on whether a
+         SUBSCRIBE was received from the wire or if it was pulled from
+         persistence. When receiving a packet from the wire, when using a
+         streaming transport, the rdata->pkt_info.packet may contain multiple SIP
+         messages or fragments. However, the rdata->msg_info.msg_buf will always
+         contain the current SIP message to be processed. When pulling from
+         persistence, though, the rdata->msg_info.msg_buf will be NULL since no
+         transport actually handled the packet. However, since we know that we
+         will always ever pull one SIP message from persistence, we are free to
+         save directly from rdata->pkt_info.packet instead.
 
-       * parking_applications.c: Fix ast_verb() line terminator.
+         ASTERISK-25365 #close
+         Reported by Mark Michelson
 
-         Change-Id: I8797238c71563e243c48c6145b4f1ae58f91f775
+         Change-Id: I33153b10d0b4dc8e3801aaaee2f48173b867855b
 
-2015-07-14 14:36 +0000 [c782320c68]  Richard Mudgett <rmudgett@digium.com>
+2015-08-31 15:24 +0000 [03fe79f29e]  Mark Michelson <mmichelson@digium.com>
 
-       * res_parking: Fix crash if ATTENDEDTRANSFER set empty before Park.
+       * Fix deadlock on presence state changes.
 
-         setup_park_common_datastore() was assuming that a non-NULL string returned
-         for the ATTENDEDTRANSFER and BLINDTRANSFER channel variables are not empty
-         strings.  Things got crashy as a result.
+         A deadlock was observed where three threads were competing for different
+         locks:
 
-         * Made setup_park_common_datastore() treat the channel variable values the
-         same whether they are NULL or empty for ATTENDEDTRANSFER and
-         BLINDTRANSFER.
+         * One thread held the hints lock and was attempting to lock a specific
+           hint.
+         * One thread was holding the specific hint's lock and was attempting to
+           lock the contexts lock
+         * One thread was holding the contexts lock and attempting to lock the
+           hints lock.
 
-         ASTERISK-25254 #close
-         Reported by: Richard Mudgett
+         Clearly the second thread was doing the wrong thing here. The fix for
+         this is to make sure that the hint's lock is not held on presence state
+         changes. Something similar is already done (and commented about) for
+         device state changes.
 
-         Change-Id: I9a9c174b33f354f35f82cc6b7cea8303adbaf9c2
+         ASTERISK-25362 #close
+         Reported by Mark Michelson
 
-2015-07-10 18:01 +0000 [2735dd5b2d]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I15ec2416b92978a4c0c08273b2d46cb21aff97e2
 
-       * res_pjsip_session.c: Extract sip_session_defer_termination_stop_timer().
+2015-08-29 10:36 +0000 [a676ba2aad]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: I9e115dee74bd72e06081d0ee73ecdeb886caa5fb
+       * taskprocessor: Fix race condition between unreferencing and finding.
 
-2015-07-10 10:42 +0000 [3d0ca343ca]  Richard Mudgett <rmudgett@digium.com>
+         When unreferencing a taskprocessor its reference count is checked
+         to determine if it should be unlinked from the taskprocessors
+         container and its listener shut down. In between the time when the
+         reference count is checked and unlinking it is possible for
+         another thread to jump in, find it, and get a reference to it. If
+         the thread then uses the taskprocessor it may find that it is not
+         in the state it expects.
 
-       * res_pjsip_session.c: Add some helpful comments and minor tweaks.
+         This change locks the taskprocessors container during almost the
+         entire unreference operation to ensure that any other thread which
+         may attempt to find the taskprocessor has to wait.
 
-         Change-Id: I742aeeaf5f760593f323a00fb691affe22e35743
+         ASTERISK-25295
 
-2015-07-10 10:43 +0000 [8d08bb179c]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Icb842db82fe1cf238da55df92e95938a4419377c
 
-       * res_pjsip_session.c: Fix off nominal crash potential in debug message.
+2015-08-28 20:22 +0000 [1b1561f4c8]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: I09928297927ee85f7655289acee3a586816466bc
+       * res_pjsip_sdp_rtp: Fix multiple keepalive scheduled items.
 
-2015-07-15 10:31 +0000 [0a1a550593]  Matt Jordan <mjordan@digium.com>
+         The keepalive support in res_pjsip_sdp_rtp currently assumes
+         that a stream will only be negotiated once. This is false.
+         If the stream is replaced and later added back it can be
+         negotiated again causing multiple keepalive scheduled items
+         to exist. This change explicitly deletes the existing
+         keepalive scheduled item before adding the new one.
 
-       * apps/app_dictate: Fix typo in attribution
+         The res_pjsip_sdp_rtp module also does not stop RTP
+         keepalives or timeout timer if the stream has been
+         replaced. This change adds a callback to the session media
+         interface to allow a media stream to be stopped without
+         the resources being destroyed. This allows the scheduled
+         items and RTP to be stopped when the stream no longer
+         exists.
 
-         Last time I checked, it's "Sangoma", not "Samgoma". Thanks to Brian
-         (GameGamer43) for pointing that out.
+         ASTERISK-25356 #close
 
-         Change-Id: I43d7b196f6d7a2b2517b84915e3a8dfbc2894106
+         Change-Id: Ibe6a7cc0927c87326fd5f1c0d4ad889dbfbea1de
 
-2015-07-15 10:28 +0000 [3384e64ef6]  Benjamin Ford <bford@digium.com>
+2015-08-28 19:57 +0000 [85e1cb51b2]  Joshua Colp <jcolp@digium.com>
 
-       * ARI: Fixed unload mode for unload module.
+       * sched: ast_sched_del may return prematurely due to spurious wakeup
 
-         Changed the unload mode to AST_FORCE_SOFT from AST_FORCE_FIRM,
-         which would unload a module even if it was in use.
+         When deleting a scheduled item if the item in question is currently
+         executing the ast_sched_del function waits until it has completed.
+         This is accomplished using ast_cond_wait. Unfortunately the
+         ast_cond_wait function can suffer from spurious wakeups so the
+         predicate needs to be checked after it returns to make sure it has
+         really woken up as a result of being signaled.
 
-         * Changed unload mode to proper mode
+         This change adds a loop around the ast_cond_wait to make sure that
+         it only exits when the executing task has really completed.
 
-         ASTERISK-25173
+         ASTERISK-25355 #close
 
-         Change-Id: If2402487b5bce05d9770f25f65f5c8e292ad5533
+         Change-Id: I51198270eb0b637c956c61aa409f46283432be61
 
-2015-07-08 16:38 +0000 [0b6ff77afb]  Matt Jordan <mjordan@digium.com>
+2015-08-27 12:26 +0000 [c2c7319082]  Joshua Colp <jcolp@digium.com>
 
-       * res/res_sorcery_astdb: Add a debugging message for when retrieval by ID fails
+       * res_pjsip_session: Don't invoke session supplements twice for BYE requests.
 
-         Having a debug message tell us that we attempted to look up an item but
-         failed is nice in circumstances when it isn't clear if the wizard was
-         queried correctly or not.
+         When a BYE request is received the PJSIP invite session implementation
+         creates and sends a 200 OK response before we are aware of it. This
+         causes the INVITE session state callback to be called into and ultimately
+         the session supplements run on the BYE request. Once this response has
+         been sent the normal transaction state callback is invoked which
+         invokes the session supplements on the BYE request again. This can
+         be problematic in particular with res_pjsip_rfc3326 as it may
+         attempt to update the hangup cause code on the channel while it is
+         in the process of being hung up.
 
-         Change-Id: I2600c3bbea87f252196358f62e73f4c7da8632f7
+         This change makes it so the session supplements are only invoked
+         once by the INVITE session state callback.
 
-2015-07-08 16:37 +0000 [2f0d6d346c]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25318 #close
 
-       * res/res_pjsip_outbound_registration: Fix WARNING message
+         Change-Id: I69c17df55ccbb61ef779ac38cc8c6b411376c19a
 
-         Newlines are nice.
+2015-08-26 15:26 +0000 [6862c2a167]  Scott Griepentrog <scott@griepentrog.com>
 
-         Change-Id: Icf0d915db02882e47cd9077ed9009f5d44140d42
+       * Chaos: handle failed allocation in get_media_encryption_type
 
-2015-07-08 16:35 +0000 [cd2213f1ae]  Matt Jordan <mjordan@digium.com>
+         If the ast_strndup() call fails to allocate a copy of the
+         transport string for parsing, fail gracefully.
 
-       * res_pjsip/configuration: Fix a variety of default value problems
+         ASTERISK-25323
+         Reported by: Scott Griepentrog
 
-         This patch fixes some bad default value handling in the following
-         settings:
+         Change-Id: Ia4b905ce6d03da53fea526224455c1044b1a5a28
 
-         * The 'message_context' and 'accountcode' settings are not mandatory. As
-           such, we can allow their stringfield values to be empty.
-         * The 'media_encryption' setting applies a default value of 'none' to
-           the setting, which it then can't parse or understand. Since the value
-           is documented to be 'no', this will now apply that as the default
-           value.
+2015-08-26 14:25 +0000 [f1cd636658]  Scott Griepentrog <scott@griepentrog.com>
 
-         Change-Id: Ib9be7f97a7a5b9bc7aee868edf5acf38774cff83
+       * Chaos: make hangup NULL tolerant
 
-2015-07-08 16:32 +0000 [2e4bdbd78a]  Matt Jordan <mjordan@digium.com>
+         In chan_pjsip_new, if allocation of the pvt
+         structure fails, ast_hangup is called.  But
+         it was written to assume pvt was valid, and
+         this change corrects that.
 
-       * main/sorcery: Provide log messages when a wizard does not support an operation
+         ASTERISK-25323
+         Reported by: Scott Griepentrog
 
-         If a sorcery wizard does not support one of the 'optional' CRUD
-         operations (namely the CUD), log a WARNING message so we are aware of
-         why the operation failed. This also removes an assert in this case, as
-         the CUD operation may have been triggered by an external system, in
-         which case it is not a programming error but a configuration error.
+         Change-Id: I5f47860fe9cee4cd56abd3f79b108678ab72cc87
 
-         Change-Id: Ifecd9df946d9deaa86235257b49c6e5e24423b53
+2015-08-26 05:40 +0000 [c01111223f]  Joshua Colp <jcolp@digium.com>
 
-2015-07-10 18:17 +0000 [653f2087e0]  Richard Mudgett <rmudgett@digium.com>
+       * chan_sip: Allow call pickup to set the hangup cause.
 
-       * res_pjsip_session.c: Fix crash on call disconnect.
+         The call pickup implementation in chan_sip currently sets the channel
+         hangup cause to "normal clearing" if call pickup is successfully
+         performed. This action overwrites the "answered elsewhere" hangup cause
+         set by the call pickup code and can result in the SIP device in
+         question showing a missed call when it should not.
 
-         The crash fix for ASTERISK-25183 backported some code from master to try
-         to make sure that a BYE response is processed by the same serializer used
-         by the BYE request.  The identified race condition causing that backport
-         was the BYE request code had not finished processing after sending the BYE
-         before the BYE response came in for processing under a different thread.
-         Unfortunately, there is still a race condition.  Now the race condition is
-         between destroying the call session's serializer in
-         ast_taskprocessor_unreference() and using ast_taskprocessor_get() to get a
-         reference to the serializer for a BYE response.  Even worse, the new race
-         condition is a design limitation of the taskprocessor implementation that
-         didn't matter in versions before v12.  Back then, taskprocessors were only
-         destroyed when a module unloaded.  Now res_pjsip can destroy them when a
-         call ends.
+         This change sets the hangup cause to "normal clearing" as a
+         default initially but allows the call pickup to change it as
+         needed.
 
-         However, as noted on the ASTERISK-25183 commit,
-         session_inv_on_state_changed() is disassociating the dialog from the
-         session when the invite dialog state becomes PJSIP_INV_STATE_DISCONNECTED.
-         This is a tad too soon because our BYE request transaction has not
-         completed yet.
+         ASTERISK-25346 #close
 
-         * Split session_end() that is called by session_inv_on_state_changed() to
-         hold off session destruction until the BYE transaction timeout occurs or a
-         failed initial INVITE transaction timeout occurs in
-         session_inv_on_tsx_state_changed().
+         Change-Id: I00ac2c269cee9e29586ee2c65e83c70e52a02cff
 
-         ASTERISK-25201 #close
-         Reported by: Matt Jordan
+2015-08-25 07:17 +0000 [2a4eee0cd9]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: Iaf8dc8485fd8392a2a3ee4ad3b7f7f04a0dcc961
+       * res_pjsip: Add common ast_sip_get_host_ip API.
 
-2015-07-14 13:12 +0000 [1aafadf814]  Benjamin Ford <bford@digium.com>
+         Modules commonly used the pj_gethostip function for retrieving the
+         IP address of the host. This function does not cache the result and may
+         result in a DNS lookup occurring, or additional work. If the DNS
+         server is unreachable or network issues arise this can cause the
+         pj_gethostip function to block for a period of time.
 
-       * ARI: Added new functionality to reload a single module.
+         This change adds an ast_sip_get_host_ip and ast_sip_get_host_ip_string
+         function which does the same thing but caches the host IP address at
+         module load time. This results in no additional work being done each
+         time the local host IP address is needed.
 
-         An http request can be sent to reload an Asterisk module. If the
-         module can not be reloaded or is not already loaded, an error
-         response will be returned.
+         ASTERISK-25342 #close
 
-         The command "curl -v -u user:pass -X PUT 'http://localhost:8088
-         /ari/asterisk/modules/{moduleName}'" (or something similar, based
-         on configuration) can be run in the terminal to access this new
-         functionality.
+         Change-Id: I3205deb679b01fa5ac05a94b623bfd620a2abe1e
 
-         For more information, see:
-         https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
+2015-08-24 11:04 +0000 [7c4d0c3506]  Joshua Colp <jcolp@digium.com>
 
-         * Added new ARI functionality
-         * Asterisk modules can be reloaded through http requests
+       * res_pjsip_pubsub: On recreated notify fail deleted sub_tree is referenced
 
-         ASTERISK-25173
+         When recreating a subscription it is possible for a freed sub_tree
+         to be referenced when the initial NOTIFY fails to be created.
 
-         Change-Id: I289188bcae182b2083bdbd9ebfffd50b62f58ae1
+         Change-Id: I681c215309aad01b21d611c2de47b3b0a6022788
 
-2015-07-14 08:55 +0000 [9dcae23cfc]  Benjamin Ford <bford@digium.com>
+2015-08-24 06:21 +0000 [6c2dab1e88]  Joshua Colp <jcolp@digium.com>
 
-       * ARI: Added new functionality to unload a single module.
+       * bridge: Kick channel from bridge if hung up during action.
 
-         An http request can be sent to unload an Asterisk module. If the
-         module can not be unloaded or is already unloaded, an error response
-         will be returned.
+         When executing an action in a bridge it is possible for the
+         channel to be hung up without the bridge becoming aware of it.
+         This is most easily reproducible by hanging up when the bridge
+         is streaming DTMF due to a feature timeout. This change makes
+         it so after action execution the channel is checked to determine
+         if it has been hung up and if it has it is kicked from the bridge.
 
-         The command "curl -v -u user:pass -X DELETE 'http://localhost:8088
-         /ari/asterisk/modules/{moduleName}'" (or something similar, depending
-         on configuration) can be run in the terminal to access this new
-         functionality.
+         ASTERISK-25341 #close
 
-         For more information, see:
-         https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
+         Change-Id: I6dd8b0c3f5888da1c57afed9e8a802ae0a053062
 
-         * Added new ARI functionality
-         * Asterisk modules can be unloaded through http requests
+2015-08-23 18:26 +0000 [bc6fe07f5c]  Matt Jordan <mjordan@digium.com>
 
-         ASTERISK-25173
+       * res_pjsip/pjsip_configuration: Disregard empty auth values
 
-         Change-Id: I535a95f5676deb02651522761ecbdc0b00b5ac57
+         When an endpoint is backed by a non-static conf file backend (such as
+         the AstDB or Realtime), the 'auth' object may be returned as being an
+         empty string. Currently, res_pjsip will interpret that as being a valid
+         auth object, and will attempt to authenticate inbound requests. This
+         isn't desired; is an auth value is empty (which the name of an auth
+         object cannot be), we should instead interpret that as being an invalid
+         auth object and skip it.
 
-2015-07-13 16:00 +0000 [c219a98d2b]  Benjamin Ford <bford@digium.com>
+         ASTERISK-25339 #close
 
-       * ARI: Added new functionality to load a single module.
+         Change-Id: Ic32b0c6eb5575107d5164a8c40099e687cd722c7
 
-         An http request can be sent to load an Asterisk module. If the
-         module can not be loaded or is loaded already, an error response
-         will be returned.
+2015-08-19 12:10 +0000 [0582776f7f]  Richard Mudgett <rmudgett@digium.com>
 
-         The command curl -v -u user:pass -X POST 'http://localhost:8088/ari
-         /asterisk/modules/{moduleName}'" (or something similar, depending on
-         configuration) can be run in the terminal to access this new
-         functionality.
+       * ari/ari_websockets.c: Fix ast_debug parameter type mismatch.
 
-         For more information, see:
-         https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
+         This is a type mismatch fix of the debugging commit
+         c63316eec10e1990a88bf4712238d6deb375bfa9 made to find out why
+         a testsuite test was failing only on one of the continuous
+         integration build agents.
 
-         * Added new ARI functionality
-         * Asterisk modules can be loaded through http requests
+         Change-Id: Iba34f6e87cec331f6ac80e4daff6476ea6f00a75
 
-         ASTERISK-25173
+2015-08-19 10:30 +0000 [504213f542]  Scott Griepentrog <scott@griepentrog.com>
 
-         Change-Id: I9e05d5b8c5c666ecfef341504f9edc1aa84fda33
+       * contrib: script install_prereq should install sqlite3
 
-2015-07-13 10:54 +0000 [73e35d20de]  Benjamin Ford <bford@digium.com>
+         Asterisk needs the sqlite 3 library, which is package
+         sqlite-devel in CentOS. By adding this package to the
+         script, a problem with configure failing is resolved.
 
-       * ARI: Added new functionality to get information on a single module.
+         ASTERISK-25331 #close
+         Reported by: Kevin Harwell
 
-         An http request can be sent to retrieve information on a single
-         module, including the resource name, description, use count, status,
-         and support level.
+         Change-Id: I90efaf6a01914fea03f21e5cdbd91c348f44b0ec
 
-         The command "curl -v -u user:pass -X GET 'http://localhost:8088/ari
-         /asterisk/modules/{moduleName}'" (or something similar, depending on
-         configuration) can be run in the terminal to access this new
-         functionality.
+2015-08-18 16:06 +0000 [77518d5434]  Richard Mudgett <rmudgett@digium.com>
 
-         For more information, see:
-         https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
+       * res_http_websocket.c: Fix some off nominal path cleanup.
 
-         * Added new ARI functionality
-         * Information on a single module can now be retrieved
+         * Remove extraneous unlock on off-nominal path.
+         * Add missing HTTP error reply.
 
-         ASTERISK-25173
+         Change-Id: I1f402bfe448fba8696b507477cab5f060ccd9b2b
 
-         Change-Id: Ibce5a94e70ecdf4e90329cf0ba66c33a62d37463
+2015-08-18 14:46 +0000 [c61547fee6]  Richard Mudgett <rmudgett@digium.com>
 
-2015-07-08 14:56 +0000 [97ee0ee6c6]  Kevin Harwell <kharwell@digium.com>
+       * res_ari.c: Add missing off nominal unlock and remove a RAII_VAR().
 
-       * bridge.c: Fixed race condition during attended transfer
+         Change-Id: I0c5e7b34057f26dadb39489c4dac3015c52f5dbf
 
-         During an attended transfer a thread is started that handles imparting the
-         bridge channel. From the start of the thread to when the bridge channel is
-         ready exists a gap that can potentially cause problems (for instance, the
-         channel being swapped is hung up before the replacement channel enters the
-         bridge thus stopping the transfer). This patch adds a condition that waits
-         for the impart thread to get to a point of acceptable readiness before
-         allowing the initiating thread to continue.
+2015-08-17 16:41 +0000 [bd867cd078]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-24782
-         Reported by: John Bigelow
+       * app_queue.c: Extract some functions for simpler code.
 
-         Change-Id: I08fe33a2560da924e676df55b181e46fca604577
+         * Extract set_queue_member_pause() from set_member_paused() for simpler
+         and more consistent code.
 
-2015-07-08 16:28 +0000 [bb76b88baf]  Matt Jordan <mjordan@digium.com>
+         * Extract set_queue_member_ringinuse() from
+         set_member_ringinuse_help_members() for simpler code.
 
-       * main/sorcery: Don't fail object set creation from JSON if field fails
+         Change-Id: Iecc1f4119c63347341d7ea6b65f5fc4963706306
 
-         Some individual fields may fail their conversion due to their default
-         values being invalid for their custom handlers. In particular,
-         configuration values that depend on others being enabled (and thus have
-         an empty default value) are notorious for tripping this routine up. An
-         example of this are any of the DTLS options for endpoints. Any of the
-         DTLS options will fail to be applied (as DTLS is not enabled), causing
-         the entire object set to be aborted.
+2015-08-14 12:55 +0000 [e5f5b9f384]  Richard Mudgett <rmudgett@digium.com>
 
-         This patch makes it so that we log a debug message when skipping a
-         field, and rumble on anyway.
+       * app_queue.c: Fix setting QUEUE_MEMBER 'paused' and 'ringinuse'.
 
-         ASTERISK-25238
+         Setting the 'paused' and 'ringinuse' options on a queue member using the
+         dialplan function QUEUE_MEMBER did not behave the same way as the
+         equivalent dialplan applications or AMI actions.
 
-         Change-Id: I0bea13de79f66bf9f9ae6ece0e94a2dc1c026a76
+         * Made queue_function_mem_write() call the set_member_paused() and
+         set_member_value() for the 'paused' and 'ringinuse' options respectively.
+         A beneficial side effect is that the queue name is now optional and sets
+         the value in all queues the interface is a member.
 
-2015-07-08 16:21 +0000 [5f13c2226a]  Matt Jordan <mjordan@digium.com>
+         * Update QUEUE_MEMBER XML documentation.
 
-       * main/format_cap: Parse capabilities generated by ast_format_cap_get_names
+         * Fix error checking in QUEUE_MEMBER() write.
 
-         We have a strange relationship between the parsing of format
-         capabilities from a string and their representation as a string. We
-         expect the format capabilities to be expressed as a string in the
-         following format:
+         ASTERISK-25215 #close
+         Reported by: Lorne Gaetz
 
-         allow = !all,ulaw,alaw
-         disallow = g722
+         Change-Id: I3a016be8dc94d63a9cc155295ff9c9afa5f707cb
 
-         While we would generate the string representation of those formats as:
+2015-08-17 13:34 +0000 [ded51e3d77]  Richard Mudgett <rmudgett@digium.com>
 
-         allow = (ulaw|alaw)
-         disallow = (ulaw|alaw|g729...)
+       * app_queue.c: Fix error checking in QUEUE_MEMBER() read.
 
-         When the configuration framework needs to store values as a string, it
-         generates the format capabilities using the second representation; this
-         representation however cannot be parsed when the entry is rehydrated.
-         This patch fixes that by updating
-         ast_format_cap_update_by_allow_disallow to parse an entry as if it were
-         in the generated format if it has a leading '(' and a trailing ')'.
+         Change-Id: I7294e13d27875851c2f4ef6818adba507509d224
 
-         ASTERISK-25238
+2015-08-17 11:00 +0000 [ab373f2cef]  Scott Griepentrog <scott@griepentrog.com>
 
-         Change-Id: I904d43caf4cf45af06f6aee0c9e58556eb91d6ca
+       * CHAOS: prevent sorcery object with null id
 
-2015-06-27 17:53 +0000 [2325b106fd]  Matt Jordan <mjordan@digium.com>
+         When allocating a sorcery object, fail if the
+         id value was not allocated.
 
-       * tests/test_devicestate: Add additional tests for the device state API
+         ASTERISK-25323
+         Reported by: Scott Griepentrog
 
-         This patch adds more tests that exercise the device state API. This includes:
+         Change-Id: I152133fb7545a4efcf7a0080ada77332d038669e
 
-         * Tests that cover adding a device state provider, as well as deleting a
-           device state provider. This also verifies that you cannot add an
-           already added device state provider, and cannot delete an already
-           deleted device state provider.
-         * A test that covers changing device state and receiving said updates
-           from a device state subscriber. This also covers hitting both the
-           device state cache as well as a custom device state provider.
-         * A test that covers converting device state to channel state and device
-           state values to a string representation and back.
-         * A test that covers obtaining device state from an active channel and a
-           channel driver that provides its own device state.
+2015-08-14 15:46 +0000 [b719f56c72]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I2adca67ffb405cd8625a5d6df1e3f9b3d945c08d
+       * res_pjsip_sdp_rtp: Restore removed NULL check.
 
-2015-06-27 17:51 +0000 [328f0be806]  Matt Jordan <mjordan@digium.com>
+         When sending an RTP keepalive, we need to be sure we're not dealing with
+         a NULL RTP instance. There had been a NULL check, but the commit that
+         added the rtp_timeout and rtp_hold_timeout options removed the NULL
+         check.
 
-       * main/devicestate: Prevent duplicate registration of device state providers
-
-         Currently, the device state provider API will allow you to register a
-         device state provider with the same case insensitive name more than
-         once. This could cause strange issues, as the duplicate device state
-         providers will not be queried when a device's state has to be polled.
-         This patch updates the API such that a device state provider with the
-         same name as one that has already registered will be rejected.
+         Change-Id: I2d7dcd5022697cfc6bf3d9e19245419078e79b64
 
-         Change-Id: I4a418a12280b7b6e4960bd44f302e27cd036ceb2
+2015-08-13 12:30 +0000 [cea5dc7b8a]  Richard Mudgett <rmudgett@digium.com>
 
-2015-07-10 22:25 +0000 [bee41eec62]  Matt Jordan <mjordan@digium.com>
+       * audiohook.c: Simplify variable usage in audiohook_read_frame_both().
 
-       * res/res_sorcery_memory_cache: Fix test registration issues
+         Change-Id: I58bed58631a94295b267991c5b61a3a93c167f0c
 
-         Again, tests now need to not end with a newline. This patch makes it so
-         the tests can register again, unit tests will actually pass, and we can
-         stop wasting time trying to figure out why builds are failing when they
-         really aren't failing.
+2015-08-13 12:22 +0000 [b3a56bee83]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Ide519fbeba89f413c733446c5ff7b224fc4ce840
+       * audiohook.c: Fix MixMonitor crash when using the r() or t() options.
 
-2015-07-10 21:42 +0000 [4d738e9026]  Matt Jordan <mjordan@digium.com>
+         The built frame format in audiohook_read_frame_both() is now set to a
+         signed linear format before the rx and tx frames are duplicated instead of
+         only for the mixed audio frame duplication.
 
-       * tests/test_sorcery_memory_cache_thrash: Fix test loading problems
+         ASTERISK-25322 #close
+         Reported by Sean Pimental
 
-         Because unit tests now want descriptions to not end with a newline, the
-         sorcery memory cache thrash tests failed to register. This patch
-         corrects their descriptions.
+         Change-Id: I86f85b5c48c49e4e2d3b770797b9d484250a1538
 
-         Change-Id: Id004b1becfdeed8ee3c846f49beab76a5c0f68b6
+2015-08-12 12:59 +0000 [25af2d71c8]  Kevin Harwell <kharwell@digium.com>
 
-2015-06-26 10:57 +0000 [47ea312b24]  Benjamin Ford <bford@digium.com>
+       * chan_sip.c: wrong peer searched in sip_report_security_event
 
-       * ARI: Added new functionality to get all module information.
+         In chan_sip, after handling an incoming invite a security event is raised
+         describing authorization (success, failure, etc...). However, it was doing
+         a lookup of the peer by extension. This is fine for register messages, but
+         in the case of an invite it may search and find the wrong peer, or a non
+         existent one (for instance, in the case of call pickup). Also, if the peers
+         are configured through realtime this may cause an unnecessary database lookup
+         when caching is enabled.
 
-         An http request can be sent to retrieve a list of all existing modules,
-         including the resource name, description, use count, status, and
-         support level.
+         This patch makes it so that sip_report_security_event searches by IP address
+         when looking for a peer instead of by extension after an invite is processed.
 
-         The command "curl -v -u user:pass -X GET 'http://localhost:8088/ari/
-         asterisk/modules" (or something similar, depending on configuration)
-         can be run in the terminal to access this new functionality.
+         ASTERISK-25320 #close
 
-         For more information, see:
-         https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
+         Change-Id: I9b3f11549efb475b6561c64f0e6da1a481d98bc4
+2015-08-13 05:26 +0000 [e18c300550]  Joshua Colp <jcolp@digium.com>
 
-         * Added new ARI functionality
-         * Information on modules can now be retrieved
+       * res_http_websocket: When shutting down a session don't close closed socket
 
-         Change-Id: I63cbbf0ec0c3544cc45ed2a588dceabe91c5e0b0
+         Due to the use of ast_websocket_close in session termination it is
+         possible for the underlying socket to already be closed when the
+         session is terminated. This occurs when the close frame is attempted
+         to be written out but fails.
 
-2015-07-09 09:18 +0000 [d558b00c85]  Joshua Colp <jcolp@digium.com>
+         Change-Id: I7572583529a42a7dc911ea77a974d8307d5c0c8b
+2015-08-11 05:24 +0000 [b4e9416138]  Joshua Colp <jcolp@digium.com>
 
-       * bridge_native_rtp.c: Don't start native RTP bridging after attended transfer.
+       * res_http_websocket: Forcefully terminate on write errors.
 
-         The bridge_native_rtp module adds a frame hook to channels which are in
-         a native RTP bridge. This frame hook is used to intercept when a hold
-         or unhold frame traverses the bridge so native RTP can be stopped or
-         started as appropriate. This is expected but exposes a specific bug
-         when attended transfers are involved.
+         The res_http_websocket module will currently attempt to close
+         the WebSocket connection if fatal cases occur, such as when
+         attempting to write out data and being unable to. When the
+         fatal cases occur the code attempts to write a WebSocket close
+         frame out to have the remote side close the connection. If
+         writing this fails then the connection is not terminated.
 
-         Upon completion of an attended transfer an unhold frame is queued up
-         to take one of the channels involved off hold. After this is done
-         the channel is moved between bridges.
+         This change forcefully terminates the connection if the
+         WebSocket is to be closed but is unable to send the close frame.
 
-         When the frame hook is involved in this case for the unhold it
-         releases the channel lock and acquires the bridge lock. This
-         allows the bridge core to step in and move the channel
-         (potentially changing the bridging techology) from another thread.
-         Once completed the bridge lock is released by the bridge core.
-         The frame hook is then able to acquire the bridge lock and
-         wrongfully starts native RTP again, despite the channel no longer
-         being in the bridge or needing to start native RTP. In fact at
-         this point the frame hook is no longer attached to the channel.
+         ASTERISK-25312 #close
 
-         This change makes it so the native RTP bridge data is available to
-         the frame hook when it is invoked. Whether the frame hook has
-         been detached or not is stored on the native RTP bridge data and
-         is checked by the frame hook before starting or stopping native
-         RTP bridging. If the frame hook has been detached it does nothing.
+         Change-Id: I10973086671cc192a76424060d9ec8e688602845
 
-         ASTERISK-25240 #close
+2015-08-10 13:43 +0000 [256bc52b66]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I13a73186a05f4e5a764f81e5cd0ccec1ed1891d2
+       * chan_dahdi.c: Flush the DAHDI write buffer after starting DTMF.
 
-2015-05-16 17:02 +0000 [b74b071369]  Joshua Colp <jcolp@digium.com>
+         Pressing DTMF digits on a phone to go out on a DAHDI channel can result in
+         the digit not being recognized or even heard by the peer.
 
-       * res_sorcery_memory_cache: Backport to 13
+         Phone -> Asterisk -> DAHDI/channel
 
-         Gerrit is complaining of conflicts when trying to create a patch series
-         of all of the cherry-picked master commits, so I have instead squashed
-         it all into one commit.
+         Turns out the DAHDI behavior with DTMF generation (and any other generated
+         tones) is exposed by the "buffers=" setting in chan_dahdi.conf.  When
+         Asterisk requests to start sending DTMF then DAHDI waits until its write
+         buffer is empty before generating any samples for the DTMF tones.  When
+         Asterisk subsequently requests DAHDI to stop sending DTMF then DAHDI
+         immediately stops generating the DTMF samples.  As a result, the more
+         samples there are in the DAHDI write buffer the shorter the time DTMF
+         actually gets sent on the wire.  If there are more samples in the write
+         buffer than the time DTMF is supposed to be sent then no DTMF gets sent on
+         the wire.  With the "buffers=12,half" setting and each buffer representing
+         20 ms of samples then the DAHDI write buffer is going to contain around
+         120 ms of samples.  For DTMF to be recognized by the peer the actual sent
+         DTMF duration needs to be a minimum of 40 ms.  Therefore, the intended
+         duration needs to be a minimum of 160 ms for the peer to receive the
+         minimum DTMF digit duration to recognize it.
 
-         ASTERISK-25067 #close
-         Reported by: Matt Jordan
+         A simple and effective solution to work around the DAHDI behavior is for
+         Asterisk to flush the DAHDI write buffer when sending DTMF so the full
+         duration of DTMF is actually sent on the wire.  When someone is going to
+         send DTMF they are not likely to be talking before sending the tones so
+         the flushed write samples are expected to just contain silence.
 
-         Change-Id: I6dda90343fae24a75dc5beec84980024e8d61eb9
+         * Made dahdi_digit_begin() flush the DAHDI write buffer after requesting
+         to send a DTMF digit.
 
-2015-07-08 04:21 +0000 [7ff1ac8797]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-25315 #close
+         Reported by John Hardin
 
-       * res_rtp_asterisk: Ensure DTLS timeout timer is -1 if DTLS is not used.
+         Change-Id: Ib56262c708cb7858082156bfc70ebd0a220efa6a
 
-         This change fixes a bug where the DTLS timeout timer would be
-         initialized to 0 if DTLS was not used for an RTP session.
+2015-08-05 14:21 +0000 [800e0ea48d]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25103
+       * chan_dahdi.c: Lock private struct for ast_write().
 
-         Change-Id: If8d26bb054f1d300838850da5b8db9044c2fe2ac
+         There is a window of opportunity for DTMF to not go out if an audio frame
+         is in the process of being written to DAHDI while another thread starts
+         sending DTMF.  The thread sending the audio frame could be past the
+         currently dialing check before being preempted by another thread starting
+         a DTMF generation request.  When the thread sending the audio frame
+         resumes it will then cause DAHDI to stop the DTMF tone generation.  The
+         result is no DTMF goes out.
 
-2015-07-01 07:55 +0000 [05e8e14982]  Joshua Colp <jcolp@digium.com>
+         * Made dahdi_write() lock the private struct before writing to the DAHDI
+         file descriptor.
 
-       * res_rtp_asterisk: Prevent simultaneous access to DTLS SSL context.
+         ASTERISK-25315
+         Reported by John Hardin
 
-         This change moves logic for setting up the DTLS SSL contexts to
-         when the SDP is done being processed instead of when ICE negotiation
-         completes. It also stops handshakes from being initiated when we
-         are acting as a server.
+         Change-Id: Ib4e0264cf63305ed5da701188447668e72ec9abb
 
-         Manipulating the SSL context when ICE negotiation has completed
-         is problematic as the SSL context is not protected and if acting
-         as a client the remote side may have started DTLS negotiation
-         already.
+2015-08-10 18:23 +0000 [c126afe18f]  Richard Mudgett <rmudgett@digium.com>
 
-         The retransmission timeout timer code has also been split up
-         and simplified some. Both RTP and RTCP now have their own timers
-         and the points at which the timer is stopped and started is now
-         more specific. When a packet is sent the timer is started. When
-         a response is received but before it is processed the timer is
-         stopped. This provides a guarantee that the timeout is not
-         occurring while the response is processed.
+       * res_pjsip.c: Fix crash from corrupt saved SUBSCRIBE message.
 
-         ASTERISK-22805 #close
-         ASTERISK-24550 #close
-         ASTERISK-24651 #close
-         ASTERISK-24832 #close
-         ASTERISK-25103 #close
-         ASTERISK-25127 #close
+         If the saved SUBSCRIBE message is not parseable for whatever reason then
+         Asterisk could crash when libpjsip tries to parse the message and adds an
+         error message to the parse error list.
 
-         Change-Id: Ib75ea2546f29d6efc3d2d37c58df6986c7bd9b91
+         * Made ast_sip_create_rdata() initialize the parse error rdata list.  The
+         list is checked after parsing to see that it remains empty for the
+         function to return successful.
 
-2015-06-26 16:10 +0000 [38bace4fbb]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25306
+         Reported by Mark Michelson
 
-       * res_pjsip_t38.c: Fix always false if test.
+         Change-Id: Ie0677f69f707503b1a37df18723bd59418085256
 
-         Calling t38_change_state() sets the t38 state so it makes little sense to
-         then check the state right after the call for something else.
+2015-08-10 07:40 +0000 [f68c995bc9]  Alexander Traud <pabstraud@compuserve.com>
 
-         * Made the code in t38_interpret_parameters() reject or exit T.38 mode as
-         intended but not implemented.
+       * chan_sip: Fix negotiation of iLBC 30.
 
-         Change-Id: Ib281263a6ed44da9448132c4e6df1e183b8a3df2
+         iLBC 20 was advertised in a SIP/SDP negotiation. However, only iLBC 30 is
+         supported. Removes "a=fmtp:x mode=y" from SDP. Because of RFC 3952 section 5,
+         only iLBC 30 is negotiated now.
 
-2015-06-30 11:17 +0000 [2f7688c788]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25309 #close
 
-       * res_pjsip_mwi.c: Use safer loop coding in mwi_subscription_mailboxes_str().
+         Change-Id: I92d724600a183eec3114da0ac607b994b1a793da
 
-         Change-Id: I6f39d809a6d1b47b35bb32b298f5a12f35d6f907
+2015-08-09 18:42 +0000 [8e194047ac]  Matt Jordan <mjordan@digium.com>
 
-2015-06-30 11:14 +0000 [74be3a50d7]  Richard Mudgett <rmudgett@digium.com>
+       * res/res_format_attr_silk: Expose format attributes to other modules
 
-       * res_pjsip_mwi.c: Eliminate a simple RAII_VAR.
+         This patch adds the .get callback to the format attribute module, such
+         that the Asterisk core or other third party modules can query for the
+         negotiated format attributes.
 
-         Change-Id: Ib1843f81e826a6c760c424c88eb70c350d9d61da
+         Change-Id: Ia24f55cf9b661d651ce89b4f4b023d921380f19c
 
-2015-06-30 11:11 +0000 [589e93617a]  Richard Mudgett <rmudgett@digium.com>
+2015-08-09 17:56 +0000 [a0f451c35e]  Matt Jordan <mjordan@digium.com>
 
-       * res_pjsip_mwi.c: Fix mid-line log message line breaks.
+       * main/format: Add an API call for retrieving format attributes
 
-         * Add create_mwi_subscriptions_for_endpoint() doxygen comment.
+         Some codecs that may be a third party library to Asterisk need to have
+         knowledge of the format attributes that were negotiated. Unfortunately,
+         when the great format migration of Asterisk 13 occurred, that ability
+         was lost.
 
-         Change-Id: I3c3f921f4ec749fb65b62d2f6fa0d4d1888b94e2
+         This patch adds an API call, ast_format_attribute_get, to the core
+         format API, along with updates to the unit test to check the new API
+         call. A new callback is also now available for format attribute modules,
+         such that they can provide the format attribute values they manage.
 
-2015-06-26 18:48 +0000 [0d67e04359]  Richard Mudgett <rmudgett@digium.com>
+         Note that the API returns a void *. This is done as the format attribute
+         modules themselves may store format attributes in any particular manner
+         they like. Care should be taken by consumers of the API to check the
+         return value before casting and dereferencing. Consumers will obviously
+         need to have a priori knowledge of the type of the format attribute as
+         well.
 
-       * res_pjsip_mwi.c: Fix MWI subscription memory corruption crash.
+         Change-Id: Ieec76883dfb46ecd7aff3dc81a52c81f4dc1b9e3
 
-         MWI subscriptions can crash or corrupt memory when using the subscription
-         datastore to access the MWI subscription object because the datastore is
-         not holding a reference to the object.
+2015-08-07 22:11 +0000 [26f0559a94]  David M. Lee <dlee@respoke.io>
 
-         * Give the subscription datastore a ref to the MWI subscription object.
-         It is unfortunate that the ref causes a circular ref chain that must be
-         explicitly broken to allow the memory to get released.  The loop is broken
-         when the subscription is shutdown and if the subscription setup fails.
+       * Replace htobe64 with htonll
 
-         ASTERISK-25168 #close
-         Reported by: Carl Fortin
+         We don't have a compatability function to fill in a missing htobe64; but
+         we already have one for the identical htonll.
 
-         Change-Id: Ice4fa823f138ff10a6c74d280699c41a82836d4f
+         Change-Id: Ic0a95db1c5b0041e14e6b127432fb533b97e4cac
 
-2015-07-02 14:51 +0000 [0422433f47]  Richard Mudgett <rmudgett@digium.com>
+2015-08-07 14:20 +0000 [df9ce36366]  Scott Emidy <jemidy@digium.com>
 
-       * PJSIP XML, XPIDF: Fix buffer size overwrite memory corruption error.
+       * ARI: Retrieve existing log channels
 
-         When res_pjsip body generator modules were generating XML or XPIDF
-         response bodies, there was a chance that the generated body would be the
-         exact size of the supplied buffer.  Adding the nul string terminator would
-         then write beyond the end of the buffer and potentially corrupt memory.
+         An http request can be sent to get the existing Asterisk logs.
 
-         * Fix MALLOC_DEBUG high fence violations caused by adding a nul string
-         terminator on the end of a buffer for XML or XPIDF response bodies.
+         The command "curl -v -u user:pass -X GET 'http://localhost:8088
+         /ari/asterisk/logging'" can be run in the terminal to access the
+         newly implemented functionality.
 
-         * Made calls to pj_xml_print() safer if the XML prolog is requested.  Due
-         to a bug in pjproject, the return value could be -1 _or_
-         AST_PJSIP_XML_PROLOG_LEN if the supplied buffer is not large enough.
+         * Retrieve all existing log channels
 
-         * Updated the doxygen comment of AST_PJSIP_XML_PROLOG_LEN to describe the
-         return value of pj_xml_print() when the supplied buffer is not large
-         enough.
+         ASTERISK-25252
 
-         ASTERISK-25168
-         Reported by: Carl Fortin
+         Change-Id: I7bb08b93e3b938c991f3f56cc5d188654768a808
 
-         Change-Id: Id70e1d373a6a2b2bd9e678b5cbc5e55b308981de
+2015-08-07 11:14 +0000 [e9f1bc08cb]  Scott Emidy <jemidy@digium.com>
 
-2015-06-26 10:36 +0000 [8ea214aed7]  Richard Mudgett <rmudgett@digium.com>
+       * ARI: Creating log channels
 
-       * PJSIP FAX: Fix T.38 automatic reject timer NULL channel pointer dereferences.
+         An http request can be sent to create a log channel
+         in Asterisk.
 
-         When a caller calls a FAX number and then hangs up right after the call is
-         answered then the T.38 re-INVITE automatic reject timer may still be
-         running after the channel goes away.
+         The command "curl -v -u user:pass -X POST
+         'http://localhost:088/ari/asterisk/logging/mylog?
+         configuration=notice,warning'" can be run in the terminal
+         to access the newly implemented functionality for ARI.
 
-         * Added session NULL channel checks on the code paths that get executed by
-         t38_automatic_reject() to prevent a crash when the T.38 re-INVITE
-         automatic reject timer expires.
+         * Ability to create log channels using ARI
 
-         ASTERISK-25168
-         Reported by: Carl Fortin
+         ASTERISK-25252
 
-         Change-Id: I07b6cd23815aedce5044f8f32543779e2f7a2403
+         Change-Id: I9a20e5c75716dfbb6b62fd3474faf55be20bd782
 
-2015-06-05 15:37 +0000 [ada7346792]  Richard Mudgett <rmudgett@digium.com>
+2015-08-06 15:18 +0000 [78364132ce]  Scott Emidy <jemidy@digium.com>
 
-       * res_pjsip: Need to use the same serializer for a pjproject SIP transaction.
+       * ARI: Deleting log channels
 
-         All send/receive processing for a SIP transaction needs to be done under
-         the same threadpool serializer to prevent reentrancy problems inside
-         pjproject and res_pjsip.
+         An http request can be sent to delete a log channel
+         in Asterisk.
 
-         * Add threadpool API call to get the current serializer associated with
-         the worker thread.
+         The command "curl -v -u user:pass -X DELETE 'http://localhost:8088
+         /ari/asterisk/logging/mylog'" can be run in the terminal
+         to access the newly implemented functionally for ARI.
 
-         * Pick a serializer from a pool of default serializers if the caller of
-         res_pjsip.c:ast_sip_push_task() does not provide one.
+         * Able to delete log channels using ARI
 
-         This is a simple way to ensure that all outgoing SIP request messages are
-         processed under a serializer.  Otherwise, any place where a pushed task is
-         done that would result in an outgoing out-of-dialog request would need to
-         be modified to supply a serializer.  Serializers from the default
-         serializer pool are picked in a round robin sequence for simplicity.
+         ASTERISK-25252
 
-         A side effect is that the default serializer pool will limit the growth of
-         the thread pool from random tasks.  This is not necessarily a bad thing.
+         Change-Id: Id6eeb54ebcc511595f0418d586ff55914bc3aae6
 
-         * Made pjsip_distributor.c save the thread's serializer name on the
-         outgoing request tdata struct so the response can be processed under the
-         same serializer.
+2015-08-06 12:48 +0000 [e25569ef95]  Mark Michelson <mmichelson@digium.com>
 
-         This is a cherry-pick from master.
+       * res_pjsip_pubsub: More accurately persist packet.
 
-         **** ASTERISK-25115 Change-Id: Iea71c16ce1132017b5791635e198b8c27973f40a
+         The pjsip_rx_data structure has a pkt_info.packet field on it that is
+         the packet that was read from the transport. For datagram transports,
+         the packet read from the transport will correspond to the SIP message
+         that arrived. For streamed transports, however, it is possible to read
+         multiple SIP messages in one packet.
 
-         NOTE: session_inv_on_state_changed() is disassociating the dialog from the
-         session when the invite dialog becomes PJSIP_INV_STATE_DISCONNECTED.
-         Unfortunately this is a tad too soon because our BYE request transaction
-         has not completed yet.
+         In a recent case, Asterisk crashed on a system where TCP was being used.
+         This is because at some point, a read from the TCP socket resulted in a
+         200 OK response as well as an incoming SUBSCRIBE request being stored in
+         rdata->pkt_info.packet. When the SUBSCRIBE was processed, the
+         combination 200 OK and SUBSCRIBE was saved in persistent storage. Later,
+         a restart of Asterisk resulted in the crash because the persistent
+         subscription recreation code ended up building the 200 OK response
+         instead of a SUBSCRIBE request, and we attempted to access
+         request-specific data.
 
-         ASTERISK-25183 #close
-         Reported by: Matt Jordan
+         The fix here is to use the pjsip_msg_print() function in order to
+         persist SUBSCRIBE requests. This way, rather than using the raw socket
+         data, we use the parsed SIP message that PJSIP has given us. If we
+         receive multiple SIP messages from a single read, we will be sure only
+         to save off the relevant SIP message. There also is a safeguard put in
+         place to make sure that if we do end up reconstructing a SIP response,
+         it will not cause a crash.
 
-         Change-Id: I8bad0ae1daf18d75b8c9e55874244b7962df2d0a
+         ASTERISK-25306 #close
+         Reported by Mark Michelson
 
-2015-07-04 18:22 +0000 [55137c3d12]  Joshua Colp <jcolp@digium.com>
+         Change-Id: I4bf16f7b76a2541d10b55de82bcd14c6e542afb2
 
-       * res/res_http_websocket: Don't send HTTP response fragmented.
+2015-08-04 16:12 +0000 [8521a86367]  Joshua Colp <jcolp@digium.com>
 
-         This change makes it so that when accepting a WebSocket
-         connection the HTTP response is sent as one packet instead of
-         fragmented. Browsers don't like it when you send it fragmented.
+       * res_pjsip: Ensure sanitized XML is NULL terminated.
 
-         ASTERISK-25103
+         The ast_sip_sanitize_xml function is used to sanitize
+         a string for placement into XML. This is done by examining
+         an input string and then appending values to an output
+         buffer. The function used by its implementation, strncat,
+         has specific behavior that was not taken into account.
+         If the size of the input string exceeded the available
+         output buffer size it was possible for the sanitization
+         function to write past the output buffer itself causing
+         a crash. The crash would either occur because it was
+         writing into memory it shouldn't be or because the resulting
+         string was not NULL terminated.
 
-         Change-Id: I9b82c4ec2949b0bce692ad0bf6f7cea9709e7f69
+         This change keeps count of how much remaining space is
+         available in the output buffer for text and only allows
+         strncat to use that amount.
 
-2015-06-27 18:47 +0000 [49f81ddb85]  Matt Jordan <mjordan@digium.com>
+         Since this was exposed by the res_pjsip_pidf_digium_body_supplement
+         module attempting to send a large message the maximum allowed
+         message size has also been increased in it.
 
-       * Makefile: Remove coverage files on 'make clean'
+         A unit test has also been added which confirms that the
+         ast_sip_sanitize_xml function is providing NULL terminated
+         output even when the input length exceeds the output
+         buffer size.
 
-         This patch updates a variety of Makefiles in Asterisk's build system to
-         remove .gcda and .gcno files when 'make clean' is executed. These files
-         are generated when '--enable-coverage' is passed to the Asterisk
-         configure script.
+         ASTERISK-25304 #close
 
-         Change-Id: Ib70b41eea2ee2908885bff02e80faf9f40c84602
+         Change-Id: I743dd9809d3e13d722df1b0509dfe34621398302
 
-2015-07-02 09:08 +0000 [e0f565663b]  Walter Doekes <walter+asterisk@wjd.nu>
+2015-08-05 05:23 +0000 [9a12804e59]  Joshua Colp <jcolp@digium.com>
 
-       * chan_sip: Fix early call pickup channel leak.
+       * res_rtp_asterisk: Don't leak temporary key when enabling PFS.
 
-         When handle_invite_replaces() was called, and either ast_bridge_impart()
-         failed or there was no bridge (because the channel we're picking up was
-         still ringing), chan_sip would leak a channel.
+         A change recently went in which enabled perfect forward secrecy for
+         DTLS in res_rtp_asterisk. This was accomplished two different ways
+         depending on the availability of a feature in OpenSSL. The fallback
+         method created a temporary instance of a key but did not free it.
+         This change fixes that.
 
-         Thanks Matt and Corey for checking the bridge path.
+         ASTERISK-25265
 
-         ASTERISK-25226 #close
+         Change-Id: Iadc031b67a91410bbefb17ffb4218d615d051396
+2015-08-04 09:47 +0000 [27dc2094e9]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: Ie736bb182170a73eef5bcef0ab0376f645c260c8
+       * res_http_websocket: Debug write lengths.
 
-2015-07-02 06:19 +0000 [a5a262be78]  Walter Doekes <walter+asterisk@wjd.nu>
+         Commit 39cc28f6ea2140ad6d561fd4c9e9a66f065cecee attempted to fix a
+         test failure observed on 32 bit test agents by ensuring that a cast from
+         a 32 bit unsigned integer to a 64 bit unsigned integer was happening in
+         a predictable place. As it turns out, this did not cause test runs to
+         succeed.
 
-       * chan_mgcp: Don't call close on fd -1.
+         This commit adds several redundant debug messages that print the payload
+         lengths of websocket frames. The idea here is that this commit will not
+         cause tests to succeed for the faulty test agent, but we might deduce
+         where the fault lies more easily this way by observing at what point the
+         expected value (537) changes to some ungangly huge number.
 
-         ASTERISK-25220 #close
+         If you are wondering why something like this is being committed to the
+         branch, keep in mind that in commit
+         39cc28f6ea2140ad6d561fd4c9e9a66f065cecee I noted that the observed test
+         failures only happen when automated tests are run. Attempts to run the
+         tests by hand manually on the test agent result in the tests passing.
 
-         Change-Id: Ic48f3a82f51ada87f2fb0e016c9efe0ad56f1ee3
+         Change-Id: I14a65c19d8af40dadcdbd52348de3b0016e1ae8d
 
-2015-07-02 06:10 +0000 [b835312b4c]  Walter Doekes <walter+asterisk@wjd.nu>
+2015-08-03 11:06 +0000 [39cc28f6ea]  Mark Michelson <mmichelson@digium.com>
 
-       * rtp_engine: Skip useless self-assignment in ast_rtp_engine_unload_format.
+       * res_http_websocket: Avoid passing strlen() to ast_websocket_write().
 
-         When running valgrind on Asterisk, it complained about:
+         We have seen a rash of test failures on a 32-bit build agent. Commit
+         48698a5e21d7307f61b5fb2bd39fd593bc1423ca solved an obvious problem where
+         we were not encoding a 64-bit value correctly over the wire. This
+         commit, however, did not solve the test failures.
 
-             ==32423== Source and destination overlap in memcpy(0x85a920, 0x85a920, 304)
-             ==32423==    at 0x4C2F71C: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/...)
-             ==32423==    by 0x55BA91: ast_rtp_engine_unload_format (rtp_engine.c:2292)
-             ==32423==    by 0x4EEFB7: ast_format_attr_unreg_interface (format.c:1437)
+         In the failing tests, ARI is attempting to send a 537 byte text frame
+         over a websocket. When sending a frame this small, 16 bits are all that
+         is required in order to encode the payload length on the websocket
+         frame. However, ast_websocket_write() thinks that the payload length is
+         greater than 65535 and therefore writes out a 64 bit payload length.
+         Inspecting this payload length, the lower 32 bits are exactly what we
+         would expect it to be, 537 in hex. The upper 32 bits, are junk values
+         that are not expected to be there.
 
-         The code in question is a struct assignment, which may be performed by
-         memcpy as a compiler optimization. It is changed to only copy the struct
-         contents if source and destination are different.
+         In the failure, we are passing the result of strlen() to a function that
+         expects a uint64_t parameter to be passed in. strlen() returns a size_t,
+         which on this 32-bit machine is 32 bits wide. Normally, passing a 32-bit
+         unsigned value to somewhere where a 64-bit unsigned value is expected
+         would cause no problems. In fact, in manual runs of failing tests, this
+         works just fine. However, ast_websocket_write() uses the Asterisk
+         optional API, which means that rather than a simple function call, there
+         are a series of macros that are used for its declaration and
+         implementation. These macros may be causing some sort of error to occur
+         when converting from a 32 bit quantity to a 64 bit quantity.
 
-         ASTERISK-25219 #close
+         This commit changes the logic by making existing ast_websocket_write()
+         calls use ast_websocket_write_string() instead. Within
+         ast_websocket_write_string(), the 64-bit converted strlen is saved in a
+         local variable, and that variable is passed to ast_websocket_write()
+         instead.
 
-         Change-Id: I6d3546c326b03378ca8e9b8cefd41c16e0088b9a
+         Note that this commit message is full of speculation rather than
+         certainty. This is because the observed test failures, while always
+         present in automated test runs, never occur when tests are manually
+         attempted on the same test agent. The idea behind this commit is to fix
+         a theoretical issue by performing changes that should, at the least,
+         cause no harm. If it turns out that this change does not fix the failing
+         tests, then this commit should be reverted.
 
-2015-07-02 05:16 +0000 [6551e16e03]  Walter Doekes <walter+asterisk@wjd.nu>
+         Change-Id: I4458dd87d785ca322b89c152b223a540a3d23e67
 
-       * astfd: Fix buffer overflow in DEBUG_FD_LEAKS.
+2015-07-28 05:33 +0000 [aed068844c]  Mark Duncan <mark@syon.co.jp>
 
-         If DEBUG_FD_LEAKS was used and more file descriptors than the default of
-         1024 were available, some DEBUG_FD_LEAKS-patched functions would
-         overwrite memory past the fixed-size (1024) fdleaks buffer.
+       * res/res_rtp_asterisk: Add ECDH support
 
-         This change:
-         - adds bounds checks to __ast_fdleak_fopen and __ast_fdleak_pipe
-         - consistently uses ARRAY_LEN() instead of sizeof() or 1023 or 1024
-         - stores pointers to constants instead of copying the contents
-         - reorders the fdleaks struct for possibly tighter packing
-         - adds a tiny bit of documentation
+         This will add ECDH support to Asterisk. It will
+         detect auto ECDH support in OpenSSL
+         (1.0.2b and above) during ./configure. If this is
+         available, it will use it,
+         otherwise it will fall back to prime256v1 (this
+         behavior is consistent with
+         other projects such as Apache and nginx).
 
-         ASTERISK-25212 #close
+         This fixes WebRTC being broken in Firefox 38+ due
+         to Firefox now only supporting
+         ciphers with perfect forward secrecy.
 
-         Change-Id: Iacb69e7701c0f0a113786bd946cea5b6335a85e5
+         ASTERISK-25265 #close
 
-2015-07-02 04:57 +0000 [f4dd9560cf]  Walter Doekes <walter+asterisk@wjd.nu>
+         Change-Id: I8c13b33a2a79c0bde2e69e4ba6afa5ab9351465b
 
-       * res_timing: Don't close FD 0 when out of open files.
+2015-07-29 14:17 +0000 [1ae762634c]  Benjamin Ford <bford@digium.com>
 
-         This fixes so a failure to get a timer file descriptor does not cascade
-         to closing FD 0.
+       * ARI: Rotate log channels.
 
-         On error, both res_timing_kqueue and res_timing_timerfd would call the
-         destructor before setting the file handle. The file handle had been
-         initialized to 0, causing FD 0 to be closed. This in turn, resulted in
-         floods of "CLI>" messages and an unusable terminal.
+         An http request can be sent to rotate a specified log channel.
+         If the channel does not exist, an error response will be
+         returned.
 
-         ASTERISK-19277 #close
-         Reported by: Barry Chern
+         The command "curl -v -u user:pass -X PUT 'http://localhost:8088
+         /ari/asterisk/logging/logChannelName/rotate'" can be run in the
+         terminal to access this new functionality.
 
-         For the 13 branch, this was already fixed. This patch only ensures that
-         we do not attempt to close a negative file descriptor.
+         * Added the ability to rotate log files through ARI
 
-         Change-Id: I147d7e33726c6e5a2751928d56561494f5800350
+         ASTERISK-25252
 
-2015-07-01 17:25 +0000 [78a1f4aa46]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Iaefa21cbbc1b29effb33004ee3d89c977e76ab01
 
-       * chan_vpb.cc: Fix compiler warning Jenkins found.
+2015-07-29 13:49 +0000 [aeeb170fc4]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I0ec7fd10d56d90d5a60b12b5a7d6807f265ac5e0
+       * rtp_engine.c: Fix performance issue with several channel drivers that use RTP.
 
-2015-07-01 13:34 +0000 [6b16fbfc22]  Scott Griepentrog <scott@griepentrog.com>
+         ast_rtp_codecs_get_payload() gets called once or twice for every received
+         RTP frame so it would be nice to not allocate an ao2 object to then have
+         it destroyed shortly thereafter.  The ao2 object gets allocated only if
+         the payload type is not set by the channel driver as a negotiated value.
+         The issue affects chan_skinny, chan_unistim, chan_rtp, and chan_ooh323.
 
-       * Channel alert pipe: improve diagnostic error return
+         * Made static_RTP_PT[] an array of ao2 objects that
+         ast_rtp_codecs_get_payload() can return instead of an array of structs
+         that must be copied into a created ao2 object.
 
-         When a frame is queued on a channel, any failure in
-         ast_channel_alert_write is logged along with errno.
+         ASTERISK-25296 #close
+         Reported by: Richard Mudgett
 
-         This change improves the diagnostic message through
-         aligning the errno value with actual failure cases.
+         Change-Id: Icb6de5cd90bfae07d44403a1352963db9109dac0
 
-         ASTERISK-25224
-         Reported by: Andrey Biglari
+2015-07-29 17:00 +0000 [84262749d2]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I1bf7b3337ad392789a9f02c650589cd065d20b5b
+       * res_rtp_asterisk.c: Fix off-nominal crash potential.
 
-2015-07-01 16:04 +0000 [8e07ab145d]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25296
+         Reported by: Richard Mudgett
 
-       * sorcery/realtime: Add a bit of debug and warning messages for bad configs
+         Change-Id: I08549fb7c3ab40a559f41a3940f3732a4059b55b
 
-         When a mapping does not exist between a sorcery.conf defined object and
-         a realtime mapping in extconf, currently, the user will receive a slew
-         of ERROR messages that don't really tell what is happening. Some ERROR
-         messages may even be misleading, as they occur after the sorcery API has
-         already given up on the attempt to load and create the sorcery object.
+2015-07-29 13:48 +0000 [1519eb44a7]  Richard Mudgett <rmudgett@digium.com>
 
-         This patch adds a bit of debug and a useful WARNING message for when a
-         wizard's open callback fails for a particular object type. In the bad
-         configurations that resulted in this patch, this provided a 'root cause'
-         WARNING message that pointed in the right direction of the configuration
-         problem.
+       * rtp_engine.c: Must protect mime_types_len with mime_types_lock.
 
-         Change-Id: I1cc7344f2b015b8b9c85a7e6ebc8cb4753a8f80b
-2015-06-29 12:45 +0000 [156395e743]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: I44220dd369cc151ebf5281d5119d84bb9e54d54e
 
-       * res_sorcery_realtime: Fix leak of sorcery object type.
+2015-07-24 18:42 +0000 [a93b7a927c]  Richard Mudgett <rmudgett@digium.com>
 
-         This prevents a leak of a sorcery object type when realtime sorcery
-         objects are retrieved by fields or when multiple objects are retrieved.
+       * res_pjsip_sdp_rtp.c: Fix processing wrong SDP media list.
 
-         The extent of this leak is that sorcery object types would be leaked.
-         These are allocated whenever an object type is registered with sorcery,
-         meaning that on module shutdown, these objects would be leaked. This
-         could be problematic if many reloads were performed, but it is not as
-         severe as if every sorcery object retrieved from realtime were being
-         leaked.
+         Change-Id: I7c076826c2d3c6ae8c923ca73b7a71980cca11f2
 
-         ASTERISK-25165 #close
-         Reported by Corey Farrell
+2015-07-24 18:38 +0000 [741fa0d26d]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I625c3b50eee4576670b7eeb013c81ad043b4b4f8
+       * res_pjsip_sdp_rtp.c: Fixup some whitespace.
 
-2015-06-26 22:02 +0000 [a5e9c4e9b2]  Matt Jordan <mjordan@digium.com>
+         Change-Id: Ib4eb7ef7dcaf93ddc26538f0a498aaf110d7a973
 
-       * res/res_corosync: Always decline module load, instead of failing
+2015-07-27 19:10 +0000 [89b21fd9a3]  Richard Mudgett <rmudgett@digium.com>
 
-         Returns a 'failure' from the module load routine indicates to Asterisk
-         that it should abort loading completely. This is rarely - in fact,
-         really, never - a good option. Aborting load of Asterisk from a dynamic
-         module implies that the core, and the rest of the dynamic modules, don't
-         matter: we should abandon all processing.
+       * rtp_engine.h: No sense allowing payload types larger than RFC allows.
 
-         res_corosync is really not that important.
+         * Tweaked add_static_payload() to not use magic numbers.
 
-         This patch updates the module such that, if it fails to load, it
-         politely declines (emitting ERROR messages along the way), and allows
-         Asterisk to continue to function.
+         Change-Id: I1719ff0f6d3ce537a91572501eae5bcd912a420b
 
-         Note that this issue was keeping Asterisk unit tests from running on
-         certain build agents.
+2015-07-23 14:04 +0000 [7427c7f13b]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I252249e81fb9b1a68e0da873f54f47e21d648f0f
+       * rtp_engine.c: Minor tweaks.
 
-2015-06-26 20:38 +0000 [399cd8bcd9]  Matt Jordan <mjordan@digium.com>
+         * Fix off nominial ref leak of new_type in
+         ast_rtp_codecs_payloads_set_m_type().
 
-       * main/pbx: Resolve case sensitivity regression in PBX hints
+         * No need to lock static_RTP_PT_lock in
+         ast_rtp_codecs_payloads_set_m_type() and
+         ast_rtp_codecs_payloads_set_rtpmap_type_rate() before the payload type
+         parameter sanity check.
 
-         When 8297136f was merged for ASTERISK-25040, a regression was introduced
-         surrounding the case sensitivity of device names within hints.
-         Previously, device names - such as 'sip/foo' - were compared in a case
-         insensitive fashion. Thus, 'sip/foo' was equivalent to 'SIP/foo'. After
-         that patch, only the case sensitive name would match, i.e., 'SIP/foo'.
-         As a result, some dialplan hints stopped working.
+         * No need to create ast_rtp_payload_type ao2 objects with a lock since the
+         lock is not used.
 
-         This patch re-introduces case insensitive matching for device names in
-         hints.
+         Change-Id: I64dd1bb4dfabdc7e981e3f61448beac9bb7504d4
 
-         ASTERISK-25040
+2015-07-23 12:41 +0000 [e20f435b60]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25202 #close
+       * rtp_engine.h: Misc comment fixes.
 
-         Change-Id: If5046a7d14097e1e3c12b63092b9584bb1e9cb4c
-         (cherry picked from commit 96bbcf495a1da9e607d9b04a44b5c4f49e83cc03)
+         Change-Id: If98139264d5d97427b4685ecbdc54518f725bc43
 
-2015-06-26 16:12 +0000 [24eec5a10b]  Mark Michelson <mmichelson@digium.com>
+2015-07-17 16:23 +0000 [bc5d7f9c37]  Richard Mudgett <rmudgett@digium.com>
 
-       * res_pjsip_nat: Adjust when contact should be rewritten.
+       * chan_sip.c: Tweak glue->update_peer() parameter nil value.
 
-         A previous change made the contact only get rewritten if the dialog's
-         route set was not marked frozen. Unfortunately, while the intent of this
-         is correct, the dialog's route set actually gets marked as frozen
-         earlier than expected, especially for UAS dialogs.
+         Change glue->update_peer() parameter from 0 to NULL to better indicate it
+         is a pointer.
 
-         Instead, the idea is that the contact needs to not be rewritten if there
-         is a pre-existing route set on the dialog. This is now accomplished by
-         checking the dialog's route set list instead of checking if the route
-         set is frozen.
+         Change-Id: I8ff2e5087f0e19f6998e3488a712a2470cc823bd
 
-         Doing this causes some broken tests to begin passing again.
+2015-07-30 17:05 +0000 [13eb491e35]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25196
-         Reported by Mark Michelson
+       * res_pjsip_session.c: Fix crashes seen when call cancelled.
 
-         Change-Id: I525ab251fd40a52ede327a52a2810a56deb0529e
+         Two testsuite tests crashed in the same place as a result of an INVITE
+         being CANCELed.
 
-2015-06-19 18:27 +0000 [0ec461a637]  Richard Mudgett <rmudgett@digium.com>
+         tests/channels/pjsip/resolver/srv/failover/in_dialog/transport_unspecified
+         tests/channels/pjsip/resolver/srv/failover/in_dialog/transport_tcp
 
-       * res_pjsip_outbound_registration.c: Add a serializer shutdown group.
+         The session pointer is no longer in the inv->mod_data[session_module.id]
+         location because the INVITE transaction has reached the terminated state.
 
-         The client_state objects contain a serializer used to send the outbound
-         REGISTER messages.  Once all those message transactions are complete then
-         the module can shutdown.
+         ASTERISK-25297 #close
+         Reported by: Richard Mudgett
 
-         ASTERISK-24907 #close
-         Reported by: Kevin Harwell
+         Change-Id: Idb75fdca0321f5447d5dac737a632a5f03614427
 
-         Change-Id: Ibb2fe558f98190f2a06da830e0fadfa25516f547
+2015-07-29 14:35 +0000 [48698a5e21]  Mark Michelson <mmichelson@digium.com>
 
-2015-06-26 10:41 +0000 [05a2cc1293]  Mark Michelson <mmichelson@digium.com>
+       * res_http_websocket: Properly encode 64 bit payload
 
-       * res_pjsip_refer: Prevent sending duplicate headers.
+         A test agent was continuously failing all ARI tests when run against
+         Asterisk 13. As it turns out, the reason for this is that on those test
+         runs, for some reason we decided to use the super extended 64 bit
+         payload length for websocket text frames instead of the extended 16 bit
+         payload length. For 64-bit payloads, the expected byte order over the
+         network is
 
-         res_pjsip_refer will attempt to add Referred-By or Replaces headers to
-         outbound INVITEs at times. If the INVITE gets challenged for
-         authentication, then we will resend the INVITE. Prior to this patch, the
-         Referred-By or Replaces header would be re-added to the outbound INVITE,
-         resulting in duplicated headers.
+         7, 6, 5, 4, 3, 2, 1, 0
 
-         ASTERISK-25204 #close
-         Reported by Mark Michelson
+         However, we were sending the payload as
 
-         Change-Id: I59fb5c08b4d253c0dba9ee3d3950b5025358222d
+         3, 2, 1, 0, 7, 6, 5, 4
 
-2015-06-23 17:43 +0000 [028fa54620]  Mark Michelson <mmichelson@digium.com>
+         This meant that we were saying to expect an absolutely MASSIVE payload
+         to arrive. Since we did not follow through on this expected payload
+         size, the client would sit patiently waiting for the rest of the payload
+         to arrive until the test would time out.
 
-       * res_pjsip_nat: Rewrite route set when required.
+         With this change, we use the htobe64() function instead of htonl() so
+         that a 64-bit byte-swap is performed instead of a 32 bit byte-swap.
 
-         When performing some provider testing, the rewrite_contact option was
-         interfering with proper construction of a route set when sending an ACK
-         after receiving a 200 OK response to an INVITE.
+         Change-Id: Ibcd8552392845fbcdd017a8c8c1043b7fe35964a
 
-         The initial INVITE was sent to address sip:foo. The 200 OK had a Contact
-         header with URI sip:bar. In addition, the 200 OK had Record-Route
-         headers for sip:baz and sip:foo, in that order. Since the Record-Route
-         headers had the lr parameter, the result should have been:
+2015-07-29 12:23 +0000 [10ba72a927]  Mark Michelson <mmichelson@digium.com>
 
-         * Set R-URI of the ACK to sip:bar.
-         * Add Route headers for sip:foo and sip:baz, in that order.
+       * Add a test event for inband ringing.
 
-         However, the rewrite_contact option resulted in our rewriting the
-         Contact header on the 200 OK to sip:foo. The result was:
+         This event is necessary for the bridge_wait_e_options test to be able to
+         confirm that ringing is being played on the local channel that runs the
+         BridgeWait() application with the e(r) option.
 
-         * R-URI remained sip:foo.
-         * We added Route headers for sip:foo and sip:baz, in that order.
+         ASTERISK-25292 #close
+         Reported by Kevin Harwell
 
-         The result was that sip:bar was not indicated in the ACK at all, so the
-         far end never received our ACK. The call eventually dropped.
+         Change-Id: Ifd3d3d2bebc73344d4b5310d0d55c7675359d72e
 
-         The intention of rewrite_contact is to rewrite the most immediate
-         destination of our SIP request to be the same address on which we
-         received a request or response. In the case of processing a SIP response
-         with Record-Route headers, this means that instead of rewriting the
-         Contact header, we should instead rewrite the bottom-most Record-Route
-         header. In the case of processing a SIP request with Record-Route
-         headers, this means we rewrite the top-most Record-route header.
-         Like when we rewrite the Contact header, we also ensure to update
-         the dialog's route set if it exists.
+2015-07-16 12:16 +0000 [8458b8d441]  Jonathan Rose <jrose@digium.com>
 
-         ASTERISK-25196 #close
-         Reported by Mark Michelson
+       * holding_bridge: ensure moh participants get frames
 
-         Change-Id: I9702157c3603a2d0bd8a8215ac27564d366b666f
-2015-06-19 16:16 +0000 [84c12f9e0c]  Richard Mudgett <rmudgett@digium.com>
-
-       * threadpool, res_pjsip: Add serializer group shutdown API calls.
+         Currently, if a blank musiconhold.conf is used, musiconhold will fail
+         to start for a channel going into a holding bridge with an anticipation
+         of getting music on hold. That being the case, no frames will be written
+         to the channel and that can pose a problem for blind transfers in PJSIP
+         which may rely on frames being written to get past the REFER framehook.
+         This patch makes holding bridges start a silence generator if starting
+         music on hold fails and makes it so that if no music on hold functions
+         are installed that the ast_moh_start function will report a failure so
+         that consumers of that function will be able to respond appropriately.
 
-         A module trying to unload needs to wait for all serializers it creates and
-         uses to complete processing before unloading.
+         ASTERISK-25271 #close
 
-         ASTERISK-24907
-         Reported by: Kevin Harwell
+         Change-Id: I06f066728604943cba0bb0b39fa7cf658a21cd99
 
-         Change-Id: I8c80b90f2f82754e8dbb02ddf3c9121e5e966059
+2015-07-24 12:56 +0000 [f78a4b52b8]  Matt Jordan <mjordan@digium.com>
 
-2015-06-16 15:06 +0000 [602c4b74b5]  Richard Mudgett <rmudgett@digium.com>
+       * Bump the ARI version to 1.8.0
 
-       * res_pjsip_outbound_registration.c: Fix handle_client_state_destruction() refs
+         Due to backwards compatible changes, the ARI version should be bumped to
+         1.8.0 prior to the release of 13.5.0. Note that a previous patch already
+         bumped the version of AMI for this release.
 
-         * handle_client_state_destruction() must always be passed a ref to
-         client_state because it will always unref client_state.
-         handle_registration_response() was not passing a client_state ref.
+         Change-Id: I419033bfbbc0d3533a29ccb32b2981f39e0883e7
 
-         * Made the final un-REGISTER message get sent normally using the pjproject
-         register control structure in handle_client_state_destruction().  The
-         previous code attempted to short circuit the response handling for the
-         module to unload.  That doesn't work for a couple reasons.  One,
-         pjsip_regc_send() may call the registered callback before it returns and
-         unbalance the client_state ref count.  Two, the registered callback
-         handles any authentication for the un-REGISTER message.
+2015-07-18 11:16 +0000 [2749721791]  Joshua Colp <jcolp@digium.com>
 
-         * Made the distinction between internal registration state and external
-         registration status with sip_outbound_registration_status_str().  This is
-         necessary to avoid altering documented AMI messages with internal
-         changes.
+       * pjsip: Add rtp_timeout and rtp_timeout_hold endpoint options.
 
-         * Removed references to client_state->client outside of the serializer
-         thread.  When handle_client_state_destruction() destroys the pjproject
-         register control structure that memory is freed and cannot be referenced
-         anymore.  These accesses were to provide information for debug and
-         off-nominal warning messages.
+         This change adds support for the 'rtp_timeout' and 'rtp_timeout_hold'
+         endpoint options. These allow the channel to be hung up if RTP
+         is not received from the remote endpoint for a specified number of
+         seconds.
 
-         * In sip_outbound_registration_timer_cb() you should not access entry->id
-         after unrefing client_state because the passed in entry is normally
-         pointing to the timer entry in the client_state object.
+         ASTERISK-25259 #close
 
-         ASTERISK-24907
-         Reported by: Kevin Harwell
+         Change-Id: I3f39daaa7da2596b5022737b77799d16204175b9
 
-         Change-Id: Ia7b446d8644b6b4550ef5bea49527671de65183f
+2015-07-24 09:46 +0000 [b4e19e414a]  Mark Michelson <mmichelson@digium.com>
 
-2015-06-15 15:28 +0000 [8c6a95a9ac]  Richard Mudgett <rmudgett@digium.com>
+       * res_pjsip: Add rtp_keepalive to sample config file.
 
-       * res_pjsip_outbound_registration.c: Use ast_sorcery_object_unregister() API
+         Change-Id: I5f62d0c5684f8b2335f9f8ac2d79ee04fbdafb19
 
-         The sorcery pjsip 'registration' config object needs to be destroyed on
-         module unload.  Otherwise, a reload of res_pjsip could try to use
-         callbacks for a previously unloaded instance of the module provided by
-         ast_sorcery_object_register() or one of the variants.  Also, if
-         res_pjsip_outbound_registration were subsequently reloaded, the sorcery
-         config field objects would be registered in sorcery twice.
+2015-07-23 13:11 +0000 [f635520527]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-24907
-         Reported by: Kevin Harwell
+       * Local channels: Alternate solution to ringback problem.
 
-         Change-Id: I304fad13dece2604af48353f6c6d9d5c7b064697
+         Commit 54b25c80c8387aea9eb20f9f4f077486cbdf3e5d solved an issue where a
+         specific scenario involving local channels and a native local RTP bridge
+         could result in ringback still being heard on a calling channel even
+         after the call is bridged.
 
-2015-06-25 06:42 +0000 [e4a2ef9e4e]  Joshua Colp <jcolp@digium.com>
+         That commit caused many tests in the testsuite to fail with alarming
+         consequences, such as not sending DialBegin and DialEnd events, and
+         giving incorrect hangup causes during calls.
 
-       * channel: Remove ignore of answer on non-outgoing channels.
+         This commit reverts the previous commit and implements and alternate
+         solution. This new solution involves only passing AST_CONTROL_RINGING
+         frames across local channels if the local channel is in AST_STATE_RING.
+         Otherwise, the frame does not traverse the local channels. By doing
+         this, we can ensure that a playtones generator does not get started on
+         the calling channel but rather is started on the local channel on which
+         the ringing frame was initially indicated.
 
-         Due to the way that channels can now be moved around inside of
-         Asterisk it is possible for the outgoing flag of a channel to get
-         cleared before it has been answered. This results in the bridge
-         not receiving notification that the outgoing leg has been answered.
+         ASTERISK-25250 #close
+         Reported by Etienne Lessard
 
-         This most easily exhibits itself with DTMF based blond transfers.
-         Since the answer of the outgoing leg is ignored the other party
-         continues to receive both a locally generated ringing and the
-         media stream of the outgoing leg upon its answer. This results
-         in no media being heard.
+         Change-Id: I3bc87a18a38eb2b68064f732d098edceb5c19f39
 
-         This change removes the ignore of the answer and allows it
-         to pass through.
+2015-07-22 12:24 +0000 [f509730cb9]  Joshua Colp <jcolp@digium.com>
 
-         ASTERISK-25171 #close
+       * audiohook: Use manipulated frame instead of dropping it.
 
-         Change-Id: I82aedcec4f89f34a2e5472086dfc9a6c775bca8e
+         Previous changes to sample rate support in audiohooks accidentally
+         removed code responsible for allowing the manipulate audiohooks
+         to work. Without this code the manipulated frame would be dropped
+         and not used. This change restores it.
 
-2015-06-15 15:28 +0000 [20f3d77ab9]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25253 #close
 
-       * sorcery: Add ast_sorcery_object_unregister() API call.
+         Change-Id: I3ff50664cd82faac8941f976fcdcb3918a50fe13
 
-         Find and unlink the specified sorcery object type to complement
-         ast_sorcery_object_register().  Without this function you cannot
-         completely unload individual modules that use sorcery for configuration.
+2015-07-22 09:46 +0000 [54b25c80c8]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-24907
-         Reported by: Kevin Harwell
+       * Local channels: Do not block control -1 payloads.
 
-         Change-Id: I1c04634fe9a90921bf676725c7d6bb2aeaab1c88
+         Control frames with a -1 payload are used as a special signal to stop
+         playtones generators on channels. This indication is sent both by
+         app_dial as well as by ast_answer() when a call is answered in case any
+         tones were being generated on a calling channel.
 
-2015-06-15 13:38 +0000 [4313f32969]  Richard Mudgett <rmudgett@digium.com>
+         This control frame type was made to stop traversing local channel pairs
+         as an optimization, because it was thought that it was unnecessary to
+         send these indications, and allowing such unnecessary control frames to
+         traverse the local channels would cause the local channels to optimize
+         away less quickly.
 
-       * res_pjsip_outbound_registration.c: Reorder load_module() and unload_module().
+         As it turns out, through some special magic dialplan code, it is
+         possible to have a tones being played on a non-local channel, and it is
+         important for the local channel to convey that the tones should be
+         stopped. The result of having tones continue to be played on the
+         non-local channel is that the tones play even once the channel has been
+         bridged. By not blocking the -1 control frame type, we can ensure that
+         this situation does not happen.
 
-         It is best if the loading code creates and initializes the module's
-         infrastructure before letting the system know of its existence.  The
-         unloading code needs to reverse the actions of the loading code and in the
-         reverse order.
+         ASTERISK-25250 #close
+         Reported by Etienne Lessard
 
-         ASTERISK-24907
-         Reported by: Kevin Harwell
+         Change-Id: I0bcaac3d70b619afdbd0ca8a8dd708f33fd2f815
 
-         Change-Id: I5d151383e9787b5b60aa5e1627b10f040acdded4
+2015-07-22 05:16 +0000 [f1493f900e]  Joshua Colp <jcolp@digium.com>
 
-2015-06-23 14:34 +0000 [890c923786]  Richard Mudgett <rmudgett@digium.com>
+       * audiohook: Read the correct number of samples based on audiohook format.
 
-       * AMI: Add Linkedid to the standard channel snapshot AMI event headers.
+         Due to changes in audiohooks to support different sample rates the
+         underlying storage of samples is in the format of the audiohook
+         itself and not of the format being requested. This means that if a
+         channel is using G722 the samples stored will be at 16kHz. If
+         something subsequently reads from the audiohook at a format which
+         is not the same sample rate as the audiohook the number of samples
+         needs to be adjusted.
 
-         * The AMI version is bumped to 2.8.0.
+         Given the following example:
+         1. Channel writing into audiohook at 16kHz (as it is using G722).
+         2. Chanspy reading from audiohook at 8kHz.
 
-         ASTERISK-25189 #close
-         Reported by: John Hardin
+         The original code would read 160 samples from the audiohook for
+         each 20ms of audio. This is incorrect. Since the audio in the
+         audiohook is at 16kHz the actual number needing to be read is 320.
+         Failure to read this much would cause the audiohook to reset
+         itself constantly as the buffer became full.
 
-         Change-Id: I2b1778c3fdc1dca0ed55db4e3a639eddfb16c2ac
+         This change adjusts the requested number of samples by determining
+         the duration of audio requested and then calculating how many
+         samples that would be in the audiohook format.
 
-2015-06-24 14:30 +0000 [2602a7484b]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25247 #close
 
-       * test.c: Add unit test registration checks for summary and description.
+         Change-Id: Ia91ce516121882387a315fd8ee116b118b90653d
 
-         Added checks when a unit test is registered to see that the summary and
-         description strings do not end with a new-line '\n' for consistency.
+2015-07-20 12:39 +0000 [62c64c3bd1]  Rusty Newton <rnewton@digium.com>
 
-         The check generates a warning message and will cause the
-         /main/test/registrations unit test to fail.
+       * Documentation: A couple of trivial fixes in sip.conf.sample and func_cdr.c
 
-         * Updated struct ast_test_info member doxygen comments.
+          * In sip.conf.sample fix sentence where we said that WS or WSS are supported
+            transports for use in an outbound register definition. They are not
+            supported in that case.
+          * In func_cdr.c made it clear that the Disable option for CDR_PROP can be used
+            to enable CDR on a channel.
 
-         Change-Id: I295909b6bc013ed9b6882e85c05287082497534d
+         ASTERISK-24867 #close
+         Reported by: Rusty Newton
 
-2015-06-24 14:39 +0000 [2b0482d699]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-24853 #close
+         Reported by: PSDK
 
-       * Unit tests: Fix unit test description strings.
+         Change-Id: I3d698bc6302b9d00a0a995b5c4ad9a42d69b48ca
 
-         Analyzing the code shows that the unit test summary and description
-         strings should not end with a new-line character.  Where these strings are
-         used in the code a new-line is provided for output.
+2015-07-09 14:17 +0000 [d9094ddd73]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I129284f5e7ca93d82532334076da4c462d3d9fba
+       * res_pjsip: Add rtp_keepalive endpoint option.
 
-2015-06-23 11:21 +0000 [e99e654d75]  Joshua Colp <jcolp@digium.com>
+         This adds an "rtp_keepalive" option for PJSIP endpoints. Similar to the
+         chan_sip option, this specifies an interval, in seconds, at which we
+         will send RTP comfort noise frames. This can be useful for keeping RTP
+         sessions alive as well as keeping NAT associations alive during lulls.
 
-       * app_dial: Hold reference to calling channel formats when dialing outbound.
+         ASTERISK-25242 #close
+         Reported by Mark Michelson
 
-         Currently when requesting a channel the native formats of the
-         calling channel are provided to the core for usage when dialing
-         the outbound channel. This occurs without holding the channel lock
-         or keeping a reference to the formats. This is problematic as
-         the channel driver may end up changing the formats during this time.
-         In the case of chan_sip this happens when an SDP negotiation
-         completes.
+         Change-Id: I06660ba672c0a343814af4cec838e6025cafd54b
 
-         This change makes it so app_dial keeps a reference to the native
-         formats of the calling channel which guarantees that they will
-         remain valid for the period of time needed.
+2015-07-16 09:13 +0000 [a23adcca3d]  Michael Cargile <mikec@vicidial.com>
 
-         ASTERISK-25172 #close
+       * res/res_musiconhold: Add a warning when MOH does not exist
 
-         Change-Id: I2f0a67bd0d5d14c3bdbaae552b4b1613a283f0db
-2015-06-17 05:04 +0000 [80e82dc97f]  Joshua Colp <jcolp@digium.com>
+         Change-Id: Ifdfbd0b97cf31478d29923ec30aabce28d01740b
 
-       * res_pjsip_mwi: Set up unsolicited MWI upon registration.
+2015-07-19 09:11 +0000 [03064daeb2]  Matt Jordan <mjordan@digium.com>
 
-         The res_pjsip_mwi previously required a reload to set up the proper
-         subscriptions to allow unsolicited MWI to work. This change
-         makes it so the act of registering will also cause this to occur.
-         This is particularly useful if realtime is involved as no reload
-         needs to occur within Asterisk to cause the MWI information
-         to get sent.
+       * res/res_sorcery_config: Prevent crash from misconfigured sorcery.conf
 
-         ASTERISK-25180 #close
+         Misconfiguring sorcery.conf with a 'config' wizard with no extra data
+         will currently crash Asterisk on startup, as the wizard requires a comma
+         delineated list to parse. This patch updates res_sorcery_config to check
+         for the presence of the data before it starts manipulating it.
 
-         Change-Id: Id847b47de4b8b3ab8858455ccc2f07b0f915f252
+         Change-Id: I4c97512e8258bc82abe190627a9206c28f5d3847
 
-2015-06-22 15:11 +0000 [35a99b6394]  Kevin Harwell <kharwell@digium.com>
+2015-07-16 09:46 +0000 [2c626ceb64]  Joshua Colp <jcolp@digium.com>
 
-       * bridge.c: Hangup attended transfer target if bridged
+       * chan_pjsip: Don't change formats when frame of unsupported format is received.
 
-         After completing an attended transfer the transfer target channel was not being
-         hung up after leaving the bridge. Added an explicit softhangup to hangup said
-         channel, but only if it was previously bridged.
+         Receipt of an RTP packet currently causes the formats on an PJSIP channel to
+         change to the format of the RTP packet. In some off-nominal cases it's possible
+         for this to be a format that has not been configured or negotiated. This change
+         makes it so only formats explicitly configured on the endpoint are allowed.
 
-         ASTERISK-24782 #close
-         Reported by: John Bigelow
+         ASTERISK-25258 #close
 
-         Change-Id: Idde9543d56842369384a5e8c00d72a22bbc39ada
+         Change-Id: If93d641fb6418a285928839300d7854cab8c1020
 
-2015-06-17 16:23 +0000 [036bc0012f]  Richard Mudgett <rmudgett@digium.com>
+2015-07-17 04:59 +0000 [abb14ac5b8]  Patric Marschall <patric.marschall@1und1.de>
 
-       * res_pjsip_outbound_registration.c: Add missing line endings to CLI commands
+       * sig_pri.h: force_restart_unavailable_chans in wrong scope
 
-         Change-Id: I39ae612746d892d2dbe86f3ff2d7027fa1da57f7
+         In channels/sig_pri.h, struct sig_pri_span, the field
+         force_restart_unavailable_chans is only defined if
 
-2015-06-12 14:29 +0000 [bec7435945]  Richard Mudgett <rmudgett@digium.com>
+         #if defined(HAVE_PRI_MCID) is true.
 
-       * res_pjsip_outbound_registration.c: Eliminate simple RAII_VAR() usage.
+         All other occurences of force_restart_unavailable_chans are outside of the
 
-         Change-Id: I399cb9d61bbba706b48c98e0bf75e98984cd9a9e
+         #if defined(HAVE_PRI_MCID)
+         endif
 
-2015-06-12 13:33 +0000 [c2519fdf1c]  Richard Mudgett <rmudgett@digium.com>
+         scope.
 
-       * res_pjsip_outbound_registration.c: Misc code cleanups.
+         ASTERISK-25257 #close
+         Reported by: Patric Marschall
 
-         * Break some long lines.
+         Change-Id: I071de89cc2cd0d85927a013036e235851f672549
+2015-07-14 16:55 +0000 [875aee4c09]  Richard Mudgett <rmudgett@digium.com>
 
-         * Fix doxygen comment.
+       * pbx.c: Post AMI VarSet event if delete a non-empty dialplan variable.
 
-         Change-Id: I8f12ba6822f84d5e7bb575280270cd7e2fefb305
+         ASTERISK-25256 #close
+         Reported by: Richard Mudgett
 
-2015-06-22 09:26 +0000 [a419c69def]  Alexander Traud (License 6520)
+         Change-Id: I0b6be720b66fa956f6a798cd22ef8934eb0c0ff3
 
-       * chan_sip: Reload peer without its old capabilities.
+2015-07-08 16:39 +0000 [8bcf6d2801]  Matt Jordan <mjordan@digium.com>
 
-         On reload, previously allowed codecs were not removed. Therefore, it was not
-         possible to remove codecs while Asterisk was running. Furthermore, newly added
-         codecs got appended behind the previous codecs. Therefore, it was not possible
-         to add a codec with a priority of #1. This change removes the old capabilities
-         before the current ones are added.
+       * ARI: Add support for push configuration of dynamic object
 
-         ASTERISK-25182 #close
-         Reported by: Alexander Traud
-         patches:
-          asterisk_13_allow_codec_reload.patch uploaded by Alexander Traud (License 6520)
+         This patch adds support for push configuration of dynamic, i.e.,
+         sorcery, objects in Asterisk. It adds three new REST API calls to the
+         'asterisk' resource:
+          * GET /asterisk/{configClass}/{objectType}/{id}: retrieve the current
+            object given its ID. This returns back a list of ConfigTuples, which
+            define the fields and their present values that make up the object.
+          * PUT /asterisk/{configClass}/{objectType}/{id}: create or update an
+            object. A body may be passed with the request that contains fields to
+            populate in the object. The same format as what is retrieved using
+            the GET operation is used for the body, save that we specify that the
+            list of fields to update are contained in the "fields" attribute.
+          * DELETE /asterisk/{configClass}/{objectType}/{id}: remove a dynamic
+            object from its backing storage.
 
-         Change-Id: I62a06bcf15e08e8c54a35612195f97179ebe5802
+         Note that the success/failure of these operations is somewhat
+         configuration dependent, i.e., you must be using a sorcery wizard that
+         supports the operation in question. If a sorcery wizard does not support
+         the create or delete mechanisms, then the REST API call will fail with a
+         403 forbidden.
 
-2015-06-20 19:38 +0000 [74616ae43d]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-25238 #close
 
-       * chan_sip: Destroy peers without holding peers container lock.
+         Change-Id: I28cd5c7bf6f67f8e9e437ff097f8fd171d30ff5c
 
-         Due to the use of stasis_unsubscribe_and_join in the peer destructor
-         it is possible for a deadlock to occur when an event callback is
-         occurring at the same time.
+2015-07-15 15:40 +0000 [e31cb6b248]  Richard Mudgett <rmudgett@digium.com>
 
-         This happens because the peer may be destroyed while holding the
-         peers container lock. If this occurs the event callback will never
-         be able to acquire the container lock and the unsubscribe will
-         never complete.
+       * strings.h: Fix issues with escape string functions.
 
-         This change makes it so the peers that have been removed from the
-         peers container are not destroyed with the container lock held.
+         Fixes for issues with the ASTERISK-24934 patch.
 
-         ASTERISK-25163 #close
+         * Fixed ast_escape_alloc() and ast_escape_c_alloc() if the s parameter is
+         an empty string.  If it were an empty string the functions returned NULL
+         as if there were a memory allocation failure.  This failure caused the AMI
+         VarSet event to not get posted if the new value was an empty string.
 
-         Change-Id: Ic6bf1d9da4310142a4d196c45ddefb99317d9a33
+         * Fixed dest buffer overwrite potential in ast_escape() and
+         ast_escape_c().  If the dest buffer size is smaller than the space needed
+         by the escaped s parameter string then the dest buffer would be written
+         beyond the end by the nul string terminator.  The num parameter was really
+         the dest buffer size parameter so I renamed it to size.
 
-2015-06-18 13:16 +0000 [9015bb4c8c]  Mark Michelson <mmichelson@digium.com>
+         * Made nul terminate the dest buffer if the source string parameter s was
+         an empty string in ast_escape() and ast_escape_c().
 
-       * Resolve race conditions involving Stasis bridges.
+         * Updated ast_escape() and ast_escape_c() doxygen function description
+         comments to reflect reality.
 
-         This resolves two observed race conditions.
+         * Added some more unit test cases to /main/strings/escape to cover the
+         empty source string issues.
 
-         First, a bit of background on what the Stasis application does:
+         ASTERISK-25255 #close
+         Reported by: Richard Mudgett
 
-         1a Creates a stasis_app_control structure. This structure is linked into
-            a global container and can be looked up using a channel's unique ID.
-         2a Puts the channel in an event loop. The event loop can exit either
-            because the stasis_app_control structure has been marked done, or
-            because of some other factor, such as a hangup. In the event loop, the
-            stasis_app_control determines if any specific ARI commands need to be
-            run on the channel and will run them from this thread.
-         3a Checks if the channel is bridged. If the channel is bridged, then
-            ast_bridge_depart() is called since channels that are added to Stasis
-            bridges are always imparted as departable.
-         4a Unlink the stasis_app_control from the container.
+         Change-Id: Id77fc704600ebcce81615c1200296f74de254104
 
-         When an ARI command is received by Asterisk, the following occurs
-         1b A thread is spawned to handle the HTTP request
-         2b The stasis_app_control(s) that corresponds to the channel(s) in the
-            request is/are retrieved. If the stasis_app_control cannot be
-            retrieved, then it is assumed that the channel in question has exited
-            the Stasis app or perhaps was never in Stasis in the first place.
-         3b A command is queued onto the stasis_app_control, and the channel's
-            event loop thread is signaled to run the command.
-         4b While most ARI commands do nothing further, some, such as adding or
-            removing channels from a bridge, will block until the command they
-            issued has been completed by the channel's event loop.
+2015-07-14 14:29 +0000 [243c0d1609]  Richard Mudgett <rmudgett@digium.com>
 
-         The first race condition that is solved by this patch involves a crash
-         that can occur due to faulty detection of the channel's bridged status
-         in step 3a. What can happen is that in step 2a, the event loop may run
-         the ast_bridge_impart() function to asynchronously place the channel
-         into a bridge, then immediately exit the event loop because the channel
-         has hung up. In step 3a, we would detect that the channel was not
-         bridged and would not call ast_bridge_depart(). The reason that the
-         channel did not appear to be bridged was that the depart_thread that is
-         spawned by ast_bridge_impart() had not yet started. That is the thread
-         where the channel is marked as being bridged. Since we did not call
-         ast_bridge_depart(), the Stasis application would exit, and then the
-         channel would be destroyed Then the depart_thread would start up and
-         try to manipulate the destroyed channel, causing a crash.
+       * parking_applications.c: Fix ast_verb() line terminator.
 
-         The fix for this is to switch from using ast_channel_is_bridged() to
-         checking the NULLity of ast_channel_internal_bridge_channel() to
-         determine if ast_bridge_depart() needs to be called. The channel's
-         internal bridge_channel is set when ast_bridge_impart() is called and
-         is NULLed by the call to ast_bridge_depart(). If the channel's internal
-         bridge_channel is non-NULL, then the channel must have been imparted
-         into the bridge and needs to be departed, even if the actual bridging
-         operation has not yet started. By departing the channel when necessary,
-         the thread that is running the Stasis application will block until the
-         bridge gives the okay that the depart_thread has exited.
+         Change-Id: I8797238c71563e243c48c6145b4f1ae58f91f775
 
-         The second race condition that is solved by this patch involves a leak
-         of HTTP handler threads. The problem was that step 2b would successfully
-         retrieve a stasis_app_control structure. Then step 2a would exit the
-         channel from the event loop due to a hangup. Steps 3a and 4a would
-         execute, and then finally steps 3b and 4b would. The problem is that at
-         step 4b, when attempting to add a channel to a bridge, the thread would
-         block forever since the channel would never execute the queued command
-         since it was finished with the event loop. This meant that the HTTP
-         handling thread would be leaked, along with any references that thread
-         may have owned (in my case, I was seeing bridges leaked).
+2015-07-14 14:36 +0000 [c782320c68]  Richard Mudgett <rmudgett@digium.com>
 
-         The fix for this is to hone in better on when the channel has exited the
-         event loop. The stasis_app_control structure has an is_done field that
-         is now set at each point where the channel may exit the event loop. If
-         step 2b retrieves a valid stasis_app_control structure but the control
-         is marked as done, then the attempted operation exits immediately since
-         there will be nothing to service the attempted command.
+       * res_parking: Fix crash if ATTENDEDTRANSFER set empty before Park.
 
-         ASTERISK-25091 #close
-         Reported by Ilya Trikoz
+         setup_park_common_datastore() was assuming that a non-NULL string returned
+         for the ATTENDEDTRANSFER and BLINDTRANSFER channel variables are not empty
+         strings.  Things got crashy as a result.
 
-         Change-Id: If66265b73b4c9f8f58599124d777fedc54576628
-2015-06-16 11:13 +0000 [723a9d4225]  Mark Michelson <mmichelson@digium.com>
+         * Made setup_park_common_datastore() treat the channel variable values the
+         same whether they are NULL or empty for ATTENDEDTRANSFER and
+         BLINDTRANSFER.
 
-       * Parking: Add documentation for AMI ParkedCallSwap event.
+         ASTERISK-25254 #close
+         Reported by: Richard Mudgett
 
-         This event was added some time ago in order to clarify when a channel
-         took the place of another channel in a parking lot. However, there was
-         no XML documentation added for the event. This patch adds the XML
-         documentation.
+         Change-Id: I9a9c174b33f354f35f82cc6b7cea8303adbaf9c2
 
-         ASTERISK-24900 #close
-         Reported by Rusty Newton
+2015-07-10 18:01 +0000 [2735dd5b2d]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I4cfe7777c4b94bbff91c9221c6096a7a02a92eac
-2015-06-15 16:40 +0000 [79bf56c78a]  Corey Farrell <git@cfware.com>
+       * res_pjsip_session.c: Extract sip_session_defer_termination_stop_timer().
 
-       * func_pjsip_aor: Fix leaked contact from iterator.
+         Change-Id: I9e115dee74bd72e06081d0ee73ecdeb886caa5fb
 
-         ASTERISK-25162 #close
+2015-07-10 10:42 +0000 [3d0ca343ca]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Id79aa3c6fe490016ee98efc97ac4c1d3f461f97e
+       * res_pjsip_session.c: Add some helpful comments and minor tweaks.
 
-2015-06-12 16:58 +0000 [31c77b157b]  Kevin Harwell <kharwell@digium.com>
+         Change-Id: I742aeeaf5f760593f323a00fb691affe22e35743
 
-       * res_pjsip: Add option to force G.726 to be treated as AAL2 packed.
+2015-07-10 10:43 +0000 [8d08bb179c]  Richard Mudgett <rmudgett@digium.com>
 
-         Some phones send g.726 audio packed for AAL2, which differs from what is
-         recommended by RFC 3351. If Asterisk receives audio formatted as such when
-         negotiating g.726 then it sounds a bit distorted. Added an option to
-         res_pjsip_endpoint that allows g.726 negotiated audio to be treated as g.726
-         AAL2 packed.
+       * res_pjsip_session.c: Fix off nominal crash potential in debug message.
 
-         ASTERISK-25158 #close
-         Reported by: Steve Pitts
+         Change-Id: I09928297927ee85f7655289acee3a586816466bc
 
-         Change-Id: Ie7e21f75493d7fe53e75e12c971e72f5afa33615
+2015-07-15 10:31 +0000 [0a1a550593]  Matt Jordan <mjordan@digium.com>
 
-2015-06-14 19:48 +0000 [de8c7f46ed]  Matt Jordan <mjordan@digium.com>
+       * apps/app_dictate: Fix typo in attribution
 
-       * main/cdr: Carry over the disable flag when 'disable all' is specified
+         Last time I checked, it's "Sangoma", not "Samgoma". Thanks to Brian
+         (GameGamer43) for pointing that out.
 
-         The CDR_PROP function (as well as the NoCDR application) set the
-         'disable all' flag (AST_CDR_FLAG_DISABLE_ALL) on the current CDR. This
-         flag is supposed to be applied to all CDRs that are currently in the
-         chain, as well as all CDRs that may be created in the future. Currently,
-         however, the flag is only applied to the existing CDRs in the chain; new
-         CDRs do not receive the 'disable all' flag. In particular, this affects
-         parallel dials, which generate new CDRs for each pair of channels in
-         the dial attempt.
+         Change-Id: I43d7b196f6d7a2b2517b84915e3a8dfbc2894106
 
-         This patch carries over the 'disable all' flag when it is specified on a
-         CDR and a new CDR is generated for the chain.
+2015-07-15 10:28 +0000 [3384e64ef6]  Benjamin Ford <bford@digium.com>
 
-         ASTERISK-24344 #close
+       * ARI: Fixed unload mode for unload module.
 
-         Change-Id: I91a0f0031e4d147bdf8a68ecd08304d506fb6a0e
-2015-06-12 14:28 +0000 [78ea356e78]  Matt Jordan <mjordan@digium.com>
+         Changed the unload mode to AST_FORCE_SOFT from AST_FORCE_FIRM,
+         which would unload a module even if it was in use.
 
-       * main/cdr: Copy context/exten on chained CDRs for parallel dials in subroutines
+         * Changed unload mode to proper mode
 
-         When a parallel dial occurs, a new CDR will be created for each dial
-         attempt that is made. In most circumstances, the act of creating each
-         CDR in the chain will include a step that updates the Party A snapshot,
-         which causes the context/extension of the Party A to be copied onto the
-         CDR object.
+         ASTERISK-25173
 
-         However, when the Party A is in a subroutine, we explicitly do *not*
-         copy the context/extension onto the CDR. This prevents the Macro or
-         GoSub routine name from blowing away the context/extension that the
-         channel was originally executing in. For the original CDR, this is not a
-         problem: the original CDR already recorded the last known 'good' state
-         of the channel just prior to it going into the subroutine. However, for
-         newly generated CDRs in a chain, there is no context/extension set on
-         them. Since we are in a subroutine, we will never set the Party A's
-         context/extension on the CDR, and we end up with a CDR with no
-         destination recorded on it.
+         Change-Id: If2402487b5bce05d9770f25f65f5c8e292ad5533
 
-         This patch updates the creation of a chained CDR such that it copies
-         over the original CDR's context/extension. This is the last known "good"
-         state of the CDR, and is a reasonable starting point for the newly
-         generated CDR. In the case where we are not in a subroutine, subsequent
-         code will update the location of the CDR from the Party A information;
-         in the case where we are in a subroutine, the context/extension on the
-         original CDR is the correct information.
+2015-07-08 16:38 +0000 [0b6ff77afb]  Matt Jordan <mjordan@digium.com>
 
-         ASTERISK-24443 #close
+       * res/res_sorcery_astdb: Add a debugging message for when retrieval by ID fails
 
-         Change-Id: I6a3ef0d6e458d3b9b30572feaec70f2964f3bc2a
+         Having a debug message tell us that we attempted to look up an item but
+         failed is nice in circumstances when it isn't clear if the wizard was
+         queried correctly or not.
 
-2015-06-11 08:18 +0000 [3f57f3f8ec]  Damian Ivereigh <damo@launtel.net.au>
+         Change-Id: I2600c3bbea87f252196358f62e73f4c7da8632f7
 
-       * chan_sip.c: Update dialog fromtag after request with auth
+2015-07-08 16:37 +0000 [2f0d6d346c]  Matt Jordan <mjordan@digium.com>
 
-         If a client sends and INVITE which is 401 rejected, then subsequently
-         sends a new INVITE with the auth info and uses a different fromtag
-         from the first INVITE, Asterisk will accept the new INVITE as part of
-         the original dialog - match_req_to_dialog() specifically ignores the
-         fromtag. However it does not update the stored dialog with the new
-         fromtag.
+       * res/res_pjsip_outbound_registration: Fix WARNING message
 
-         This results in Asterisk being unable to match future packets that are
-         part of this dialog (such as the ACK to the OK or the OK to the BYE),
-         and the call is dropped.
+         Newlines are nice.
 
-         This problem was originally found when using an NEC-i SV8100-GE (NEC SIP
-         Card).
+         Change-Id: Icf0d915db02882e47cd9077ed9009f5d44140d42
 
-         * After a successful match of a packet to the dialog, if the packet is
-           not a SIP_RESPONSE, authentication is present and the fromtags are
-           different, the stored fromtag is updated with the one from the recent
-           INVITE.
+2015-07-08 16:35 +0000 [cd2213f1ae]  Matt Jordan <mjordan@digium.com>
 
-         ASTERISK-25154 #close
-         Reported by: Damian Ivereigh
-         Tested by: Damian Ivereigh
+       * res_pjsip/configuration: Fix a variety of default value problems
 
-         Change-Id: I5c16cf3b409e5ef9f2b2fe974b6bd2a45a6aa17e
+         This patch fixes some bad default value handling in the following
+         settings:
 
-2015-06-11 18:52 +0000 [30a0f2d9ac]  Matt Jordan <mjordan@digium.com>
+         * The 'message_context' and 'accountcode' settings are not mandatory. As
+           such, we can allow their stringfield values to be empty.
+         * The 'media_encryption' setting applies a default value of 'none' to
+           the setting, which it then can't parse or understand. Since the value
+           is documented to be 'no', this will now apply that as the default
+           value.
 
-       * chan_pjsip: Set the context and extension on the channel when created
+         Change-Id: Ib9be7f97a7a5b9bc7aee868edf5acf38774cff83
 
-         Prior to this patch, chan_pjsip was failing to pass the endpoint's
-         context and the desired extension to the ast_channel_alloc_* routine.
-         This caused a new channel snapshot to be issued without a context and
-         extension, which can cause some reporting issues for users of AMI, CEL,
-         and other APIs. The channel driver would later set the context and
-         extension on the channel such that the channel would start in the
-         correct location in the dialplan, but the information reported in the
-         initial event would be incorrect.
+2015-07-08 16:32 +0000 [2e4bdbd78a]  Matt Jordan <mjordan@digium.com>
 
-         This patch modifies the channel driver such that it now passes the
-         context and extension directly into the allocation routine. This
-         provides the information in the new channel snapshot published over
-         Stasis.
+       * main/sorcery: Provide log messages when a wizard does not support an operation
 
-         ASTERISK-25156 #close
-         Reported by: cloos
+         If a sorcery wizard does not support one of the 'optional' CRUD
+         operations (namely the CUD), log a WARNING message so we are aware of
+         why the operation failed. This also removes an assert in this case, as
+         the CUD operation may have been triggered by an external system, in
+         which case it is not a programming error but a configuration error.
 
-         Change-Id: Ic6f8542836e596db8f662071d118e8f934fdf25e
+         Change-Id: Ifecd9df946d9deaa86235257b49c6e5e24423b53
 
-2015-06-10 18:28 +0000 [dbb067279e]  Joshua Colp <jcolp@digium.com>
+2015-07-10 18:17 +0000 [653f2087e0]  Richard Mudgett <rmudgett@digium.com>
 
-       * bridge: When performing a blonde transfer update connected line information.
+       * res_pjsip_session.c: Fix crash on call disconnect.
 
-         When performing a blonde transfer the code uses the old masquerade
-         mechanism to move a channel around. As a result of this certain information,
-         such as connected line, is moved between the channels involved. Upon
-         completion of the move a frame is queued which is supposed to update the
-         connected line information on the channel. This does not occur as the
-         code considers it a redundant update since the masquerade operation
-         updated the channel (but did not inform it of the new connected line
-         information). The code also does not queue a connected line update
-         to be handled by the thread handling the channel. Without this any
-         other channel that may be loosely involved does not know it is
-         talking to a different caller.
+         The crash fix for ASTERISK-25183 backported some code from master to try
+         to make sure that a BYE response is processed by the same serializer used
+         by the BYE request.  The identified race condition causing that backport
+         was the BYE request code had not finished processing after sending the BYE
+         before the BYE response came in for processing under a different thread.
+         Unfortunately, there is still a race condition.  Now the race condition is
+         between destroying the call session's serializer in
+         ast_taskprocessor_unreference() and using ast_taskprocessor_get() to get a
+         reference to the serializer for a BYE response.  Even worse, the new race
+         condition is a design limitation of the taskprocessor implementation that
+         didn't matter in versions before v12.  Back then, taskprocessors were only
+         destroyed when a module unloaded.  Now res_pjsip can destroy them when a
+         call ends.
 
-         This change does the following to resolve this:
+         However, as noted on the ASTERISK-25183 commit,
+         session_inv_on_state_changed() is disassociating the dialog from the
+         session when the invite dialog state becomes PJSIP_INV_STATE_DISCONNECTED.
+         This is a tad too soon because our BYE request transaction has not
+         completed yet.
 
-         1. The indicated connected line information is cleared upon
-         completion of the masquerade operation when doing a blonde transfer.
-         This prevents the connected line update from being considered
-         redundant.
+         * Split session_end() that is called by session_inv_on_state_changed() to
+         hold off session destruction until the BYE transaction timeout occurs or a
+         failed initial INVITE transaction timeout occurs in
+         session_inv_on_tsx_state_changed().
 
-         2. A connected line update frame is now queued upon the completion
-         of the masquerade operation so any other channel loosely involved
-         knows that there is a different caller.
+         ASTERISK-25201 #close
+         Reported by: Matt Jordan
 
-         ASTERISK-25157 #close
-         Reported by: Joshua Colp
+         Change-Id: Iaf8dc8485fd8392a2a3ee4ad3b7f7f04a0dcc961
 
-         Change-Id: Ibb8798184a1dab3ecd35299faecc420034adbf20
+2015-07-14 13:12 +0000 [1aafadf814]  Benjamin Ford <bford@digium.com>
 
-2015-06-11 14:39 +0000 [a2f4d03c87]  Richard Mudgett <rmudgett@digium.com>
+       * ARI: Added new functionality to reload a single module.
 
-       * app_directory: Fix crash when using the alias option 'a'.
+         An http request can be sent to reload an Asterisk module. If the
+         module can not be reloaded or is not already loaded, an error
+         response will be returned.
 
-         The voicemail.conf mailbox key/value pair is defined as:
-         <mailbox>=[<password>[,<full-name>[,<email>[,<pager>[,<options>]]]]]
-         Where all fields in the value including the field values are optional.
+         The command "curl -v -u user:pass -X PUT 'http://localhost:8088
+         /ari/asterisk/modules/{moduleName}'" (or something similar, based
+         on configuration) can be run in the terminal to access this new
+         functionality.
 
-         Since the parsing code for the mailbox key/value pair is sloppy, this
-         patch tightens the parsing for the directory information.
+         For more information, see:
+         https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
 
-         * Renamed the 'pos' and 'bufptr' variables to 'name' and 'options'
-         respectively in search_directory_sub().  Those names make more sense.
+         * Added new ARI functionality
+         * Asterisk modules can be reloaded through http requests
 
-         * Made sure that search_directory_sub() is dealing with the voicemail.conf
-         mailbox options field if it even exists when looking for the 'hidefromdir'
-         and 'alias' options.
+         ASTERISK-25173
 
-         * Fix crash if a voicemail.conf mailbox is just
-         <mailbox>=<password>,<name> when the 'a' option is used.  If there were no
-         fields after the name then the 'options' pointer was not checked for NULL.
+         Change-Id: I289188bcae182b2083bdbd9ebfffd50b62f58ae1
 
-         * Fix users.conf alias processing if the 'a' option is used.  The wrong
-         variable was used.
+2015-07-14 08:55 +0000 [9dcae23cfc]  Benjamin Ford <bford@digium.com>
 
-         ASTERISK-25087 #close
-         Reported by: Chet Stevens
+       * ARI: Added new functionality to unload a single module.
 
-         Change-Id: I86052ea77307beddddba5279824d39dc0d593374
+         An http request can be sent to unload an Asterisk module. If the
+         module can not be unloaded or is already unloaded, an error response
+         will be returned.
 
-2015-06-09 15:31 +0000 [a2b718f4f6]  Richard Mudgett <rmudgett@digium.com>
+         The command "curl -v -u user:pass -X DELETE 'http://localhost:8088
+         /ari/asterisk/modules/{moduleName}'" (or something similar, depending
+         on configuration) can be run in the terminal to access this new
+         functionality.
 
-       * res_pjsip.h: Fix some doxygen comments.
+         For more information, see:
+         https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
 
-         Change-Id: I4615771077c3c6a0a7273da6d7b5f77af7e8d976
+         * Added new ARI functionality
+         * Asterisk modules can be unloaded through http requests
 
-2015-06-05 13:46 +0000 [32ddf6d86b]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25173
 
-       * taskprocessor.c: Remove extra unref from off-nominal path.
+         Change-Id: I535a95f5676deb02651522761ecbdc0b00b5ac57
 
-         Change-Id: Iee3bd8c8a528776056972066698fe735f0f6cf60
+2015-07-13 16:00 +0000 [c219a98d2b]  Benjamin Ford <bford@digium.com>
 
-2015-04-20 16:00 +0000 [cf98c744d5]  Yousf Ateya <y.ateya@starkbits.com>
+       * ARI: Added new functionality to load a single module.
 
-       * chan_iax2: Prevent deadlock between hangup and sending lagrq/ping
+         An http request can be sent to load an Asterisk module. If the
+         module can not be loaded or is loaded already, an error response
+         will be returned.
 
-         channels/chan_iax.c: Prevent the deadlock between iax2_hangup and send_lagrq/
-         send_ping. This deadlock happens because the scheduled task send_lagrq(or
-         send_ping) starts execution after the call hangup procedure starts but before
-         it deletes the tasks in the scheduler.
+         The command curl -v -u user:pass -X POST 'http://localhost:8088/ari
+         /asterisk/modules/{moduleName}'" (or something similar, depending on
+         configuration) can be run in the terminal to access this new
+         functionality.
 
-         The solution is to delete scheduled lagrq (and ping) task asynchronously
-         (i.e. schedule AST_SCHED_DEL for these tasks); By this, AST_SCHED_DEL will
-         be called in a new context (doesn't have callno locked).
+         For more information, see:
+         https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
 
-         This commit also cleans up the procedure of sending LAGRQ and PING.
+         * Added new ARI functionality
+         * Asterisk modules can be loaded through http requests
 
-         main/sched.c: Do not assert when deleting non existant entry from scheduler.
-         This assert seems to be the reason for a lot of awkward code to avoid it.
+         ASTERISK-25173
 
-         ASTERISK-24983 #close
-         Reported by: Y Ateya
+         Change-Id: I9e05d5b8c5c666ecfef341504f9edc1aa84fda33
 
-         Change-Id: I03bec1fc8faacb89630269e935fa667c6d6c080c
+2015-07-13 10:54 +0000 [73e35d20de]  Benjamin Ford <bford@digium.com>
 
-2015-05-31 12:37 +0000 [8af6c9cf6b]  Ivan Poddubny <ivan.poddubny@gmail.com>
+       * ARI: Added new functionality to get information on a single module.
 
-       * res_pjsip_transport_websocket: Fix use-after-free bugs.
+         An http request can be sent to retrieve information on a single
+         module, including the resource name, description, use count, status,
+         and support level.
 
-         This patch fixes use-after-free bugs caught by AddressSanitizer.
+         The command "curl -v -u user:pass -X GET 'http://localhost:8088/ari
+         /asterisk/modules/{moduleName}'" (or something similar, depending on
+         configuration) can be run in the terminal to access this new
+         functionality.
 
-         1. PJSIP transport manager may decide to destroy transport on its own.
-         For example, when the contact registered via websocket has not renewed
-         its registration in time. The transport was destoyed, but the websocket
-         listener thread was still active until the socket closes, and then tried
-         to call transport_shutdown on transport that has been freed.
+         For more information, see:
+         https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
 
-         Also, the transport destructor accessed wstransport->rdata.tp_info.pool
-         right after freeing memory that contained wstransport itself.
+         * Added new ARI functionality
+         * Information on a single module can now be retrieved
 
-         This patch converts transport to an ao2 object, allowing it to be
-         refcounted, so that it is available until both websocket listener and
-         pjsip transport manager are finished with it.
+         ASTERISK-25173
 
-         2. The websocket listener deletes the last reference on websocket session
-         when the tcp connection is closed, and it gets destroyed, but
-         the transport manager may still use it, for example when disconnect
-         happens in the middle of a SIP transaction.
+         Change-Id: Ibce5a94e70ecdf4e90329cf0ba66c33a62d37463
 
-         A new reference to websocket session has been added that is released
-         with the transport to prevent this.
+2015-07-08 14:56 +0000 [97ee0ee6c6]  Kevin Harwell <kharwell@digium.com>
 
-         ASTERISK-25096 #close
-         Reported by: Josh Kitchens
-
-         ASTERISK-24963 #close
-         Reported by: Badalian Vyacheslav
+       * bridge.c: Fixed race condition during attended transfer
 
-         Change-Id: Idc0b63eb6e459c1ddfb2430127d34b3c4d8d373b
+         During an attended transfer a thread is started that handles imparting the
+         bridge channel. From the start of the thread to when the bridge channel is
+         ready exists a gap that can potentially cause problems (for instance, the
+         channel being swapped is hung up before the replacement channel enters the
+         bridge thus stopping the transfer). This patch adds a condition that waits
+         for the impart thread to get to a point of acceptable readiness before
+         allowing the initiating thread to continue.
 
-2015-06-09 13:41 +0000 [3046bc17ed]  ibercom <ibercom123@gmail.com>
+         ASTERISK-24782
+         Reported by: John Bigelow
 
-       * weakref attribute detection broken with gcc 4.6 and higher
+         Change-Id: I08fe33a2560da924e676df55b181e46fca604577
 
-         GCC 4.7 Manual:
-         http://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Function-Attributes.html
+2015-07-08 16:28 +0000 [bb76b88baf]  Matt Jordan <mjordan@digium.com>
 
-         weakref ("target")
+       * main/sorcery: Don't fail object set creation from JSON if field fails
 
-         A weak reference is an alias that does not by itself require a definition
-         to be given for the target symbol.
+         Some individual fields may fail their conversion due to their default
+         values being invalid for their custom handlers. In particular,
+         configuration values that depend on others being enabled (and thus have
+         an empty default value) are notorious for tripping this routine up. An
+         example of this are any of the DTLS options for endpoints. Any of the
+         DTLS options will fail to be applied (as DTLS is not enabled), causing
+         the entire object set to be aborted.
 
-         ASTERISK-22559 #close
-         Reported by: Ibercom
+         This patch makes it so that we log a debug message when skipping a
+         field, and rumble on anyway.
 
-         Change-Id: I36a136cae947b65187a697533416f9ff9a0b8cdf
+         ASTERISK-25238
 
-2015-06-08 10:09 +0000 [55c8daf88b]  Corey Farrell <git@cfware.com>
+         Change-Id: I0bea13de79f66bf9f9ae6ece0e94a2dc1c026a76
 
-       * Fix unsafe uses of ast_context pointers.
+2015-07-08 16:21 +0000 [5f13c2226a]  Matt Jordan <mjordan@digium.com>
 
-         Although ast_context_find, ast_context_find_or_create and
-         ast_context_destroy perform locking of the contexts table,
-         any context pointer can become invalid at any time that the
-         contexts table is unlocked. This change adds locking around
-         all complete operations involving these functions.
+       * main/format_cap: Parse capabilities generated by ast_format_cap_get_names
 
-         Places where ast_context_find was followed by ast_context_destroy
-         have been replaced with calls ast_context_destroy_by_name.
+         We have a strange relationship between the parsing of format
+         capabilities from a string and their representation as a string. We
+         expect the format capabilities to be expressed as a string in the
+         following format:
 
-         ASTERISK-25094 #close
-         Reported by: Corey Farrell
+         allow = !all,ulaw,alaw
+         disallow = g722
 
-         Change-Id: I1866b6787730c9c4f3f836b6133ffe9c820734fa
+         While we would generate the string representation of those formats as:
 
-2015-06-04 07:14 +0000 [e0090216db]  ibercom <ibercom123@gmail.com>
+         allow = (ulaw|alaw)
+         disallow = (ulaw|alaw|g729...)
 
-       * CLI: Cosmetic issue - core show uptime
+         When the configuration framework needs to store values as a string, it
+         generates the format capabilities using the second representation; this
+         representation however cannot be parsed when the entry is rehydrated.
+         This patch fixes that by updating
+         ast_format_cap_update_by_allow_disallow to parse an entry as if it were
+         in the generated format if it has a leading '(' and a trailing ')'.
 
-         Show uptime information ends with an unnecessary space.
+         ASTERISK-25238
 
-         Now NEEDCOMMA is better defined.
+         Change-Id: I904d43caf4cf45af06f6aee0c9e58556eb91d6ca
 
-         Change-Id: I11b360504a0703309ff51772ff8f672287f3c5a1
+2015-06-27 17:53 +0000 [2325b106fd]  Matt Jordan <mjordan@digium.com>
 
-2015-06-03 17:41 +0000 [88212ccb7f]  Mark Michelson <mmichelson@digium.com>
+       * tests/test_devicestate: Add additional tests for the device state API
 
-       * res_pjsip: Prevent access of NULL channels.
+         This patch adds more tests that exercise the device state API. This includes:
 
-         It is possible to receive incoming requests or responses after the channel
-         on an ast_sip_session has been destroyed and NULLed out. Handlers of these
-         sorts of requests or responses need to be prepared for the possibility
-         that the channel is NULL or else they could cause a crash.
+         * Tests that cover adding a device state provider, as well as deleting a
+           device state provider. This also verifies that you cannot add an
+           already added device state provider, and cannot delete an already
+           deleted device state provider.
+         * A test that covers changing device state and receiving said updates
+           from a device state subscriber. This also covers hitting both the
+           device state cache as well as a custom device state provider.
+         * A test that covers converting device state to channel state and device
+           state values to a string representation and back.
+         * A test that covers obtaining device state from an active channel and a
+           channel driver that provides its own device state.
 
-         While several places have been amended to deal with NULL channels, there
-         were still a couple of places that needed updating.
+         Change-Id: I2adca67ffb405cd8625a5d6df1e3f9b3d945c08d
 
-         res_pjsip_dtmf_info.c: When handling incoming INFO requests, we need to
-         return early if there is no channel on the session.
+2015-06-27 17:51 +0000 [328f0be806]  Matt Jordan <mjordan@digium.com>
 
-         res_pjsip_session.c: When handling a 302 response, we need to stop the
-         redirecting attempt if there is no channel on the session.
+       * main/devicestate: Prevent duplicate registration of device state providers
 
-         ASTERISK-25148 #close
-         reported by Mark Michelson
+         Currently, the device state provider API will allow you to register a
+         device state provider with the same case insensitive name more than
+         once. This could cause strange issues, as the duplicate device state
+         providers will not be queried when a device's state has to be polled.
+         This patch updates the API such that a device state provider with the
+         same name as one that has already registered will be rejected.
 
-         Change-Id: Id1a75ffc3d0eaa168b0b28188fb54d6cf9fc47a9
+         Change-Id: I4a418a12280b7b6e4960bd44f302e27cd036ceb2
 
-2015-06-01 11:45 +0000 [f5d5aa67dc]  Kevin Harwell <kharwell@digium.com>
+2015-07-10 22:25 +0000 [bee41eec62]  Matt Jordan <mjordan@digium.com>
 
-       * AMI: Escape string values.
+       * res/res_sorcery_memory_cache: Fix test registration issues
 
-         So this issue is a bit complicated. Since it is possible to pass values to AMI
-         that contain a '\r\n' (or other similar sequences) these values need to be
-         escaped. One way to solve this is to escape the values and then pass the escaped
-         values to the AMI variable parameter string building function. However, this
-         puts the onus on the pre-build function to escape all string values. This
-         potentially requires a fair amount of changes along with a lot of string
-         allocations/freeing for all values.
+         Again, tests now need to not end with a newline. This patch makes it so
+         the tests can register again, unit tests will actually pass, and we can
+         stop wasting time trying to figure out why builds are failing when they
+         really aren't failing.
 
-         Surely there is a way to push this complexity down a level into the string
-         building function itself? This of course is possible, but ends up requiring a
-         way to distinguish between strings that need to be escaped and those that don't.
-         The best way to handle this is by introducing a new format specifier in the
-         format string. For instance a %s (no escape) and %S (escape). However, that is
-         a bit weird and unexpected.
+         Change-Id: Ide519fbeba89f413c733446c5ff7b224fc4ce840
 
-         So faced with those possibilities this patch implements a limited version of the
-         first option. Instead of attempting to escape all string values this patch only
-         escapes those values that make sense. This approach limits the number of changes
-         and doesn't suffer from the odd format specifier problem.
+2015-07-10 21:42 +0000 [4d738e9026]  Matt Jordan <mjordan@digium.com>
 
-         ASTERISK-24934 #close
-         Reported by: warren smith
+       * tests/test_sorcery_memory_cache_thrash: Fix test loading problems
 
-         Change-Id: Ib55a5b84fe0481b0f2caaaab68c566f392c0aac0
+         Because unit tests now want descriptions to not end with a newline, the
+         sorcery memory cache thrash tests failed to register. This patch
+         corrects their descriptions.
 
-2015-06-03 13:17 +0000 [5dc9fb4198]  gtjoseph <george.joseph@fairview5.com>
+         Change-Id: Id004b1becfdeed8ee3c846f49beab76a5c0f68b6
 
-       * res_pjsip/location: Fix ref leak in contact_apply_handler
+2015-06-26 10:57 +0000 [47ea312b24]  Benjamin Ford <bford@digium.com>
 
-         contact_apply_handler calls ast_res_pjsip_find_or_create_contact_status
-         to force the creation of a contact_status object whenever a new
-         contact is added but it didn't unref the returned object.
+       * ARI: Added new functionality to get all module information.
 
-         Added an ao2_cleanup(status) to plug the leak.
+         An http request can be sent to retrieve a list of all existing modules,
+         including the resource name, description, use count, status, and
+         support level.
 
-         ASTERISK-25141
+         The command "curl -v -u user:pass -X GET 'http://localhost:8088/ari/
+         asterisk/modules" (or something similar, depending on configuration)
+         can be run in the terminal to access this new functionality.
 
-         Change-Id: Icc1401cae142855a1abc86ab5179dfb3ee861c40
-         Reported-by: Corey Farrell
+         For more information, see:
+         https://wiki.asterisk.org/wiki.display/~bford/Asterisk+ARI+Resource
 
-2015-06-02 15:07 +0000 [d908272b7e]  David M. Lee <dlee@respoke.io>
+         * Added new ARI functionality
+         * Information on modules can now be retrieved
 
-       * Fixes for OS X
+         Change-Id: I63cbbf0ec0c3544cc45ed2a588dceabe91c5e0b0
 
-          * Add some type casting so tv_usec can really be a long, instead of
-            some strange platform specific type.
+2015-07-09 09:18 +0000 [d558b00c85]  Joshua Colp <jcolp@digium.com>
 
-          * Add some .dylib style files to .gitignore.
+       * bridge_native_rtp.c: Don't start native RTP bridging after attended transfer.
 
-          * Switch from using -Xlinker to -Wl,. For [reasons unknown][], newer
-            versions of GCC, when compiling the Homebrew formula for Asterisk,
-            are not properly passing the -Xlinker options to the linker. Given
-            that -Wl, does exactly the [same thing][], and does it properly, this
-            patch changes the -Xlinker options to use -Wl, instead.
+         The bridge_native_rtp module adds a frame hook to channels which are in
+         a native RTP bridge. This frame hook is used to intercept when a hold
+         or unhold frame traverses the bridge so native RTP can be stopped or
+         started as appropriate. This is expected but exposes a specific bug
+         when attended transfers are involved.
 
-          [reasons unknown]: http://bit.ly/1SUbEYx
-          [same thing]: https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html
+         Upon completion of an attended transfer an unhold frame is queued up
+         to take one of the channels involved off hold. After this is done
+         the channel is moved between bridges.
 
-         Change-Id: Id5e6b3c6cc86282ea5fca630dc3991137c5bf4dd
+         When the frame hook is involved in this case for the unhold it
+         releases the channel lock and acquires the bridge lock. This
+         allows the bridge core to step in and move the channel
+         (potentially changing the bridging techology) from another thread.
+         Once completed the bridge lock is released by the bridge core.
+         The frame hook is then able to acquire the bridge lock and
+         wrongfully starts native RTP again, despite the channel no longer
+         being in the bridge or needing to start native RTP. In fact at
+         this point the frame hook is no longer attached to the channel.
 
-2015-05-30 20:22 +0000 [9e7827e3ac]  Corey Farrell <git@cfware.com>
+         This change makes it so the native RTP bridge data is available to
+         the frame hook when it is invoked. Whether the frame hook has
+         been detached or not is stored on the native RTP bridge data and
+         is checked by the frame hook before starting or stopping native
+         RTP bridging. If the frame hook has been detached it does nothing.
 
-       * pjsip_configuration: Fix leak in persistent_endpoint_update_state.
+         ASTERISK-25240 #close
 
-         The loop to find the first available contact of an endpoint grabbed
-         contact from the iterator, then checked for offline state.  This
-         caused the first contact after the state was found to leak a reference.
+         Change-Id: I13a73186a05f4e5a764f81e5cd0ccec1ed1891d2
 
-         ASTERISK-25141
+2015-05-16 17:02 +0000 [b74b071369]  Joshua Colp <jcolp@digium.com>
 
-         Change-Id: Id0f1d87410fc63742db0594eb4b18b36e99aec08
-2015-05-31 11:33 +0000 [888bb49618]  Ivan Poddubny <ivan.poddubny@gmail.com>
+       * res_sorcery_memory_cache: Backport to 13
 
-       * Fix buffer overflow in slin sample frames generation.
+         Gerrit is complaining of conflicts when trying to create a patch series
+         of all of the cherry-picked master commits, so I have instead squashed
+         it all into one commit.
 
-         The length of frames retured by sample functions was twice as large as
-         real, what caused global buffer overflow caught by AddressSanitizer.
+         ASTERISK-25067 #close
+         Reported by: Matt Jordan
 
-         ASTERISK-24717 #close
-         Reported by: Badalian Vyacheslav
+         Change-Id: I6dda90343fae24a75dc5beec84980024e8d61eb9
 
-         Change-Id: Iec2fe682aef13e556684912f906bedf7c18229c6
+2015-07-08 04:21 +0000 [7ff1ac8797]  Joshua Colp <jcolp@digium.com>
 
-2015-05-29 16:19 +0000 [857166b5e5]  gtjoseph <george.joseph@fairview5.com>
+       * res_rtp_asterisk: Ensure DTLS timeout timer is -1 if DTLS is not used.
 
-       * res_pjsip/location:  Fix memory leak in permanent_uri_handler
+         This change fixes a bug where the DTLS timeout timer would be
+         initialized to 0 if DTLS was not used for an RTP session.
 
-         When permanent_uri_handler was creating the contact status
-         object for each contact, it wasn't unreffing it at the
-         end of the loop.
+         ASTERISK-25103
 
-         ASTERISK-25141 #close
-         Reported-by: Corey Farrell
+         Change-Id: If8d26bb054f1d300838850da5b8db9044c2fe2ac
 
-         Change-Id: I7bb127994677bb3d459f87952f8425c9b9967b12
+2015-07-01 07:55 +0000 [05e8e14982]  Joshua Colp <jcolp@digium.com>
 
-2015-05-29 14:52 +0000 [1558a89129]  gtjoseph <george.joseph@fairview5.com>
+       * res_rtp_asterisk: Prevent simultaneous access to DTLS SSL context.
 
-       * Revert "endpoint/stasis: Eliminate duplicate events on endpoint status change"
+         This change moves logic for setting up the DTLS SSL contexts to
+         when the SDP is done being processed instead of when ICE negotiation
+         completes. It also stops handshakes from being initiated when we
+         are acting as a server.
 
-         This reverts commit 35c699086ae2fd81b2473307ccb2ae79ad32375a.
+         Manipulating the SSL context when ICE negotiation has completed
+         is problematic as the SSL context is not protected and if acting
+         as a client the remote side may have started DTLS negotiation
+         already.
 
-         Change-Id: Ia98c2b4820cf579a5b9bb75e9e05d7a233205fb7
+         The retransmission timeout timer code has also been split up
+         and simplified some. Both RTP and RTCP now have their own timers
+         and the points at which the timer is stopped and started is now
+         more specific. When a packet is sent the timer is started. When
+         a response is received but before it is processed the timer is
+         stopped. This provides a guarantee that the timeout is not
+         occurring while the response is processed.
 
-2015-05-27 13:22 +0000 [35c699086a]  gtjoseph <george.joseph@fairview5.com>
+         ASTERISK-22805 #close
+         ASTERISK-24550 #close
+         ASTERISK-24651 #close
+         ASTERISK-24832 #close
+         ASTERISK-25103 #close
+         ASTERISK-25127 #close
 
-       * endpoint/stasis: Eliminate duplicate events on endpoint status change
+         Change-Id: Ib75ea2546f29d6efc3d2d37c58df6986c7bd9b91
 
-         When an endpoint was created, it's messages were being forwarded to
-         both the tech endpoint topic and the all endpoints topic.  Since
-         the tech topic was also forwarded to all, this was resulting in
-         duplicate messages whenever an endpoint published.  This patch
-         causes the endpoint to only forward to the tech topic and lets
-         the tech topic forward to all.
+2015-06-26 16:10 +0000 [38bace4fbb]  Richard Mudgett <rmudgett@digium.com>
 
-         To accomplish this, the existing stasis_cp_single_create function
-         (which both creates and forwards) was cloned and split into 2
-         functions, one that creates the topic and one that sets up the
-         forwarding.  This allows endpoint_internal_create to create
-         the topic from the endpoint_all cache without forwarding it there,
-         then allows it to do the forward to the tech's topic.
+       * res_pjsip_t38.c: Fix always false if test.
 
-         ASTERISK-25137 #close
-         Reported-by: Vitezslav Novy
-         ASTERISK-25116 #close
-         Reported-by: George Joseph <george.joseph@fairview5.com>
-         Tested-by: George Joseph <george.joseph@fairview5.com>
+         Calling t38_change_state() sets the t38 state so it makes little sense to
+         then check the state right after the call for something else.
 
-         Change-Id: I26d7d4926a0861748fd3bdffe316b75b549a801c
+         * Made the code in t38_interpret_parameters() reject or exit T.38 mode as
+         intended but not implemented.
 
-2015-05-26 13:56 +0000 [fe21f2e52f]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ib281263a6ed44da9448132c4e6df1e183b8a3df2
 
-       * res_pjsip_session: Fix in-dialog authentication.
+2015-06-30 11:17 +0000 [2f7688c788]  Richard Mudgett <rmudgett@digium.com>
 
-         When the remote peer requires authentication for in-dialog requests then
-         re-INVITEs to the peer cause the call to be disconnected and other
-         in-dialog requests to the peer like MESSAGE just don't go through.
+       * res_pjsip_mwi.c: Use safer loop coding in mwi_subscription_mailboxes_str().
 
-         * Made session_inv_on_tsx_state_changed() handle in-dialog authentication
-         for re-INVITEs and other methods.  Initial INVITEs cannot be handled here
-         because the INVITE transaction must be restarted earlier.
+         Change-Id: I6f39d809a6d1b47b35bb32b298f5a12f35d6f907
 
-         * Pulled needed code from res/res_pjsip/pjsip_outbound_auth.c in
-         preparation for removing the file.  The generic outbound authentication
-         code did not work as well as anticipated.
+2015-06-30 11:14 +0000 [74be3a50d7]  Richard Mudgett <rmudgett@digium.com>
 
-         * Created outbound_invite_auth() to only handle initial outbound INVITEs.
-         Re-INVITEs cannot be handled here.  The re-INVITE transaction is still in
-         progress and the PJSIP library cannot handle the overlapping INVITE
-         transactions.  Other method types should not be handled here as this code
-         only works on outgoing calls and we need to handle incoming and outgoing
-         calls.
+       * res_pjsip_mwi.c: Eliminate a simple RAII_VAR.
 
-         ASTERISK-25131 #close
-         Reported by: Richard Mudgett
+         Change-Id: Ib1843f81e826a6c760c424c88eb70c350d9d61da
 
-         Change-Id: I12bdd7ddccc819b4ce4b091e826d1e26334601b0
+2015-06-30 11:11 +0000 [589e93617a]  Richard Mudgett <rmudgett@digium.com>
 
-2015-05-21 17:21 +0000 [262d590819]  gtjoseph <george.joseph@fairview5.com>
+       * res_pjsip_mwi.c: Fix mid-line log message line breaks.
 
-       * res_pjsip: Add AMI events for chan_pjsip contact lifecycle changes
+         * Add create_mwi_subscriptions_for_endpoint() doxygen comment.
 
-         Add a new ContactStatus AMI event.
-         Publish the following status/state changes:
-         Created
-         Removed
-         Reachable
-         Unreachable
-         Unknown
+         Change-Id: I3c3f921f4ec749fb65b62d2f6fa0d4d1888b94e2
 
-         Contact URI, new status/state, aor and endpoint names, and the
-         last qualify rtt result are included in the event.
+2015-06-26 18:48 +0000 [0d67e04359]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25114 #close
+       * res_pjsip_mwi.c: Fix MWI subscription memory corruption crash.
 
-         Change-Id: Id25aae5f7122facba183273efb3e8f36c20fb61e
-         Reported-by: George Joseph <george.joseph@fairview5.com>
-         Tested-by: George Joseph <george.joseph@fairview5.com>
+         MWI subscriptions can crash or corrupt memory when using the subscription
+         datastore to access the MWI subscription object because the datastore is
+         not holding a reference to the object.
 
-2015-05-26 07:44 +0000 [5a42397018]  Joshua Colp <jcolp@digium.com>
+         * Give the subscription datastore a ref to the MWI subscription object.
+         It is unfortunate that the ref causes a circular ref chain that must be
+         explicitly broken to allow the memory to get released.  The loop is broken
+         when the subscription is shutdown and if the subscription setup fails.
 
-       * sorcery: Fix cache creation callback.
+         ASTERISK-25168 #close
+         Reported by: Carl Fortin
 
-         The cache creation callback function expects to receive a sorcery_details
-         structure and not just a standalone object.
+         Change-Id: Ice4fa823f138ff10a6c74d280699c41a82836d4f
 
-         Change-Id: I3e4a5a137cb25292eb52d7a14cbb6daa09213450
+2015-07-02 14:51 +0000 [0422433f47]  Richard Mudgett <rmudgett@digium.com>
 
-2015-05-24 13:47 +0000 [97a6ce1717]  Ivan Poddubny <ivan.poddubny@gmail.com>
+       * PJSIP XML, XPIDF: Fix buffer size overwrite memory corruption error.
 
-       * Astobj2: Correctly treat hash_fn returning INT_MIN
+         When res_pjsip body generator modules were generating XML or XPIDF
+         response bodies, there was a chance that the generated body would be the
+         exact size of the supplied buffer.  Adding the nul string terminator would
+         then write beyond the end of the buffer and potentially corrupt memory.
 
-         The code in astobj2_hash.c wrongly assumed that abs(int) is always > 0.
-         However, abs(INT_MIN) = INT_MIN and is still negative, as well as
-         abs(INT_MIN) % num_buckets, and as a result this led to a crash.
+         * Fix MALLOC_DEBUG high fence violations caused by adding a nul string
+         terminator on the end of a buffer for XML or XPIDF response bodies.
 
-         One way to trigger the bug is using host=::80 or 0.0.0.128 in peer
-         configuration section in chan_sip or chan_iax.
+         * Made calls to pj_xml_print() safer if the XML prolog is requested.  Due
+         to a bug in pjproject, the return value could be -1 _or_
+         AST_PJSIP_XML_PROLOG_LEN if the supplied buffer is not large enough.
 
-         This patch takes the remainder before applying abs, so that bucket
-         number is always in range.
+         * Updated the doxygen comment of AST_PJSIP_XML_PROLOG_LEN to describe the
+         return value of pj_xml_print() when the supplied buffer is not large
+         enough.
 
-         ASTERISK-25100 #close
-         Reported by: Mark Petersen
+         ASTERISK-25168
+         Reported by: Carl Fortin
 
-         Change-Id: Id6981400ad526f47e10bcf7b847b62bd2785e899
-2015-05-23 04:36 +0000 [554bd1e39c]  Ivan Poddubny <ivan.poddubny@gmail.com>
+         Change-Id: Id70e1d373a6a2b2bd9e678b5cbc5e55b308981de
 
-       * res_pjsip_transport_websocket: Fix crash on receiving large SIP packets
+2015-06-26 10:36 +0000 [8ea214aed7]  Richard Mudgett <rmudgett@digium.com>
 
-         Incoming SIP packets larger than PJSIP_MAX_PKT_LEN were themselves
-         truncated before passing to pjsip_tpmgr_receive_packet, but the length
-         was passed unaltered, thus causing memory corruption and segfault.
+       * PJSIP FAX: Fix T.38 automatic reject timer NULL channel pointer dereferences.
 
-         ASTERISK-25122 #close
+         When a caller calls a FAX number and then hangs up right after the call is
+         answered then the T.38 re-INVITE automatic reject timer may still be
+         running after the channel goes away.
 
-         Change-Id: I608a6b6b7f229eacc33a0a7d771d18e27e5b08ab
+         * Added session NULL channel checks on the code paths that get executed by
+         t38_automatic_reject() to prevent a crash when the T.38 re-INVITE
+         automatic reject timer expires.
 
-2015-05-22 21:50 +0000 [0d266cbe02]  Corey Farrell <git@cfware.com>
+         ASTERISK-25168
+         Reported by: Carl Fortin
 
-       * Stasis: Fix unsafe use of stasis_unsubscribe in modules.
+         Change-Id: I07b6cd23815aedce5044f8f32543779e2f7a2403
 
-         Many uses of stasis_unsubscribe in modules can be reached through unload.
-         These have been switched to stasis_unsubscribe_and_join.
+2015-06-05 15:37 +0000 [ada7346792]  Richard Mudgett <rmudgett@digium.com>
 
-         Some subscription callbacks do nothing, for these I've created a noop
-         callback function in stasis.c.  This is used by some modules that monitor
-         MWI topics in order to enable cache, since the callback does not become
-         invalid after dlclose it is safe to use stasis_unsubscribe on these, even
-         during module unload.
+       * res_pjsip: Need to use the same serializer for a pjproject SIP transaction.
 
-         ASTERISK-25121 #close
+         All send/receive processing for a SIP transaction needs to be done under
+         the same threadpool serializer to prevent reentrancy problems inside
+         pjproject and res_pjsip.
 
-         Change-Id: Ifc2549fbd8eef7d703c222978e8f452e2972189c
+         * Add threadpool API call to get the current serializer associated with
+         the worker thread.
 
-2015-05-22 12:22 +0000 [51ffed5e61]  Matt Jordan <mjordan@digium.com>
+         * Pick a serializer from a pool of default serializers if the caller of
+         res_pjsip.c:ast_sip_push_task() does not provide one.
 
-       * res/res_pjsip_pubsub: Note that 'dialog' is also a valid event type for RLS
+         This is a simple way to ensure that all outgoing SIP request messages are
+         processed under a serializer.  Otherwise, any place where a pushed task is
+         done that would result in an outgoing out-of-dialog request would need to
+         be modified to supply a serializer.  Serializers from the default
+         serializer pool are picked in a round robin sequence for simplicity.
 
-         In addition to specifying lists of 'presence' and 'message-summary',
-         users can also create lists of type 'dialog'. These should be treated in
-         the same fashion as 'presence'.
+         A side effect is that the default serializer pool will limit the growth of
+         the thread pool from random tasks.  This is not necessarily a bad thing.
 
-         Change-Id: I583bb69cd9f88b0b29bf09ddaddeac4e84189f6e
+         * Made pjsip_distributor.c save the thread's serializer name on the
+         outgoing request tdata struct so the response can be processed under the
+         same serializer.
 
-2015-05-22 12:18 +0000 [7950b65e4f]  Matt Jordan <mjordan@digium.com>
+         This is a cherry-pick from master.
 
-       * res/res_pjsip_exten_state: Fix confusing NOTICE message
+         **** ASTERISK-25115 Change-Id: Iea71c16ce1132017b5791635e198b8c27973f40a
 
-         When a SUBSCRIBE request is made to a dialplan hint that doesn't exist,
-         the current NOTICE message informing users of this swaps the context and
-         extension parameters. This can cause a bit of confusion.
+         NOTE: session_inv_on_state_changed() is disassociating the dialog from the
+         session when the invite dialog becomes PJSIP_INV_STATE_DISCONNECTED.
+         Unfortunately this is a tad too soon because our BYE request transaction
+         has not completed yet.
 
-         Thanks to CptBurger in #asterisk for helping to point this out.
+         ASTERISK-25183 #close
+         Reported by: Matt Jordan
 
-         Change-Id: Ie584d1a58ae217385c87a450ca25b55ca0e36e43
+         Change-Id: I8bad0ae1daf18d75b8c9e55874244b7962df2d0a
 
-2015-05-17 20:36 +0000 [5ac65ddfb4]  Matt Jordan <mjordan@digium.com>
+2015-07-04 18:22 +0000 [55137c3d12]  Joshua Colp <jcolp@digium.com>
 
-       * res/ari: Register Stasis application on WebSocket attempt
+       * res/res_http_websocket: Don't send HTTP response fragmented.
 
-         Prior to this patch, when a WebSocket connection is made, ARI would not
-         be informed of the connection until after the WebSocket layer had
-         accepted the connection. This created a brief race condition where the
-         ARI client would be notified that it was connected, a channel would be
-         sent into the Stasis dialplan application, but ARI would not yet have
-         registered the Stasis application presented in the HTTP request that
-         established the WebSocket.
+         This change makes it so that when accepting a WebSocket
+         connection the HTTP response is sent as one packet instead of
+         fragmented. Browsers don't like it when you send it fragmented.
 
-         This patch resolves this issue by doing the following:
-          * When a WebSocket attempt is made, a callback is made into the ARI
-            application layer, which verifies and registers the apps presented in
-            the HTTP request. Because we do not yet have a WebSocket, we cannot
-            have an event session for the corresponding applications. Some
-            defensive checks were thus added to make the application objects
-            tolerant to a NULL event session.
-          * When a WebSocket connection is made, the registered application is
-            updated with the newly created event session that wraps the WebSocket
-            connection.
+         ASTERISK-25103
 
-         ASTERISK-24988 #close
-         Reported by: Joshua Colp
+         Change-Id: I9b82c4ec2949b0bce692ad0bf6f7cea9709e7f69
 
-         Change-Id: Ia5dc60dc2b6bee76cd5aff0f69dd53b36e83f636
+2015-06-27 18:47 +0000 [49f81ddb85]  Matt Jordan <mjordan@digium.com>
 
-2015-05-20 11:11 +0000 [60e2fbfe62]  gtjoseph <george.joseph@fairview5.com>
+       * Makefile: Remove coverage files on 'make clean'
 
-       * res_pjsip: Refactor endpt_send_transaction (qualify_timeout)
+         This patch updates a variety of Makefiles in Asterisk's build system to
+         remove .gcda and .gcno files when 'make clean' is executed. These files
+         are generated when '--enable-coverage' is passed to the Asterisk
+         configure script.
 
-         This patch refactors the transaction timeout processing to eliminate
-         calling the lower level public pjsip functions and reverts to calling
-         pjsip_endpt_send_request again.  This is the result of me noticing
-         a possible incompatibility with pjproject-2.4 which was causing
-         contact status flapping.
+         Change-Id: Ib70b41eea2ee2908885bff02e80faf9f40c84602
 
-         The original version of this feature used the lower level calls to
-         get access to the tsx structure in order to cancel the transaction
-         when our own timer expires. Since we no longer have that access,
-         if our own timer expires before the pjsip timer, we call the callbacks
-         and just let the pjsip transaction take it's own course.  When the
-         transaction ends, it discovers the callbacks have already been run
-         and just cleans itself up.
+2015-07-02 09:08 +0000 [e0f565663b]  Walter Doekes <walter+asterisk@wjd.nu>
 
-         A few messages in pjsip_configuration were also added/cleaned up.
+       * chan_sip: Fix early call pickup channel leak.
 
-         ASTERISK-25105 #close
+         When handle_invite_replaces() was called, and either ast_bridge_impart()
+         failed or there was no bridge (because the channel we're picking up was
+         still ringing), chan_sip would leak a channel.
 
-         Change-Id: I0810f3999cf63f3a72607bbecac36af0a957f33e
-         Reported-by: George Joseph <george.joseph@fairview5.com>
-         Tested-by: George Joseph <george.joseph@fairview5.com>
-2015-05-20 00:45 +0000 [42476e6633]  demon-ru <serov.d.p@gmail.com>
+         Thanks Matt and Corey for checking the bridge path.
 
-       * res_pjsip_outbound_registration: Check request URI for line.
+         ASTERISK-25226 #close
 
-         When an inbound call is received the To header is checked
-         for the "line" option. Some remote servers will place this
-         in the request URI instead. This adds an additional check for
-         the option in the request URI.
+         Change-Id: Ie736bb182170a73eef5bcef0ab0376f645c260c8
 
-         ASTERISK-25072 #close
-         Reported by: Dmitriy Serov
+2015-07-02 06:19 +0000 [a5a262be78]  Walter Doekes <walter+asterisk@wjd.nu>
 
-         Change-Id: Id4e44debbb80baad623b914a88574371575353c8
+       * chan_mgcp: Don't call close on fd -1.
 
-2015-05-21 17:51 +0000 [e7edb59db6]  Corey Farrell <git@cfware.com>
+         ASTERISK-25220 #close
 
-       * res_mwi_external_ami: Use module version of AMI registration.
+         Change-Id: Ic48f3a82f51ada87f2fb0e016c9efe0ad56f1ee3
 
-         Use ast_manager_register_xml for res_mwi_external_ami manager
-         actions.  This ensures the module is held open while any of
-         the actions are being run.
+2015-07-02 06:10 +0000 [b835312b4c]  Walter Doekes <walter+asterisk@wjd.nu>
 
-         ASTERISK-25117 #close
-         Reported by: Corey Farrell
+       * rtp_engine: Skip useless self-assignment in ast_rtp_engine_unload_format.
 
-         Change-Id: Iececfdc2da498b2c32b9e09042f5f12292007ac7
-2015-05-21 19:59 +0000  Asterisk Development Team <asteriskteam@digium.com>
+         When running valgrind on Asterisk, it complained about:
 
-       * asterisk 13.4.0-rc1 Released.
+             ==32423== Source and destination overlap in memcpy(0x85a920, 0x85a920, 304)
+             ==32423==    at 0x4C2F71C: memcpy@@GLIBC_2.14 (in /usr/lib/valgrind/...)
+             ==32423==    by 0x55BA91: ast_rtp_engine_unload_format (rtp_engine.c:2292)
+             ==32423==    by 0x4EEFB7: ast_format_attr_unreg_interface (format.c:1437)
 
-2015-05-21 14:56 +0000 [3fb2b375fe]  Matt Jordan <mjordan@digium.com>
+         The code in question is a struct assignment, which may be performed by
+         memcpy as a compiler optimization. It is changed to only copy the struct
+         contents if source and destination are different.
 
-       * Release summaries: Remove previous versions
+         ASTERISK-25219 #close
 
-2015-05-21 14:56 +0000 [9d9ae03842]  Matt Jordan <mjordan@digium.com>
+         Change-Id: I6d3546c326b03378ca8e9b8cefd41c16e0088b9a
 
-       * .version: Update for 13.4.0-rc1
+2015-07-02 05:16 +0000 [6551e16e03]  Walter Doekes <walter+asterisk@wjd.nu>
 
-2015-05-21 14:56 +0000 [53a39083e5]  Matt Jordan <mjordan@digium.com>
+       * astfd: Fix buffer overflow in DEBUG_FD_LEAKS.
 
-       * .lastclean: Update for 13.4.0-rc1
+         If DEBUG_FD_LEAKS was used and more file descriptors than the default of
+         1024 were available, some DEBUG_FD_LEAKS-patched functions would
+         overwrite memory past the fixed-size (1024) fdleaks buffer.
 
-2015-05-21 14:56 +0000 [7af8ef9346]  Matt Jordan <mjordan@digium.com>
+         This change:
+         - adds bounds checks to __ast_fdleak_fopen and __ast_fdleak_pipe
+         - consistently uses ARRAY_LEN() instead of sizeof() or 1023 or 1024
+         - stores pointers to constants instead of copying the contents
+         - reorders the fdleaks struct for possibly tighter packing
+         - adds a tiny bit of documentation
 
-       * realtime: Add database scripts for 13.4.0-rc1
+         ASTERISK-25212 #close
 
-2015-05-21 14:52 +0000 [20982c68d4]  Matt Jordan <mjordan@digium.com>
+         Change-Id: Iacb69e7701c0f0a113786bd946cea5b6335a85e5
 
-       * Release summaries: Correct summaries for 13.4.0-rc1
+2015-07-02 04:57 +0000 [f4dd9560cf]  Walter Doekes <walter+asterisk@wjd.nu>
 
-2015-05-21 13:17 +0000 [1bb62b037f]  mjordan <mjordan@lunkwill>
+       * res_timing: Don't close FD 0 when out of open files.
 
-       * ChangeLog: Updated for 13.4.0-rc1
+         This fixes so a failure to get a timer file descriptor does not cascade
+         to closing FD 0.
 
-2015-05-21 13:17 +0000 [1e98a36699]  mjordan <mjordan@lunkwill>
+         On error, both res_timing_kqueue and res_timing_timerfd would call the
+         destructor before setting the file handle. The file handle had been
+         initialized to 0, causing FD 0 to be closed. This in turn, resulted in
+         floods of "CLI>" messages and an unusable terminal.
 
-       * Release summaries: Add summaries for 13.4.0-rc1
+         ASTERISK-19277 #close
+         Reported by: Barry Chern
 
-2015-05-21 13:15 +0000 [5c12e5ba72]  mjordan <mjordan@lunkwill>
+         For the 13 branch, this was already fixed. This patch only ensures that
+         we do not attempt to close a negative file descriptor.
 
-       * .version: Update for 13.4.0-rc1
+         Change-Id: I147d7e33726c6e5a2751928d56561494f5800350
 
-2015-05-21 13:15 +0000 [69292a9f11]  mjordan <mjordan@lunkwill>
+2015-07-01 17:25 +0000 [78a1f4aa46]  Richard Mudgett <rmudgett@digium.com>
 
-       * .lastclean: Update for 13.4.0-rc1
+       * chan_vpb.cc: Fix compiler warning Jenkins found.
 
-2015-05-21 13:15 +0000 [628680803a]  mjordan <mjordan@lunkwill>
+         Change-Id: I0ec7fd10d56d90d5a60b12b5a7d6807f265ac5e0
 
-       * realtime: Add database scripts for 13.4.0-rc1
+2015-07-01 13:34 +0000 [6b16fbfc22]  Scott Griepentrog <scott@griepentrog.com>
 
-2015-05-21 13:05 +0000 [9d8a462356]  Matt Jordan <mjordan@digium.com>
+       * Channel alert pipe: improve diagnostic error return
 
-       * ARI: Update version to 1.7.0
+         When a frame is queued on a channel, any failure in
+         ast_channel_alert_write is logged along with errno.
 
-         This patch updates the version of ARI to 1.7.0 to reflect the backwards
-         compatible changes that will be introduced in 13.4.0.
+         This change improves the diagnostic message through
+         aligning the errno value with actual failure cases.
 
-         Change-Id: I6c36e6144da426412f25828a868e4df916bff60a
+         ASTERISK-25224
+         Reported by: Andrey Biglari
 
-2015-05-21 07:22 +0000 [620054c527]  Matt Jordan <mjordan@digium.com>
+         Change-Id: I1bf7b3337ad392789a9f02c650589cd065d20b5b
 
-       * Merge "audiohook.c: Difference in read/write rates caused continuous buffer resets" into 13
-2015-05-21 07:21 +0000 [f5e195b44e]  Matt Jordan <mjordan@digium.com>
+2015-07-01 16:04 +0000 [8e07ab145d]  Matt Jordan <mjordan@digium.com>
 
-       * Merge "Logger: Reset defaults before processing config." into 13
-2015-05-21 07:20 +0000 [e8a4e01c32]  Matt Jordan <mjordan@digium.com>
+       * sorcery/realtime: Add a bit of debug and warning messages for bad configs
 
-       * Merge "res/res_http_websocket: Add a pre-session established callback" into 13
-2015-05-21 05:15 +0000 [3c98544543]  Joshua Colp <jcolp@digium.com>
+         When a mapping does not exist between a sorcery.conf defined object and
+         a realtime mapping in extconf, currently, the user will receive a slew
+         of ERROR messages that don't really tell what is happening. Some ERROR
+         messages may even be misleading, as they occur after the sorcery API has
+         already given up on the attempt to load and create the sorcery object.
 
-       * Merge "main/sdp_srtp.c: allow SDP crypto tag to be up to 9 digits" into 13
-2015-05-20 20:53 +0000 [9b6e228419]  Corey Farrell <git@cfware.com>
+         This patch adds a bit of debug and a useful WARNING message for when a
+         wizard's open callback fails for a particular object type. In the bad
+         configurations that resulted in this patch, this provided a 'root cause'
+         WARNING message that pointed in the right direction of the configuration
+         problem.
 
-       * Logger: Reset defaults before processing config.
+         Change-Id: I1cc7344f2b015b8b9c85a7e6ebc8cb4753a8f80b
+2015-06-29 12:45 +0000 [156395e743]  Mark Michelson <mmichelson@digium.com>
 
-         Reset options to default values before reloading config.  This ensures
-         that if a setting is removed or commented out of the configuration file
-         it is unset on reload.
+       * res_sorcery_realtime: Fix leak of sorcery object type.
 
-         ASTERISK-25112 #close
-         Reported by: Corey Farrell
+         This prevents a leak of a sorcery object type when realtime sorcery
+         objects are retrieved by fields or when multiple objects are retrieved.
 
-         Change-Id: Id24bb1fb0885c2c14cf8bd6f69a0c2ee7cd6c5bd
+         The extent of this leak is that sorcery object types would be leaked.
+         These are allocated whenever an object type is registered with sorcery,
+         meaning that on module shutdown, these objects would be leaked. This
+         could be problematic if many reloads were performed, but it is not as
+         severe as if every sorcery object retrieved from realtime were being
+         leaked.
 
-2015-05-20 19:05 +0000 [7fcf0a97b8]  George Joseph <george.joseph@fairview5.com>
+         ASTERISK-25165 #close
+         Reported by Corey Farrell
 
-       * app_playback: Suppress warnings on playback if channel hung up
+         Change-Id: I625c3b50eee4576670b7eeb013c81ad043b4b4f8
 
-         If a channel hangs up while an audio file is playing, there's
-         no need to clutter up the logs with a warning so suppress it
-         if ast_check_hangup returns true.
+2015-06-26 22:02 +0000 [a5e9c4e9b2]  Matt Jordan <mjordan@digium.com>
 
-         Also, change warning to debug/2 in file.c if writing a frame
-         fails.  Same reasoning.
+       * res/res_corosync: Always decline module load, instead of failing
 
-         Change-Id: I2e66191af3c5b6e951c98e8f1c3fe3cf2cf7ed89
-         Reported-by: George Joseph <george.joseph@fairview5.com>
-         Tested-by: George Joseph <george.joseph@fairview5.com>
+         Returns a 'failure' from the module load routine indicates to Asterisk
+         that it should abort loading completely. This is rarely - in fact,
+         really, never - a good option. Aborting load of Asterisk from a dynamic
+         module implies that the core, and the rest of the dynamic modules, don't
+         matter: we should abandon all processing.
 
-2015-05-14 15:21 +0000 [b1e8c0b9eb]  Kevin Harwell <kharwell@digium.com>
+         res_corosync is really not that important.
 
-       * audiohook.c: Difference in read/write rates caused continuous buffer resets
+         This patch updates the module such that, if it fails to load, it
+         politely declines (emitting ERROR messages along the way), and allows
+         Asterisk to continue to function.
 
-         Currently, everytime a sample rate change occurs (on read or write) the
-         associated factory buffers are reset. If the requested sample rate on a
-         read differed from that of a write then the buffers are continually reset
-         on every read and write. This has the side effect of emptying the buffer,
-         thus there being no data to read and then write to a file in the case of
-         call recording.
+         Note that this issue was keeping Asterisk unit tests from running on
+         certain build agents.
 
-         This patch fixes it so that an audiohook_list's rate always maintains the
-         maximum sample rate among hooks and formats. Audiohook sample rates are
-         only overwritten by this value when slin native compatibility is turned on.
-         Also, the audiohook sample rate can only overwrite the list's sample rate
-         when its rate is greater than that of the list or if compatibility is
-         turned off. This keeps the rate from constantly switching/resetting.
+         Change-Id: I252249e81fb9b1a68e0da873f54f47e21d648f0f
 
-         ASTERISK-24944 #close
-         Reported by: Ronald Raikes
+2015-06-26 20:38 +0000 [399cd8bcd9]  Matt Jordan <mjordan@digium.com>
 
-         Change-Id: Idab4dfef068a7922c09cc631dda27bc920a6c76f
+       * main/pbx: Resolve case sensitivity regression in PBX hints
 
-2015-05-20 15:22 +0000 [4a450f863b]  Matt Jordan <mjordan@digium.com>
+         When 8297136f was merged for ASTERISK-25040, a regression was introduced
+         surrounding the case sensitivity of device names within hints.
+         Previously, device names - such as 'sip/foo' - were compared in a case
+         insensitive fashion. Thus, 'sip/foo' was equivalent to 'SIP/foo'. After
+         that patch, only the case sensitive name would match, i.e., 'SIP/foo'.
+         As a result, some dialplan hints stopped working.
 
-       * Merge "Fix potential crash after unload of func_periodic_hook or test_message." into 13
-2015-05-19 13:01 +0000 [17d6ede337]  Corey Edwards <tensai@zmonkey.org>
+         This patch re-introduces case insensitive matching for device names in
+         hints.
 
-       * main/sdp_srtp.c: allow SDP crypto tag to be up to 9 digits
+         ASTERISK-25040
 
-         ASTERISK-24887 #close
-         Reported by: Makoto Dei
-         Tested by: tensai
+         ASTERISK-25202 #close
 
-         Change-Id: I6a96f572adb17f76b3acafe503a01c48eb5dd9bf
+         Change-Id: If5046a7d14097e1e3c12b63092b9584bb1e9cb4c
+         (cherry picked from commit 96bbcf495a1da9e607d9b04a44b5c4f49e83cc03)
 
-2015-05-13 09:55 +0000 [31cc24aad6]  Matt Jordan <mjordan@digium.com>
+2015-06-26 16:12 +0000 [24eec5a10b]  Mark Michelson <mmichelson@digium.com>
 
-       * res/res_http_websocket: Add a pre-session established callback
+       * res_pjsip_nat: Adjust when contact should be rewritten.
 
-         This patch updates http_websocket and its corresponding implementation
-         with a pre-session established callback. This callback allows for
-         WebSocket server consumers to be notified when a WebSocket connection is
-         attempted, but before we accept it. Consumers can choose to reject the
-         connection, if their application specific logic allows for it.
+         A previous change made the contact only get rewritten if the dialog's
+         route set was not marked frozen. Unfortunately, while the intent of this
+         is correct, the dialog's route set actually gets marked as frozen
+         earlier than expected, especially for UAS dialogs.
 
-         As a result, this patch pulls out the previously private
-         websocket_protocol struct and makes it public, as
-         ast_websocket_protocol. In order to preserve backwards compatibility
-         with existing modules, the existing APIs were left as-is, and new APIs
-         were added for the creation of the ast_websocket_protocol as well as for
-         adding a sub-protocol to a WebSocket server.
+         Instead, the idea is that the contact needs to not be rewritten if there
+         is a pre-existing route set on the dialog. This is now accomplished by
+         checking the dialog's route set list instead of checking if the route
+         set is frozen.
 
-         In particular, the following new API calls were added:
-         * ast_websocket_add_protocol2 - add a protocol to the core WebSocket
-           server
-         * ast_websocket_server_add_protocol2 - add a protocol to a specific
-           WebSocket server
-         * ast_websocket_sub_protocol_alloc - allocate a sub-protocol object.
-           Consumers can populate this with whatever callbacks they wish to
-           support, then add it to the core server or a specified server.
+         Doing this causes some broken tests to begin passing again.
 
-         ASTERISK-24988
-         Reported by: Joshua Colp
+         ASTERISK-25196
+         Reported by Mark Michelson
 
-         Change-Id: Ibe0bbb30c17eec6b578071bdbd197c911b620ab2
+         Change-Id: I525ab251fd40a52ede327a52a2810a56deb0529e
 
-2015-05-14 22:05 +0000 [f9114179e6]  snuffy <snuffy22@gmail.com>
+2015-06-19 18:27 +0000 [0ec461a637]  Richard Mudgett <rmudgett@digium.com>
 
-       * chan_pjsip: Fix crash during off-nominal when no endpoint specified.
+       * res_pjsip_outbound_registration.c: Add a serializer shutdown group.
 
-         Add missing return -1 when no endpoint name is specified.
+         The client_state objects contain a serializer used to send the outbound
+         REGISTER messages.  Once all those message transactions are complete then
+         the module can shutdown.
 
-         ASTERISK-25086 #close
-         Reported by: snuffy
+         ASTERISK-24907 #close
+         Reported by: Kevin Harwell
 
-         Change-Id: I9de76c2935a1f4e3f0cffe97a670106f5605e89e
-2015-05-14 18:01 +0000 [dd78ab42e4]  George Joseph <george.joseph@fairview5.com>
+         Change-Id: Ibb2fe558f98190f2a06da830e0fadfa25516f547
 
-       * res_pjsip_config_wizard/config: Fix template processing
+2015-06-26 10:41 +0000 [05a2cc1293]  Mark Michelson <mmichelson@digium.com>
 
-         The config wizard was always pulling the first occurrence of
-         a variable from an ast_variable list but this gets the template
-         value from the list instead of any overridden value.  This patch
-         creates ast_variable_find_last_in_list() in config.c and updates
-         res_pjsip_config_wizard to use it instead of
-         ast_variable_find_in_list.  Now the overridden values, where they
-         exist, are used instead of template variables.
+       * res_pjsip_refer: Prevent sending duplicate headers.
 
-         Updated test_config to test the new API.
+         res_pjsip_refer will attempt to add Referred-By or Replaces headers to
+         outbound INVITEs at times. If the INVITE gets challenged for
+         authentication, then we will resend the INVITE. Prior to this patch, the
+         Referred-By or Replaces header would be re-added to the outbound INVITE,
+         resulting in duplicated headers.
 
-         ASTERISK-25089 #close
+         ASTERISK-25204 #close
+         Reported by Mark Michelson
 
-         Reported-by: George Joseph <george.joseph@fairview5.com>
-         Tested-by: George Joseph <george.joseph@fairview5.com>
-         Change-Id: Ifa7ddefc956a463923ee6839dd1ebe021c299de4
+         Change-Id: I59fb5c08b4d253c0dba9ee3d3950b5025358222d
 
-2015-05-15 01:54 +0000 [091b436007]  snuffy <snuffy22@gmail.com>
+2015-06-23 17:43 +0000 [028fa54620]  Mark Michelson <mmichelson@digium.com>
 
-       * cdr: Fix 'core show channel' CDR variable truncation.
+       * res_pjsip_nat: Rewrite route set when required.
 
-         When the new Bridging API was implemented, the workspace variable
-         changed to a malloc'd string, causing sizeof() to always be 8 (char).
+         When performing some provider testing, the rewrite_contact option was
+         interfering with proper construction of a route set when sending an ACK
+         after receiving a 200 OK response to an INVITE.
 
-         Revert back to stored on stack string for workspace.
+         The initial INVITE was sent to address sip:foo. The 200 OK had a Contact
+         header with URI sip:bar. In addition, the 200 OK had Record-Route
+         headers for sip:baz and sip:foo, in that order. Since the Record-Route
+         headers had the lr parameter, the result should have been:
 
-         ASTERISK-25090 #close
+         * Set R-URI of the ACK to sip:bar.
+         * Add Route headers for sip:foo and sip:baz, in that order.
 
-         Change-Id: I51e610ae87371df771ce7693a955510efb90f8f7
-2015-05-14 15:20 +0000 [8697a49ef9]  Joshua Colp <jcolp@digium.com>
+         However, the rewrite_contact option resulted in our rewriting the
+         Contact header on the 200 OK to sip:foo. The result was:
 
-       * Merge "sorcery: Add API to insert/remove a wizard to/from an object type's list" into 13
-2015-05-14 15:19 +0000 [aea349a87e]  Joshua Colp <jcolp@digium.com>
+         * R-URI remained sip:foo.
+         * We added Route headers for sip:foo and sip:baz, in that order.
 
-       * Merge "Message.c: Clear message channel frames on cleanup" into 13
-2015-05-14 00:06 +0000 [6b7282ca40]  Corey Farrell <git@cfware.com>
+         The result was that sip:bar was not indicated in the ACK at all, so the
+         far end never received our ACK. The call eventually dropped.
 
-       * Fix potential crash after unload of func_periodic_hook or test_message.
+         The intention of rewrite_contact is to rewrite the most immediate
+         destination of our SIP request to be the same address on which we
+         received a request or response. In the case of processing a SIP response
+         with Record-Route headers, this means that instead of rewriting the
+         Contact header, we should instead rewrite the bottom-most Record-Route
+         header. In the case of processing a SIP request with Record-Route
+         headers, this means we rewrite the top-most Record-route header.
+         Like when we rewrite the Contact header, we also ensure to update
+         the dialog's route set if it exists.
 
-         These modules save a pointer to the context they create on load, and
-         use that pointer to destroy the context at unload.  It is not safe
-         to save this pointer, it is replaced during load of pbx_config,
-         pbx_lua or pbx_ael.
+         ASTERISK-25196 #close
+         Reported by Mark Michelson
 
-         This change causes the modules to pass NULL to ast_context_destroy,
-         a safer way to perform the unregistration since it does not use
-         a pointer that could become invalid.
+         Change-Id: I9702157c3603a2d0bd8a8215ac27564d366b666f
+2015-06-19 16:16 +0000 [84c12f9e0c]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25085 #close
-         Reported by: Corey Farrell
+       * threadpool, res_pjsip: Add serializer group shutdown API calls.
 
-         Change-Id: I6a00ec8e38046058f97dc703e1adcde9bf517835
-2015-05-14 05:02 +0000 [8f8d54a18e]  Joshua Colp <jcolp@digium.com>
+         A module trying to unload needs to wait for all serializers it creates and
+         uses to complete processing before unloading.
 
-       * Merge "main/manager.c: Bugfix sort action_manager by alphabetically" into 13
-2015-05-13 15:41 +0000 [02c5130589]  Jonathan Rose <jrose@digium.com>
+         ASTERISK-24907
+         Reported by: Kevin Harwell
 
-       * Message.c: Clear message channel frames on cleanup
+         Change-Id: I8c80b90f2f82754e8dbb02ddf3c9121e5e966059
 
-         The message channel is a special channel that doesn't actually process frames.
-         However, certain actions can cause frames to be placed in the channel's read
-         queue including the Hangup application which is called on the channel after
-         each message is processed. Since the channel will continually be reused for
-         many messages, it's necessary to flush these frames at some point.
+2015-06-16 15:06 +0000 [602c4b74b5]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-25083 #close
-         Reported by: Jonathan Rose
+       * res_pjsip_outbound_registration.c: Fix handle_client_state_destruction() refs
 
-         Change-Id: Idf18df73ccd8c220be38743335b5c79c2a4c0d0f
+         * handle_client_state_destruction() must always be passed a ref to
+         client_state because it will always unref client_state.
+         handle_registration_response() was not passing a client_state ref.
 
-2015-05-13 15:44 +0000 [586da882bc]  Joshua Colp <jcolp@digium.com>
+         * Made the final un-REGISTER message get sent normally using the pjproject
+         register control structure in handle_client_state_destruction().  The
+         previous code attempted to short circuit the response handling for the
+         module to unload.  That doesn't work for a couple reasons.  One,
+         pjsip_regc_send() may call the registered callback before it returns and
+         unbalance the client_state ref count.  Two, the registered callback
+         handles any authentication for the un-REGISTER message.
 
-       * Merge "app_voicemail: fix moving when old messages full" into 13
-2015-05-12 17:45 +0000 [d49d64b79c]  Jonathan Rose <jrose@digium.com>
+         * Made the distinction between internal registration state and external
+         registration status with sip_outbound_registration_status_str().  This is
+         necessary to avoid altering documented AMI messages with internal
+         changes.
 
-       * app_voicemail: fix moving when old messages full
+         * Removed references to client_state->client outside of the serializer
+         thread.  When handle_client_state_destruction() destroys the pjproject
+         register control structure that memory is freed and cannot be referenced
+         anymore.  These accesses were to provide information for debug and
+         off-nominal warning messages.
 
-         When completing voicemail playback of a message in the 'INBOX', the
-         message gets moved to the 'Old' messages folder. Without this patch, if
-         the 'Old' folder is already at its set limit, then the 'INBOX' message will
-         simply be deleted. With this patch, the flag to delete the message will be
-         removed if the save_to_folder function indicates that the message could
-         not be moved due to a full folder.
+         * In sip_outbound_registration_timer_cb() you should not access entry->id
+         after unrefing client_state because the passed in entry is normally
+         pointing to the timer entry in the client_state object.
 
-         ASTERISK-25082 #close
-         Reported by: Jonathan Rose
-         Review: https://gerrit.asterisk.org/#/c/448/
+         ASTERISK-24907
+         Reported by: Kevin Harwell
 
-         Change-Id: I2be440a09f42e2d06d50975c40d1ad7f836ecb3f
-2015-05-13 14:20 +0000 [51478575e4]  Joshua Colp <jcolp@digium.com>
+         Change-Id: Ia7b446d8644b6b4550ef5bea49527671de65183f
 
-       * Merge "General: Fix recent menuselect-related cross compile regression" into 13
-2015-05-13 12:26 +0000 [5fcaf727cc]  Joshua Colp <jcolp@digium.com>
+2015-06-15 15:28 +0000 [8c6a95a9ac]  Richard Mudgett <rmudgett@digium.com>
 
-       * Merge "res_config_mysql: Fix broken column type checking" into 13
-2015-05-13 12:24 +0000 [6a12b0634b]  Joshua Colp <jcolp@digium.com>
+       * res_pjsip_outbound_registration.c: Use ast_sorcery_object_unregister() API
 
-       * Merge "chan_dahdi/sig_pri: Fix crash on ISDN call hangup collision." into 13
-2015-05-04 20:11 +0000 [9b13536fed]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+         The sorcery pjsip 'registration' config object needs to be destroyed on
+         module unload.  Otherwise, a reload of res_pjsip could try to use
+         callbacks for a previously unloaded instance of the module provided by
+         ast_sorcery_object_register() or one of the variants.  Also, if
+         res_pjsip_outbound_registration were subsequently reloaded, the sorcery
+         config field objects would be registered in sorcery twice.
 
-       * main/manager.c: Bugfix sort action_manager by alphabetically
+         ASTERISK-24907
+         Reported by: Kevin Harwell
 
-         Fix the alphabetic order added on ast_manager_register_struct. The order
-         for struct manager_action added is not working, this change fixes the
-         problem.
+         Change-Id: I304fad13dece2604af48353f6c6d9d5c7b064697
 
-         Change-Id: I149da0cd06c3c4445d7516cc303358e9f26f8b4b
+2015-06-25 06:42 +0000 [e4a2ef9e4e]  Joshua Colp <jcolp@digium.com>
 
-2015-05-08 18:01 +0000 [e67e8d5c7f]  Alexandre Fournier <alexandre.fournier@kiplink.fr>
+       * channel: Remove ignore of answer on non-outgoing channels.
 
-       * res_config_mysql: Fix broken column type checking
+         Due to the way that channels can now be moved around inside of
+         Asterisk it is possible for the outgoing flag of a channel to get
+         cleared before it has been answered. This results in the bridge
+         not receiving notification that the outgoing leg has been answered.
 
-         MySQL configuration engine contains a bug in require_mysql(). This
-         function is used for column type checking in tables. This bug only
-         affects DATETIME, DATE and FLOAT types.
+         This most easily exhibits itself with DTMF based blond transfers.
+         Since the answer of the outgoing leg is ignored the other party
+         continues to receive both a locally generated ringing and the
+         media stream of the outgoing leg upon its answer. This results
+         in no media being heard.
 
-         It came from mixing the first condition (switch-case-like
-         if/then/else), to check the expected column type, with the second
-         condition, to check the actual column type against the expected column
-         type. Both conditions must be checked separately in order to avoid the
-         execution of the wrong block.
+         This change removes the ignore of the answer and allows it
+         to pass through.
 
-         ASTERISK-18252 #comment This patch might fix the issue
-         Reported by: Gareth Blades
+         ASTERISK-25171 #close
 
-         ASTERISK-25041 #close
-         Reported by: Alexandre Fournier
-         Tested by: Alexandre Fournier
+         Change-Id: I82aedcec4f89f34a2e5472086dfc9a6c775bca8e
 
-         Change-Id: I0b8bf7e68ab938be8e6525a249260cb648cb0bfa
+2015-06-15 15:28 +0000 [20f3d77ab9]  Richard Mudgett <rmudgett@digium.com>
 
-2015-05-10 07:37 +0000 [16f602f5c2]  Yousf Ateya <y.ateya@starkbits.com>
+       * sorcery: Add ast_sorcery_object_unregister() API call.
 
-       * res_rtp_asterisk: Correction for the limit which detects that a packet is DTLS.
+         Find and unlink the specified sorcery object type to complement
+         ast_sorcery_object_register().  Without this function you cannot
+         completely unload individual modules that use sorcery for configuration.
 
-         First byte of DTLS packet shall be in range 20-63, not 20-64. Refer to RFC
-         https://tools.ietf.org/html/rfc5764#section-5.1.2 for correct values.
+         ASTERISK-24907
+         Reported by: Kevin Harwell
 
-         Change-Id: Iae6fa0d72b37c36a27fe40686e0ae6fba3afec31
+         Change-Id: I1c04634fe9a90921bf676725c7d6bb2aeaab1c88
 
-2015-05-13 04:35 +0000 [62422712f7]  Joshua Colp <jcolp@digium.com>
+2015-06-15 13:38 +0000 [4313f32969]  Richard Mudgett <rmudgett@digium.com>
 
-       * Merge "cdr_pgsql: Use PQescapeStringConn for escaping names." into 13
-2015-05-12 17:34 +0000 [c780b6e431]  Richard Mudgett <rmudgett@digium.com>
+       * res_pjsip_outbound_registration.c: Reorder load_module() and unload_module().
 
-       * chan_dahdi/sig_pri: Fix crash on ISDN call hangup collision.
+         It is best if the loading code creates and initializes the module's
+         infrastructure before letting the system know of its existence.  The
+         unloading code needs to reverse the actions of the loading code and in the
+         reverse order.
 
-         If an ISDN call is hungup by both sides at the same time a crash could
-         happen.
+         ASTERISK-24907
+         Reported by: Kevin Harwell
 
-         * Added missing NULL checks for the owner channel after calling
-         pri_queue_pvt_cause_data() in two places.  Code after those calls need to
-         check the owner channel pointer for NULL before use because
-         pri_queue_pvt_cause_data() needs to do deadlock avoidance to lock the
-         owner and the owner may get hung up.
+         Change-Id: I5d151383e9787b5b60aa5e1627b10f040acdded4
 
-         ASTERISK-21893 #close
-         Reported by:  Alexandr Gordeev
+2015-06-23 14:34 +0000 [890c923786]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Ica3e266ebc7a894b41d762326f08653e1904bb9a
+       * AMI: Add Linkedid to the standard channel snapshot AMI event headers.
 
-2015-05-10 02:26 +0000 [6627de830b]  Sebastian Kemper <sebastian_ml@gmx.net>
+         * The AMI version is bumped to 2.8.0.
 
-       * General: Fix recent menuselect-related cross compile regression
+         ASTERISK-25189 #close
+         Reported by: John Hardin
 
-         MAKE_MENUSELECT currently sets CC to CC, which is the compiler for the
-         target platform. But menuselect is to be run on the build system, so
-         BUILD_CC needs to be used instead - like it was in the past, before the
-         recent changes (https://reviewboard.asterisk.org/r/4370/). This is the
-         patch for ASTERISK-25074.
+         Change-Id: I2b1778c3fdc1dca0ed55db4e3a639eddfb16c2ac
 
-         ASTERISK-25074 #close
-         Reported by: Sebastian Kemper
-         Tested by: Sebastian Kemper
+2015-06-24 14:30 +0000 [2602a7484b]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I8a2b1fc5deb6ad2b80f49baca35b1b13d468ebf8
+       * test.c: Add unit test registration checks for summary and description.
 
-2015-05-05 15:32 +0000 [637c8f065e]  George Joseph <george.joseph@fairview5.com>
+         Added checks when a unit test is registered to see that the summary and
+         description strings do not end with a new-line '\n' for consistency.
 
-       * sorcery: Add API to insert/remove a wizard to/from an object type's list
+         The check generates a warning message and will cause the
+         /main/test/registrations unit test to fail.
 
-         Currently you can 'apply' a wizard to an object type but the wizard
-         always goes at the end of the object type's wizard list.  This patch
-         adds a new ast_sorcery_insert_wizard_mapping function that allows
-         you to insert a wizard anyplace in the list.  I.E.  You could
-         add a caching wizard to an object type and place it before all
-         wizards.
+         * Updated struct ast_test_info member doxygen comments.
 
-         ast_sorcery_get_wizard_mapping_count and
-         ast_sorcery_get_wizard_mapping were added to allow examination
-         of the mapping list.
+         Change-Id: I295909b6bc013ed9b6882e85c05287082497534d
 
-         ast_sorcery_remove_mapping was added to remove a mapping by name.
+2015-06-24 14:39 +0000 [2b0482d699]  Richard Mudgett <rmudgett@digium.com>
 
-         As part of this patch, the object type's wizard list was converted
-         from an ao2_container to an AST_VECTOR_RW.
+       * Unit tests: Fix unit test description strings.
 
-         A new test was added to test_sorcery for this capability.
+         Analyzing the code shows that the unit test summary and description
+         strings should not end with a new-line character.  Where these strings are
+         used in the code a new-line is provided for output.
 
-         ASTERISK-25044 #close
+         Change-Id: I129284f5e7ca93d82532334076da4c462d3d9fba
 
-         Change-Id: I9d2469a9296b2698082c0989e25e6848dc403b57
+2015-06-23 11:21 +0000 [e99e654d75]  Joshua Colp <jcolp@digium.com>
 
-2015-05-12 01:31 +0000 [3cdb7950f0]  Corey Farrell <git@cfware.com>
+       * app_dial: Hold reference to calling channel formats when dialing outbound.
 
-       * Fix processing of asterisk.conf debug=yes.
+         Currently when requesting a channel the native formats of the
+         calling channel are provided to the core for usage when dialing
+         the outbound channel. This occurs without holding the channel lock
+         or keeping a reference to the formats. This is problematic as
+         the channel driver may end up changing the formats during this time.
+         In the case of chan_sip this happens when an SDP negotiation
+         completes.
 
-         The code which reads asterisk.conf supports processing the debug
-         option with ast_true, but ast_true returns -1.  This causes debug
-         to still be off, convert to 1 so debug will be on as requested.
+         This change makes it so app_dial keeps a reference to the native
+         formats of the calling channel which guarantees that they will
+         remain valid for the period of time needed.
 
-         ASTERISK-25042
-         Reported by: Corey Farrell
+         ASTERISK-25172 #close
 
-         Change-Id: I3c898b7d082d914b057e111b9357fde46bad9ed6
+         Change-Id: I2f0a67bd0d5d14c3bdbaae552b4b1613a283f0db
+2015-06-17 05:04 +0000 [80e82dc97f]  Joshua Colp <jcolp@digium.com>
 
-2015-05-01 23:43 +0000 [6553a00770]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+       * res_pjsip_mwi: Set up unsolicited MWI upon registration.
 
-       * cdr_pgsql: Use PQescapeStringConn for escaping names.
+         The res_pjsip_mwi previously required a reload to set up the proper
+         subscriptions to allow unsolicited MWI to work. This change
+         makes it so the act of registering will also cause this to occur.
+         This is particularly useful if realtime is involved as no reload
+         needs to occur within Asterisk to cause the MWI information
+         to get sent.
 
-         Use function PQescapeStringConn for escaping the name
-         of the table and schema instead of doing it manually.
+         ASTERISK-25180 #close
 
-         Change-Id: I6709165e2d00463e9c813d24f17830ad4910b599
+         Change-Id: Id847b47de4b8b3ab8858455ccc2f07b0f915f252
 
-2015-05-12 05:38 +0000 [8523a5ed09]  Joshua Colp <jcolp@digium.com>
+2015-06-22 15:11 +0000 [35a99b6394]  Kevin Harwell <kharwell@digium.com>
 
-       * Merge "vector:  Add REMOVE, ADD_SORTED and RESET macros" into 13
-2015-05-09 16:58 +0000 [ea917fefaf]  George Joseph <george.joseph@fairview5.com>
+       * bridge.c: Hangup attended transfer target if bridged
 
-       * vector:  Add REMOVE, ADD_SORTED and RESET macros
+         After completing an attended transfer the transfer target channel was not being
+         hung up after leaving the bridge. Added an explicit softhangup to hangup said
+         channel, but only if it was previously bridged.
 
-         Based on feedback from Corey Farrell and Y Ateya, a few new
-         macros have been added...
+         ASTERISK-24782 #close
+         Reported by: John Bigelow
 
-         AST_VECTOR_REMOVE which takes a parameter to indicate if
-         order should be preserved.
+         Change-Id: Idde9543d56842369384a5e8c00d72a22bbc39ada
 
-         AST_VECTOR_ADD_SORTED which adds an element to
-         a sorted vector.
+2015-06-17 16:23 +0000 [036bc0012f]  Richard Mudgett <rmudgett@digium.com>
 
-         AST_VECTOR_RESET which cleans all elements from the vector
-         leaving the storage intact.
+       * res_pjsip_outbound_registration.c: Add missing line endings to CLI commands
 
-         Change-Id: I41d32dbdf7137e0557134efeff9f9f1064b58d14
+         Change-Id: I39ae612746d892d2dbe86f3ff2d7027fa1da57f7
 
-2015-05-11 07:07 +0000 [d5864a358c]  Ivan Poddubny <ivan.poddubny@gmail.com>
+2015-06-12 14:29 +0000 [bec7435945]  Richard Mudgett <rmudgett@digium.com>
 
-       * pbx/pbx_spool: Fix issue when call files were executed too early
+       * res_pjsip_outbound_registration.c: Eliminate simple RAII_VAR() usage.
 
-         pbx_spool used to delete/move the call file upon successful outgoing
-         call completion, but did not delete it from in-memory list of files
-         (dirlist, used only when compiled with inotify/kqueue support).
-         That resulted in an extra attempt to process that filename after
-         retrytime seconds.
-         Then, if a new file with the same name appears that is scheduled
-         in future further than the completed one plus its retrytime,
-         then it gets executed earlier than expected.
+         Change-Id: I399cb9d61bbba706b48c98e0bf75e98984cd9a9e
 
-         This patch fixes remove_from_queue function to also remove the entry
-         from the dirlist.
+2015-06-12 13:33 +0000 [c2519fdf1c]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-17069 #close
-         Reported by: Jeremy Kister
+       * res_pjsip_outbound_registration.c: Misc code cleanups.
 
-         ASTERISK-24442 #close
-         Reported by: tootai
+         * Break some long lines.
 
-         Change-Id: If9ec9b88073661ce485d6b008fd0b2612e49a28b
+         * Fix doxygen comment.
 
-2015-05-08 14:47 +0000 [4dbd4021c9]  Rusty Newton <rnewton@digium.com>
+         Change-Id: I8f12ba6822f84d5e7bb575280270cd7e2fefb305
 
-       * configs/basic-pbx: Modified main IVR to play new Allison prompt.
+2015-06-22 09:26 +0000 [a419c69def]  Alexander Traud (License 6520)
 
-         The main IVR was playing demo-congrats. I've switched it over to the
-         basic-pbx-ivr-main file that we added in core sounds 1.4.27. This prompt
-         has Allison prompting the user with the actual IVR menu.
+       * chan_sip: Reload peer without its old capabilities.
 
-         ASTERISK-24892 #close
+         On reload, previously allowed codecs were not removed. Therefore, it was not
+         possible to remove codecs while Asterisk was running. Furthermore, newly added
+         codecs got appended behind the previous codecs. Therefore, it was not possible
+         to add a codec with a priority of #1. This change removes the old capabilities
+         before the current ones are added.
 
-         Change-Id: Ifb749616ff8e156a1031ddaddfcc9244767a095d
+         ASTERISK-25182 #close
+         Reported by: Alexander Traud
+         patches:
+          asterisk_13_allow_codec_reload.patch uploaded by Alexander Traud (License 6520)
 
-2015-05-08 15:55 +0000 [7111ba6df4]  Matt Jordan <mjordan@digium.com>
+         Change-Id: I62a06bcf15e08e8c54a35612195f97179ebe5802
 
-       * Merge "tcptls: Avoiding ERR_remove_state in OpenSSL." into 13
-2015-05-08 10:39 +0000 [613a461c3d]  Sean Bright <sean@malleable.com>
+2015-06-20 19:38 +0000 [74616ae43d]  Joshua Colp <jcolp@digium.com>
 
-       * res_rtp_asterisk: Issue ERROR if res_srtp is not found.
+       * chan_sip: Destroy peers without holding peers container lock.
 
-         While trying to get WebRTC working with chan_pjsip, I was running
-         into the following error:
+         Due to the use of stasis_unsubscribe_and_join in the peer destructor
+         it is possible for a deadlock to occur when an event callback is
+         occurring at the same time.
 
-             Attempted to set an invalid DTLS-SRTP configuration on RTP
-             instance...
+         This happens because the peer may be destroyed while holding the
+         peers container lock. If this occurs the event callback will never
+         be able to acquire the container lock and the unsubscribe will
+         never complete.
 
-         Josh helpfully pointed out that res_srtp.so might not be loaded, and
-         sure enough, it wasn't. This patch adds a ERROR indiciating as much
-         to hopefully help others having a similar problem.
+         This change makes it so the peers that have been removed from the
+         peers container are not destroyed with the container lock held.
 
-         Change-Id: I13aa477b47b299876728a21b130998a0ea6cd19f
+         ASTERISK-25163 #close
 
-2015-05-07 17:49 +0000 [394fcb5eab]  Rusty Newton <rnewton@digium.com>
+         Change-Id: Ic6bf1d9da4310142a4d196c45ddefb99317d9a33
 
-       * sounds: Add Swedish sounds to Makefile and XML
+2015-06-18 13:16 +0000 [9015bb4c8c]  Mark Michelson <mmichelson@digium.com>
 
-         Added the necessary lines to the Makefile and sounds.xml so we'll have the
-         Swedish sounds in all available formats in menuselect.
+       * Resolve race conditions involving Stasis bridges.
 
-         See also: Swedish sounds were added into the core sounds release 1.4.27.
+         This resolves two observed race conditions.
 
-         ASTERISK-24744 #close
+         First, a bit of background on what the Stasis application does:
 
-         Reported by: Tove Hjelm
-         Tested by: Rusty Newton
+         1a Creates a stasis_app_control structure. This structure is linked into
+            a global container and can be looked up using a channel's unique ID.
+         2a Puts the channel in an event loop. The event loop can exit either
+            because the stasis_app_control structure has been marked done, or
+            because of some other factor, such as a hangup. In the event loop, the
+            stasis_app_control determines if any specific ARI commands need to be
+            run on the channel and will run them from this thread.
+         3a Checks if the channel is bridged. If the channel is bridged, then
+            ast_bridge_depart() is called since channels that are added to Stasis
+            bridges are always imparted as departable.
+         4a Unlink the stasis_app_control from the container.
 
-         Change-Id: Ib6f4fd177afd1667b2402735034001d4d055a908
+         When an ARI command is received by Asterisk, the following occurs
+         1b A thread is spawned to handle the HTTP request
+         2b The stasis_app_control(s) that corresponds to the channel(s) in the
+            request is/are retrieved. If the stasis_app_control cannot be
+            retrieved, then it is assumed that the channel in question has exited
+            the Stasis app or perhaps was never in Stasis in the first place.
+         3b A command is queued onto the stasis_app_control, and the channel's
+            event loop thread is signaled to run the command.
+         4b While most ARI commands do nothing further, some, such as adding or
+            removing channels from a bridge, will block until the command they
+            issued has been completed by the channel's event loop.
 
-2015-05-08 09:54 +0000 [30c3b254c5]  Joshua Colp <jcolp@digium.com>
+         The first race condition that is solved by this patch involves a crash
+         that can occur due to faulty detection of the channel's bridged status
+         in step 3a. What can happen is that in step 2a, the event loop may run
+         the ast_bridge_impart() function to asynchronously place the channel
+         into a bridge, then immediately exit the event loop because the channel
+         has hung up. In step 3a, we would detect that the channel was not
+         bridged and would not call ast_bridge_depart(). The reason that the
+         channel did not appear to be bridged was that the depart_thread that is
+         spawned by ast_bridge_impart() had not yet started. That is the thread
+         where the channel is marked as being bridged. Since we did not call
+         ast_bridge_depart(), the Stasis application would exit, and then the
+         channel would be destroyed Then the depart_thread would start up and
+         try to manipulate the destroyed channel, causing a crash.
 
-       * Merge "doc: Make progdocs play nice with git" into 13
-2015-05-05 11:35 +0000 [2115f11b54]  Alexander Traud (License 6520)
+         The fix for this is to switch from using ast_channel_is_bridged() to
+         checking the NULLity of ast_channel_internal_bridge_channel() to
+         determine if ast_bridge_depart() needs to be called. The channel's
+         internal bridge_channel is set when ast_bridge_impart() is called and
+         is NULLed by the call to ast_bridge_depart(). If the channel's internal
+         bridge_channel is non-NULL, then the channel must have been imparted
+         into the bridge and needs to be departed, even if the actual bridging
+         operation has not yet started. By departing the channel when necessary,
+         the thread that is running the Stasis application will block until the
+         bridge gives the okay that the depart_thread has exited.
 
-       * tcptls: Avoiding ERR_remove_state in OpenSSL.
+         The second race condition that is solved by this patch involves a leak
+         of HTTP handler threads. The problem was that step 2b would successfully
+         retrieve a stasis_app_control structure. Then step 2a would exit the
+         channel from the event loop due to a hangup. Steps 3a and 4a would
+         execute, and then finally steps 3b and 4b would. The problem is that at
+         step 4b, when attempting to add a channel to a bridge, the thread would
+         block forever since the channel would never execute the queued command
+         since it was finished with the event loop. This meant that the HTTP
+         handling thread would be leaked, along with any references that thread
+         may have owned (in my case, I was seeing bridges leaked).
 
-         ERR_remove_state was deprecated with OpenSSL 1.0.0 and was replaced by 
-         ERR_remove_thread_state. ERR_load_SSL_strings and ERR_load_BIO_strings were 
-         called by SSL_load_error_strings already and got removed. These changes allow 
-         OpenSSL forks like BoringSSL to be used with Asterisk.
+         The fix for this is to hone in better on when the channel has exited the
+         event loop. The stasis_app_control structure has an is_done field that
+         is now set at each point where the channel may exit the event loop. If
+         step 2b retrieves a valid stasis_app_control structure but the control
+         is marked as done, then the attempted operation exits immediately since
+         there will be nothing to service the attempted command.
 
-         ASTERISK-25043 #close
-         Reported by: Alexander Traud
-         patches:
-           asterisk_with_BoringSSL.patch uploaded by Alexander Traud (License 6520)
+         ASTERISK-25091 #close
+         Reported by Ilya Trikoz
 
-         Change-Id: If1c0871ece21a7e0763fafbd2fa023ae49d4d629
-         (cherry picked from commit 247fef66537b59649e7571d64e2c574a106dbd65)
+         Change-Id: If66265b73b4c9f8f58599124d777fedc54576628
+2015-06-16 11:13 +0000 [723a9d4225]  Mark Michelson <mmichelson@digium.com>
 
-2015-05-07 14:54 +0000 [5392e970d0]  George Joseph <george.joseph@fairview5.com>
+       * Parking: Add documentation for AMI ParkedCallSwap event.
 
-       * doc: Make progdocs play nice with git
+         This event was added some time ago in order to clarify when a channel
+         took the place of another channel in a parking lot. However, there was
+         no XML documentation added for the event. This patch adds the XML
+         documentation.
 
-         Moved contrib/asterisk-ng-doxygen to doc/asterisk-ng-doxygen.in
+         ASTERISK-24900 #close
+         Reported by Rusty Newton
 
-         Changed /Makefile to copy asterisk-ng-doxygen.in to
-         asterisk-ng-doxygen then modify it with version instead of
-         modifying asterisk-ng-doxygen directly.  Updated clean
-         targets as well.
+         Change-Id: I4cfe7777c4b94bbff91c9221c6096a7a02a92eac
+2015-06-15 16:40 +0000 [79bf56c78a]  Corey Farrell <git@cfware.com>
 
-         Updated /.gitignore and doc/.gitignore.
+       * func_pjsip_aor: Fix leaked contact from iterator.
 
-         Change-Id: I38712d3e334fa4baec19d30d05de8c6f28137622
+         ASTERISK-25162 #close
 
-2015-05-07 15:10 +0000 [1e44d1bef9]  Joshua Colp <jcolp@digium.com>
+         Change-Id: Id79aa3c6fe490016ee98efc97ac4c1d3f461f97e
 
-       * Merge "res_pjsip_exten_state: Fix race condition between sending NOTIFY and termination" into 13
-2015-05-04 14:43 +0000 [608f0a94ee]  Ivan Poddubny <ivan.poddubny@gmail.com>
+2015-06-12 16:58 +0000 [31c77b157b]  Kevin Harwell <kharwell@digium.com>
 
-       * contrib/editors: Fix vim syntax highlighting of comments in config files
+       * res_pjsip: Add option to force G.726 to be treated as AAL2 packed.
 
-          * Added a lookbehind to one-line comment matcher to skip escaped
-            semicolons.
-          * Added support for block comments.
+         Some phones send g.726 audio packed for AAL2, which differs from what is
+         recommended by RFC 3351. If Asterisk receives audio formatted as such when
+         negotiating g.726 then it sounds a bit distorted. Added an option to
+         res_pjsip_endpoint that allows g.726 negotiated audio to be treated as g.726
+         AAL2 packed.
 
-         Change-Id: Id17dfaeda8ed4be572e8107a0c010066584aaee7
+         ASTERISK-25158 #close
+         Reported by: Steve Pitts
 
-2015-05-07 13:30 +0000 [22c6c12af2]  Matt Jordan <mjordan@digium.com>
+         Change-Id: Ie7e21f75493d7fe53e75e12c971e72f5afa33615
 
-       * Merge "vector:  Additional enhancements and fixes" into 13
-2015-05-06 13:24 +0000 [d649d682c4]  Joshua Colp <jcolp@digium.com>
+2015-06-14 19:48 +0000 [de8c7f46ed]  Matt Jordan <mjordan@digium.com>
 
-       * res_pjsip_exten_state: Fix race condition between sending NOTIFY and termination
+       * main/cdr: Carry over the disable flag when 'disable all' is specified
 
-         The res_pjsip_exten_state module currently has a race condition between
-         processing the extension state callback from the PBX core and processing
-         the subscription shutdown callback from res_pjsip_pubsub. There is currently
-         no synchronization between the two. This can present a problem as while
-         the SIP subscription will remain valid the tree it points to may not.
-         This is in particular a problem as a task to send a NOTIFY may get queued
-         which will try to use the tree that may no longer be valid.
+         The CDR_PROP function (as well as the NoCDR application) set the
+         'disable all' flag (AST_CDR_FLAG_DISABLE_ALL) on the current CDR. This
+         flag is supposed to be applied to all CDRs that are currently in the
+         chain, as well as all CDRs that may be created in the future. Currently,
+         however, the flag is only applied to the existing CDRs in the chain; new
+         CDRs do not receive the 'disable all' flag. In particular, this affects
+         parallel dials, which generate new CDRs for each pair of channels in
+         the dial attempt.
 
-         This change does the following to fix this problem:
+         This patch carries over the 'disable all' flag when it is specified on a
+         CDR and a new CDR is generated for the chain.
 
-         1. All access to the subscription tree is done within the task that
-         sends the NOTIFY to ensure that no other thread is modifying or
-         destroying the tree. This task executes on the serializer for the
-         subscriptions.
+         ASTERISK-24344 #close
 
-         2. A reference to the subscription serializer is kept to ensure it
-         remains valid for the lifetime of the extension state subscription.
+         Change-Id: I91a0f0031e4d147bdf8a68ecd08304d506fb6a0e
+2015-06-12 14:28 +0000 [78ea356e78]  Matt Jordan <mjordan@digium.com>
 
-         3. The NOTIFY task has been changed so it will no longer attempt
-         to send a NOTIFY if the subscription has already been terminated.
+       * main/cdr: Copy context/exten on chained CDRs for parallel dials in subroutines
 
-         ASTERISK-25057 #close
-         Reported by: Matt Jordan
+         When a parallel dial occurs, a new CDR will be created for each dial
+         attempt that is made. In most circumstances, the act of creating each
+         CDR in the chain will include a step that updates the Party A snapshot,
+         which causes the context/extension of the Party A to be copied onto the
+         CDR object.
 
-         Change-Id: I0b3cd2fac5be8d9b3dc5e693aaa79846eeaf5643
+         However, when the Party A is in a subroutine, we explicitly do *not*
+         copy the context/extension onto the CDR. This prevents the Macro or
+         GoSub routine name from blowing away the context/extension that the
+         channel was originally executing in. For the original CDR, this is not a
+         problem: the original CDR already recorded the last known 'good' state
+         of the channel just prior to it going into the subroutine. However, for
+         newly generated CDRs in a chain, there is no context/extension set on
+         them. Since we are in a subroutine, we will never set the Party A's
+         context/extension on the CDR, and we end up with a CDR with no
+         destination recorded on it.
 
-2015-05-07 07:02 +0000 [9322bc6ff6]  Matt Jordan <mjordan@digium.com>
+         This patch updates the creation of a chained CDR such that it copies
+         over the original CDR's context/extension. This is the last known "good"
+         state of the CDR, and is a reasonable starting point for the newly
+         generated CDR. In the case where we are not in a subroutine, subsequent
+         code will update the location of the CDR from the Party A information;
+         in the case where we are in a subroutine, the context/extension on the
+         original CDR is the correct information.
 
-       * Merge "chan_dahdi: Improve force_restart_unavailable_chans option description." into 13
-2015-05-07 06:39 +0000 [b1514362ef]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-24443 #close
 
-       * Merge "res_stasis_snoop: Spying on a single direction continually increases CPU" into 13
-2015-05-07 06:28 +0000 [652ee2ff83]  Joshua Colp <jcolp@digium.com>
+         Change-Id: I6a3ef0d6e458d3b9b30572feaec70f2964f3bc2a
 
-       * Merge "features: Fix crash when transferee hangs up during DTMF attended transfer." into 13
-2015-05-05 20:22 +0000 [5f9aea8e3c]  George Joseph <george.joseph@fairview5.com>
+2015-06-11 08:18 +0000 [3f57f3f8ec]  Damian Ivereigh <damo@launtel.net.au>
 
-       * vector:  Additional enhancements and fixes
+       * chan_sip.c: Update dialog fromtag after request with auth
 
-         After using the new vector stuff for real I found...
+         If a client sends and INVITE which is 401 rejected, then subsequently
+         sends a new INVITE with the auth info and uses a different fromtag
+         from the first INVITE, Asterisk will accept the new INVITE as part of
+         the original dialog - match_req_to_dialog() specifically ignores the
+         fromtag. However it does not update the stored dialog with the new
+         fromtag.
 
-         A bug in AST_VECTOR_INSERT_AT that could cause a seg fault.
+         This results in Asterisk being unable to match future packets that are
+         part of this dialog (such as the ACK to the OK or the OK to the BYE),
+         and the call is dropped.
 
-         The callbacks needed to be closer to ao2_callback in behavior
-         WRT to CMP_MATCH and CMP_STOP behavior and the ability to return
-         a vector of matched entries.
+         This problem was originally found when using an NEC-i SV8100-GE (NEC SIP
+         Card).
 
-         A pre-existing issue with APPEND and REPLACE was also fixed.
+         * After a successful match of a packet to the dialog, if the packet is
+           not a SIP_RESPONSE, authentication is present and the fromtags are
+           different, the stored fromtag is updated with the one from the recent
+           INVITE.
 
-         I also added a new macro to test.h that acts like ast_test_validate
-         but also accepts a return code variable and a cleanup label.  As well
-         as printing the error, it sets the rc variable to AST_TEST_FAIL and
-         does a goto to the specified label on error.  I had a local version
-         of this in test_vector so I just moved it.
+         ASTERISK-25154 #close
+         Reported by: Damian Ivereigh
+         Tested by: Damian Ivereigh
 
-         ASTERISK-25045
+         Change-Id: I5c16cf3b409e5ef9f2b2fe974b6bd2a45a6aa17e
 
-         Change-Id: I05e5e47fd02f61964be13b7e8942bab5d61b29cc
+2015-06-11 18:52 +0000 [30a0f2d9ac]  Matt Jordan <mjordan@digium.com>
 
-2015-05-04 17:28 +0000 [68513e00f7]  Kevin Harwell <kharwell@digium.com>
+       * chan_pjsip: Set the context and extension on the channel when created
 
-       * res_stasis_snoop: Spying on a single direction continually increases CPU
+         Prior to this patch, chan_pjsip was failing to pass the endpoint's
+         context and the desired extension to the ast_channel_alloc_* routine.
+         This caused a new channel snapshot to be issued without a context and
+         extension, which can cause some reporting issues for users of AMI, CEL,
+         and other APIs. The channel driver would later set the context and
+         extension on the channel such that the channel would start in the
+         correct location in the dialplan, but the information reported in the
+         initial event would be incorrect.
 
-         Creating a snoop channel in ARI and spying only on a single direction (in or
-         out) results in CPU utilization continually increasing until the CPU is fully
-         consumed. This occurs because frames are being put in the opposing direction's
-         slin factory queue, but not being removed.
+         This patch modifies the channel driver such that it now passes the
+         context and extension directly into the allocation routine. This
+         provides the information in the new channel snapshot published over
+         Stasis.
 
-         Fixed the problem by always reading and disposing of frames from the opposite
-         queue of the direction selected.
+         ASTERISK-25156 #close
+         Reported by: cloos
 
-         ASTERISK-24938 #closes
+         Change-Id: Ic6f8542836e596db8f662071d118e8f934fdf25e
 
-         Change-Id: I935bfd15f1db958f364d9d6b3b45582c0113dd60
-2015-05-06 16:00 +0000 [904f5d98f6]  Richard Mudgett <rmudgett@digium.com>
+2015-06-10 18:28 +0000 [dbb067279e]  Joshua Colp <jcolp@digium.com>
 
-       * chan_dahdi: Improve force_restart_unavailable_chans option description.
+       * bridge: When performing a blonde transfer update connected line information.
 
-         ASTERISK-25034
-         Reported by: Richard Mudgett
+         When performing a blonde transfer the code uses the old masquerade
+         mechanism to move a channel around. As a result of this certain information,
+         such as connected line, is moved between the channels involved. Upon
+         completion of the move a frame is queued which is supposed to update the
+         connected line information on the channel. This does not occur as the
+         code considers it a redundant update since the masquerade operation
+         updated the channel (but did not inform it of the new connected line
+         information). The code also does not queue a connected line update
+         to be handled by the thread handling the channel. Without this any
+         other channel that may be loosely involved does not know it is
+         talking to a different caller.
 
-         Change-Id: I1ff8f02124d2f4abd632a050da52c64285bb7f30
+         This change does the following to resolve this:
 
-2015-05-06 07:42 +0000 [d6ffbe39b0]  Joshua Colp <jcolp@digium.com>
+         1. The indicated connected line information is cleared upon
+         completion of the masquerade operation when doing a blonde transfer.
+         This prevents the connected line update from being considered
+         redundant.
 
-       * Merge "app_queue: Fix queue_log EXITWITHTIMEOUT containing only 1 parameter" into 13
-2015-05-06 06:13 +0000 [dfb292ce3e]  Matt Jordan <mjordan@digium.com>
+         2. A connected line update frame is now queued upon the completion
+         of the masquerade operation so any other channel loosely involved
+         knows that there is a different caller.
 
-       * Merge "res_ari_bridges: Add missing dependencies." into 13
-2015-05-05 21:05 +0000 [50e90f9121]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25157 #close
+         Reported by: Joshua Colp
 
-       * Merge "pbx_config: Register manager actions with module version of macro." into 13
-2015-05-05 18:17 +0000 [be1260a35f]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ibb8798184a1dab3ecd35299faecc420034adbf20
 
-       * features: Fix crash when transferee hangs up during DTMF attended transfer.
+2015-06-11 14:39 +0000 [a2f4d03c87]  Richard Mudgett <rmudgett@digium.com>
 
-         A crash happens with this sequence of steps:
-         1) Party A is connected to party B.
-         2) Party B starts a DTMF attended transfer.
-         3) Party A hangs up while party B is dialing party C.
+       * app_directory: Fix crash when using the alias option 'a'.
 
-         When party A hangs up the bridge that party A and party B are in is
-         dissolved and party B is kicked out of the bridge.  When party B finishes
-         dialing party C he attempts to move to the new bridge with party C.  Since
-         party B is no longer in a bridge the attempted move dereferences a NULL
-         bridge_channel pointer and crashes.
+         The voicemail.conf mailbox key/value pair is defined as:
+         <mailbox>=[<password>[,<full-name>[,<email>[,<pager>[,<options>]]]]]
+         Where all fields in the value including the field values are optional.
 
-         * Made the hold(), unhold(), ringing(), and the bridge_move() functions
-         tolerant of the channel not being in a bridge.  The assertion that party B
-         is always in a bridge is not true if the bridged peer of party B hangs up
-         and dissolves the bridge.  Being tolerant of not being in a bridge allows
-         the peer hangup stimulus to be processed by the FSM.
+         Since the parsing code for the mailbox key/value pair is sloppy, this
+         patch tightens the parsing for the directory information.
 
-         * Made the bridge_move() function return void since where the return value
-         for a failed move was checked generated a FSM coding ERROR message for a
-         normal off-nominal condition.
+         * Renamed the 'pos' and 'bufptr' variables to 'name' and 'options'
+         respectively in search_directory_sub().  Those names make more sense.
 
-         * Eliminated most uses of RAII_VAR in bridge_basic.c.
+         * Made sure that search_directory_sub() is dealing with the voicemail.conf
+         mailbox options field if it even exists when looking for the 'hidefromdir'
+         and 'alias' options.
 
-         ASTERISK-25003 #close
-         Reported by: Artem Volodin
+         * Fix crash if a voicemail.conf mailbox is just
+         <mailbox>=<password>,<name> when the 'a' option is used.  If there were no
+         fields after the name then the 'options' pointer was not checked for NULL.
 
-         Change-Id: Ie2c1b14e5e647d4ea6de300bf56d69805d7bcada
+         * Fix users.conf alias processing if the 'a' option is used.  The wrong
+         variable was used.
 
-2015-05-05 15:40 +0000 [8b0f85ac06]  George Joseph <george.joseph@fairview5.com>
+         ASTERISK-25087 #close
+         Reported by: Chet Stevens
 
-       * test_vector: Fix build breakage caused by ASTERISK_REGISTER_FILE
+         Change-Id: I86052ea77307beddddba5279824d39dc0d593374
 
-         My 13 version of test_vector had an ASTERISK_REGISTER_FILE() macro
-         call at the top which is only supported in master.  Once removed
-         builds are successful.
+2015-06-09 15:31 +0000 [a2b718f4f6]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: I7cac8b669bed6de543bbf4e2eec3cffc9741acdd
+       * res_pjsip.h: Fix some doxygen comments.
 
-2015-05-05 14:48 +0000 [87263b47b5]  Ivan Poddubny <ivan.poddubny@gmail.com>
+         Change-Id: I4615771077c3c6a0a7273da6d7b5f77af7e8d976
 
-       * app_queue: Fix queue_log EXITWITHTIMEOUT containing only 1 parameter
+2015-06-05 13:46 +0000 [32ddf6d86b]  Richard Mudgett <rmudgett@digium.com>
 
-         This patch fixes EXITWITHTIMEOUT queue_log entry to always come with 3
-         parameters: position, original position and waiting time.
+       * taskprocessor.c: Remove extra unref from off-nominal path.
 
-         ASTERISK-25038 #close
-         Reported by: Etienne Lessard
+         Change-Id: Iee3bd8c8a528776056972066698fe735f0f6cf60
 
-         Change-Id: I0c62045922e26bee2125e93aee1dee17eee79618
+2015-04-20 16:00 +0000 [cf98c744d5]  Yousf Ateya <y.ateya@starkbits.com>
 
-2015-05-05 13:13 +0000 [2d9081b5ec]  Matt Jordan <mjordan@digium.com>
+       * chan_iax2: Prevent deadlock between hangup and sending lagrq/ping
 
-       * Merge "stasis: Fix dial masquerade datastore lifetime" into 13
-2015-05-05 12:45 +0000 [8ca25dfd7e]  Matt Jordan <mjordan@digium.com>
+         channels/chan_iax.c: Prevent the deadlock between iax2_hangup and send_lagrq/
+         send_ping. This deadlock happens because the scheduled task send_lagrq(or
+         send_ping) starts execution after the call hangup procedure starts but before
+         it deletes the tasks in the scheduler.
 
-       * Merge "vector:  Traversal, retrieval, insert and locking enhancements" into 13
-2015-05-05 09:47 +0000 [366ea63438]  Corey Farrell <git@cfware.com>
+         The solution is to delete scheduled lagrq (and ping) task asynchronously
+         (i.e. schedule AST_SCHED_DEL for these tasks); By this, AST_SCHED_DEL will
+         be called in a new context (doesn't have callno locked).
 
-       * res_ari_bridges: Add missing dependencies.
+         This commit also cleans up the procedure of sending LAGRQ and PING.
 
-         Missed this module in the previous commit.  res_ari_bridges uses symbols
-         from res_stasis_playback and res_stasis_recording.
+         main/sched.c: Do not assert when deleting non existant entry from scheduler.
+         This assert seems to be the reason for a lot of awkward code to avoid it.
 
-         ASTERISK-25027 #close
-         Reported by: Corey Farrell
+         ASTERISK-24983 #close
+         Reported by: Y Ateya
 
-         Change-Id: I90bf756abd25adfc4920d2869ebe7feb636b8c5f
+         Change-Id: I03bec1fc8faacb89630269e935fa667c6d6c080c
 
-2015-05-05 09:27 +0000 [69ae8cf0a4]  Corey Farrell <git@cfware.com>
+2015-05-31 12:37 +0000 [8af6c9cf6b]  Ivan Poddubny <ivan.poddubny@gmail.com>
 
-       * pbx_config: Register manager actions with module version of macro.
+       * res_pjsip_transport_websocket: Fix use-after-free bugs.
 
-         Switch manager actions in pbx_config to use the registration macro that
-         passes the module pointer, allowing pbx_config reference to be bumped
-         while the manager actions run.
+         This patch fixes use-after-free bugs caught by AddressSanitizer.
 
-         ASTERISK-25061 #close
-         Reported by: Corey Farrell
+         1. PJSIP transport manager may decide to destroy transport on its own.
+         For example, when the contact registered via websocket has not renewed
+         its registration in time. The transport was destoyed, but the websocket
+         listener thread was still active until the socket closes, and then tried
+         to call transport_shutdown on transport that has been freed.
 
-         Change-Id: I422c50dd74814616ac10c5e9c6598a0b1bc2c44e
+         Also, the transport destructor accessed wstransport->rdata.tp_info.pool
+         right after freeing memory that contained wstransport itself.
 
-2015-05-04 12:16 +0000 [181ae3b8d9]  Joshua Colp <jcolp@digium.com>
+         This patch converts transport to an ao2 object, allowing it to be
+         refcounted, so that it is available until both websocket listener and
+         pjsip transport manager are finished with it.
 
-       * stasis: Fix dial masquerade datastore lifetime
+         2. The websocket listener deletes the last reference on websocket session
+         when the tcp connection is closed, and it gets destroyed, but
+         the transport manager may still use it, for example when disconnect
+         happens in the middle of a SIP transaction.
 
-         A recent change went into Asterisk which added reference counts to the
-         channels stored in a dial masquerade datastore. Unfortunately this
-         included a reference to the caller in a dialing operation. While all
-         of the dialed targets have the datastore removed from them upon dialing
-         completion this did not occur for the caller, causing it to have a
-         reference to itself that could go never go away (as it depended on
-         the destruction of the datastore which only happened when the channel
-         was destroyed). This resulted in the caller channel remaining on the
-         system despite it having hung up.
+         A new reference to websocket session has been added that is released
+         with the transport to prevent this.
 
-         This change does the following to fix this issue:
+         ASTERISK-25096 #close
+         Reported by: Josh Kitchens
 
-         1. The dial masquerade datastore is now removed from the caller upon
-         dialing completion, just like the dialed targets.
-         2. Upon destruction of the caller all the dialed targets are also
-         removed from the dial masquerade datastore (just in case).
-         3. The reference to the caller has been removed as it should not be
-         possible for the datastore to now be valid/useful after the lifetime
-         of the caller has ended.
-
-         ASTERISK-25025 #close
+         ASTERISK-24963 #close
+         Reported by: Badalian Vyacheslav
 
-         Change-Id: I1ef4ca5ca04980028604cc2af5d2992ac3431b3f
+         Change-Id: Idc0b63eb6e459c1ddfb2430127d34b3c4d8d373b
 
-2015-05-01 19:25 +0000 [7a7e9733c2]  George Joseph <george.joseph@fairview5.com>
+2015-06-09 13:41 +0000 [3046bc17ed]  ibercom <ibercom123@gmail.com>
 
-       * vector:  Traversal, retrieval, insert and locking enhancements
+       * weakref attribute detection broken with gcc 4.6 and higher
 
-         Renamed AST_VECTOR_INSERT to AST_VECTOR_REPLACE because it really
-         does replace not insert.  The few users of AST_VECTOR_INSERT were
-         refactored.  Because these are macros, there should be no ABI
-         compatibility issues.
+         GCC 4.7 Manual:
+         http://gcc.gnu.org/onlinedocs/gcc-4.7.4/gcc/Function-Attributes.html
 
-         Added AST_VECTOR_INSERT_AT that actually inserts an element into the
-         vector at a specific index pushing existing elements to the right.
+         weakref ("target")
 
-         Added AST_VECTOR_GET_CMP that can retrieve from the vector based
-         on a user-provided compare function.
+         A weak reference is an alias that does not by itself require a definition
+         to be given for the target symbol.
 
-         Added AST_VECTOR_CALLBACK function that will execute a function
-         for each element in the vector.  Similar to ao2_callback and
-         ao2_callback_data functions although the vector callback can take
-         a variable number of arguments.  This should allow easy migration
-         to a vector where a container might be too heavy.
+         ASTERISK-22559 #close
+         Reported by: Ibercom
 
-         Added read/write locked vector and lock manipulation macros.
+         Change-Id: I36a136cae947b65187a697533416f9ff9a0b8cdf
 
-         Added unit tests.
+2015-06-08 10:09 +0000 [55c8daf88b]  Corey Farrell <git@cfware.com>
 
-         ASTERISK-25045 #close
+       * Fix unsafe uses of ast_context pointers.
 
-         Change-Id: I2e07ecc709d2f5f91bcab8904e5e9340609b00e0
+         Although ast_context_find, ast_context_find_or_create and
+         ast_context_destroy perform locking of the contexts table,
+         any context pointer can become invalid at any time that the
+         contexts table is unlocked. This change adds locking around
+         all complete operations involving these functions.
 
-2015-05-03 13:55 +0000 [040d2f8558]  Corey Farrell <git@cfware.com>
+         Places where ast_context_find was followed by ast_context_destroy
+         have been replaced with calls ast_context_destroy_by_name.
 
-       * main/test.c: Add test to verify there were no registration errors.
+         ASTERISK-25094 #close
+         Reported by: Corey Farrell
 
-         This adds a test that will fail if any test failed to register. Also fail
-         if any test registration produced a warning about missing a leading or
-         trailing slash.
+         Change-Id: I1866b6787730c9c4f3f836b6133ffe9c820734fa
 
-         ASTERISK-25053 #close
-         Reported by: Corey Farrell
+2015-06-04 07:14 +0000 [e0090216db]  ibercom <ibercom123@gmail.com>
 
-         Change-Id: I93e50b8fcbcfa7f1f5b41b2c44a51685c09529c3
+       * CLI: Cosmetic issue - core show uptime
 
-2015-05-04 09:26 +0000 [626bffc4c2]  Matt Jordan <mjordan@digium.com>
+         Show uptime information ends with an unnecessary space.
 
-       * Merge "contrib/ast-db-manage: Add Postgres ENUM type support in auto DTMF mode update" into 13
-2015-05-04 09:26 +0000 [87fb7fc165]  Matt Jordan <mjordan@digium.com>
+         Now NEEDCOMMA is better defined.
 
-       * Merge "cdr/cdr_csv.c: Add a new option to enable columns added in Asterisk 1.8" into 13
-2015-05-04 09:25 +0000 [81c27127aa]  Matt Jordan <mjordan@digium.com>
+         Change-Id: I11b360504a0703309ff51772ff8f672287f3c5a1
 
-       * Merge "Format Interfaces: Prevent unload except by shutdown." into 13
-2015-05-04 07:46 +0000 [743fed71fc]  Matt Jordan <mjordan@digium.com>
+2015-06-03 17:41 +0000 [88212ccb7f]  Mark Michelson <mmichelson@digium.com>
 
-       * Merge "res_odbc: Use negative connection cache for all connections" into 13
-2015-04-21 11:52 +0000 [3dcec04ab5]  Martin Tomec <tomec.martin@gmail.com>
+       * res_pjsip: Prevent access of NULL channels.
 
-       * res_odbc: Use negative connection cache for all connections
+         It is possible to receive incoming requests or responses after the channel
+         on an ast_sip_session has been destroyed and NULLed out. Handlers of these
+         sorts of requests or responses need to be prepared for the possibility
+         that the channel is NULL or else they could cause a crash.
 
-         Apply the negative connection cache setting to all connections,
-         even those that are not pooled. This ensures that the connection
-         will not be re-established before the negative connection cache
-         time is met.
+         While several places have been amended to deal with NULL channels, there
+         were still a couple of places that needed updating.
 
-         ASTERISK-22708 #close
+         res_pjsip_dtmf_info.c: When handling incoming INFO requests, we need to
+         return early if there is no channel on the session.
 
-         Change-Id: I431cc2e8584ab0b6908b3523d0a0e18c9a527271
-2015-05-04 04:03 +0000 [74799b3fe2]  Matt Jordan <mjordan@digium.com>
+         res_pjsip_session.c: When handling a 302 response, we need to stop the
+         redirecting attempt if there is no channel on the session.
 
-       * Merge "Remove unneeded uses of optional_api providers." into 13
-2015-05-04 04:03 +0000 [78c02f8e88]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25148 #close
+         reported by Mark Michelson
 
-       * Merge "Update configure.ac/Makefile for clang" into 13
-2015-05-03 21:03 +0000 [f38066fcad]  Corey Farrell <git@cfware.com>
+         Change-Id: Id1a75ffc3d0eaa168b0b28188fb54d6cf9fc47a9
 
-       * Format Interfaces: Prevent unload except by shutdown.
+2015-06-01 11:45 +0000 [f5d5aa67dc]  Kevin Harwell <kharwell@digium.com>
 
-         Format interfaces cannot be unregistered, so the modules that provide them
-         need to be held open except by shutdown.
+       * AMI: Escape string values.
 
-         ASTERISK-25054 #close
-         Reported by: Corey Farrell
+         So this issue is a bit complicated. Since it is possible to pass values to AMI
+         that contain a '\r\n' (or other similar sequences) these values need to be
+         escaped. One way to solve this is to escape the values and then pass the escaped
+         values to the AMI variable parameter string building function. However, this
+         puts the onus on the pre-build function to escape all string values. This
+         potentially requires a fair amount of changes along with a lot of string
+         allocations/freeing for all values.
 
-         Change-Id: Iadbd9675bf0d30b8fded5a739b163db3ea2db8f3
+         Surely there is a way to push this complexity down a level into the string
+         building function itself? This of course is possible, but ends up requiring a
+         way to distinguish between strings that need to be escaped and those that don't.
+         The best way to handle this is by introducing a new format specifier in the
+         format string. For instance a %s (no escape) and %S (escape). However, that is
+         a bit weird and unexpected.
 
-2015-05-03 20:28 +0000 [e76a6a97bf]  Matt Jordan <mjordan@digium.com>
+         So faced with those possibilities this patch implements a limited version of the
+         first option. Instead of attempting to escape all string values this patch only
+         escapes those values that make sense. This approach limits the number of changes
+         and doesn't suffer from the odd format specifier problem.
 
-       * contrib/ast-db-manage: Add Postgres ENUM type support in auto DTMF mode update
+         ASTERISK-24934 #close
+         Reported by: warren smith
 
-         The upgrade script for auto DTMF mode (31cd4f4891ec) added in 88b0fa7755
-         failed to add ENUM support for Postgres databases. This requires a
-         specific import from the sqlalchemy.dialects.postgresql package. This
-         patch corrects this error, which allows for Postgres update scripts to
-         be generated.
+         Change-Id: Ib55a5b84fe0481b0f2caaaab68c566f392c0aac0
 
-         ASTERISK-24706
+2015-06-03 13:17 +0000 [5dc9fb4198]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: I4742ac8efa533cd6f18e0bdd907b339a9aedf015
+       * res_pjsip/location: Fix ref leak in contact_apply_handler
 
-2015-05-01 19:50 +0000 [92120247e9]  D Tucny <d@tucny.com>
+         contact_apply_handler calls ast_res_pjsip_find_or_create_contact_status
+         to force the creation of a contact_status object whenever a new
+         contact is added but it didn't unref the returned object.
 
-       * term: send proper reset sequence when black background is forced
+         Added an ao2_cleanup(status) to plug the leak.
 
-         When using the force black background command-line option or configuration
-         option an invalid reset sequence is sent following a coloured output item 
-         in the CLI, the result is that the colour is not 'turned off' and continues
-         until the next non-default coloured text output.
+         ASTERISK-25141
 
-         A reset sequence is already defined in term.c, but the ast_term_reset
-         function doesn't use it, instead building it's own invalid sequence and 
-         returning that.
+         Change-Id: Icc1401cae142855a1abc86ab5179dfb3ee861c40
+         Reported-by: Corey Farrell
 
-         This patch changes that behaviour, removing the building of a reset sequence
-         and instead using the pre-built constant 'enddata' which is a suitable reset
-         sequence for this purpose.
+2015-06-02 15:07 +0000 [d908272b7e]  David M. Lee <dlee@respoke.io>
 
-         ASTERISK-24896 #close
-         Reported by: Dan Tucny
+       * Fixes for OS X
 
-         Change-Id: I56323899123ae3264900389cae1f5b252aa3bf43
+          * Add some type casting so tv_usec can really be a long, instead of
+            some strange platform specific type.
 
-2015-05-03 09:20 +0000 [13819a34c4]  Matt Jordan <mjordan@digium.com>
+          * Add some .dylib style files to .gitignore.
 
-       * Merge "Build System: Prevent unneeded changes to asterisk/buildopts.h." into 13
-2015-05-03 09:19 +0000 [b518ba1c6c]  Matt Jordan <mjordan@digium.com>
+          * Switch from using -Xlinker to -Wl,. For [reasons unknown][], newer
+            versions of GCC, when compiling the Homebrew formula for Asterisk,
+            are not properly passing the -Xlinker options to the linker. Given
+            that -Wl, does exactly the [same thing][], and does it properly, this
+            patch changes the -Xlinker options to use -Wl, instead.
 
-       * Merge "res_pjsip_dlg_options: Fix MODULEINFO section." into 13
-2015-05-02 18:58 +0000 [ad6ea29697]  Corey Farrell <git@cfware.com>
+          [reasons unknown]: http://bit.ly/1SUbEYx
+          [same thing]: https://gcc.gnu.org/onlinedocs/gcc/Link-Options.html
 
-       * Remove unneeded uses of optional_api providers.
+         Change-Id: Id5e6b3c6cc86282ea5fca630dc3991137c5bf4dd
 
-         A few cases exist where headers of optional_api provders are included but
-         not needed.  This causes unneeded calls to ast_optional_api_use.
+2015-05-30 20:22 +0000 [9e7827e3ac]  Corey Farrell <git@cfware.com>
 
-         * Don't include optional_api.h from sip_api.h.
-         * Move 'struct ast_channel_monitor' to channel.h.
-         * Don't include monitor.h from chan_sip.c, channel.c or features.c.
+       * pjsip_configuration: Fix leak in persistent_endpoint_update_state.
 
-         The move of struct ast_channel_monitor is needed since channel.c depends on
-         it.  This has no effect on users of monitor.h since channel.h is included
-         from monitor.h.
+         The loop to find the first available contact of an endpoint grabbed
+         contact from the iterator, then checked for offline state.  This
+         caused the first contact after the state was found to leak a reference.
 
-         ASTERISK-25051 #close
-         Reported by: Corey Farrell
+         ASTERISK-25141
 
-         Change-Id: I53ea65a9fc9693c89f8bcfd6120649bfcfbc3478
+         Change-Id: Id0f1d87410fc63742db0594eb4b18b36e99aec08
+2015-05-31 11:33 +0000 [888bb49618]  Ivan Poddubny <ivan.poddubny@gmail.com>
 
-2015-05-02 10:19 +0000 [9888562c8c]  Matt Jordan <mjordan@digium.com>
+       * Fix buffer overflow in slin sample frames generation.
 
-       * Merge "include/asterisk/channel.h: Fix typo" into 13
-2015-05-02 10:17 +0000 [b4000f2d44]  Matt Jordan <mjordan@digium.com>
+         The length of frames retured by sample functions was twice as large as
+         real, what caused global buffer overflow caught by AddressSanitizer.
 
-       * Merge "Astobj2: Fix initialization order of refdebug and AO2_DEBUG." into 13
-2015-04-30 02:07 +0000 [525c8c8689]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+         ASTERISK-24717 #close
+         Reported by: Badalian Vyacheslav
 
-       * include/asterisk/channel.h: Fix typo
+         Change-Id: Iec2fe682aef13e556684912f906bedf7c18229c6
 
-         Change-Id: Ie584b85e16a94c255e60d0b1732ef9686464fef3
+2015-05-29 16:19 +0000 [857166b5e5]  gtjoseph <george.joseph@fairview5.com>
 
-2015-05-02 02:15 +0000 [63196a8256]  Corey Farrell <git@cfware.com>
+       * res_pjsip/location:  Fix memory leak in permanent_uri_handler
 
-       * res_pjsip_dlg_options: Fix MODULEINFO section.
+         When permanent_uri_handler was creating the contact status
+         object for each contact, it wasn't unreffing it at the
+         end of the loop.
 
-         Removed the extra space before "MODULEINFO" in res_pjsip_dlg_options.
-         This extra space prevented any of the dependencies from being seen by
-         menuselect, so building with default options would fail if PJSIP was
-         not installed.
+         ASTERISK-25141 #close
+         Reported-by: Corey Farrell
 
-         This also makes the tool that extracts information for menuselect
-         tolerant of multiple spaces in the future.
+         Change-Id: I7bb127994677bb3d459f87952f8425c9b9967b12
 
-         ASTERISK-25033 #close
-         Reported by: Peter Whisker
+2015-05-29 14:52 +0000 [1558a89129]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: Iccd54846f70c4a7a50cb5bf70b7bb5cb4bab3698
+       * Revert "endpoint/stasis: Eliminate duplicate events on endpoint status change"
 
-2015-04-29 03:03 +0000 [ac1f0090eb]  Corey Farrell <git@cfware.com>
+         This reverts commit 35c699086ae2fd81b2473307ccb2ae79ad32375a.
 
-       * Build System: Prevent unneeded changes to asterisk/buildopts.h.
+         Change-Id: Ia98c2b4820cf579a5b9bb75e9e05d7a233205fb7
 
-         * Add AST_DEVMODE to BUILDOPTS
-         * Remove CFLAGS that do not effect ABI from BUILDOPTS.
-         * Use BUILDOPTS to generate AST_BUILDOPT_SUM.
-         * Remove loop that defined AST_MODULE_*
+2015-05-27 13:22 +0000 [35c699086a]  gtjoseph <george.joseph@fairview5.com>
 
-         These changes ensure that only ABI effecting options are considered for
-         AST_BUILDOPT_SUM.  This also reduces unneeded full system rebuilds caused
-         by enabling or disabling one module that another is dependent on.
+       * endpoint/stasis: Eliminate duplicate events on endpoint status change
 
-         ASTERISK-25028
-         Reported by: Corey Farrell
+         When an endpoint was created, it's messages were being forwarded to
+         both the tech endpoint topic and the all endpoints topic.  Since
+         the tech topic was also forwarded to all, this was resulting in
+         duplicate messages whenever an endpoint published.  This patch
+         causes the endpoint to only forward to the tech topic and lets
+         the tech topic forward to all.
 
-         Change-Id: I2c516d93df9f6aaa09ae079a8168c887a6ff93a2
+         To accomplish this, the existing stasis_cp_single_create function
+         (which both creates and forwards) was cloned and split into 2
+         functions, one that creates the topic and one that sets up the
+         forwarding.  This allows endpoint_internal_create to create
+         the topic from the endpoint_all cache without forwarding it there,
+         then allows it to do the forward to the tech's topic.
 
-2015-05-01 13:22 +0000 [5875bf183c]  Corey Farrell <git@cfware.com>
+         ASTERISK-25137 #close
+         Reported-by: Vitezslav Novy
+         ASTERISK-25116 #close
+         Reported-by: George Joseph <george.joseph@fairview5.com>
+         Tested-by: George Joseph <george.joseph@fairview5.com>
 
-       * Astobj2: Fix initialization order of refdebug and AO2_DEBUG.
+         Change-Id: I26d7d4926a0861748fd3bdffe316b75b549a801c
 
-         This ensures that refdebug is initialized before AO2_DEBUG if
-         both are enabled, since AO2_DEBUG allocates a container.
+2015-05-26 13:56 +0000 [fe21f2e52f]  Richard Mudgett <rmudgett@digium.com>
 
-         This change also makes AO2_DEBUG initialization critical, a
-         failure will abort Asterisk startup.  This is needed since
-         the failure would be caused by reg_containers allocation
-         failure, and that would result in a segmentation fault by
-         ao2_container_register later in startup.
+       * res_pjsip_session: Fix in-dialog authentication.
 
-         ASTERISK-25048 #close
-         Reported by: Corey Farrell
+         When the remote peer requires authentication for in-dialog requests then
+         re-INVITEs to the peer cause the call to be disconnected and other
+         in-dialog requests to the peer like MESSAGE just don't go through.
 
-         Change-Id: I9a243ea3fc5653b48b931ba6d61971cb2e530244
+         * Made session_inv_on_tsx_state_changed() handle in-dialog authentication
+         for re-INVITEs and other methods.  Initial INVITEs cannot be handled here
+         because the INVITE transaction must be restarted earlier.
 
-2015-04-29 14:49 +0000 [1b19c15f17]  Matt Jordan <mjordan@digium.com>
+         * Pulled needed code from res/res_pjsip/pjsip_outbound_auth.c in
+         preparation for removing the file.  The generic outbound authentication
+         code did not work as well as anticipated.
 
-       * main/pbx: Improve performance of dialplan reloads with a large number of hints
+         * Created outbound_invite_auth() to only handle initial outbound INVITEs.
+         Re-INVITEs cannot be handled here.  The re-INVITE transaction is still in
+         progress and the PJSIP library cannot handle the overlapping INVITE
+         transactions.  Other method types should not be handled here as this code
+         only works on outgoing calls and we need to handle incoming and outgoing
+         calls.
 
-         The PBX core maintains two hash tables for hints: a container of the
-         actual hints (hints), along with a container of devices that are watching that
-         hint (hintdevices). When a dialplan reload occurs, each hint in the hints
-         container is destroyed; this requires a lookup in the container of devices to
-         find the device => hint mapping object. In the current code, this performs an
-         ao2_callback, iterating over each of the device to hint objects in the
-         hintdevices container. For a large number of hints, this is extremely
-         expensive: dialplan reloads with 20000 hints could take several minutes
-         in just this phase.
+         ASTERISK-25131 #close
+         Reported by: Richard Mudgett
 
-         This patch improves the performance of this step in the dialplan reloads
-         by caching which devices are watching a hint on the hint object itself.
-         Since we don't want to create a circular reference, we just cache the
-         name of the device. This allows us to perform a smarter ao2_callback on
-         the hintdevices container during hint removal, hashing on the name of the
-         device and returning an iterator to the matching names. The overall
-         performance improvement is rather large, taking this step down to a number of
-         seconds as opposed to minutes.
+         Change-Id: I12bdd7ddccc819b4ce4b091e826d1e26334601b0
 
-         In addition, this patch also registers the hint containers in the PBX
-         core with the astobj2 library. This allows for reasonable debugging to
-         hash collisions in those containers.
+2015-05-21 17:21 +0000 [262d590819]  gtjoseph <george.joseph@fairview5.com>
 
-         ASTERISK-25040 #close
-         Reported by: Matt Jordan
+       * res_pjsip: Add AMI events for chan_pjsip contact lifecycle changes
 
-         Change-Id: Iedfc97a69d21070c50fca42275d7b3e714e59360
+         Add a new ContactStatus AMI event.
+         Publish the following status/state changes:
+         Created
+         Removed
+         Reachable
+         Unreachable
+         Unknown
 
-2015-05-01 06:55 +0000 [ec0f80b6e8]  Matt Jordan <mjordan@digium.com>
+         Contact URI, new status/state, aor and endpoint names, and the
+         last qualify rtt result are included in the event.
 
-       * Merge "res_pjsip_outbound_authenticator_digest: Add missing outbound authenticator callback." into 13
-2015-05-01 06:55 +0000 [ed51fbbe9c]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25114 #close
 
-       * Merge "Prevent potential crash on blond transfer." into 13
-2015-04-30 15:54 +0000 [3efe0df044]  Corey Farrell <git@cfware.com>
+         Change-Id: Id25aae5f7122facba183273efb3e8f36c20fb61e
+         Reported-by: George Joseph <george.joseph@fairview5.com>
+         Tested-by: George Joseph <george.joseph@fairview5.com>
 
-       * Sample Configs: Fix syntax error in pjsip.conf
+2015-05-26 07:44 +0000 [5a42397018]  Joshua Colp <jcolp@digium.com>
 
-         The sample pjsip.conf has a few comment lines that are missing the
-         semicolons at the start of the comment, causing the config to fail
-         load.
+       * sorcery: Fix cache creation callback.
 
-         Change-Id: I776a38c916a7df7ee3e072fd0b21dbf4cc457352
+         The cache creation callback function expects to receive a sorcery_details
+         structure and not just a standalone object.
 
-2015-04-30 15:20 +0000 [077979618b]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: I3e4a5a137cb25292eb52d7a14cbb6daa09213450
 
-       * Prevent potential crash on blond transfer.
+2015-05-24 13:47 +0000 [97a6ce1717]  Ivan Poddubny <ivan.poddubny@gmail.com>
 
-         Scenario:
-         Alice calls Bob. Bob performs a blond transfer to Carol. Carol rejects
-         the incoming call (or some other immediate circumstance causes Carol not
-         to answer the call)
+       * Astobj2: Correctly treat hash_fn returning INT_MIN
 
-         What occurs in this case is that when the bridge between Alice and Bob
-         breaks, Alice is told to masquerade into Bob's channel that had placed
-         the call to Carol. The actual masquerade goes down without a hitch.
-         However, a channel fixup callback that attempts to publish dial events
-         over Stasis has a crash. The reason for this crash is that the datastore
-         on Bob's channel that placed the outbound call to Carol only had a bare
-         pointer to Carol's channel. Since Carol rejected the incoming call,
-         Carol's channel has been hung up and freed, meaning accessing her
-         channel results in a crash.
+         The code in astobj2_hash.c wrongly assumed that abs(int) is always > 0.
+         However, abs(INT_MIN) = INT_MIN and is still negative, as well as
+         abs(INT_MIN) % num_buckets, and as a result this led to a crash.
 
-         The fix here is simple. The dial fixup code has been altered to hold
-         references to the involved channels and to drop those references when
-         freeing data.
+         One way to trigger the bug is using host=::80 or 0.0.0.128 in peer
+         configuration section in chan_sip or chan_iax.
 
-         ASTERISK-25025 #close
-         Reported by Chet Stevens
+         This patch takes the remainder before applying abs, so that bucket
+         number is always in range.
 
-         Change-Id: I54eedda207b8ec7a69263353b43abe5746aea197
+         ASTERISK-25100 #close
+         Reported by: Mark Petersen
 
-2015-04-30 14:09 +0000 [4b8cddfb36]  Mark Michelson <mmichelson@digium.com>
+         Change-Id: Id6981400ad526f47e10bcf7b847b62bd2785e899
+2015-05-23 04:36 +0000 [554bd1e39c]  Ivan Poddubny <ivan.poddubny@gmail.com>
 
-       * res_pjsip_outbound_authenticator_digest: Add missing outbound authenticator callback.
+       * res_pjsip_transport_websocket: Fix crash on receiving large SIP packets
 
-         The Asterisk 13 version of the fix for outbound registration was missing
-         a key component that set the outbound authenticator's callback that
-         creates an authenticated request based on an old request. This was
-         picked up by some outbound registration tests failing in the testsuite.
+         Incoming SIP packets larger than PJSIP_MAX_PKT_LEN were themselves
+         truncated before passing to pjsip_tpmgr_receive_packet, but the length
+         was passed unaltered, thus causing memory corruption and segfault.
 
-         Change-Id: I5ca9379698c606da36bc38eaffccedaf64211ce3
-2015-04-30 13:42 +0000 [415a0d0745]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-25122 #close
 
-       * res_ari_device_states: Fix dependency on res_stasis_device_state.
+         Change-Id: I608a6b6b7f229eacc33a0a7d771d18e27e5b08ab
 
-         The res_ari_device_states module depends on res_stasis_device_state,
-         not res_stasis_device_states.
+2015-05-22 21:50 +0000 [0d266cbe02]  Corey Farrell <git@cfware.com>
 
-         Change-Id: I26e02ad37f9e36bcc859867e2fad1b90452ec3de
+       * Stasis: Fix unsafe use of stasis_unsubscribe in modules.
 
-2015-04-30 11:11 +0000 [e0c6f88010]  Mark Michelson <mmichelson@digium.com>
+         Many uses of stasis_unsubscribe in modules can be reached through unload.
+         These have been switched to stasis_unsubscribe_and_join.
 
-       * Merge "chan_dahdi: Add the chan_dahdi.conf force_restart_unavailable_chans option." into 13
-2015-04-30 10:53 +0000 [d1bc86fc99]  Matt Jordan <mjordan@digium.com>
+         Some subscription callbacks do nothing, for these I've created a noop
+         callback function in stasis.c.  This is used by some modules that monitor
+         MWI topics in order to enable cache, since the callback does not become
+         invalid after dlclose it is safe to use stasis_unsubscribe on these, even
+         during module unload.
 
-       * Merge "res_pjsip_outbound_registration: Add virtual line support." into 13
-2015-04-29 14:29 +0000 [d3c310a28c]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25121 #close
 
-       * chan_dahdi: Add the chan_dahdi.conf force_restart_unavailable_chans option.
+         Change-Id: Ifc2549fbd8eef7d703c222978e8f452e2972189c
 
-         Some telco switches occasionally ignore ISDN RESTART requests.  The fix
-         for ASTERISK-19608 added an escape clause for B channels in the restarting
-         state if the telco ignores a RESTART request.  If the telco fails to
-         acknowledge the RESTART then Asterisk will assume the telco acknowledged
-         the RESTART on the second call attempt requesting the B channel by the
-         telco.  The escape clause is good for dealing with RESTART requests in
-         general but it does cause the next call for the restarting B channel to be
-         rejected if the telco insists the call must go on that B channel.
+2015-05-22 12:22 +0000 [51ffed5e61]  Matt Jordan <mjordan@digium.com>
 
-         chan_dahdi doesn't really need to issue a RESTART request in response to
-         receiving a cause 44 (Requested channel not available) code.  Sending the
-         RESTART in such a situation is not required (nor prohibited) by the
-         standards.  I think chan_dahdi does this for historical reasons to deal
-         with buggy peers to get channels unstuck in a similar fashion as the
-         chan_dahdi.conf resetinterval option.
+       * res/res_pjsip_pubsub: Note that 'dialog' is also a valid event type for RLS
 
-         * Add the chan_dahdi.conf force_restart_unavailable_chans compatability
-         option that when disabled will prevent chan_dahdi from trying to RESTART
-         the channel in response to a cause 44 code.
+         In addition to specifying lists of 'presence' and 'message-summary',
+         users can also create lists of type 'dialog'. These should be treated in
+         the same fashion as 'presence'.
 
-         ASTERISK-25034 #close
-         Reported by: Richard Mudgett
+         Change-Id: I583bb69cd9f88b0b29bf09ddaddeac4e84189f6e
 
-         Change-Id: Ib8b17a438799920f4a2038826ff99a1884042f65
-2015-04-30 06:38 +0000 [7f611fa0e8]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+2015-05-22 12:18 +0000 [7950b65e4f]  Matt Jordan <mjordan@digium.com>
 
-       * cdr/cdr_csv.c: Add a new option to enable columns added in Asterisk 1.8
+       * res/res_pjsip_exten_state: Fix confusing NOTICE message
 
-         This patch adds a new option to cdr.conf, 'newcdrcolumns', that will handle CDR
-         columns added in Asterisk 1.8. The columns are:
-          * peeraccount
-          * linkedid
-          * sequence
-         When enabled, the columns in the database entry will be populated with the data
-         from the CDR.
+         When a SUBSCRIBE request is made to a dialplan hint that doesn't exist,
+         the current NOTICE message informing users of this swaps the context and
+         extension parameters. This can cause a bit of confusion.
 
-         ASTERISK-24976 #close
+         Thanks to CptBurger in #asterisk for helping to point this out.
 
-         Change-Id: I51a57063f4ae5e194a9d933a8df45dc8a4534f0b
+         Change-Id: Ie584d1a58ae217385c87a450ca25b55ca0e36e43
 
-2015-04-30 06:04 +0000 [e332c7ed5e]  Joshua Colp <jcolp@digium.com>
+2015-05-17 20:36 +0000 [5ac65ddfb4]  Matt Jordan <mjordan@digium.com>
 
-       * res_pjsip_outbound_registration: Fix double unref on error return.
+       * res/ari: Register Stasis application on WebSocket attempt
 
-         When the PJSIP pjsip_regc_send function is invoked and an error
-         status returned the caller currently decrements the reference count
-         of the client state that it just incremented, assuming the
-         registration callback would not have been invoked. In practice
-         this is not correct. If the failure happens after the transaction
-         has been set up the callback will still be invoked. This will
-         cause the reference count to be incorrectly decremented twice, once
-         by the registration callback and second by the caller of
-         pjsip_regc_send.
+         Prior to this patch, when a WebSocket connection is made, ARI would not
+         be informed of the connection until after the WebSocket layer had
+         accepted the connection. This created a brief race condition where the
+         ARI client would be notified that it was connected, a channel would be
+         sent into the Stasis dialplan application, but ARI would not yet have
+         registered the Stasis application presented in the HTTP request that
+         established the WebSocket.
 
-         This change makes it so that whether the callback is invoked or
-         not is known by the caller of pjsip_regc_send. Depending on
-         this it can know whether it is responsible for decrementing the
-         reference count of the client state or not.
+         This patch resolves this issue by doing the following:
+          * When a WebSocket attempt is made, a callback is made into the ARI
+            application layer, which verifies and registers the apps presented in
+            the HTTP request. Because we do not yet have a WebSocket, we cannot
+            have an event session for the corresponding applications. Some
+            defensive checks were thus added to make the application objects
+            tolerant to a NULL event session.
+          * When a WebSocket connection is made, the registered application is
+            updated with the newly created event session that wraps the WebSocket
+            connection.
 
-         ASTERISK-25037 #close
+         ASTERISK-24988 #close
          Reported by: Joshua Colp
 
-         Change-Id: I749dc12f3a22115c49c5d7d95ff42a5fa45319de
+         Change-Id: Ia5dc60dc2b6bee76cd5aff0f69dd53b36e83f636
 
-2015-04-20 13:03 +0000 [9c3ed42875]  Diederik de Groot <ddegroot@talon.nl>
+2015-05-20 11:11 +0000 [60e2fbfe62]  gtjoseph <george.joseph@fairview5.com>
 
-       * Update configure.ac/Makefile for clang
+       * res_pjsip: Refactor endpt_send_transaction (qualify_timeout)
 
-         Created autoconf/ast_check_raii.m4: contains AST_CHECK_RAII which
-         checks compiler requirements for RAII:
-         gcc: -fnested-functions support
-         clang: -fblocks (and if required -lBlocksRuntime)
-         The original check was implemented in configure.ac and now has it's
-         own file. This function also sets C_COMPILER_FAMILY to either gcc or
-         clang for use by makefile
+         This patch refactors the transaction timeout processing to eliminate
+         calling the lower level public pjsip functions and reverts to calling
+         pjsip_endpt_send_request again.  This is the result of me noticing
+         a possible incompatibility with pjproject-2.4 which was causing
+         contact status flapping.
 
-         Created autoconf/ast_check_strsep_array_bounds.m4 (contains
-         AST_CHECK_STRSEP_ARRAY_BOUNDS):
-         which checks if clang is able to handle the optimized strsep & strcmp
-         functions (linux). If not, the standard libc implementation should be
-         used instead. Clang + the optimized macro's work with:
-         strsep(char *, char []), but not with strsepo(char *, char *).
-         Instead of replacing all the occurences throughout the source code,
-         not using the optimized macro version seemed easier
+         The original version of this feature used the lower level calls to
+         get access to the tsx structure in order to cancel the transaction
+         when our own timer expires. Since we no longer have that access,
+         if our own timer expires before the pjsip timer, we call the callbacks
+         and just let the pjsip transaction take it's own course.  When the
+         transaction ends, it discovers the callbacks have already been run
+         and just cleans itself up.
 
-         See 'define __strcmp_gc(s1, s2, l2) in bits/string2.h':
-         llvm-comment: Normally, this array-bounds warning are suppressed for
-         macros, so that unused paths like the one that accesses __s1[3] are
-         not warned about.  But if you preprocess manually, and feed the
-         result to another instance of clang, it will warn about all the
-         possible forks of this particular if statement. Instead of switching
-         of this optimization, another solution would be to run the preproces-
-         sing step with -frewrite-includes, which should preserve enough
-         information so that clang should still be able to suppress the diag-
-         nostic at the compile step later on.
+         A few messages in pjsip_configuration were also added/cleaned up.
 
-         See also "https://llvm.org/bugs/show_bug.cgi?id=20144"
-         See also "https://llvm.org/bugs/show_bug.cgi?id=11536"
+         ASTERISK-25105 #close
 
-         Makefile.rules: If C_COMPILER_FAMILY=clang then add two warning
-         suppressions:
-         -Wno-unused-value
-         -Wno-parentheses-equality
-         In an earlier review (reviewboard: 4550 and 4554), they were deemed a
-         nuisace and less than benefitial.
+         Change-Id: I0810f3999cf63f3a72607bbecac36af0a957f33e
+         Reported-by: George Joseph <george.joseph@fairview5.com>
+         Tested-by: George Joseph <george.joseph@fairview5.com>
+2015-05-20 00:45 +0000 [42476e6633]  demon-ru <serov.d.p@gmail.com>
 
-         configure.ac:
-         Added AST_CHECK_RAII() see earlier
-         Added AST_CHECK_STRSEP_ARRAY_BOUNDS() see earlier
-         Removed moved content
+       * res_pjsip_outbound_registration: Check request URI for line.
 
-         ASTERISK-24917
-         Change-Id: I12ea29d3bda2254ad3908e279b7effbbac6a97cb
+         When an inbound call is received the To header is checked
+         for the "line" option. Some remote servers will place this
+         in the request URI instead. This adds an additional check for
+         the option in the request URI.
 
-2015-04-29 16:43 +0000 [37a193da18]  Matt Jordan <mjordan@digium.com>
+         ASTERISK-25072 #close
+         Reported by: Dmitriy Serov
 
-       * Merge "ARI: Fix missing dependencies." into 13
-2015-04-29 16:42 +0000 [6a86b3555b]  Matt Jordan <mjordan@digium.com>
+         Change-Id: Id4e44debbb80baad623b914a88574371575353c8
 
-       * Merge "res_fax: allow 2400 transmission rate according to v.27ter standard" into 13
-2015-04-29 16:15 +0000 [d4e207e27e]  Matt Jordan <mjordan@digium.com>
+2015-05-21 17:51 +0000 [e7edb59db6]  Corey Farrell <git@cfware.com>
 
-       * main/rtp_engine: Fix DTLS double-free introduced by 0b6410c4f8
+       * res_mwi_external_ami: Use module version of AMI registration.
 
-         The patch in 0b6410c4f8 did correctly fix a memory leak of the DTLS
-         structures in the RTP engine. However, when a 'core reload' is issued, a
-         double free of the memory pointed to by the char *'s in the DTLS
-         configuration struct can occur, as ast_rtp_dtls_cfg_free does not set
-         the pointers to NULL when they are freed.
+         Use ast_manager_register_xml for res_mwi_external_ami manager
+         actions.  This ensures the module is held open while any of
+         the actions are being run.
 
-         This patch sets those pointers to NULL, preventing a second call to
-         ast_rtp_dtls_cfg_free from corrupting memory.
+         ASTERISK-25117 #close
+         Reported by: Corey Farrell
 
-         ASTERISK-25022
+         Change-Id: Iececfdc2da498b2c32b9e09042f5f12292007ac7
+2015-05-21 13:05 +0000 [9d8a462356]  Matt Jordan <mjordan@digium.com>
 
-         Change-Id: I820471e6070a37e3c26f760118c86770e12f6115
+       * ARI: Update version to 1.7.0
 
-2015-04-29 13:05 +0000 [3fb6daeb55]  Kevin Harwell <kharwell@digium.com>
+         This patch updates the version of ARI to 1.7.0 to reflect the backwards
+         compatible changes that will be introduced in 13.4.0.
 
-       * res_fax: allow 2400 transmission rate according to v.27ter standard
+         Change-Id: I6c36e6144da426412f25828a868e4df916bff60a
 
-         A previous set of patches (see: ASTERISK-22790 & ASTERISK-23231) made it so
-         a v.27 modem was not allowed to have a minimum transmission rate of 2400 bits
-         per second. This reverts all or some of those patches since according to the
-         v.27ter standard a rate of 2400 bits per second is also supported.
+2015-05-20 20:53 +0000 [9b6e228419]  Corey Farrell <git@cfware.com>
 
-         One of the original patches also added 9600 bits per second support for v.27.
-         This patch also removes that since v.27ter only supports 2400/4800 bits per
-         second.
+       * Logger: Reset defaults before processing config.
 
-         Also, since Asterisk specifically supports v.27ter the enum was renamed to
-         better reflect this.
+         Reset options to default values before reloading config.  This ensures
+         that if a setting is removed or commented out of the configuration file
+         it is unset on reload.
 
-         ASTERISK-24955 #close
-         Reported by: Matt Jordan
+         ASTERISK-25112 #close
+         Reported by: Corey Farrell
 
-         Change-Id: I4b9dfb6bf7eff08463ab47ee1a74224f27cae733
+         Change-Id: Id24bb1fb0885c2c14cf8bd6f69a0c2ee7cd6c5bd
 
-2015-04-29 10:46 +0000 [49ef81c15c]  Joshua Colp <jcolp@digium.com>
+2015-05-20 19:05 +0000 [7fcf0a97b8]  gtjoseph <george.joseph@fairview5.com>
 
-       * res_sorcery_config: Fix build issue due to syntax error.
+       * app_playback: Suppress warnings on playback if channel hung up
 
-         Change-Id: Ic8322f04e37842848ad72cf2871bd0378f67c4ac
+         If a channel hangs up while an audio file is playing, there's
+         no need to clutter up the logs with a warning so suppress it
+         if ast_check_hangup returns true.
 
-2015-04-28 00:29 +0000 [3278fe5327]  Ashley Sanders <asanders@digium.com>
+         Also, change warning to debug/2 in file.c if writing a frame
+         fails.  Same reasoning.
 
-       * chan_pjsip: Creating Channel Causes Asterisk to Crash When Duplicate AOR
-                     Sections Exist in pjsip.conf
+         Change-Id: I2e66191af3c5b6e951c98e8f1c3fe3cf2cf7ed89
+         Reported-by: George Joseph <george.joseph@fairview5.com>
+         Tested-by: George Joseph <george.joseph@fairview5.com>
 
-         This patch modifies the current loading strategy of the pjsip configuration. If
-         duplicate sections (e.g. sections containing the same [id/type]) are defined in
-         [pjsip.conf], the loader will consider the configuration for the given type as
-         invalid when the duplicate section is encountered. The entire configuration
-         (including what was previously loaded) for the duplicate [id/type] sections
-         will be rejected and destroyed, an error message is logged and the load
-         processing for the given stops.
+2015-05-14 15:21 +0000 [b1e8c0b9eb]  Kevin Harwell <kharwell@digium.com>
 
-         ASTERISK-24996
-         Reported By: Ashley Sanders
+       * audiohook.c: Difference in read/write rates caused continuous buffer resets
 
-         Change-Id: I35090ca4cd40f1f34881dfe701a329145c347aef
+         Currently, everytime a sample rate change occurs (on read or write) the
+         associated factory buffers are reset. If the requested sample rate on a
+         read differed from that of a write then the buffers are continually reset
+         on every read and write. This has the side effect of emptying the buffer,
+         thus there being no data to read and then write to a file in the case of
+         call recording.
 
-2014-11-04 06:03 +0000 [89f6719f7a]  Joshua Colp <jcolp@digium.com>
+         This patch fixes it so that an audiohook_list's rate always maintains the
+         maximum sample rate among hooks and formats. Audiohook sample rates are
+         only overwritten by this value when slin native compatibility is turned on.
+         Also, the audiohook sample rate can only overwrite the list's sample rate
+         when its rate is greater than that of the list or if compatibility is
+         turned off. This keeps the rate from constantly switching/resetting.
 
-       * res_pjsip_outbound_registration: Add virtual line support.
+         ASTERISK-24944 #close
+         Reported by: Ronald Raikes
 
-         Virtual line support establishes a relationship between messages
-         related to an outbound registration and a local endpoint. This is
-         accomplished by attaching a parameter to the Contact of the outbound
-         registration and looking for it on any received requests. If the
-         parameter exists and can be matched to an outbound registration
-         the configured endpoint is associated with the request.
+         Change-Id: Idab4dfef068a7922c09cc631dda27bc920a6c76f
 
-         ASTERISK-24949 #close
-         Reported by: Joshua Colp
+2015-05-19 13:01 +0000 [17d6ede337]  Corey Edwards <tensai@zmonkey.org>
 
-         Change-Id: I7df909d2625479110a83fdd354c21ac539e8615d
+       * main/sdp_srtp.c: allow SDP crypto tag to be up to 9 digits
 
-2015-04-29 06:39 +0000 [d61f03c4f9]  Corey Farrell <git@cfware.com>
+         ASTERISK-24887 #close
+         Reported by: Makoto Dei
+         Tested by: tensai
 
-       * ARI: Fix missing dependencies.
+         Change-Id: I6a96f572adb17f76b3acafe503a01c48eb5dd9bf
 
-         ARI modules that are generated by 'make ari-stubs' are all dependent on
-         res_ari_model.  Additionally some of the same modules depend on one or more
-         res_stasis_* modules.
+2015-05-13 09:55 +0000 [31cc24aad6]  Matt Jordan <mjordan@digium.com>
 
-         ASTERISK-25027 #close
-         Reported by: Corey Farrell
+       * res/res_http_websocket: Add a pre-session established callback
 
-         Change-Id: I8e07fe7e81fedacb87232f2b6f8b5f47927b4153
+         This patch updates http_websocket and its corresponding implementation
+         with a pre-session established callback. This callback allows for
+         WebSocket server consumers to be notified when a WebSocket connection is
+         attempted, but before we accept it. Consumers can choose to reject the
+         connection, if their application specific logic allows for it.
 
-2015-04-29 06:26 +0000 [3e4624ad21]  Corey Farrell <git@cfware.com>
+         As a result, this patch pulls out the previously private
+         websocket_protocol struct and makes it public, as
+         ast_websocket_protocol. In order to preserve backwards compatibility
+         with existing modules, the existing APIs were left as-is, and new APIs
+         were added for the creation of the ast_websocket_protocol as well as for
+         adding a sub-protocol to a WebSocket server.
 
-       * res_pjsip: Remove incorrect MODULEINFO from presence_xml.c.
+         In particular, the following new API calls were added:
+         * ast_websocket_add_protocol2 - add a protocol to the core WebSocket
+           server
+         * ast_websocket_server_add_protocol2 - add a protocol to a specific
+           WebSocket server
+         * ast_websocket_sub_protocol_alloc - allocate a sub-protocol object.
+           Consumers can populate this with whatever callbacks they wish to
+           support, then add it to the core server or a specified server.
 
-         Remove incorrect MODULEINFO block and unneeded header includes
-         from presence_xml.c.
+         ASTERISK-24988
+         Reported by: Joshua Colp
 
-         ASTERISK-25027
-         Reported by: Corey Farrell
+         Change-Id: Ibe0bbb30c17eec6b578071bdbd197c911b620ab2
 
-         Change-Id: I977c609ab9d1fe05373027c4138900f6985990eb
+2015-05-14 22:05 +0000 [f9114179e6]  snuffy <snuffy22@gmail.com>
 
-2015-04-29 06:17 +0000 [fed9faab8d]  Corey Farrell <git@cfware.com>
+       * chan_pjsip: Fix crash during off-nominal when no endpoint specified.
 
-       * Git Migration: Create doc/rest-api when needed.
+         Add missing return -1 when no endpoint name is specified.
 
-         Create the directory './doc/rest-api' at the start of 'make ari-stubs'
-         to prevent an error when documentation is generated.  The directory is
-         also added to git ignores.
+         ASTERISK-25086 #close
+         Reported by: snuffy
 
-         ASTERISK-25027
-         Reported by: Corey Farrell
+         Change-Id: I9de76c2935a1f4e3f0cffe97a670106f5605e89e
+2015-05-14 18:01 +0000 [dd78ab42e4]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: Iaccc7f0138501c23aa78feaca2f3cce9e68cbc1b
+       * res_pjsip_config_wizard/config: Fix template processing
 
-2015-04-29 05:17 +0000 [df23c8a86b]  Joshua Colp <jcolp@digium.com>
+         The config wizard was always pulling the first occurrence of
+         a variable from an ast_variable list but this gets the template
+         value from the list instead of any overridden value.  This patch
+         creates ast_variable_find_last_in_list() in config.c and updates
+         res_pjsip_config_wizard to use it instead of
+         ast_variable_find_in_list.  Now the overridden values, where they
+         exist, are used instead of template variables.
 
-       * res_pjsip_outbound_registration: Fix build due to removal of transaction.
+         Updated test_config to test the new API.
 
-         Change-Id: I7a8a7beec3334cec304943f2dd7597eabe2e3150
+         ASTERISK-25089 #close
 
-2015-04-28 19:18 +0000 [95ab9fdb1a]  Joshua Colp <jcolp@digium.com>
+         Reported-by: George Joseph <george.joseph@fairview5.com>
+         Tested-by: George Joseph <george.joseph@fairview5.com>
+         Change-Id: Ifa7ddefc956a463923ee6839dd1ebe021c299de4
 
-       * Merge "res_pjsip_outbound_registration: Add debugging messages." into 13
-2015-04-28 19:18 +0000 [0e70dc0dc8]  Joshua Colp <jcolp@digium.com>
+2015-05-15 01:54 +0000 [091b436007]  snuffy <snuffy22@gmail.com>
 
-       * Merge "res_pjsip_outbound_registration: Don't fail on delayed processing: 13." into 13
-2015-04-27 16:56 +0000 [e39bd6ba46]  Mark Michelson <mmichelson@digium.com>
+       * cdr: Fix 'core show channel' CDR variable truncation.
 
-       * res_pjsip_outbound_registration: Don't fail on delayed processing: 13.
+         When the new Bridging API was implemented, the workspace variable
+         changed to a malloc'd string, causing sizeof() to always be 8 (char).
 
-         This is the Asterisk 13 version of a change to master that allows for
-         registration responses to be processed successfully potentially after
-         the original transaction has timed out. The main difference between this
-         and the master change is that the master version has API changes that
-         are unacceptable for 13. For 13, this is worked around by adding a new
-         API call that the outbound registration code uses instead.
+         Revert back to stored on stack string for workspace.
 
-         The following is the text from the master version of this commit:
+         ASTERISK-25090 #close
 
-         Odd behaviors have been observed during outbound registrations. The most
-         common problem witnessed has been one where a request with
-         authentication credentials cannot be created after receiving a 401
-         response. Other behaviors include apparently processing an incorrect SIP
-         response.
+         Change-Id: I51e610ae87371df771ce7693a955510efb90f8f7
+2015-05-14 00:06 +0000 [6b7282ca40]  Corey Farrell <git@cfware.com>
 
-         Inspecting the code led to an apparent issue with regards to how we
-         handle transactions in outbound registration code. When a response to a
-         REGISTER arrives, we save a pointer to the transaction and then push a
-         task onto the registration serializer. Between the time that we save the
-         pointer and push the task, it's possible for the transaction to be
-         destroyed due to a timeout. It's also possible for the address to be
-         reused by the transaction layer for a new transaction.
+       * Fix potential crash after unload of func_periodic_hook or test_message.
 
-         To allow for authentication of a REGISTER request to be authenticated
-         after the transaction has timed out, we now also hold a reference to the
-         original REGISTER request instead of the transaction. The function for
-         creating a request with authentication has been altered to take the
-         original request instead of the transaction where the original request
-         was sent.
+         These modules save a pointer to the context they create on load, and
+         use that pointer to destroy the context at unload.  It is not safe
+         to save this pointer, it is replaced during load of pbx_config,
+         pbx_lua or pbx_ael.
 
-         ASTERISK-25020
-         Reported by Mark Michelson
+         This change causes the modules to pass NULL to ast_context_destroy,
+         a safer way to perform the unregistration since it does not use
+         a pointer that could become invalid.
 
-         Change-Id: If1ee5f601be839479a219424f0358a229f358f7c
-2015-04-27 14:44 +0000 [1bf008fc76]  Mark Michelson <mmichelson@digium.com>
+         ASTERISK-25085 #close
+         Reported by: Corey Farrell
 
-       * res_pjsip_outbound_registration: Add debugging messages.
+         Change-Id: I6a00ec8e38046058f97dc703e1adcde9bf517835
+2015-05-13 15:41 +0000 [02c5130589]  Jonathan Rose <jrose@digium.com>
 
-         When problems occur regarding outbound registrations, it currently
-         is difficult to debug. Most off-nominal paths had warning messages,
-         but sometimes we want to know what's going on before hitting the
-         off-nominal path. This patch adds lots of debugging output that
-         should give a clearer picture of what is happening with regards
-         to outbound registrations.
+       * Message.c: Clear message channel frames on cleanup
 
-         ASTERISK-25020
-         Reported by Mark Michelson
+         The message channel is a special channel that doesn't actually process frames.
+         However, certain actions can cause frames to be placed in the channel's read
+         queue including the Hangup application which is called on the channel after
+         each message is processed. Since the channel will continually be reused for
+         many messages, it's necessary to flush these frames at some point.
 
-         Change-Id: I577bde7860be0a6c872b5bcb4d5047340bf45d45
+         ASTERISK-25083 #close
+         Reported by: Jonathan Rose
 
-2015-04-28 07:13 +0000 [7ee05892d6]  Joshua Colp <jcolp@digium.com>
+         Change-Id: Idf18df73ccd8c220be38743335b5c79c2a4c0d0f
 
-       * Merge "Example script for scan-build (the llvm static analyzer)" into 13
-2015-04-28 05:38 +0000 [0b6410c4f8]  Steve Davies <steve@one47.co.uk>
+2015-05-12 17:45 +0000 [d49d64b79c]  Jonathan Rose <jrose@digium.com>
 
-       * res_rtp_asterisk: Resolve 2 discrete memory leaks in DTLS
+       * app_voicemail: fix moving when old messages full
 
-         ao2 ref leak in res_rtp_asterisk.c when a DTLS policy is created.
-         The resources are linked into a table, but the original alloc refs
-         are never released. ast_strdup leak in rtp_engine.c. If
-         ast_rtp_dtls_cfg_copy() is called twice on the same destination struct,
-         a pointer to an alloc'd string is overwritten before the string is free'd.
+         When completing voicemail playback of a message in the 'INBOX', the
+         message gets moved to the 'Old' messages folder. Without this patch, if
+         the 'Old' folder is already at its set limit, then the 'INBOX' message will
+         simply be deleted. With this patch, the flag to delete the message will be
+         removed if the save_to_folder function indicates that the message could
+         not be moved due to a full folder.
 
-         ASTERISK-25022
-         Reported by: one47
+         ASTERISK-25082 #close
+         Reported by: Jonathan Rose
+         Review: https://gerrit.asterisk.org/#/c/448/
 
-         Change-Id: I62a8ceb8679709f6c3769136dc6aa9a68202ff9b
+         Change-Id: I2be440a09f42e2d06d50975c40d1ad7f836ecb3f
+2015-05-04 20:11 +0000 [9b13536fed]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
 
-2015-04-28 06:55 +0000 [427209603d]  Joshua Colp <jcolp@digium.com>
+       * main/manager.c: Bugfix sort action_manager by alphabetically
 
-       * Merge "cdr/cdr_odbc.c: Added to record new columns add on CDR 1.8 Asterisk Version" into 13
-2015-04-27 12:11 +0000 [99fb87ae13]  George Joseph <george.joseph@fairview5.com>
+         Fix the alphabetic order added on ast_manager_register_struct. The order
+         for struct manager_action added is not working, this change fixes the
+         problem.
 
-       * res_pjsip: Fix SEGV on pending-qualify contacts
+         Change-Id: I149da0cd06c3c4445d7516cc303358e9f26f8b4b
 
-         Permanent contacts that hadn't been qualified yet were missing
-         their contact_status entries causing SEGVs when running CLI
-         commands.
+2015-05-08 18:01 +0000 [e67e8d5c7f]  Alexandre Fournier <alexandre.fournier@kiplink.fr>
 
-         This patch makes sure that contact_statuses are created for
-         both dynamic and permanent contacts when they are created.
-         It also adds checks in the CLI code to make sure there's a
-         contact_status, just in case.
+       * res_config_mysql: Fix broken column type checking
 
-         ASTERISK-25018 #close
-         Reported-by: Ivan Poddubny
-         Tested-by: Ivan Poddubny
-         Tested-by: George Joseph
+         MySQL configuration engine contains a bug in require_mysql(). This
+         function is used for column type checking in tables. This bug only
+         affects DATETIME, DATE and FLOAT types.
 
-         Change-Id: I3cc13e5cedcafb24c400368b515b02d7fb81e029
+         It came from mixing the first condition (switch-case-like
+         if/then/else), to check the expected column type, with the second
+         condition, to check the actual column type against the expected column
+         type. Both conditions must be checked separately in order to avoid the
+         execution of the wrong block.
 
-2015-04-15 18:55 +0000 [d5dd43856e]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+         ASTERISK-18252 #comment This patch might fix the issue
+         Reported by: Gareth Blades
 
-       * cdr/cdr_odbc.c: Added to record new columns add on CDR 1.8 Asterisk Version
+         ASTERISK-25041 #close
+         Reported by: Alexandre Fournier
+         Tested by: Alexandre Fournier
 
-         Add new column to INSERT new columns added in cdr 1.8 version. The columns are:
-          * peeraccount
-          * linkedid
-          * sequence
-         This feature is configurable in cdr_odbc.conf using a new configuration
-         option, 'newcdrcolumns'.
+         Change-Id: I0b8bf7e68ab938be8e6525a249260cb648cb0bfa
 
-         ASTERISK-24976 #close
+2015-05-10 07:37 +0000 [16f602f5c2]  Yousf Ateya <y.ateya@starkbits.com>
 
-         Change-Id: Ibe0c7540a88305c6012786f438a0813ad8b19127
-2015-04-26 17:21 +0000 [e9788056e9]  Matt Jordan <mjordan@digium.com>
+       * res_rtp_asterisk: Correction for the limit which detects that a packet is DTLS.
 
-       * channels/chan_skinny: Fix compilation error introduced in f8e21a1adf
+         First byte of DTLS packet shall be in range 20-63, not 20-64. Refer to RFC
+         https://tools.ietf.org/html/rfc5764#section-5.1.2 for correct values.
 
-         A typo in commit f8e21a1adf resulted in a compilation error in
-         chan_skinny. This patch fixes the typo.
+         Change-Id: Iae6fa0d72b37c36a27fe40686e0ae6fba3afec31
 
-         ASTERISK-24917
+2015-05-12 17:34 +0000 [c780b6e431]  Richard Mudgett <rmudgett@digium.com>
 
-         Change-Id: Id7f4ad1fe948eb2408622e80c27936ce4516c33c
+       * chan_dahdi/sig_pri: Fix crash on ISDN call hangup collision.
 
-2015-04-26 15:53 +0000 [2d277996b7]  Matt Jordan <mjordan@digium.com>
+         If an ISDN call is hungup by both sides at the same time a crash could
+         happen.
 
-       * Merge "Clang: Fix some more tautological-compare warnings." into 13
-2015-04-24 13:07 +0000 [145f65598c]  Matt Jordan <mjordan@digium.com>
+         * Added missing NULL checks for the owner channel after calling
+         pri_queue_pvt_cause_data() in two places.  Code after those calls need to
+         check the owner channel pointer for NULL before use because
+         pri_queue_pvt_cause_data() needs to do deadlock avoidance to lock the
+         owner and the owner may get hung up.
 
-       * Merge "app_confbridge: Default the template option to a compatible default profile." into 13
-2015-04-23 15:11 +0000 [7e5056b393]  Kevin Harwell <kharwell@digium.com>
+         ASTERISK-21893 #close
+         Reported by:  Alexandr Gordeev
 
-       * app_confbridge: Default the template option to a compatible default profile.
+         Change-Id: Ica3e266ebc7a894b41d762326f08653e1904bb9a
 
-         Confbridge dynamic profiles did not have a default profile unless you
-         explicitly used Set(CONFBRIDGE(bridge,template)=default_bridge). If a
-         template was not set prior to the bridge being created then some
-         options were left with no default values set. This patch makes it so
-         the default templates are set to the default bridge and user profiles.
+2015-05-10 02:26 +0000 [6627de830b]  Sebastian Kemper <sebastian_ml@gmx.net>
 
-         ASTERISK-24749 #close
-         Reported by: philippebolduc
+       * General: Fix recent menuselect-related cross compile regression
 
-         Change-Id: I1bd6e94b38701ac2112d842db68de63d46f60e0a
+         MAKE_MENUSELECT currently sets CC to CC, which is the compiler for the
+         target platform. But menuselect is to be run on the build system, so
+         BUILD_CC needs to be used instead - like it was in the past, before the
+         recent changes (https://reviewboard.asterisk.org/r/4370/). This is the
+         patch for ASTERISK-25074.
 
-2015-04-24 09:17 +0000 [1da9ec969d]  Mark Michelson <mmichelson@digium.com>
+         ASTERISK-25074 #close
+         Reported by: Sebastian Kemper
+         Tested by: Sebastian Kemper
 
-       * res_pjsip_outbound_authenticator: Increase CSeq on authed requests.
+         Change-Id: I8a2b1fc5deb6ad2b80f49baca35b1b13d468ebf8
 
-         The way PJSIP generates an authenticated request is to use a previous
-         request as a template. This means that the authenticated request will
-         have the same Call-ID, From header (including tag), and CSeq as the
-         original request. PJSIP generates a new branch on the Via header to
-         indicate that this is a new transaction, though.
+2015-05-05 15:32 +0000 [637c8f065e]  gtjoseph <george.joseph@fairview5.com>
 
-         There are some SIP implementations, though, that do not notice the
-         change in the branch and therefore will match the authed request to the
-         original request's transaction. Since the CSeq is the same, the server
-         will repeat the response it sent to the original request.
+       * sorcery: Add API to insert/remove a wizard to/from an object type's list
 
-         This patch aids interoperability by increasing the CSeq of the authed
-         request by one.
+         Currently you can 'apply' a wizard to an object type but the wizard
+         always goes at the end of the object type's wizard list.  This patch
+         adds a new ast_sorcery_insert_wizard_mapping function that allows
+         you to insert a wizard anyplace in the list.  I.E.  You could
+         add a caching wizard to an object type and place it before all
+         wizards.
 
-         ASTERISK-24845 #close
-         Reported by: Carl Fortin
-         Tested by: Carl Fortin
+         ast_sorcery_get_wizard_mapping_count and
+         ast_sorcery_get_wizard_mapping were added to allow examination
+         of the mapping list.
 
-         Change-Id: I39c4ca52e688a9f83bcc1878371334becdc5be01
+         ast_sorcery_remove_mapping was added to remove a mapping by name.
 
-2015-04-24 09:24 +0000 [bf3d9db4a6]  Matt Jordan <mjordan@digium.com>
+         As part of this patch, the object type's wizard list was converted
+         from an ao2_container to an AST_VECTOR_RW.
 
-       * Merge "res_pjsip_t38: Don't crash on authenticated reinvite after originated T.38 FAX." into 13
-2015-04-20 13:06 +0000 [cb318f3960]  Diederik de Groot <ddegroot@talon.nl>
+         A new test was added to test_sorcery for this capability.
 
-       * Example script for scan-build (the llvm static analyzer)
+         ASTERISK-25044 #close
 
-          - Added Pre-amble (Options / Flags / Usage Example / GNU License)
-          - Extended Configurability
-          - Made Executable
+         Change-Id: I9d2469a9296b2698082c0989e25e6848dc403b57
 
-         ASTERISK-24917
-         Change-Id: I70405fe54e4be7dbfbcb62e291690069b88617a8
+2015-05-12 01:31 +0000 [3cdb7950f0]  Corey Farrell <git@cfware.com>
 
-2015-04-23 17:23 +0000 [b3cd5bc77f]  Mark Michelson <mmichelson@digium.com>
+       * Fix processing of asterisk.conf debug=yes.
 
-       * Merge "Clang: change previous tautological-compare fixes." into 13
-2015-04-23 12:54 +0000 [eabf3b5a3c]  Mark Michelson <mmichelson@digium.com>
+         The code which reads asterisk.conf supports processing the debug
+         option with ast_true, but ast_true returns -1.  This causes debug
+         to still be off, convert to 1 so debug will be on as requested.
 
-       * res_pjsip_t38: Don't crash on authenticated reinvite after originated T.38 FAX.
+         ASTERISK-25042
+         Reported by: Corey Farrell
 
-         When Asterisk originates a channel to an application, the channel is
-         hung up once the application finishes executing. When the application
-         in question is SendFax, the Asterisk PJSIP code will attempt to reinvite
-         the T.38 session to audio after the FAX completes. The hangup of the
-         channel happens in the midst of this reinvite transaction. In most
-         circumstances, this works out okay because the BYE is delayed until the
-         reinvite transaction can complete.
+         Change-Id: I3c898b7d082d914b057e111b9357fde46bad9ed6
 
-         However, if the reinvite that Asterisk sends receives a 401/407
-         response, then Asterisk's attempt to re-send the reinvite with
-         authentication will fail. This is because the session supplement in
-         res_pjsip_t38 makes the assumption that the channel on the session will
-         always be non-NULL. Since the channel has been hung up, though, the
-         channel is now NULL. Attempting to operate on the channel causes a
-         crash.
+2015-05-01 23:43 +0000 [6553a00770]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
 
-         This patch fixes the issue by ensuring that the channel on the session
-         is not NULL before attempting to mess with the T.38 framehook.
+       * cdr_pgsql: Use PQescapeStringConn for escaping names.
 
-         This patch also contains some corrections for comments that were
-         incorrect and really confused me when I first started looking at the
-         code.
+         Use function PQescapeStringConn for escaping the name
+         of the table and schema instead of doing it manually.
 
-         ASTERISK-25004 #close
-         Reported by Mark Michelson
+         Change-Id: I6709165e2d00463e9c813d24f17830ad4910b599
 
-         Change-Id: Ic5a1230668369dda4bb13524098aed9306ab45a0
-2015-04-23 09:16 +0000 [f70d21b2cf]  George Joseph <george.joseph@fairview5.com>
+2015-05-09 16:58 +0000 [ea917fefaf]  gtjoseph <george.joseph@fairview5.com>
 
-       * res_pjsip:  Validate that contact uris start with sip: or sips:
+       * vector:  Add REMOVE, ADD_SORTED and RESET macros
 
-         Currently we use pjsip_parse_hdr to validate contact uris but it
-         appears that it allows uris without a scheme if there's a port
-         supplied.  I.E myexample.com will fail but myexample.com:5060 will
-         pass even though it has no scheme.  This causes SEGVs later on
-         whenever the uri is used.
+         Based on feedback from Corey Farrell and Y Ateya, a few new
+         macros have been added...
 
-         To prevent this, permanent_contact_validate has been updated to check
-         that the scheme is either 'sip' or 'sips'.
+         AST_VECTOR_REMOVE which takes a parameter to indicate if
+         order should be preserved.
 
-         2 uses of possibly-null endpoint have also been fixed in
-         create_out_of_dialog_request.
+         AST_VECTOR_ADD_SORTED which adds an element to
+         a sorted vector.
 
-         ASTERISK-24999
+         AST_VECTOR_RESET which cleans all elements from the vector
+         leaving the storage intact.
 
-         Change-Id: Ifc17d16a4923e1045d37fe51e43bbe29fa556ca2
-         Reported-by: Brad Latus
+         Change-Id: I41d32dbdf7137e0557134efeff9f9f1064b58d14
 
-2015-04-23 08:00 +0000 [1bb16bedc7]  Diederik de Groot <ddegroot@talon.nl>
+2015-05-11 07:07 +0000 [d5864a358c]  Ivan Poddubny <ivan.poddubny@gmail.com>
 
-       * Clang: change previous tautological-compare fixes.
+       * pbx/pbx_spool: Fix issue when call files were executed too early
 
-         clang can warn about a so called tautological-compare, when it finds
-         comparisons which are logically always true, and are therefor deemed
-         unnecessary.
+         pbx_spool used to delete/move the call file upon successful outgoing
+         call completion, but did not delete it from in-memory list of files
+         (dirlist, used only when compiled with inotify/kqueue support).
+         That resulted in an extra attempt to process that filename after
+         retrytime seconds.
+         Then, if a new file with the same name appears that is scheduled
+         in future further than the completed one plus its retrytime,
+         then it gets executed earlier than expected.
 
-         Exanple:
-         unsigned int x = 4;
-         if (x > 0)    // x is always going to be bigger than 0
+         This patch fixes remove_from_queue function to also remove the entry
+         from the dirlist.
 
-         Enum Case:
-         Each enumeration is its own type. Enums are an integer type but they
-         do not have to be *signed*. C leaves it up to the compiler as an
-         implementation option what to consider the integer type of a particu-
-         lar enumeration is. Gcc treats an enum without negative values as
-         an int while clang treats this enum as an unsigned int.
-
-         rmudgett & mmichelson: cast the enum to (unsigned int) in assert.
-         The cast does have an effect. For gcc, which seems to treat all enums
-         as int, the cast to unsigned int will eliminate the possibility of
-         negative values being allowed. For clang, which seems to treat enums
-         without any negative members as unsigned int, the cast will have no
-         effect. If for some reason in the future a negative value is ever
-         added to the enum the assert will still catch the negative value.
-
-         ASTERISK-24917
+         ASTERISK-17069 #close
+         Reported by: Jeremy Kister
 
-         Change-Id: I0557ae0154a0b7de68883848a609309cdf0aee6a
+         ASTERISK-24442 #close
+         Reported by: tootai
 
-2015-04-23 06:50 +0000 [a06924e9d9]  Matt Jordan <mjordan@digium.com>
+         Change-Id: If9ec9b88073661ce485d6b008fd0b2612e49a28b
 
-       * Merge "Astobj2: Ensure all calls to __adjust_lock pass a valid object." into 13
-2015-04-22 16:22 +0000 [1474bb05f6]  George Joseph <george.joseph@fairview5.com>
+2015-05-08 14:47 +0000 [4dbd4021c9]  Rusty Newton <rnewton@digium.com>
 
-       * res_corosync: Add check for config file before calling corosync apis
+       * configs/basic-pbx: Modified main IVR to play new Allison prompt.
 
-         On some systems, res_corosync isn't compatible with the installed version of
-         corosync so corosync_cfg_initialize fails, load_module returns LOAD_FAILURE,
-         and Asterisk terminates.  The work around has been to remember to add
-         res_corosync as a noload in modules.conf.  A better solution though is to have
-         res_corosync check for its config file before attempting to call corosync apis
-         and return LOAD_DECLINE if there's no config file.  This lets Asterisk loading
-         continue.
+         The main IVR was playing demo-congrats. I've switched it over to the
+         basic-pbx-ivr-main file that we added in core sounds 1.4.27. This prompt
+         has Allison prompting the user with the actual IVR menu.
 
-         If you have a res_corosync.conf file and res_corosync fails, you get the same
-         behavior as today and the fatal error tells you something is wrong with the
-         install.
+         ASTERISK-24892 #close
 
-         ASTERISK-24998
+         Change-Id: Ifb749616ff8e156a1031ddaddfcc9244767a095d
 
-         Change-Id: Iaf94a9431a4922ec4ec994003f02135acfdd3889
-2015-04-22 15:17 +0000 [73efb093b8]  Corey Farrell <git@cfware.com>
+2015-05-08 10:39 +0000 [613a461c3d]  Sean Bright <sean@malleable.com>
 
-       * Astobj2: Ensure all calls to __adjust_lock pass a valid object.
+       * res_rtp_asterisk: Issue ERROR if res_srtp is not found.
 
-         __adjust_lock doesn't check for invalid objects, and doesn't have an
-         appropriate return value for invalid objects.  Most callers of
-         __adjust_lock pass objects that have already been confirmed valid,
-         this change adds checks before the remaining calls.
+         While trying to get WebRTC working with chan_pjsip, I was running
+         into the following error:
 
-         ASTERISK-24997 #close
-         Reported by: Corey Farrell
+             Attempted to set an invalid DTLS-SRTP configuration on RTP
+             instance...
 
-         Change-Id: I669100f87937cc3f867cec56a27ae9c01292908f
+         Josh helpfully pointed out that res_srtp.so might not be loaded, and
+         sure enough, it wasn't. This patch adds a ERROR indiciating as much
+         to hopefully help others having a similar problem.
 
-2015-04-22 16:32 +0000 [b0e929219b]  George Joseph <george.joseph@fairview5.com>
+         Change-Id: I13aa477b47b299876728a21b130998a0ea6cd19f
 
-       * .gitignore:  Add .gcno and .gcda
+2015-05-07 17:49 +0000 [394fcb5eab]  Rusty Newton <rnewton@digium.com>
 
-         Products of --enable-coverage
+       * sounds: Add Swedish sounds to Makefile and XML
 
-         Change-Id: Ie20882d64b60692e2c941ea8872ab82a86ce77a3
+         Added the necessary lines to the Makefile and sounds.xml so we'll have the
+         Swedish sounds in all available formats in menuselect.
 
-2015-04-22 14:25 +0000 [5a3948a66f]  Matt Jordan <mjordan@digium.com>
+         See also: Swedish sounds were added into the core sounds release 1.4.27.
 
-       * Merge "Fix/Update clang-RAII macro implementation" into 13
-2015-04-22 14:07 +0000 [2ef1e1fc68]  Mark Michelson <mmichelson@digium.com>
+         ASTERISK-24744 #close
 
-       * Merge "res_pjsip_mwi: Send unsolicited MWI NOTIFY on startup and when endpoint registers." into 13
-2015-04-22 04:17 +0000 [d6dfc85666]  Diederik de Groot <ddegroot@talon.nl>
+         Reported by: Tove Hjelm
+         Tested by: Rusty Newton
 
-       * Clang: Fix some more tautological-compare warnings.
+         Change-Id: Ib6f4fd177afd1667b2402735034001d4d055a908
 
-         clang can warn about a so called tautological-compare, when it finds
-         comparisons which are logically always true, and are therefor deemed
-         unnecessary.
+2015-05-05 11:35 +0000 [2115f11b54]  Alexander Traud (License 6520)
 
-         Exanple:
-         unsigned int x = 4;
-         if (x > 0)    // x is always going to be bigger than 0
+       * tcptls: Avoiding ERR_remove_state in OpenSSL.
 
-         Enum Case:
-         Each enumeration is its own type. Enums are an integer type but they
-         do not have to be *signed*. C leaves it up to the compiler as an
-         implementation option what to consider the integer type of a particu-
-         lar enumeration is. Gcc treats an enum without negative values as
-         an int while clang treats this enum as an unsigned int.
+         ERR_remove_state was deprecated with OpenSSL 1.0.0 and was replaced by 
+         ERR_remove_thread_state. ERR_load_SSL_strings and ERR_load_BIO_strings were 
+         called by SSL_load_error_strings already and got removed. These changes allow 
+         OpenSSL forks like BoringSSL to be used with Asterisk.
 
-         rmudgett & mmichelson: cast the enum to (unsigned int) in assert.
-         The cast does have an effect. For gcc, which seems to treat all enums
-         as int, the cast to unsigned int will eliminate the possibility of
-         negative values being allowed. For clang, which seems to treat enums
-         without any negative members as unsigned int, the cast will have no
-         effect. If for some reason in the future a negative value is ever
-         added to the enum the assert will still catch the negative value.
+         ASTERISK-25043 #close
+         Reported by: Alexander Traud
+         patches:
+           asterisk_with_BoringSSL.patch uploaded by Alexander Traud (License 6520)
 
-         ASTERISK-24917
-         Change-Id: Ief23ef68916192b9b72dabe702b543ecfeca0b62
+         Change-Id: If1c0871ece21a7e0763fafbd2fa023ae49d4d629
+         (cherry picked from commit 247fef66537b59649e7571d64e2c574a106dbd65)
 
-2015-04-22 05:45 +0000 [edd9e54818]  Joshua Colp <jcolp@digium.com>
+2015-05-07 14:54 +0000 [5392e970d0]  gtjoseph <george.joseph@fairview5.com>
 
-       * Merge "Check for ao2_alloc failure in __ast_channel_internal_alloc." into 13
-2015-04-14 14:04 +0000 [7b57116833]  Joshua Colp <jcolp@digium.com>
+       * doc: Make progdocs play nice with git
 
-       * res_pjsip_mwi: Send unsolicited MWI NOTIFY on startup and when endpoint registers.
+         Moved contrib/asterisk-ng-doxygen to doc/asterisk-ng-doxygen.in
 
-         Currently the res_pjsip_mwi module only sends an unsolicited MWI NOTIFY upon
-         a mailbox state change (such as a new message being left, or one being deleted).
-         In practice this is not sufficient to keep clients aware of the current MWI status.
+         Changed /Makefile to copy asterisk-ng-doxygen.in to
+         asterisk-ng-doxygen then modify it with version instead of
+         modifying asterisk-ng-doxygen directly.  Updated clean
+         targets as well.
 
-         This change makes the module send unsolicited MWI NOTIFY on startup so that
-         clients are guaranteed to have the most up to date MWI information. It also makes
-         clients receive an unsolicited MWI NOTIFY upon registration so if they are unaware
-         of the current MWI status they receive it.
+         Updated /.gitignore and doc/.gitignore.
 
-         ASTERISK-24982 #close
-         Reported by: Joshua Colp
+         Change-Id: I38712d3e334fa4baec19d30d05de8c6f28137622
 
-         Change-Id: I043f20230227e91218f18a82c7d5bb2aa62b1d58
+2015-05-04 14:43 +0000 [608f0a94ee]  Ivan Poddubny <ivan.poddubny@gmail.com>
 
-2015-04-22 05:29 +0000 [4423d5f755]  Joshua Colp <jcolp@digium.com>
+       * contrib/editors: Fix vim syntax highlighting of comments in config files
 
-       * Merge "res_pjsip_pubsub: Set the endpoint on SUBSCRIBE dialogs." into 13
-2015-04-21 15:17 +0000 [ad1a118632]  Corey Farrell <git@cfware.com>
+          * Added a lookbehind to one-line comment matcher to skip escaped
+            semicolons.
+          * Added support for block comments.
 
-       * Check for ao2_alloc failure in __ast_channel_internal_alloc.
+         Change-Id: Id17dfaeda8ed4be572e8107a0c010066584aaee7
 
-         Fix a crash that could occur in __ast_channel_internal_alloc if
-         ao2_alloc fails.
+2015-05-06 13:24 +0000 [d649d682c4]  Joshua Colp <jcolp@digium.com>
 
-         ASTERISK-24991 #close
+       * res_pjsip_exten_state: Fix race condition between sending NOTIFY and termination
 
-         Change-Id: I4ca89189eb22f907408cb87d0a1645cfe1314a90
+         The res_pjsip_exten_state module currently has a race condition between
+         processing the extension state callback from the PBX core and processing
+         the subscription shutdown callback from res_pjsip_pubsub. There is currently
+         no synchronization between the two. This can present a problem as while
+         the SIP subscription will remain valid the tree it points to may not.
+         This is in particular a problem as a task to send a NOTIFY may get queued
+         which will try to use the tree that may no longer be valid.
 
-2015-04-20 14:30 +0000 [3327560cb2]  Mark Michelson <mmichelson@digium.com>
+         This change does the following to fix this problem:
 
-       * res_pjsip_pubsub: Set the endpoint on SUBSCRIBE dialogs.
+         1. All access to the subscription tree is done within the task that
+         sends the NOTIFY to ensure that no other thread is modifying or
+         destroying the tree. This task executes on the serializer for the
+         subscriptions.
 
-         When SUBSCRIBE dialogs were established, we never associated
-         the endpoint that created the subscription with the dialog
-         we end up creating. In most cases, this ended up not causing
-         any problems.
+         2. A reference to the subscription serializer is kept to ensure it
+         remains valid for the lifetime of the extension state subscription.
 
-         The actual bug that was observed was that when a device that
-         was behind NAT established a subscription with Asterisk, Asterisk
-         would end up sending in-dialog NOTIFY requests to the device's
-         private IP addres instead of the public address of the NAT router.
+         3. The NOTIFY task has been changed so it will no longer attempt
+         to send a NOTIFY if the subscription has already been terminated.
 
-         When Asterisk receives the initial SUBSCRIBE from the device,
-         res_pjsip_nat rewrites the contact to the public address on which the
-         SUBSCRIBE was received. This allows for the dialog to have its target
-         address set to the proper public address. Asterisk then would send a 200
-         OK response to the SUBSCRIBE, then a NOTIFY with the initial
-         subscription state. The device would then send a 200 OK response to
-         Asterisk's NOTIFY.
+         ASTERISK-25057 #close
+         Reported by: Matt Jordan
 
-         Here's where things went wrong. When the 200 OK arrived, res_pjsip_nat
-         did not rewrite the address in the Contact header. Then, when the PJSIP
-         dialog layer processed the 200 OK, PJSIP would perform a comparison
-         between the IP address in the Contact header and its saved target
-         address for the dialog. Since they differed, PJSIP would update the
-         target dialog address to be the address in the Contact header. From this
-         point, if Asterisk needed to send a NOTIFY to the device, the result was
-         that the NOTIFY would be sent to the private address that the device
-         placed in the Contact header.
+         Change-Id: I0b3cd2fac5be8d9b3dc5e693aaa79846eeaf5643
 
-         The reason why res_pjsip_nat did not rewrite the address when it
-         received the 200 OK response was that it could not associate the
-         incoming response with a configured endpoint. This is because on a
-         response, the only way to associate the response to an endpoint is by
-         finding the dialog that the response is associated with and then finding
-         the endpoint that is associated with that dialog. We do not perform
-         endpoint lookups on responses. res_pjsip_pubsub skipped the step of
-         associating the endpoint with the dialog we created, so res_pjsip_nat
-         could not find the associated endpoint and therefore couldn't rewrite
-         the contact.
+2015-05-05 20:22 +0000 [5f9aea8e3c]  gtjoseph <george.joseph@fairview5.com>
 
-         This commit message is like 50x longer than the actual fix.
+       * vector:  Additional enhancements and fixes
 
-         ASTERISK 24981 #close
-         Reported by Mark Michelson
+         After using the new vector stuff for real I found...
 
-         Change-Id: I2b963c58c063bae293e038406f7d044a8a5377cd
-2015-04-20 18:00 +0000 [d08446ec36]  Richard Mudgett <rmudgett@digium.com>
+         A bug in AST_VECTOR_INSERT_AT that could cause a seg fault.
 
-       * chan_dahdi/sig_pri: Make post AMI HangupRequest events on PRI channels.
+         The callbacks needed to be closer to ao2_callback in behavior
+         WRT to CMP_MATCH and CMP_STOP behavior and the ability to return
+         a vector of matched entries.
 
-         The chan_dahdi channel driver is a very old driver.  The ability for it to
-         support ISDN was added well after the initial analog support.  Setting the
-         softhangup flags is a carry over from the original analog code.  The
-         driver was not updated to call ast_queue_hangup() which will post the AMI
-         HangupRequest event.
+         A pre-existing issue with APPEND and REPLACE was also fixed.
 
-         * Changed sig_pri.c to call ast_queue_hangup() instead of setting the
-         softhangup flag when the remote party initiates a hangup.
+         I also added a new macro to test.h that acts like ast_test_validate
+         but also accepts a return code variable and a cleanup label.  As well
+         as printing the error, it sets the rc variable to AST_TEST_FAIL and
+         does a goto to the specified label on error.  I had a local version
+         of this in test_vector so I just moved it.
 
-         ASTERISK-24895 #close
-         Reported by: Andrew Zherdin
+         ASTERISK-25045
 
-         Change-Id: I5fe2e48556507785fd8ab8e1c960683fd5d20325
+         Change-Id: I05e5e47fd02f61964be13b7e8942bab5d61b29cc
 
-2015-04-20 17:23 +0000 [96e18453f4]  Joshua Colp <jcolp@digium.com>
+2015-05-04 17:28 +0000 [68513e00f7]  Kevin Harwell <kharwell@digium.com>
 
-       * Merge "pjsip_options:  Fix non-qualified contacts showing as unavailable" into 13
-2015-04-20 13:01 +0000 [2be9cc2643]  Diederik de Groot <ddegroot@talon.nl>
+       * res_stasis_snoop: Spying on a single direction continually increases CPU
 
-       * Fix/Update clang-RAII macro implementation
+         Creating a snoop channel in ARI and spying only on a single direction (in or
+         out) results in CPU utilization continually increasing until the CPU is fully
+         consumed. This occurs because frames are being put in the opposing direction's
+         slin factory queue, but not being removed.
 
-         - When you need to refer to 'variable XXX' outside a block, it needs
-         to be declared as '__block XXX', otherwise it will not be available with-
-         in the block, making updating that variable hard to do, and ast_free
-         lead to issues.
+         Fixed the problem by always reading and disposing of frames from the opposite
+         queue of the direction selected.
 
-         - Removed the #error message
-         because it creates complications when compiling external projects
-         against asterisk For example when using a different compiler than the
-         one used to compile asterisk. The warning/error should be generated
-         during the configure process not the compilation process
+         ASTERISK-24938 #closes
 
-         ASTERISK-24917
-         Change-Id: I12091228090e90831bf2b498293858f46ea7a8c2
-2015-04-20 09:53 +0000 [b74b2cdcda]  George Joseph <george.joseph@fairview5.com>
+         Change-Id: I935bfd15f1db958f364d9d6b3b45582c0113dd60
+2015-05-06 16:00 +0000 [904f5d98f6]  Richard Mudgett <rmudgett@digium.com>
 
-       * pjsip_options:  Fix format specifier for int64_t rtt.
+       * chan_dahdi: Improve force_restart_unavailable_chans option description.
 
-         Contact status rtt is an int64_t and needs the PRId64 macro to
-         properly create the format specifier on 32-bit systems.
+         ASTERISK-25034
+         Reported by: Richard Mudgett
 
-         Change-Id: I4b8ab958fc1e9a179556a9b4ffa49673ba9fdec7
+         Change-Id: I1ff8f02124d2f4abd632a050da52c64285bb7f30
 
-2015-04-20 06:29 +0000 [27a122af66]  Matt Jordan <mjordan@digium.com>
+2015-05-05 18:17 +0000 [be1260a35f]  Richard Mudgett <rmudgett@digium.com>
 
-       * Merge "main/pbx: Don't attempt to destroy a previously destroyed exten/priority tuple" into 13
-2015-04-20 05:54 +0000 [9581a0ebf3]  Joshua Colp <jcolp@digium.com>
+       * features: Fix crash when transferee hangs up during DTMF attended transfer.
 
-       * Merge "Fix issue with AST_THREADSTORAGE_RAW when DEBUG_THREADLOCALS is enabled." into 13
-2015-04-18 13:36 +0000 [63169e00ff]  George Joseph <george.joseph@fairview5.com>
+         A crash happens with this sequence of steps:
+         1) Party A is connected to party B.
+         2) Party B starts a DTMF attended transfer.
+         3) Party A hangs up while party B is dialing party C.
 
-       * pjsip_options:  Fix non-qualified contacts showing as unavailable
+         When party A hangs up the bridge that party A and party B are in is
+         dissolved and party B is kicked out of the bridge.  When party B finishes
+         dialing party C he attempts to move to the new bridge with party C.  Since
+         party B is no longer in a bridge the attempted move dereferences a NULL
+         bridge_channel pointer and crashes.
 
-         The "Add qualify_timeout processing and eventing" patch introduced
-         an issue where contacts that had qualify_frequency set to 0 were
-         showing Unavailable instead Unknown.  This patch checks for
-         qualify_frequency=0 and create an "Unknown"  contact_status
-         with an RTT = 0.
+         * Made the hold(), unhold(), ringing(), and the bridge_move() functions
+         tolerant of the channel not being in a bridge.  The assertion that party B
+         is always in a bridge is not true if the bridged peer of party B hangs up
+         and dissolves the bridge.  Being tolerant of not being in a bridge allows
+         the peer hangup stimulus to be processed by the FSM.
 
-         Previously, the lack of contact_status implied Unknown but since
-         we're now changing endpoint state based on contact_status, I've
-         had to add new UNKNOWN status so that changes could trigger the
-         appropriate contact_status observers.
+         * Made the bridge_move() function return void since where the return value
+         for a failed move was checked generated a FSM coding ERROR message for a
+         normal off-nominal condition.
 
-         ASTERISK-24977: #close
+         * Eliminated most uses of RAII_VAR in bridge_basic.c.
 
-         Change-Id: Ifcbc01533ce57f0e4e584b89a395326e098b8fe7
+         ASTERISK-25003 #close
+         Reported by: Artem Volodin
 
-2015-04-19 15:49 +0000 [f0c82a173a]  Matt Jordan <mjordan@digium.com>
+         Change-Id: Ie2c1b14e5e647d4ea6de300bf56d69805d7bcada
 
-       * main/pbx: Don't attempt to destroy a previously destroyed exten/priority tuple
+2015-05-05 15:40 +0000 [8b0f85ac06]  gtjoseph <george.joseph@fairview5.com>
 
-         When a PBX registrar is unloaded, it will fail to remove its extension from
-         the context root_table if a dialplan application used by that extension is
-         still loaded. This can be the case for AGI, which can be unloaded after several
-         of the standard PBX providers. Often, this is harmless; however, if the
-         extension's priorities are removed during the failed unloading *and* the
-         dialplan application later unregisters, it leaves a ticking timebomb for the
-         next PBX provider that attempts to iterate over the extensions. When that
-         occurs, the peer_table pointer on the extension will already be set to NULL.
-         The current code does not check to see if the pointer is NULL before passing
-         it to a hashtab function this is not NULL tolerant.
+       * test_vector: Fix build breakage caused by ASTERISK_REGISTER_FILE
 
-         Since it is possible for the peer_table to be NULL when we normally would not
-         expect that to be the case, the solution in this patch is to simply skip over
-         processing an extension's priorities if peer_table is NULL.
+         My 13 version of test_vector had an ASTERISK_REGISTER_FILE() macro
+         call at the top which is only supported in master.  Once removed
+         builds are successful.
 
-         Prior to this patch, the tests/pbx/callerid_match test would crash during
-         module unload. With this patch, the test no longer crashes after running.
+         Change-Id: I7cac8b669bed6de543bbf4e2eec3cffc9741acdd
 
-         ASTERISK-24774 #close
+2015-05-05 14:48 +0000 [87263b47b5]  Ivan Poddubny <ivan.poddubny@gmail.com>
+
+       * app_queue: Fix queue_log EXITWITHTIMEOUT containing only 1 parameter
+
+         This patch fixes EXITWITHTIMEOUT queue_log entry to always come with 3
+         parameters: position, original position and waiting time.
+
+         ASTERISK-25038 #close
+         Reported by: Etienne Lessard
+
+         Change-Id: I0c62045922e26bee2125e93aee1dee17eee79618
+
+2015-05-05 09:47 +0000 [366ea63438]  Corey Farrell <git@cfware.com>
+
+       * res_ari_bridges: Add missing dependencies.
+
+         Missed this module in the previous commit.  res_ari_bridges uses symbols
+         from res_stasis_playback and res_stasis_recording.
+
+         ASTERISK-25027 #close
          Reported by: Corey Farrell
 
-         Change-Id: I2bbeecb7e0f77bac303a1b9135e4cdb4db6d4c40
+         Change-Id: I90bf756abd25adfc4920d2869ebe7feb636b8c5f
 
-2015-04-17 18:05 +0000 [82bc0fd3ad]  Richard Mudgett <rmudgett@digium.com>
+2015-05-05 09:27 +0000 [69ae8cf0a4]  Corey Farrell <git@cfware.com>
 
-       * res_fax: Fix latent bug exposed by ASTERISK-24841 changes.
+       * pbx_config: Register manager actions with module version of macro.
 
-         Three fax related tests started failing as a result of changes made for
-         ASTERISK-24841:
-         tests/fax/pjsip/gateway_t38_g711
-         tests/fax/sip/gateway_mix1
-         tests/fax/sip/gateway_mix3
+         Switch manager actions in pbx_config to use the registration macro that
+         passes the module pointer, allowing pbx_config reference to be bumped
+         while the manager actions run.
 
-         Historically, ast_channel_make_compatible() did nothing if the channels
-         were already "compatible" even if they had a sub-optimal translation path
-         already setup.  With the changes from ASTERISK-24841 this is no longer
-         true in order to allow the best translation paths to always be picked.  In
-         res_fax.c:fax_gateway_framehook() code manually setup the channels to go
-         through slin and then called ast_channel_make_compatible().  With the
-         previous version of ast_channel_make_compatible() this was always a
-         no-operation.
+         ASTERISK-25061 #close
+         Reported by: Corey Farrell
 
-         * Remove call to ast_channel_make_compatible() in fax_gateway_framehook()
-         that now undoes what was just setup when the framehook is attached.
+         Change-Id: I422c50dd74814616ac10c5e9c6598a0b1bc2c44e
 
-         * Fixed locking around saving the channel formats in
-         fax_gateway_framehook() to ensure that the formats that are saved are
-         consistent.
+2015-05-04 12:16 +0000 [181ae3b8d9]  Joshua Colp <jcolp@digium.com>
 
-         * Fix copy pasta errors in fax_gateway_framehook() that confuses read and
-         write when dealing with saved channel formats.
+       * stasis: Fix dial masquerade datastore lifetime
 
-         ASTERISK-24841
-         Reported by: Matt Jordan
+         A recent change went into Asterisk which added reference counts to the
+         channels stored in a dial masquerade datastore. Unfortunately this
+         included a reference to the caller in a dialing operation. While all
+         of the dialed targets have the datastore removed from them upon dialing
+         completion this did not occur for the caller, causing it to have a
+         reference to itself that could go never go away (as it depended on
+         the destruction of the datastore which only happened when the channel
+         was destroyed). This resulted in the caller channel remaining on the
+         system despite it having hung up.
 
-         Change-Id: I6fda0877104a370af586a5e8cf9e161a484da78d
+         This change does the following to fix this issue:
 
-2015-04-17 16:19 +0000 [c59a800707]  Corey Farrell <git@cfware.com>
+         1. The dial masquerade datastore is now removed from the caller upon
+         dialing completion, just like the dialed targets.
+         2. Upon destruction of the caller all the dialed targets are also
+         removed from the dial masquerade datastore (just in case).
+         3. The reference to the caller has been removed as it should not be
+         possible for the datastore to now be valid/useful after the lifetime
+         of the caller has ended.
 
-       * Fix issue with AST_THREADSTORAGE_RAW when DEBUG_THREADLOCALS is enabled.
+         ASTERISK-25025 #close
 
-         When DEBUG_THREADLOCALS is enabled it causes the threadlocal cleanup to be
-         called as a function.  This causes a compile error with raw threadstorage as
-         it uses NULL for cleanup.  This fix uses a macro that provides NULL when
-         DEBUG_THREADLOCALS is disabled, and replaces the call to "c_cleanup(data);"
-         with "{};" when DEBUG_THREADLOCALS is enabled.
+         Change-Id: I1ef4ca5ca04980028604cc2af5d2992ac3431b3f
 
-         ASTERISK-24975 #close
-         Reported by: Ashley Sanders
+2015-05-01 19:25 +0000 [7a7e9733c2]  gtjoseph <george.joseph@fairview5.com>
 
-         Change-Id: I3ef7428ee402816d9fcefa1b3b95830c00d5c402
+       * vector:  Traversal, retrieval, insert and locking enhancements
 
-2015-04-17 15:57 +0000 [e05b076827]  Matt Jordan <mjordan@digium.com>
+         Renamed AST_VECTOR_INSERT to AST_VECTOR_REPLACE because it really
+         does replace not insert.  The few users of AST_VECTOR_INSERT were
+         refactored.  Because these are macros, there should be no ABI
+         compatibility issues.
 
-       * Merge "Detect potential forwarding loops based on count." into 13
-2015-04-15 10:38 +0000 [4f1a8dbe92]  Mark Michelson <mmichelson@digium.com>
+         Added AST_VECTOR_INSERT_AT that actually inserts an element into the
+         vector at a specific index pushing existing elements to the right.
 
-       * Detect potential forwarding loops based on count.
+         Added AST_VECTOR_GET_CMP that can retrieve from the vector based
+         on a user-provided compare function.
 
-         A potential problem that can arise is the following:
+         Added AST_VECTOR_CALLBACK function that will execute a function
+         for each element in the vector.  Similar to ao2_callback and
+         ao2_callback_data functions although the vector callback can take
+         a variable number of arguments.  This should allow easy migration
+         to a vector where a container might be too heavy.
 
-         * Bob's phone is programmed to automatically forward to Carol.
-         * Carol's phone is programmed to automatically forward to Bob.
-         * Alice calls Bob.
+         Added read/write locked vector and lock manipulation macros.
 
-         If left unchecked, this results in an endless loops of call forwards
-         that would eventually result in some sort of fiery crash.
+         Added unit tests.
 
-         Asterisk's method of solving this issue was to track which interfaces
-         had been dialed. If a destination were dialed a second time, then
-         the attempt to call that destination would fail since a loop was
-         detected.
+         ASTERISK-25045 #close
 
-         The problem with this method is that call forwarding has evolved. Some
-         SIP phones allow for a user to manually forward an incoming call to an
-         ad-hoc destination. This can mean that:
+         Change-Id: I2e07ecc709d2f5f91bcab8904e5e9340609b00e0
 
-         * There are legitimate use cases where a device may be dialed multiple
-         times, or
-         * There can be human error when forwarding calls.
+2015-05-03 13:55 +0000 [040d2f8558]  Corey Farrell <git@cfware.com>
 
-         This change removes the old method of detecting forwarding loops in
-         favor of keeping a count of the number of destinations a channel has
-         dialed on a particular branch of a call. If the number exceeds the
-         set number of max forwards, then the call fails. This approach has
-         the following advantages over the old:
+       * main/test.c: Add test to verify there were no registration errors.
 
-         * It is much simpler.
-         * It can detect loops involving local channels.
-         * It is user configurable.
+         This adds a test that will fail if any test failed to register. Also fail
+         if any test registration produced a warning about missing a leading or
+         trailing slash.
 
-         The only disadvantage it has is that in the case where there is a
-         legitimate forwarding loop present, it takes longer to detect it.
-         However, the forwarding loop is still properly detected and the
-         call is cleaned up as it should be.
+         ASTERISK-25053 #close
+         Reported by: Corey Farrell
 
-         Address review feedback on gerrit.
+         Change-Id: I93e50b8fcbcfa7f1f5b41b2c44a51685c09529c3
 
-         * Correct "mfgium" to "Digium"
-         * Decrement max forwards by one in the case where allocation of the
-           max forwards datastore is required.
-         * Remove irrelevant code change from pjsip_global_headers.c
+2015-04-21 11:52 +0000 [3dcec04ab5]  Martin Tomec <tomec.martin@gmail.com>
 
-         ASTERISK-24958 #close
+       * res_odbc: Use negative connection cache for all connections
 
-         Change-Id: Ia7e4b7cd3bccfbd34d9a859838356931bba56c23
-2015-04-11 16:56 +0000 [674b18bdf0]  George Joseph <george.joseph@fairview5.com>
+         Apply the negative connection cache setting to all connections,
+         even those that are not pooled. This ensures that the connection
+         will not be re-established before the negative connection cache
+         time is met.
 
-       * pjsip_options: Add qualify_timeout processing and eventing
+         ASTERISK-22708 #close
 
-         This is the second follow-on to https://reviewboard.asterisk.org/r/4572/ and the
-         discussion at
-         http://lists.digium.com/pipermail/asterisk-dev/2015-March/073921.html
+         Change-Id: I431cc2e8584ab0b6908b3523d0a0e18c9a527271
+2015-05-03 21:03 +0000 [f38066fcad]  Corey Farrell <git@cfware.com>
 
-         The basic issues are that changes in contact status don't cause events to be
-         emitted for the associated endpoint.  Only dynamic contact add/delete actions
-         update the endpoint.  Also, the qualify timeout is fixed by pjsip at 32 seconds
-         which is a long time.
+       * Format Interfaces: Prevent unload except by shutdown.
 
-         This patch makes use of the new transaction timeout feature in r4585 and
-         provides the following capabilities...
+         Format interfaces cannot be unregistered, so the modules that provide them
+         need to be held open except by shutdown.
+
+         ASTERISK-25054 #close
+         Reported by: Corey Farrell
+
+         Change-Id: Iadbd9675bf0d30b8fded5a739b163db3ea2db8f3
+
+2015-05-03 20:28 +0000 [e76a6a97bf]  Matt Jordan <mjordan@digium.com>
+
+       * contrib/ast-db-manage: Add Postgres ENUM type support in auto DTMF mode update
+
+         The upgrade script for auto DTMF mode (31cd4f4891ec) added in 88b0fa7755
+         failed to add ENUM support for Postgres databases. This requires a
+         specific import from the sqlalchemy.dialects.postgresql package. This
+         patch corrects this error, which allows for Postgres update scripts to
+         be generated.
+
+         ASTERISK-24706
+
+         Change-Id: I4742ac8efa533cd6f18e0bdd907b339a9aedf015
+
+2015-05-01 19:50 +0000 [92120247e9]  D Tucny <d@tucny.com>
+
+       * term: send proper reset sequence when black background is forced
+
+         When using the force black background command-line option or configuration
+         option an invalid reset sequence is sent following a coloured output item 
+         in the CLI, the result is that the colour is not 'turned off' and continues
+         until the next non-default coloured text output.
+
+         A reset sequence is already defined in term.c, but the ast_term_reset
+         function doesn't use it, instead building it's own invalid sequence and 
+         returning that.
+
+         This patch changes that behaviour, removing the building of a reset sequence
+         and instead using the pre-built constant 'enddata' which is a suitable reset
+         sequence for this purpose.
+
+         ASTERISK-24896 #close
+         Reported by: Dan Tucny
+
+         Change-Id: I56323899123ae3264900389cae1f5b252aa3bf43
+
+2015-05-02 18:58 +0000 [ad6ea29697]  Corey Farrell <git@cfware.com>
+
+       * Remove unneeded uses of optional_api providers.
+
+         A few cases exist where headers of optional_api provders are included but
+         not needed.  This causes unneeded calls to ast_optional_api_use.
+
+         * Don't include optional_api.h from sip_api.h.
+         * Move 'struct ast_channel_monitor' to channel.h.
+         * Don't include monitor.h from chan_sip.c, channel.c or features.c.
+
+         The move of struct ast_channel_monitor is needed since channel.c depends on
+         it.  This has no effect on users of monitor.h since channel.h is included
+         from monitor.h.
+
+         ASTERISK-25051 #close
+         Reported by: Corey Farrell
+
+         Change-Id: I53ea65a9fc9693c89f8bcfd6120649bfcfbc3478
+
+2015-04-30 02:07 +0000 [525c8c8689]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+       * include/asterisk/channel.h: Fix typo
+
+         Change-Id: Ie584b85e16a94c255e60d0b1732ef9686464fef3
+
+2015-05-02 02:15 +0000 [63196a8256]  Corey Farrell <git@cfware.com>
+
+       * res_pjsip_dlg_options: Fix MODULEINFO section.
+
+         Removed the extra space before "MODULEINFO" in res_pjsip_dlg_options.
+         This extra space prevented any of the dependencies from being seen by
+         menuselect, so building with default options would fail if PJSIP was
+         not installed.
+
+         This also makes the tool that extracts information for menuselect
+         tolerant of multiple spaces in the future.
+
+         ASTERISK-25033 #close
+         Reported by: Peter Whisker
+
+         Change-Id: Iccd54846f70c4a7a50cb5bf70b7bb5cb4bab3698
+
+2015-04-29 03:03 +0000 [ac1f0090eb]  Corey Farrell <git@cfware.com>
+
+       * Build System: Prevent unneeded changes to asterisk/buildopts.h.
+
+         * Add AST_DEVMODE to BUILDOPTS
+         * Remove CFLAGS that do not effect ABI from BUILDOPTS.
+         * Use BUILDOPTS to generate AST_BUILDOPT_SUM.
+         * Remove loop that defined AST_MODULE_*
+
+         These changes ensure that only ABI effecting options are considered for
+         AST_BUILDOPT_SUM.  This also reduces unneeded full system rebuilds caused
+         by enabling or disabling one module that another is dependent on.
+
+         ASTERISK-25028
+         Reported by: Corey Farrell
+
+         Change-Id: I2c516d93df9f6aaa09ae079a8168c887a6ff93a2
+
+2015-05-01 13:22 +0000 [5875bf183c]  Corey Farrell <git@cfware.com>
+
+       * Astobj2: Fix initialization order of refdebug and AO2_DEBUG.
+
+         This ensures that refdebug is initialized before AO2_DEBUG if
+         both are enabled, since AO2_DEBUG allocates a container.
+
+         This change also makes AO2_DEBUG initialization critical, a
+         failure will abort Asterisk startup.  This is needed since
+         the failure would be caused by reg_containers allocation
+         failure, and that would result in a segmentation fault by
+         ao2_container_register later in startup.
+
+         ASTERISK-25048 #close
+         Reported by: Corey Farrell
+
+         Change-Id: I9a243ea3fc5653b48b931ba6d61971cb2e530244
+
+2015-04-29 14:49 +0000 [1b19c15f17]  Matt Jordan <mjordan@digium.com>
+
+       * main/pbx: Improve performance of dialplan reloads with a large number of hints
+
+         The PBX core maintains two hash tables for hints: a container of the
+         actual hints (hints), along with a container of devices that are watching that
+         hint (hintdevices). When a dialplan reload occurs, each hint in the hints
+         container is destroyed; this requires a lookup in the container of devices to
+         find the device => hint mapping object. In the current code, this performs an
+         ao2_callback, iterating over each of the device to hint objects in the
+         hintdevices container. For a large number of hints, this is extremely
+         expensive: dialplan reloads with 20000 hints could take several minutes
+         in just this phase.
+
+         This patch improves the performance of this step in the dialplan reloads
+         by caching which devices are watching a hint on the hint object itself.
+         Since we don't want to create a circular reference, we just cache the
+         name of the device. This allows us to perform a smarter ao2_callback on
+         the hintdevices container during hint removal, hashing on the name of the
+         device and returning an iterator to the matching names. The overall
+         performance improvement is rather large, taking this step down to a number of
+         seconds as opposed to minutes.
+
+         In addition, this patch also registers the hint containers in the PBX
+         core with the astobj2 library. This allows for reasonable debugging to
+         hash collisions in those containers.
+
+         ASTERISK-25040 #close
+         Reported by: Matt Jordan
+
+         Change-Id: Iedfc97a69d21070c50fca42275d7b3e714e59360
+
+2015-04-30 15:54 +0000 [3efe0df044]  Corey Farrell <git@cfware.com>
+
+       * Sample Configs: Fix syntax error in pjsip.conf
+
+         The sample pjsip.conf has a few comment lines that are missing the
+         semicolons at the start of the comment, causing the config to fail
+         load.
+
+         Change-Id: I776a38c916a7df7ee3e072fd0b21dbf4cc457352
+
+2015-04-30 15:20 +0000 [077979618b]  Mark Michelson <mmichelson@digium.com>
+
+       * Prevent potential crash on blond transfer.
+
+         Scenario:
+         Alice calls Bob. Bob performs a blond transfer to Carol. Carol rejects
+         the incoming call (or some other immediate circumstance causes Carol not
+         to answer the call)
+
+         What occurs in this case is that when the bridge between Alice and Bob
+         breaks, Alice is told to masquerade into Bob's channel that had placed
+         the call to Carol. The actual masquerade goes down without a hitch.
+         However, a channel fixup callback that attempts to publish dial events
+         over Stasis has a crash. The reason for this crash is that the datastore
+         on Bob's channel that placed the outbound call to Carol only had a bare
+         pointer to Carol's channel. Since Carol rejected the incoming call,
+         Carol's channel has been hung up and freed, meaning accessing her
+         channel results in a crash.
+
+         The fix here is simple. The dial fixup code has been altered to hold
+         references to the involved channels and to drop those references when
+         freeing data.
+
+         ASTERISK-25025 #close
+         Reported by Chet Stevens
+
+         Change-Id: I54eedda207b8ec7a69263353b43abe5746aea197
+
+2015-04-30 14:09 +0000 [4b8cddfb36]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_outbound_authenticator_digest: Add missing outbound authenticator callback.
+
+         The Asterisk 13 version of the fix for outbound registration was missing
+         a key component that set the outbound authenticator's callback that
+         creates an authenticated request based on an old request. This was
+         picked up by some outbound registration tests failing in the testsuite.
+
+         Change-Id: I5ca9379698c606da36bc38eaffccedaf64211ce3
+2015-04-30 13:42 +0000 [415a0d0745]  Joshua Colp <jcolp@digium.com>
+
+       * res_ari_device_states: Fix dependency on res_stasis_device_state.
+
+         The res_ari_device_states module depends on res_stasis_device_state,
+         not res_stasis_device_states.
+
+         Change-Id: I26e02ad37f9e36bcc859867e2fad1b90452ec3de
+
+2015-04-29 14:29 +0000 [d3c310a28c]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_dahdi: Add the chan_dahdi.conf force_restart_unavailable_chans option.
+
+         Some telco switches occasionally ignore ISDN RESTART requests.  The fix
+         for ASTERISK-19608 added an escape clause for B channels in the restarting
+         state if the telco ignores a RESTART request.  If the telco fails to
+         acknowledge the RESTART then Asterisk will assume the telco acknowledged
+         the RESTART on the second call attempt requesting the B channel by the
+         telco.  The escape clause is good for dealing with RESTART requests in
+         general but it does cause the next call for the restarting B channel to be
+         rejected if the telco insists the call must go on that B channel.
+
+         chan_dahdi doesn't really need to issue a RESTART request in response to
+         receiving a cause 44 (Requested channel not available) code.  Sending the
+         RESTART in such a situation is not required (nor prohibited) by the
+         standards.  I think chan_dahdi does this for historical reasons to deal
+         with buggy peers to get channels unstuck in a similar fashion as the
+         chan_dahdi.conf resetinterval option.
+
+         * Add the chan_dahdi.conf force_restart_unavailable_chans compatability
+         option that when disabled will prevent chan_dahdi from trying to RESTART
+         the channel in response to a cause 44 code.
+
+         ASTERISK-25034 #close
+         Reported by: Richard Mudgett
+
+         Change-Id: Ib8b17a438799920f4a2038826ff99a1884042f65
+2015-04-30 06:38 +0000 [7f611fa0e8]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+       * cdr/cdr_csv.c: Add a new option to enable columns added in Asterisk 1.8
+
+         This patch adds a new option to cdr.conf, 'newcdrcolumns', that will handle CDR
+         columns added in Asterisk 1.8. The columns are:
+          * peeraccount
+          * linkedid
+          * sequence
+         When enabled, the columns in the database entry will be populated with the data
+         from the CDR.
+
+         ASTERISK-24976 #close
+
+         Change-Id: I51a57063f4ae5e194a9d933a8df45dc8a4534f0b
+
+2015-04-30 06:04 +0000 [e332c7ed5e]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_outbound_registration: Fix double unref on error return.
+
+         When the PJSIP pjsip_regc_send function is invoked and an error
+         status returned the caller currently decrements the reference count
+         of the client state that it just incremented, assuming the
+         registration callback would not have been invoked. In practice
+         this is not correct. If the failure happens after the transaction
+         has been set up the callback will still be invoked. This will
+         cause the reference count to be incorrectly decremented twice, once
+         by the registration callback and second by the caller of
+         pjsip_regc_send.
+
+         This change makes it so that whether the callback is invoked or
+         not is known by the caller of pjsip_regc_send. Depending on
+         this it can know whether it is responsible for decrementing the
+         reference count of the client state or not.
+
+         ASTERISK-25037 #close
+         Reported by: Joshua Colp
+
+         Change-Id: I749dc12f3a22115c49c5d7d95ff42a5fa45319de
+
+2015-04-20 13:03 +0000 [9c3ed42875]  Diederik de Groot <ddegroot@talon.nl>
+
+       * Update configure.ac/Makefile for clang
+
+         Created autoconf/ast_check_raii.m4: contains AST_CHECK_RAII which
+         checks compiler requirements for RAII:
+         gcc: -fnested-functions support
+         clang: -fblocks (and if required -lBlocksRuntime)
+         The original check was implemented in configure.ac and now has it's
+         own file. This function also sets C_COMPILER_FAMILY to either gcc or
+         clang for use by makefile
+
+         Created autoconf/ast_check_strsep_array_bounds.m4 (contains
+         AST_CHECK_STRSEP_ARRAY_BOUNDS):
+         which checks if clang is able to handle the optimized strsep & strcmp
+         functions (linux). If not, the standard libc implementation should be
+         used instead. Clang + the optimized macro's work with:
+         strsep(char *, char []), but not with strsepo(char *, char *).
+         Instead of replacing all the occurences throughout the source code,
+         not using the optimized macro version seemed easier
+
+         See 'define __strcmp_gc(s1, s2, l2) in bits/string2.h':
+         llvm-comment: Normally, this array-bounds warning are suppressed for
+         macros, so that unused paths like the one that accesses __s1[3] are
+         not warned about.  But if you preprocess manually, and feed the
+         result to another instance of clang, it will warn about all the
+         possible forks of this particular if statement. Instead of switching
+         of this optimization, another solution would be to run the preproces-
+         sing step with -frewrite-includes, which should preserve enough
+         information so that clang should still be able to suppress the diag-
+         nostic at the compile step later on.
+
+         See also "https://llvm.org/bugs/show_bug.cgi?id=20144"
+         See also "https://llvm.org/bugs/show_bug.cgi?id=11536"
+
+         Makefile.rules: If C_COMPILER_FAMILY=clang then add two warning
+         suppressions:
+         -Wno-unused-value
+         -Wno-parentheses-equality
+         In an earlier review (reviewboard: 4550 and 4554), they were deemed a
+         nuisace and less than benefitial.
+
+         configure.ac:
+         Added AST_CHECK_RAII() see earlier
+         Added AST_CHECK_STRSEP_ARRAY_BOUNDS() see earlier
+         Removed moved content
+
+         ASTERISK-24917
+         Change-Id: I12ea29d3bda2254ad3908e279b7effbbac6a97cb
+
+2015-04-29 16:15 +0000 [d4e207e27e]  Matt Jordan <mjordan@digium.com>
+
+       * main/rtp_engine: Fix DTLS double-free introduced by 0b6410c4f8
+
+         The patch in 0b6410c4f8 did correctly fix a memory leak of the DTLS
+         structures in the RTP engine. However, when a 'core reload' is issued, a
+         double free of the memory pointed to by the char *'s in the DTLS
+         configuration struct can occur, as ast_rtp_dtls_cfg_free does not set
+         the pointers to NULL when they are freed.
+
+         This patch sets those pointers to NULL, preventing a second call to
+         ast_rtp_dtls_cfg_free from corrupting memory.
+
+         ASTERISK-25022
+
+         Change-Id: I820471e6070a37e3c26f760118c86770e12f6115
+
+2015-04-29 13:05 +0000 [3fb6daeb55]  Kevin Harwell <kharwell@digium.com>
+
+       * res_fax: allow 2400 transmission rate according to v.27ter standard
+
+         A previous set of patches (see: ASTERISK-22790 & ASTERISK-23231) made it so
+         a v.27 modem was not allowed to have a minimum transmission rate of 2400 bits
+         per second. This reverts all or some of those patches since according to the
+         v.27ter standard a rate of 2400 bits per second is also supported.
+
+         One of the original patches also added 9600 bits per second support for v.27.
+         This patch also removes that since v.27ter only supports 2400/4800 bits per
+         second.
+
+         Also, since Asterisk specifically supports v.27ter the enum was renamed to
+         better reflect this.
+
+         ASTERISK-24955 #close
+         Reported by: Matt Jordan
+
+         Change-Id: I4b9dfb6bf7eff08463ab47ee1a74224f27cae733
+
+2015-04-29 10:46 +0000 [49ef81c15c]  Joshua Colp <jcolp@digium.com>
+
+       * res_sorcery_config: Fix build issue due to syntax error.
+
+         Change-Id: Ic8322f04e37842848ad72cf2871bd0378f67c4ac
+
+2015-04-28 00:29 +0000 [3278fe5327]  Ashley Sanders <asanders@digium.com>
+
+       * chan_pjsip: Creating Channel Causes Asterisk to Crash When Duplicate AOR
+                     Sections Exist in pjsip.conf
+
+         This patch modifies the current loading strategy of the pjsip configuration. If
+         duplicate sections (e.g. sections containing the same [id/type]) are defined in
+         [pjsip.conf], the loader will consider the configuration for the given type as
+         invalid when the duplicate section is encountered. The entire configuration
+         (including what was previously loaded) for the duplicate [id/type] sections
+         will be rejected and destroyed, an error message is logged and the load
+         processing for the given stops.
+
+         ASTERISK-24996
+         Reported By: Ashley Sanders
+
+         Change-Id: I35090ca4cd40f1f34881dfe701a329145c347aef
+
+2014-11-04 06:03 +0000 [89f6719f7a]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_outbound_registration: Add virtual line support.
+
+         Virtual line support establishes a relationship between messages
+         related to an outbound registration and a local endpoint. This is
+         accomplished by attaching a parameter to the Contact of the outbound
+         registration and looking for it on any received requests. If the
+         parameter exists and can be matched to an outbound registration
+         the configured endpoint is associated with the request.
+
+         ASTERISK-24949 #close
+         Reported by: Joshua Colp
+
+         Change-Id: I7df909d2625479110a83fdd354c21ac539e8615d
+
+2015-04-29 06:39 +0000 [d61f03c4f9]  Corey Farrell <git@cfware.com>
+
+       * ARI: Fix missing dependencies.
+
+         ARI modules that are generated by 'make ari-stubs' are all dependent on
+         res_ari_model.  Additionally some of the same modules depend on one or more
+         res_stasis_* modules.
+
+         ASTERISK-25027 #close
+         Reported by: Corey Farrell
+
+         Change-Id: I8e07fe7e81fedacb87232f2b6f8b5f47927b4153
+
+2015-04-29 06:26 +0000 [3e4624ad21]  Corey Farrell <git@cfware.com>
+
+       * res_pjsip: Remove incorrect MODULEINFO from presence_xml.c.
+
+         Remove incorrect MODULEINFO block and unneeded header includes
+         from presence_xml.c.
+
+         ASTERISK-25027
+         Reported by: Corey Farrell
+
+         Change-Id: I977c609ab9d1fe05373027c4138900f6985990eb
+
+2015-04-29 06:17 +0000 [fed9faab8d]  Corey Farrell <git@cfware.com>
+
+       * Git Migration: Create doc/rest-api when needed.
+
+         Create the directory './doc/rest-api' at the start of 'make ari-stubs'
+         to prevent an error when documentation is generated.  The directory is
+         also added to git ignores.
+
+         ASTERISK-25027
+         Reported by: Corey Farrell
+
+         Change-Id: Iaccc7f0138501c23aa78feaca2f3cce9e68cbc1b
+
+2015-04-29 05:17 +0000 [df23c8a86b]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_outbound_registration: Fix build due to removal of transaction.
+
+         Change-Id: I7a8a7beec3334cec304943f2dd7597eabe2e3150
+
+2015-04-27 16:56 +0000 [e39bd6ba46]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_outbound_registration: Don't fail on delayed processing: 13.
+
+         This is the Asterisk 13 version of a change to master that allows for
+         registration responses to be processed successfully potentially after
+         the original transaction has timed out. The main difference between this
+         and the master change is that the master version has API changes that
+         are unacceptable for 13. For 13, this is worked around by adding a new
+         API call that the outbound registration code uses instead.
+
+         The following is the text from the master version of this commit:
+
+         Odd behaviors have been observed during outbound registrations. The most
+         common problem witnessed has been one where a request with
+         authentication credentials cannot be created after receiving a 401
+         response. Other behaviors include apparently processing an incorrect SIP
+         response.
+
+         Inspecting the code led to an apparent issue with regards to how we
+         handle transactions in outbound registration code. When a response to a
+         REGISTER arrives, we save a pointer to the transaction and then push a
+         task onto the registration serializer. Between the time that we save the
+         pointer and push the task, it's possible for the transaction to be
+         destroyed due to a timeout. It's also possible for the address to be
+         reused by the transaction layer for a new transaction.
+
+         To allow for authentication of a REGISTER request to be authenticated
+         after the transaction has timed out, we now also hold a reference to the
+         original REGISTER request instead of the transaction. The function for
+         creating a request with authentication has been altered to take the
+         original request instead of the transaction where the original request
+         was sent.
+
+         ASTERISK-25020
+         Reported by Mark Michelson
+
+         Change-Id: If1ee5f601be839479a219424f0358a229f358f7c
+2015-04-27 14:44 +0000 [1bf008fc76]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_outbound_registration: Add debugging messages.
+
+         When problems occur regarding outbound registrations, it currently
+         is difficult to debug. Most off-nominal paths had warning messages,
+         but sometimes we want to know what's going on before hitting the
+         off-nominal path. This patch adds lots of debugging output that
+         should give a clearer picture of what is happening with regards
+         to outbound registrations.
+
+         ASTERISK-25020
+         Reported by Mark Michelson
+
+         Change-Id: I577bde7860be0a6c872b5bcb4d5047340bf45d45
+
+2015-04-28 05:38 +0000 [0b6410c4f8]  Steve Davies <steve@one47.co.uk>
+
+       * res_rtp_asterisk: Resolve 2 discrete memory leaks in DTLS
+
+         ao2 ref leak in res_rtp_asterisk.c when a DTLS policy is created.
+         The resources are linked into a table, but the original alloc refs
+         are never released. ast_strdup leak in rtp_engine.c. If
+         ast_rtp_dtls_cfg_copy() is called twice on the same destination struct,
+         a pointer to an alloc'd string is overwritten before the string is free'd.
+
+         ASTERISK-25022
+         Reported by: one47
+
+         Change-Id: I62a8ceb8679709f6c3769136dc6aa9a68202ff9b
+
+2015-04-27 12:11 +0000 [99fb87ae13]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip: Fix SEGV on pending-qualify contacts
+
+         Permanent contacts that hadn't been qualified yet were missing
+         their contact_status entries causing SEGVs when running CLI
+         commands.
+
+         This patch makes sure that contact_statuses are created for
+         both dynamic and permanent contacts when they are created.
+         It also adds checks in the CLI code to make sure there's a
+         contact_status, just in case.
+
+         ASTERISK-25018 #close
+         Reported-by: Ivan Poddubny
+         Tested-by: Ivan Poddubny
+         Tested-by: George Joseph
+
+         Change-Id: I3cc13e5cedcafb24c400368b515b02d7fb81e029
+
+2015-04-15 18:55 +0000 [d5dd43856e]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+       * cdr/cdr_odbc.c: Added to record new columns add on CDR 1.8 Asterisk Version
+
+         Add new column to INSERT new columns added in cdr 1.8 version. The columns are:
+          * peeraccount
+          * linkedid
+          * sequence
+         This feature is configurable in cdr_odbc.conf using a new configuration
+         option, 'newcdrcolumns'.
+
+         ASTERISK-24976 #close
+
+         Change-Id: Ibe0c7540a88305c6012786f438a0813ad8b19127
+2015-04-26 17:21 +0000 [e9788056e9]  Matt Jordan <mjordan@digium.com>
+
+       * channels/chan_skinny: Fix compilation error introduced in f8e21a1adf
+
+         A typo in commit f8e21a1adf resulted in a compilation error in
+         chan_skinny. This patch fixes the typo.
+
+         ASTERISK-24917
+
+         Change-Id: Id7f4ad1fe948eb2408622e80c27936ce4516c33c
+
+2015-04-23 15:11 +0000 [7e5056b393]  Kevin Harwell <kharwell@digium.com>
+
+       * app_confbridge: Default the template option to a compatible default profile.
+
+         Confbridge dynamic profiles did not have a default profile unless you
+         explicitly used Set(CONFBRIDGE(bridge,template)=default_bridge). If a
+         template was not set prior to the bridge being created then some
+         options were left with no default values set. This patch makes it so
+         the default templates are set to the default bridge and user profiles.
+
+         ASTERISK-24749 #close
+         Reported by: philippebolduc
+
+         Change-Id: I1bd6e94b38701ac2112d842db68de63d46f60e0a
+
+2015-04-24 09:17 +0000 [1da9ec969d]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_outbound_authenticator: Increase CSeq on authed requests.
+
+         The way PJSIP generates an authenticated request is to use a previous
+         request as a template. This means that the authenticated request will
+         have the same Call-ID, From header (including tag), and CSeq as the
+         original request. PJSIP generates a new branch on the Via header to
+         indicate that this is a new transaction, though.
+
+         There are some SIP implementations, though, that do not notice the
+         change in the branch and therefore will match the authed request to the
+         original request's transaction. Since the CSeq is the same, the server
+         will repeat the response it sent to the original request.
+
+         This patch aids interoperability by increasing the CSeq of the authed
+         request by one.
+
+         ASTERISK-24845 #close
+         Reported by: Carl Fortin
+         Tested by: Carl Fortin
+
+         Change-Id: I39c4ca52e688a9f83bcc1878371334becdc5be01
+
+2015-04-20 13:06 +0000 [cb318f3960]  Diederik de Groot <ddegroot@talon.nl>
+
+       * Example script for scan-build (the llvm static analyzer)
+
+          - Added Pre-amble (Options / Flags / Usage Example / GNU License)
+          - Extended Configurability
+          - Made Executable
+
+         ASTERISK-24917
+         Change-Id: I70405fe54e4be7dbfbcb62e291690069b88617a8
+
+2015-04-23 12:54 +0000 [eabf3b5a3c]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_t38: Don't crash on authenticated reinvite after originated T.38 FAX.
+
+         When Asterisk originates a channel to an application, the channel is
+         hung up once the application finishes executing. When the application
+         in question is SendFax, the Asterisk PJSIP code will attempt to reinvite
+         the T.38 session to audio after the FAX completes. The hangup of the
+         channel happens in the midst of this reinvite transaction. In most
+         circumstances, this works out okay because the BYE is delayed until the
+         reinvite transaction can complete.
+
+         However, if the reinvite that Asterisk sends receives a 401/407
+         response, then Asterisk's attempt to re-send the reinvite with
+         authentication will fail. This is because the session supplement in
+         res_pjsip_t38 makes the assumption that the channel on the session will
+         always be non-NULL. Since the channel has been hung up, though, the
+         channel is now NULL. Attempting to operate on the channel causes a
+         crash.
+
+         This patch fixes the issue by ensuring that the channel on the session
+         is not NULL before attempting to mess with the T.38 framehook.
+
+         This patch also contains some corrections for comments that were
+         incorrect and really confused me when I first started looking at the
+         code.
+
+         ASTERISK-25004 #close
+         Reported by Mark Michelson
+
+         Change-Id: Ic5a1230668369dda4bb13524098aed9306ab45a0
+2015-04-23 09:16 +0000 [f70d21b2cf]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip:  Validate that contact uris start with sip: or sips:
+
+         Currently we use pjsip_parse_hdr to validate contact uris but it
+         appears that it allows uris without a scheme if there's a port
+         supplied.  I.E myexample.com will fail but myexample.com:5060 will
+         pass even though it has no scheme.  This causes SEGVs later on
+         whenever the uri is used.
+
+         To prevent this, permanent_contact_validate has been updated to check
+         that the scheme is either 'sip' or 'sips'.
+
+         2 uses of possibly-null endpoint have also been fixed in
+         create_out_of_dialog_request.
+
+         ASTERISK-24999
+
+         Change-Id: Ifc17d16a4923e1045d37fe51e43bbe29fa556ca2
+         Reported-by: Brad Latus
+
+2015-04-23 08:00 +0000 [1bb16bedc7]  Diederik de Groot <ddegroot@talon.nl>
+
+       * Clang: change previous tautological-compare fixes.
+
+         clang can warn about a so called tautological-compare, when it finds
+         comparisons which are logically always true, and are therefor deemed
+         unnecessary.
+
+         Exanple:
+         unsigned int x = 4;
+         if (x > 0)    // x is always going to be bigger than 0
+
+         Enum Case:
+         Each enumeration is its own type. Enums are an integer type but they
+         do not have to be *signed*. C leaves it up to the compiler as an
+         implementation option what to consider the integer type of a particu-
+         lar enumeration is. Gcc treats an enum without negative values as
+         an int while clang treats this enum as an unsigned int.
+
+         rmudgett & mmichelson: cast the enum to (unsigned int) in assert.
+         The cast does have an effect. For gcc, which seems to treat all enums
+         as int, the cast to unsigned int will eliminate the possibility of
+         negative values being allowed. For clang, which seems to treat enums
+         without any negative members as unsigned int, the cast will have no
+         effect. If for some reason in the future a negative value is ever
+         added to the enum the assert will still catch the negative value.
+
+         ASTERISK-24917
+
+         Change-Id: I0557ae0154a0b7de68883848a609309cdf0aee6a
+
+2015-04-22 16:22 +0000 [1474bb05f6]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_corosync: Add check for config file before calling corosync apis
+
+         On some systems, res_corosync isn't compatible with the installed version of
+         corosync so corosync_cfg_initialize fails, load_module returns LOAD_FAILURE,
+         and Asterisk terminates.  The work around has been to remember to add
+         res_corosync as a noload in modules.conf.  A better solution though is to have
+         res_corosync check for its config file before attempting to call corosync apis
+         and return LOAD_DECLINE if there's no config file.  This lets Asterisk loading
+         continue.
+
+         If you have a res_corosync.conf file and res_corosync fails, you get the same
+         behavior as today and the fatal error tells you something is wrong with the
+         install.
+
+         ASTERISK-24998
+
+         Change-Id: Iaf94a9431a4922ec4ec994003f02135acfdd3889
+2015-04-22 15:17 +0000 [73efb093b8]  Corey Farrell <git@cfware.com>
+
+       * Astobj2: Ensure all calls to __adjust_lock pass a valid object.
+
+         __adjust_lock doesn't check for invalid objects, and doesn't have an
+         appropriate return value for invalid objects.  Most callers of
+         __adjust_lock pass objects that have already been confirmed valid,
+         this change adds checks before the remaining calls.
+
+         ASTERISK-24997 #close
+         Reported by: Corey Farrell
+
+         Change-Id: I669100f87937cc3f867cec56a27ae9c01292908f
+
+2015-04-22 16:32 +0000 [b0e929219b]  gtjoseph <george.joseph@fairview5.com>
+
+       * .gitignore:  Add .gcno and .gcda
+
+         Products of --enable-coverage
+
+         Change-Id: Ie20882d64b60692e2c941ea8872ab82a86ce77a3
+
+2015-04-22 04:17 +0000 [d6dfc85666]  Diederik de Groot <ddegroot@talon.nl>
+
+       * Clang: Fix some more tautological-compare warnings.
+
+         clang can warn about a so called tautological-compare, when it finds
+         comparisons which are logically always true, and are therefor deemed
+         unnecessary.
+
+         Exanple:
+         unsigned int x = 4;
+         if (x > 0)    // x is always going to be bigger than 0
+
+         Enum Case:
+         Each enumeration is its own type. Enums are an integer type but they
+         do not have to be *signed*. C leaves it up to the compiler as an
+         implementation option what to consider the integer type of a particu-
+         lar enumeration is. Gcc treats an enum without negative values as
+         an int while clang treats this enum as an unsigned int.
+
+         rmudgett & mmichelson: cast the enum to (unsigned int) in assert.
+         The cast does have an effect. For gcc, which seems to treat all enums
+         as int, the cast to unsigned int will eliminate the possibility of
+         negative values being allowed. For clang, which seems to treat enums
+         without any negative members as unsigned int, the cast will have no
+         effect. If for some reason in the future a negative value is ever
+         added to the enum the assert will still catch the negative value.
+
+         ASTERISK-24917
+         Change-Id: Ief23ef68916192b9b72dabe702b543ecfeca0b62
+
+2015-04-14 14:04 +0000 [7b57116833]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_mwi: Send unsolicited MWI NOTIFY on startup and when endpoint registers.
+
+         Currently the res_pjsip_mwi module only sends an unsolicited MWI NOTIFY upon
+         a mailbox state change (such as a new message being left, or one being deleted).
+         In practice this is not sufficient to keep clients aware of the current MWI status.
+
+         This change makes the module send unsolicited MWI NOTIFY on startup so that
+         clients are guaranteed to have the most up to date MWI information. It also makes
+         clients receive an unsolicited MWI NOTIFY upon registration so if they are unaware
+         of the current MWI status they receive it.
+
+         ASTERISK-24982 #close
+         Reported by: Joshua Colp
+
+         Change-Id: I043f20230227e91218f18a82c7d5bb2aa62b1d58
+
+2015-04-21 15:17 +0000 [ad1a118632]  Corey Farrell <git@cfware.com>
+
+       * Check for ao2_alloc failure in __ast_channel_internal_alloc.
+
+         Fix a crash that could occur in __ast_channel_internal_alloc if
+         ao2_alloc fails.
+
+         ASTERISK-24991 #close
+
+         Change-Id: I4ca89189eb22f907408cb87d0a1645cfe1314a90
+
+2015-04-20 14:30 +0000 [3327560cb2]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_pubsub: Set the endpoint on SUBSCRIBE dialogs.
+
+         When SUBSCRIBE dialogs were established, we never associated
+         the endpoint that created the subscription with the dialog
+         we end up creating. In most cases, this ended up not causing
+         any problems.
+
+         The actual bug that was observed was that when a device that
+         was behind NAT established a subscription with Asterisk, Asterisk
+         would end up sending in-dialog NOTIFY requests to the device's
+         private IP addres instead of the public address of the NAT router.
+
+         When Asterisk receives the initial SUBSCRIBE from the device,
+         res_pjsip_nat rewrites the contact to the public address on which the
+         SUBSCRIBE was received. This allows for the dialog to have its target
+         address set to the proper public address. Asterisk then would send a 200
+         OK response to the SUBSCRIBE, then a NOTIFY with the initial
+         subscription state. The device would then send a 200 OK response to
+         Asterisk's NOTIFY.
+
+         Here's where things went wrong. When the 200 OK arrived, res_pjsip_nat
+         did not rewrite the address in the Contact header. Then, when the PJSIP
+         dialog layer processed the 200 OK, PJSIP would perform a comparison
+         between the IP address in the Contact header and its saved target
+         address for the dialog. Since they differed, PJSIP would update the
+         target dialog address to be the address in the Contact header. From this
+         point, if Asterisk needed to send a NOTIFY to the device, the result was
+         that the NOTIFY would be sent to the private address that the device
+         placed in the Contact header.
+
+         The reason why res_pjsip_nat did not rewrite the address when it
+         received the 200 OK response was that it could not associate the
+         incoming response with a configured endpoint. This is because on a
+         response, the only way to associate the response to an endpoint is by
+         finding the dialog that the response is associated with and then finding
+         the endpoint that is associated with that dialog. We do not perform
+         endpoint lookups on responses. res_pjsip_pubsub skipped the step of
+         associating the endpoint with the dialog we created, so res_pjsip_nat
+         could not find the associated endpoint and therefore couldn't rewrite
+         the contact.
+
+         This commit message is like 50x longer than the actual fix.
+
+         ASTERISK 24981 #close
+         Reported by Mark Michelson
+
+         Change-Id: I2b963c58c063bae293e038406f7d044a8a5377cd
+2015-04-20 18:00 +0000 [d08446ec36]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_dahdi/sig_pri: Make post AMI HangupRequest events on PRI channels.
+
+         The chan_dahdi channel driver is a very old driver.  The ability for it to
+         support ISDN was added well after the initial analog support.  Setting the
+         softhangup flags is a carry over from the original analog code.  The
+         driver was not updated to call ast_queue_hangup() which will post the AMI
+         HangupRequest event.
+
+         * Changed sig_pri.c to call ast_queue_hangup() instead of setting the
+         softhangup flag when the remote party initiates a hangup.
+
+         ASTERISK-24895 #close
+         Reported by: Andrew Zherdin
+
+         Change-Id: I5fe2e48556507785fd8ab8e1c960683fd5d20325
+
+2015-04-20 13:01 +0000 [2be9cc2643]  Diederik de Groot <ddegroot@talon.nl>
+
+       * Fix/Update clang-RAII macro implementation
+
+         - When you need to refer to 'variable XXX' outside a block, it needs
+         to be declared as '__block XXX', otherwise it will not be available with-
+         in the block, making updating that variable hard to do, and ast_free
+         lead to issues.
+
+         - Removed the #error message
+         because it creates complications when compiling external projects
+         against asterisk For example when using a different compiler than the
+         one used to compile asterisk. The warning/error should be generated
+         during the configure process not the compilation process
+
+         ASTERISK-24917
+         Change-Id: I12091228090e90831bf2b498293858f46ea7a8c2
+2015-04-20 09:53 +0000 [b74b2cdcda]  gtjoseph <george.joseph@fairview5.com>
+
+       * pjsip_options:  Fix format specifier for int64_t rtt.
+
+         Contact status rtt is an int64_t and needs the PRId64 macro to
+         properly create the format specifier on 32-bit systems.
+
+         Change-Id: I4b8ab958fc1e9a179556a9b4ffa49673ba9fdec7
+
+2015-04-18 13:36 +0000 [63169e00ff]  gtjoseph <george.joseph@fairview5.com>
+
+       * pjsip_options:  Fix non-qualified contacts showing as unavailable
+
+         The "Add qualify_timeout processing and eventing" patch introduced
+         an issue where contacts that had qualify_frequency set to 0 were
+         showing Unavailable instead Unknown.  This patch checks for
+         qualify_frequency=0 and create an "Unknown"  contact_status
+         with an RTT = 0.
+
+         Previously, the lack of contact_status implied Unknown but since
+         we're now changing endpoint state based on contact_status, I've
+         had to add new UNKNOWN status so that changes could trigger the
+         appropriate contact_status observers.
+
+         ASTERISK-24977: #close
+
+         Change-Id: Ifcbc01533ce57f0e4e584b89a395326e098b8fe7
+
+2015-04-19 15:49 +0000 [f0c82a173a]  Matt Jordan <mjordan@digium.com>
+
+       * main/pbx: Don't attempt to destroy a previously destroyed exten/priority tuple
+
+         When a PBX registrar is unloaded, it will fail to remove its extension from
+         the context root_table if a dialplan application used by that extension is
+         still loaded. This can be the case for AGI, which can be unloaded after several
+         of the standard PBX providers. Often, this is harmless; however, if the
+         extension's priorities are removed during the failed unloading *and* the
+         dialplan application later unregisters, it leaves a ticking timebomb for the
+         next PBX provider that attempts to iterate over the extensions. When that
+         occurs, the peer_table pointer on the extension will already be set to NULL.
+         The current code does not check to see if the pointer is NULL before passing
+         it to a hashtab function this is not NULL tolerant.
+
+         Since it is possible for the peer_table to be NULL when we normally would not
+         expect that to be the case, the solution in this patch is to simply skip over
+         processing an extension's priorities if peer_table is NULL.
+
+         Prior to this patch, the tests/pbx/callerid_match test would crash during
+         module unload. With this patch, the test no longer crashes after running.
+
+         ASTERISK-24774 #close
+         Reported by: Corey Farrell
+
+         Change-Id: I2bbeecb7e0f77bac303a1b9135e4cdb4db6d4c40
+
+2015-04-17 18:05 +0000 [82bc0fd3ad]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_fax: Fix latent bug exposed by ASTERISK-24841 changes.
+
+         Three fax related tests started failing as a result of changes made for
+         ASTERISK-24841:
+         tests/fax/pjsip/gateway_t38_g711
+         tests/fax/sip/gateway_mix1
+         tests/fax/sip/gateway_mix3
+
+         Historically, ast_channel_make_compatible() did nothing if the channels
+         were already "compatible" even if they had a sub-optimal translation path
+         already setup.  With the changes from ASTERISK-24841 this is no longer
+         true in order to allow the best translation paths to always be picked.  In
+         res_fax.c:fax_gateway_framehook() code manually setup the channels to go
+         through slin and then called ast_channel_make_compatible().  With the
+         previous version of ast_channel_make_compatible() this was always a
+         no-operation.
+
+         * Remove call to ast_channel_make_compatible() in fax_gateway_framehook()
+         that now undoes what was just setup when the framehook is attached.
+
+         * Fixed locking around saving the channel formats in
+         fax_gateway_framehook() to ensure that the formats that are saved are
+         consistent.
+
+         * Fix copy pasta errors in fax_gateway_framehook() that confuses read and
+         write when dealing with saved channel formats.
+
+         ASTERISK-24841
+         Reported by: Matt Jordan
+
+         Change-Id: I6fda0877104a370af586a5e8cf9e161a484da78d
+
+2015-04-17 16:19 +0000 [c59a800707]  Corey Farrell <git@cfware.com>
+
+       * Fix issue with AST_THREADSTORAGE_RAW when DEBUG_THREADLOCALS is enabled.
+
+         When DEBUG_THREADLOCALS is enabled it causes the threadlocal cleanup to be
+         called as a function.  This causes a compile error with raw threadstorage as
+         it uses NULL for cleanup.  This fix uses a macro that provides NULL when
+         DEBUG_THREADLOCALS is disabled, and replaces the call to "c_cleanup(data);"
+         with "{};" when DEBUG_THREADLOCALS is enabled.
+
+         ASTERISK-24975 #close
+         Reported by: Ashley Sanders
+
+         Change-Id: I3ef7428ee402816d9fcefa1b3b95830c00d5c402
+
+2015-04-15 10:38 +0000 [4f1a8dbe92]  Mark Michelson <mmichelson@digium.com>
+
+       * Detect potential forwarding loops based on count.
+
+         A potential problem that can arise is the following:
+
+         * Bob's phone is programmed to automatically forward to Carol.
+         * Carol's phone is programmed to automatically forward to Bob.
+         * Alice calls Bob.
+
+         If left unchecked, this results in an endless loops of call forwards
+         that would eventually result in some sort of fiery crash.
+
+         Asterisk's method of solving this issue was to track which interfaces
+         had been dialed. If a destination were dialed a second time, then
+         the attempt to call that destination would fail since a loop was
+         detected.
+
+         The problem with this method is that call forwarding has evolved. Some
+         SIP phones allow for a user to manually forward an incoming call to an
+         ad-hoc destination. This can mean that:
+
+         * There are legitimate use cases where a device may be dialed multiple
+         times, or
+         * There can be human error when forwarding calls.
+
+         This change removes the old method of detecting forwarding loops in
+         favor of keeping a count of the number of destinations a channel has
+         dialed on a particular branch of a call. If the number exceeds the
+         set number of max forwards, then the call fails. This approach has
+         the following advantages over the old:
+
+         * It is much simpler.
+         * It can detect loops involving local channels.
+         * It is user configurable.
+
+         The only disadvantage it has is that in the case where there is a
+         legitimate forwarding loop present, it takes longer to detect it.
+         However, the forwarding loop is still properly detected and the
+         call is cleaned up as it should be.
+
+         Address review feedback on gerrit.
+
+         * Correct "mfgium" to "Digium"
+         * Decrement max forwards by one in the case where allocation of the
+           max forwards datastore is required.
+         * Remove irrelevant code change from pjsip_global_headers.c
+
+         ASTERISK-24958 #close
+
+         Change-Id: Ia7e4b7cd3bccfbd34d9a859838356931bba56c23
+2015-04-11 16:56 +0000 [674b18bdf0]  gtjoseph <george.joseph@fairview5.com>
+
+       * pjsip_options: Add qualify_timeout processing and eventing
+
+         This is the second follow-on to https://reviewboard.asterisk.org/r/4572/ and the
+         discussion at
+         http://lists.digium.com/pipermail/asterisk-dev/2015-March/073921.html
+
+         The basic issues are that changes in contact status don't cause events to be
+         emitted for the associated endpoint.  Only dynamic contact add/delete actions
+         update the endpoint.  Also, the qualify timeout is fixed by pjsip at 32 seconds
+         which is a long time.
+
+         This patch makes use of the new transaction timeout feature in r4585 and
+         provides the following capabilities...
+
+         1.  A new aor/contact variable 'qualify_timeout' has been added that allows the
+         user to specify the maximum time in milliseconds to wait for a response to an
+         OPTIONS message.  The default is 3000ms.  When the timer expires, the contact is
+         marked unavailable.
+
+         2.  Contact status changes are now propagated up to the endpoint as follows...
+         When any contact is 'Available', the endpoint is marked as 'Reachable'.  When
+         all contacts are 'Unavailable', the endpoint is marked as 'Unreachable'.  The
+         existing endpoint events are generated appropriately.
+
+         ASTERISK-24863 #close
+
+         Change-Id: Id0ce0528e58014da1324856ea537e7765466044a
+         Tested-by: Dmitriy Serov
+         Tested-by: George Joseph <george.joseph@fairview5.com>
+
+2015-04-16 10:51 +0000 [b56c1914fa]  Kevin Harwell <kharwell@digium.com>
+
+       * bridge.c: NULL app causes crash during attended transfer
+
+         Due to a race condition there was a chance that during an attended transfer the
+         channel's application would return NULL. This, of course, would cause a crash
+         when attempting to access the memory. This patch retrieves the channel's app
+         at an earlier time in processing in hopes that the app name is available.
+         However, if it is not then "unknown" is used instead. Since some string value
+         is now always present the crash can no longer occur.
+
+         ASTERISK-24869 #close
+         Reported by: viniciusfontes
+         Review:
+
+         Change-Id: I5134b84c4524906d8148817719d76ffb306488ac
+
+2015-04-16 13:20 +0000 [8d4ce7cc2b]  Scott Griepentrog <scott@griepentrog.com>
+
+       * res_pjsip_pubsub: On notify fail deleted sub_tree is then referenced
+
+         This change makes the send_notify of the sub_tree
+         not happen when the sub_tree has been deleted due
+         to the notify call failing, which avoids a crash.
+
+         ASTERISK-24970 #close
+
+         Change-Id: I1f20ffc08b192f59c457293b218025a693992cbf
+2015-04-11 16:39 +0000 [bf46799f0e]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip: Refactor endpt_send_request to include transaction timeout
+
+         This is the first follow-on to https://reviewboard.asterisk.org/r/4572/ and the
+         discussion at
+         http://lists.digium.com/pipermail/asterisk-dev/2015-March/073921.html
+
+         Since we currently have no control over pjproject transaction timeout, this
+         patch pulls the pjsip_endpt_send_request function out of pjproject and into
+         res_pjsip/endpt_send_transaction in order to implement that capability.
+
+         Now when the transaction is initiated, we also schedule our own pj_timer with
+         our own desired timeout.
+
+         If the transaction completes before either timeout, pjproject cancels its timer,
+         and calls our tsx callback where we cancel our timer and run the app callback.
+
+         If the pjproject timer times out first, pjproject calls our tsx callback where
+         we cancel our timer and run the app callback.
+
+         If our timer times out first, we terminate the transaction which causes
+         pjproject to cancel its timer and call our tsx callback where we run the app
+         callback.
+
+         Regardless of the scenario, pjproject is calling the tsx callback inside the
+         group_lock and there are checks in the callback to make sure it doesn't run
+         twice.
+
+         As part of this patch ast_sip_send_out_of_dialog_request was created to replace
+         its similarly named private function.  It takes a new timeout argument in
+         milliseconds (<= 0 to disable the timeout).
+
+         ASTERISK-24863 #close
+         Reported-by: George Joseph <george.joseph@fairview5.com>
+         Tested-by: George Joseph <george.joseph@fairview5.com>
+
+         Change-Id: I0778dc730d9689c5147a444a04aee3c1026bf747
+2015-04-11 17:04 +0000 [1b6f6ff841]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip: Add global option to limit the maximum time for initial qualifies
+
+         Currently when Asterisk starts initial qualifies of contacts are spread out
+         randomly between 0 and qualify_timeout to prevent network and system overload.
+         If a contact's qualify_frequency is 5 minutes however, that contact may be
+         unavailable to accept calls for the entire 5 minutes after startup.  So while
+         staggering the initial qualifies is a good idea, basing the time on
+         qualify_timeout could leave contacts unavailable for too long.
+
+         This patch adds a new global parameter "max_initial_qualify_time" that sets the
+         maximum time for the initial qualifies.  This way you could make sure that all
+         your contacts are initialy, randomly qualified within say 30 seconds but still
+         have the contact's ongoing qualifies at a 5 minute interval.
+
+         If max_initial_qualify_time is > 0, the formula is initial_interval =
+         min(max_initial_interval, qualify_timeout * random().  If not set,
+         qualify_timeout is used.
+
+         The default is "0" (disabled).
+
+         ASTERISK-24863 #close
+
+         Change-Id: Ib80498aa1ea9923277bef51d6a9015c9c79740f4
+         Tested-by: George Joseph <george.joseph@fairview5.com>
+
+2015-04-15 16:08 +0000 [5d218cde87]  gtjoseph <george.joseph@fairview5.com>
+
+       * More .gitignore updates
+
+         Added .pyc and .sha1 to the top-level .gitignore.
+
+         Change-Id: I7dfc4f554d54d22947b38140d3305007503cc16a
+         Tested-by: George Joseph <george.joseph@fairview5.com>
+
+2015-04-14 13:16 +0000 [abd56db3e0]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+       * cel_pgsql: Fix name string for log on unable allocate memory.
+
+         The LOG_ERROR has reference to CDR instead of CEL  for LENGTHEN_BUF1 and
+         LENGTHEN_BUF2.
+
+         ASTERISK-24965 #close
+         Reported by: Rodrigo Ramirez Norambuena
+
+         Change-Id: Icc818697d7d66d34bfe3048cdd15ca2b06c89744
+2015-04-14 13:48 +0000 [222fbe1d9a]  Corey Farrell <git@cfware.com>
+
+       * Build System: Replace comment about setting menuselect defaults.
+
+         The Makefile claims that you can set default menuselect options by creating
+         ~/.asterisk.makeopts or /etc/asterisk.makeopts, but those files have never
+         been respected in Asterisk 11 or 13.  This changes the comment to accurately
+         reflect that these files are not automatically used by the build system.
+
+         ASTERISK-13721 #close
+         Reported by: pj
+
+         Change-Id: Ibde804ff196283def49ccb9432fbf224a22586e2
+
+2015-04-12 09:08 +0000 [07e729cc7b]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+
+       * cdr_pgsql: Fix CLI "cdr show pgsql status" command.
+
+         The command always showed the usage information.
+
+         * Fix the error in command validation for CLI_SHOWUSAGE.
+
+         ASTERISK-24959 #close
+         Reported by: Rodrigo Ramirez Norambuena
+
+         Change-Id: I584f0936bb01001336a468a55c1d05d79fe795d5
+         (cherry picked from commit 23a180cade51e84b9def65b05759c3cb9feba225)
+
+2015-04-13 19:06 +0000 [7d43d85bea]  gtjoseph <george.joseph@fairview5.com>
+
+       * .gitignore updates for master/13
+
+         Added products of ./bootstrap
+
+         Added nmenuselect and gmenuselect to menuselect/
+
+         Change-Id: Ied658463958bafc04a9aff9ebc28e40c116a6e35
+
+2015-04-13 14:41 +0000 [3d27c223a5]  David M. Lee <dlee@respoke.io>
+
+       * Fixing extconf compile
+
+         During the mass code deletion for clang support, a stray backslash was
+         left behind that was causing utils to fail to compile.
+
+         Change-Id: I60e5fa58c9a5b248bde23aaada79ff663f87a2a1
+
+2015-04-13 09:54 +0000 [e996d8f728]  Matt Jordan <mjordan@digium.com>
+
+       * build_tools/make_version: Update version parsing for Git migration
+
+         External systems - such as the Asterisk Test Suite - require knowledge of the
+         upstream branch. Unfortunately, after moving to Git, the Asterisk version
+         currently consists of only a 'GIT" prefix followed by an object blob,
+         e.g., GIT-as08d7. This makes it difficult for such systems to know what
+         features are available in a particular check out of Asterisk.
+
+         This patch fixes this by hardcoding the branch in a variable in the
+         make_version script. Since the mainline branches are not changed often -
+         typically only once a year - this is a reasonable approach to solving
+         the problem, and is more reliable than parsing the output of 'git branch
+         -vv'. Branches that track off of an upstream primary branch will then get the
+         benefit of knowing which mainline branch they are currently based off
+         of.
+
+         ASTERISK-24954 #close
+
+         Change-Id: I8090d5d548b6d19e917157ed530b914b7eaf9799
+
+2015-04-12 12:59 +0000 [d1a6f1a9f9]  Matt Jordan <mjordan@digium.com>
+
+       * git migration: Remove support for file versions
+
+         Git does not support the ability to replace a token with a version
+         string during check-in. While it does have support for replacing a
+         token on clone, this is somewhat sub-optimal: the token is replaced
+         with the object hash, which is not particularly easy for human
+         consumption. What's more, in practice, the source file version was often
+         not terribly useful. Generally, when triaging bugs, the overall version
+         of Asterisk is far more useful than an individual SVN version of a file.
+         As a result, this patch removes Asterisk's support for showing source file
+         versions.
+
+         Specifically, it does the following:
+         * main/asterisk:
+           - Refactor the file_version structure to reflect that it no longer
+             tracks a version field.
+           - Alter the "core show file version" CLI command such that it always
+             reports the version of Asterisk. The file version is no longer
+             available.
+
+         * main/manager: The Version key now always reports the Asterisk version.
+
+         * UPGRADE: Add notes for:
+           - Modification to the ModuleCheck AMI Action.
+           - Modification of the "core show file version" CLI command.
+
+         Change-Id: Ia932d3c64cd18a14a3c894109baa657ec0a85d28
+
+2015-04-13 06:19 +0000 [0e4b997cd7]  Corey Farrell <git@cfware.com>
+
+       * res_monitor: Add dependency on func_periodic_hook.
+
+         OPTIONAL_API has conditionals to define AST_OPTIONAL_API and
+         AST_OPTIONAL_API_ATTR differently based on if AST_API_MODULE is defined.
+         Unfortunately this is inside the include protection block, so only the
+         first status of AST_API_MODULE is respected.  For example res_monitor
+         is an optional API provider, but uses func_periodic_hook.  This makes
+         func_periodic_hook non-optional to res_monitor.
+
+         ASTERISK-17608 #close
+         Reported by: Warren Selby
+
+         Change-Id: I8fcf2a5e7b481893e17484ecde4f172c9ffb5679
+
+2015-04-12 06:12 +0000 [a77c31b99c]  Corey Farrell <git@cfware.com>
+
+       * main/editline: Add .gitignore.
+
+         This patch adds a .gitignore for main/editline to ignore all build results.
+
+         Change-Id: I68c7bf375ea46282689e5a706534b69fca233b5d
+
+2015-04-11 23:22 +0000 [d918c3b78e]  Matt Jordan <mjordan@digium.com>
+
+       * .gitignore: Ignore tarballs (*.gz)
+
+         This patch updates the root .gitignore file to ignore files with a .gz
+         extension. This will cause git to ignore downloaded sound tarballs in
+         the the sounds/ directory.
+
+         Change-Id: I1e42fbfa02a8884231507b683e8e49ac3e278aaa
+
+2015-04-11 13:20 +0000 [555b5f5d30]  gtjoseph <george.joseph@fairview5.com>
+
+       * Add .gitignore and .gitreview files
+
+         Add the .gitignore and .gitreview files to the asterisk repo.
+
+         NB:  You can add local ignores to the .git/info/exclude file
+         without having to do a commit.
+
+         Common ignore patterns are in the top-level .gitignore file.
+         Subdirectory-specific ignore patterns are in their own .gitignore
+         files.
+
+         Change-Id: I4c8af3b8e3739957db545f7368ac53f38e99f696
+         Tested-by: George Joseph
+
+2015-04-11 10:35 +0000 [5807ca519c]  Matt Jordan <mjordan@digium.com>
+
+       * Blocked revisions 434708
+
+         ........
+         main/event: Remove unnecessary assignment of negative value to enum
+
+         When cleaning up some clang compiler warnings, the comparison of a negative
+         value to an unsigned enum was removed. However, the initial assignment of a
+         negative value to said enum remained in the variable declaration. This patch
+         removes that assignment.
+
+         Thanks to ibercom in #asterisk-bugs for pointing it out.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434709 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-11 10:26 +0000 [d0d78d5732]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix various warnings for tests
+
+         This patch fixes a variety of clang compiler warnings for unit tests. This
+         includes autological comparison issues, ignored return values, and
+         interestingly enough, one embedded function. Fun!
+
+         Review: https://reviewboard.asterisk.org/r/4555
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4555.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 434705 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434706 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-11 10:10 +0000 [4cf7d0bf01]  Juergen Spies (License 6698)
+
+       * res/res_pjsip_t38: Add missing initialization of t38faxmaxdatagram
+
+         Prior to this patch, the far_max_datagram value on the UDPTL structure would
+         remain -1 if the remote endpoint fails to provide the SDP media attribute
+         T38FaxMaxDatagram. This can result in the INVITE request being rejected. With
+         this patch, we will now properly initialize the value with either the default
+         value or with the value provided by pjsip.conf's t38_udptl_maxdatagram
+         parameter.
+
+         Review: https://reviewboard.asterisk.org/r/4589
+
+         ASTERISK-24928 #close
+         Reported by: Juergen Spies
+         Tested by: Juergen Spies
+         patches:
+           pjsipT38patch20150331.txt submitted by Juergen Spies (License 6698)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434688 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 18:29 +0000 [13cd99682d]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_pjsip/res_pjsip/bridge_softmix/core: Improve translation path choices.
+
+         With this patch, chan_pjsip/res_pjsip now sets the native formats to the
+         codecs negotiated by a call.
+
+         * The changes in chan_pjsip.c and res_pjsip_sdp_rtp.c set the native
+         formats to include all the negotiated audio codecs instead of only the
+         initial preferred audio codec and later the currently received audio
+         codec.
+
+         * The audio frame handling in channel.c:ast_read() is more streamlined and
+         will automatically adjust to changes in received frame formats.  The new
+         policy is to remove translation and pass the new frame format to the
+         receiver except if the translation was to a signed linear format.  A more
+         long winded version is commented in ast_read() along with some caveats.
+
+         * The audio frame handling in channel.c:ast_write() is more streamlined
+         and will automatically adjust any needed translation to changes in the
+         frame formats sent.  Frame formats sent can change for many reasons such
+         as a recording is being played back or the bridged peer changed the format
+         it sends.  Since it is a normal expectation that sent formats can change,
+         the codec mismatch warning message is demoted to a debug message.
+
+         * Removed the short circuit check in
+         channel.c:ast_channel_make_compatible_helper().  Two party bridges need to
+         make channels compatible with each other.  However, transfers and moving
+         channels among bridges can result in otherwise compatible channels having
+         sub-optimal translation paths if the make compatible check is short
+         circuited.  A result of forcing the reevaluation of channel compatibility
+         is that the asterisk.conf:transcode_via_slin and codecs.conf:genericplc
+         options take effect consistently now.  It is unfortunate that these two
+         options are enabled by default and negate some of the benefits to the
+         changes in channel.c:ast_read() by forcing translation through signed
+         linear on a two party bridge.
+
+         * Improved the softmix bridge technology to better control the translation
+         of frames to the bridge.  All of the incoming translation is now normally
+         handled by ast_read() instead of splitting any translation steps between
+         ast_read() and the slin factory.  If any frame comes in with an unexpected
+         format then the translation path in ast_read() is updated for the next
+         frame and the slin factory handles the current frame translation.
+
+         This is the final patch in a series of patches aimed at improving
+         translation path choices.  The other patches are on the following reviews:
+         https://reviewboard.asterisk.org/r/4600/
+         https://reviewboard.asterisk.org/r/4605/
+
+         ASTERISK-24841 #close
+         Reported by: Matt Jordan
+
+         Review: https://reviewboard.asterisk.org/r/4609/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434671 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 16:03 +0000 [af458e2e60]  Kevin Harwell <kharwell@digium.com>
+
+       * chan_sip: make progressinband default to no
+
+         After the "progressinband" value setting of "never" was updated to never send a
+         183 this separated its use from the "no" value. Since "never" was the default,
+         but most users probably expect "no" this patch updates the default for the
+         "progressinband" setting to "no."
+
+         ASTERISK-24835 #close
+         Reported by: Andrew Nagy
+         Review: https://reviewboard.asterisk.org/r/4606/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434654 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 12:53 +0000 [88b0fa7755]  yaron nahum (License 6676)
+
+       * res_pjsip: Add an 'auto' option for DTMF Mode
+
+         This patch adds support for automatically detecting the type of DTMF that a
+         PJSIP endpoint supports. When the 'dtmf_mode' endpoint option is set to 'auto',
+         the channel created for an endpoint will attempt to determine if RFC 4733
+         DTMF is supported. If so, it will use that DTMF type. If not, the DTMF type
+         for the channel will be set to inband.
+
+         Review: https://reviewboard.asterisk.org/r/4438
+
+         ASTERISK-24706 #close
+         Reported by: yaron nahum
+         patches:
+           yaron_patch_3_Feb.diff submitted by yaron nahum (License 6676)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 11:59 +0000 [16afee4651]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_config_wizard: Cleanup load unload
+
+         While investigating other unload issues I realized that the load/unload process 
+         for the config wizard was pretty ugly so I've refactored it as follows...
+
+         When the res_pjsip sorcery instance is created the config_wizard bumps it's own 
+         module reference to prevent it from unloading while the sorcery instance is 
+         still active.  When res_pjsip unloads and it's sorcery instance is destroyed, 
+         the config wizard unrefs itself which then allows itself to unload cleanly.  
+         Since the config wizard now can't load after res_pjsip or unload before it 
+         (which should have been the correct behavior all along), I was able to remove 
+         the chunks of code in both load_module and unload_module that handled that case.
+
+         Ran the testsuite tests to insure there were no functional changes and REF_DEBUG 
+         to insure that Asterisk was shutting down cleanly with no FRACKs or leaks.
+
+         Tested-by: George Joseph
+         Review: https://reviewboard.asterisk.org/r/4610/
+
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434619 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 11:37 +0000 [125acc52fe]  Richard Mudgett <rmudgett@digium.com>
+
+       * bridge_softmix.c,channel.c: Minor code simplification and cleanup.
+
+         * Made code easier to follow in bridge_softmix.c:analyse_softmix_stats()
+         and made some debug messages more helpful.
+
+         * Made some debug and warning messages more helpful in
+         channel.c:set_format().
+
+         Review: https://reviewboard.asterisk.org/r/4607/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434617 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 11:28 +0000 [a63f7ad04a]  Richard Mudgett <rmudgett@digium.com>
+
+       * translate.c: Only select audio codecs to determine the best translation choice.
+
+         Given a source capability of h264 and ulaw, a destination capability of
+         h264 and g722 then ast_translator_best_choice() would pick h264 as the
+         best choice even though h264 is a video codec and Asterisk only supports
+         translation of audio codecs.  When the audio starts flowing, there are
+         warnings about a codec mismatch when the channel tries to write a frame to
+         the peer.
+
+         * Made ast_translator_best_choice() only select audio codecs.
+
+         * Restore a check in channel.c:set_format() lost after v1.8 to prevent
+         trying to set a non-audio codec.
+
+         This is an intermediate patch for a series of patches aimed at improving
+         translation path choices for ASTERISK-24841.
+
+         This patch is a complete enough fix for ASTERISK-21777 as the v11 version
+         of ast_translator_best_choice() does the same thing.  However, chan_sip.c
+         still somehow tries to call ast_codec_choose() which then calls
+         ast_best_codec() with a capability set that doesn't contain any audio
+         formats for the incoming call.  The remaining warning message seems to be
+         a benign transient.
+
+         ASTERISK-21777 #close
+         Reported by: Nick Ruggles
+
+         ASTERISK-24380 #close
+         Reported by: Matt Jordan
+
+         Review: https://reviewboard.asterisk.org/r/4605/
+         ........
+
+         Merged revisions 434614 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434615 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 09:55 +0000 [c9791dba1f]  Matt Jordan <mjordan@digium.com>
+
+       * res/ari: Fix model validation for ChannelHold event
+
+         When the ChannelHold event was added, the 'musicclass' parameter was
+         erroneously removed. This caused the ChannelHold events to be rejected as
+         they failed model validation. This patch updates the Swagger schema such that
+         it now properly reflects the event that is being created.
+
+         Hooray for tests that catch things like this.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434597 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-10 07:39 +0000 [c39faa4729]  Y Ateya (License 6693)
+
+       * channels/chan_iax2: Improve POKE expiration time calculation for lossy networks
+
+         POKE is used to check for peer availability; however, in networks with packet
+         loss, the current calculations may result in POKE expiration times that are too
+         short. This patch alters the expiration/retry time logic to take into account
+         the last known qualify round trip time, as opposed to always using a static
+         value for each peer.
+
+         Review: https://reviewboard.asterisk.org/r/4536
+
+         ASTERISK-22352 #close
+         Reported by: Frederic Van Espen
+
+         ASTERISK-24894 #close
+         Reported by: Y Ateya
+         patches:
+           poke_noanswer_duration.diff submitted by Y Ateya (License 6693)
+         ........
+
+         Merged revisions 434564 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 17:35 +0000 [75c2c85962]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_phoneprov_provider: Fix reference leak on unload
+
+         res_pjsip_phoneprov_provider was leaking references to phoneprov objects due to 
+         a missing OBJ_NODATA in an ao2_callback in load_users().  Rather than adding the 
+         OBJ_NODATA, I changed load_users to use a more straightforward ao2_iterator.  
+         This plugged the leak but exposed an unload order issue between 
+         res_pjsip_phoneprov_provider, res_phoneprov and res_pjsip.
+
+         res_pjsip_phoneprov_provider unloads first, then res_phoneprov, then res_pjsip.  
+         Since res_pjsip_phoneprov_provider uses res_pjsip's sorcery instance, when it 
+         unloads, it's objects are still in the sorcery instance.  When res_pjsip 
+         unloads, it destroys all its objects including res_pjsip_phoneprov_provider's.  
+         The phoneprov destructor then attempts to unregister the extension from 
+         res_phoneprov but because res_phoneprov is already cleaned up, its users 
+         container is gone and we get a FRACK.
+
+         Simple solution, check for the NULL users container before attempting to remove 
+         the entry. Duh.
+
+         Ran tests/res_phoneprov/res_phoneprov_provider.  No leaks in 
+         res_pjsip_phoneprov_provider and no FRACKs.
+
+         Reported-by: Corey Farrell
+         Tested-by: George Joseph
+         Review: https://reviewboard.asterisk.org/r/4608/
+         ASTERISK-24935 #close
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 17:31 +0000 [73c286a393]  gtjoseph <george.joseph@fairview5.com>
+
+       * loader/main: Don't set ast_fully_booted until deferred reloads are processed
+
+         Until we have a true module management facility it's sometimes necessary for one 
+         module to force a reload on another before its own load is complete.  If 
+         Asterisk isn't fully booted yet, these reloads are deferred.  The problem is 
+         that asterisk reports fully booted before processing the deferred reloads which 
+         means Asterisk really isn't quite ready when it says it is.
+
+         This patch moves the report of fully booted after the processing of the deferred 
+         reloads is complete.
+
+         Since the pjsip stack has the most number of related modules, I ran the 
+         channels/pjsip testsuite to make sure there aren't any issues.  All tests 
+         passed.
+
+         Tested-by: George Joseph
+         Review: https://reviewboard.asterisk.org/r/4604/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434544 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 17:03 +0000 [5737650a67]  Kevin Harwell <kharwell@digium.com>
+
+       * res_pjsip: add CLI command to show global and system configuration
+
+         Added a new CLI command for res_pjsip that shows both global and system
+         configuration settings: pjsip show settings
+
+         ASTERISK-24918 #close
+         Reported by: Scott Griepentrog
+         Review: https://reviewboard.asterisk.org/r/4597/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434527 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 11:07 +0000 [1695a5b85f]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_iax2.c: Fix ref leak in iax2_request().
+
+         * Increased warning message format capability string buffer size in
+         iax2_request().
+
+         Review: https://reviewboard.asterisk.org/r/4601/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 10:54 +0000 [92c1688edb]  Richard Mudgett <rmudgett@digium.com>
+
+       * bridge_native_rtp.c: Defer allocation and check if it fails in native_rtp_bridge_compatible().
+
+         Review: https://reviewboard.asterisk.org/r/4601/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434508 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 10:42 +0000 [2679d0100a]  yaron nahum (License 6676)
+
+       * res/res_pjsip_dlg_options: Add a module to handle in-dialog OPTIONS requests
+
+         This patch adds a new session supplement that handles in-dialog OPTIONS
+         requests. Said OPTIONS requests are sent a 200 OK, as an endpoint lookup
+         for the OPTIONS request would already have been done by the time the
+         session supplement receives the inbound request.
+
+         ASTERISK-24862 #close
+         Reported by: yaron nahum
+         patches:
+           res_pjsip_dlg_options.c submitted by yaron nahum (License 6676)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434506 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-09 07:56 +0000 [6ba6e3dffd]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix autological comparisons
+
+         This fixes autological comparison warnings in the following:
+          * chan_skinny: letohl may return a signed or unsigned value, depending on the
+            macro chosen
+          * func_curl: Provide a specific cast to CURLoption to prevent mismatch
+          * cel: Fix enum comparisons where the enum can never be negative
+          * enum: Fix comparison of return result of dn_expand, which returns a signed
+            int value
+          * event: Fix enum comparisons where the enum can never be negative
+          * indications: tone_data.freq1 and freq2 are unsigned, and hence can never be
+            negative
+          * presencestate: Use the actual enum value for INVALID state
+          * security_events: Fix enum comparisons where the enum can never be negative
+          * udptl: Don't bother to check if the return value from encode_length is less
+            than 0, as it returns an unsigned int
+          * translate: Since the parameters are unsigned int, don't bother checking
+            to see if they are negative. The cast to unsigned int would already blow
+            past the matrix bounds.
+          * res_pjsip_exten_state: Use a temporary value to cache the return of
+            ast_hint_presence_state
+          * res_stasis_playback: Fix enum comparisons where the enum can never be
+            negative
+          * res_stasis_recording: Add an enum value for the case where the recording
+            operation is in error; fix enum comparisons
+          * resource_bridges: Use enum value as opposed to -1
+          * resource_channels: Use enum value as opposed to -1
+
+         Review: https://reviewboard.asterisk.org/r/4533
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4533.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 434469 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434470 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 21:05 +0000 [e05c8ae68e]  Stefan Engström (License 6691)
+
+       * apps/app_queue: Prevent possible crash when evaluating queue penalty rules
+
+         Although it only occurred once, a crash occurred when a queue attempted to
+         evaluate a queue penalty rule that appeared to have already been destroyed.
+         In many locations in app_queue, a test is done to see if qe->pr is NULL;
+         however, when we dispose of a queue's penalty rules, we don't set the pointer
+         to NULL after free'ing it. This patch does that to prevent any dangling
+         pointers from lingering on the queue object.
+
+         Review: https://reviewboard.asterisk.org/r/4522
+
+         ASTERISK-23319 #close
+         Reported by: Vadim
+         patches:
+           rb4552.patch submitted by Stefan Engström (License 6691)
+         ........
+
+         Merged revisions 434448 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434449 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 13:15 +0000 [f21b45db49]  Jonathan Rose <jrose@digium.com>
+
+       * res_pjsip_t38: Fix FAX failures when using PJSIP with authentication
+
+         Without this patch, if a PJSIP endpoint with udptl enabled and authentication
+         set attempted to use sendFax, the FAX session would fail during setup. This
+         was because the invite issued in response to being auth challenged would cause
+         the PJSIP channel performing the FAX to receive a second T38 framehook and
+         this would cause frames to be consumed in an inappropriate manner.
+
+         ASTERISK-24933 #close
+         Reported by: Jonathan Rose
+         Review: https://reviewboard.asterisk.org/r/4577/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434425 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 13:14 +0000 [4441bb6a25]  Richard Mudgett <rmudgett@digium.com>
+
+       * Bridging: Eliminate the unnecessary make channel compatible with bridge operation.
+
+         When a channel enters the bridging system it is first made compatible with
+         the bridge and then the bridge technology makes the channel compatible
+         with the technology.  For all but the DAHDI native and softmix bridge
+         technologies the make channel compatible with the bridge step is an
+         effective noop because the other technologies allow all audio formats.
+         For the DAHDI native bridge technology it doesn't matter because it is not
+         an initial bridge technology and chan_dahdi allows only one native format
+         per channel.  For the softmix bridge technology, it is a noop at best and
+         harmful at worst because the wrong translation path could be setup if the
+         channel's native formats allow more than one audio format.
+
+         This is an intermediate patch for a series of patches aimed at improving
+         translation path choices.
+
+         * Removed code dealing with the unnecessary step of making the channel
+         compatible with the bridge.
+
+         ASTERISK-24841
+         Reported by: Matt Jordan
+
+         Review: https://reviewboard.asterisk.org/r/4600/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 11:40 +0000 [f767440906]  Maciej Szmigiero <mail@maciej.szmigiero.name> (license 6085)
+
+       * Security/tcptls: MitM Attack potential from certificate with NULL byte in CN.
+
+         When registering to a SIP server with TLS, Asterisk will accept CA signed
+         certificates with a common name that was signed for a domain other than the
+         one requested if it contains a null character in the common name portion of
+         the cert. This patch fixes that by checking that the common name length
+         matches the the length of the content we actually read from the common name
+         segment. Some certificate authorities automatically sign CA requests when
+         the requesting CN isn't already taken, so an attacker could potentially
+         register a CN with something like www.google.com\x00www.secretlyevil.net
+         and have their certificate signed and Asterisk would accept that certificate
+         as though it had been for www.google.com - this is a security fix and is
+         noted in AST-2015-003.
+
+         ASTERISK-24847 #close
+         Reported by: Maciej Szmigiero
+         Patches:
+          asterisk-null-in-cn.patch submitted by mhej (license 6085)
+         ........
+
+         Merged revisions 434337 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+         ........
+
+         Merged revisions 434338 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434384 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 11:23 +0000 [1712d16825]  Richard Mudgett <rmudgett@digium.com>
+
+       * format_cache.c: Add missing slin12 format to ast_format_cache_is_slinear().
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434357 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 07:33 +0000 [ae39dd1f46]  Matt Jordan <mjordan@digium.com>
+
+       * chan_iax2: Fix compilation issue due to funky merge
+
+         Don't mix declarations and code
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 07:00 +0000 [05397ad01e]  Jaco Kroon (License 5671)
+
+       * chan_iax2: Fix crash caused by unprotected access to iaxs[peer->callno]
+
+         This patch fixes an access to the peer callnumber that is unprotected by a
+         corresponding mutex. The peer->callno value can be changed by multiple threads,
+         and all data inside the iaxs array must be procted by a corresponding lock
+         of iaxsl.
+
+         The patch moves the unprotected access to a location where the mutex is
+         safely obtained.
+
+         Review: https://reviewboard.asterisk.org/r/4599/
+
+         ASTERISK-21211 #close
+         Reported by: Jaco Kroon
+         patches:
+           asterisk-11.2.1-iax2_poke-segfault.diff submitted by Jaco Kroon (License 5671)
+         ........
+
+         Merged revisions 434291 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434292 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 06:53 +0000 [be13c72142]  Valentin Vidić (License 6697)
+
+       * chan_sip: Handle IPv4 mapped IPv6 clients when NAT is enabled
+
+         When udpbindaddr is set to the IPv6 bind all address of '::', Asterisk will
+         attempt to handle both IPv4 and IPv6 addresses, although the information will
+         be stored in a struct with an AF_INET6 address type. However, the current
+         NAT handling code won't handle the IPv4 mapped IPv6 addresses correctly.
+         This patch adds an additional check for the mapped address case, allowing
+         the NAT code to handle clients even when the address is IPv6.
+
+         Review: https://reviewboard.asterisk.org/r/4563/
+
+         ASTERISK-18032 #close
+         Reported by: Christoph Timm
+         patches:
+           nat_with_ipv6.diff submitted by Valentin Vidić (License 6697)
+         ........
+
+         Merged revisions 434288 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434289 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-08 06:44 +0000 [f324870dab]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix pointer-bool-converesion warnings
+
+         This patch fixes several warnings pointed out by the clang compiler.
+         * chan_pjsip: Removed check for data->text, as it will always be non-NULL.
+         * app_minivm: Fixed evaluation of etemplate->locale, which will always
+           evaluate to 'true'. This patch changes the evaluation to use
+           ast_strlen_zero.
+         * app_queue:
+           - Fixed evaluation of qe->parent->monfmt, which always evaluates to
+             true. Instead, we just check to see if the dereferenced pointer
+             evaluates to true.
+           - Fixed evaluation of mem->state_interface, wrapping it with a call to
+             ast_strlen_zero.
+         * res_smdi: Wrapped search_msg->mesg_desk_term with calls to ast_strlen_zero.
+
+         Review: https://reviewboard.asterisk.org/r/4541
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4541.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 434285 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434286 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-07 14:38 +0000 [a6aed7f6f6]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * Revert accidental change in r434261
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434262 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-07 14:35 +0000 [0584e29300]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * pjsip: resolve compatibility problem with ast_sip_session
+
+         A change in r430179 inserted a variable near the top of a
+         structure caused a problem when running DPMA in a version
+         of Asterisk compiled across the change.  This patch moves
+         the new variable to the end of the structure, eliminating
+         the problem.
+
+         Review: https://reviewboard.asterisk.org/r/4574/
+         ........
+
+         Merged revisions 433944 from http://svn.asterisk.org/svn/asterisk/branches/13
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-07 11:40 +0000 [d754f70239]  Kevin Harwell <kharwell@digium.com>
+
+       * bridge.c: Hangup attended transfer target after it has been swapped out
+
+         After completing an attended transfer the transfer target channel (the one that
+         gets swapped out) was not being hung up after leaving the bridge. This resulted
+         in a channel possibly being left around. Added an explicit softhangup for the
+         channel in question after the transfer is successfully completed in order to
+         make sure the channel is hung up.
+
+         ASTERISK-24782 #close
+         Reported by: John Bigelow
+         Review: https://reviewboard.asterisk.org/r/4575/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434240 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-07 10:33 +0000 [c516981dc7]  Mark Michelson <mmichelson@digium.com>
+
+       * Do not queue message requests that we do not respond to.
+
+         If we receive a MESSAGE request that we cannot send a response
+         to, we should not send the incoming MESSAGE to the dialplan.
+
+         This commit should help the bouncing message_retrans test to
+         pass consistently.
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434218 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-07 10:21 +0000 [ab803ec342]  Matt Jordan <mjordan@digium.com>
+
+       * ARI: Add the ability to intercept hold and raise an event
+
+         For some applications - such as SLA - a phone pressing hold should not behave
+         in the fashion that the Asterisk core would like it to. Instead, the hold
+         action has some application specific behaviour associated with it - such as
+         disconnecting the channel that initiated the hold; only playing MoH to channels
+         in the bridge if the channels are of a particular type, etc.
+
+         One way of accomplishing this is to use a framehook to intercept the
+         hold/unhold frames, raise an event, and eat the frame. Tasty. This patch
+         accomplishes that using a new dialplan function, HOLD_INTERCEPT.
+
+         In addition, some general cleanup of raising hold/unhold Stasis messages was
+         done, including removing some RAII_VAR usage.
+
+         Review: https://reviewboard.asterisk.org/r/4549/
+
+         ASTERISK-24922 #close
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434216 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 21:09 +0000 [488f093e97]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix sometimes-initialized warning in func_math
+
+         This patch fixes a bug in a unit test in func_math where a variable could be
+         passed to ast_free that wasn't allocated. This patch corrects the issue and
+         ensures that we only attempt to free a variable if we previously allocated
+         it.
+
+         Review: https://reviewboard.asterisk.org/r/4552
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4552.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 434190 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434191 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 21:03 +0000 [c027133f6d]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix non-literal-null-conversion warnings
+
+         Clang will flag errors when a char pointer is set to '\0', as opposed to a
+         value that the char pointer points to. This patch fixes this warning
+         in a variety of locations.
+
+         Review: https://reviewboard.asterisk.org/r/4551
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4551.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 434187 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434188 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 14:23 +0000 [2270c40d33]  Kevin Harwell <kharwell@digium.com>
+
+       * res_pjsip: config option 'timers' can't be set to 'no'
+
+         When setting the configuration option 'timers' equal to 'no' the bit flag was
+         not properly negated. This patch clears all associated flags and only sets the
+         specified one. pjsip will handle any necessary flag combinations. Also went
+         ahead and did similar for the '100rel' option.
+
+         ASTERISK-24910 #close
+         Reported by: Ray Crumrine
+         Review: https://reviewboard.asterisk.org/r/4582/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434131 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 14:02 +0000 [95de71f247]  gtjoseph <george.joseph@fairview5.com>
+
+       * build: Fixes for gcc 5 compilation
+
+         These are fixes for compilation under gcc 5.0...
+
+         chan_sip.c:    In parse_request needed to make 'lim' unsigned.
+         inline_api.h:  Needed to add a check for '__GNUC_STDC_INLINE__' to detect C99 
+                        inline semantics (same as clang).
+         ccss.c:        In ast_cc_set_parm, needed to fix weird comparison.
+         dsp.c:         Needed to work around a possible compiler bug.  It was throwing 
+                        an array-bounds error but neither
+                        sgriepentrog, rmudgett nor I could figure out why.
+         manager.c:     In action_atxfer, needed to correct an array allocation.
+
+         This patch will go to 11, 13, trunk.
+
+         Review: https://reviewboard.asterisk.org/r/4581/
+         Reported-by: Jeffrey Ollie
+         Tested-by: George Joseph
+         ASTERISK-24932 #close
+         ........
+
+         Merged revisions 434113 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 13:18 +0000 [d54ccda3b1]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Remove large chunks of unused code from extconf
+
+         This patch fixes a warning caught by clang, in which it detected that large
+         chunks of extconf were unused. Frankly, I wish we could pretend that all of
+         extconf was unused, but alas, that is not yet the case.
+
+         A few extraneous functions in the parking tests were removed as well, for
+         the same reason.
+
+         Review: https://reviewboard.asterisk.org/r/4553
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4553.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 434093 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434097 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 13:03 +0000 [0ecd472e4f]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix sometimes-uninitialized warning in pbx_config
+
+         This patch fixes a warning caught by clang, in which a char pointer could be
+         assigned to before it was initialized. The patch re-organizes the code to
+         ensure that the pointer is always initialized, even on off nominal paths.
+
+         Review: https://reviewboard.asterisk.org/r/4529
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4529.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 434090 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434091 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 12:52 +0000 [4e7be5b2dc]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix format specified in framehook
+
+         This patch fixes an invalid format specifier used in the formatting of an
+         ERROR message in the framehook code. The format specifier specifies a
+         type of 'unsigned short', but the argument passed to it is of type 'int'.
+         The patch changes the format specifier to 'i'.
+
+         Review: https://reviewboard.asterisk.org/r/4540
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4535.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 434087 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434088 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 11:02 +0000 [2443b40341]  Mark Michelson <mmichelson@digium.com>
+
+       * Ensure that a non-zero sample rate is returned for all formats.
+
+         Versions of Asterisk prior to 12 defaulted to 8000 as a sample rate
+         if one was not provided by a format. In Asterisk 13, this was removed.
+         The result was that some calculations which involve dividing by the
+         sample rate resulted in dividing by 0. The fix being put in place
+         here is to have the same default fallback that was present in previous
+         versions of Asterisk.
+
+         Asterisk-24914 #close
+         Reported by Marcello Ceschia
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 10:16 +0000 [b1102cd642]  Corey Farrell <git@cfware.com>
+
+       * res_pjsip_phoneprov_provider: Revert 433996 / 433997.
+
+         res_pjsip_phoneprov_provider is using ao2_callback with OBJ_MULTIPLE, then
+         ignoring the return.  OBJ_NODATA flag was to prevent a reference leak, but
+         this caused the module to FRACK on unload.  Revert change until this can
+         be investigated further.
+
+         ASTERISK-24935
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4578/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434025 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-06 09:50 +0000 [0f25076f67]  Mark Michelson (license #5049)
+
+       * ParkedCall: Don't allow dialplan fallthrough after retrieving parked call.
+
+         This is a change to align behavior with that of Asterisk 11 and previous versions.
+         In those versions, if a parked call were retrieved, and the call ended, the parked
+         call retriever would be hung up after the ParkedCall application ran. Prior to this
+         patch, in Asterisk 13, the same situation would result in the parked call retriever
+         falling through to additional priorities in the extension where the ParkedCall
+         application was called. With this patch, the behavior between Asterisk 11 and 13
+         aligns.
+
+         ASTERISK-24899 #close
+         Reported by Malcolm Davenport
+         Patches:
+               ASTERISK-24899.patch uploaded by Mark Michelson(license #5049)
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434022 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-05 07:53 +0000 [709fa14b44]  Corey Farrell <git@cfware.com>
+
+       * res_pjsip_phoneprov_provider: Fix leaked OBJ_MULTIPLE iterator.
+
+         res_pjsip_phoneprov_provider was using ao2_callback with OBJ_MULTIPLE, then
+         ignoring the return.  Added OBJ_NODATA flag to prevent a reference leak.
+
+         ASTERISK-24935 #close
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4578/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433996 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-03 16:53 +0000 [1ee8424f27]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_messaging: Serialize outbound SIP MESSAGEs
+
+         Outbound SIP MESSAGEs had the potential to be sent out
+         of order from how they were specified in a set of
+         dialplan steps.
+
+         This change creates a serializer for sending outbound
+         MESSAGE requests on. This ensures that the MESSAGEs are
+         sent by Asterisk in the same order that they were sent
+         from the dialplan.
+
+         ASTERISK-24937 #close
+         Reported by Mark Michelson
+
+         Review: https://reviewboard.asterisk.org/r/4579
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433968 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-02 09:56 +0000 [169e57d2e0]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * pjsip: resolve compatibility problem with ast_sip_session
+
+         A change in r430179 inserted a variable near the top of a
+         structure caused a problem when running DPMA in a version
+         of Asterisk compiled across the change.  This patch moves
+         the new variable to the end of the structure, eliminating
+         the problem.
+
+         Review: https://reviewboard.asterisk.org/r/4574/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-02 05:31 +0000 [1eb0c5f4e8]  Corey Farrell <git@cfware.com>
+
+       * Tell menuselect that MALLOC_DEBUG conflicts with DEBUG_CHAOS.
+
+         DEBUG_CHAOS was marked as conflicting with MALLOC_DEBUG, but
+         for this to work correctly MALLOC_DEBUG must also be marked
+         as conflicting with DEBUG_CHAOS.
+
+         Review: https://reviewboard.asterisk.org/r/4557/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433923 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-04-01 11:25 +0000 [e301185983]  Ashley Sanders <asanders@digium.com>
+
+       * stasis: set a channel variable on websocket disconnect error
+
+         Resolve compile errors caused by r433863 by fixing the
+         documentation xml to comply with the schema.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433888 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-31 22:26 +0000 [a1f12d9231]  Ashley Sanders <asanders@digium.com>
+
+       * stasis: set a channel variable on websocket disconnect error
+
+         Resolve compile errors caused by r433839 by included the missing
+         header file, pbx.h.
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433863 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-31 17:00 +0000 [7293ecd90b]  Ashley Sanders <asanders@digium.com>
+
+       * stasis: set a channel variable on websocket disconnect error
+
+         When an error occurs while writing to a web socket, the web socket is
+         disconnected and the event is logged. A side-effect of this, however, is that
+         any application on the other side waiting for a response from Stasis is left
+         hanging indefinitely (as there is no mechanism presently available for
+         notifying interested parties about web socket error states in Stasis).
+
+         To remedy this scenario, this patch introduces a new channel variable:
+         STASISSTATUS.
+
+         The possible values for STASISSTATUS are:
+         SUCCESS         - The channel has exited Stasis without any failures
+         FAILED          - Something caused Stasis to croak. Some (not all) possible
+                           reasons for this:
+                             - The app registry is not instantiated;
+                             - The app requested is not registered;
+                             - The app requested is not active;
+                             - Stasis couldn't send a start message
+
+         ASTERISK-24802
+         Reported By: Kevin Harwell
+         Review: https://reviewboard.asterisk.org/r/4519/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433839 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-31 11:55 +0000 [94949e7f2f]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_sip: Fix expression in unit test /channels/chan_sip/test_sip_rtpqos.
+
+         Fix misplaced parentheses in original fabs() expression.
+         ........
+
+         Merged revisions 433816 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433817 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-31 06:47 +0000 [9967739669]  Corey Farrell <git@cfware.com>
+
+       * Re-add _ast_mem_backtrace_buffer variable for ABI compatibility.
+
+         Modules built prior to commit of r4502 expect to link at runtime
+         to the variable _ast_mem_backtrace_buffer.  This change re-adds
+         the variable to the C file only.
+
+         Review: https://reviewboard.asterisk.org/r/4558/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433795 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-30 06:42 +0000 [2d39bc5528]  Corey Farrell <git@cfware.com>
+
+       * Fix an ABI compatibility issue with ast_log_safe for modules.
+
+         Binary modules are sometimes built against the latest release of
+         Asterisk in each branch, and need to be compatible with all
+         releases of that branch.  This change ensures that utils.h only
+         uses ast_log_safe from the core.  For modules and utilities ast_log
+         is used instead.
+
+         Review: https://reviewboard.asterisk.org/r/4548/
+         ........
+
+         Merged revisions 433772 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433773 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-29 21:44 +0000 [5f8faf16af]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix -Wabsolute-value warnings
+
+         This patch fixes several warnings caught by clang - in this case, usage of the
+         abs function on non-integer values. This patch uses labs and fabs, as
+         appropriate, in the various affected files.
+
+         Review: https://reviewboard.asterisk.org/r/4525
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4525.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 433749 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433750 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-29 21:39 +0000 [09b681e344]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix invalid enum conversion
+
+         This patch fixes some invalid enum conversion warnings caught by clang. In
+         particular:
+         * chan_sip: Several functions mixed usage of the st_refresher_param
+           enum and st_refresher enum. This patch corrects the functions to use the
+           right enum.
+         * chan_pjsip: Fixed mixed usage of ast_sip_session_t38state and ast_t38_state.
+         * strings: Fixed incorrect usage of AO2 flags with strings container.
+         * res_stasis: Change a return enumeration to stasis_app_user_event_res.
+
+         Review: https://reviewboard.asterisk.org/r/4535
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4535.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 433746 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433747 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-29 21:29 +0000 [7f33abb827]  Matt Jordan <mjordan@digium.com>
+
+       * main/stdtime/localtime: Fix warning introduced in r433720
+
+         The patch in r433720 caused a warning to be kicked back by gcc. It occurred
+         due to this check in unistd.h:
+
+             if (__nbytes > __bos0 (__buf))
+                 return __read_chk_warn (__fd, __buf, __nbytes, __bos0 (__buf));
+
+         That is, if __nbytes is greater than the result of GCC's built-in object size
+         for the struct, we'll kick back a warning.
+
+         As it turns out, this is because there is an error in the code in the patch.
+         We are passing the address of the pointer to the struct, not iev, which is a
+         pointer to the struct. Hence, the number of bytes is probably going to be lot
+         larger than the number of bytes that make up a pointer! This patch changes
+         the code just read from the pointer to the struct - which fixes the warning.
+
+         ASTERISK-24917
+         ........
+
+         Merged revisions 433743 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433744 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-29 20:56 +0000 [47eeb67e14]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Ignore -Wunused-command-line-argument
+
+         Asterisk's build system has a tendency to pass include directives for libraries
+         to everything compiled within a particular group of source files. This means
+         we pass the header for libxml2 to things that don't necessarily need it. As a
+         result, we ignore this particular warning.
+
+         Review: https://reviewboard.asterisk.org/r/4545/
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4545.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 433720 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433721 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-29 20:52 +0000 [dbb4d6f9e7]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix warning for -Wgnu-variable-sized-type-not-at-end
+
+         This patch fixes a warning caught by clang, wherein a variable sized struct is
+         not located at the end of a struct. While the code in question actually
+         expected this, this is a good warning to watch for. Hence, this patch refactors
+         the code in question to not have two variable length elements in the same
+         struct.
+
+         Review: https://reviewboard.asterisk.org/r/4530/
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4530.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 433717 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:56 +0000 [e126ab9eeb]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix a variety of "unused" warnings
+
+         This patch fixes the -Wunused-value -Wunused-variable -Wunused-const-variable
+         errors caught by clang. Specifically:
+
+         * apps/app_queue.c: removed unused qpm_cmd_usage[], qum_cmd_usage[],
+                             qsmp_cmd_usage[]
+         * cel/cel_sqlite3_custom.c: removed unused name[] = "cel_sqlite3_custom"
+         * channels/chan_pjsip.c: removed unused desc[] = "PJSIP Channel"
+         * codecs/gsm/src/gsm_create.c: removed unused ident[] = "$Header$"
+         * funcs/func_env.c:729: Fixed ast_str_append_substr.
+         * main/editline/np/strlcat.c: removed unused rcsid variable
+         * main/editline/np/strlcpy.c: removed unused rcsid variable
+         * main/security_events.c: removed unused TIMESTAMP_STR_LEN
+         * utils/conf2ael.c: removed unused cfextension_states
+         * utils/extconf.c: removed unused cfextension_states
+
+         Review: https://reviewboard.asterisk.org/r/4526
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4526.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 433693 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433694 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:48 +0000 [2f6534527d]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix -Wself-assign
+
+         Assigning a variable to itself isn't super useful. However, the WAV format
+         modules make use of this in order to perform byte endian checks. This patch
+         works around the warning by only performing the self assignment if we are
+         going to do more than just assign it to ourselves. Which is odd, but true.
+
+         Review: https://reviewboard.asterisk.org/r/4544/
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4544.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 433690 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433691 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:40 +0000 [eb70993a50]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix -Wparantheses-equality warnings
+
+         Clang will treat ((a == b)) as a warning, as it reasonably expects that the
+         developer may have intended to write (a == b) or ((a = b)). This patch cleans
+         up all instances where equality, not assignment, was intended between two
+         parantheses.
+
+         Review: https://reviewboard.asterisk.org/r/4531/
+
+         ASTERISK-24917
+         Repoted by: dkdegroot
+         patches:
+           rb4531.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 433687 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433688 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:31 +0000 [c0ff16036a]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix -Wbitfield-constant-conversion warning
+
+         In chan_iax2, we attempt to assign a -1 to a bitfield. This gets caught by
+         clang, as it will truncate the -1 to a 1 implicitly.
+
+         Instead, we just assign the value a '1'.
+
+         Review: https://reviewboard.asterisk.org/r/4537/
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4537.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 433683 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433684 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:27 +0000 [844bc76bef]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix -Winitializer-overrides
+
+         This patch fixes clange compiler warnings for initializer overrides.
+         Specifically:
+
+         res_pjsip/config_transport maps PJSIP_TLSV1_METHOD to the same enumeration
+         value as PJSIP_SSL_DEFAULT_METHOD. When initializing an array containing
+         those enum values, we therefore initialize the value twice to two different
+         values, "tlsv1" and "default". This patch changes it to just initialize
+         the index in the array to "tlsv1".
+
+         Review: https://reviewboard.asterisk.org/r/4539/
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4539.patch submitted by dkdegroot (License 6600)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433682 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-28 07:19 +0000 [5e204042d9]  Diederik de Groot <dkgroot@talon.nl> (License 6600)
+
+       * clang compiler warnings: Fix -Wunused-function; make inline function static
+
+         This patch fixes clang compilers warnings for unused functions. Specifically:
+          * channels/chan_iax2: removed user_ref function
+          * main/dsp.c: removed goertzel_update function
+          * main/config.c: made variable_list_switch static
+
+         Review: https://reviewboard.asterisk.org/r/4527
+
+         ASTERISK-24917
+         Reported by: dkdegroot
+         patches:
+           rb4527.patch submitted by dkdegroot (License 6600)
+         ........
+
+         Merged revisions 433678 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 17:34 +0000 [cfbf5fbe91]  Jonathan Rose <jrose@digium.com>
+
+       * SAC: Add a few basic queues
+
+         Review: https://reviewboard.asterisk.org/r/4503/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433658 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 17:25 +0000 [1a50d8d4c2]  Jonathan Rose <jrose@digium.com>
+
+       * SAC: Add conferencing extensions and configuration
+
+         Review: https://reviewboard.asterisk.org/r/4504/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 16:15 +0000 [c6c08d755d]  Rusty Newton <rnewton@digium.com>
+
+       * configs/basic-pbx - Super Awesome Company example configs Phase 1, Patch 2
+
+         Example configuration files for a "basic PBX" deployment for the fictitious
+         Super Awesome Company. Details at https://reviewboard.asterisk.org/r/4488/
+         and https://wiki.asterisk.org/wiki/display/AST/Super+Awesome+Company
+
+         Patch 4488 includes all functionality needed for SAC's outside connectivity
+         and some externally accessed features, as well as outbound dialing.
+
+         Reported by: Malcolm Davenport
+         Tested by: Rusty Newton
+
+         Review: https://reviewboard.asterisk.org/r/4488/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433624 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 16:04 +0000 [13557675d4]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_registrar_expire.c: Made use ao2 container template routines and eliminated some RAII_VAR() usage.
+
+         * Converted the contact_autoexpire container to use the ao2 template hash
+         and cmp functions.  Also made use the OBJ_SEARCH_xxx names instead of the
+         deprecated names.
+
+         * Eliminates several unnecessary uses of RAII_VAR().
+
+         Review: https://reviewboard.asterisk.org/r/4524/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433622 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 15:30 +0000 [85feac857c]  Mark Michelson <mmichelson@digium.com>
+
+       * Add stateful PJSIP response API call, and use it for out-of-dialog responses.
+
+         Asterisk had an issue where retransmissions of MESSAGE requests resulted in
+         Asterisk processing the retransmission as if it were a new MESSAGE request.
+
+         This patch fixes the issue by creating a transaction in PJSIP on the incoming
+         request. This way, if a retransmission arrives, the PJSIP transaction layer
+         will resend the response and Asterisk will not ever see the retransmission.
+
+         ASTERISK-24920 #close
+         Reported by Mark Michelson
+
+         Review: https://reviewboard.asterisk.org/r/4532/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433619 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 12:50 +0000 [dc2cf21144]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_registrar_expire.c: Cleanup scheduler leaks on unload/shutdown.
+
+         Contact expiration object refs were leaked when the module was unloaded.
+
+         * Made empty the scheduler of entries before destroying it to release the
+         object ref held by the scheduler entry.
+
+         Review: https://reviewboard.asterisk.org/r/4523/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433596 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 09:41 +0000 [6e6f5b3a1f]  Justin T. Gibbs <gibbs@scsiguy.org> (License 6692)
+
+       * res/res_timing_kqueue: Update the module to conform to current timer API
+
+         This patch updates the kqueue timing module to conform to current timer API.
+
+         This fixes issues with using the kqueue timing source on Asterisk 13 on
+         FreeBSD 10. These issues include:
+
+         - Remove support for kevent64().  The values used to support Asterisk timers
+           fit within 32bits and so can be handled on all platforms via kevent().
+
+         - Provide debug logging for, but do not track, unacked events.  This matches
+           the behavior of all other timer implementations.
+
+         - Implement continuous mode by triggering and leaving active, a user event.
+           This ensures that the file descriptor for the timer returns immediately from
+           poll(), without placing the load of a high speed timer on the kernel.
+
+         - In kqueue_timer_get_max_rate(), don't overstate the capability of the timer.
+           On some platforms, UINT_MAX is greater than INTPTR_MAX, the largest integer
+           type kqueue supports for timers.
+
+         - In kqueue_timer_get_event(), assume the caller woke up from poll() and just
+           return the mode the timer is currently in. This matches all other timer
+           implementations.
+
+         - Adjust the test code now that unacked events are not tracked.
+
+         Review: https://reviewboard.asterisk.org/r/4465/
+
+         ASTERISK-24857 #close
+         Reported by: scsiguy
+         Tested by: Ed Hynan
+         patches:
+           rb4465.patch submitted by scsiguy (License 6692)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 07:26 +0000 [b0df413fb2]  Corey Farrell <git@cfware.com>
+
+       * Fix link error for utils/aelparse.
+
+         Use the standard ast_log instead of ast_log_safe for STANDALONE programs.
+
+         Review: https://reviewboard.asterisk.org/r/4538/
+         ........
+
+         Merged revisions 433549 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433550 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-27 02:09 +0000 [d01706ce1e]  Corey Farrell <git@cfware.com>
+
+       * Improved and portable ast_log recursion avoidance
+
+         This introduces a new logger routine ast_log_safe.  This routine should be
+         used for all error messages in code that can be run as a result of ast_log.
+         ast_log_safe does nothing if run recursively.  All error logging in
+         astobj2.c, strings.c and utils.h have been switched to ast_log_safe.
+
+         This required adding support for raw threadstorage.  This provides direct
+         access to the void* pointer in threadstorage.  In ast_log_safe, NULL is used
+         to signify that this thread is not already running ast_log_safe, (void*)1 when
+         it is already running.  This was done since it's critical that ast_log_safe
+         do nothing that could log during recursion checking.
+
+         ASTERISK-24155 #close
+         Reported by: Timo Teräs
+         Review: https://reviewboard.asterisk.org/r/4502/
+         ........
+
+         Merged revisions 433522 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433523 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-26 18:07 +0000 [4b225e2104]  Corey Farrell <git@cfware.com>
+
+       * Fix compile errors caused by r4500 / r4501.
+
+         * Add ast_register_cleanup to utils/clicompat.c to deal with
+           any utils that copy sources from main.
+         * Asterisk 13+: remove unused variables from core_local.c.
+
+         Review: https://reviewboard.asterisk.org/r/4534/
+         ........
+
+         Merged revisions 433499 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433500 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-26 17:19 +0000 [6adf26f14d]  Corey Farrell <git@cfware.com>
+
+       * Replace most uses of ast_register_atexit with ast_register_cleanup.
+
+         Since 'core stop now' and 'core restart now' do not stop modules,
+         it is unsafe for most of the core to run cleanups.  Originally all
+         cleanups used ast_register_atexit, and were only changed when it
+         was shown to be unsafe.  ast_register_atexit is now used only when
+         absolutely required to prevent corruption and close child processes.
+
+         Exceptions that need to use ast_register_atexit:
+         * CDR: Flush records.
+         * res_musiconhold: Kill external applications.
+         * AstDB: Close the DB.
+         * canary_exit: Kill canary process.
+
+         ASTERISK-24142 #close
+         Reported by: David Brillert
+
+         ASTERISK-24683 #close
+         Reported by: Peter Katzmann
+
+         ASTERISK-24805 #close
+         Reported by: Badalian Vyacheslav
+
+         ASTERISK-24881 #close
+         Reported by: Corey Farrell
+
+         Review: https://reviewboard.asterisk.org/r/4500/
+         Review: https://reviewboard.asterisk.org/r/4501/
+         ........
+
+         Merged revisions 433495 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433497 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-26 12:46 +0000 [d0df545a44]  Corey Farrell <git@cfware.com>
+
+       * res_pjsip: Enable unload of all modules at shutdown.
+
+         * Move most of res_pjsip:module_unload to unload_pjsip to resolve crashes
+           caused by running PJSIP functions from non-PJSIP threads.
+         * Remove call to pjsip_endpt_destroy(ast_pjsip_endpoint), it was causing
+           crashes in some cases.  In theory pj_shutdown() should take care of this.
+         * Mark res_pjsip_keepalive and res_pjsip_session as allowed to unload at
+           shutdown.
+         * Resolve leaked config global in res_pjsip_notify.
+         * Unregister pubsub pjsip service module.
+         * Implement cleanup for res_pjsip_session.
+
+         ASTERISK-24731 #close
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4498/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-26 12:04 +0000 [fd434a210f]  Kevin Harwell <kharwell@digium.com>
+
+       * app_confbridge: file playback blocks dtmf
+
+         Attempting to execute DTMF in a confbridge while file playback (prompt,
+         announcement, etc) is occurring is not allowed. You have to wait until
+         the sound file has completed before entering DTMF. This patch fixes it
+         so that app_confbridge now monitors for dtmf key presses during menu
+         driven file playback. If a key is pressed playback stops and it executes
+         the matched menu option.
+
+         ASTERISK-24864 #close
+         Reported by: Steve Pitts
+         Review: https://reviewboard.asterisk.org/r/4510/
+         ........
+
+         Merged revisions 433445 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433446 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-25 13:37 +0000 [dea885a607]  Richard Mudgett <rmudgett@digium.com>
+
+       * A couple minor cleanup tweaks.
+
+         * In res/res_sorcery_realtime.c: Broke long line.
+
+         * In main/bucket.c: Eliminated unnecessary NULL check as
+         ast_sorcery_unref() is NULL tolerant and set the global object to NULL
+         after unref in the system shutdown bucket_cleanup().
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433420 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-25 10:30 +0000 [05de9082a5]  Simon Arlott (License 5756)
+
+       * res_xmpp: Buddies are always auto-registered when processing the roster
+
+         Due to a quirk in the configuration handling of res_xmpp, the 'autoregister'
+         setting was never actually processed. This was due to not properly copying
+         over the global settings to the client settings when applying the
+         configuration to the run-time object.
+
+         Review: https://reviewboard.asterisk.org/r/4496/
+
+         ASTERISK-14233
+         ASTERISK-24780 #close
+         Reported by: Simon Arlott
+         patches:
+           asterisk-13.1.0-24780 uploaded by Simon Arlott (License 5756)
+         ........
+
+         Merged revisions 433395 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433396 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-24 14:26 +0000 [b1e9552b08]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_pjsip: Add "rpid_immediate" option to prevent unnecessary "180 Ringing" messages.
+
+         Incoming PJSIP call legs that have not been answered yet send unnecessary
+         "180 Ringing" or "183 Progress" messages every time a connected line
+         update happens.  If the outgoing channel is also PJSIP then the incoming
+         channel will always send a "180 Ringing" or "183 Progress" message when
+         the outgoing channel sends the INVITE.
+
+         Consequences of these unnecessary messages:
+
+         * The caller can start hearing ringback before the far end even gets the
+         call.
+
+         * Many phones tend to grab the first connected line information and refuse
+         to update the display if it changes.  The first information is not likely
+         to be correct if the call goes to an endpoint not under the control of the
+         first Asterisk box.
+
+         When connected line first went into Asterisk in v1.8, chan_sip received an
+         undocumented option "rpid_immediate" that defaults to disabled.  When
+         enabled, the option immediately passes connected line update information
+         to the caller in "180 Ringing" or "183 Progress" messages as described
+         above.
+
+         * Added "rpid_immediate" option to prevent unnecessary "180 Ringing" or
+         "183 Progress" messages.  The default is "no" to disable sending the
+         unnecessary messages.
+
+         ASTERISK-24781 #close
+         Reported by: Richard Mudgett
+
+         Review: https://reviewboard.asterisk.org/r/4473/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-22 18:58 +0000 [a3fe43fbdc]  snuffy <snuffy22@gmail.com> (License 5024)
+
+       * Fix compilations errors on 64-bit OpenBSD systems
+
+         In versiong 5.5, OpenBSD went to 64-bit time values. This requires a cast to
+         (long) when printing members of certain time structs.
+
+         Review: https://reviewboard.asterisk.org/r/4507
+
+         ASTERISK-24879 #close
+         Reported by: snuffy
+         Tested by: snuffy
+         patches:
+           openbsd-time64.diff uploaded by snuffy (License 5024)
+         ........
+
+         Merged revisions 433268 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433269 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-22 18:04 +0000 [08a88aab15]  snuffy <snuffy22@gmail.com> (License 5024)
+
+       * Fix compilation issues for OpenBSD
+
+         This patch addresses compilation issues for OpenBSD. Specifically, it
+         addresses:
+          * It allows including <sys/vmmeter.h> in asterisk.c
+          * Provides a needed (size_t) cast in xmldoc.c
+
+         In 13+, it also addresses a conditional inclusion in loader.c.
+
+         Review: https://reviewboard.asterisk.org/r/4506
+
+         ASTERISK-24880 #close
+         Reported by: snuffy
+         Tested by: snuffy
+         patches:
+           misc-openbsd.diff uploaded by snuffy (License 5024)
+         ........
+
+         Merged revisions 433245 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433247 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-20 14:52 +0000 [6ca98524bf]  Richard Mudgett <rmudgett@digium.com>
+
+       * Audit ast_pjsip_rdata_get_endpoint() usage for ref leaks.
+
+         Valgrind found some memory leaks associated with
+         ast_pjsip_rdata_get_endpoint().  The leaks would manifest when sending
+         responses to OPTIONS requests, processing MESSAGE requests, and
+         res_pjsip supplements implementing the incoming_request callback.
+
+         * Fix ast_pjsip_rdata_get_endpoint() endpoint ref leaks in
+         res/res_pjsip.c:supplement_on_rx_request(),
+         res/res_pjsip/pjsip_options.c:send_options_response(),
+         res/res_pjsip_messaging.c:rx_data_to_ast_msg(), and
+         res/res_pjsip_messaging.c:send_response().
+
+         * Eliminated RAII_VAR() use with ast_pjsip_rdata_get_endpoint() in
+         res/res_pjsip_nat.c:nat_on_rx_message().
+
+         * Fixed inconsistent but benign return value in
+         res/res_pjsip/pjsip_options.c:options_on_rx_request().
+
+         Review: https://reviewboard.asterisk.org/r/4511/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433222 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-20 13:23 +0000 [1c09028171]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_sdp_rtp,sorcery: Fix invalid access and memory leak respectively.
+
+         Valgrind found a memory leak and invalid access.
+
+         * Fix invalid access by sscanf() being fed a non-nul terminated string of
+         digits in res/res_pjsip_sdp_rtp.c:get_codecs().
+
+         * Fix memory leak in main/sorcery.c:sorcery_object_field_destructor().
+
+         * Fix potential NULL pointer dereference in
+         main/xmldoc.c:xmldoc_get_syntax_config_option().
+
+         Review: https://reviewboard.asterisk.org/r/4513/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433199 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-19 14:19 +0000 [73dcea59bd]  Matt Jordan <mjordan@digium.com>
+
+       * funcs/func_env: Fix regression caused in FILE read operation
+
+         When r432935 was merged, it did correctly fix a situation where a FILE read
+         operation on the middle of a file buffer would not read the requested length
+         in the parameters passed to the FILE function. Unfortunately, it would also
+         allow the FILE function to append more bytes than what was available in the
+         buffer if the length exceeded the end of the buffer length.
+
+         This patch takes the minimum of the remaining bytes in the buffer along with
+         the calculated length to append provided by the original patch, and uses
+         that as the length to append in the return result. This patch also updates
+         the unit tests with the scenarios that were originally pointed out in
+         ASTERISK-21765 that the original implementation treated incorrectly.
+
+         ASTERISK-21765
+         ........
+
+         Merged revisions 433173 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433174 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-19 05:20 +0000 [4c84dca2d8]  Corey Farrell <git@cfware.com>
+
+       * logger: Apply default console logging when configuration cannot be loaded.
+
+         When logger.conf is missing or invalid enable console logging and display
+         an error message.
+
+         ASTERISK-24817 #close
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4497/
+         ........
+
+         Merged revisions 433122 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433126 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-19 04:53 +0000 [958bc84caf]  Corey Farrell <git@cfware.com>
+
+       * chan_sip: Simplify dialog/peer references, improve REF_DEBUG output.
+
+         * Replace functions for ref/undef of dialogs and peers with macro's
+           to call ao2_t_bump/ao2_t_cleanup.
+         * Enable passthough of REF_DEBUG caller information to sip_alloc and
+           find_call.
+
+         ASTERISK-24882 #close 
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4189/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433115 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-19 04:44 +0000 [7fddae99dd]  Corey Farrell <git@cfware.com>
+
+       * chan_sip: Fix dialog reference leaked to scheduler for reinvite_timeout.
+
+         Release the scheduler reference to the dialog for reinvite timeout during
+         dialog_unlink_all.
+
+         ASTERISK-24876 #close 
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4491/
+         ........
+
+         Merged revisions 433112 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433113 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-17 21:34 +0000 [dba0f1ad67]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_session: Fix off-nominal extra unref of session.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433088 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-17 17:15 +0000 [2c7b945149]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * Various: bugfixes found via chaos
+
+         Using DEBUG_CHAOS several instances of a null
+         pointer crash, and one uninitialized variable
+         were uncovered and fixed.  Also added details
+         on why Asterisk failed to initialize.
+
+         Review: https://reviewboard.asterisk.org/r/4468/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433064 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-17 16:57 +0000 [1fb1c81923]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * core: Introduce chaos into memory allocations
+
+         Locate potential crashes by exercising seldom
+         used code paths.  This patch introduces a new
+         define DEBUG_CHAOS, and mechanism to randomly
+         return an error condition from functions that
+         will seldom do so.  Functions that handle the
+         allocation of memory get the first treatment.
+
+         Review: https://reviewboard.asterisk.org/r/4463/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433060 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-17 16:49 +0000 [2122c205e6]  Richard Mudgett <rmudgett@digium.com>
+
+       * Audit ast_sockaddr_resolve() usage for memory leaks.
+
+         Valgrind found some memory leaks associated with ast_sockaddr_resolve().
+         Most of the leaks had already been fixed by earlier memory leak hunt
+         patches.  This patch performs an audit of ast_sockaddr_resolve() and found
+         one more.
+
+         * Fix ast_sockaddr_resolve() memory leak in
+         apps/app_externalivr.c:app_exec().
+
+         * Made main/netsock2.c:ast_sockaddr_resolve() always set the addrs
+         parameter for safety so the pointer will never be uninitialized on return.
+         The same goes for res/res_pjsip_acl.c:extract_contact_addr().
+
+         * Made functions that call ast_sockaddr_resolve() with RAII_VAR()
+         controlling the addrs variable use ast_free instead of ast_free_ptr to
+         provide better MALLOC_DEBUG information.
+
+         Review: https://reviewboard.asterisk.org/r/4509/
+         ........
+
+         Merged revisions 433056 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433057 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-17 13:34 +0000 [94fe4a9178]  Kevin Harwell <kharwell@digium.com>
+
+       * res_pjsip: Allow configuration of endpoint identifier query order
+
+         Updated some documentation stating that endpoint identifiers registered without
+         a name are place at the front of the lookup list. Also renamed register method
+         'ast_sip_register_endpoint_identifier_by_name' to
+         'ast_sip_register_endpoint_identifier_with_name'
+
+         ASTERISK-24840
+         Reported by: Mark Michelson
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433031 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-17 13:20 +0000 [1f428f25f0]  Kevin Harwell <kharwell@digium.com>
+
+       * res_pjsip: Allow configuration of endpoint identifier query order
+
+         This patch fixes previously reverted code that caused binary incompatibility
+         problems with some modules. And like the original patch it makes sure that
+         no matter what order the endpoint identifier modules were loaded, priority is
+         given based on the ones specified in the new global 'endpoint_identifier_order'
+         option.
+
+         ASTERISK-24840
+         Reported by: Mark Michelson
+         Review: https://reviewboard.asterisk.org/r/4489/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433028 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-17 11:10 +0000 [522f063186]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip: Add reason comment.
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433005 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-13 21:28 +0000 [5c03a5f2e7]  Matt Jordan <mjordan@digium.com>
+
+       * main/frame: Don't report empty disallow values as an error
+
+         In realtime, it is normal to have a database with both 'allow' and 'disallow'
+         columns in the schema. It is perfectly valid to have an 'allow' value of
+         '!all,g722,ulaw,alaw' and no 'disallow' value. Unlike in static conf files,
+         you can't *not* provide the disallow value. Thus, the empty disallow value
+         causes a spurious WARNING message, which is kind of annoying.
+
+         This patch makes it so that a 'disallow' value with no ... value ... is
+         ignored. Granted, you can still screw this up as well, as technically
+         specifying 'disallow=all,!ulaw' allows only ulaw, and then you would have no
+         'allow' value in your database. But really, why would you do that? WHY?
+
+         ASTERISK-16779 #close
+         Reported by: Atis Lezdins
+         ........
+
+         Merged revisions 432970 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432971 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-13 21:00 +0000 [f7c6bedb06]  Joshua Colp <jcolp@digium.com>
+
+       * func_curl: Don't hold exclusive lock when performing HTTP request.
+
+         This code originally kept a lock held when performing the HTTP
+         request to ensure that the options provided to curl remain valid.
+         This doesn't seem to be necessary these days and holding the lock
+         caused requests to happen sequentially instead of in parallel.
+
+         ASTERISK-18708 #close
+         Reported by: Dave Cabot
+         ........
+
+         Merged revisions 432948 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432949 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-13 20:36 +0000 [287a22435f]  Joshua Colp <jcolp@digium.com>
+
+       * core: Fix tab completion of "core set debug channel" CLI command.
+
+         The "core set debug channel" CLI command mistakenly had source filenames
+         added to its tab completion. This occurred because the CLI generator fell back
+         to the "core set debug" command which permits setting debug at a source
+         filename level.
+
+         ASTERISK-21038 #close
+         Reported by: Richard Kenner
+         ........
+
+         Merged revisions 432944 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432945 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-13 20:21 +0000 [37d33ed997]  Di-Shi Sun (License 5076)
+
+       * FILE: fix retrieval of file contents when offset is specified
+
+         The loop that reads in a file was not correctly using the offset when
+         determining what bytes to append to the output. This patch corrects
+         the logic such that the correct portion of the file is extracted when an
+         offset is specified.
+
+         ASTERISK-21765
+         Reported by: John Zhong
+         Tested by: Matt Jordan, Di-Shi Sun
+         patches:
+           file_read_390821.patch uploaded by Di-Shi Sun (License 5076)
+         ........
+
+         Merged revisions 432935 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432938 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-13 19:18 +0000 [a4c27baf47]  Matt Jordan <mjordan@digium.com>
+
+       * apps/app_amd: Document maximum_word_length option; fix AMDCAUSE documentation
+
+         This patch corrects the documentation for the AMD application. Specifically:
+         * It documents the maximum_word_length option, which limits the maximum allowed
+           length of a single utterance.
+         * It clarifies the AMDCAUSE values MAXWORDS and MAXWORDLENGTH. MAXWORDLENGTH
+           was documented as MAXWORDS, while MAXWORDS was undocumented.
+
+         Thanks to the issue reporter, Frank DiGennaro, for pointing out the issues.
+
+         ASTERISK-19470 #close
+         Reported by: Frank DiGennaro
+         ........
+
+         Merged revisions 432918 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432920 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-13 12:04 +0000 [a3292230b8]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_pjsip: AMI action PJSIPShowEndpoint closes AMI connection on error.
+
+         Also fixed similar problem with AMI action PJSIPShowEndpoints.
+
+         ASTERISK-24872 #close
+         Reported by: Dmitriy Serov
+
+         Review: https://reviewboard.asterisk.org/r/4487/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432894 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-13 11:26 +0000 [34aa0214eb]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_pjsip/res_pjsip_callerid: Make Party ID handling simpler and consistent.
+
+         The res_pjsip modules were manually checking both name and number
+         presentation values when there is a function that determines the combined
+         presentation for a party ID struct.  The function takes into account if
+         the name or number components are valid while the manual code rarely
+         checked if the data was even valid.
+
+         * Made use ast_party_id_presentation() rather than manually checking party
+         ID presentation values.
+
+         * Ensure that set_id_from_pai() and set_id_from_rpid() will not return
+         presentation values other than what is pulled out of the SIP headers.  It
+         is best if the code doesn't assume that AST_PRES_ALLOWED and
+         AST_PRES_USER_NUMBER_UNSCREENED are zero.
+
+         * Fixed copy paste error in add_privacy_params() dealing with RPID
+         privacy.
+
+         * Pulled the id->number.valid test from add_privacy_header() and
+         add_privacy_params() up into the parent function add_id_headers() to skip
+         adding PAI/RPID headers earlier.
+
+         * Made update_connected_line_information() not send out connected line
+         updates if the connected line number is invalid.  Lower level code would
+         not add the party ID information and thus the sent message would be
+         unnecessary.
+
+         * Eliminated RAII_VAR usage in send_direct_media_request().
+
+         Review: https://reviewboard.asterisk.org/r/4472/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432892 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-13 09:48 +0000 [0497b7b155]  Kevin Harwell <kharwell@digium.com>
+
+       * Revert - res_pjsip: Allow configuration of endpoint identifier query order
+
+         Due to a break in binary compatibility with some other modules these changes
+         are being reverted until the issue can be resolved.
+
+         ASTERISK-24840
+         Reported by: Mark Michelson
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432868 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-12 07:58 +0000 [b9fd61f2c7]  Matt Jordan <mjordan@digium.com>
+
+       * main/audiohook: Update internal sample rate on reads
+
+         When an audiohook is created (which is used by the various Spy applications
+         and Snoop channel in Asterisk 13+), it initially is given a sample rate of
+         8kHz. It is expected, however, that this rate may change based on the media
+         that passes through the audiohook. However, the read/write operations on the
+         audiohook behave very differently.
+
+         When a frame is written to the audiohook, the format of the frame is checked
+         against the internal sample rate. If the rate of the format does not match
+         the internal sample rate, the internal sample rate is updated and a new SLIN
+         format is chosen based on that sample rate. This works just fine.
+
+         When a frame is read, however, we do something quite different. If the format
+         rate matches the internal sample rate, all is fine. However, if the rates
+         don't match, the audiohook attempts to "fix up" the number of samples that
+         were requested. This can result in some seriously large number of samples
+         being requested from the read/write factories.
+
+         Consider the worst case - 192kHz SLIN. If we attempt to read 20ms worth of
+         audio produced at that rate, we'd request 3840 samples (192000 / (1000 / 20)).
+         However, if the audiohook is still expecting an internal sample rate of 8000,
+         we'll attempt to "fix up" the requested samples to:
+
+           samples_converted = samples * (ast_format_get_sample_rate(format) /
+                                          (float) audiohook->hook_internal_samp_rate);
+
+           which is:
+
+           92160 = 3840 * (192000 / 8000)
+
+         This results in us attempting to read 92160 samples from our factories, as
+         opposed to the 3840 that we actually wanted. On a 64-bit machine, this
+         miraculously survives - despite allocating up to two buffers of length 92160
+         on the stack. The 32-bit machines aren't quite so lucky. Even in the case where
+         this works, we will either (a) get way more samples than we wanted; or (b) get
+         about 3840 samples, assuming the timing is pretty good on the machine.
+
+         Either way, the calculation being performed is wrong, based on the API users
+         expectations.
+
+         My first inclination was to allocate the buffers on the heap. As it is,
+         however, there's at least two drawbacks with doing this:
+         (1) It's a bit complicated, as the size of the buffers may change during the
+             lifetime of the audiohook (ew).
+         (2) The stack is faster (yay); the heap is slower (boo).
+
+         Since our calculation is flat out wrong in the first place, this patch fixes
+         this issue by instead updating the internal sample rate based on the format
+         passed into the read operation. This causes us to read the correct number of
+         samples, and has the added benefit of setting the audihook with the right
+         SLIN format.
+
+         Note that this issue was caught by the Asterisk Test Suite as a result of
+         r432195 in the 13 branch. Because this issue is also theoretically possible
+         in Asterisk 11, the change is being made here as well.
+
+         Review: https://reviewboard.asterisk.org/r/4475/
+         ........
+
+         Merged revisions 432810 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432811 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-12 07:39 +0000 [f5bc032567]  Diederik de Groot (License 6600)
+
+       * Add support for the clang compiler; update RAII_VAR to use BlocksRuntime
+
+         RAII_VAR, which is used extensively in Asterisk to manage reference counted
+         resources, uses a GCC extension to automatically invoke a cleanup function
+         when a variable loses scope. While this functionality is incredibly useful
+         and has prevented a large number of memory leaks, it also prevents Asterisk
+         from being compiled with clang.
+
+         This patch updates the RAII_VAR macro such that it can be compiled with clang.
+         It makes use of the BlocksRuntime, which allows for a closure to be created
+         that performs the actual cleanup.
+
+         Note that this does not attempt to address the numerous warnings that the clang
+         compiler catches in Asterisk.
+
+         Much thanks for this patch goes to:
+         * The folks on StackOverflow who asked this question and Leushenko for
+           providing the answer that formed the basis of this code:
+           http://stackoverflow.com/questions/24959440/rewrite-gcc-cleanup-macro-with-nested-function-for-clang
+         * Diederik de Groot, who has been extremely patient in working on getting this
+           patch into Asterisk.
+
+         Review: https://reviewboard.asterisk.org/r/4370/
+
+         ASTERISK-24133
+         ASTERISK-23666
+         ASTERISK-20399
+         ASTERISK-20850 #close
+         Reported by: Diederik de Groot
+         patches:
+           RAII_CLANG.patch uploaded by Diederik de Groot (License 6600)
+         ........
+
+         Merged revisions 432807 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432808 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-11 11:38 +0000 [bd029688cd]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip: Move internal init/destroy prototypes to private header file.
+
+         Done as a separate commit from a finding in
+         https://reviewboard.asterisk.org/r/4467/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432787 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-11 10:24 +0000 [c24a294f0b]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip: Fix pjsip.conf type=global object default value handling.
+
+         When a type=global section is not defined in pjsip.conf the global
+         defaults are not applied.  As a result the mandatory Max-Forwards header
+         is not added to SIP messages for res_pjsip/chan_pjsip.
+
+         The handling of pjsip.conf type=global objects has several problems:
+
+         1) If the global object is missing the defaults are not applied.
+
+         2) If the global object is missing the default_outbound_endpoint's default
+         value is not returned by ast_sip_global_default_outbound_endpoint().
+
+         3) Defines are needed so default values only need to be changed in one
+         place.
+
+         * Added a sorcery instance observer callback to check if there were any
+         type=global sections loaded.  If there were more than one then issue an
+         error message.  If there were none then apply the global defaults.
+
+         * Fixed ast_sip_global_default_outbound_endpoint() to return the
+         documented default when no type=global object is defined.
+
+         * Made defines for the global default values.
+
+         * Increased the default_useragent[] size because SVN version strings can
+         get lengthy and 128 characters may not be enough.
+
+         * Fixed an off-nominal code path ref leak in global_alloc() if the string
+         fields fail to initialize.
+
+         * Eliminated RAII_VAR in get_global_cfg() and
+         ast_sip_global_default_outbound_endpoint().
+
+         ASTERISK-24807 #close
+         Reported by: Anatoli
+
+         Review: https://reviewboard.asterisk.org/r/4467/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432766 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-11 10:18 +0000 [737064bfa4]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip: Fixed invalid empty Server and User-Agent SIP headers.
+
+         Setting pjsip.conf useragent to an empty string results in an empty SIP
+         header being sent.
+
+         * Made not add an empty SIP header item to the global SIP headers list.
+
+         Review: https://reviewboard.asterisk.org/r/4467/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432764 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-10 18:09 +0000 [bc357c1d7e]  Joshua Colp <jcolp@digium.com>
+
+       * core: Don't create snapshots with locks.
+
+         Snapshots are immutable and are never changed. Allocating them
+         with a lock is wasteful.
+
+         Review: https://reviewboard.asterisk.org/r/4469/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432742 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-10 16:33 +0000 [afea98dc73]  Javier Acosta (License 6690)
+
+       * res/res_config_odbc: Fix improper escaping of backslashes with MySQL
+
+         When escaping backslashes with MySQL, the proper way to escape the characters
+         in a LIKE clause is to escape the '\' four times, i.e., '\\\\'. To quote the
+         MySQL manual:
+
+         "Because MySQL uses C escape syntax in strings (for example, “\n” to represent
+         a newline character), you must double any “\” that you use in LIKE strings.
+         For example, to search for “\n”, specify it as “\\n”. To search for “\”,
+         specify it as “\\\\”; this is because the backslashes are stripped once by the
+         parser and again when the pattern match is made, leaving a single backslash to
+         be matched against."
+
+         ASTERISK-24808 #close
+         Reported by: Javier Acosta
+         patches:
+           res_config_odbc.diff uploaded by Javier Acosta (License 6690)
+         ........
+
+         Merged revisions 432720 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432721 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-10 13:13 +0000 [055001716c]  Graham Barnett (License 6685)
+
+       * app_voicemail: Fix crash with IMAP backends when greetings aren't present
+
+         When an IMAP backend is in use and greetings are set to be used, but aren't
+         present for a user in their IMAP folder, Asterisk will crash. This occurs
+         due to the mailstream being set to the 'greetings' folder and being left
+         in that particular state, regardless of the success/failure of the attempt
+         to access the folder the mailstream points to. Later access of the mailstream
+         assumes that it points to the 'INBOX' (or some other folder), resulting in
+         either a crash (if the greetings folder didn't exist and the mailstream is
+         invalid) or an inability to read messages from the 'INBOX' folder.
+
+         This patch restores the mailstream to its correct state after accessing the
+         greetings. This fixes the crash, and sets the mailstream to the state that
+         VoiceMailMain expects.
+
+         Note that while ASTERISK-23390 also contained a patch for this issue, the
+         patch on ASTERISK-24786 is the one being merged here.
+
+         Review: https://reviewboard.asterisk.org/r/4459/
+
+         ASTERISK-23390 #close
+         Reported by: Ben Smithurst
+
+         ASTERISK-24786 #close
+         Reported by: Graham Barnett
+         Tested by: Graham Barnett
+         patches:
+           app_voicemail.c.patch.SIGSEGV3rev2 uploaded by Graham Barnett (License 6685)
+         ........
+
+         Merged revisions 432695 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432696 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-10 12:47 +0000 [92178247ee]  Ed Hynan (Licnese 6680)
+
+       * localtime: Fix file descriptor leak on kqueue(2) systems
+
+         The localtime management in the Asterisk core contains a thread that watches
+         for changes in the local timezone. On systems where the directory containing
+         /etc/localtime is modified frequently, the thread monitoring the changes will
+         be woken up to determine if any changes in timezone have occurred. When using
+         kqueue(2), this can cause a leak of file descriptors due to some improper
+         management of resources.
+
+         This patch updates the kqueue(2) handling in localtime, such that is no longer
+         leaks resources.
+
+         Review: https://reviewboard.asterisk.org/r/4450/
+
+         ASTERISK-24739 #close
+         Reported by: Ed Hynan
+         patches:
+           11.15.0-u.diff uploaded by Ed Hynan (Licnese 6680)
+           11.7.0-u.diff uploaded by Ed Hynan (License 6680)
+           svn-trunk-Jan-26-2015-u.diff uploaded by Ed Hynan (License 6680)
+         ........
+
+         Merged revisions 432691 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-10 11:04 +0000 [cae712d986]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_refer: Fix occasional unexpected BYE sent after receiving a REFER.
+
+         A race condition happened between initiating a transfer and requesting
+         that a dialog termination be delayed.  Occasionally, the transferrer
+         channels would exit the bridge and hangup before the dialog termination
+         delay was requested.
+
+         * Made request dialog termination delay before initiating the transfer
+         action.  If the transfer fails then cancel the delayed dialog termination
+         request.
+
+         ASTERISK-24755 #close
+         Reported by: John Bigelow
+
+         Review: https://reviewboard.asterisk.org/r/4460/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432668 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-09 11:12 +0000 [110b99646c]  Kevin Harwell <kharwell@digium.com>
+
+       * res_pjsip: Allow configuration of endpoint identifier query order
+
+         It's possible to have a scenario that will create a conflict between endpoint
+         identifiers. For instance an incoming call could be identified by two different
+         endpoint identifiers and the one chosen depended upon which identifier module
+         loaded first. This of course causes problems when, for example, the incoming
+         call is expected to be identified by username, but instead is identified by ip.
+         This patch adds a new 'global' option to res_pjsip called
+         'endpoint_identifier_order'. It is a comma separated list of endpoint
+         identifier names that specifies the order by which identifiers are processed
+         and checked.
+
+         ASTERISK-24840 #close
+         Reported by: Mark Michelson
+         Review: https://reviewboard.asterisk.org/r/4455/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432638 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-07 19:46 +0000 [714cb27000]  Joshua Colp <jcolp@digium.com>
+
+       * res_rtp_asterisk: Fix wrongful use of USE_PJPROJECT define.
+
+         As pjproject is now used as a shared library a different define,
+         HAVE_PJPROJECT, is used to specify if pjproject is present.
+
+         ASTERISK-24830 #close
+         Reported by: Stefan Engström
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432614 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-06 16:50 +0000 [e158517a9c]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_refer: Make safely get the context for a blind transfer.
+
+         Made safely get the TRANSFER_CONTEXT channel value while the channel is
+         locked in refer_incoming_attended_request() and
+         refer_incoming_blind_request().  The pointer returned by
+         pbx_builtin_getvar_helper() is only valid while the channel is locked.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432594 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-06 16:12 +0000 [5d16d80b59]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_refer: Made refer_attended_alloc() not create the ao2 object with a lock.
+
+         The lock is unused.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-06 15:11 +0000 [772793f18e]  Jonathan Rose <jrose@digium.com>
+
+       * app: Add functions to swap voicemail function table for testing purposes
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432556 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-06 14:18 +0000 [8cced7767c]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_dahdi/sig_analog: Fix distinctive ring detection to suck less.
+
+         The distinctive ring feature interferes with detecting Caller ID and
+         appears to have been broken for years.  What happens is if you have a
+         ring-ring cadence as used in the UK you get too many DAHDI events for the
+         distinctive ring pattern array and Caller ID detection is aborted.  I
+         think when Zapata/DAHDI added the ring begin event it broke distinctive
+         ring.  More events happen than before and the code does no filtering of
+         which event times are recorded in the pattern array.
+
+         * Made distinctive ring only record the ringt count when the ring ends
+         instead of on just any DAHDI event.  Distinctive ring can be ring,
+         ring-ring, ring-ring-ring, or different ring durations for the up to three
+         rings.
+
+         * Fixed the distinctive ring detection enable (chan_dahdi.conf option
+         usedistinctiveringdetection) to be per port instead of somewhat per port
+         and somewhat global.  This has been broken since v1.8.
+
+         * Fixed using the default distinctive ring context when the detected
+         pattern does not match any configured dringX patterns.  The default
+         context did not get set when the previous call was a matched distinctive
+         ring pattern and the current call is not matched.  This has been broken
+         since v1.8.
+
+         * Made distinctive ring have no effect on Caller ID detection when it is
+         disabled.  Caller ID detection just monitors for 10 seconds before giving
+         up.
+
+         * Fixed leak of struct callerid_state memory when a polarity reversal
+         during Caller ID detection causes the incoming call to be aborted.
+
+         DAHDI-1143
+         AST-1545
+         ASTERISK-24825 #close
+         Reported by: Richard Mudgett
+
+         ASTERISK-17588
+         Reported by: Daniel Flounders
+
+         Review: https://reviewboard.asterisk.org/r/4444/
+         ........
+
+         Merged revisions 432530 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432534 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-06 13:31 +0000 [13e715b30c]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_sip: Fix realtime locking inversion when poking a just built peer.
+
+         When a realtime peer is built it can cause a locking inversion when the
+         just built peer is poked.  If the CLI command "sip show channels" is
+         periodically executed then a deadlock can happen because of the locking
+         inversion.
+
+         * Push the peer poke off onto the scheduler thread to avoid the locking
+         inversion of the just built realtime peer.
+
+         AST-1540
+         ASTERISK-24838 #close
+         Reported by: Richard Mudgett
+
+         Review: https://reviewboard.asterisk.org/r/4454/
+         ........
+
+         Merged revisions 432526 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432528 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-05 10:38 +0000 [06fa8db864]  gtjoseph <george.joseph@fairview5.com>
+
+       * app_voicemail: Fix compile breaking in app_voicemail with IMAP_STORAGE.
+
+         There is a leftover "assert" in app_voicemail/__messagecount that references 
+         variables that don't exist.  This causes the compile to fail when 
+         --enable-dev-mode and IMAP_STORAGE are selected.
+
+         This patch removes the assert.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4461/
+         ........
+
+         Merged revisions 432484 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432485 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-04 12:52 +0000 [999d96d405]  Matt Jordan <mjordan@digium.com>
+
+       * translate: Prevent invalid memory accesses on fast shutdown
+
+         When a 'core restart now' or 'core stop now' is executed and a channel is
+         currently in a media operation, the translator matrix can be destroyed while a
+         channel is currently blocked on getting the best translation choice
+         (see ast_translator_best_choice). When the channel gets the mutex, the
+         translation matrix now has invalid memory, and Asterisk crashes.
+
+         This patch does two things:
+         (1) We now only clean up the translation matrix on a graceful shutdown. In that
+             case, there are no channels, and so there is no risk of this occurring.
+         (2) We also now set the __matrix and __indextable to NULL. In some initial
+             backtraces when this occurred, it looked as if there was a memory corruption
+             occurring, and it wasn't until we determined that something had restarted
+             Asterisk that the issue became clear. By setting these to NULL on shutdown,
+             it becomes a bit easier to determine why a crash is occurring.
+
+         Note that we could litter the code with NULL checks on the __matrix, but the
+         act of making the translation matrix cleaned up on shutdown should preclude
+         this issue from occurring in the first place, and this part of the code needs
+         to be as fast as possible.
+
+         Review: https://reviewboard.asterisk.org/r/4457/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432453 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-03-02 13:14 +0000 [9cdadc168c]  Matt Jordan <mjordan@digium.com>
+
+       * res/res_pjsip_sdp_rtp: Revert portion of r432195
+
+         Unfortunately, while initial testing with ConfBridge did not reproduce the
+         audio problem alluded to in the comment in res_pjsip_sdp_rtp, further testing
+         did show that bridge_softmix and/or ConfBridge has a severe problem bridging
+         two or more participants at different sampling rates. Sometimes, it even picks
+         odd sampling rates that cause hideous audio problems.
+
+         This patch backs out the offending portion of the code until the issues in
+         the affected bridging modules can be more properly analyzed.
+
+         ASTERISK-24841
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432423 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-27 12:23 +0000 [9d85e855de]  Richard Mudgett <rmudgett@digium.com>
+
+       * ARI: Fix crash if integer values used in JSON payload 'variables' object.
+
+         Sending the following ARI commands caused Asterisk to crash if the JSON
+         body 'variables' object passes values of types other than strings.
+
+         POST /ari/channels
+         POST /ari/channels/{channelid}
+         PUT /ari/endpoints/sendMessage
+         PUT /ari/endpoints/{tech}/{resource}/sendMessage
+
+         * Eliminated RAII_VAR usage in ast_ari_channels_originate_with_id(),
+         ast_ari_channels_originate(), ast_ari_endpoints_send_message(), and
+         ast_ari_endpoints_send_message_to_endpoint().
+
+         ASTERISK-24751 #close
+         Reported by:  jeffrey putnam
+
+         Review: https://reviewboard.asterisk.org/r/4447/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432404 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-26 12:52 +0000 [c33c5183a5]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * Dial API: add self destruct option when complete
+
+         This patch adds a self-destruction option to the
+         dial api.  The usefulness of this is mostly when
+         using async mode to spawn a separate thread used
+         to handle the new call, while the calling thread
+         is allowed to go on about other business.
+
+         The only alternative to this option would be the
+         calling thread spawning a new thread, or hanging
+         around itself waiting to destroy the dial struct
+         after completion.
+
+         Example of use (minus error checking):
+
+           struct ast_dial *dial = ast_dial_create();
+
+           ast_dial_append(dial, "PJSIP", "200", NULL);
+
+           ast_dial_option_global_enable(dial, AST_DIAL_OPTION_ANSWER_EXEC, "Echo");
+           ast_dial_option_global_enable(dial, AST_DIAL_OPTION_SELF_DESTROY, NULL);
+
+           ast_dial_run(dial, NULL, 1);
+
+         The dial_run call will return almost immediately
+         after spawning the new thread to run and monitor
+         the dial.  If the call is answered, it is placed
+         into the echo app.  When completed, it will call
+         ast_dial_destroy() on the dial structure.
+
+         Note that any allocations made to pass values to
+         ast_dial_set_user_data() or dial options must be
+         free'd in a state callback function on any of:
+           AST_DIAL_RESULT_UNASWERED,
+           AST_DIAL_RESULT_ANSWERED,
+           AST_DIAL_RESULT_HANGUP, or 
+           AST_DIAL_RESULT_TIMEOUT.
+
+         Review: https://reviewboard.asterisk.org/r/4443/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432385 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-26 11:07 +0000 [169058e73f]  Kevin Harwell <kharwell@digium.com>
+
+       * app_chanspy, channel: fix frame leaks
+
+         Fixed a couple of frame leaks that were found during testing.
+
+         ASTERISK-24828 #close
+         Reported by: John Hardin
+         Review: https://reviewboard.asterisk.org/r/4445/
+         ........
+
+         Merged revisions 432362 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432363 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-25 22:58 +0000 [de86b30dba]  Matt Jordan <mjordan@digium.com>
+
+       * make: Remove 'res_features' from libraries to link against with cygwin/mingw32
+
+         Both the apps and channels Makefiles still listed 'res_features' as modules to
+         link against when compiling for cygwin or mingw32. This module hasn't existed
+         for quite some time.
+
+         ASTERISK-18105 #close
+         Reported by: feyfre
+         ........
+
+         Merged revisions 432341 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432342 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-25 21:03 +0000 [34989bd9c8]  Makoto Dei (License 5027)
+
+       * channels/chan_sip: Don't send a BYE after final response when PBX thread fails
+
+         When Asterisk fails to start a PBX thread for a new channel - for example, when
+         the maxcalls setting in asterisk.conf is exceeded - we currently send a final
+         response, and then attempt to send a BYE request to the UA. Since that's all
+         sorts of wrong, this patch fixes that by setting sipalreadygone on the sip_pvt
+         such that we don't get stuck sending BYE requests to something that does not
+         want it.
+
+         Note that this patch is a slight modification of the one on ASTERISK-15434.
+         For clarity, it explicitly calls sipalreadygone with the calls to transmit a
+         final response.
+
+         ASTERISK-21845
+         ASTERISK-15434 #close
+         Reported by: Makoto Dei
+         Tested by: Matt Jordan
+         patches:
+           sip-pbxstart-failed.patch uploaded by Makoto Dei (License 5027)
+         ........
+
+         Merged revisions 432320 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432321 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-25 17:48 +0000 [53aec7a969]  Rusty Newton <rnewton@digium.com>
+
+       * configs/basic-pbx - Super Awesome Company example configs Phase 1, Patch 1
+
+         Example configuration files for a "basic PBX" deployment for the fictitious
+         Super Awesome Company. Details at https://reviewboard.asterisk.org/r/4379/
+         and https://wiki.asterisk.org/wiki/display/AST/Super+Awesome+Company
+
+         Reported by: Malcolm Davenport
+         Tested by: Rusty Newton
+
+         Review: https://reviewboard.asterisk.org/r/4379/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432301 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-25 17:09 +0000 [474fec4f92]  Matt Jordan <mjordan@digium.com>
+
+       * configure: Promote SQLite3 "not installed" warning to error
+
+         Since Asterisk won't build without the library, not having it is definitely
+         an error. Thanks to Kyle Kurz for pointing this out.
+         ........
+
+         Merged revisions 432280 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432281 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-25 17:02 +0000 [ddff640f94]  Matt Jordan <mjordan@digium.com>
+
+       * channels/chan_sip: Clarify WARNING message in mismatched SRTP scenario
+
+         When we receive an SDP as part of an offer/answer for a peer/friend has been
+         configured to require encryption, and that SDP offer/answer failed to provide
+         acceptable crypto attributes, we currently issue a WARNING that uses the phrase
+         "we" and "requested". In this case, both of those terms are ambiguous - the
+         user will probably think "we" is Asterisk (it most likely isn't) and it may
+         not be a "request", so much as an SDP that was received in some fashion.
+
+         This patch makes the WARNING messages slightly less bad and a bit more
+         accurate as well.
+
+         ASTERISK-23214 #close
+         Reported by: Rusty Newton
+         ........
+
+         Merged revisions 432277 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432278 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-25 15:42 +0000 [dd8ac00f24]  Olle Johansson <oej@edvina.net> (License 5267)
+
+       * channels/sip/sdp_crypto: Handle SRTP keys negotiated with key lifetime/MKI
+
+         Prior to this patch, SDP offers negotiating SDES-SRTP crypto attributes would
+         be rejected if those crypto attributes contained either a key lifetime or a
+         MKI parameter. While from a theoretical point of view this was defensible -
+         Asterisk does not support key lifetimes or multiple crypto keys - from a
+         practical point of view, this is quite a problem. A large number of endpoints
+         offer lifetimes/MKI, which Asterisk can tolerate so long as it doesn't actually
+         have to support anything more than a single key or refresh the key.
+         In reality, this is (so far as we've seen) always the case.
+
+         This patch is a forward port of Olle's work in the lingon-srtp-key-lifetime-1.8
+         branch. To quote Olle from ASTERISK-17721, it handles lifetime/MKI parameters
+         in the following fashion:
+
+         > The Lingon branch now handle lifetime and MKI parameters.
+         >
+         > We only accept lifetimes up to max for the crypto and higher than 10 hours
+         > for packetization of 20 ms (50 pps).
+         >
+         > We only handle MKI with index 1.
+         >
+         > We do not really bother with counting packets and reinviting at end of
+         > lifetime, so the min of 10 hours kind of takes care of most calls. If there
+         > are longer ones, we rely on the other side for re-invites.
+         >
+         > It's still not perfect, but I personally think this is an improvement. A
+         > configuration option for minimum lifetime accepted could be added.
+
+         When the patch was ported forward, I decided against adding a configuration
+         option as Olle's handling was more than sufficient for every case I've seen
+         come through the issue tracker or through interoperability testing. We can
+         revisit that decision if it proves to be false.
+
+         A few small other tweaks were made to the surrounding code to reduce
+         indentation and provide better type safety for the 'tag' parameter.
+
+         Review: https://reviewboard.asterisk.org/r/4419/
+         Review: https://reviewboard.asterisk.org/r/4418/
+
+         ASTERISK-17721 #close
+         Reported by: Terry Wilson
+
+         ASTERISK-17899 #close
+         Reported by: Dwayne Hubbard
+         patches:
+           lingon-srtp-key-lifetime-1.8.diff uploaded by oej (License 5267)
+
+         ASTERISK-20233
+         Reported by: tootai
+
+         ASTERISK-22748
+         Reported by: Alejandro Mejia
+         ........
+
+         Merged revisions 432239 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432258 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-25 14:44 +0000 [43a3e80be1]  David M. Lee <dlee@digium.com>
+
+       * Increase WebSocket frame size and improve large read handling
+
+         Some WebSocket applications, like [chan_respoke][], require a larger
+         frame size than the default 8k; this patch bumps the default to 16k.
+         This patch also fixes some problems exacerbated by large frames.
+
+         The sanity counter was decremented on every fread attempt in
+         ws_safe_read(), regardless of whether data was read from the socket or
+         not. For large frames, this could result in loss of sanity prior to
+         reading the entire frame. (16k frame / 1448 bytes per segment = 12
+         segments).
+
+         This patch changes the sanity counter so that it only decrements when
+         fread() doesn't read any bytes. This more closely matches the original
+         intention of ws_safe_read(), given that the error message is
+         "Websocket seems unresponsive".
+
+         This patch also properly logs EOF conditions, so disconnects are no
+         longer confused with unresponsive connections.
+
+          [chan_respoke]: https://github.com/respoke/chan_respoke
+
+         Review: https://reviewboard.asterisk.org/r/4431/
+         ........
+
+         Merged revisions 432236 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432237 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-24 16:14 +0000 [978649a568]  Matt Jordan <mjordan@digium.com>
+
+       * channels/chan_sip: Fix crash when transmitting packet after thread shutdown
+
+         When the monitor thread is stopped, its pthread ID is set to a specific value
+         (AST_PTHREADT_STOP) so that later portions of the code can determine whether
+         or not it is safe to manipulate the thread. Unfortunately, __sip_reliable_xmit
+         failed to check for that value, checking instead only for AST_PTHREAD_STOP.
+         Passing the invalid yet very specific value to pthread_kill causes a crash.
+
+         This patch adds a check for AST_PTHREADT_STOP in __sip_reliable_xmit such that
+         it doesn't attempt to poke the thread if the thread has already been stopped.
+
+         ASTERISK-24800 #close
+         Reported by: JoshE
+         ........
+
+         Merged revisions 432198 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432199 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-24 15:58 +0000 [3d1a1533bf]  Matt Jordan <mjordan@digium.com>
+
+       * ARI/PJSIP: Apply requesting channel's format cap to created channels
+
+         This patch addresses the following problems:
+         * ari/resource_channels: In ARI, we currently create a format capability
+           structure of SLIN and apply it to the new channel being created. This was
+           originally done when the PBX core was used to create the channel, as there
+           was a condition where a newly created channel could be created without any
+           formats. Unfortunately, now that the Dial API is being used, this has two
+           drawbacks:
+           (a) SLIN, while it will ensure audio will flows, can cause a lot of
+               needless transcodings to occur, particularly when a Local channel is
+               created to the dialplan. When no format capabilities are available, the
+               Dial API handles this better by handing all audio formats to the requsted
+               channels. As such, we defer to that API to provide the format
+               capabilities.
+           (b) If a channel (requester) is causing this channel to be created, we
+               currently don't use its format capabilities as we are passing in our own.
+               However, the Dial API will use the requester channel's formats if none
+               are passed into it, and the requester channel exists and has format
+               capabilities. This is the "best" scenario, as it is the most likely to
+               create a media path that minimizes transcoding.
+           Fixing this simply entails removing the providing of the format capabilities
+           structure to the Dial API.
+
+         * chan_pjsip: Rather than blindly picking the first format in the format
+           capability structure - which actually *can* be a video or text format - we
+           select an audio format, and only pick the first format if that fails. That
+           minimizes the weird scenario where we attempt to transcode between video/audio.
+
+         * res_pjsip_sdp_rtp: Applied the joint capapbilites to the format structure.
+           Since ast_request already limits us down to one format capability once the
+           format capabilities are passed along, there's no reason to squelch it here.
+
+         * channel: Fixed a comment. The reason we have to minimize our requested
+           format capabilities down to a single format is due to Asterisk's inability
+           to convey the format to be used back "up" a channel chain. Consider the
+           following:
+
+             PJSIP/A => L;1 <=> L;2 => PJSIP/B
+             g,u,a     g,u,a    g,u,a      u
+
+           That is, we have PJSIP/A dialing a Local channel, where the Local;2 dials
+           PJSIP/B. PJSIP/A has native format capabilities g722,ulaw,alaw; the Local
+           channel has inherited those format capabilities down the line; PJSIP/B
+           supports only ulaw. According to these format capabilities, ulaw is
+           acceptable and should be selected across all the channels, and no
+           transcoding should occur. However, there is no way to convey this: when L;2
+           and PJSIP/B are put into a bridge, we will select ulaw, but that is not
+           conveyed to PJSIP/A and L;1. Thus, we end up with:
+
+             PJSIP/A <=> L;1 <=> L;2 <=> PJSIP/B
+               g          g   X   u        u
+
+           Which causes g722 to be written to PJSIP/B.
+
+           Even if we can convey the 'ulaw' choice back up the chain (which through
+           some severe hacking in Local channels was accomplished), such that the chain
+           looks like:
+
+             PJSIP/A <=> L;1 <=> L;2 <=> PJSIP/B
+               u          u       u         u
+
+           We have no way to tell PJSIP/A's *channel driver* to Answer in the SDP back
+           with only 'ulaw'. This results in all the channel structures being set up
+           correctly, but PJSIP/A *still* sending g722 and causing the chain to fall
+           apart.
+
+           There's a lot of difficulty just in setting this up, as there are numerous
+           race conditions in the act of bridging, and no clean mechanism to pass the
+           selected format backwards down an established channel chain. As such, the
+           best that can be done at this point in time is clarifying the comment.
+
+         Review: https://reviewboard.asterisk.org/r/4434/
+
+         ASTERISK-24812 #close
+         Reported by: Matt Jordan
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432195 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-24 12:32 +0000 [5b73246a9d]  Kevin Harwell <kharwell@digium.com>
+
+       * bridge_softmix: G.729 codec license held
+
+         When more than one call using the same codec type enters into a softmix bridge
+         and no audio is present for a channel the bridge optimizes the out frame by
+         using the same one for all channels with the same codec type. Unfortunately,
+         when that number (channels with same codec type) dropped to <= 1 the codec
+         was not dereferenced. At least not until all parties left the bridge. Thus in
+         the case of G.729 the license was not released. This patch ensures that the
+         codec is dereferenced immediately when the optimization no longer applies.
+
+         ASTERISK-24797 #close
+         Reported by: Luke Hulsey
+         Review: https://reviewboard.asterisk.org/r/4429/
+         ........
+
+         Merged revisions 432174 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432175 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-21 14:47 +0000 [f726304283]  Joshua Colp <jcolp@digium.com>
+
+       * res_ari_channels: Return a 404 response when a requested channel variable does not exist.
+
+         This change makes it so that if a channel variable is requested and it does not exist
+         a 404 response will be returned instead of an allocation failed response. This makes
+         it easier to debug and figure out what is going on for a user.
+
+         ASTERISK-24677 #close
+         Reported by: Joshua Colp
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432154 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-21 13:26 +0000 [7a507ae31a]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_registrar: Add Expires header to 200 OK if present in REGISTER.
+
+         Some implementations don't pay attention to the expires for individual contacts.
+         In this case they may consider the lack of an Expires header in the 200 OK as
+         unregistered. This change makes it so if an Expires header is present in the REGISTER
+         we will add one in the 200 OK.
+
+         ASTERISK-24785 #close
+         Reported by: Ross Beer
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432136 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-21 12:51 +0000 [f0d018e249]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip: Add a log message when creating a UAC dialog to a target URI that is invalid.
+
+         ASTERISK-24499 #close
+         Reported by: Rusty Newton
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432118 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-21 11:35 +0000 [c40d78c31e]  Graham Barnett (License 6685)
+
+       * apps/app_voicemail: Demote an ERROR message to a WARNING message
+
+         When using IMAP voicemail with FreePBX, you will often get ERROR messages
+         complaining about not being able to find a mailbox. This is due to how FreePBX
+         handles voicemail mailboxes. Unfortunately, app_voicemail has to consider this
+         a configuration error, as in any other system it would be indicative of
+         someone misconfiguring their system.
+
+         Regardless, a misconfiguration is a WARNING, and not an ERROR. This patch
+         demotes the message so that system administrators can hopefully reduce some
+         of the noise in their log files.
+
+         Note that in the original patch this was made into a NOTICE, but that's a
+         too forgiving.
+
+         ASTERISK-24790 #close
+         Reported by: Graham Barnett
+         patches:
+           app_voicemail.c.patch_noise uploaded by Graham Barnett (License 6685)
+         ........
+
+         Merged revisions 432098 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432099 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-21 08:05 +0000 [bf9d416536]  Joshua Colp <jcolp@digium.com>
+
+       * http: Add missing html tag to 'httpstatus' functionality.
+
+         ASTERISK-24724 #close
+         Reported by: Ashley Sanders
+         ........
+
+         Merged revisions 432078 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432079 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-20 20:56 +0000 [93c9c3af2f]  Corey Farrell <git@cfware.com>
+
+       * Allow shutdown to unload modules that register bucket scheme's or codec's.
+
+         * Change __ast_module_shutdown_ref to be NULL safe (11+).
+         * Allow modules that call ast_bucket_scheme_register or ast_codec_register
+           to be unloaded during graceful shutdown only (13+ only).
+
+         ASTERISK-24796 #close
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4428/
+         ........
+
+         Merged revisions 432058 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432059 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-20 20:46 +0000 [54a699fb64]  Corey Farrell <git@cfware.com>
+
+       * asterisk/lock.h: Fix syntax errors for non-gcc OSX with 64-bit integers.
+
+         Add a couple of missing closing brackets / parenthesis.
+
+         ASTERISK-24814 #close
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4436/
+         ........
+
+         Merged revisions 432054 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432055 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-20 11:51 +0000 [89b48af3e5]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_dahdi/sig_analog: Put log message strings on one line.
+
+         With the log messages on one line, you can search for the log message seen
+         in the log and expect to find it.
+         ........
+
+         Merged revisions 432032 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432034 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-20 11:46 +0000 [8e806f9e12]  Matt Hoskins (license 6688)
+
+       * ASTERISK-24811: Add ast_sorcery_apply_config() to res_pjsip_publish_asterisk.
+
+         Matt Hoskins reported that res_pjsip_publish_asterisk wouldn't pull config from 
+         realtime.  Turns out it was just missing a call ast_sorcery_apply_config().
+
+         res_pjsip_acl was missing it as well, so I added it.  The other pjsip modules 
+         looked OK.
+
+         ASTERISK-24811 #close
+         Reported-by: Matt Hoskins
+         Tested-by: George Joseph
+         Tested-by: Matt Hoskins
+         patches:
+               res_pjsip_publish_asterisk.c.patch submitted by Matt Hoskins (license 6688)
+
+         Review: https://reviewboard.asterisk.org/r/4433/
+
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432033 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-20 09:47 +0000 [c7bdf62a95]  Graham Barnett (License 6685)
+
+       * apps/app_voicemail: Fix IMAP header compatibility issue with Microsoft Exchange
+
+         When interfacing with Microsoft Exchange, custom headers will be returned as
+         all lower case. Currently, the IMAP header code will fail to parse the returned
+         custom headers, as it will be performing a case sensitive comparison. This can
+         cause playback of messages to fail, as needed information - such as origtime -
+         will not be present.
+
+         This patch updates app_voicemail's header parsing code to perform a case
+         insensitive lookup for the requested custom headers. Since the headers are
+         specific to Asterisk, e.g., 'x-asterisk-vm-orig-time', and headers should be
+         unique in an IMAP message, this should cause no issues with other systems.
+
+         ASTERISK-24787 #close
+         Reported by: Graham Barnett
+         patches:
+           app_voicemail.c.patch_MSExchange uploaded by Graham Barnett (License 6685)
+         ........
+
+         Merged revisions 432012 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@432013 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-19 15:25 +0000 [e0ff83c272]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_dahdi: Remove some dead code.
+         ........
+
+         Merged revisions 431992 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431993 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-19 12:25 +0000 [40547e7210]  Richard Mudgett <rmudgett@digium.com>
+
+       * ISDN AOC: Fix crash from an AOC-E message that doesn't have a channel association.
+
+         Processing an AOC-E event that does not or no longer has a channel
+         association causes a crash.
+
+         The problem with posting AOC events to the channel topic is that AOC-E
+         events don't always have a channel association and posting the event to
+         the all channels topic is just wrong.  AOC-E events do however have their
+         own charging association method to refer to the agreement with the
+         charging entity.
+
+         * Changed the AOC events to post to the AMI manager topic instead of the
+         channel topics.  If a channel is associated with the event then channel
+         snapshot information is supplied with the AMI event.
+
+         * Eliminated RAII_VAR() usage in aoc_to_ami() and ast_aoc_manager_event().
+
+         This patch supercedes the patch on Review: https://reviewboard.asterisk.org/r/4427/
+
+         ASTERISK-22670 #close
+         Reported by: klaus3000
+
+         ASTERISK-24689 #close
+         Reported by: Marcel Manz
+
+         ASTERISK-24740 #close
+         Reported by: Panos Gkikakis
+
+         Review: https://reviewboard.asterisk.org/r/4430/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431974 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-19 11:30 +0000 [2181c9443f]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_refer: Handle INVITE with Replaces failure after answer.
+
+         * Fixed hangup handling of the session->channel after answer if the
+         ast_channel_move() or ast_bridge_impart() fails.  We are still the thread
+         controlling the session->channel so we need to call ast_hangup() to kill
+         the channel.
+
+         * Fixed debug messages in refer_incoming_invite_request() referencing
+         incorrect channnels on success.  Code comments now say why the
+         session->channel cannot be used.
+
+         Review: https://reviewboard.asterisk.org/r/4422/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431956 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-19 09:28 +0000 [374013d817]  Alexander Traud (License 6520)
+
+       * tcptls: Handle new OpenSSL compile time option to disable SSLv3
+
+         Some distributions are going to disable SSLv3 at compile time. This option can
+         be checked using the directive OPENSSL_NO_SSL3_METHOD. This patch updates the
+         TCP/TLS handling in Asterisk to look for that directive before attempting to
+         use the SSLv3 specific methods.
+
+         ASTERISK-24799 #close
+         Reported by: Alexander Traud
+         patches:
+           no-ssl3-method.patch uploaded by Alexander Traud (License 6520)
+         ........
+
+         Merged revisions 431936 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431937 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-18 20:01 +0000 [eb9448a1ae]  Corey Farrell <git@cfware.com>
+
+       * Create work around for scheduler leaks during shutdown.
+
+         * Added ast_sched_clean_by_callback for cleanup of scheduled events
+           that have not yet fired.
+         * Run all pending peercnt_remove_cb and replace_callno events in chan_iax2.
+           Cleanup of replace_callno events is only run 11, since it no longer
+           releases any references or allocations in 13+.
+
+         ASTERISK-24451 #close
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4425/
+         ........
+
+         Merged revisions 431916 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431917 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-17 09:31 +0000 [6d3fcfc3c2]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_refer: Fix crash from a REFER and BYE collision.
+
+         Analyzing a one-off crash on a busy system showed that processing a REFER
+         request had a NULL session channel pointer.  The only way I can think of
+         that could cause this is if an outgoing BYE transaction overlapped the
+         incoming REFER transaction in a collision.  Asterisk sends a BYE while the
+         phone sends a REFER to complete an attended transfer.
+
+         * Made check the session channel pointer before processing an incoming
+         REFER request in res_pjsip_refer.
+
+         * Fixed similar crash potential for res_pjsip supplement incoming request
+         processing for res_pjsip_sdp_rtp INFO, res_pjsip_caller_id INVITE/UPDATE,
+         res_pjsip_messaging MESSAGE, and res_pjsip_send_to_voicemail REFER
+         messages.
+
+         * Made res_pjsip_messaging respond to a message body too large with a 413
+         instead of ignoring it.
+
+         ASTERISK-24700 #close
+         Reported by: Zane Conkle
+
+         Review: https://reviewboard.asterisk.org/r/4417/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431898 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-16 15:29 +0000 [562b7bf6f0]  Matt Jordan <mjordan@digium.com>
+
+       * res/res_rtp_asterisk: Fix crash in debug from RTCP reports without report block
+
+         When RTCP debugging was enabled, an RTCP report without a report block would
+         cause a crash. This was due to the verbose output not checking to see if the
+         report_block pointer was NULl before dereferencing it.
+
+         This patch adds the necessary check to prevent printing any verbose output
+         if the far side hasn't provided us the information they should have.
+
+         ASTERISK-24791 #close
+         Reported by: JoshE
+         Tested by: JoshE
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431879 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-15 13:00 +0000 [7890d0ad07]  Joshua Colp <jcolp@digium.com>
+
+       * pjsip: Remove "contact" type from pjsip.conf.sample
+
+         The "contact" object is not meant to be configured from the pjsip.conf
+         configuration file. It is meant to be created as a result of a registration
+         and stored elsewhere.
+
+         ASTERISK-24085 #close
+         Reported by: Rusty Newton
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431860 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-15 11:59 +0000 [cbe63ab283]  Joshua Colp <jcolp@digium.com>
+
+       * install_prereq: Tweak flags when configuring pjproject.
+
+         This change does two things:
+         1. Disables debugging so assertions which can return an error do,
+         instead of asserting.
+         2. Enables IPv6 support.
+
+         ASTERISK-24632 #close
+         Reported by: Rusty Newton
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431843 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-15 11:42 +0000 [c8f3074cc4]  Joshua Colp <jcolp@digium.com>
+
+       * res_sorcery_config: Improve object lookup times.
+
+         The res_sorcery_config module currently uses a fixed bucket
+         size of 53. This means that depending on the number of objects
+         you either end up with excess buckets or a lot of collisions.
+         Due to the way that res_sorcery_config is implemented it's actually
+         possible to make the bucket size dynamic based on the number of
+         objects. This is due to the fact that each loading of the config file
+         produces a new container and does not modify the existing one.
+         This change uses the number of expected objects and finds a prime
+         number near it. In practice depending on the number of objects this
+         can speed up lookups anywhere from 2X to 15X. This change also removes
+         the lock from the container as it is not needed.
+
+         Review: https://reviewboard.asterisk.org/r/4423/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431841 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-15 10:00 +0000 [a3044cbf02]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip: Add "pjsip show version" CLI command.
+
+         When debugging things it can be useful to know absolutely what
+         version of pjproject res_pjsip is running against. This change
+         adds a "pjsip show version" CLI command which can be used to
+         query for this.
+
+         ASTERISK-24685 #close
+         Reported by: Joshua Colp
+
+         Review: https://reviewboard.asterisk.org/r/4424/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431824 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-15 06:39 +0000 [ce70587ba6]  Matthias Urlichs (license 5508)
+
+       * res_timing_pthread: Fix leaky pipes.
+
+         During some refactoring the way private information for timers
+         was stored was changed. As a result of this the action which normally
+         removed the timer upon closure in res_timing_pthread was also removed
+         causing the timer to remain after it should using up resources.
+         This change ensures that the timer is removed upon closure.
+
+         ASTERISK-24768 #close
+         Reported by: Matthias Urlichs
+         patches:
+          timer.patch submitted by Matthias Urlichs (license 5508)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431807 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-14 18:32 +0000 [4f4d03fdd1]  Matt Jordan <mjordan@digium.com>
+
+       * apps/app_mixmonitor: Move Test Event for MIXMONITOR_END to after it finishes
+
+         The Test Event for MIXMONITOR_END - which signals that a MixMonitor has
+         completed - technically fired before the filestream was closed. If a test
+         used this to trigger a condition to verify that the file was written, it
+         could result in a race condition where the file size would not be what the
+         test expected.
+
+         Luckily, no tests were using this (although they should have been). Since the
+         test event needed to be moved after the point where the MixMonitor autochan has
+         been destroyed, the test event no longer emits the channel name. Luckily,
+         nothing needs it.
+         ........
+
+         Merged revisions 431788 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431789 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-14 13:45 +0000 [758a897876]  Joshua Colp <jcolp@digium.com>
+
+       * sorcery: Output an error message if a wizard is specified for an object type and it isn't found.
+
+         ASTERISK-24612 #close
+         Reported by: Joshua Colp
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431771 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-14 12:30 +0000 [8c6e3ad3b4]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_exten_state: Improve log message when a subscription is attempted to a non-existent extension.
+
+         ASTERISK-24716 #close
+         Reported by: Rusty Newton
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431754 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-14 12:20 +0000 [3543a36362]  Joshua Colp <jcolp@digium.com>
+
+       * 'information' ends with an 'n'.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431752 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-14 12:19 +0000 [5d26236758]  Joshua Colp <jcolp@digium.com>
+
+       * chan_pjsip: Fix crash when CHANNEL dialplan function is invoked with pjsip argument and no type.
+
+         ASTERISK-24771 #close
+         Reported by: Niklas Larsson
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431751 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-13 11:21 +0000 [4d797f17c5]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_session: Fix double re-INVITE collision crash.
+
+         A multi-asterisk box setup with direct media enabled would occasionally
+         crash when two re-INVITE collisions on a call leg happen in a row.
+
+         The re-INVITE logic only had one timer struct to defer the re-INVITE.
+         When the second collision happens the timer struct is overwritten and put
+         into the timer heap again.  Resources for the first timer are leaked and
+         the heap has two positions occupied by the same timer struct.  Now the
+         heap ordering is potentially corrupted, the timer will fire twice, and any
+         resources allocated for the second timer will be released twice.
+
+         * The solution is to put the collided re-INVITE into the delayed requests
+         queue with all the other delayed requests and cherry pick the next request
+         that can come off the queue when an event happens.
+
+         * Changed to put delayed BYE requests at the head of the delayed queue.
+         There is no sense in processing delayed UPDATEs and re-INVITEs when a BYE
+         has been requested.
+
+         * Made the start of a BYE request flush the delayed requests queue to
+         prevent a delayed request from overlapping the BYE transaction.  I saw a
+         few cases where a delayed re-INVITE got started after the BYE transaction
+         started.
+
+         * Changed the delayed_request struct to use an enum instead of a string
+         for the request method.  Cherry picking the queue is easier with an enum
+         than string comparisons and the compiler can warn if a switch statement
+         does not cover all defined enum values.
+
+         * Improved the debug output to give more information.  It helps to know
+         which channel is involved with an endpoint.  Trunks can have many channels
+         associated with the endpoint at the same time.
+
+         ASTERISK-24727 #close
+         Reported by: Mark Michelson
+
+         Review: https://reviewboard.asterisk.org/r/4414/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431734 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-12 14:32 +0000 [1995baad71]  Matt Jordan <mjordan@digium.com>
+
+       * ARI/PJSIP: Add the ability to redirect (transfer) a channel in a Stasis app
+
+         This patch adds a new feature to ARI to redirect a channel to another server,
+         and fixes a few bugs in PJSIP's handling of the Transfer dialplan
+         application/ARI redirect capability.
+
+         *New Feature*
+         A new operation has been added to the ARI channels resource, redirect. With
+         this, a channel in a Stasis application can be redirected to another endpoint
+         of the same underlying channel technology.
+
+         *Bug fixes*
+         In the process of writing this new feature, two bugs were fixed in the PJSIP
+         stack:
+         (1) The existing .transfer channel callback had the limitation that it could
+             only transfer channels to a SIP URI, i.e., you had to pass
+             'PJSIP/sip:foo@my_provider.com' to the dialplan application. While this is
+             still supported, it is somewhat unintuitive - particularly in a world full
+             of endpoints. As such, we now also support specifying the PJSIP endpoint to
+             transfer to.
+         (2) res_pjsip_multihomed was, unfortunately, trying to 'help' a 302 redirect by
+             updating its Contact header. Alas, that resulted in the forwarding
+             destination set by the dialplan application/ARI resource/whatever being
+             rewritten with very incorrect information. Hence, we now don't bother
+             updating an outgoing response if it is a 302. Since this took a looong time
+             to find, some additional debug statements have been added to those modules
+             that update the Contact headers.
+
+         Review: https://reviewboard.asterisk.org/r/4316/
+
+         ASTERISK-24015 #close
+         Reported by: Private Name
+
+         ASTERISK-24703 #close
+         Reported by: Matt Jordan
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431717 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-11 12:02 +0000 [e8ec15a9ef]  Kevin Harwell <kharwell@digium.com>
+
+       * res_pjsip: dtls_handler causes Asterisk to crash
+
+         There have been a couple of times where a crash occurred in the dtls_handler
+         section of the code for res_pjsip. Unfortunately, in working this issue the
+         problem was unable to be reproduced. After looking at the backtraces and
+         through the code the current best guess as to why this happened might be due
+         to a reentrance problem and the strtok function. So, the current fix is to
+         convert the strtok function into the reentrant version of the function,
+         strtok_r.
+
+         ASTERISK-24741 #close
+         Reported by: Zane Conkle
+         Review: https://reviewboard.asterisk.org/r/4409/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431698 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-11 11:36 +0000 [e64d151fae]  Kevin Harwell <kharwell@digium.com>
+
+       * ari_websockets: removed extra check on websocket session read
+
+         When merging the websocket timeout issue (ASTERISK-24701) an extra, almost
+         duplicate, check was left in the code that should not have been. This removes
+         it.
+
+         ASTERISK-24701 #close
+         Reported by: Matt Jordan
+         Review: https://reviewboard.asterisk.org/r/4412/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-11 11:28 +0000 [feddab7944]  Richard Mudgett <rmudgett@digium.com>
+
+       * HTTP: Stop accepting requests on final system shutdown.
+
+         There are three CLI commands to stop and restart Asterisk each.
+
+         1) core stop/restart now - Hangup all calls and stop or restart Asterisk.
+         New channels are prevented while the shutdown request is pending.
+
+         2) core stop/restart gracefully - Stop or restart Asterisk when there are
+         no calls remaining in the system.  New channels are prevented while the
+         shutdown request is pending.
+
+         3) core stop/restart when convenient - Stop or restart Asterisk when there
+         are no calls in the system.  New calls are not prevented while the
+         shutdown request is pending.
+
+         ARI has made stopping/restarting Asterisk more problematic.  While a
+         shutdown request is pending it is desirable to continue to process ARI
+         HTTP requests for current calls.  To handle the current calls while a
+         shutdown request is pending, a new committed to shutdown phase is needed
+         so ARI applications can deal with the calls until the system is fully
+         committed to shutdown.
+
+         * Added a new shutdown committed phase so ARI applications can deal with
+         calls until the final committed to shutdown phase is reached.
+
+         * Made refuse new HTTP requests when the system has reached the final
+         system shutdown phase.  Starting anything while the system is actively
+         releasing resources and unloading modules is not a good thing.
+
+         * Split the bridging framework shutdown to not cleanup the global bridging
+         containers when shutting down in a hurry.  This is similar to how other
+         modules prevent crashes on rapid system shutdown.
+
+         * Moved ast_begin_shutdown(), ast_cancel_shutdown(), and
+         ast_shutting_down().  You should not have to include channel.h just to
+         access these system functions.
+
+         ASTERISK-24752 #close
+         Reported by: Matthew Jordan
+
+         Review: https://reviewboard.asterisk.org/r/4399/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431692 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-11 11:12 +0000 [29f3ff0b61]  Richard Miller (License 5685)
+
+       * channels/chan_sip: Fix RealTime error during SIP unregistration with MariaDB
+
+         When a SIP device that has its registration stored in RealTime unregisters,
+         the entry for that device is updated with blank values, i.e., "", indicating
+         that it is no longer registered. Unfortunately, one of those values that is
+         'blanked' is the device's port. If the column type for the port is not a
+         string datatype (the recommended type is integer), an ODBC or database error
+         will be thrown. MariaDB does not coerce empty strings to a valid integer value.
+
+         This patch updates the query run from chan_sip such that it replaces the port
+         value with a value of '0', as opposed to a blank value. This is the value that
+         other database backends coerce the empty string ("") to already, and the
+         handling of reading a RealTime registration value from a backend already
+         anticipates receiving a port of '0' from the backends.
+
+         ASTERISK-24772 #close
+         Reported by: Richard Miller
+         patches:
+           chan_sip.diff uploaded by Richard Miller (License 5685)
+         ........
+
+         Merged revisions 431673 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431674 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-11 10:51 +0000 [72e5ba2ce8]  Kevin Harwell <kharwell@digium.com>
+
+       * res_http_websocket: websocket write timeout fails to fully disconnect
+
+         When writing to a websocket if a timeout occurred the underlying socket did not
+         get closed/disconnected. This patch makes sure the websocket gets disconnected
+         on a write timeout. Also a notice is logged stating that the websocket was
+         disconnected.
+
+         ASTERISK-24701 #close
+         Reported by: Matt Jordan
+         Review: https://reviewboard.asterisk.org/r/4412/
+         ........
+
+         Merged revisions 431669 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431670 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-11 09:51 +0000 [2531f75057]  Corey Farrell <git@cfware.com>
+
+       * Enable REF_DEBUG for ast_module_ref / ast_module_unref.
+
+         Add ast_module_shutdown_ref for use by modules that can
+         only be unloaded during graceful shutdown.
+
+         When REF_DEBUG is enabled:
+         * Add an empty ao2 object to struct ast_module.
+         * Allocate ao2 object when the module is loaded.
+         * Perform an ao2_ref in each place where mod->usecount is manipulated.
+         * ao2_cleanup on module unload.
+
+         ASTERISK-24479 #close
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4141/
+         ........
+
+         Merged revisions 431662 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431663 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-10 17:16 +0000 [4d8ab20a8a]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_config_wizard: Add ability to auto-create hints.
+
+         Looking at the Super Awesome Company sample reminded me that creating hints is 
+         just plain gruntwork.  So you can now have the pjsip conifg wizard auto-create 
+         them for you.
+
+         Specifying 'hint_exten' in the wizard will create 
+         'exten => <hint_exten>,hint/PJSIP/<wizard_id>'
+         in whatever is specified for 'hint_context'.
+
+         Specifying 'hint_application' in the wizard will create
+         'exten => <hint_exten>,1,<hint_application>'
+         in whatever is specified for 'hint_context'.
+
+         The default for 'hint_context' is the endpoint's context.
+         There's no default for 'hint_application'.  If not specified, no app is added.
+         There's no default for 'hint_exten'.  If not specified, neither the hint itself 
+         nor the application will be created.
+
+         Some may think this is the slippery slope to users.conf but hints are a basic 
+         necessity for phones unlike voicemail, manager, etc that users.conf creates.
+
+         Tested-by: George Joseph
+         Review: https://reviewboard.asterisk.org/r/4383/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431643 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-08 21:10 +0000 [32e42e50cc]  Ben Merrills (License 6678)
+
+       * res/ari/resource_channels: Add missing 'no_answer' reason to DELETE /channels
+
+         One of the canonical reasons for hanging up a channel is because the far end
+         failed to answer - or because someone else answered, and we want to get rid of
+         this channel. This patch adds the missing value to the 'reason' query parameter
+         for the DELETE /channels operation.
+
+         Review: https://reviewboard.asterisk.org/r/4400
+
+         ASTERISK-24745 #close
+         Reported by: Ben Merrills
+         patches:
+           add_no_answer_ari_hangup_cause.diff uploaded by Ben Merrills (License 6678)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431622 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-08 21:01 +0000 [03445a147e]  Jeremiah Gowdy (License 6358)
+
+       * Blocked revisions 431620
+
+         While it may not be obvious, r431620 should not occur in Asterisk 13.
+         * We no longer set the SIP_DEFER_BYE_ON_TRANSFER flag during the handling of
+           the INVITE with Replaces. This is now set and handled explicitly in the
+           attended transfer and blind transfer code.
+         * An INVITE with Replaces replacing a channel in a Bridge will now safely eject
+           the channel being replaced. No masquerade occurs.
+         * An INVITE with Replaces replacing a channel not in a Bridge will masquerade,
+           but will do so in such a fashion that we can ensure that we are hanging up
+           the channel when completed.
+
+         Since the code the patch fixes no longer exists due to core framework changes,
+         we should send a BYE naturally without the need for the flag.
+
+         ........
+         channels/chan_sip: Ensure that a BYE is sent during INVITE w/Replaces transfer
+
+         Consider a scenario where Alice and Bob have an established dialog with each
+         other external to Asterisk. Bob decides to perform an attended transfer of
+         Alice to Asterisk. In this case, Alice will send an INVITE with Replaces
+         to Asterisk, where the Replaces specifies Bob's dialog with Asterisk. In this
+         particular scenario, Asterisk will complete the transfer, but - since Bob's
+         channel has had Alice masqueraded into it and is now a Zombie - a BYE
+         request will not be sent.
+
+         This patch fixes that issue by adding a new flag to chan_sip that tracks
+         whether or not we have an INVITE with Replaces. If we do, the flag is used
+         on the sip_pvt to ensure that a BYE request is sent, even if the channel has
+         been masqueraded away.
+
+         Review: https://reviewboard.asterisk.org/r/4362/
+
+         ASTERISK-22436 #close
+         Reported by: Eelco Brolman
+         Tested by: Jeremiah Gowdy, Kristian Høgh
+         patches:
+           asterisk-11-hangup-replaced-3.diff uploaded by Jeremiah Gowdy (License 6358)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431621 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-08 20:34 +0000 [8582411344]  ibercom <ibercom123@gmail.com> (License 6599)
+
+       * res/res_odbc: Remove unneeded queries when determining if a table exists
+
+         This patch modifies the ast_odbc_find_table function such that it only performs
+         a lookup of the requested table if the table is not already known. Prior to
+         this patch, a queries would be executed against the database even if the table
+         was already known and cached.
+
+         Review: https://reviewboard.asterisk.org/r/4405/
+
+         ASTERISK-24742 #close
+         Reported by: ibercom
+         patches:
+           patch.diff uploaded by ibercom (License 6599)
+         ........
+
+         Merged revisions 431617 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431618 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-08 11:24 +0000 [675b2b8103]  Matt Jordan <mjordan@digium.com>
+
+       * res/res_pjsip_sdp_rtp: Fix leak of local ICE candidates when applying to SDP
+
+         When an SDP is created for an outgoing request/response, the ICE candidates
+         obtained from the RTP instance are currently leaked. This causes the ao2
+         container that holds the candidates to never properly be reclaimed when the
+         RTP instance is destroyed.
+
+         This patch properly decrements the ICE candidates' container if it is
+         successfully obtained.
+
+         ASTERISK-24769 #close
+         Reported by: Matt Jordan
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431600 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-06 15:26 +0000 [323c0927ac]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * various: cleanup issues found during leak hunt
+
+         In this collection of small patches to prevent
+         Valgrind errors are: fixes for reference leaks
+         in config hooks, evaluating a parameter beyond
+         bounds, and accessing a structure after a lock
+         where it could have been already free'd.
+
+         Review: https://reviewboard.asterisk.org/r/4407/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431583 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-03 19:27 +0000 [18c8c1bae3]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_keepalive: Don't crash if PJSIP module is not loaded.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431555 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-03 18:58 +0000 [2f2eb1931a]  Joshua Colp <jcolp@digium.com>
+
+       * sorcery: Don't try to load object types which haven't been defined.
+
+         The act of defining wizards for an object type in sorcery.conf will
+         create a minimal object type. This can cause a problem when a module
+         has multiple sorcery instances (which all get the wizards from sorcery.conf
+         applied) but the sorcery instances do not all contain full information
+         about the object types. Upon loading errors will occur stating that
+         the objects can not be created. This is confusing and is actually
+         perfectly fine.
+
+         This change makes it so that only object types which have been fully
+         defined will be loaded.
+
+         ASTERISK-24748 #close
+         Reported by: Joshua Colp
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431538 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-31 10:27 +0000 [f67402a52a]  Joshua Colp <jcolp@digium.com>
+
+       * res_format_attr_h264: Fix crash when determining joint capability.
+
+         The res_format_attr_h264 module currently incorrectly attempts to
+         copy SPS and PPS information from the wrong attribute. This change
+         fixes that.
+
+         ASTERISK-24616 #close
+         Reported by: Yura Kocyuba
+
+         Review: https://reviewboard.asterisk.org/r/4392/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431521 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-30 11:44 +0000 [05e2832b35]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_agent_pool: Fix initial module load agent device state reporting.
+
+         When the app_agent_pool module initially loads there is a race condition
+         between the thread loading agents.conf and the device state internal
+         processing thread.  If the device state internal processing thread handles
+         the agent creation state updates before the thread that loaded agents.conf
+         registers the device state provider callback then the cached agent state
+         is "Invalid".  When a consumer module like app_queue asks for the agent state
+         it gets the cached "Invalid" state instead of the real state from the provider.
+
+         * Moved loading the agents.conf configuration to the last thing setup by
+         app_agent_pool in load_module().  Now the device state provider callback
+         is registered before the config is loaded so the agent creation state
+         updates are guaranteed to get the initial device state.
+
+         * Removed some now redundant config cleanup on error in load_config().
+
+         * Added lock protection when accessing the device state in
+         agent_pvt_devstate_get() and eliminated the RAII_VAR() usage.
+
+         ASTERISK-24737 #close
+         Reported by: Steve Pitts
+
+         Review: https://reviewboard.asterisk.org/r/4390/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431492 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-30 11:38 +0000 [6583b4de98]  Kevin Harwell <kharwell@digium.com>
+
+       * res_pjsip_outbound_publish: eventually crashes when no response is ever received
+
+         When Asterisk attempts to send SIP outbound publish information and no response
+         is ever received (no 200 okay, 412, 423) the system eventually crashes. A
+         response is never received because the system Asterisk is attempting to send
+         publish information to is not available. The underlying pjsip framework attempts
+         to send publish information. After several attempts it calls back into the
+         Asterisk outbound publish code. At this point if the "client->queue" is empty
+         Asterisk attempts to schedule a refresh which utilizes "rdata" and since no
+         response was received the given "rdata" struture is NULL. Attempting to
+         dereference a NULL object of course results in a crash.
+
+         The fix here removes the dependency on rdata for schedule_publish_refresh.
+         Instead param->expiration is now passed to it as this is set to -1 if no
+         response is received. Also added a notification when no response is received.
+
+         ASTERISK-24635 #close
+         Reported by: Marco Paland
+         Review: https://reviewboard.asterisk.org/r/4384/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431490 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-30 10:52 +0000 [112d23c73e]  Ashley Sanders <asanders@digium.com>
+
+       * HTTP: For httpd server, need option to define server name for security purposes
+
+         Added a new config property [servername] to the http.conf file; updated the http server to use the new property when sending responses, for showing http status through the CLI and when reporting status through the 'httpstatus' webpage.
+
+         ASTERISK-24316 #close
+         Reported By: Andrew Nagy
+         Review: https://reviewboard.asterisk.org/r/4374/
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431471 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-30 10:47 +0000 [43dd42d8ae]  Mark Michelson <mmichelson@digium.com>
+
+       * Fix some memory leaks.
+
+         These memory leaks were found and fixed by John Hardin. I'm just
+         committing them for him.
+
+         ASTERISK-24736 #close
+         Reported by Mark Michelson
+
+         Review: https://reviewboard.asterisk.org/r/4389
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431468 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-29 17:02 +0000 [f7d23dfcc6]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * stasis transfer: fix stasis bridge push race part two
+
+         When swapping a Local channel in place of one already
+         in a bridge (to complete a bridge attended transfer),
+         the channel that was swapped out can actually be hung
+         up before the stasis bridge push callback executes on
+         the independant transfer thread.  This results in the
+         stasis app loop dropping out and removing the control
+         that has the the app name which the local replacement
+         channel needs so it can re-enter stasis.
+
+         To avoid this race condition a new push_peek callback
+         has been added, and called from the ast_bridge_impart
+         thread before it launches the independant thread that
+         will complete the transfer.  Now the stasis push_peek
+         callback can copy the stasis app name before the swap
+         channel can hang up.
+
+         ASTERISK-24649
+         Review: https://reviewboard.asterisk.org/r/4382/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431450 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-29 14:58 +0000 [e8896ac008]  Mark Michelson <mmichelson@digium.com>
+
+       * Use SIPS URIs in Contact headers when appropriate.
+
+         RFC 3261 sections 8.1.1.8 and 12.1.1 dictate specific
+         scenarios when we are required to use SIPS URIs in Contact
+         headers. Asterisk's non-compliance with this could actually
+         cause calls to get dropped when communicating with clients
+         that are strict about checking the Contact header.
+
+         Both of the SIP stacks in Asterisk suffered from this issue.
+         This changeset corrects the behavior in res_pjsip/chan_pjsip.c
+
+         Review: https://reviewboard.asterisk.org/r/4345
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431426 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-29 14:44 +0000 [22fc3359da]  Mark Michelson <mmichelson@digium.com>
+
+       * Use SIPS URIs in Contact headers when appropriate.
+
+         RFC 3261 sections 8.1.1.8 and 12.1.1 dictate specific
+         scenarios when we are required to use SIPS URIs in Contact
+         headers. Asterisk's non-compliance with this could actually
+         cause calls to get dropped when communicating with clients
+         that are strict about checking the Contact header.
+
+         Both of the SIP stacks in Asterisk suffered from this issue.
+         This changeset corrects the behavior in chan_sip.
+
+         ASTERISK-24646 #close
+         Reported by Stephan Eisvogel
+
+         Review: https://reviewboard.asterisk.org/r/4346
+         ........
+
+         Merged revisions 431423 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-29 13:52 +0000 [b8ea23b0d1]  Mark Michelson <mmichelson@digium.com>
+
+       * Allow disabling of 100rel support on PJSIP endpoints.
+
+         Due to an inversion error, setting 100rel=no would not actually
+         change the current value of the setting (which defaulted to "yes").
+         With this fix, the inversion is corrected.
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431420 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-29 10:46 +0000 [6e5eb9af88]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_exten_state: Reduce log clutter... change a WARNING to a VERBOSE/2
+
+         Reduce log clutter by changing the "Watcher for hint %s (removed|deactivated)"
+         message from WARNING to VERBOSE/2.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4387/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431403 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-29 06:09 +0000 [e0461290d0]  Joshua Colp <jcolp@digium.com>
+
+       * res_rtp_asterisk: Fix DTLS when used with OpenSSL 1.0.1k
+
+         A recent security fix for OpenSSL broke DTLS negotiation for many
+         applications. This was caused by read ahead not being enabled when it
+         should be. While a commit has gone into OpenSSL to force read ahead
+         on for DTLS it may take some time for a release to be made and the
+         change to be present in distributions (if at all). As enabling read
+         ahead is a simple one line change this commit does that and fixes
+         the issue.
+
+         ASTERISK-24711 #close
+         Reported by: Jared Biel
+         ........
+
+         Merged revisions 431384 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431385 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-28 11:37 +0000 [8c068fc096]  Mark Michelson <mmichelson@digium.com>
+
+       * Fix file descriptor leak in RTP code.
+
+         SIP requests that offered codecs incompatible with configured values
+         could result in the allocation of RTP and RTCP ports that would not get
+         reclaimed later.
+
+         ASTERISK-24666 #close
+         Reported by Y Ateya
+
+         Review: https://reviewboard.asterisk.org/r/4323
+
+         AST-2015-001
+         ........
+
+         Merged revisions 431300 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431303 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-28 11:34 +0000 [25a67d561c]  Mark Michelson <mmichelson@digium.com>
+
+       * Multiple revisions 431297-431298
+
+         ........
+           r431297 | mmichelson | 2015-01-28 11:05:26 -0600 (Wed, 28 Jan 2015) | 17 lines
+           
+           Mitigate possible HTTP injection attacks using CURL() function in Asterisk.
+           
+           CVE-2014-8150 disclosed a vulnerability in libcURL where HTTP request injection
+           can be performed given properly-crafted URLs.
+           
+           Since Asterisk makes use of libcURL, and it is possible that users of Asterisk may
+           get cURL URLs from user input or remote sources, we have made a patch to Asterisk
+           to prevent such HTTP injection attacks from originating from Asterisk.
+           
+           ASTERISK-24676 #close
+           Reported by Matt Jordan
+           
+           Review: https://reviewboard.asterisk.org/r/4364
+           
+           AST-2015-002
+         ........
+           r431298 | mmichelson | 2015-01-28 11:12:49 -0600 (Wed, 28 Jan 2015) | 3 lines
+           
+           Fix compilation error from previous patch.
+         ........
+
+         Merged revisions 431297-431298 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ........
+
+         Merged revisions 431299 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431301 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-28 06:18 +0000 [c3add776af]  Sean Bright <sean@malleable.com>
+
+       * media formats: update res_format_attr_opus & silk
+
+         In r419044, we changed how formats were handled, but the return value
+         of the format_parse_sdp_fmtp functions in res_format_attr_opus and
+         res_format_attr_silk were not updated, causing calls to fail.  Ran
+         into this when getting codec_opus working with Asterisk 13.
+
+         Once the return value was corrected, we were crashing in opus_getjoint
+         because of NULL format attributes.  I've fixed this as well in this
+         patch.
+
+         Review: https://reviewboard.asterisk.org/r/4371/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431267 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-27 22:09 +0000 [88fbe4e917]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_outbound_registration: Fix reload race condition.
+
+         Performing a CLI "module reload" command when there are new pjsip.conf
+         registration objects defined frequently failed to load them correctly.
+
+         What happens is a race condition between res_pjsip pushing its reload into
+         an asynchronous task processor task and the thread that does the rest of
+         the reloads when it gets to reloading the res_pjsip_outbound_registration
+         module.  A similar race condition happens between a reload and the CLI/AMI
+         show registrations commands.  The reload updates the current_states
+         container and the CLI/AMI commands call get_registrations() which builds a
+         new current_states container.
+
+         * Made res_pjsip.c reload_module() use ast_sip_push_task_synchronous()
+         instead of ast_sip_push_task() to eliminate two threads processing config
+         reloads at the same time.
+
+         * Made get_registrations() not replace the global current_states container
+         so the CLI/AMI show registrations command cannot interfere with reloading.
+         You could never add/remove objects in the container without the
+         possibility of the container being replaced out from under you by
+         get_registrations().
+
+         * Added a registration loaded sorcery instance observer to purge any dead
+         registration objects since get_registrations() cannot do this job anymore.
+         The struct ast_sorcery_instance_observer callbacks must be used because
+         the callback happens inline with the load process.  The struct
+         ast_sorcery_observer callbacks are pushed to a different thread.
+
+         * Added some global current_states NULL pointer checks in case the
+         container disappears because of unload_module().
+
+         * Made sorcery's struct ast_sorcery_instance_observer.object_type_loaded
+         callbacks guaranteed to be called before any struct
+         ast_sorcery_observer.loaded callbacks will be called.
+
+         * Moved the check for non-reloadable objects to before the sorcery
+         instance loading callbacks happen to short circuit unnecessary work.
+         Previously with non-reloadable objects, the sorcery instance
+         loading/loaded callbacks would always happen, the individual wizard
+         loading/loaded would be prevented, and the non-reloadable type logging
+         message would be logged for each associated wizard.
+
+         ASTERISK-24729 #close
+         Review: https://reviewboard.asterisk.org/r/4381/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431243 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-27 16:56 +0000 [61822e78ae]  Kevin Harwell <kharwell@digium.com>
+
+       * tcptls: Bad file descriptor error when reloading chan_sip
+
+         While running through some scenarios using chan_sip and tcp a problem would
+         occur that resulted in a flood of bad file descriptor messages on the cli:
+
+         tcptls.c:712 ast_tcptls_server_root: Accept failed: Bad file descriptor
+
+         The message is received because the underlying socket has been closed, so is
+         valid. This is probably happening because unloading of chan_sip is not atomic.
+         That however is outside the scope of this patch. This patch simply stops the
+         logging of multiple occurrences of that message.
+
+         ASTERISK-24728 #close
+         Reported by: Thomas Thompson
+         Review: https://reviewboard.asterisk.org/r/4380/
+         ........
+
+         Merged revisions 431218 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431219 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-27 13:21 +0000 [e2b493b8f0]  Kevin Harwell <kharwell@digium.com>
+
+       * chan_sip: stale nonce causes failure
+
+         When refreshing (with a small expiration) a registration that was sent to
+         chan_sip the nonce would be considered stale and reject the registration.
+         What was happening was that the initial registration's "dialog" still existed
+         in the dialogs container and upon refresh the dialog match algorithm would
+         choose that as the "dialog" instead of the newly created one. This occurred
+         because the algorithm did not check to see if the from tag matched if
+         authentication info was available after the 401. So, it ended up assuming
+         the original "dialog" was a match and stopped the search. The old "dialog"
+         of course had an old nonce, thus the stale nonce message.
+
+         This fix attempts to leave the original functionality alone except in the case
+         of a REGISTER. If a REGISTER is received if searches for an existing "dialog"
+         matching only on the callid. If the expires value is low enough it will reuse
+         dialog that is there, otherwise it will create a new one.
+
+         ASTERISK-24715 #close
+         Reported by: John Bigelow
+         Review: https://reviewboard.asterisk.org/r/4367/
+         ........
+
+         Merged revisions 431187 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431194 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-27 13:08 +0000 [9e3d316dd1]  Corey Farrell <git@cfware.com> (license 5909)
+
+       * res_pjsip: make it unloadable (take 2)
+
+         Due to the original patch causing memory corruptions it was removed until the
+         problem could be resolved. This patch is the original patch plus some added
+         locking around stasis router subcription that was needed to avoid the memory
+         corruption.
+
+         Description of the original problem and patch (still applicable):
+
+         The res_pjsip module was previously unloadable. With this patch it can now
+         be unloaded.
+
+         This patch is based off the original patch on the issue (listed below) by Corey
+         Farrell with a few modifications. Namely, removed a few changes not required to
+         make the module unloadable and also fixed a bug that would cause asterisk to
+         crash on unloading.
+
+         This patch is the first step (should hopefully be followed by another/others at
+         some point) in allowing res_pjsip and the modules that depend on it to be
+         unloadable. At this time, res_pjsip and some of the modules that depend on
+         res_pjsip cannot be unloaded without causing problems of some sort.
+
+         The goal of this patch is to get res_pjsip and only res_pjsip to be able to
+         unload successfully and/or shutdown without incident (crashes, leaks, etc...).
+         Other dependent modules may still cause problems on unload.
+
+         Basically made sure, with the patch applied, that res_pjsip (with no other
+         dependent modules loaded) could be succesfully unloaded and Asterisk could
+         shutdown without any leaks or crashes that pertained directly to res_pjsip.
+
+         ASTERISK-24485 #close
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4363/
+         patches:
+           pjsip_unload-broken-r1.patch submitted by Corey Farrell (license 5909)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431179 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-27 11:36 +0000 [eda125f98d]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_confbridge: Repeatedly starting and stopping recording ref leaks the recording channel.
+
+         Starting and stopping conference recording more than once causes the
+         recording channels to be leaked.  For v13 the channels also show up in the
+         CLI "core show channels" output.
+
+         * Reworked and simplified the recording channel code to use
+         ast_bridge_impart() instead of managing the recording thread in the
+         ConfBridge code.  The recording channel's ref handling easily falls into
+         place and other off nominal code paths get handled better as a result.
+
+         ASTERISK-24719 #close
+         Reported by: John Bigelow
+
+         Review: https://reviewboard.asterisk.org/r/4368/
+         Review: https://reviewboard.asterisk.org/r/4369/
+         ........
+
+         Merged revisions 431135 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431160 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-27 11:32 +0000 [b64f4bb6ee]  Joshua Colp <jcolp@digium.com>
+
+       * bridge / res_pjsip_sdp_rtp: Fix issues with media not being reinvited during direct media.
+
+         This change fixes two issues:
+
+         1. During a swap operation bridging added the new channel before having the swap channel
+         leave. This was not handled in bridge_native_rtp and could result in a channel not getting
+         reinvited back to Asterisk. After this change the swap channel will leave first and the
+         new channel will then join.
+
+         2. If a re-invite was received after a session had been established any upstream elements
+         (such as bridge_native_rtp) were not notified that they may want to re-evaluate things.
+         After this change an UPDATE_RTP_PEER control frame is queued when this situation occurs
+         and upstream can react.
+
+         AST-1524 #close
+
+         Review: https://reviewboard.asterisk.org/r/4378/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431157 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-27 11:22 +0000 [a620b287bd]  Jonathan Rose <jrose@digium.com>
+
+       * Manager: Fix Manager Action ModuleLoad to give correct response when reloading
+
+         Prior to this patch, ModuleLoad would respond with an error indicating that
+         the requested module wasn't found in spite of finding and reloading the
+         module.
+
+         Review: https://reviewboard.asterisk.org/r/4373/
+         ASTERISK-24721 #close
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431153 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-27 11:20 +0000 [7f9b28b0c6]  Matt Jordan <mjordan@digium.com>
+
+       * ARI: Improve wiki documentation
+
+         This patch improves the documentation of ARI on the wiki. Specifically, it
+         addresses the following:
+         * Allowed values and allowed ranges weren't documented. This was particularly
+           frustrating, as Asterisk would reject query parameters with disallowed values
+           - but we didn't tell anyone what the allowed values were.
+         * The /play/id operation on /channels and /bridges failed to document all of
+           the added media resource types.
+         * Documentation for creating a channel into a Stasis application failed to
+           note when it occurred, and that creating a channel into Stasis conflicts with
+           creating a channel into the dialplan.
+         * Some other minor tweaks in the mustache templates, including italicizing the
+           parameter type, putting the default value on its own sub-bullet, and some
+           other nicities.
+
+         Review: https://reviewboard.asterisk.org/r/4351
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431145 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-27 11:10 +0000 [1a17693789]  Matt Jordan <mjordan@digium.com>
+
+       * app_confbridge: Restore user's menu name to CLI output of 'confbridge list'
+
+         When issuing a 'confbridge list XXXX' CLI command, the resulting output no
+         longer displays the menu associated with a ConfBridge participant.
+
+         The issue was caused by ASTERISK-22760. When that patch was done, it removed
+         the copying of the menu name associated with the user from the actual user
+         profile.
+
+         This patch fixes the issue by copying the menu name over to the user profile
+         when the menu hooks are applied to the user. Since that function now does a
+         little bit more than just apply the hooks, the name of the function has been
+         changed to cover the copying of the menu name over as well.
+
+         In addition, there is a disparity between the menu name length as it is stored
+         on the conf_menu structure and the confbridge_user structure; this patch makes
+         the lengths match so that a strcpy can be used.
+
+         Review: https://reviewboard.asterisk.org/r/4372/
+
+         ASTERISK-24723 #close
+         Reported by: Steve Pitts
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431134 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-27 05:47 +0000 [ceedd40370]  Joshua Colp <jcolp@digium.com>
+
+       * res_parking: Fix crash due to race condition when unloading.
+
+         There is currently a race condition when unloading the res_parking
+         module. Depending on the will of the universe the subscription
+         invocation may occur AFTER the module is unloaded. This is because
+         the module does NOT use stasis_unsubscribe_and_join when terminating
+         the subscription. It merely uses stasis_unsubscribe.
+
+         This change makes it use stasis_unsubscribe_and_join which is documented
+         for usage in this exact scenario.
+
+         AST-1520 #close
+
+         Review: https://reviewboard.asterisk.org/r/4375/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-26 08:49 +0000 [702d79de2a]  David M. Lee <dlee@digium.com>
+
+       * Various fixes for OS X
+
+         This patch addresses compilation errors on OS X. It's been a while, so
+         there's quite a few things.
+
+          * Fixed __attribute__ decls in route.h to be portable.
+          * Fixed htonll and ntohll to work when they are defined as macros.
+          * Replaced sem_t usage with our ast_sem wrapper.
+          * Added ast_sem_timedwait to our ast_sem wrapper.
+          * Fixed some GCC 4.9 warnings using sig*set() functions.
+          * Fixed some format strings for portability.
+          * Fixed compilation issues with res_timing_kqueue (although tests still fail
+            on OS X).
+          * Fixed menuconfig /sbin/launchd detection, which disables res_timing_kqueue
+            on OS X).
+
+         ASTERISK-24539 #close
+         Reported by: George Joseph
+
+         ASTERISK-24544 #close
+         Reported by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4327/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431092 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-25 07:42 +0000 [1fc823c770]  Matt Jordan <mjordan@digium.com>
+
+       * dynamic realtime: Updates fail to work due to update fields being passed over
+
+         When a crash was fixed due to usage of the REALTIME function in r423003, a
+         regression was introduced into ast_update2_realtime where the update fields
+         passed to the function would be skipped and the lookup field processed twice.
+
+         The use of this function is a bit interesting: A variable argument list is
+         used with two sentinel values - the first marks the end of the lookup
+         fields/values; the second marks the end of the update fields/values.
+         Unfortunately, ast_update2_realtime parses over the lookup fields twice, as
+         opposed to parsing over the update fields. This causes the lookups to succeed,
+         but the updates itself to have no effect.
+
+         Note that the most common instance of this problem occurred in app_voicemail
+         during the updating of a mailbox password.
+
+         Thanks to the issue reporter, Paddy Grice, for pointing out the problem.
+
+         Review: https://reviewboard.asterisk.org/r/4356/
+
+         ASTERISK-24231
+
+         ASTERISK-24626 #close
+         Reported by: Paddy Grice
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431072 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-23 14:13 +0000 [e302116e40]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_confbridge: Make CBRec channel names more unique.
+
+         Channel names should be different from other channels in the system while
+         the channel exists.
+
+         * Use a sequence number for CBRec channels instead of a random number
+         because the same random number could be picked again for the next CBRec
+         channel.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431052 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-23 13:44 +0000 [f8b3fb6e2f]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_confbridge: Whitespace
+
+         Because there is sometimes no sence to any whitespace.
+         ........
+
+         Merged revisions 431049 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431050 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-23 11:08 +0000 [197265438e]  David M. Lee <dlee@digium.com>
+
+       * Add depend on pjproject to res_pjsip_config_wizard.c
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@431030 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-23 09:12 +0000 [630eea087d]  Kevin Harwell <kharwell@digium.com>
+
+       * Investigate and fix memory leaks in Asterisk
+
+         Fixed memory leaks that were found in Asterisk.
+
+         ASTERISK-24693 #close
+         Reported by:  Kevin Harwell
+         Review: https://reviewboard.asterisk.org/r/4347/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430999 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-23 09:03 +0000 [e23f07beb8]  Walter Doekes <walter+asterisk@wjd.nu>
+
+       * Fix typo's (retrieve, specified, address).
+         ........
+
+         Merged revisions 430996 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430998 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-23 08:38 +0000 [9210648bbe]  HZMI8gkCvPpom0tM (License 6658)
+
+       * chan_sip: Case insensitive comparison of "defaultuser" parameter.
+
+         All the other configuration options are case insensitive, so this one
+         should be too.
+
+         ASTERISK-24355 #close
+         Reported by: HZMI8gkCvPpom0tM
+         patches:
+           ast.patch uploaded by HZMI8gkCvPpom0tM (License 6658)
+         ........
+
+         Merged revisions 430993 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430994 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-22 13:24 +0000 [355eb9d22f]  Richard Mudgett <rmudgett@digium.com>
+
+       * Bridge core: Pass a ref with the swap channel when joining a bridge.
+
+         When code imparts a channel into a bridge to swap with another channel, a
+         ref needs to be held on the swap channel to ensure that it cannot
+         dissapear before finding it in the bridge.
+
+         * The ast_bridge_join() swap channel parameter now always steals a ref for
+         the swap channel.  This is the only change to the bridge framework's
+         public API semantics.
+
+         * bridge_channel_internal_join() now requires the bridge_channel->swap
+         channel to pass in a ref.
+
+         ASTERISK-24649
+         Reported by: John Bigelow
+
+         Review: https://reviewboard.asterisk.org/r/4354/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430975 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-22 13:13 +0000 [c73b4b2a46]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_outbound_registration.c: Minor code cleanup.
+
+         * Add an allocation failure check and assert in
+         sip_outbound_registration_response_cb().
+
+         * Made sip_outbound_registration_state_destroy() handle partially created
+         state objects from sip_outbound_registration_state_alloc().
+
+         Review: https://reviewboard.asterisk.org/r/4366/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430957 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-22 12:09 +0000 [bdfdb01bcf]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * stasis transfer: fix a race condition on stasis bridge push
+
+         After a bridge transfer completes where a local replacement
+         channel is used, a stasis transfer message with the details
+         of the transfer is sent.  This is processed by stasis which
+         then sets the stasis app name and replaced channel snapshot
+         on the replacement channel.
+
+         However, since a separate thread was already started to run
+         stasis on the new replacement channel, a race was on to see
+         if the message processing would be completed before the app
+         name was needed, otherwise the channel would be hung up.
+
+         This change moves the calls used to set the stasis app name
+         and the replace snapshot to the bridge_stasis_push function
+         callback from the bridge transfer logic, allowing the steps
+         to be completed earlier and more deterministically, and the
+         race elimianted.
+
+         NOTE: the swap channel parameter to bridge_stasis_push (and
+         thus all bridge push callbacks) must always be present when
+         performing a swap with another channel.
+
+         ASTERISK-24649 #close
+         Reported by: John Bigelow
+         Review: https://reviewboard.asterisk.org/r/4341/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430939 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-22 08:23 +0000 [beb20440e0]  Gareth Palmer (License 5169)
+
+       * apps/app_voicemail: Trigger MWI notification with MixMonitor m() option
+
+         The MixMonitor m() option allows a recording to be pushed to a specific
+         voicemail mailbox. If the message is delivered to the mailbox's INBOX, however,
+         no MWI notification is currently raised.
+
+         This patch corrects the issue by properly calling notify_new_state from the
+         msg_create_from_file function. This will cause MWI to be triggered if the
+         message was placed in the mailbox's INBOX.
+
+         ASTERISK-24709 #close
+         Reported by: Gareth Palmer
+         patches:
+           app_voicemail-430919.patch uploaded by Gareth Palmer (License 5169)
+         ........
+
+         Merged revisions 430920 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430921 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-21 15:53 +0000 [5e10007dbd]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_outbound_registration.c: Move unref to a better place.
+
+         Move an unconditional unref of client_state so it doesn't look like it
+         could be used after the last ref has destroyed it.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430902 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-21 07:33 +0000 [74a13629e2]  Matt Jordan <mjordan@digium.com>
+
+       * channels/chan_sip: Fix registration leak during reload
+
+         When the SIP registrations were migrated to using ao2 in what was then trunk,
+         the explicit destruction of the registrations on module reload was removed and
+         not replaced with an ao2 equivalent. Debugging done by Stefan Engström, the
+         issue reporter, on ASTERISK-24673 confirmed that the reference in the
+         registry_list container was being leaked.
+
+         Since the purpose of cleanup_all_regs is to prep a registration for
+         destruction, this function now calls an ao2_callback function callback with the
+         OBJ_MULTIPLE | OBJ_NODATA | OBJ_UNLINK flags used to remove the registrations.
+         This cleans up each registration, and also removes it from the registration
+         container registry_list.
+
+         Review: https://reviewboard.asterisk.org/r/4355/
+
+         ASTERISK-24640 #close
+         Reported by: Max Man
+
+         ASTERISK-24673 #close
+         Reported by: Stefan Engström
+         Tested by: Stefan Engström
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430864 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-21 07:27 +0000 [452f0eeb57]  Matt Jordan <mjordan@digium.com>
+
+       * AMI: Add documentation for the missing Cdr/CEL events.
+
+         This patch adds AMI event documentation for the Cdr and CEL AMI events.
+
+         Note that while these events do share fields with each other and with other
+         channel related events, they do not contain all of the fields in a standard
+         channel snapshot, nor is the description of the fields identical. As such,
+         the patch opts for documentation for each field, for each event.
+
+         Review: https://reviewboard.asterisk.org/r/4350/
+
+         ASTERISK-24671 #close
+         Reported by: Dan Jenkins
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430862 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-21 07:10 +0000 [894d4d781c]  Matt Jordan <mjordan@digium.com>
+
+       * apps/app_dial: Don't publish DialEnd twice on unexpected GoSub/Macro values
+
+         The Dial application has some interesting options with the mid-call Macro (M)
+         and GoSub (U) options. If the MACRO_RESULT/GOSUB_RESULT returns specific
+         values, the Dial application will take some action upon the channels involved
+         in the dial operation (such as hanging up a particular party, etc.) The Dial
+         application ensures that a Stasis message is published in the event that
+         MACRO_RESULT/GOSUB_RESULT returns a value that kills the dial operation, so
+         that there is a corresponding DialEnd event published in AMI/ARI for the
+         DialBegin event that preceeded it.
+
+         A bug exists where that same DialEnd event will be published on Stasis even if
+         the value returned in MACRO_RESULT/GOSUB_RESULT is not one that the Dial
+         application cares about. This causes two DialEnd events to be published - one
+         with the MACRO_RESULT/GOSUB_RESULT and another with "ANSWERED" - which is all
+         sorts of wrong.
+
+         This patch fixes the bug by ensuring that we only publish a DialEnd message to
+         Stasis if the Dial application's mid-call Macro/GoSub returns something that
+         Dial cares about.
+
+         Review: https://reviewboard.asterisk.org/r/4336
+
+         ASTERISK-24682 #close
+         Reported by: Matt Jordan
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430842 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-21 06:56 +0000 [98c3983c89]  Matt Jordan <mjordan@digium.com>
+
+       * main/rtp_engine: Format NTP timestamps as unsigned longs
+
+         When the RTCP reports are created, the NTP timestamps are stored as strings,
+         as JSON does not have an integer type long enough to store the value. However,
+         on 32-bit systems, a signed long may overflow for some portion of the
+         timestamp.
+
+         This patch corrects the overflow by formatting the timestamps as unsigned
+         longs.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430840 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-20 10:51 +0000 [a7ba8a58a8]  Ashley Sanders <asanders@digium.com>
+
+       * ARI: Fixed crash that occurred when updating a bridge when the optional query parameter 'name' was not supplied.
+
+         Prior to this changeset, posting to the: /ari/bridges/{bridgeId} endpoint without specifying a value for the [name] query parameter, would crash Asterisk if the bridge you are attempting to create (or update) had the same ID as an existing bridge. The internal mechanism of the POST operation interpreted a null value for name, thus resulting in an error condition that crashed Asterisk.
+
+         ASTERISK-24560 #close
+         Reported By: Kinsey Moore
+
+         Review: https://reviewboard.asterisk.org/r/4349/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430818 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-20 10:46 +0000 [6af6a216a1]  Richard Mudgett <rmudgett@digium.com>
+
+       * CHANNEL(peer), chan_iax2, res_fax, SNMP agent: Fix deadlock from reaching across a bridge.
+
+         Calling ast_channel_bridge_peer() cannot be done while holding any channel
+         locks.  The reported issue hit the deadlock in chan_iax2, but an audit of
+         the ast_channel_bridge_peer() calls found three more locations where the
+         same deadlock can occur.
+
+         * Made CHANNEL(peer), res_fax, and the SNMP agent not call
+         ast_channel_bridge_peer() with any channel locked.  For CHANNEL(peer) I
+         had to rework the logic to not hold the channel lock.
+
+         * Made chan_iax2 no longer call ast_channel_bridge_peer().  It was done
+         for legacy reasons that no longer apply.
+
+         * Removed the iax.conf forcejitterbuffer option.  It is now always enabled
+         when the jitterbuffer option is enabled.  If you put a jitter buffer on a
+         channel it will be on the channel.
+
+         ASTERISK-24600 #close
+         Reported by: Jeff Collell
+
+         Review: https://reviewboard.asterisk.org/r/4342/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430817 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-19 20:39 +0000 [072db5e1b9]  Ben Klang (License 5876)
+
+       * contrib/scripts/install_prereq: Don't install 32-bit packages on 64-bit hosts
+
+         On Debian based systems, the install_prereq tool uses a search command on
+         Debian that results in selecting both 64-bit and 32-bit packages. Besides the
+         waste of disk space, this can actually cause aptitude use 100% of memory on a
+         VM with 1GB of RAM as it tried to work out all of the 32-bit package
+         dependencies.
+
+         This patch filters out the 32-bit packages on a 64-bit machine, and leaves
+         32-bit machines alone.
+
+         ASTERISK-24048 #close
+         Reported by: Ben Klang
+         Tested by: Ben Klang, Matt Jordan
+         patches:
+           install_prereq_64-bit_compat.patch uploaded by Ben Klang (License 5876)
+         ........
+
+         Merged revisions 430798 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430799 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-19 20:32 +0000 [e659b3e53d]  LEI FU (License 6640)
+
+       * app_voicemail: Temp message left after review/hangup with ODBC/IMAP backend
+
+         When using ODBC or IMAP storage, temporary files created on the file system
+         must be disposed of using the DISPOSE macro. The DELETE macro will map to a
+         deletion function for the backend storage, but does not clean up any local
+         files created as a result of the operation.
+
+         When using voicemail with the operator and review options enabled, pressing
+         0 to enter the menu, followed by 1 to save the message, followed by any
+         other DTMF press to delete the message, will result in the temporary file
+         lingering on the file system.
+
+         This patch properly calls DISPOSE after the DELETE. This causes the local
+         file to be disposed of.
+
+         ASTERISK-24288 #close
+         Reported by: LEI FU
+         patches:
+           voicemail_odbc_review_fix.diff uploaded by LEI FU (License 6640)
+         ........
+
+         Merged revisions 430795 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430796 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-19 12:05 +0000 [ab5af1f3d8]  Mark Michelson <mmichelson@digium.com>
+
+       * Call extension state callbacks at hint creation.
+
+         When a hint gets created, any subsequent device or presence
+         state changes result in extension status events getting sent
+         out to interested parties. However, at the time of hint creation,
+         no such event gets sent out, so watchers of extension state are
+         potentially left in the dark until the first state change after
+         hint creation.
+
+         Patch contributed by John Hardin (License #6512)
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430776 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-19 07:18 +0000 [643b81d98e]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip / res_pjsip_multihomed: Use the correct transport and addressing information on UAS sessions.
+
+         The first thing this patch fixes is UAS dialogs. Previously if a transport was
+         configured on an endpoint and an inbound session was created there was no guarantee
+         that requests sent on the dialog would use the correct transport and address
+         information. This has now been fixed so an explicitly configured transport
+         is taken into account.
+
+         The second thing this patch fixes is res_pjsip_multihomed. The res_pjsip_multihomed
+         module attempts to determine what transport a message should go out on and what
+         addressing information should go into the message itself. In a scenario where
+         multiple transports exist bound to the same IP address but a different port the
+         code would incorrectly alter the transport and change the message to the wrong
+         transport. This change makes the res_pjsip_multihomed module smarter so it will
+         only change the transport and address information in the message when it is
+         possible and makes sense.
+
+         ASTERISK-24615 #close
+         Reported by: David Justl
+
+         Review: https://reviewboard.asterisk.org/r/4331/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430755 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-16 18:31 +0000 [34c220203f]  Kevin Harwell <kharwell@digium.com>
+
+       * REVERTING res_pjsip: make it unloadable
+
+         Due to the original patch causing memory corruptions the patch is
+         being removed until the problem can be resolved.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430734 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-16 16:13 +0000 [e257244bbb]  Mark Michelson <mmichelson@digium.com>
+
+       * Change PJProject version requirement for ca_list_path transport option in CHANGES file.
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430716 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-16 16:12 +0000 [821c15ae53]  Mark Michelson <mmichelson@digium.com>
+
+       * Fix problem where a hung channel could occur on a failed blind transfer.
+
+         Different clients react differently to being told that a blind transfer
+         has failed. Some will simply send a BYE and be done with it. Others will
+         attempt to reinvite themselves back onto the call.
+
+         In the latter case, we were creating a new channel and then leaving it to
+         sit forever doing nothing. With this code change, that new channel will
+         not be created and the dialog with the transferring channel will be cleaned
+         up properly.
+
+         ASTERISK-24624 #close
+         Reported by Zane Conkle
+
+         Review: https://reviewboard.asterisk.org/r/4339
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430714 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-16 11:45 +0000 [8bc4a89e1f]  cloos <cloos@jhcloos.com> (License #5956)
+
+       * Add support for the ca_list_path option for PJSIP transports.
+
+         This allows for a path to be specified that has a collection of CA
+         certificates in it.
+
+         ASTERISK-24575 #close
+         Reported by cloos
+         Patches:
+               pj-ca-path-trunk.diff uploaded by cloos (License #5956)
+
+         Review: https://reviewboard.asterisk.org/r/4344
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430709 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-15 11:35 +0000 [fa80d9658d]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_fax.c, res_fax_spandsp.c: Remove redundant locking.
+
+         When FAX was developed, apparently the faxregistry.container used to be a
+         linked list that was converted to an ao2 container.  Some of the
+         replacement ao2 container operations still had explicit lock/unlocks
+         around them.
+
+         Three off nominal code paths in res_fax.c and res_fax_spandsp.c unlock the
+         channel even though the routine did not lock the channel and other code
+         paths in the routine do not unlock the channel.
+
+         Review: https://reviewboard.asterisk.org/r/4340/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430687 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-15 11:18 +0000 [6c426e86bd]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_fax.c, res_fax_spandsp.c: Fix some curlies on the end of function definitions.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430685 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-15 06:09 +0000 [c95391f23c]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_outbound_registration: Fix race condition when reloading and listing registrations.
+
+         Due to the split of outbound registration state from configuration it is possible during
+         a reload for a "pjsip show registrations" CLI command to be executed which gets an older
+         snapshot of the configuration. This configuration may include outbound registrations which
+         have been removed due to a reload operation occurring at the same time. The code for
+         printing the outbound registration did not take this into account but now it does.
+
+         AST-1506 #close
+
+         Review: https://reviewboard.asterisk.org/r/4338/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430664 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-14 20:18 +0000 [f6630e2481]  abelbeck <lonnie@abelbeck.com> (License 5903)
+
+       * configure: If cross-compiling, assume we have working semaphores
+
+         The Asterisk 13 configure.ac checks for HAS_WORKING_SEMAPHORE but does not have
+         an option for cross-compiling so it fails with an exit. Since we're cross-
+         compiling, we can't exactly go looking for the header. The semaphore.h header
+         is relatively common:
+         * It's part of the POSIX standard
+         * It's part of GNU C Library
+         As such, we assume that it will be present when cross-compiling.
+
+         As such, this patch defaults "HAS_WORKING_SEMAPHORE" to "1" if cross-compiling
+         is detected.
+
+         If you're cross-compiling to a platform that doesn't support this, then make
+         sure you re-define this to 0.
+
+         ASTERISK-24663 #close
+         Reported by: abelbeck
+         patches:
+           asterisk-13-anonymous-semaphores.patch uploaded by abelbeck (License 5903)
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430646 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-14 17:14 +0000 [77a036bf3f]  Corey Farrell <git@cfware.com> (license 5909)
+
+       * res_pjsip: make it unloadable
+
+         The res_pjsip module was previously unloadable. With this patch it can now
+         be unloaded.
+
+         This patch is based off the original patch on the issue (listed below) by Corey
+         Farrell with a few modifications. Namely, removed a few changes not required to
+         make the module unloadable and also fixed a bug that would cause asterisk to
+         crash on unloading.
+
+         This patch is the first step (should hopefully be followed by another/others at
+         some point) in allowing res_pjsip and the modules that depend on it to be
+         unloadable. At this time, res_pjsip and some of the modules that depend on
+         res_pjsip cannot be unloaded without causing problems of some sort.
+
+         The goal of this patch is to get res_pjsip and only res_pjsip to be able to
+         unload successfully and/or shutdown without incident (crashes, leaks, etc...).
+         Other dependent modules may still cause problems on unload.
+
+         Basically made sure, with the patch applied, that res_pjsip (with no other
+         dependent modules loaded) could be succesfully unloaded and Asterisk could
+         shutdown without any leaks or crashes that pertained directly to res_pjsip.
+
+         ASTERISK-24485 #close
+         Reported by: Corey Farrell
+         Review: https://reviewboard.asterisk.org/r/4311/
+         patches:
+           pjsip_unload-broken-r1.patch submitted by Corey Farrell (license 5909)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430628 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-14 14:27 +0000 [e370c9e68e]  Mark Michelson <mmichelson@digium.com>
+
+       * Prevent slow graceful shutdown when outbound publications never started.
+
+         The code was missing the case for explicitly destroying an outbound publication
+         when Asterisk had never actually published anything. The result was that Asterisk
+         would hang for a while on a graceful shutdown.
+
+         With this change, the case is taken into account, and on a graceful shutdown, these
+         publications are destroyed without the need to actually send a PUBLISH request.
+
+         ASTERISK-24655 #close
+         Reported by Kevin Harwell
+
+         Review: https://reviewboard.asterisk.org/r/4325
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430608 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-14 09:39 +0000 [89a431df84]  Diederik de Groot (License 6600)
+
+       * build_tools/mkpkgconfig: Fix Cflags concatenation error in asterisk.pc
+
+         The mkpkgconfig script incorrectly concatenates Cflags options together. As an
+         example, the following:
+         Cflags: -I/usr/include/libxml2 -g3
+
+         Is instead generated as:
+         Cflags: -I/usr/include/libxml2-g3
+
+         This patch corrects the generation of Cflags in mkpkgconfig such that the
+         Cflags options are output correctly.
+
+         Review: https://reviewboard.asterisk.org/r/3707/
+
+         ASTERISK-23991 #close
+         Reported by: Diederik de Groot
+         patches:
+           fix_mkpkgconfig.diff uploaded by Diederik de Groot (License 6600)
+         ........
+
+         Merged revisions 430589 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430590 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-13 12:16 +0000 [1f94b96749]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_macro: Don't restore the calling location on a channel redirect.
+
+         v11: If a channel redirect to a macro exten of a macro that is active
+         happens, the redirect location doesn't get executed.  Instead the original
+         macro location is restored and gets reexecuted.
+
+         v13: An additional effect happens if a parked call times out to an
+         extension in the macro that parked the call then the macro is reexecuted
+         instead of the expected park return location.
+
+         * Made not restore the macro calling location on an
+         AST_SOFTHANGUP_ASYNCGOTO.
+
+         * Increased the locked channel range when setting up the macro execution
+         environment to cover things that should be done while the channel is
+         locked.
+
+         * Removed unnecessary NULL tests before calling ast_free() in
+         _macro_exec().
+
+         ASTERISK-23850 #close
+         Reported by: Andrew Nagy
+
+         Review: https://reviewboard.asterisk.org/r/4292/
+         ........
+
+         Merged revisions 430564 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-13 06:06 +0000 [056f11ac65]  Joshua Colp <jcolp@digium.com>
+
+       * chan_pjsip: Add configure check for 'pjsip_get_dest_info' function.
+
+         The 'pjsip_get_dest_info' function is used to determine if the signaling transport
+         of the dialog is secure or not. This function was added in PJSIP 2.3 and does not
+         exist in earlier versions.
+
+         This configure check allows Asterisk to build and run with older versions at the
+         loss of the 'secure' argument for the PJSIP CHANNEL dialplan function. Usage of
+         this argument will require upgrading to PJSIP 2.3.
+
+         ASTERISK-24665 #close
+         Reported by: Mark Michelson
+
+         Review: https://reviewboard.asterisk.org/r/4329/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430546 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-12 12:34 +0000 [368ecf13bf]  Richard Mudgett <rmudgett@digium.com>
+
+       * AMI: Revert non-backwards compatible changes from earlier commit.
+
+         * Reverted the change to astman_send_listack() to not use the listflag
+         parameter and always set the value to "Start" so the start capitalization
+         is consistent.  Unfortunately changing the case of a returned value is not
+         a backward compatible change so for now FAXSessions is going to have to
+         remain inconsistent with all of the other AMI list actions.
+
+         * Reverted the minor protocol error fix in action_getconfig() when no
+         requested categories are found.  Each line needs to be formatted as
+         "Header: text".
+
+         Caught by the testsuite.
+
+         ASTERISK-24049
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430528 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-12 12:28 +0000 [7d606d87bf]  Niklas Larsson (License 5068)
+
+       * configs/samples/features.conf.sample: Document attended transfer DTMF options
+
+         The sample config was missing the configuration options for DTMF attended
+         transfer completion scenarios. The configuration options 'atxferabort',
+         'atxfercomplete', 'atxferthreeway', and 'atxferswap' are now documented in the
+         appropriate configuration file.
+
+         ASTERISK-24678 #close
+         Reported by: Niklas Larsson
+         patches:
+           features.conf.sample.diff uploaded by Niklas Larsson (License 5068)
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430526 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-12 12:01 +0000 [4e2be8fb8f]  Michael L. Young (license 5026)
+
+       * main/syslog: Allow dynamic logs, such as security events, to log to the syslog
+
+         The security event log uses a dynamic log level (SECURITY) that is registered
+         with the Asterisk logging core. Unfortunately, the syslog would ignore log
+         statements that had a dynamic log level associated with them. Because the
+         syslog cannot handle ad hoc dynamic log levels, this patch treats any dynamic
+         log entries sent to the syslog as logs with a level of NOTICE.
+
+         ASTERISK-20744 #close
+         Reported by: Michael Keuter
+         Tested by: Michael L. Young, Jacek Konieczny
+         patches:
+           asterisk-20744-syslog-dynamic-logging_trunk.diff uploaded by Michael L. Young (license 5026)
+         ........
+
+         Merged revisions 430506 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430507 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-12 09:18 +0000 [dc993db55c]  Kristian Hogh (License 6639)
+
+       * funcs/func_curl: Fix memory leak when CURLOPT channel datastore is destroyed
+
+         When the channel datastore associated with the usage of CURLOPT on a specific
+         channel is freed, the underlying structure holding the list of options is not
+         disposed of. This patch properly frees the structure in the datastore .destroy
+         callback.
+
+         ASTERISK-24672 #close
+         Reported by: Kristian Hogh
+         patches:
+           func_curl-memory-leak.diff uploaded by Kristian Hogh (License 6639)
+         ........
+
+         Merged revisions 430487 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430488 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-09 16:08 +0000 [4791d629d1]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * sip_to_pjsip: improve ability to parse input files
+
+         General improvements to SIP to PJSIP conversion utility:
+
+         1) track default section of input file to allow parsing
+            an include file that doesn't specify a [section]
+
+         2) informatively handle case of assignment without [section]
+
+         3) correctly handle getting sections from included files
+            - [section]'s are inherited by included file
+
+         4) provide null string as default transport bind ip
+
+         5) gracefully handle missing portions of registration string
+
+         6) denote steps of operation during conversion and confirm
+            top level files as a convenience
+
+         ASTERISK-24474 #close
+         Review: https://reviewboard.asterisk.org/r/4280/
+         Reported by: John Kiniston
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-09 15:44 +0000 [2b0d522dbb]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * app_bridge: return to the next dialplan priority
+
+         When app_bridge grabs a channel and puts it into
+         a bridge, the channel should then continue where
+         it left off in the dialplan after the bridge has
+         ended.   Although it stores the current dialplan
+         location as an after bridge goto on the channel,
+         it was executing the same priority again instead
+         of going to the next priority.   By swapping the
+         "specific" version of bridge_set_after_goto with
+         bridge_set_after_go_on, the next priority in the
+         dialplan is executed instead.
+
+         ASTERISK-24637 #close
+         Review: https://reviewboard.asterisk.org/r/4322/
+         Reported by: John Bigelow
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430467 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-09 11:54 +0000 [4b363688d4]  Richard Mudgett <rmudgett@digium.com>
+
+       * AMI: Make AMI actions that generate event lists consistent.
+
+         * Made the following AMI actions use list API calls for consistency:
+         Agents
+         BridgeInfo
+         BridgeList
+         BridgeTechnologyList
+         ConfbridgeLIst
+         ConfbridgeLIstRooms
+         CoreShowChannels
+         DAHDIShowChannels
+         DBGet
+         DeviceStateList
+         ExtensionStateList
+         FAXSessions
+         Hangup
+         IAXpeerlist
+         IAXpeers
+         IAXregistry
+         MeetmeList
+         MeetmeListRooms
+         MWIGet
+         ParkedCalls
+         Parkinglots
+         PJSIPShowEndpoint
+         PJSIPShowEndpoints
+         PJSIPShowRegistrationsInbound
+         PJSIPShowRegistrationsOutbound
+         PJSIPShowResourceLists
+         PJSIPShowSubscriptionsInbound
+         PJSIPShowSubscriptionsOutbound
+         PresenceStateList
+         PRIShowSpans
+         QueueStatus
+         QueueSummary
+         ShowDialPlan
+         SIPpeers
+         SIPpeerstatus
+         SIPshowregistry
+         SKINNYdevices
+         SKINNYlines
+         Status
+         VoicemailUsersList
+
+         * Incremented the AMI version to 2.7.0.
+
+         * Changed astman_send_listack() to not use the listflag parameter and
+         always set the value to "Start" so the start capitalization is consistent.
+         i.e., The FAXSessions used "Start" while the rest of the system used
+         "start".  The corresponding complete event always used "Complete".
+
+         * Fixed ami_show_resource_lists() "PJSIPShowResourceLists" to output the
+         AMI ActionID for all of its list events.
+
+         * Fixed off-nominal AMI protocol error in manager_bridge_info(),
+         manager_parking_status_single_lot(), and
+         manager_parking_status_all_lots().  Use of astman_send_error() after
+         responding to the original AMI action request violates the action response
+         pattern by sending two responses.
+
+         * Fixed minor protocol error in action_getconfig() when no requested
+         categories are found.  Each line needs to be formatted as "Header: text".
+
+         * Fixed off-nominal memory leak in manager_build_parked_call_string().
+
+         * Eliminated unnecessary use of RAII_VAR() in ami_subscription_detail().
+
+         ASTERISK-24049 #close
+         Reported by: Jonathan Rose
+
+         Review: https://reviewboard.asterisk.org/r/4315/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430434 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-09 08:51 +0000 [eb9ce791d8]  Kinsey Moore <kmoore@digium.com>
+
+       * res_fax: Add T.38 negotiation timeout option
+
+         This change makes the T.38 negotiation timeout configurable via
+         't38timeout' in res_fax.conf or FAXOPT(t38timeout). It was previously
+         hard coded to be 5000 milliseconds.
+
+         This change also handles T.38 switch failures by aborting the fax since
+         in the case where this can happen, both sides have agreed to switch to
+         T.38 and Asterisk is unable to do so.
+
+         Review: https://reviewboard.asterisk.org/r/4320/
+         ........
+
+         Merged revisions 430415 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430416 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-08 15:40 +0000 [b937438c17]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_pubsub: Fix persistent subscriptions not surviving graceful shutdown
+
+         If you do a 'core (shutdown|restart) graceful' persistent subscriptions won't 
+         survive.  If you do a 'core (shutdown|restart) now' or asterisk terminates for 
+         some reason, they do.  Here's why...
+
+         When asterisk shuts down gracefully, it sends a 'NOTIFY/terminated' to 
+         subscribers for each subscription.  This not only tells the subscribers that the 
+         dialog/state machine is done, it also frees the last reference to the 
+         subscription tree which causes the persistent subscription to get deleted from 
+         astdb.  When asterisk restarts, nothing's left.  Just preventing the delete from 
+         astdb doesn't work because we already told the subscriber to terminate the 
+         dialog so we can't restart it even if it was still in astdb.  Everything works 
+         OK if asterisk terminates unexpectedly because we never send the 'terminated' 
+         message so on restart, the subscription is still in astdb and the subscriber is 
+         none the wiser.
+
+         This patch suppresses the sending of 'NOTIFY/terminated' on shutdown for 
+         persistent connections.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4318/
+
+
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430397 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-08 15:37 +0000 [143bec54ee]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_outbound_registration: Fix reference leak.
+
+         Every time a registration started, sip_outbound_registration_response_cb bumps 
+         the ref count on client_state then pushes a handle_registration_response task.  
+         handle_registration_response never unreffed it though.  So every time a 
+         registration goes out, the ref count goes up by one.
+
+         This patch adds the unreffs to handle_registration_response.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4303/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430395 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-08 11:48 +0000 [6e59bf6491]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_outbound_registration: Fix several reload issues
+
+         There are 2 issues with reloading registrations...
+
+         1.  The 'can_reuse_registration' test wasn't considering the intervals or 
+         expiration in its determination of whether a registration changed or not so if 
+         you changed any of the intervals or the expiration and reloaded, the object 
+         would get reloaded but the actual timers wouldn't change.  
+         can_reuse_registration now does a sorcery diff on the old and new objects 
+         instead of discretely testing certain fields.  Now if you change expiration for 
+         instance, and reload, the timer is updated and re-registration will occur on the 
+         new value.
+
+         2.  If you mung up your password on an outbound registration you get a permanent 
+         failure.  If you fix the password (on the outbound_auth object) and reload, 
+         nothing tells outbound_registration to try again because the registration itself 
+         didn't change.  This patch adds an observer on the "auth" object type and if any 
+         auth changes, existing registration states are searched and those in a 
+         REJECTED_PERMANENT state are retried.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4304/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430373 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-07 15:25 +0000 [8f3c60cee7]  Kinsey Moore <kmoore@digium.com>
+
+       * ARI: Allow usage of ASYNCGOTO with Stasis()
+
+         When the AMI Redirect action is used with a channel bridged inside
+         Stasis() and not running a pbx, the channel is hung up instead of
+         proceeding to the desired location in dialplan. This change allows
+         such channels to be Redirected properly by detecting the operation
+         used by Redirect (ASYNCGOTO) and using the code already established
+         for functionality of the ARI channel continue operation.
+
+         ASTERISK-24591 #close
+         Review: https://reviewboard.asterisk.org/r/4271/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430355 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-07 12:53 +0000 [42b342c6e2]  Mark Michelson <mmichelson@digium.com>
+
+       * Add the ability to continue and originate using priority labels.
+
+         With this patch, the following two ARI commands
+
+         POST /channels
+         POST /channels/{id}/continue
+
+         Accept a new parameter, label, that can be used to continue to or originate
+         to a priority label in the dialplan.
+
+         Because this is adding a new parameter to ARI commands, the API version of
+         ARI has been bumped from 1.6.0 to 1.7.0.
+
+         This patch comes courtesy of Nir Simionovich from Greenfield Tech. Thanks!
+
+         ASTERISK-24412 #close
+         Reported by Nir Simionovich
+
+         Review: https://reviewboard.asterisk.org/r/4285
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430337 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-07 12:17 +0000 [a10d2966b6]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_exten_state: Change 'does not exist' warning to notice
+
+         The 'new_subscribe: Extension <> does not exist or has no associated hint'
+         is a config issue and doesn't need to clutter up logs with warnings.
+         Changed to notice.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4307/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430319 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-07 12:14 +0000 [13ed8f73ed]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_mwi: Change "MWI Subscription failed" message from warning to notice
+
+         The "MWI Subscription failed" message means the client is trying to subscribe
+         to a mailbox that doesn't exist.  There's no need to clutter up logs with
+         warnings for a client misconfiguration so I changed it to a notice.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4306/
+
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430317 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-07 11:51 +0000 [42e4cb7174]  gtjoseph <george.joseph@fairview5.com>
+
+       * func_config: Add ability to retrieve specific occurrence of a variable
+
+         I guess nobody uses templates with AST_CONFIG because today if you have a
+         context that inherits from a template and you call AST_CONFIG on the context,
+         you'll get the value from the template even if you've overridden it in the
+         context.  This is because AST_CONFIG only gets the first occurrence which is
+         always from the template.
+
+         This patch adds an optional 'index' parameter to AST_CONFIG which lets you
+         specify the exact occurrence to retrieve, or '-1' to retrieve the last.
+         The default behavior is the current behavior.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4313/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430315 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-07 11:35 +0000 [9ea8dd036f]  Mark Michelson <mmichelson@digium.com>
+
+       * Fix ability to perform a remote attended transfer with PJSIP.
+
+         This fix has two parts:
+
+         * Corrected an error message to properly state that external_replaces is an extension. The
+           error message also prints what dialplan context the external_replaces extension was being
+           looked for in.
+         * Corrected the printing of the Replaces: header in an INVITE request. We were duplicating
+           "Replaces: " in the header.
+
+         ASTERISK-24376 #close
+         Reported by Matt Jordan
+
+         Review: https://reviewboard.asterisk.org/r/4296
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430313 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-07 10:55 +0000 [75cd302b0a]  gtjoseph <george.joseph@fairview5.com>
+
+       * config: Add option to NOT preserve effective context when changing a template
+
+         Let's say you have a template T with variable VAR1 = ON and you have a
+         context C(T) that doesn't specify VAR1.  If you read C, the effective value
+         of VAR1 is ON.  Now you change T VAR1 to OFF and call
+         ast_config_text_file_save.  The current behavior is that the file gets
+         re-written with T/VAR1=OFF but C/VAR1=ON is added.  Personally, I think this
+         is a bug. It's preserving the effective state of C even though I didn't
+         specify C/VAR1 in th first place.  I believe the behavior should be that if
+         I didn't specify C/VAR1 originally, then the effective value of C/VAR1 should
+         continue to follow the inherited state.  Now, if I DID explicitly specify
+         C/VAR1, the it should be preserved even if the template changes.
+
+         Even though I think the existing behavior is a bug, it's been that way forever
+         so I'm not changing it.  Instead, I've created ast_config_text_file_save2()
+         that takes a bitmask of flags, one of which is to preserve the effective context
+         (the current behavior).  The original ast_config_text_file_save calls *2 with
+         the preserve flag.  If you want the new behavior, call *2 directly without a
+         flag.
+
+         I've also updated Manager UpdateConfig with a new parameter
+         'PreserveEffectiveContext' whose default is 'yes'.  If you want the new behavior
+         with UpdateConfig, set 'PreserveEffectiveContext: no'.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4297/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430295 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-06 20:52 +0000 [e17a1a8ba1]  Kinsey Moore <kmoore@digium.com>
+
+       * Fix dev-mode build on recent gcc
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430274 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-06 16:46 +0000 [dd42e92e7a]  Matt Jordan <mjordan@digium.com>
+
+       * contrib/ast-db-manage: Correct down_revision path for user_eq_phone
+
+         When the user_eq_phone patch was backported to 13, it referenced the downward
+         revision that the PJSIP optimistic encryption option also references. This
+         creates a multi-path upgrade Exception when generating the SQL files.
+
+         This patch corrects this in the 13 branch. Note that trunk, which already
+         contained both of these features, is unaffected by this problem.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430252 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-06 11:52 +0000 [4becfae3b1]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_mwi: Change warning to notice
+
+         When res_pjsip loads and an endpoint auto-subscribes a mailbox for mwi,
+         if a contact hasn't registered yet, res_pjsip_mwi spits out a warning.
+         This is a perfectly normal situation though and doesn't require something
+         as serious as a warning.  It's also self correcting. The device will start
+         getting mwi as soon as it registers.
+
+         This patch changes the warning to a notice.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4314/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430227 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-06 11:46 +0000 [9d457fe5c2]  gtjoseph <george.joseph@fairview5.com>
+
+       * bridge_native_rtp: Change local/remote message from debug/2 to verb/4
+
+         Change the "Locally bridged"/"Remotely bridged" messages from dbg/2 to verb/4.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4300/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430225 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-06 11:35 +0000 [0fa6c34dc6]  gtjoseph <george.joseph@fairview5.com>
+
+       * outbound_registration: Add 'pjsip send register' and update 'send unregister'
+
+         The current behavior of 'pjsip send unregister' is to send the unregister
+         (REGISTER with 0 exp) but let the next scheduled register proceed normally.
+         I don't think that's a good idea.  If you unregister, it should stay
+         unregistered until you decide to start registrations again.  So this patch
+         just adds a cancel_registration call to the current unregister_task to
+         cancel the timer.
+
+         Of course, now you need  a way to start registration again so I've added
+         a 'pjsip send register' command that unregisters and cancels any existing
+         registration (the same as send unregister), then sends an immediate
+         registration and starts the timer back up again.
+
+         Both changes also ripple to AMI.  There's a new PJSIPRegister command.
+
+         There's no harm in calling either command repeatedly.  They don't care
+         about the actual state.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4301/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430223 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-06 11:28 +0000 [d873b09075]  gtjoseph <george.joseph@fairview5.com>
+
+       * pjsip cli: Fix sorting of contacts for 'pjsip list contacts'
+
+         For some reason I was using a hash container instead of a list to gather the
+         contacts for 'pjsip list/show contacts' so even though I had a sort function,
+         the output wasn't sorted.  This patch just changes the hash container to a
+         list container and the contacts now appear sorted in the CLI.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4305/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430221 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-05 16:49 +0000 [566907fabd]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * bridge: avoid leaking channel during blond transfer pt2
+
+         A blond transfer to a failed destination, when followed
+         by a recall attempt, lead to a leak of the reference to
+         the destination channel.  In addition to correcting the
+         regression on the previous attempt (r429826) this fixes
+         the leak and two additional reference leaks on failures
+         of bridge_import.
+
+         ASTERISK-24513 #close
+         Review: https://reviewboard.asterisk.org/r/4302/
+         ........
+
+         Merged revisions 430199 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430200 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-05 11:56 +0000 [b9a7875dd6]  Joshua Colp <jcolp@digium.com>
+
+       * pjsip: Document addition of 'PJSIP_AOR' and 'PJSIP_CONTACT' in CHANGES file.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430181 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-01-05 11:51 +0000 [a7c38428af]  Joshua Colp <jcolp@digium.com>
+
+       * pjsip: Add 'PJSIP_AOR' and 'PJSIP_CONTACT' dialplan functions.
+
+         The PJSIP_AOR dialplan function allows inspection of configured AORs including
+         what contacts are currently bound to them.
+
+         The PJSIP_CONTACT dialplan function allows inspection of contacts in existence.
+         These can include both externally added (by way of registration) or permanent
+         ones.
+
+         ASTERISK-24341
+         Reported by: xrobau
+
+         Review: https://reviewboard.asterisk.org/r/4308/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430179 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-29 07:10 +0000 [cca262e7d3]  Kinsey Moore <kmoore@digium.com>
+
+       * PJSIP: Update transport method documentation
+
+         This updates the documentation for the 'method' configuration option to
+         be more verbose about the behaviors of values 'unspecified' and
+         'default'. They do exactly the same thing which is to select the
+         default as defined by PJSIP which is currently TLSv1.
+
+         Review: https://reviewboard.asterisk.org/r/4264/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430145 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-24 15:27 +0000 [1a0979d437]  Kevin Harwell <kharwell@digium.com>
+
+       * app_queue: Update sample conf documenation
+
+         Updated the queues.conf.sample file to explicitly state which channel queue
+         variables are propagated to.
+
+         ASTERISK-24267
+         Reported by: Mitch Claborn
+         ........
+
+         Merged revisions 430126 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430127 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-24 09:26 +0000 [b521c612fc]  Matt Jordan <mjordan@digium.com>
+
+       * res_pjsip: Backport missing commits for user_eq_phone
+
+         This backports the following from trunk, which were missed:
+
+         r427257 | file | 2014-11-04 16:31:16 -0600 (Tue, 04 Nov 2014) | 2 lines
+
+         res_pjsip: Allow + at the beginning of a phone number when user_eq_phone is enabled.
+
+         r427259 | file | 2014-11-04 16:51:32 -0600 (Tue, 04 Nov 2014) | 2 lines
+
+         res_pjsip: Apply the 'user_eq_phone' setting to the To header as well.
+
+         It also adds the Alembic script for the option.
+
+         ASTERISK-24643
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430092 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-24 07:25 +0000 [915bb88d3e]  Matt Jordan <mjordan@digium.com>
+
+       * res_pjsip_keepalive: Add runtime configurable keepalive module for connection-oriented transports.
+
+         Note that this is backport from trunk of r425825.
+
+         This change adds a module which is configurable using the keep_alive_interval setting in the
+         global section that will send a CRLF keep alive to all active connection-oriented transports at
+         the provided interval. This is useful because it can help keep connections open through NATs.
+         This functionality also exists within PJSIP but can not be controlled at runtime and requires
+         recompiling it.
+
+         Review: https://reviewboard.asterisk.org/r/4084/
+
+         ASTERISK-24644 #close
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-24 07:20 +0000 [006ffdcfb2]  Matt Jordan <mjordan@digium.com>
+
+       * res_pjsip: Add 'user_eq_phone' option to add a 'user=phone' parameter when applicable.
+
+         Note that this is a backport of r425804 from trunk.
+
+         This change adds a configuration option which adds a 'user=phone' parameter if the user
+         portion of the request URI or the From URI is determined to be a number.
+
+         Review: https://reviewboard.asterisk.org/r/4073/
+
+         ASTERISK-24643 #close
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430083 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-23 17:18 +0000 [d1c532034b]  gtjoseph <george.joseph@fairview5.com>
+
+       * pjsip_options: Fix continued qualifies after endpoint/aor deletion
+
+         If you remove an endpoint/aor from pjsip.conf then do a core reload,
+         qualifies will continue even though the object are gone.  This happens
+         because nothing clears out the qualify tasks.
+
+         This patch unschedules all existing qualify tasks before scheduling
+         new ones on reload.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4290/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430064 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-23 17:15 +0000 [0a3dd7589e]  gtjoseph <george.joseph@fairview5.com>
+
+       * test_astobj2: Fix warning for missing trailing slash in category
+
+         This patch adds a trailing slash to the category for this test.
+         No more warning.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4295/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430059 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-22 15:18 +0000 [7a356232bd]  Richard Mudgett <rmudgett@digium.com>
+
+       * DTMF atxfer: Setup recall channels as if the transferee initiated the call.
+
+         After the initial DTMF atxfer call attempt to the transfer target fails to
+         answer during a blonde transfer, the recall callback channels do not get
+         setup with information from the initial transferrer channel.  As a result,
+         the recall callback to the transferrer does not have callid, channel
+         variables, datastores, accountcode, peeraccount, COLP, and CLID setup.  A
+         similar situation happens with the recall callback to the transfer target
+         but it is less visible.  The recall callback to the transfer target does
+         not have callid, channel variables, datastores, accountcode, peeraccount,
+         and COLP setup.
+
+         * Added missing information to the recall callback channels before
+         initiating the call.  callid, channel variables, datastores, accountcode,
+         peeraccount, COLP, and CLID
+
+         * Set callid of the transferrer channel on the DTMF atxfer controller
+         thread attended_transfer_monitor_thread().
+
+         * Added missing channel unlocks and props unref to off nominal paths in
+         attended_transfer_properties_alloc().
+
+         ASTERISK-23841 #close
+         Reported by: Richard Mudgett
+
+         Review: https://reviewboard.asterisk.org/r/4259/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430034 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-22 13:44 +0000 [fca0be57d9]  Richard Mudgett <rmudgett@digium.com>
+
+       * queue_log: Post QUEUESTART entry when Asterisk fully boots.
+
+         The QUEUESTART log entry has historically acted like a fully booted event
+         for the queue_log file.  When the QUEUESTART entry was posted to the log
+         was broken by the change made by ASTERISK-15863.
+
+         * Made post the QUEUESTART queue_log entry when Asterisk fully boots.
+         This restores the intent of that log entry and happens after realtime has
+         had a chance to load.
+
+         AST-1444 #close
+         Reported by: Denis Martinez
+
+         Review: https://reviewboard.asterisk.org/r/4282/
+         ........
+
+         Merged revisions 430009 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@430010 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-22 09:40 +0000 [9735a13429]  Karsten Wemheuer (License 5930)
+
+       * chan_sip: Send CANCEL via original INVITE destination even after UPDATE request
+
+         Given the following scenario:
+         * Three SIP phones (A, B, C), all communicating via a proxy with Asterisk
+         * A call is established between A and B. B performs a SIP attended transfer of
+           A to C. B sets the call on hold (A is hearing MOH) and dials the extension of
+           C. While phone C is ringing, B transfers the call (that is, what we typically
+           call a 'blond transfer').
+         * When the transfer completes, A hears the ringing of phone C, while B is idle.
+
+         In the SIP messaging for the above scenario, a REFER request is sent to
+         transfer the call. When "sendrpid=yes" is set in sip.conf, Asterisk may send an
+         UPDATE request to phone C to update party information. This update is sent
+         directly to phone C, not through the intervening proxy. This has the unfortunate
+         side effect of providing route information, which is then set on the sip_pvt
+         structure for C. If someone (e.g. B) is trying to get the call back (through a
+         directed pickup), Asterisk will send a CANCEL request to C. However, since we
+         have now updated the route set, the CANCEL request will be sent directly to C
+         and not through the proxy. The phone ignores this CANCEL according to RFC3261
+         (Section 9.1).
+
+         This patch updates reqprep such that the route is not updated if an UPDATE
+         request is being sent while the INVITE state is INV_PROCEEDING or
+         INV_EARLY_MEDIA. This ensures that a subsequent CANCEL request is still sent
+         to the correct location.
+
+         Review: https://reviewboard.asterisk.org/r/4279
+
+         ASTERISK-24628 #close
+         Reported by: Karsten Wemheuer
+         patches:
+           issue.patch uploaded by Karsten Wemheuer (License 5930)
+         ........
+
+         Merged revisions 429982 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429983 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-21 18:17 +0000 [fc79cf6428]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_phoneprovi_provider: Fix reload
+
+         Reloading wasn't working correctly because on a reload, the sorcery apply
+         handler was never being called for unchanged users.  So, instead of using
+         an apply handler, I'm now iterating over all users.  Works much more reliably.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4288/
+
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429914 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-20 14:57 +0000 [f88460115f]  Joshua Colp <jcolp@digium.com>
+
+       * acl: Fix reloading of configuration if configuration file does not exist at startup.
+
+         The named ACL code incorrectly destroyed the config options information if loading
+         of the configuration file failed at startup. This would result in reloading
+         also failing even if a valid configuration file was put in place.
+
+         ASTERISK-23733 #close
+         Reported by: Richard Kenner
+         ........
+
+         Merged revisions 429893 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429894 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-19 14:54 +0000 [4b054bdc6d]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_http_websocket.c: Fix incorrect use of sizeof in ast_websocket_write().
+
+         This won't fix the reported issue but it is an incorrect use of sizeof.
+
+         ASTERISK-24566
+         Reported by:  Badalian Vyacheslav
+         ........
+
+         Merged revisions 429867 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429868 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-19 11:31 +0000 [7074bf956b]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_dahdi: Don't ignore setvar when using configuration section scheme.
+
+         When the configuration section scheme of chan_dahdi.conf is used (keyword
+         dahdichan instead of channel) all setvar= options are completely ignored.
+         No variable defined this way appears in the created DAHDI channels.
+
+         * Move the clearing of setvar values to after the deferred processing of
+         dahdichan.
+
+         AST-1378 #close
+         Reported by: Guenther Kelleter
+         Patch by: Guenther Kelleter
+         ........
+
+         Merged revisions 429825 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429829 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-19 11:26 +0000 [6a99df47c0]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * bridge: avoid leaking channel during blond transfer
+
+         After a blond transfer (start attended and hang up)
+         to a destination that also hangs up without answer,
+         the Local;1 channel was leaked and would show up on
+         core show channels.  This was happening because the
+         attended state blond_nonfinal_enter() resetting the
+         props->transfer_target to null while releasing it's
+         own reference, which would later prevent props from
+         releasing another reference during destruction. The
+         change made here is simply to not assign the target
+         to NULL.
+
+         ASTERISK-24513 #close
+         Reported by: Mark Michelson
+         Review: https://reviewboard.asterisk.org/r/4262/
+         ........
+
+         Merged revisions 429826 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429827 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-18 16:38 +0000 [b22c833c12]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_dahdi.c, res_rtp_asterisk.c: Change some spammy debug messages to level 5.
+
+         ASTERISK-24337 #close
+         Reported by: Rusty Newton
+         ........
+
+         Merged revisions 429804 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429805 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-18 14:03 +0000 [e603fbe04a]  Richard Mudgett
+
+       * chan_dahdi: Populate CALLERID(ani2) for incoming calls in featdmf signaling mode.
+
+         For the featdmf signaling mode the incoming MF Caller-ID information is
+         formatted as follows: *${CALLERID(ani2)}${CALLERID(ani)}#*${EXTEN}#
+
+         Rather than discarding the ani2 digits, populate the CALLERID(ani2) value
+         with what is received instead.
+
+         AST-1368 #close
+         Reported by: Denis Martinez
+         Patches:
+               extract_ani2_for_featdmf_v11.patch (license #5621) patch uploaded by Richard Mudgett
+         ........
+
+         Merged revisions 429783 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429784 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-18 09:50 +0000 [4fad85f9bf]  Kevin Harwell <kharwell@digium.com>
+
+       * res_pjsip_sdp_rtp: wrong bridge chosen when the DTMF mode is not compatible
+
+         A native rtp bridge was being chosen (it shouldn't have been) when using two
+         pjsip channels with incompatible DTMF modes.  This patch sets the rtp instance
+         property, AST_RTP_PROPERTY_DTMF, for the appropriate DTMF mode(s) for pjsip.
+         It was not being set before, meaning all DTMF modes for pjsip were being treated
+         as compatible, thus native bridging would be chosen as the bridge type when it
+         shouldn't have been.
+
+         ASTERISK-24459 #close
+         Reported by: Yaniv Simhi
+         Review: https://reviewboard.asterisk.org/r/4265/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429763 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-18 09:34 +0000 [14d2f8f20f]  Mark Michelson <mmichelson@digium.com>
+
+       * Prevent potential infinite outbound authentication loops in registration.
+
+         Prior to this patch, Asterisk would always respond to 401 responses to
+         registration attempts by trying to provide a registration with authentication
+         credentials. Even if subsequent attempts were rejected with 401 responses,
+         Asterisk would continue this behavior. If authentication credentials were
+         incorrect, this could continue forever.
+
+         With this patch, we keep track of whether we have attempted authentication
+         on an outbound registration attempt. If we already have, we don not try
+         again until the next attempt. This prevents the infinite loop scenario.
+
+         Review: https://reviewboard.asterisk.org/r/4273
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429761 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-18 09:05 +0000 [c1582929f9]  Mark Michelson <mmichelson@digium.com>
+
+       * Prevent possible race condition on dual redirect of channels in the same bridge.
+
+         The AST_FLAG_BRIDGE_DUAL_REDIRECT_WAIT flag was created to prevent bridges from
+         prematurely acting on orphaned channels in bridges. The problem with the AMI
+         redirect action was that it was setting this flag on channels based on the presence
+         of a PBX, not whether the channel was in a bridge. Whether a channel has a PBX
+         is irrelevant, so the condition has been altered to check if the channel is in a
+         bridge.
+
+         ASTERISK-24536 #close
+         Reported by Niklas Larsson
+
+         Review: https://reviewboard.asterisk.org/r/4268
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429741 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-18 08:43 +0000 [5bd5f580c1]  Mark Michelson <mmichelson@digium.com>
+
+       * Ensure the correct value is returned for CHANNEL(pjsip, secure)
+
+         Prior to this patch, we were using the PJSIP dialog's secure flag
+         to determine if a secure transport was being used. Unfortunately,
+         the dialog's secure flag was only set if a SIPS URI were in use,
+         as required by RFC 3261 sections 12.1.1 and 12.1.2. What we're interested
+         in is not dialog security, but transport security. This code change
+         switches to a model where we use the dialog's target URI to determine
+         what transport would be used to communicate, and then check if that
+         transport is secure.
+
+         AST-1450 #close
+         Reported by John Bigelow
+
+         Review: https://reviewboard.asterisk.org/r/4277
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429739 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-17 18:10 +0000 [b4621cd0f5]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_config_wizard: fix unload SEGV
+
+         If certain pjsip modules aren't loaded, the wizard causes a SEGV
+         when it unloads.  Added a check for the presense of the object
+         type wizard before trying to clean it up.
+
+         Tested-by: George Joseph
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429719 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-17 17:05 +0000 [105f224cfd]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_config_wizard: Change FILEUNCHANGED config_load2 flag determination
+
+         The module now applies the FILEUNCHANGED flag when both reloaded is
+         specified AND there's no last_config for the object type.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4276/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429699 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-17 03:54 +0000 [9ae57e0dd6]  Walter Doekes <walter+asterisk@wjd.nu>
+
+       * Fix printf problems with high ascii characters after r413586 (1.8).
+
+         In r413586 (1.8) various casts were added to silence gcc 4.10 warnings.
+         Those fixes included things like:
+
+             -out += sprintf(out, "%%%02X", (unsigned char) *ptr);
+             +out += sprintf(out, "%%%02X", (unsigned) *ptr);
+
+         That works for low ascii characters, but for the high range that yields
+         e.g. FFFFFFC3 when C3 is expected.
+
+         This changeset:
+         - fixes those casts to use the 'hh' unsigned char modifier instead
+         - consistently uses %02x instead of %2.2x (or other non-standard usage)
+         - adds a few 'h' modifiers in various places
+         - fixes a 'replcaes' typo
+         - dev/urandon typo (in 13+ patch)
+
+         Review: https://reviewboard.asterisk.org/r/4263/
+
+         ASTERISK-24619 #close
+         Reported by: Stefan27 (on IRC)
+         ........
+
+         Merged revisions 429673 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ........
+
+         Merged revisions 429674 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429675 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-16 11:53 +0000 [a3534b7c05]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_config_wizard: fix test breakage
+
+         Fix test breakage caused by not checking for res_pjsip before
+         calling ast_sip_get_sorcery.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4269/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429653 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-16 10:38 +0000 [f26d4618eb]  Andreas Steinmetz (license 6523)
+
+       * chan_sip: Allow T.38 switch-over when SRTP is in use.
+
+         Previously when SRTP was enabled on a channel it was not possible
+         to switch to T.38 as no crypto attributes would be present.
+
+         This change makes it so it is now possible. If a T.38 re-invite
+         comes in SRTP is terminated since in practice you can't encrypt
+         a UDPTL stream. Now... if we were doing T.38 over RTP (which
+         does exist) then we'd have a chance but almost nobody does that so
+         here we are.
+
+         ASTERISK-24449 #close
+         Reported by: Andreas Steinmetz
+         patches:
+          udptl-ignore-srtp-v2.patch submitted by Andreas Steinmetz (license 6523)
+         ........
+
+         Merged revisions 429632 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429633 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-16 09:43 +0000 [ad85e54fd9]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_t38: Fix T.38 failure when peer reinvites immediately.
+
+         If a remote endpoint reinvites to T.38 immediately the state machine
+         will go into a peer reinvite state. If a T.38 capable application
+         (such as ReceiveFax) queries it will receive this state. Normally
+         the application will then indicate so that the channel driver will
+         queue up the T.38 offer previously received. Once it receives this
+         offer the application will act normally and negotiate.
+
+         The res_pjsip_t38 module incorrectly partially squashed this indication.
+         This would cause the application to think the request had failed when
+         in reality it had actually worked.
+
+         This change makes it so that no T.38 control frames (or indications)
+         are squashed.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429612 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-15 11:07 +0000 [89617370ec]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_config_wizard: Allow streamlined config of common pjsip scenarios
+
+         res_pjsip_config_wizard
+         ------------------
+          * This is a new module that adds streamlined configuration capability for
+            chan_pjsip.  It's targetted at users who have lots of basic configuration
+            scenarios like 'phone' or 'agent' or 'trunk'.  Additional information
+            can be found in the sample configuration file at
+            config/samples/pjsip_wizard.conf.sample.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4190/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429592 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-15 09:36 +0000 [b85f79c0c1]  Mark Michelson <mmichelson@digium.com>
+
+       * Activate persistent subscriptions when they are recreated.
+
+         Prior to this change, recreating persistent subscriptions would
+         create the subscription but would not activate it. This led to subscriptions
+         being listed in the "NULL" state by diagnostics and not sending NOTIFYs
+         when expected.
+
+         Review: https://reviewboard.asterisk.org/r/4261
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429571 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 17:54 +0000 [2b8c441096]  gtjoseph <george.joseph@fairview5.com>
+
+       * loader: Move definition of ast_module_reload from _private.h to module.h
+
+         No functionality change.  Just move the definition of ast_module_reload
+         from _private.h to module.h so it can be public.
+
+         Also removed the include of _private.h from manager.c since ast_module_load
+         was the only reason for including it.
+
+         Tested-by: George Joseph
+
+         Review: https://reviewboard.asterisk.org/r/4251/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429542 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 17:40 +0000 [8f12ded887]  Richard Mudgett <rmudgett@digium.com>
+
+       * DEBUG_THREADS: Fix regression and lock tracking initialization problems.
+
+         This patch started with David Lee's patch at
+         https://reviewboard.asterisk.org/r/2826/ and includes a regression fix
+         introduced by the ASTERISK-22455 patch.
+
+         The initialization of a mutex's lock tracking structure was not protected
+         in a critical section.  This is fine for any mutex that is explicitly
+         initialized, but a static mutex may have its lock tracking double
+         initialized if multiple threads attempt the first lock simultaneously.
+
+         * Added a global mutex to properly serialize initialization of the lock
+         tracking structure.  The painful global lock can be mitigated by adding a
+         double checked lock flag as discussed on the original review request.
+
+         * Defer lock tracking initialization until first use.
+
+         * Don't be "helpful" and initialize an uninitialized lock when
+         DEBUG_THREADS is enabled.  Debug code is not supposed to fix or change
+         normal code behavior.  We don't need a lock initialization race that would
+         force a re-setup of lock tracking.  Lock tracking already handles
+         initialization on first use.
+
+         * Properly handle allocation failures of the lock tracking structure.
+
+         * No need to initialize tracking data in __ast_pthread_mutex_destroy()
+         just to turn around and destroy it.
+
+
+         The regression introduced by ASTERISK-22455 is the result of manipulating
+         a pthread_mutex_t struct outside of the pthread library code.  The
+         pthread_mutex_t struct seems to have a global linked list pointer member
+         that can get changed by other threads.  Therefore, saving and restoring
+         the contents of a pthread_mutex_t struct is a bad thing.
+
+         Thanks to Thomas Airmont for finding this obscure regression.
+
+         * Don't overwrite the struct ast_lock_track.reentr_mutex member to restore
+         tracking data in __ast_cond_wait() and __ast_cond_timedwait().  The
+         pthread_mutex_t struct must be treated as a read-only opaque variable.
+
+
+         Miscellaneous other items fixed by this patch:
+
+         * Match ast_suspend_lock_info() with ast_restore_lock_info() in
+         __ast_cond_timedwait().
+
+         * Made some uninitialized lock sanity checks return EINVAL and try a
+         DO_THREAD_CRASH.
+
+         * Fix bad canlog initialization expressions.
+
+         ASTERISK-24614 #close
+         Reported by: Thomas Airmont
+
+         Review: https://reviewboard.asterisk.org/r/4247/
+         Review: https://reviewboard.asterisk.org/r/2826/
+         ........
+
+         Merged revisions 429539 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429540 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 16:53 +0000 [8c019b1a6b]  Matt Jordan <mjordan@digium.com>
+
+       * res/res_agi: Make Verbose message for 'stream file' match other playbacks
+
+         The Verbose message displayed when a file is played back via 'stream file'
+         was formatted differently than other playbacks:
+         * It didn't include the channel name
+         * It didn't include the channel language
+         It does, however, include the playback offset as well as any escape digits.
+         That information was kept; however, this patch updates the formatting to more
+         closely match the Verbose messages displayed when a file is played back by
+         'control stream file', Playback, ControlPlayback, or any other file playback
+         operation.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429519 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 16:49 +0000 [7ff0d266a6]  Matt Jordan <mjordan@digium.com>
+
+       * Add 11 merge properties
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429518 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 10:57 +0000 [439e6e1c5d]  Joshua Colp <jcolp@digium.com>
+
+       * media: Fix crash when determining sample count of a frame during shutdown.
+
+         When shutting down Asterisk the codecs are cleaned up. As a result anything
+         attempting to get a codec based on ID or details will find that no codec
+         exists. This currently occurs when determining the sample count of a frame.
+         This code did not take this situation into account.
+
+         This change fixes this by getting the codec directly from the format and
+         eliminates the lookup. This is both faster and also provides a guarantee
+         that the codec will exist and will be valid.
+
+         ASTERISK-24604 #close
+         Reported by: Matt Jordan
+
+         Review: https://reviewboard.asterisk.org/r/4260/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429497 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 09:30 +0000 [01c4e76c4e]  Kevin Harwell <kharwell@digium.com>
+
+       * chan_pjsip: Race between channel answer and bridge setup when using direct media
+
+         When direct media is enabled and a pjsip channel is answered a race would occur
+         between the handling of the answer and bridge setup. Sometimes the media
+         negotiation would take place after the native bridge was setup. This resulted
+         in a NULL media address, which in turn resulted in Asterisk using its address
+         as the remote media address when sending a reinvite.  This patch makes the
+         chan_pjsip answer handler synchronous thus alleviating the race condition (the
+         bridge won't start setting things up until after it returns).
+
+         ASTERISK-24563 #close
+         Reported by: Steve Pitts
+         Review: https://reviewboard.asterisk.org/r/4257/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429477 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 09:00 +0000 [49386cf568]  David M. Lee <dlee@digium.com>
+
+       * Fix crash for sorcery misconfigs
+
+         res_pjsip_outbound_publish was missing the CHECK_PJSIP_MODULE_LOADED()
+         call in load_module, and would crash with a segfault if res_pjsip
+         declined to load.
+
+         Review: https://reviewboard.asterisk.org/r/4258/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429457 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 08:12 +0000 [3b0c40f337]  Kinsey Moore <kmoore@digium.com>
+
+       * PJSIP: Allow use of 'inactive' streams for hold
+
+         This allows use of the 'inactive' stream direction identifier to be
+         used for hold where 'sendonly' is normally used. Some Seimens phones
+         use 'inactive' and this change allows music on hold to operate
+         properly.
+
+         Review: https://reviewboard.asterisk.org/r/4252/
+         Reported by: Steve Pitts
+         ........
+
+         Merged revisions 429432 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429433 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 08:03 +0000 [15af40180a]  Kinsey Moore <kmoore@digium.com>
+
+       * Sorcery: Log when old config remains in use
+
+         This adds a log message notifying the user that a stale configuration
+         is in place upon reload when a config object fails to load. This
+         situation can end up causing confusion when the object failed to load
+         but exists from a previous config load especially when the old config
+         is significantly different from the new config.
+
+         Review: https://reviewboard.asterisk.org/r/4250/
+         Reported by: Thomas Thompson
+         ........
+
+         Merged revisions 429429 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429430 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 07:05 +0000 [0c9fbb449f]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_session: Delay sending BYE if a re-INVITE transaction is in progress.
+
+         Given the scenario where a PJSIP channel is in a native RTP bridge with direct
+         media and the channel is then hung up the code will currently re-INVITE the channel
+         back to Asterisk and send a BYE at the same time. Many SIP implementations dislike
+         this greatly.
+
+         This change makes it so that if a re-INVITE transaction is in progress the BYE
+         is queued to occur after the completion of the transaction (be it through normal
+         means or a timeout).
+
+         Review: https://reviewboard.asterisk.org/r/4248/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429409 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-12 06:31 +0000 [61fe4f10d2]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_session: Fix issue where a declined media stream in a re-INVITE would fail SDP negotiation.
+
+         In the past the SDP negotiation within res_pjsip_session was made more tolerant of
+         certain situations. The only case where SDP negotiation will fail is when a major
+         error occurs during negotiation. Receiving an already declined media stream is
+         not considered a major error.
+
+         When producing the local SDP the logic took this into account so on the initial INVITE
+         the declined media stream did not cause an SDP negotiation failure. Unfortunately
+         the logic for handling media streams with a handler did not mirror this logic and
+         considered an already declined media stream an error and thus failed the SDP
+         negotiation.
+
+         This change makes the logic between both situations match so only under major
+         errors will the SDP negotiation fail.
+
+         ASTERISK-24607 #close
+         Reported by: Matt Jordan
+
+         Review: https://reviewboard.asterisk.org/r/4254/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429407 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-11 14:31 +0000 [8237bd357d]  Kevin Harwell <kharwell@digium.com>
+
+       * ARI/AMI: Include language in standard channel snapshot output
+
+         The CHANGES verbiage for the "language" addition had been put under the wrong
+         release. This moves it to be under 13.1 to 13.2 changes.
+
+         ASTERISK-24553
+         Reported by: Matt Jordan
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429387 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-11 11:21 +0000 [2288f910ea]  Kinsey Moore <kmoore@digium.com>
+
+       * Recorded merge of revisions 429378 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+         ........
+         Fix incorrect patch applied in r429354
+
+         The patch that was applied was another pending patch. This swaps them out.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429379 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-11 07:56 +0000 [b7f7d045ac]  Kinsey Moore <kmoore@digium.com>
+
+       * Recorded merge of revisions 429354 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+         ........
+         Stasis: Update unittest for channel snapshots
+
+         This adjusts the unit test for channel snapshots to take the new
+         language key into account.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429355 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-11 07:49 +0000 [50f6517296]  Kinsey Moore <kmoore@digium.com>
+
+       * Stasis: Update unittest for channel snapshots
+
+         This adjusts the unit test for channel snapshots to take the new
+         language key into account.
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429352 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-10 09:42 +0000 [d4a05879d6]  Kevin Harwell <kharwell@digium.com>
+
+       * ARI/AMI: Include language in standard channel snapshot output
+
+         Adding information about including "language" in the standard channel snapshot
+         output to the CHANGES file. Note the actual source changes have already been
+         previously committed.
+
+         ASTERISK-24553
+         Reported by: Matt Jordan
+         ........
+
+         Merged revisions 429325 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429326 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-10 07:34 +0000 [fb768ec33a]  Joshua Colp <jcolp@digium.com>
+
+       * res_http_websocket: Fix crash due to double freeing memory when receiving a payload length of zero.
+
+         Frames with a payload length of 0 were incorrectly handled in res_http_websocket.
+         Provided a frame with a payload had been received prior it was possible for a double
+         free to occur. The realloc operation would succeed (thus freeing the payload) but be
+         treated as an error. When the session was then torn down the payload would be
+         freed again causing a crash. The read function now takes this into account.
+
+         This change also fixes assumptions made by users of res_http_websocket. There is no
+         guarantee that a frame received from it will be NULL terminated.
+
+         ASTERISK-24472 #close
+         Reported by: Badalian Vyacheslav
+
+         Review: https://reviewboard.asterisk.org/r/4220/
+         Review: https://reviewboard.asterisk.org/r/4219/
+         ........
+
+         Merged revisions 429270 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ........
+
+         Merged revisions 429272 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429273 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-10 07:14 +0000 [a220a08777]  Kinsey Moore <kmoore@digium.com>
+
+       * PJSIP: Fix assert on initial mass qualify
+
+         This fixes the MWI test regressions caused by r429127 and ensures that
+         contacts have non-zero qualify_frequency before attempting scheduling.
+         ........
+
+         Merged revisions 429245 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429246 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-09 14:46 +0000 [22a91bf698]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * core: avoid possible asterisk -r crash from long id
+
+         When connecting to the remote console, an id string
+         is first provided that consts of the hostname, pid,
+         and version.  This is parsed by the remote instance
+         using a buffer that may be too short, and can allow
+         a buffer overrun because it is not terminated. This
+         patch adds termination and a larger buffer.
+
+         Review: https://reviewboard.asterisk.org/r/4182/
+
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429223 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-09 14:19 +0000 [2f21f85c37]  Kevin Harwell <kharwell@digium.com>
+
+       * ARI/AMI: Include language in standard channel snapshot output
+
+         The channel "language" was already part of a channel snapshot, however is was
+         not sent out over AMI or ARI. This patch makes it so the channel "language" is
+         included in the appropriate AMI or ARI events.
+
+         ASTERISK-24553 #close
+         Reported by: Matt Jordan
+         Review: https://reviewboard.asterisk.org/r/4245/
+         ........
+
+         Merged revisions 429204 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429206 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-09 14:02 +0000 [525c823b4b]  Kevin Harwell <kharwell@digium.com>
+
+       * Direct Media calls within private network sometimes get one way audio
+
+         When endpoints with direct_media enabled, behind a firewall (Asterisk on a
+         separate network) and were bridged sometimes Asterisk would send the ip
+         address of the firewall in the sdp to one of the phones in the reinvite
+         resulting in one way audio. When sending the reinvite Asterisk will retrieve
+         the media address from the associated rtp instance, but if frames were being
+         read this can be overwritten with another address (in this case the
+         firewall's).  This patch ensures that Asterisk uses the original device
+         address when using direct media.
+
+         ASTERISK-24563
+         Reported by: Steve Pitts
+         Review: https://reviewboard.asterisk.org/r/4216/
+         ........
+
+         Merged revisions 429195 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429196 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-09 12:35 +0000 [664067e318]  Kevin Harwell <kharwell@digium.com>
+
+       * res_pjsip_outbound_publish: stack overflow when using non-default sorcery wizard
+
+         When using a non-default sorcery wizard (in this instance realtime) for outbound
+         publishes Asterisk will crash after a stack overflow occurs due to the code
+         infinitely recursing.  The fix entails removing the outbound publish state
+         dependency from the outbound publish sorcery object and instead keeping an in
+         memory container that can be used to lookup the state when needed.
+
+         ASTERISK-24514 #close
+         Reported by: Mark Michelson
+         Review: https://reviewboard.asterisk.org/r/4178/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429175 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-09 09:44 +0000 [74b032bb03]  Joshua Colp <jcolp@digium.com>
+
+       * ari: Add support for specifying an originator channel when originating.
+
+         If an originator channel is specified when originating a channel the linked ID
+         of it will be applied to the newly originated outgoing channel. This allows
+         an association to be made between the two so it is known that the originator
+         has dialed the originated channel.
+
+         ASTERISK-24552 #close
+         Reported by: Matt Jordan
+
+         Review: https://reviewboard.asterisk.org/r/4243/
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429153 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2014-12-09 08:00 +0000 [64581d894d]  Kinsey Moore <kmoore@digium.com>
+
+       * PJSIP: Stagger outbound qualifies
+
+         This change staggers initiation of outbound qualify (OPTIONS) attempts
+         to reduce instantaneous server load and prevent network congestion.
+
+         Review: https://reviewboard.asterisk.org/r/4246/
+         ASTERISK-24342 #close
+         Reported by: Richard Mudgett
+         ........
+
+         Merged revisions 429127 from http://svn.asterisk.org/svn/asterisk/branches/12
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@429128 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2016-04-27 16:18 +0000  Asterisk Development Team <asteriskteam@digium.com>
+
+       * asterisk certified/13.1-cert7 Released.
+
+2016-04-27 11:17 +0000 [ac50d4de09]  Kevin Harwell <kharwell@digium.com>
+
+       * Release summaries: Remove previous versions
+
+2016-04-27 11:17 +0000 [ae138f07b9]  Kevin Harwell <kharwell@digium.com>
+
+       * .version: Update for certified/13.1-cert7
+
+2016-04-27 11:17 +0000 [6887653e56]  Kevin Harwell <kharwell@digium.com>
+
+       * .lastclean: Update for certified/13.1-cert7
+
+2016-04-27 11:17 +0000 [f1dd08373d]  Kevin Harwell <kharwell@digium.com>
+
+       * realtime: Add database scripts for certified/13.1-cert7
+
+2016-04-26 05:48 +0000 [5baf815293]  Joshua Colp <jcolp@digium.com>
+
+       * app_queue: Fix crash when unloading module.
+
+         When unloading the app_queue module the members in each queue are
+         destroyed and as part of this they are removed from the pending
+         members container. Unfortunately a crash would occur as the container
+         was destroyed before the members were removed.
+
+         This change tweaks ordering so the container destruction occurs
+         after the members are destroyed.
+
+         ASTERISK-16115
+
+         Change-Id: I48c728668c55aee3d05b751a5d450fb57e87f44b
+
+2016-04-21 14:23 +0000 [1f24863e0c]  Kevin Harwell <kharwell@digium.com>
+
+       * app_queue: queue members can receive multiple calls
+
+         It was possible for a queue member that is a member of at least 2 or more
+         queues to receive mulitiple calls at the same time. This happened because
+         of a race between when a member was being rung and when the device state
+         notified the other queue(s) member object of the state change.
+
+         This patch makes it so when a queue member is being rung it gets added to
+         a global pool of queue members. If that same member is tried again, e.g.
+         from another queue, and it is found to already exist in the pending member
+         container then it will not ring that member.
+
+         ASTERISK-16115 #close
+
+         Change-Id: I546dd474776d158c2b6be44205353dee5bac7e48
+
+2016-04-22 17:53 +0000 [a2249031ef]  gtjoseph <gjoseph@digium.com>
+
+       * res_agi:  Prevent run_agi from eating frames it shouldn't
+
+         The run_agi function is eating control frames when it shouldn't be. This is
+         causing issues when an AGI is run from CONNECTED_LINE_SEND_SUB in a blond
+         transfer.
+
+         Alice calls Bob. Bob attended transfers to Charlie but hangs up before Charlie
+         answers.
+
+         Alice gets the COLP UPDATE indicating Charlie but Charlie never gets an UPDATE
+         and is left thinking he's connected to Bob.
+
+         In this case, when CONNECTED_LINE_SEND_SUB runs on Alice's channel and it calls
+         an AGI, the extra eaten frames prevent CONNECTED_LINE_SEND_SUB from running on
+         Charlie's channel.
+
+         The fix was to accumulate deferrable frames in the "forever" loop instead of
+         dropping them, and re-queue them just before running the actual agi command
+         or exiting.
+
+         ASTERISK-25951 #close
+
+         Change-Id: I0f4bbfd72fc1126c2aaba41da3233a33d0433645
+
+2016-04-15 14:36 +0000 [c2158c01c2]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_stasis: Handle re-enter stasis bridge with swap channel.
+
+         We lose the fact that there is a swap channel if there is one.  We
+         currently wind up rejoining the stasis bridge as a normal join after the
+         swap channel has already been kicked from the bridge.
+
+         This patch preserves the swap channel so the AMI/ARI events can note that
+         the channel joining the bridge is swapping with another channel.  Another
+         benefit to swaqpping in one operation is if there are any channels that
+         get lonely (MOH, bridge playback, and bridge record channels).  The lonely
+         channels won't leave before the joining channel has a chance to come back
+         in under stasis if the swap channel is the only reason the lonely channels
+         are staying in the bridge.
+
+         ASTERISK-25947 #close
+         Reported by: Richard Mudgett
+
+         ASTERISK-24649
+         Reported by: John Bigelow
+
+         ASTERISK-24782
+         Reported by: John Bigelow
+
+         Change-Id: If37ea508831d1fed6dbfac2f191c638fc0a850ee
+
+2016-04-19 16:58 +0000 [4bdc54f66c]  Richard Mudgett <rmudgett@digium.com>
+
+       * bridge: Hold off more than one imparting channel at a time.
+
+         An earlier patch blocked the ast_bridge_impart() call until the channel
+         either entered the target bridge or it failed.  Unfortuantely, if the
+         target bridge is stasis and the imprted channel is not a stasis channel,
+         stasis bounces the channel out of the bridge to come back into the bridge
+         as a proper stasis channel.  When the channel is bounced out, that
+         released the block on ast_bridge_impart() to continue.  If the impart was
+         a result of a transfer, then it became a race to see if the swap channel
+         would get hung up before the imparted channel could come back into the
+         stasis bridge.  If the imparted channel won then everything is fine.  If
+         the swap channel gets hung up first then the transfer will fail because
+         the swap channel is leaving the bridge.
+
+         * Allow a chain of ast_bridge_impart()'s to happen before any are
+         unblocked to prevent the race condition described above.  When the channel
+         finally joins the bridge or completely fails to join the bridge then the
+         ast_bridge_impart() instances are unblocked.
+
+         ASTERISK-25947
+         Reported by: Richard Mudgett
+
+         ASTERISK-24649
+         Reported by: John Bigelow
+
+         ASTERISK-24782
+         Reported by: John Bigelow
+
+         Change-Id: I8fef369171f295f580024ab4971e95c799d0dde1
+
+2015-07-08 14:56 +0000 [1fa5565fc4]  Kevin Harwell <kharwell@digium.com>
+
+       * bridge.c: Fixed race condition during attended transfer
+
+         During an attended transfer a thread is started that handles imparting the
+         bridge channel. From the start of the thread to when the bridge channel is
+         ready exists a gap that can potentially cause problems (for instance, the
+         channel being swapped is hung up before the replacement channel enters the
+         bridge thus stopping the transfer). This patch adds a condition that waits
+         for the impart thread to get to a point of acceptable readiness before
+         allowing the initiating thread to continue.
+
+         ASTERISK-24782
+         Reported by: John Bigelow
+
+         This patch is a remedial cherry-pick from v13.
+
+         Change-Id: I08fe33a2560da924e676df55b181e46fca604577
+
+2015-06-22 15:11 +0000 [ac53e65cb5]  Kevin Harwell <kharwell@digium.com>
+
+       * bridge.c: Hangup attended transfer target if bridged
+
+         After completing an attended transfer the transfer target channel was not being
+         hung up after leaving the bridge. Added an explicit softhangup to hangup said
+         channel, but only if it was previously bridged.
+
+         ASTERISK-24782 #close
+         Reported by: John Bigelow
+
+         This patch is a remedial cherry-pick from v13.
+
+         Change-Id: Idde9543d56842369384a5e8c00d72a22bbc39ada
+
+2015-04-07 11:40 +0000 [c8e21c4eb9]  Kevin Harwell <kharwell@digium.com>
+
+       * bridge.c: Hangup attended transfer target after it has been swapped out
+
+         After completing an attended transfer the transfer target channel (the one that
+         gets swapped out) was not being hung up after leaving the bridge. This resulted
+         in a channel possibly being left around. Added an explicit softhangup for the
+         channel in question after the transfer is successfully completed in order to
+         make sure the channel is hung up.
+
+         ASTERISK-24782 #close
+         Reported by: John Bigelow
+         Review: https://reviewboard.asterisk.org/r/4575/
+
+         This patch is a remedial cherry-pick from v13.
+
+         Change-Id: I26cc0c207acf74ade93e6567febf7b9776452058
+
+2015-01-29 17:02 +0000 [b81052d194]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * stasis transfer: fix stasis bridge push race part two
+
+         When swapping a Local channel in place of one already
+         in a bridge (to complete a bridge attended transfer),
+         the channel that was swapped out can actually be hung
+         up before the stasis bridge push callback executes on
+         the independant transfer thread.  This results in the
+         stasis app loop dropping out and removing the control
+         that has the the app name which the local replacement
+         channel needs so it can re-enter stasis.
+
+         To avoid this race condition a new push_peek callback
+         has been added, and called from the ast_bridge_impart
+         thread before it launches the independant thread that
+         will complete the transfer.  Now the stasis push_peek
+         callback can copy the stasis app name before the swap
+         channel can hang up.
+
+         ASTERISK-24649
+         Review: https://reviewboard.asterisk.org/r/4382/
+
+         This patch is a remedial cherry-pick from v13.
+
+         Change-Id: I307c3b506af5af80ec506f73e8b78a91d79999e0
+
+2015-01-22 12:09 +0000 [a38d044e0a]  Scott Griepentrog <sgriepentrog@digium.com>
+
+       * stasis transfer: fix a race condition on stasis bridge push
+
+         After a bridge transfer completes where a local replacement
+         channel is used, a stasis transfer message with the details
+         of the transfer is sent.  This is processed by stasis which
+         then sets the stasis app name and replaced channel snapshot
+         on the replacement channel.
+
+         However, since a separate thread was already started to run
+         stasis on the new replacement channel, a race was on to see
+         if the message processing would be completed before the app
+         name was needed, otherwise the channel would be hung up.
+
+         This change moves the calls used to set the stasis app name
+         and the replace snapshot to the bridge_stasis_push function
+         callback from the bridge transfer logic, allowing the steps
+         to be completed earlier and more deterministically, and the
+         race elimianted.
+
+         NOTE: the swap channel parameter to bridge_stasis_push (and
+         thus all bridge push callbacks) must always be present when
+         performing a swap with another channel.
+
+         ASTERISK-24649 #close
+         Reported by: John Bigelow
+         Review: https://reviewboard.asterisk.org/r/4341/
+
+         This patch is a remedial cherry-pick from v13.
+
+         Change-Id: I35c98989786f74cdd7940677002a1a88d34bd2dd
+
+2015-01-22 13:24 +0000 [bc0a8c7bac]  Richard Mudgett <rmudgett@digium.com>
+
+       * Bridge core: Pass a ref with the swap channel when joining a bridge.
+
+         When code imparts a channel into a bridge to swap with another channel, a
+         ref needs to be held on the swap channel to ensure that it cannot
+         dissapear before finding it in the bridge.
+
+         * The ast_bridge_join() swap channel parameter now always steals a ref for
+         the swap channel.  This is the only change to the bridge framework's
+         public API semantics.
+
+         * bridge_channel_internal_join() now requires the bridge_channel->swap
+         channel to pass in a ref.
+
+         ASTERISK-24649
+         Reported by: John Bigelow
+
+         Review: https://reviewboard.asterisk.org/r/4354/
+
+         This patch is a remedial cherry-pick from v13.
+
+         Change-Id: I73fdf13a3a1042566281c7d06d6e83e2ef87c120
+
+2016-04-19 17:52 +0000 [1feead5760]  gtjoseph <george.joseph@fairview5.com>
+
+       * res_pjsip_callerid:  Clear out display name if id->name is not valid
+
+         When create_new_id_hdr creates a new RPID or PAI header, it starts by cloning
+         the From header, then it overwrites the display name and uri from the channel's
+         connected.id.  If the connected.id.name wasn't valid, create_new_id_hdr was
+         leaving the display name from the From header in the new RPID or PAI header.
+         On an attended transfer where the originator had a caller id number set but not
+         a display name, the re-INVITE to the final transferee had the number of the
+         originator but the display name of the transferer.
+
+         Added a check to clear out the display name in the new header if
+         connected.id.name was invalid.
+
+         ASTERISK-25942 #close
+
+         Change-Id: I60b4bf7a7ece9b7425eba74151c0b4969cd2738b
+
+2016-04-20 10:48 +0000  Asterisk Development Team <asteriskteam@digium.com>
+
+       * asterisk certified/13.1-cert6 Released.
+
+2016-04-20 05:48 +0000 [5700190dba]  Joshua Colp <jcolp@digium.com>
+
+       * Release summaries: Remove previous versions
+
+2016-04-20 05:48 +0000 [21dfb6be03]  Joshua Colp <jcolp@digium.com>
+
+       * .version: Update for certified/13.1-cert6
+
+2016-04-20 05:48 +0000 [58cff8e219]  Joshua Colp <jcolp@digium.com>
+
+       * .lastclean: Update for certified/13.1-cert6
+
+2016-04-20 05:48 +0000 [a98618d0ed]  Joshua Colp <jcolp@digium.com>
+
+       * realtime: Add database scripts for certified/13.1-cert6
+
+2016-04-18 12:12 +0000 [5d390bc4c6]  Mark Michelson <mmichelson@digium.com>
+
+       * PJSIP: Remove PJSIP parsing functions from uri length validation.
+
+         The PJSIP parsing functions provide a nice concise way to check the
+         length of a hostname in a SIP URI. The problem is that in order to use
+         those parsing functions, it's required to use them from a thread that
+         has registered with PJLib.
+
+         On startup, when parsing AOR configuration, the permanent URI handler
+         may not be run from a PJLib-registered thread. Specifically, this could
+         happen when Asterisk was started in daemon mode rather than
+         console-mode. If PJProject were compiled with assertions enabled, then
+         this would cause Asterisk to crash on startup.
+
+         The solution presented here is to do our own parsing of the contact URI
+         in order to ensure that the hostname in the URI is not too long. The
+         parsing does not attempt to perform a full SIP URI parse/validation,
+         since the hostname in the URI is what is important.
+
+         ASTERISK-25928 #close
+         Reported by Joshua Colp
+
+         Change-Id: Ic3d6c20ff3502507c17244a8b7e2ca761dc7fb60
+
+2016-04-18 17:00 +0000 [204861b305]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_registrar: Fix bad memory-ness with user_agent.
+
+         Recent changes to the PJSIP registrar resulted in tests failing due to
+         missing AOR_CONTACT_ADDED test events. The reason for this was that the
+         user_agent string had junk values in it, resulting in being unable to
+         generate the event.
+
+         I'm going to be honest here, I have no idea why this was happening. Here
+         are the steps needed for the user_agent variable to get messed up:
+         * REGISTER is received
+         * First contact in the REGISTER results in a contact being removed
+         * Second contact in the REGISTER results in a contact being added
+         * The contact, AOR, expiration, and user agent all have to be passed as
+           format parameters to the creation of a string. Any subset of those
+           parameters would not be enough to cause the problem.
+
+         Looking into what was happening, the thing that struck me as odd was
+         that the user_agent variable was meant to be set to the value of the
+         User-Agent SIP header in the incoming REGISTER. However, when removing a
+         contact, the user_agent variable would be set (via ast_strdupa inside a
+         loop) to the stored contact's user_agent. This means that the
+         user_agent's value would be incorrect when attempting to process further
+         contacts in the incoming REGISTER.
+
+         The fix here is to use a different variable for the stored user agent
+         when removing a contact. Correcting the behavior to be correct also
+         means the memory usage is less weird, and the issue no longer occurs.
+
+         ASTERISK-25929 #close
+         Reported by Joshua Colp
+
+         Change-Id: I7cd24c86a38dec69ebcc94150614bc25f46b8c08
+
+2016-04-18 13:41 +0000 [08b8a5eea9]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_transport_management: Allow unload to occur.
+
+         At shutdown it is possible for modules to be unloaded that wouldn't
+         normally be unloaded. This allows the environment to be cleaned up.
+
+         The res_pjsip_transport_management module did not have the unload
+         logic in it to clean itself up causing the res_pjsip module to not
+         get unloaded. As a result the res_pjsip monitor thread kept going
+         processing traffic and timers when it shouldn't.
+
+         Change-Id: Ic8cadee131e3b2c436a81d3ae8bb5775999ae00a
+
+2016-04-14 20:22 +0000  Asterisk Development Team <asteriskteam@digium.com>
+
+       * asterisk certified/13.1-cert5 Released.
+
+2016-04-14 15:22 +0000 [9edfb2c1b8]  Kevin Harwell <kharwell@digium.com>
+
+       * Release summaries: Remove previous versions
+
+2016-04-14 15:22 +0000 [ec42f1d5e6]  Kevin Harwell <kharwell@digium.com>
+
+       * .version: Update for certified/13.1-cert5
+
+2016-04-14 15:22 +0000 [5fca21d105]  Kevin Harwell <kharwell@digium.com>
+
+       * .lastclean: Update for certified/13.1-cert5
+
+2016-04-14 15:22 +0000 [445e8b9dfc]  Kevin Harwell <kharwell@digium.com>
+
+       * realtime: Add database scripts for certified/13.1-cert5
+
+2016-04-14 13:49 +0000 [b66c7367ec]  Mark Michelson <mmichelson@digium.com>
+
+       * transport management: Register thread with PJProject.
+
+         The scheduler thread that kills idle TCP connections was not registering
+         with PJProject properly and causing assertions if PJProject was built in
+         debug mode.
+
+         This change registers the thread with PJProject the first time that the
+         scheduler callback executes.
+
+         AST-2016-005
+
+         Change-Id: I5f7a37e2c80726a99afe9dc2a4a69bdedf661283
+
+2016-03-08 12:12 +0000 [023d2936ba]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_transport_management: Kill idle TCP connections.
+
+         "Idle" here means that someone connects to us and does not send a SIP
+         request. PJProject will not automatically time out such connections, so
+         it's up to Asterisk to do it instead.
+
+         When we receive an incoming TCP connection, we will start a timer
+         (equivalent to transaction timer D) waiting to receive an incoming
+         request. If we do not receive a request in that timeframe, then we will
+         shut down the TCP connection.
+
+         ASTERISK-25796 #close
+         Reported by George Joseph
+
+         AST-2016-005
+
+         Change-Id: I7b0d303e5d140d0ccaf2f7af562071e3d1130ac6
+
+2016-03-08 10:52 +0000 [0b1fe6b0ee]  Mark Michelson <mmichelson@digium.com>
+
+       * Rename res_pjsip_keepalive res_pjsip_transport_management
+
+         ASTERISK-25796
+         Reported by George Joseph
+
+         AST-2016-005
+
+         Change-Id: Id322a05f927392293570599730050bc677d99433
+
+2016-04-14 07:20 +0000 [e2e8699d00]  Mark Michelson <mmichelson@digium.com>
+
+       * AST-2016-004: Fix crash on REGISTER with long URI.
+
+         Due to some ignored return values, Asterisk could crash if processing an
+         incoming REGISTER whose contact URI was above a certain length.
+
+         ASTERISK-25707 #close
+         Reported by George Joseph
+
+         Patches:
+             0001-res_pjsip-Validate-that-URIs-don-t-exceed-pjproject-.patch
+
+         AST-2016-004
+
+         Change-Id: Ic4f5e49f1a83fef4951ffeeef8f443a7f6ac15eb
+
+2016-04-05 14:23 +0000 [967bb9eaf7]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip: Handle deferred SDP hold/unhold properly.
+
+         Some SIP devices indicate hold/unhold using deferred SDP reinvites. In
+         other words, they provide no SDP in the reinvite.
+
+         A typical transaction that starts hold might look something like this:
+
+         * Device sends reinvite with no SDP
+         * Asterisk sends 200 OK with SDP indicating sendrecv on streams.
+         * Device sends ACK with SDP indicating sendonly on streams.
+
+         At this point, PJMedia's SDP negotiator saves Asterisk's local state as
+         being recvonly.
+
+         Now, when the device attempts to unhold, it again uses a deferred SDP
+         reinvite, so we end up doing the following:
+
+         * Device sends reinvite with no SDP
+         * Asterisk sends 200 OK with SDP indicating recvonly on streams
+         * Device sends ACK with SDP indicating sendonly on streams
+
+         The problem here is that Asterisk offered recvonly, and by RFC 3264's
+         rules, if an offer is recvonly, the answer has to be sendonly. The
+         result is that the device is not taken off hold.
+
+         What is supposed to happen is that Asterisk should indicate sendrecv in
+         the 200 OK that it sends. This way, the device has the freedom to
+         indicate sendrecv if it wants the stream taken off hold, or it can
+         continue to respond with sendonly if the purpose of the reinvite was
+         something else (like a session timer refresher).
+
+         The fix here is to alter the SDP negotiator's state when we receive a
+         reinvite with no SDP. If the negotiator's state is currently in the
+         recvonly or inactive state, then we alter our local state to be
+         sendrecv. This way, we allow the device to indicate the stream state as
+         desired.
+
+         ASTERISK-25854 #close
+         Reported by Robert McGilvray
+
+         Change-Id: I7615737276165eef3a593038413d936247dcc6ed
+
+2016-03-28 18:10 +0000 [6739081385]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_stasis: Fix crash on a hanging up channel.
+
+         * Give the struct stasis_app_control ao2 object a ref to the channel held
+         in the object.  Now the channel will still be around if a thread needs to
+         post a stasis message instead of crash because the topic was destroyed.
+
+         * Moved stopping any lingering silence generator out of the struct
+         stasis_app_control destructor and made it a part of exiting the Stasis
+         application.  Who knows which thread the destructor will be called under
+         so it cannot affect the channel's silence generator.  Not only was the
+         channel unprotected when the silence generator was stopped, stasis may no
+         longer even control the channel.
+
+         ASTERISK-25882
+
+         Change-Id: I21728161b5fe638cef7976fa36a605043a7497e4
+
+2016-02-26 18:54 +0000 [a06d6811b6]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip_send_to_voicemail.c: Allow either quoted or not send_to_vm reason.
+
+         Change-Id: Id6350b3c7d4ec8df7ec89863566645e2b0f441fd
+
+2016-02-15 12:52 +0000 [b7b193a430]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip_pubsub: Move where the subscription is stored to after initialized.
+
+         A problem arose when testing the AMI subscription listing actions where it
+         was possible for a subscription that had not been fully initialized to be
+         listed. This was problematic as the underlying listing code would crash.
+
+         This change makes it so the subscription tree is fully set up before it is
+         added to the list of subscriptions. This ensures that when the listing actions
+         get the subscription it is valid.
+
+         ASTERISK-25738 #close
+
+         Change-Id: Iace2b13641c31bbcc0d43a39f99aba1f340c0f48
+         (cherry picked from commit 1c4f2a920db173412b38aab785ba22c2cc489f89)
+
+2016-02-11 18:31 +0000  Asterisk Development Team <asteriskteam@digium.com>
+
+       * asterisk certified/13.1-cert4 Released.
+
+2016-02-11 12:31 +0000 [7df413fbb3]  Kevin Harwell <kharwell@lunkwill.digium.internal>
+
+       * Release summaries: Remove previous versions
+
+2016-02-11 12:31 +0000 [1423445b23]  Kevin Harwell <kharwell@lunkwill>
+
+       * .version: Update for certified/13.1-cert4
+
+2016-02-11 12:31 +0000 [9a8b627f26]  Kevin Harwell <kharwell@lunkwill>
+
+       * .lastclean: Update for certified/13.1-cert4
+
+2016-02-11 12:31 +0000 [d424452711]  Kevin Harwell <kharwell@lunkwill>
+
+       * realtime: Add database scripts for certified/13.1-cert4
+
+2016-02-04 16:17 +0000 [59ccc89054]  Mark Michelson <mmichelson@digium.com>
+
+       * Check for OpenSSL defines before trying to use them.
+
+         The SSL_OP_NO_TLSv1_1 and SSL_OP_NO_TLSv1_2 defines did not exist prior
+         to OpenSSL version 1.0.1. A recent commit attempts to, by default, set
+         these options, which can cause problems on systems with older OpenSSL
+         installations.
+
+         This commit adds a configure script check for those defines and will not
+         attempt to make use of those if they do not exist. We will print a
+         warning urging the user to upgrade their OpenSSL installation if those
+         defines are not present.
+
+         Change-Id: I6a2eb9a43fd0738b404d8f6f2cf4b5c22d9d752d
+
+2016-02-04 11:39 +0000 [bffd954a63]  Mark Michelson <mmichelson@digium.com>
+
+       * res_stasis_device_state: Fix refcounting error.
+
+         Device state subscription lifetimes were governed by when the
+         subscription was established and unsubscribed from. However, it is
+         possible that at the time of unsubscription, there could be device state
+         events still in flight. When those device state events occur, the device
+         state callback could attempt to dereference a freed pointer. Crash.
+
+         This change ensures that the lifetime of the device state subscription
+         does not end until the underlying stasis subscription has confirmed that
+         its final message has been sent.
+
+         Change-Id: I25a0f1472894c1a562252fb7129671478e25e9b2
+
+2016-01-25 15:48 +0000 [0eb43ea9ee]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_confbridge: Make non-admin users join a muted conference muted.
+
+         ASTERISK-20987 #close
+         Reported by: hristo
+
+         Change-Id: Ic61a2b524ab3a4cfadf227fc6b3506527bc03f38
+
+2016-02-03 22:14 +0000  Asterisk Development Team <asteriskteam@digium.com>
+
+       * asterisk certified/13.1-cert3 Released.
+
+2016-02-03 16:05 +0000 [2142c74a02]  Kevin Harwell <kharwell@lunkwill>
+
+       * .version: Update for certified/13.1-cert3
+
+2016-02-03 16:04 +0000 [07c95d33bd]  Kevin Harwell <kharwell@lunkwill>
+
+       * .lastclean: Update for certified/13.1-cert3
+
+2016-02-03 16:04 +0000 [ce314be09d]  Kevin Harwell <kharwell@lunkwill>
+
+       * realtime: Add database scripts for certified/13.1-cert3
+
+2016-02-03 12:05 +0000 [b50d584022]  Joshua Colp <jcolp@digium.com>
+
+       * AST-2016-001 http: Provide greater control of TLS and set modern defaults.
+
+         This change exposes the configuration of various aspects of the TLS
+         support and sets the default to the modern standards.
+
+         The TLS cipher is now set to the best values according to the
+         Mozilla OpSec team, different TLS versions can now be disabled, and
+         the cipher order can be forced to be that of the server instead of
+         the client.
+
+         ASTERISK-24972 #close
+
+         Change-Id: I8635470e722ce6d47951a5045ae9ef348271d395
+2015-12-07 12:46 +0000 [4fe2aa9a20]  Richard Mudgett <rmudgett@digium.com>
+
+       * AST-2016-003 udptl.c: Fix uninitialized values.
+
+         Sending UDPTL packets to Asterisk with the right amount of missing
+         sequence numbers and enough redundant 0-length IFP packets, can make
+         Asterisk crash.
+
+         ASTERISK-25603 #close
+         Reported by: Walter Doekes
+
+         ASTERISK-25742 #close
+         Reported by: Torrey Searle
+
+         Change-Id: I97df8375041be986f3f266ac1946a538023a5255
+2015-09-28 17:07 +0000 [c7ab026196]  Richard Mudgett <rmudgett@digium.com>
+
+       * AST-2016-002 chan_sip.c: Fix retransmission timeout integer overflow.
+
+         Setting the sip.conf timert1 value to a value higher than 1245 can cause
+         an integer overflow and result in large retransmit timeout times.  These
+         large timeout times hold system file descriptors hostage and can cause the
+         system to run out of file descriptors.
+
+         NOTE: The default sip.conf timert1 value is 500 which does not expose the
+         vulnerability.
+
+         * The overflow is now detected and the previous timeout time is
+         calculated.
+
+         ASTERISK-25397 #close
+         Reported by: Alexander Traud
+
+         Change-Id: Ia7231f2f415af1cbf90b923e001b9219cff46290
+2016-01-25 09:35 +0000 [7d581b32e9]  Joshua Colp <jcolp@digium.com>
+
+       * config: Allow options to register when documentation is unavailable.
+
+         The config options framework is strict in that configuration options must
+         be documented unless XML documentation support is not available. In
+         practice this is useful as it ensures documentation exists however in
+         off-nominal cases this can cause strange problems.
+
+         If it is expected that a config option has a non-zero or non-empty
+         default value but the config option documentation is unavailable
+         this reasonable expectation will not be met. This can cause obscure
+         crashes and weirdness depending on how the code handles it.
+
+         This change tweaks the behavior to ensure that the config option
+         is still allowed to register, apply default values, and be set when
+         devmode is not enabled. If devmode is enabled then the option can
+         NOT be set.
+
+         This also does not remove the initial documentation error message that
+         is output on load when registering the configuration option.
+
+         ASTERISK-25725 #close
+
+         Change-Id: Iec42fca6b35f31326c33fcdc25473f6fd7bc8af8
+         (cherry picked from commit f22074e5d9ed1882be976299311b8e093d25e1da)
+
+2016-01-25 16:51 +0000 [22eb1b48c0]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_pubsub: Prevent crash from AMI command on freed subscription.
+
+         A test recently uncovered that running an ill-timed AMI command to show
+         inbound subscriptions could cause a crash since Asterisk will try to
+         operate on a freed subscription.
+
+         The fix for this is to remove the subscription tree from the list of
+         subscriptions at the time that we are sending our final NOTIFY request
+         out. This way, as the subscription is in the process of dying, it is
+         inaccessible from AMI.
+
+         Change-Id: Ic0239003d8d73e04c47c12dd2a7e23867e5b5b23
+         (cherry picked from commit b073244c511f9634de57ea401ab9dbebcf2390e8)
+
+2016-01-19 18:20 +0000 [826ff1d7a3]  Richard Mudgett <rmudgett@digium.com>
+
+       * res/res_pjsip/presence_xml.c: Add missing 2nd call presence state case.
+
+         ASTERISK-25712 #close
+         Reported by: Richard Mudgett
+
+         Change-Id: I70634df24f8c6c3a2c66c45af61d021e4999253f
+
+2016-01-14 14:42 +0000 [6e18a60a47]  Kevin Harwell <kharwell@digium.com>
+
+       * bridge_basic: don't cache xferfailsound during an attended transfer
+
+         The xferfailsound was read from the channel at the beginning of the transfer,
+         and that value is "cached" for the duration of the transfer. Therefore, changing
+         the xferfailsound on the channel using the FEATURE() dialplan function does
+         nothing once the transfer is under way.
+
+         This makes it so the transfer code instead gets the xferfailsound configuration
+         options from the channel when it is actually going to be used.
+
+         This patch also fixes a potential memory leak of the props object as well as
+         making sure the condition variable gets initialized before being destroyed.
+
+         ASTERISK-25696 #close
+
+         Change-Id: Ic726b0f54ef588bd9c9c67f4b0e4d787934f85e4
+
+2015-12-28 14:02 +0000 [f63fb0e337]  Joshua Colp <jcolp@digium.com>
+
+       * test_time: Provide a timeout when waiting.
+
+         The test_timezone_watch unit test is written to expect a
+         condition to be signaled when the inotify daemon thread runs.
+         There exists a small window where the test_timezone_watch
+         thread can signal the inotify daemon thread while it is not
+         reading on the underlying file descriptor. If this occurs
+         the test_timezone_watch thread will wait indefinitely for a
+         signal that will never arrive.
+
+         This change adds a timeout to the condition so it will return
+         regardless after a period of time.
+
+         Change-Id: Ifed981879df6de3d93acd3ee0a70f92546517390
+         (cherry picked from commit c8499b8d5adc805efadb91b483d9d987f62891ff)
+
+2016-01-12 11:14 +0000 [def98bb996]  Joshua Colp <jcolp@digium.com>
+
+       * app: Queue hangup if channel is hung up during sub or macro execution.
+
+         This issue was exposed when executing a connected line subroutine.
+         When connected or redirected subroutines or macros are executed it is
+         expected that the underlying applications and logic invoked are fast
+         and do not consume frames. In practice this constraint is not enforced
+         and if not adhered to will cause channels to continue when they shouldn't.
+         This is because each caller of the connected or redirected logic does not
+         check whether the channel has been hung up on return. As a result the
+         the hung up channel continues.
+
+         This change makes it so when the API to execute a subroutine or
+         macro is invoked the channel is checked to determine if it has hung up.
+         If it has then a hangup is queued again so the caller will see it
+         and stop.
+
+         ASTERISK-25690 #close
+
+         Change-Id: I1f9a8ceb1487df0389f0d346ce0f6dcbcaf476ea
+
+2016-01-08 15:22 +0000 [bb29802615]  Kevin Harwell <kharwell@digium.com>
+
+       * pbx: Deadlock between contexts container and context_merge locks
+
+         Recent changes (ASTERISK-25394 commit 2bd27d12223fe33b58c453965ed5c6ed3af7c4f5)
+         introduced the possibility of a deadlock. Due to the mentioned modifications
+         ast_change_hints now needs to keep both merge/delete and state callbacks from
+         occurring while it executes. Unfortunately, sometimes ast_change_hints can be
+         called with the contexts container locked. When this happens it's possible for
+         another thread to grab the context_merge_lock before the thread calling into
+         ast_change_hints does and then try to obtain the contexts container lock. This
+         of course causes a deadlock between the two threads. The thread calling into
+         ast_change_hints waits for the other thread to release context_merge_lock and
+         the other thread is waiting on that one to release the contexts container lock.
+
+         Unfortunately, there is not a great way to fix this problem. When hints change,
+         the subsequent state callbacks cannot run at the same time as a merge/delete,
+         nor when the usual state callbacks do. This patch alleviates the problem by
+         having those particular callbacks (the ones run after a hint change) occur in a
+         serialized task. By moving the context_merge_lock to a task it can now safely be
+         attempted or held without a deadlock occurring.
+
+         ASTERISK-25640 #close
+         Reported by: Krzysztof Trempala
+
+         Change-Id: If2210ea241afd1585dc2594c16faff84579bf302
+
+2016-01-07 15:37 +0000 [ca869878b4]  Mark Michelson <mmichelson@digium.com>
+
+       * PJSIP: Prevent deadlock due to dialog/transaction lock inversion.
+
+         A deadlock was observed where the monitor thread was stuck, therefore
+         resulting in no incoming SIP traffic being processed.
+
+         The problem occurred when two 200 OK responses arrived in response to a
+         terminating NOTIFY request sent from Asterisk. The first 200 OK was
+         dispatched to a threadpool worker, who locked the corresponding
+         transaction. The second 200 OK arrived, resulting in the monitor thread
+         locking the dialog. At this point, the two threads are at odds, because
+         the monitor thread attempts to lock the transaction, and the threadpool
+         thread loops attempting to try to lock the dialog.
+
+         In this case, the fix is to not have the monitor thread attempt to hold
+         both the dialog and transaction locks at the same time. Instead, we
+         release the dialog lock before attempting to lock the transaction.
+
+         There have also been some debug messages added to the process in an
+         attempt to make it more clear what is going on in the process.
+
+         ASTERISK-25668 #close
+         Reported by Mark Michelson
+
+         Change-Id: I4db0705f1403737b4360e33a8e6276805d086d4a
+
+2015-12-10 11:44 +0000 [4e5aec3f0a]  Jonathan Rose <jrose@digium.com>
+
+       * chan_sip: Add TCP/TLS keepalive to TCP/TLS server
+
+         Adds the TCP Keep Alive option to TCP and TLS server sockets. Previously
+         this option was only being set on session sockets.
+         http://www.tldp.org/HOWTO/html_single/TCP-Keepalive-HOWTO/
+         According to the link above, the SO_KEEPALIVE option is useful for knowing
+         when a TCP connected endpoint has severed communication without indicating
+         it or has become unreachable for some reason. Without this patch, keep
+         alive is not set on the socket listening for incoming TCP sessions and
+         in Komatsu's report this resulted in the thread listening for TCP becoming
+         stuck in a waiting state.
+
+         ASTERISK-25364 #close
+         Reported by: Hiroaki Komatsu
+
+         Change-Id: I7ed7bcfa982b367dc64b4b73fbd962da49b9af36
+2015-06-26 10:36 +0000 [4d10ed67d0]  Richard Mudgett <rmudgett@digium.com>
+
+       * PJSIP FAX: Fix T.38 automatic reject timer NULL channel pointer dereferences.
+
+         When a caller calls a FAX number and then hangs up right after the call is
+         answered then the T.38 re-INVITE automatic reject timer may still be
+         running after the channel goes away.
+
+         * Added session NULL channel checks on the code paths that get executed by
+         t38_automatic_reject() to prevent a crash when the T.38 re-INVITE
+         automatic reject timer expires.
+
+         ASTERISK-25168
+         Reported by: Carl Fortin
+
+         Change-Id: I07b6cd23815aedce5044f8f32543779e2f7a2403
+         (cherry picked from commit 8ea214aed782424a884b9a2f67d6dca270854e83)
+
+2015-12-01 16:11 +0000 [1ec791a3ba]  Jonathan Rose <jrose@digium.com>
+
+       * Unset BRIDGEPEER when leaving a bridge
+
+         Currently if a channel is transferred out of a bridge, the BRIDGEPEER
+         variable (also BRIDGEPVTCALLID) remain set even once the channel is
+         out of the bridge. This patch removes these variables when leaving
+         the bridge.
+
+         ASTERISK-25600 #close
+         Reported by: Mark Michelson
+
+         Change-Id: I753ead2fffbfc65427ed4e9244c7066610e546da
+
+2015-11-30 16:42 +0000 [a164f2ce7f]  Richard Mudgett <rmudgett@digium.com>
+
+       * sched.c: Make not return a sched id of 0.
+
+         According to the API doxygen a sched ID of 0 is valid.  Unfortunately, 0
+         was never returned historically and several users incorrectly coded usage
+         of the returned sched ID assuming that 0 was invalid.
+
+         ASTERISK-25476
+
+         Change-Id: Ib19c7ebb44ec9fd393ef6646dea806d4f34e3a20
+
+2015-11-25 12:23 +0000 [a24db35ae3]  Richard Mudgett <rmudgett@digium.com>
+
+       * Audit improper usage of scheduler exposed by 5c713fdf18f. (v13 additions)
+
+         chan_sip.c:
+         * Initialize mwi subscription scheduler ids earlier because of ASTOBJ to
+         ao2 conversion.
+
+         * Initialize register scheduler ids earlier because of ASTOBJ to ao2
+         conversion.
+
+         chan_skinny.c:
+         * Fix more scheduler usage for the valid 0 id value.
+
+         ASTERISK-25476
+
+         Change-Id: If9f0e5d99638b2f9d102d1ebc9c5a14b2d706e95
+
+2015-11-24 12:44 +0000 [bea904e001]  Richard Mudgett <rmudgett@digium.com>
+
+       * Audit improper usage of scheduler exposed by 5c713fdf18f.
+
+         channels/chan_iax2.c:
+         * Initialize struct chan_iax2_pvt scheduler ids earlier because of
+         iax2_destroy_helper().
+
+         channels/chan_sip.c:
+         channels/sip/config_parser.c:
+         * Fix initialization of scheduler id struct members.  Some off nominal
+         paths had 0 as a scheduler id to be destroyed when it was never started.
+
+         chan_skinny.c:
+         * Fix some scheduler id comparisons that excluded the valid 0 id.
+
+         channel.c:
+         * Fix channel initialization of the video stream scheduler id.
+
+         pbx_dundi.c:
+         * Fix channel initialization of the packet retransmission scheduler id.
+
+         ASTERISK-25476
+
+         Change-Id: I07a3449f728f671d326a22fcbd071f150ba2e8c8
+
+2015-11-23 14:27 +0000 [f5a6060707]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_sorcery_realtime.c: Fix crash from NULL sorcery object type.
+
+         If the sorcery object type is not found a NULL is returned.
+         Unfortunately, sorcery_realtime_filter_objectset() will crash after
+         complaining about not finding the object type and saying to expect errors.
+
+         * Use ao2_cleanup() instead of ao2_ref() to prevent the crash.
+
+         ASTERISK-25165
+         Reported by Corey Farrell
+
+         Change-Id: Ic3b64453ea3058cb68d5c26d97d4fe7b8eea2e97
+
+2015-05-05 18:17 +0000 [de43ae38b4]  Richard Mudgett <rmudgett@digium.com>
+
+       * features: Fix crash when transferee hangs up during DTMF attended transfer.
+
+         A crash happens with this sequence of steps:
+         1) Party A is connected to party B.
+         2) Party B starts a DTMF attended transfer.
+         3) Party A hangs up while party B is dialing party C.
+
+         When party A hangs up the bridge that party A and party B are in is
+         dissolved and party B is kicked out of the bridge.  When party B finishes
+         dialing party C he attempts to move to the new bridge with party C.  Since
+         party B is no longer in a bridge the attempted move dereferences a NULL
+         bridge_channel pointer and crashes.
+
+         * Made the hold(), unhold(), ringing(), and the bridge_move() functions
+         tolerant of the channel not being in a bridge.  The assertion that party B
+         is always in a bridge is not true if the bridged peer of party B hangs up
+         and dissolves the bridge.  Being tolerant of not being in a bridge allows
+         the peer hangup stimulus to be processed by the FSM.
+
+         * Made the bridge_move() function return void since where the return value
+         for a failed move was checked generated a FSM coding ERROR message for a
+         normal off-nominal condition.
+
+         * Eliminated most uses of RAII_VAR in bridge_basic.c.
+
+         ASTERISK-25003 #close
+         Reported by: Artem Volodin
+
+         Change-Id: Ie2c1b14e5e647d4ea6de300bf56d69805d7bcada
+         (cherry picked from commit be1260a35f88faea4fa029d59343b124d250a8a6)
+
+2015-11-16 04:29 +0000 [457d8dc124]  Alec Davis <sivad.a@paradise.net.nz>
+
+       * app_queue: (try_calling): mutex 'qe->chan' freed more times than we've locked!
+
+         commit aae45acbd (Mark Michelson 2015-04-15 10:38:02 -0500 6525)
+         refer ASTERISK-24958
+
+         above commit removed ast_channel_lock(qe->chan);
+         but failed to remove corresponding ast_channel_unlock(qe->chan);
+
+         ASTERISK-25561 #close
+         Reported Alec Davis
+
+         Change-Id: Ie05f4e2d08912606178bf1fded57cc022c7a2e1a
+
+2015-11-13 14:03 +0000 [c4751171a0]  Mark Michelson <mmichelson@digium.com>
+
+       * Confbridge: Add a user timeout option
+
+         This option adds the ability to specify a timeout, in seconds, for a
+         participant in a ConfBridge. When the user's timeout has been reached,
+         the user is ejected from the conference with the CONFBRIDGE_RESULT
+         channel variable set to "TIMEOUT".
+
+         The rationale for this change is that there have been times where we
+         have seen channels get "stuck" in ConfBridge because a network issue
+         results in a SIP BYE not being received by Asterisk. While these
+         channels can be hung up manually via CLI/AMI/ARI, adding some sort of
+         automatic cleanup of the channels is a nice feature to have.
+
+         ASTERISK-25549 #close
+         Reported by Mark Michelson
+
+         Change-Id: I2996b6c5e16a3dda27595f8352abad0bda9c2d98
+
+2015-11-13 14:19 +0000 [c0a7df1021]  Mark Michelson <mmichelson@digium.com>
+
+       * Taskprocessors: Increase high-water mark
+
+         In practical tests, we have seen certain taskprocessors, specifically
+         Stasis subscription taskprocessors, cross the recently-added high-water
+         mark and emit a warning. This high-water mark warning is only intended
+         to be emitted when things have tanked on the system and things are
+         heading south quickly. In the practical tests, the Stasis taskprocessors
+         sometimes had a max depth of 180 tasks in them, and Asterisk wasn't in
+         any danger at all.
+
+         As such, this ups the high-water mark to 500 tasks instead. It also
+         redefines the SIP threadpool request denial number to be a multiple of
+         the taskprocessor high-water mark.
+
+         Change-Id: Ic8d3e9497452fecd768ac427bb6f58aa616eebce
+
+2015-11-12 11:17 +0000 [2fc3267677]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip distributor: Don't send 503 response to responses.
+
+         When the SIP threadpool is backed up with tasks, we send 503 responses
+         to ensure that we don't try to overload ourselves. The problem is that
+         we were not insuring that we were not trying to send a 503 to an
+         incoming SIP response.
+
+         This change makes it so that we only send the 503 on incoming requests.
+
+         Change-Id: Ie2b418d89c0e453cc6c2b5c7d543651c981e1404
+
+2015-11-11 04:16 +0000 [d760c21038]  Steve Davies <steve@one47.co.uk>
+
+       * Further fixes to improper usage of scheduler
+
+         When ASTERISK-25449 was closed, a number of scheduler issues mentioned in
+         the comments were missed. These have since beed raised in ASTERISK-25476
+         and elsewhere.
+
+         This patch attempts to collect all of the scheduler issues discovered so
+         far and address them sensibly.
+
+         ASTERISK-25476 #close
+
+         Change-Id: I87a77d581e2e0d91d33b4b2fbff80f64a566d05b
+         (cherry picked from commit 07583c288828a496cd7730b55112128fea31eaef)
+
+2015-11-11 17:11 +0000 [287cab1a53]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip: Deny requests when threadpool queue is backed up.
+
+         We have observed situations where the SIP threadpool may become
+         deadlocked. However, because incoming traffic is still arriving, the SIP
+         threadpool's queue can continue to grow, eventually running the system
+         out of memory.
+
+         This change makes it so that incoming traffic gets rejected with a 503
+         response if the queue is backed up too much.
+
+         Change-Id: I4e736d48a2ba79fd1f8056c0dcd330e38e6a3816
+
+2015-11-11 11:04 +0000 [d073cb4b6d]  Joshua Colp <jcolp@digium.com>
+
+       * threadpool: Handle worker thread transitioning to dead when going active.
+
+         This change adds handling of dead worker threads when moving them
+         to be active. When this happens the worker thread is removed from
+         both the active and idle threads container. If no threads are able
+         to be moved to active then the pool grows as configured.
+
+         A unit test has also been added which thrashes the idle timeout
+         and thread activation to exploit any race conditions between the
+         two.
+
+         ASTERISK-25546 #close
+
+         Change-Id: I6c455f9a40de60d9e86458d447b548fb52ba1143
+
+2015-11-03 16:19 +0000 [b9713354dc]  Jonathan Rose <jrose@digium.com>
+
+       * taskprocessor: Add high water mark warnings
+
+         If a taskprocessor's queue grows large, this can indicate that there
+         may be a problem with tasks not leaving the processor or else that
+         the number of available task processors for a given type of task is
+         too low. This patch makes it so that if a taskprocessor's task queue
+         grows above 100 queued tasks that it will emit a warning message.
+         Warning messages are emitted only once per task processor.
+
+         ASTERISK-25518 #close
+         Reported by: Jonathan Rose
+
+         Change-Id: Ib1607c35d18c1d6a0575b3f0e3ff5d932fd6600c
+
+2015-06-23 11:21 +0000 [ac9432fdb6]  Joshua Colp <jcolp@digium.com>
+
+       * app_dial: Hold reference to calling channel formats when dialing outbound.
+
+         Currently when requesting a channel the native formats of the
+         calling channel are provided to the core for usage when dialing
+         the outbound channel. This occurs without holding the channel lock
+         or keeping a reference to the formats. This is problematic as
+         the channel driver may end up changing the formats during this time.
+         In the case of chan_sip this happens when an SDP negotiation
+         completes.
+
+         This change makes it so app_dial keeps a reference to the native
+         formats of the calling channel which guarantees that they will
+         remain valid for the period of time needed.
+
+         ASTERISK-25172 #close
+
+         Change-Id: I2f0a67bd0d5d14c3bdbaae552b4b1613a283f0db
+         (cherry picked from commit 3b2b004d699b8cc7b808f62536bb2bc4db8b4e0e)
+
+2015-11-04 14:31 +0000 [385e26efe2]  Matt Jordan <mjordan@digium.com>
+
+       * main/dial: Protect access to the format_cap structure of the requesting channel
+
+         When a dial attempt is made that involves a requesting channel, we previously
+         were not:
+         a) Protecting access to the native format capabilities structure on the
+            requesting channel. That is inherently unsafe.
+         b) Reference bumping the lifetime of the format capabilities structure.
+
+         In both cases, something else could sneak in, blow away the format
+         capabilities, and we'd be holding onto an invalid format_cap structure. When
+         the newly created channel attempts to construct its format capabilities, things
+         go poorly.
+
+         This patch:
+         a) Ensures that we get a reference to the native format capabilities while
+            the requesting channel is locked
+         b) Holds a reference to the native format capabilities during the creation
+            of the new channel.
+
+         ASTERISK-25522 #close
+
+         Change-Id: I0bfb7ba8b9711f4158cbeaae96edf9626e88a54f
+
+2015-11-02 17:19 +0000 [62799fe778]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip: Set threadpool max size default to 50.
+
+         During a stress test of subscriptions, a huge blast of
+         subscription-related traffic resulted in the threadpool expanding to a
+         ridiculous number of threads. The balooning of threads resulted in an
+         increase of memory, which led to a crash due to being out of memory.
+
+         An easy fix for the particular test was to limit the size of the
+         threadpool, thus reining in the amount of memory that would be used. It
+         was decided that there really is no downside to having a non-infinite
+         default value for the maximum size of the threadpool, so this change
+         introduces 50 threads as the maximum threadpool size for the SIP
+         threadpool.
+
+         ASTERISK-25513 #close
+         Reported by John Bigelow
+
+         Change-Id: If0b9514f1d9b172540ce1a6e2f2ffa1f2b6119be
+
+2015-10-23 16:53 +0000 [6eda60936a]  Kevin Harwell <kharwell@digium.com>
+
+       * alembic: Bad down revision in add_default_from_user script
+
+         The down revision wasn't set correct in the add_default_from_user script.
+         This patch points it to the correct revision.
+
+         Change-Id: Ied45786db265a1d4fb350ef0dd33b4d043c9a74d
+
+2015-10-21 12:35 +0000 [c425e26595]  Kevin Harwell <kharwell@digium.com>
+
+       * res_pjsip_outbound_registration: registration stops due to fatal 4xx response
+
+         During outbound registration it is possible to receive a fatal (any permanent/
+         non-temporary 4xx, 5xx, 6xx) response from the registrar that is simply due
+         to a problem with the registrar itself. Upon receiving the failure response
+         Asterisk terminates outbound registration for the given endpoint.
+
+         This patch adds an option, 'fatal_retry_interval', that when set continues
+         outbound registration at the given interval up to 'max_retries' upon receiving
+         a fatal response.
+
+         ASTERISK-25485 #close
+
+         Change-Id: Ibc2c7b47164ac89cc803433c0bbe7063bfa143a2
+
+2015-10-22 17:07 +0000 [b95101aab0]  Mark Michelson <mmichelson@digium.com>
+
+       * format_cap: Detect vector allocation failures.
+
+         A crash was seen on a system that ran out of memory due to Asterisk not
+         checking for vector allocation failures in format_cap.c. With this
+         change, if either of the AST_VECTOR_INIT calls fail, we will return a
+         value indicating failure.
+
+         Change-Id: Ieb9c59f39dfde6d11797a92b45e0cf8ac5722bc8
+
+2015-10-02 15:32 +0000 [dd4d4e40e5]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_pubsub: Prevent sending NOTIFY on destroyed dialog.
+
+         A certain situation can result in our attempting to send a NOTIFY on a
+         destroyed dialog. Say we attempt to send a NOTIFY to a subscriber, but
+         that subscriber has dropped off the network. We end up retransmitting
+         that NOTIFY until the appropriate SIP timer says to destroy the NOTIFY
+         transaction. When the pjsip evsub code is told that the transaction has
+         been terminated, it responds in kind by alerting us that the
+         subscription has been terminated, destroying the subscription, and then
+         removing its reference to the dialog, thus destroying the dialog.
+
+         The problem is that when we get told that the subscription is being
+         terminated, we detect that we have not sent a terminating NOTIFY
+         request, so we queue up such a NOTIFY to be sent out. By the time that
+         queued NOTIFY gets sent, the dialog has been destroyed, so attempting to
+         send that NOTIFY can result in a crash.
+
+         The fix being introduced here is actually a reintroduction of something
+         the pubsub code used to employ. We hold a reference to the dialog and
+         wait to decrement our reference to the dialog until our subscription
+         tree object is destroyed. This way, we can send messages on the dialog
+         even if the PJSIP evsub code wants to terminate earlier than we would
+         like.
+
+         In doing this, some NULL checks for subscription tree dialogs have been
+         removed since NULL dialogs are no longer actually possible.
+
+         Change-Id: I013f43cddd9408bb2a31b77f5db87a7972bfe1e5
+
+2015-09-29 14:53 +0000 [bda0a24206]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_pubsub: Ensure dialog lock balance.
+
+         When sending a NOTIFY, we lock the dialog and then unlock the dialog
+         when finished. A recent change made it so that the subscription tree's
+         dialog pointer will be set NULL when sending the final NOTIFY request
+         out. This means that when we attempt to unlock the dialog, we pass a
+         NULL pointer to pjsip_dlg_dec_lock(). The result is that the dialog
+         remains locked after we think we have unlocked it. When a response to
+         the NOTIFY arrives, the monitor thread attempts to lock the dialog, but
+         it cannot because we never released the dialog lock. This results in
+         Asterisk being unable to process incoming SIP traffic any longer.
+
+         The fix in this patch is to use a local pointer to save off the pointer
+         value of the subscription tree's dialog when locking and unlocking the
+         dialog. This way, if the subscription tree's dialog pointer is NULLed
+         out, the local pointer will still have point to the proper place and the
+         dialog lock will be unlocked as we expect.
+
+         Change-Id: I7ddb3eaed7276cceb9a65daca701c3d5e728e63a
+
+2015-09-28 16:36 +0000 [7a22fc27fb]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_pubsub: Prevent crashes on final NOTIFY.
+
+         The SIP dialog is removed from the subscription tree when the final
+         NOTIFY is sent. However, after the final NOTIFY is sent, the persistence
+         update function still attempts to access the cseq from the dialog,
+         resulting in a crash.
+
+         This fix removes the subscription persistence at the same time that the
+         dialog is removed from the subscription tree. This way, there is no
+         attempt to update persistence when the subscription is being destroyed.
+
+         Change-Id: Ibb46977a6cef9c51dc95f40f43446e3d11eed5bb
+
+2015-09-17 17:28 +0000 [7fc9a998b1]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_pubsub: Remove serializer when sending final NOTIFY.
+
+         There have been crashes seen where a taskprocessor's listener is NULL
+         unexpectedly.
+
+         Looking at backtraces, the problem was specifically seen in PJSIP
+         serializers.
+
+         Subscriptions make the mistake of removing a serializer from a dialog
+         during subscription tree destruction. Since subscription trees are
+         reference-counted, guaranteeing the circumstances behind the destruction
+         are not possible. This makes it so that the dialog serializer can be
+         removed while not holding the dialog lock. This makes it possible for
+         the distributor to get a pointer to the dialog serializer and have that
+         serializer get freed out from under it.
+
+         The fix for this is to remove the serializer from a subscription dialog
+         when sending the final NOTIFY. This guarantees that the serializer is
+         removed with the dialog lock held. By doing this, we guarantee that if
+         the distributor gains access to the dialog's serializer, it will not be
+         possible for the serializer to get freed by another thread.
+
+         Change-Id: I21f5dac33529f65cec45679bdace60670800ff66
+
+2015-09-02 09:14 +0000 [7a47ab77c1]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_pubsub: Fix crash on destruction of empty subscription tree.
+
+         If an old persistent subscription is recreated but then immediately
+         destroyed because it is out of date, the subscription tree will have no
+         leaf subscriptions on it. This was resulting in a crash when attempting
+         to destroy the subscription tree.
+
+         A simple NULL check fixes this problem.
+
+         Change-Id: I85570b9e2bcc7260a3fe0ad85904b2a9bf36d2ac
+
+2015-09-01 15:47 +0000 [8def38f6a2]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_pubsub: Solidify lifetime and ownership of objects.
+
+         There have been crashes and general instability seen in the pubsub code,
+         so this patch introduces three changes to increase the stability.
+
+         First, the ownership model for subscriptions has been modified. Due to
+         RLS, subscriptions are stored in memory as a tree structure. Prior to my
+         patch, the PJSIP subscription was the owner of the subscription tree.
+         When the PJSIP subscription told us that it was terminating, we started
+         destroying the subscription tree along with all of the individual leaf
+         subscriptions that belong to the tree. The problem with this model is
+         that the two actors in play here, the PJSIP subscription and the
+         individual leaf subscriptions, need to have joint ownership of the
+         subscription tree. So now, the PJSIP subscription and the individual
+         leaf subscriptions each have a reference to the subscription tree. This
+         way, we will not actually free memory until no players are left that
+         care. The PJSIP subscription is a bigger stakeholder, in that if the
+         PJSIP subscription's reference to the subscription tree is removed, the
+         subscription tree instructs the leaf subscriptions to shut down and drop
+         their references to the subscription tree when possible. The individual
+         leaf subscriptions, upon being told to shut down, can drop their stasis
+         subscriptions or whatever they use to learn of new state, and then drop
+         their reference to the subscription tree once they are ready to die.
+
+         Second, the lifetime of a PJSIP subscription's reference to our
+         subscription tree has been altered. As I learned from doing a deep dive,
+         the PJSIP evsub code can tell Asterisk multiple times that the
+         subscription has been terminated, and not all of these times
+         are especially helpful. I have altered the message flow that we use for
+         SIP subscriptions such that we will always drop the PJSIP subscription's
+         reference to the subscription tree when we send the NOTIFY that
+         terminates a SIP subscription. This also means that we will now queue
+         NOTIFY requests to be sent after responding to incoming SUBSCRIBEs so
+         that we can have predictable state changes from the PJSIP evsub code.
+
+         Third, the synchronization of operations has been improved. PJSIP can
+         call into our code from a serializer thread (e.g. upon receiving an
+         incoming request) or from the monitor thread (e.g. when a subscription
+         times out). Because of this, there is the possibility of competing
+         threads stepping on each other. PJSIP attempts to do some
+         synchronization on its own by always keeping the dialog lock held when
+         it calls into us. However, since we end up pushing tasks into the
+         serializer, the result was that serialized operations were not grabbing
+         the dialog lock and could, as a result, step on something that was being
+         attempted by a different thread. Now we ensure that serialized
+         operations grab the dialog lock, then check for extenuating
+         circumstances, then proceed with their operation if they can.
+
+         Change-Id: Iff2990c40178dad9cc5f6a5c7f76932ec644b2e5
+
+2015-04-20 14:30 +0000 [16afb39aec]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_pubsub: Set the endpoint on SUBSCRIBE dialogs.
+
+         When SUBSCRIBE dialogs were established, we never associated
+         the endpoint that created the subscription with the dialog
+         we end up creating. In most cases, this ended up not causing
+         any problems.
+
+         The actual bug that was observed was that when a device that
+         was behind NAT established a subscription with Asterisk, Asterisk
+         would end up sending in-dialog NOTIFY requests to the device's
+         private IP addres instead of the public address of the NAT router.
+
+         When Asterisk receives the initial SUBSCRIBE from the device,
+         res_pjsip_nat rewrites the contact to the public address on which the
+         SUBSCRIBE was received. This allows for the dialog to have its target
+         address set to the proper public address. Asterisk then would send a 200
+         OK response to the SUBSCRIBE, then a NOTIFY with the initial
+         subscription state. The device would then send a 200 OK response to
+         Asterisk's NOTIFY.
+
+         Here's where things went wrong. When the 200 OK arrived, res_pjsip_nat
+         did not rewrite the address in the Contact header. Then, when the PJSIP
+         dialog layer processed the 200 OK, PJSIP would perform a comparison
+         between the IP address in the Contact header and its saved target
+         address for the dialog. Since they differed, PJSIP would update the
+         target dialog address to be the address in the Contact header. From this
+         point, if Asterisk needed to send a NOTIFY to the device, the result was
+         that the NOTIFY would be sent to the private address that the device
+         placed in the Contact header.
+
+         The reason why res_pjsip_nat did not rewrite the address when it
+         received the 200 OK response was that it could not associate the
+         incoming response with a configured endpoint. This is because on a
+         response, the only way to associate the response to an endpoint is by
+         finding the dialog that the response is associated with and then finding
+         the endpoint that is associated with that dialog. We do not perform
+         endpoint lookups on responses. res_pjsip_pubsub skipped the step of
+         associating the endpoint with the dialog we created, so res_pjsip_nat
+         could not find the associated endpoint and therefore couldn't rewrite
+         the contact.
+
+         This commit message is like 50x longer than the actual fix.
+
+         ASTERISK 24981 #close
+         Reported by Mark Michelson
+
+         Change-Id: I2b963c58c063bae293e038406f7d044a8a5377cd
+
+2015-10-19 15:27 +0000 [78e4783572]  Richard Mudgett <rmudgett@digium.com>
+
+       * Add missing failure checks to ast_str_set_va() callers.
+
+         Change-Id: I0c2cdcd53727bdc6634095c61294807255bd278f
+
+2015-10-21 11:44 +0000 [43323995ba]  Joshua Colp <jcolp@digium.com>
+
+       * res_pjsip: Move URI validation to use time.
+
+         In a realtime based system with a limited number of threadpool threads
+         it is possible for a deadlock to occur. This happens when permanent
+         endpoint state is updated, which will cause database queries to be done.
+         These queries may result in URI validation being done which is done
+         synchronously using a PJSIP thread. If all PJSIP threads are in use
+         processing traffic they themselves may be blocked waiting to get the
+         permanent endpoint container lock when identifying an endpoint.
+
+         This change moves URI validation to occur at use time instead of
+         configuration time. While this comes at a cost of not seeing a problem
+         until you use it it does solve the underlying deadlock problem.
+
+         ASTERISK-25486 #close
+
+         Change-Id: I2d7d167af987d23b3e8199e4a68f3359eba4c76a
+
+2015-03-26 17:19 +0000 [cdd2d5b484]  Corey Farrell <git@cfware.com>
+
+       * Replace most uses of ast_register_atexit with ast_register_cleanup.
+
+         Since 'core stop now' and 'core restart now' do not stop modules,
+         it is unsafe for most of the core to run cleanups.  Originally all
+         cleanups used ast_register_atexit, and were only changed when it
+         was shown to be unsafe.  ast_register_atexit is now used only when
+         absolutely required to prevent corruption and close child processes.
+
+         Exceptions that need to use ast_register_atexit:
+         * CDR: Flush records.
+         * res_musiconhold: Kill external applications.
+         * AstDB: Close the DB.
+         * canary_exit: Kill canary process.
+
+         ASTERISK-24142 #close
+         Reported by: David Brillert
+
+         ASTERISK-24683 #close
+         Reported by: Peter Katzmann
+
+         ASTERISK-24805 #close
+         Reported by: Badalian Vyacheslav
+
+         ASTERISK-24881 #close
+         Reported by: Corey Farrell
+
+         Review: https://reviewboard.asterisk.org/r/4500/
+         Review: https://reviewboard.asterisk.org/r/4501/
+         ........
+
+         Merged revisions 433495 from http://svn.asterisk.org/svn/asterisk/branches/11
+
+         Change-Id: I6a67336050dea74327d79cdd6f7c7ea34d0b473e
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433497
+
+2015-10-19 19:59 +0000 [b5cfcfc427]  Matt Jordan <mjordan@digium.com>
+
+       * contrib/scripts/autosupport: Update for Asterisk 13
+
+         This patch adds some minor tweaks for autosupport to update it for Asterisk 13.
+         This includes:
+         * Finally removing most references to Zaptel
+         * Adding support for some additional 'core' commands, and fixing nomenclature
+           that generally hasn't been used for some time
+         * Adding some PJSIP/SIP commands to gather endpoints/peers and active channels
+
+         Change-Id: Ic997b418cbd9313588b6608e50f47b0ce6f4f1f1
+         (cherry picked from commit 9fc9777fa34753fb38991d42d8dbed516e907ca2)
+
+2015-06-05 15:37 +0000 [813b743baa]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_pjsip: Need to use the same serializer for a pjproject SIP transaction.
+
+         All send/receive processing for a SIP transaction needs to be done under
+         the same threadpool serializer to prevent reentrancy problems inside
+         pjproject and res_pjsip.
+
+         * Add threadpool API call to get the current serializer associated with
+         the worker thread.
+
+         * Pick a serializer from a pool of default serializers if the caller of
+         res_pjsip.c:ast_sip_push_task() does not provide one.
+
+         This is a simple way to ensure that all outgoing SIP request messages are
+         processed under a serializer.  Otherwise, any place where a pushed task is
+         done that would result in an outgoing out-of-dialog request would need to
+         be modified to supply a serializer.  Serializers from the default
+         serializer pool are picked in a round robin sequence for simplicity.
+
+         A side effect is that the default serializer pool will limit the growth of
+         the thread pool from random tasks.  This is not necessarily a bad thing.
+
+         * Made pjsip_distributor.c save the thread's serializer name on the
+         outgoing request tdata struct so the response can be processed under the
+         same serializer.
+
+         This is a cherry-pick from master.
+
+         **** ASTERISK-25115 Change-Id: Iea71c16ce1132017b5791635e198b8c27973f40a
+
+         NOTE: session_inv_on_state_changed() is disassociating the dialog from the
+         session when the invite dialog becomes PJSIP_INV_STATE_DISCONNECTED.
+         Unfortunately this is a tad too soon because our BYE request transaction
+         has not completed yet.
+
+         This is a cherry-pick from v13.
+
+         ASTERISK-25183 #close
+         Reported by: Matt Jordan
+
+         Change-Id: I8bad0ae1daf18d75b8c9e55874244b7962df2d0a
+
+2015-10-02 17:05 +0000 [78ab76b46c]  Richard Mudgett <rmudgett@digium.com>
+
+       * Fix issue with AST_THREADSTORAGE_RAW when DEBUG_THREADLOCALS is enabled.
+
+         When DEBUG_THREADLOCALS is enabled it causes the threadlocal cleanup to be
+         called as a function.  This causes a compile error with raw threadstorage as
+         it uses NULL for cleanup.  This fix uses a macro that provides NULL when
+         DEBUG_THREADLOCALS is disabled, and replaces the call to "c_cleanup(data);"
+         with "{};" when DEBUG_THREADLOCALS is enabled.
+
+         ASTERISK-24975 #close
+         Reported by: Ashley Sanders
+
+         **** ASTERISK-24975 Change-Id: I3ef7428ee402816d9fcefa1b3b95830c00d5c402
+
+         Cherry-pick from v13 with additional definitions of
+         AST_THREADSTORAGE_RAW(), ast_threadstorage_get_ptr() and
+         ast_threadstorage_set_ptr() from
+         commit d01706ce1ee518118456d5673f529204bdac73bb.
+
+         Change-Id: I3222102d005f76744561b95a3b97700d82a5ee58
+
+2015-10-12 11:21 +0000 [47a9452780]  Richard Mudgett <rmudgett@digium.com>
+
+       * config.c: Fix off-nominal memory leak.
+
+         Change-Id: I06e346e9a5c63cc5071e7eda537310c4b43bffe0
+
+2015-10-12 11:20 +0000 [728a2b7013]  Richard Mudgett <rmudgett@digium.com>
+
+       * config.c: Fix potential memory corruption after [section](+).
+
+         The memory corruption could happen if the [section](+) is the last section
+         in the file with trailing comments.  In this case process_text_line() has
+         left *last_cat is set to newcat and newcat is destroyed.
+
+         Change-Id: I0d1d999f553986f591becd000e7cc6ddfb978d93
+
+2015-10-12 11:21 +0000 [6c11fa2277]  Richard Mudgett <rmudgett@digium.com>
+
+       * config.c: Fix #include after [section](+).
+
+         An #include right after a [section](+) would associate any variable
+         assignments before a new section in the #include with the wrong section.
+
+         * Fix section association by setting the current section to the appended
+         section.
+
+         * Fix '+' and '!' section flag interaction corner case depending upon
+         which flag came first.  If the '!' came first then it would be ignored.
+         If the '!' came after then it would affect the appended section.  The '!'
+         will now no longer be ignored.
+
+         ASTERISK-25461 #close
+         Reported by: Sean Pimental
+
+         Change-Id: Ic9d3191c8758048e2cbce6432f854b32531731c3
+
+2015-10-06 20:43 +0000 [0fe83cad51]  Matt Jordan <mjordan@digium.com>
+
+       * res/res_rtp_asterisk: Fix assignment after ao2 decrement
+
+         When we decide we will no longer schedule an RTCP write, we remove the
+         reference to the RTP instance, then assign -1 to the stored scheduler ID
+         in case something else comes along and wants to see if anything is scheduled.
+
+         That scheduler ID is on the RTP instance. After 60a9172d7ef2 was merged to
+         fix the regression introduced by 3cf0f29310, this improper assignment on a
+         potentially destroyed object started getting tripped on the build agents.
+
+         Frankly, this should have been crashing a lot more often earlier. I can only
+         assume that the timing was changed just enough by both changes to start
+         actually hitting this problem.
+
+         As it is, simply moving the assignment prior to the ao2 deference is sufficient
+         to keep the RTP instance from being referenced when it is very, truly,
+         aboslutely dead.
+
+         (Note that it is still good practice to assign -1 to the scheduler ID when we
+         know we won't be scheduling it again, as the ao2 deref *may* not always destroy
+         the ao2 object.)
+
+         ASTERISK-25449
+
+         Change-Id: Ie6d3cb4adc7b1a6c078b1c38c19fc84cf787cda7
+
+2015-10-05 16:53 +0000 [c4f63952fc]  Richard Mudgett <rmudgett@digium.com>
+
+       * chan_pjsip: Fix crash on reINVITE before initial INVITE completes.
+
+         Apparently some endpoints attempt to send a reINVITE before completing the
+         initial INVITE transaction.  In this case PJSIP responds appropriately to
+         the reINVITE with a 491 INVITE request pending.  Unfortunately chan_pjsip
+         is using the initial INVITE transaction state to determine if an INVITE is
+         the initial INVITE or a reINVITE.  Since the initial INVITE transaction
+         has not been confirmed yet chan_pjsip thinks the reINVITE is an initial
+         INVITE and starts another PBX thread on the channel.  The extra PBX thread
+         ensures that hilarity ensues.
+
+         * Fix checks for a reINVITE on incoming requests to look for the presence
+         of a to-tag instead of the initial INVITE transaction state.
+
+         * Made caller_id_incoming_request() determine what to do if there is a
+         channel on the session or not.  After a channel is created it is too late
+         to just store the new party id on the session because the session's party
+         id has already been copied to the channel's caller id.
+
+         ASTERISK-25404 #close
+         Reported by: Chet Stevens
+
+         Change-Id: Ie78201c304a2b13226f3a4ce59908beecc2c68be
+
+2015-10-05 21:34 +0000 [d61da57428]  Matt Jordan <mjordan@digium.com>
+
+       * Fix improper usage of scheduler exposed by 5c713fdf18f
+
+         When 5c713fdf18f was merged, it allowed for scheduled items to have an ID of
+         '0' returned. While this was valid per the documentation for the API, it was
+         apparently never returned previously. As a result, several users of the
+         scheduler API viewed the result as being invalid, causing them to reschedule
+         already scheduled items or otherwise fail in interesting ways.
+
+         This patch corrects the users such that they view '0' as valid, and a returned
+         ID of -1 as being invalid.
+
+         Note that the failing HEP RTCP tests now pass with this patch. These tests
+         failed due to a duplicate scheduling of the RTCP transmissions.
+
+         ASTERISK-25449 #close
+
+         Change-Id: I019a9aa8b6997584f66876331675981ac9e07e39
+2015-09-30 17:28 +0000 [5d12653d2a]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_sorcery_memory_cache.c: Fix deadlock with scheduler.
+
+         A deadlock can happen when a sorcery object is being expired from the
+         memory cache when at the same time another object is being placed into the
+         memory cache.  There are a couple other variations on this theme that
+         could cause the deadlock.  Basically if an object is being expired from
+         the sorcery memory cache at the same time as another thread tries to
+         update the next object expiration timer the deadlock can happen.
+
+         * Add a deadlock avoidance loop in expire_objects_from_cache() to check if
+         someone is trying to remove the scheduler callback from the scheduler.
+
+         ASTERISK-25441 #close
+
+         Change-Id: Iec7b0bdb81a72b39477727b1535b2539ad0cf4dc
+
+2015-10-01 14:30 +0000 [b35b9a9e32]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_sorcery_memory_cache.c: Replace inline code with function.
+
+         Make sorcery_memory_cache_close() call remove_all_from_cache() instead of
+         partially inlining it.
+
+         ASTERISK-25441
+
+         Change-Id: I1aa6cb425b1a4307096f3f914d17af8ec179a74c
+
+2015-10-01 14:27 +0000 [9ec52447bd]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_sorcery_memory_cache.c: Shutdown in a less crash potential order.
+
+         Basically you should shutdown in the opposite order of how you setup since
+         later setup pieces likely depend on earlier setup pieces.  e.g.,
+         Registering your external API with the rest of the system should be the
+         last thing setup and the first thing unregistered during shutdown.
+
+         Change-Id: I5715765b723100c8d3c2642e9e72cc7ad5ad115e
+
+2015-09-30 17:27 +0000 [110927bacc]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_sorcery_memory_cache.c: Misc tweaks.
+
+         Change-Id: I8cd32dffbb4f33bb0c39518d6e4c991e73573160
+
+2015-09-30 17:27 +0000 [14ac763ab3]  Richard Mudgett <rmudgett@digium.com>
+
+       * res_sorcery_memory_cache.c: Made use OBJ_SEARCH_MASK.
+
+         Change-Id: Ibca6574dc3c213b29cc93486e01ccd51f5caa46c
+
+2015-04-09 10:42 +0000 [39fe210fd9]  yaron nahum (License 6676)
+
+       * res/res_pjsip_dlg_options: Add a module to handle in-dialog OPTIONS requests
+
+         This patch adds a new session supplement that handles in-dialog OPTIONS
+         requests. Said OPTIONS requests are sent a 200 OK, as an endpoint lookup
+         for the OPTIONS request would already have been done by the time the
+         session supplement receives the inbound request.
+
+         ASTERISK-24862 #close
+         Reported by: yaron nahum
+         patches:
+           res_pjsip_dlg_options.c submitted by yaron nahum (License 6676)
+
+         Change-Id: Iefc901a7c5c88d9d4b853188f85092d9eb7b6ada
+
+2015-09-24 14:56 +0000 [00be2f6b4f]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_queue.c: Force COLP update if outgoing channel name changed.
+
+         * When a call is answered and the outgoing channel name has changed then
+         force a connected line update because the channel is no longer the same.
+         The channel was masqueraded into by another channel.  This is usually
+         because of a call pickup.
+
+         Note: Forwarded calls are handled in a controlled manner so the original
+         channel name is replaced with the forwarded channel.
+
+         ASTERISK-25423 #close
+         Reported by: John Hardin
+
+         Change-Id: Ie275ea9e99c092ad369db23e0feb08c44498c172
+
+2015-09-24 14:20 +0000 [bd43638622]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_queue.c: Factor out a connected line update routine.
+
+         Replace inlined code with update_connected_line_from_peer().
+
+         ASTERISK-25423
+         Reported by: John Hardin
+
+         Change-Id: I33bbd033596fcb0208d41d8970369b4e87b806f3
+
+2015-09-24 13:27 +0000 [f5a935f9d1]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_dial.c: Make 'A' option pass COLP updates.
+
+         While the 'A' option is playing the announcement file allow the caller and
+         peer to exchange COLP update frames.
+
+         ASTERISK-25423
+         Reported by: John Hardin
+
+         Change-Id: Iac6cf89b56d26452c6bb88e9363622bbf23895f9
+
+2015-09-24 12:59 +0000 [91f754cb89]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_dial.c: Force COLP update if outgoing channel name changed.
+
+         * When a call is answered and the outgoing channel name has changed then
+         force a connected line update because the channel is no longer the same.
+         The channel was masqueraded into by another channel.  This is usually
+         because of a call pickup.
+
+         Note: Forwarded calls are handled in a controlled manner so the original
+         channel name is replaced with the forwarded channel.
+
+         ASTERISK-25423
+         Reported by: John Hardin
+
+         Change-Id: I2e01f7a698fbbc8c26344a59c2be40c6cd98b00c
+
+2015-09-24 12:37 +0000 [9792b21720]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_dial.c: Factor out a connected line update routine.
+
+         Replace inlined code with update_connected_line_from_peer().
+
+         ASTERISK-25423
+         Reported by: John Hardin
+
+         Change-Id: Ia14f18def417645cd7fb453e1bdac682630a5091
+
+2015-09-24 14:49 +0000 [7a4581a41b]  Mark Michelson <mmichelson@digium.com>
+
+       * Do not swallow frames on channels leaving bridges.
+
+         When leaving a bridge, indications on a channel could be swallowed by
+         the internal indication logic because it appears that the channel is on
+         its way to be hung up anyway. One such situation where this is
+         detrimental is when channels on hold are redirected out of a bridge. The
+         AST_CONTROL_UNHOLD indication from the bridging code is swallowed,
+         leaving the channel in question to still appear to be on hold.
+
+         The fix here is to modify the logic inside ast_indicate_data() to not
+         drop the indication if the channel is simply leaving a bridge. This way,
+         channels on hold redirected out of a bridge revert to their expected "in
+         use" state after the redirection.
+
+         ASTERISK-25418 #close
+         Reported by Mark Michelson
+
+         Change-Id: If6115204dfa0551c050974ee138fabd15f978949
+
+2015-09-22 17:08 +0000 [86eee104be]  Richard Mudgett <rmudgett@digium.com>
+
+       * app_page.c: Fix crash when forwarding with a predial handler.
+
+         Page uses the async method of dialing with the dial API.  When a call gets
+         forwarded there is no calling channel available.  If the predial handler
+         was set then the calling channel could not be put into auto-service
+         for the forwarded call because it doesn't exist.  A crash is the result.
+
+         * Moved the callee predial parameter string processing to before the
+         string is passed to the dial API rather than having the dial API do it.
+         There are a few benefits do doing this.  The first is the predial
+         parameter string processing doesn't need to be done for each channel
+         called by the dial API.  The second is in async mode and the forwarded
+         channel is to have the predial handler executed on it then the
+         non-existent calling channel does not need to be present to process the
+         predial parameter string.
+
+         * Don't start auto-service on a non-existent calling channel to execute
+         the predial handler when the dial API is in async mode and forwarding a
+         call.
+
+         ASTERISK-25384 #close
+         Reported by: Chet Stevens
+
+         Change-Id: If53892b286d29f6cf955e2545b03dcffa2610981
+
+2015-06-18 13:16 +0000 [deccd2ef3c]  Mark Michelson <mmichelson@digium.com>
+
+       * Resolve race conditions involving Stasis bridges.
+
+         This resolves two observed race conditions.
+
+         First, a bit of background on what the Stasis application does:
+
+         1a Creates a stasis_app_control structure. This structure is linked into
+            a global container and can be looked up using a channel's unique ID.
+         2a Puts the channel in an event loop. The event loop can exit either
+            because the stasis_app_control structure has been marked done, or
+            because of some other factor, such as a hangup. In the event loop, the
+            stasis_app_control determines if any specific ARI commands need to be
+            run on the channel and will run them from this thread.
+         3a Checks if the channel is bridged. If the channel is bridged, then
+            ast_bridge_depart() is called since channels that are added to Stasis
+            bridges are always imparted as departable.
+         4a Unlink the stasis_app_control from the container.
+
+         When an ARI command is received by Asterisk, the following occurs
+         1b A thread is spawned to handle the HTTP request
+         2b The stasis_app_control(s) that corresponds to the channel(s) in the
+            request is/are retrieved. If the stasis_app_control cannot be
+            retrieved, then it is assumed that the channel in question has exited
+            the Stasis app or perhaps was never in Stasis in the first place.
+         3b A command is queued onto the stasis_app_control, and the channel's
+            event loop thread is signaled to run the command.
+         4b While most ARI commands do nothing further, some, such as adding or
+            removing channels from a bridge, will block until the command they
+            issued has been completed by the channel's event loop.
+
+         The first race condition that is solved by this patch involves a crash
+         that can occur due to faulty detection of the channel's bridged status
+         in step 3a. What can happen is that in step 2a, the event loop may run
+         the ast_bridge_impart() function to asynchronously place the channel
+         into a bridge, then immediately exit the event loop because the channel
+         has hung up. In step 3a, we would detect that the channel was not
+         bridged and would not call ast_bridge_depart(). The reason that the
+         channel did not appear to be bridged was that the depart_thread that is
+         spawned by ast_bridge_impart() had not yet started. That is the thread
+         where the channel is marked as being bridged. Since we did not call
+         ast_bridge_depart(), the Stasis application would exit, and then the
+         channel would be destroyed Then the depart_thread would start up and
+         try to manipulate the destroyed channel, causing a crash.
+
+         The fix for this is to switch from using ast_channel_is_bridged() to
+         checking the NULLity of ast_channel_internal_bridge_channel() to
+         determine if ast_bridge_depart() needs to be called. The channel's
+         internal bridge_channel is set when ast_bridge_impart() is called and
+         is NULLed by the call to ast_bridge_depart(). If the channel's internal
+         bridge_channel is non-NULL, then the channel must have been imparted
+         into the bridge and needs to be departed, even if the actual bridging
+         operation has not yet started. By departing the channel when necessary,
+         the thread that is running the Stasis application will block until the
+         bridge gives the okay that the depart_thread has exited.
+
+         The second race condition that is solved by this patch involves a leak
+         of HTTP handler threads. The problem was that step 2b would successfully
+         retrieve a stasis_app_control structure. Then step 2a would exit the
+         channel from the event loop due to a hangup. Steps 3a and 4a would
+         execute, and then finally steps 3b and 4b would. The problem is that at
+         step 4b, when attempting to add a channel to a bridge, the thread would
+         block forever since the channel would never execute the queued command
+         since it was finished with the event loop. This meant that the HTTP
+         handling thread would be leaked, along with any references that thread
+         may have owned (in my case, I was seeing bridges leaked).
+
+         The fix for this is to hone in better on when the channel has exited the
+         event loop. The stasis_app_control structure has an is_done field that
+         is now set at each point where the channel may exit the event loop. If
+         step 2b retrieves a valid stasis_app_control structure but the control
+         is marked as done, then the attempted operation exits immediately since
+         there will be nothing to service the attempted command.
+
+         ASTERISK-25091 #close
+         Reported by Ilya Trikoz
+
+         Change-Id: If66265b73b4c9f8f58599124d777fedc54576628
+
+2015-09-21 18:06 +0000 [43e6804b0c]  Kevin Harwell <kharwell@digium.com>
+
+       * app_record: RECORDED_FILE variable not being populated
+
+         The RECORDED_FILE variable is empty unless a '%d' is specified in the filename.
+         This patch makes it so the variable is always set to the filename.
+
+         ASTERISK-25410 #close
+
+         Change-Id: I4ec826d8eb582ae2ad184e717be8668b74d37653
+
+2015-09-16 08:22 +0000 [ca401c6842]  Joshua Colp <jcolp@digium.com>
+
+       * pbx: Update device and presence state when changing a hint extension.
+
+         When changing a hint extension without removing the hint first the
+         device state and presence state is not updated. This causes the state
+         of the hint to be that of the previous extension and not the current
+         one. This state is kept until a state change occurs as a result of
+         something (presence state change, device state change).
+
+         This change updates the hint with the current device and presence
+         state of the new extension when it is changed. Any state callbacks
+         which may have been added before the hint extension is changed are
+         also informed of the new device and presence state if either have
+         changed.
+
+         ASTERISK-25394 #close
+
+         Change-Id: If268f1110290e502c73dd289c9e7e7b27bc8432f
+
+2015-09-16 17:36 +0000 [20702e0cf2]  Mark Michelson <mmichelson@digium.com>
+
+       * res_pjsip_pubsub: Eliminate race during initial NOTIFY.
+
+         There is a slim chance of a race condition occurring where two threads
+         can both attempt to manipulate the same area.
+
+         Thread A can be handling an incoming initial SUBSCRIBE request. Thread A
+         lets the specific subscription handler know that the subscription has
+         been established.
+
+         At this point, Thread B may detect a state change on the subscribed
+         resource and queue up a notification task on Thread C, the subscription
+         serializer thread.
+
+         Now Thread A attempts to generate the initial NOTIFY request to send to
+         the subscriber at the same time that Thread C attempts to generate a
+         state change NOTIFY request to send to the subscriber.
+
+         The result is that Threads A and C can step on the same memory area,
+         resulting in a crash. The crash has been observed as happening when
+         attempting to allocate more space to hold the body for the NOTIFY.
+
+         The solution presented here is to queue the subscription establishment
+         and initial NOTIFY generation onto the subscription serializer thread
+         (Thread C in the above scenario). This way, there is no way that a state
+         change notification can occur before the initial NOTIFY is sent, and if
+         there is a quick succession of NOTIFYs, we can guarantee that the two
+         NOTIFY requests will be sent in succession.
+
+         Change-Id: I5a89a77b5f2717928c54d6efb9955e5f6f5cf815
+
+2015-09-10 17:19 +0000 [3ef74244a4]  Mark Michelson <mmichelson@digium.com>
+
+       * scheduler: Use queue for allocating sched IDs.
+
+         It has been observed that on long-running busy systems, a scheduler
+         context can eventually hit INT_MAX for its assigned IDs and end up
+         overflowing into a very low negative number. When this occurs, this can
+         result in odd behaviors, because a negative return is interpreted by
+         callers as being a failure. However, the item actually was successfully
+         scheduled. The result may be that a freed item remains in the scheduler,
+         resulting in a crash at some point in the future.
+
+         The scheduler can overflow because every time that an item is added to
+         the scheduler, a counter is bumped and that counter's current value is
+         assigned as the new item's ID.
+
+         This patch introduces a new method for assigning scheduler IDs. Instead
+         of assigning from a counter, a queue of available IDs is maintained.
+         When assigning a new ID, an ID is pulled from the queue. When a
+         scheduler item is released, its ID is pushed back onto the queue. This
+         way, IDs may be reused when they become available, and the growth of ID
+         numbers is directly related to concurrent activity within a scheduler
+         context rather than the uptime of the system.
 
-         1.  A new aor/contact variable 'qualify_timeout' has been added that allows the
-         user to specify the maximum time in milliseconds to wait for a response to an
-         OPTIONS message.  The default is 3000ms.  When the timer expires, the contact is
-         marked unavailable.
+         Change-Id: I532708eef8f669d823457d7fefdad9a6078b99b2
 
-         2.  Contact status changes are now propagated up to the endpoint as follows...
-         When any contact is 'Available', the endpoint is marked as 'Reachable'.  When
-         all contacts are 'Unavailable', the endpoint is marked as 'Unreachable'.  The
-         existing endpoint events are generated appropriately.
+2015-09-10 09:49 +0000 [8826e6c416]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-24863 #close
+       * res_pjsip: Copy default_from_user to avoid crash.
 
-         Change-Id: Id0ce0528e58014da1324856ea537e7765466044a
-         Tested-by: Dmitriy Serov
-         Tested-by: George Joseph <george.joseph@fairview5.com>
+         The default_from_user retrieval function was pulling the
+         default_from_user from the global configuration struct in an unsafe way.
+         If using a database as a backend configuration store, the global
+         configuration struct is short-lived, so grabbing a pointer from it
+         results in referencing freed memory.
 
-2015-04-17 15:29 +0000 [f1abf51b73]  Matt Jordan <mjordan@digium.com>
+         The fix here is to copy the default_from_user value out of the global
+         configuration struct.
 
-       * Merge "res_pjsip: Refactor endpt_send_request to include transaction timeout" into 13
-2015-04-17 10:30 +0000 [ab5b38e434]  Matt Jordan <mjordan@digium.com>
+         Thanks go to John Hardin for discovering this problem and proposing the
+         patch on which this fix is based.
 
-       * Merge "res_pjsip: Add global option to limit the maximum time for initial qualifies" into 13
-2015-04-17 10:25 +0000 [ec77b6148f]  Joshua Colp <jcolp@digium.com>
+         ASTERISK-25390 #close
+         Reported by Mark Michelson
 
-       * Merge "res_pjsip_pubsub: On notify fail deleted sub_tree is then referenced" into 13
-2015-04-16 10:51 +0000 [b56c1914fa]  Kevin Harwell <kharwell@digium.com>
+         Change-Id: I6b96067a495c1259da768f4012d44e03e7c6148c
 
-       * bridge.c: NULL app causes crash during attended transfer
+2015-04-23 09:16 +0000 [943d5c0c99]  gtjoseph <george.joseph@fairview5.com>
 
-         Due to a race condition there was a chance that during an attended transfer the
-         channel's application would return NULL. This, of course, would cause a crash
-         when attempting to access the memory. This patch retrieves the channel's app
-         at an earlier time in processing in hopes that the app name is available.
-         However, if it is not then "unknown" is used instead. Since some string value
-         is now always present the crash can no longer occur.
+       * res_pjsip:  Validate that contact uris start with sip: or sips:
 
-         ASTERISK-24869 #close
-         Reported by: viniciusfontes
-         Review:
+         Currently we use pjsip_parse_hdr to validate contact uris but it
+         appears that it allows uris without a scheme if there's a port
+         supplied.  I.E myexample.com will fail but myexample.com:5060 will
+         pass even though it has no scheme.  This causes SEGVs later on
+         whenever the uri is used.
 
-         Change-Id: I5134b84c4524906d8148817719d76ffb306488ac
+         To prevent this, permanent_contact_validate has been updated to check
+         that the scheme is either 'sip' or 'sips'.
 
-2015-04-16 13:20 +0000 [8d4ce7cc2b]  Scott Griepentrog <scott@griepentrog.com>
+         2 uses of possibly-null endpoint have also been fixed in
+         create_out_of_dialog_request.
 
-       * res_pjsip_pubsub: On notify fail deleted sub_tree is then referenced
+         ASTERISK-24999
 
-         This change makes the send_notify of the sub_tree
-         not happen when the sub_tree has been deleted due
-         to the notify call failing, which avoids a crash.
+         Change-Id: Ifc17d16a4923e1045d37fe51e43bbe29fa556ca2
+         Reported-by: Brad Latus
+         (cherry picked from commit 75666ad7c608ad9968a216a8f0a5832bf85b785c)
 
-         ASTERISK-24970 #close
+2015-09-03 14:07 +0000 [7b5bcbeebe]  Jonathan Rose <jrose@digium.com>
 
-         Change-Id: I1f20ffc08b192f59c457293b218025a693992cbf
-2015-04-11 16:39 +0000 [bf46799f0e]  George Joseph <george.joseph@fairview5.com>
+       * ParkAndAnnounce: Add variable inheritance
 
-       * res_pjsip: Refactor endpt_send_request to include transaction timeout
+         In Asterisk 11, the announcer channel would receive channel variables
+         from the channel being parked by means of normal channel inheritance.
+         This functionality was lost during the big res_parking project in
+         Asterisk 12. This patch restores that functionality.
 
-         This is the first follow-on to https://reviewboard.asterisk.org/r/4572/ and the
-         discussion at
-         http://lists.digium.com/pipermail/asterisk-dev/2015-March/073921.html
+         ASTERISK-25369 #close
+         Review: https://gerrit.asterisk.org/#/c/1180/
 
-         Since we currently have no control over pjproject transaction timeout, this
-         patch pulls the pjsip_endpt_send_request function out of pjproject and into
-         res_pjsip/endpt_send_transaction in order to implement that capability.
+         Change-Id: Ie47e618330114ad2ea91e2edcef1cb6f341eed6e
 
-         Now when the transaction is initiated, we also schedule our own pj_timer with
-         our own desired timeout.
+2015-08-29 10:36 +0000 [0901a82adb]  Joshua Colp <jcolp@digium.com>
 
-         If the transaction completes before either timeout, pjproject cancels its timer,
-         and calls our tsx callback where we cancel our timer and run the app callback.
+       * taskprocessor: Fix race condition between unreferencing and finding.
 
-         If the pjproject timer times out first, pjproject calls our tsx callback where
-         we cancel our timer and run the app callback.
+         When unreferencing a taskprocessor its reference count is checked
+         to determine if it should be unlinked from the taskprocessors
+         container and its listener shut down. In between the time when the
+         reference count is checked and unlinking it is possible for
+         another thread to jump in, find it, and get a reference to it. If
+         the thread then uses the taskprocessor it may find that it is not
+         in the state it expects.
 
-         If our timer times out first, we terminate the transaction which causes
-         pjproject to cancel its timer and call our tsx callback where we run the app
-         callback.
+         This change locks the taskprocessors container during almost the
+         entire unreference operation to ensure that any other thread which
+         may attempt to find the taskprocessor has to wait.
 
-         Regardless of the scenario, pjproject is calling the tsx callback inside the
-         group_lock and there are checks in the callback to make sure it doesn't run
-         twice.
+         ASTERISK-25295
 
-         As part of this patch ast_sip_send_out_of_dialog_request was created to replace
-         its similarly named private function.  It takes a new timeout argument in
-         milliseconds (<= 0 to disable the timeout).
+         Change-Id: Icb842db82fe1cf238da55df92e95938a4419377c
+         (cherry picked from commit a676ba2aad5525926ae31b8317b95ae52cbbabbb)
 
-         ASTERISK-24863 #close
-         Reported-by: George Joseph <george.joseph@fairview5.com>
-         Tested-by: George Joseph <george.joseph@fairview5.com>
+2015-09-04 14:40 +0000 [500856b4f0]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I0778dc730d9689c5147a444a04aee3c1026bf747
-2015-04-11 17:04 +0000 [1b6f6ff841]  George Joseph <george.joseph@fairview5.com>
+       * res_pjsip: Change default from user value.
 
-       * res_pjsip: Add global option to limit the maximum time for initial qualifies
+         When Asterisk sends an outbound SIP request, if there is no direct
+         reason to place a specific value for the username in the From header,
+         Asterisk would generate a UUID. For example, this would happen when
+         sending outbound OPTIONS requests when qualifying or when sending
+         outbound INVITE requests when originating (if no explicit caller ID were
+         provided). The issue is that some SIP providers reject these sorts of
+         requests with a "Name too long" error response.
 
-         Currently when Asterisk starts initial qualifies of contacts are spread out
-         randomly between 0 and qualify_timeout to prevent network and system overload.
-         If a contact's qualify_frequency is 5 minutes however, that contact may be
-         unavailable to accept calls for the entire 5 minutes after startup.  So while
-         staggering the initial qualifies is a good idea, basing the time on
-         qualify_timeout could leave contacts unavailable for too long.
+         This patch aims to fix this by changing the default outbound username in
+         From headers to "asterisk". This value can be overridden by changing the
+         default_from_user option in the global options if desired.
 
-         This patch adds a new global parameter "max_initial_qualify_time" that sets the
-         maximum time for the initial qualifies.  This way you could make sure that all
-         your contacts are initialy, randomly qualified within say 30 seconds but still
-         have the contact's ongoing qualifies at a 5 minute interval.
+         ASTERISK-25377 #close
+         Reported by Mark Michelson
 
-         If max_initial_qualify_time is > 0, the formula is initial_interval =
-         min(max_initial_interval, qualify_timeout * random().  If not set,
-         qualify_timeout is used.
+         Change-Id: I6a4d34a56ff73ff4f661b0075aeba5461b7f3190
 
-         The default is "0" (disabled).
+2015-05-13 15:41 +0000 [42c40b59b6]  Jonathan Rose <jrose@digium.com>
 
-         ASTERISK-24863 #close
+       * Message.c: Clear message channel frames on cleanup
 
-         Change-Id: Ib80498aa1ea9923277bef51d6a9015c9c79740f4
-         Tested-by: George Joseph <george.joseph@fairview5.com>
+         The message channel is a special channel that doesn't actually process frames.
+         However, certain actions can cause frames to be placed in the channel's read
+         queue including the Hangup application which is called on the channel after
+         each message is processed. Since the channel will continually be reused for
+         many messages, it's necessary to flush these frames at some point.
 
-2015-04-15 16:08 +0000 [5d218cde87]  George Joseph <george.joseph@fairview5.com>
+         ASTERISK-25083 #close
+         Reported by: Jonathan Rose
 
-       * More .gitignore updates
+         Change-Id: Idf18df73ccd8c220be38743335b5c79c2a4c0d0f
+         (cherry picked from commit 02c513058905dae19f28393ea840a47ae4a9e66d)
 
-         Added .pyc and .sha1 to the top-level .gitignore.
+2015-09-02 17:26 +0000 [a1e1d8e815]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I7dfc4f554d54d22947b38140d3305007503cc16a
-         Tested-by: George Joseph <george.joseph@fairview5.com>
+       * res_pjsip: Fix contact refleak on stateful responses.
 
-2015-04-15 13:36 +0000 [97f83c4c53]  Matt Jordan <mjordan@digium.com>
+         When sending a stateful response, creation of the transaction can fail,
+         most commonly because we are trying to create a transaction from a
+         retransmitted request. When creation of the transaction fails, we end up
+         leaking a reference to a contact that was bumped when the response was
+         created.
 
-       * Merge "Build System: Replace comment about setting menuselect defaults." into 13
-2015-04-14 13:16 +0000 [abd56db3e0]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+         This patch adds the missing deref and fixes the reference leak.
 
-       * cel_pgsql: Fix name string for log on unable allocate memory.
+         Change-Id: I2f97ad512aeb1b17e87ca29ae0abacb4d6395f07
 
-         The LOG_ERROR has reference to CDR instead of CEL  for LENGTHEN_BUF1 and
-         LENGTHEN_BUF2.
+2015-09-02 12:41 +0000 [9f5e1c0e56]  Joshua Colp <jcolp@digium.com>
 
-         ASTERISK-24965 #close
-         Reported by: Rodrigo Ramirez Norambuena
+       * pbx: Fix crash when issuing "core show hints" with long pattern match.
 
-         Change-Id: Icc818697d7d66d34bfe3048cdd15ca2b06c89744
-2015-04-14 13:48 +0000 [222fbe1d9a]  Corey Farrell <git@cfware.com>
+         When issuing the "core show hints" CLI command a combination of both
+         the hint extension and context is created. This uses a fixed size
+         buffer expecting that the extension will not exceed maximum extension
+         length. When the extension is actually a pattern match this constraint
+         does not hold true, and the extension may exceed the maximum extension
+         length. In this case extra characters are written past the end of the
+         fixed size buffer.
 
-       * Build System: Replace comment about setting menuselect defaults.
+         This change makes it so the construction of the combined hint extension
+         and context can not exceed the size of the buffer.
 
-         The Makefile claims that you can set default menuselect options by creating
-         ~/.asterisk.makeopts or /etc/asterisk.makeopts, but those files have never
-         been respected in Asterisk 11 or 13.  This changes the comment to accurately
-         reflect that these files are not automatically used by the build system.
+         ASTERISK-25367 #close
 
-         ASTERISK-13721 #close
-         Reported by: pj
+         Change-Id: Idfa1b95d0d4dc38e675be7c1de8900b3f981f499
 
-         Change-Id: Ibde804ff196283def49ccb9432fbf224a22586e2
+2015-07-02 14:51 +0000 [1c89230e2a]  Richard Mudgett <rmudgett@digium.com>
 
-2015-04-12 09:08 +0000 [07e729cc7b]  Rodrigo Ramírez Norambuena <decipher.hk@gmail.com>
+       * PJSIP XML, XPIDF: Fix buffer size overwrite memory corruption error.
 
-       * cdr_pgsql: Fix CLI "cdr show pgsql status" command.
+         When res_pjsip body generator modules were generating XML or XPIDF
+         response bodies, there was a chance that the generated body would be the
+         exact size of the supplied buffer.  Adding the nul string terminator would
+         then write beyond the end of the buffer and potentially corrupt memory.
 
-         The command always showed the usage information.
+         * Fix MALLOC_DEBUG high fence violations caused by adding a nul string
+         terminator on the end of a buffer for XML or XPIDF response bodies.
 
-         * Fix the error in command validation for CLI_SHOWUSAGE.
+         * Made calls to pj_xml_print() safer if the XML prolog is requested.  Due
+         to a bug in pjproject, the return value could be -1 _or_
+         AST_PJSIP_XML_PROLOG_LEN if the supplied buffer is not large enough.
 
-         ASTERISK-24959 #close
-         Reported by: Rodrigo Ramirez Norambuena
+         * Updated the doxygen comment of AST_PJSIP_XML_PROLOG_LEN to describe the
+         return value of pj_xml_print() when the supplied buffer is not large
+         enough.
 
-         Change-Id: I584f0936bb01001336a468a55c1d05d79fe795d5
-         (cherry picked from commit 23a180cade51e84b9def65b05759c3cb9feba225)
+         ASTERISK-25168
+         Reported by: Carl Fortin
 
-2015-04-13 19:06 +0000 [7d43d85bea]  George Joseph <george.joseph@fairview5.com>
+         Change-Id: Id70e1d373a6a2b2bd9e678b5cbc5e55b308981de
 
-       * .gitignore updates for master/13
+2015-09-01 09:05 +0000 [2f2c35e91d]  Mark Michelson <mmichelson@digium.com>
 
-         Added products of ./bootstrap
+       * res_pjsip_pubsub: re-re-fix persistent subscription storage.
 
-         Added nmenuselect and gmenuselect to menuselect/
+         A recent change to res_pjsip_pubsub switched to using pjsip_msg_print as
+         a means of writing an appropriate packet to persistent storage. While
+         this partially solved the issue, it had its own problems.
+         pjsip_msg_print will always add a Content-Length header to the message
+         it prints. Frequent restarts of Asterisk can result in persistent
+         subscriptions being written with five or more Content-Length headers. In
+         addition, sometimes some apparent corruption of individual headers could
+         be seen.
 
-         Change-Id: Ied658463958bafc04a9aff9ebc28e40c116a6e35
+         This aims to fix the problem by not running a parsed message through an
+         interpreter but rather by taking the raw message and saving it. The
+         logic for what to save is going to be different depending on whether a
+         SUBSCRIBE was received from the wire or if it was pulled from
+         persistence. When receiving a packet from the wire, when using a
+         streaming transport, the rdata->pkt_info.packet may contain multiple SIP
+         messages or fragments. However, the rdata->msg_info.msg_buf will always
+         contain the current SIP message to be processed. When pulling from
+         persistence, though, the rdata->msg_info.msg_buf will be NULL since no
+         transport actually handled the packet. However, since we know that we
+         will always ever pull one SIP message from persistence, we are free to
+         save directly from rdata->pkt_info.packet instead.
 
-2015-04-13 14:41 +0000 [3d27c223a5]  David M. Lee <dlee@respoke.io>
+         ASTERISK-25365 #close
+         Reported by Mark Michelson
 
-       * Fixing extconf compile
+         Change-Id: I33153b10d0b4dc8e3801aaaee2f48173b867855b
 
-         During the mass code deletion for clang support, a stray backslash was
-         left behind that was causing utils to fail to compile.
+2015-08-31 15:24 +0000 [88ee3b3ef2]  Mark Michelson <mmichelson@digium.com>
 
-         Change-Id: I60e5fa58c9a5b248bde23aaada79ff663f87a2a1
+       * Fix deadlock on presence state changes.
 
-2015-04-13 12:03 +0000 [30045b4e67]  Matt Jordan <mjordan@digium.com>
+         A deadlock was observed where three threads were competing for different
+         locks:
 
-       * Merge "build_tools/make_version: Update version parsing for Git migration" into 13
-2015-04-13 10:47 +0000 [88dbf6653e]  Joshua Colp <jcolp@digium.com>
+         * One thread held the hints lock and was attempting to lock a specific
+           hint.
+         * One thread was holding the specific hint's lock and was attempting to
+           lock the contexts lock
+         * One thread was holding the contexts lock and attempting to lock the
+           hints lock.
 
-       * Merge "res_monitor: Add dependency on func_periodic_hook." into 13
-2015-04-13 09:54 +0000 [e996d8f728]  Matt Jordan <mjordan@digium.com>
+         Clearly the second thread was doing the wrong thing here. The fix for
+         this is to make sure that the hint's lock is not held on presence state
+         changes. Something similar is already done (and commented about) for
+         device state changes.
 
-       * build_tools/make_version: Update version parsing for Git migration
+         ASTERISK-25362 #close
+         Reported by Mark Michelson
 
-         External systems - such as the Asterisk Test Suite - require knowledge of the
-         upstream branch. Unfortunately, after moving to Git, the Asterisk version
-         currently consists of only a 'GIT" prefix followed by an object blob,
-         e.g., GIT-as08d7. This makes it difficult for such systems to know what
-         features are available in a particular check out of Asterisk.
+         Change-Id: I15ec2416b92978a4c0c08273b2d46cb21aff97e2
 
-         This patch fixes this by hardcoding the branch in a variable in the
-         make_version script. Since the mainline branches are not changed often -
-         typically only once a year - this is a reasonable approach to solving
-         the problem, and is more reliable than parsing the output of 'git branch
-         -vv'. Branches that track off of an upstream primary branch will then get the
-         benefit of knowing which mainline branch they are currently based off
-         of.
+2015-08-28 20:22 +0000 [8842637d8f]  Joshua Colp <jcolp@digium.com>
 
-         ASTERISK-24954 #close
+       * res_pjsip_sdp_rtp: Fix multiple keepalive scheduled items.
 
-         Change-Id: I8090d5d548b6d19e917157ed530b914b7eaf9799
+         The keepalive support in res_pjsip_sdp_rtp currently assumes
+         that a stream will only be negotiated once. This is false.
+         If the stream is replaced and later added back it can be
+         negotiated again causing multiple keepalive scheduled items
+         to exist. This change explicitly deletes the existing
+         keepalive scheduled item before adding the new one.
 
-2015-04-12 12:59 +0000 [d1a6f1a9f9]  Matt Jordan <mjordan@digium.com>
+         The res_pjsip_sdp_rtp module also does not stop RTP
+         keepalives or timeout timer if the stream has been
+         replaced. This change adds a callback to the session media
+         interface to allow a media stream to be stopped without
+         the resources being destroyed. This allows the scheduled
+         items and RTP to be stopped when the stream no longer
+         exists.
 
-       * git migration: Remove support for file versions
+         ASTERISK-25356 #close
 
-         Git does not support the ability to replace a token with a version
-         string during check-in. While it does have support for replacing a
-         token on clone, this is somewhat sub-optimal: the token is replaced
-         with the object hash, which is not particularly easy for human
-         consumption. What's more, in practice, the source file version was often
-         not terribly useful. Generally, when triaging bugs, the overall version
-         of Asterisk is far more useful than an individual SVN version of a file.
-         As a result, this patch removes Asterisk's support for showing source file
-         versions.
+         Change-Id: Ibe6a7cc0927c87326fd5f1c0d4ad889dbfbea1de
 
-         Specifically, it does the following:
-         * main/asterisk:
-           - Refactor the file_version structure to reflect that it no longer
-             tracks a version field.
-           - Alter the "core show file version" CLI command such that it always
-             reports the version of Asterisk. The file version is no longer
-             available.
+2015-08-28 19:57 +0000 [06d42fede3]  Joshua Colp <jcolp@digium.com>
 
-         * main/manager: The Version key now always reports the Asterisk version.
+       * sched: ast_sched_del may return prematurely due to spurious wakeup
 
-         * UPGRADE: Add notes for:
-           - Modification to the ModuleCheck AMI Action.
-           - Modification of the "core show file version" CLI command.
+         When deleting a scheduled item if the item in question is currently
+         executing the ast_sched_del function waits until it has completed.
+         This is accomplished using ast_cond_wait. Unfortunately the
+         ast_cond_wait function can suffer from spurious wakeups so the
+         predicate needs to be checked after it returns to make sure it has
+         really woken up as a result of being signaled.
 
-         Change-Id: Ia932d3c64cd18a14a3c894109baa657ec0a85d28
+         This change adds a loop around the ast_cond_wait to make sure that
+         it only exits when the executing task has really completed.
 
-2015-04-13 06:19 +0000 [0e4b997cd7]  Corey Farrell <git@cfware.com>
+         ASTERISK-25355 #close
 
-       * res_monitor: Add dependency on func_periodic_hook.
+         Change-Id: I51198270eb0b637c956c61aa409f46283432be61
 
-         OPTIONAL_API has conditionals to define AST_OPTIONAL_API and
-         AST_OPTIONAL_API_ATTR differently based on if AST_API_MODULE is defined.
-         Unfortunately this is inside the include protection block, so only the
-         first status of AST_API_MODULE is respected.  For example res_monitor
-         is an optional API provider, but uses func_periodic_hook.  This makes
-         func_periodic_hook non-optional to res_monitor.
+2015-07-23 13:11 +0000 [74d6ae20cb]  Mark Michelson <mmichelson@digium.com>
 
-         ASTERISK-17608 #close
-         Reported by: Warren Selby
+       * Local channels: Alternate solution to ringback problem.
 
-         Change-Id: I8fcf2a5e7b481893e17484ecde4f172c9ffb5679
+         Commit 54b25c80c8387aea9eb20f9f4f077486cbdf3e5d solved an issue where a
+         specific scenario involving local channels and a native local RTP bridge
+         could result in ringback still being heard on a calling channel even
+         after the call is bridged.
 
-2015-04-12 15:27 +0000 [91c1ed7ef6]  Matt Jordan <mjordan@digium.com>
+         That commit caused many tests in the testsuite to fail with alarming
+         consequences, such as not sending DialBegin and DialEnd events, and
+         giving incorrect hangup causes during calls.
 
-       * Merge "main/editline: Add .gitignore." into 13
-2015-04-12 06:12 +0000 [a77c31b99c]  Corey Farrell <git@cfware.com>
+         This commit reverts the previous commit and implements and alternate
+         solution. This new solution involves only passing AST_CONTROL_RINGING
+         frames across local channels if the local channel is in AST_STATE_RING.
+         Otherwise, the frame does not traverse the local channels. By doing
+         this, we can ensure that a playtones generator does not get started on
+         the calling channel but rather is started on the local channel on which
+         the ringing frame was initially indicated.
 
-       * main/editline: Add .gitignore.
+         ASTERISK-25250 #close
+         Reported by Etienne Lessard
 
-         This patch adds a .gitignore for main/editline to ignore all build results.
+         Change-Id: I3bc87a18a38eb2b68064f732d098edceb5c19f39
 
-         Change-Id: I68c7bf375ea46282689e5a706534b69fca233b5d
+2015-08-26 05:40 +0000 [54a09e4cb5]  Joshua Colp <jcolp@digium.com>
 
-2015-04-11 23:22 +0000 [d918c3b78e]  Matt Jordan <mjordan@digium.com>
+       * chan_sip: Allow call pickup to set the hangup cause.
 
-       * .gitignore: Ignore tarballs (*.gz)
+         The call pickup implementation in chan_sip currently sets the channel
+         hangup cause to "normal clearing" if call pickup is successfully
+         performed. This action overwrites the "answered elsewhere" hangup cause
+         set by the call pickup code and can result in the SIP device in
+         question showing a missed call when it should not.
 
-         This patch updates the root .gitignore file to ignore files with a .gz
-         extension. This will cause git to ignore downloaded sound tarballs in
-         the the sounds/ directory.
+         This change sets the hangup cause to "normal clearing" as a
+         default initially but allows the call pickup to change it as
+         needed.
 
-         Change-Id: I1e42fbfa02a8884231507b683e8e49ac3e278aaa
+         ASTERISK-25346 #close
 
-2015-04-11 13:20 +0000 [555b5f5d30]  George Joseph <george.joseph@fairview5.com>
+         Change-Id: I00ac2c269cee9e29586ee2c65e83c70e52a02cff
 
-       * Add .gitignore and .gitreview files
+2015-08-25 07:17 +0000 [942d0ba96f]  Joshua Colp <jcolp@digium.com>
 
-         Add the .gitignore and .gitreview files to the asterisk repo.
+       * res_pjsip: Add common ast_sip_get_host_ip API.
 
-         NB:  You can add local ignores to the .git/info/exclude file
-         without having to do a commit.
+         Modules commonly used the pj_gethostip function for retrieving the
+         IP address of the host. This function does not cache the result and may
+         result in a DNS lookup occurring, or additional work. If the DNS
+         server is unreachable or network issues arise this can cause the
+         pj_gethostip function to block for a period of time.
 
-         Common ignore patterns are in the top-level .gitignore file.
-         Subdirectory-specific ignore patterns are in their own .gitignore
-         files.
+         This change adds an ast_sip_get_host_ip and ast_sip_get_host_ip_string
+         function which does the same thing but caches the host IP address at
+         module load time. This results in no additional work being done each
+         time the local host IP address is needed.
 
-         Change-Id: I4c8af3b8e3739957db545f7368ac53f38e99f696
-         Tested-by: George Joseph
+         ASTERISK-25342 #close
 
-2015-04-11 10:35 +0000 [5807ca519c]  Matthew Jordan <mjordan@digium.com>
+         Change-Id: I3205deb679b01fa5ac05a94b623bfd620a2abe1e
 
-       * Blocked revisions 434708
+2015-08-24 06:21 +0000 [ad4e895928]  Joshua Colp <jcolp@digium.com>
 
-         ........
-         main/event: Remove unnecessary assignment of negative value to enum
+       * bridge: Kick channel from bridge if hung up during action.
 
-         When cleaning up some clang compiler warnings, the comparison of a negative
-         value to an unsigned enum was removed. However, the initial assignment of a
-         negative value to said enum remained in the variable declaration. This patch
-         removes that assignment.
+         When executing an action in a bridge it is possible for the
+         channel to be hung up without the bridge becoming aware of it.
+         This is most easily reproducible by hanging up when the bridge
+         is streaming DTMF due to a feature timeout. This change makes
+         it so after action execution the channel is checked to determine
+         if it has been hung up and if it has it is kicked from the bridge.
 
-         Thanks to ibercom in #asterisk-bugs for pointing it out.
+         ASTERISK-25341 #close
 
+         Change-Id: I6dd8b0c3f5888da1c57afed9e8a802ae0a053062
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434709 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-08-24 11:04 +0000 [4083e543fd]  Joshua Colp <jcolp@digium.com>
 
-2015-04-11 10:26 +0000 [d0d78d5732]  dkdegroot (License 6600)
+       * res_pjsip_pubsub: On recreated notify fail deleted sub_tree is referenced
 
-       * clang compiler warnings: Fix various warnings for tests
+         When recreating a subscription it is possible for a freed sub_tree
+         to be referenced when the initial NOTIFY fails to be created.
 
-         This patch fixes a variety of clang compiler warnings for unit tests. This
-         includes autological comparison issues, ignored return values, and
-         interestingly enough, one embedded function. Fun!
+         Change-Id: I681c215309aad01b21d611c2de47b3b0a6022788
 
-         Review: https://reviewboard.asterisk.org/r/4555
+2015-04-16 13:20 +0000 [0b04269e73]  Scott Griepentrog <scott@griepentrog.com>
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4555.patch submitted by dkdegroot (License 6600)
-         ........
+       * res_pjsip_pubsub: On notify fail deleted sub_tree is then referenced
 
-         Merged revisions 434705 from http://svn.asterisk.org/svn/asterisk/branches/11
+         This change makes the send_notify of the sub_tree
+         not happen when the sub_tree has been deleted due
+         to the notify call failing, which avoids a crash.
 
+         ASTERISK-24970 #close
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434706 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: I1f20ffc08b192f59c457293b218025a693992cbf
+         (cherry picked from commit 8d4ce7cc2b87317005588e700b278a8cca7005c8)
 
-2015-04-11 10:10 +0000 [4cf7d0bf01]  Juergen Spies (License 6698)
+2015-08-14 15:46 +0000 [f049ad951b]  Mark Michelson <mmichelson@digium.com>
 
-       * res/res_pjsip_t38: Add missing initialization of t38faxmaxdatagram
+       * res_pjsip_sdp_rtp: Restore removed NULL check.
 
-         Prior to this patch, the far_max_datagram value on the UDPTL structure would
-         remain -1 if the remote endpoint fails to provide the SDP media attribute
-         T38FaxMaxDatagram. This can result in the INVITE request being rejected. With
-         this patch, we will now properly initialize the value with either the default
-         value or with the value provided by pjsip.conf's t38_udptl_maxdatagram
-         parameter.
+         When sending an RTP keepalive, we need to be sure we're not dealing with
+         a NULL RTP instance. There had been a NULL check, but the commit that
+         added the rtp_timeout and rtp_hold_timeout options removed the NULL
+         check.
 
-         Review: https://reviewboard.asterisk.org/r/4589
+         Change-Id: I2d7dcd5022697cfc6bf3d9e19245419078e79b64
 
-         ASTERISK-24928 #close
-         Reported by: Juergen Spies
-         Tested by: Juergen Spies
-         patches:
-           pjsipT38patch20150331.txt submitted by Juergen Spies (License 6698)
+2015-08-13 12:22 +0000 [fb347a4ded]  Richard Mudgett <rmudgett@digium.com>
 
+       * audiohook.c: Fix MixMonitor crash when using the r() or t() options.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434688 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         The built frame format in audiohook_read_frame_both() is now set to a
+         signed linear format before the rx and tx frames are duplicated instead of
+         only for the mixed audio frame duplication.
 
-2015-04-10 18:29 +0000 [13cd99682d]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25322 #close
+         Reported by Sean Pimental
 
-       * chan_pjsip/res_pjsip/bridge_softmix/core: Improve translation path choices.
+         Change-Id: I86f85b5c48c49e4e2d3b770797b9d484250a1538
 
-         With this patch, chan_pjsip/res_pjsip now sets the native formats to the
-         codecs negotiated by a call.
+2015-08-12 12:59 +0000 [a5049df640]  Kevin Harwell <kharwell@digium.com>
 
-         * The changes in chan_pjsip.c and res_pjsip_sdp_rtp.c set the native
-         formats to include all the negotiated audio codecs instead of only the
-         initial preferred audio codec and later the currently received audio
-         codec.
+       * chan_sip.c: wrong peer searched in sip_report_security_event
 
-         * The audio frame handling in channel.c:ast_read() is more streamlined and
-         will automatically adjust to changes in received frame formats.  The new
-         policy is to remove translation and pass the new frame format to the
-         receiver except if the translation was to a signed linear format.  A more
-         long winded version is commented in ast_read() along with some caveats.
+         In chan_sip, after handling an incoming invite a security event is raised
+         describing authorization (success, failure, etc...). However, it was doing
+         a lookup of the peer by extension. This is fine for register messages, but
+         in the case of an invite it may search and find the wrong peer, or a non
+         existent one (for instance, in the case of call pickup). Also, if the peers
+         are configured through realtime this may cause an unnecessary database lookup
+         when caching is enabled.
 
-         * The audio frame handling in channel.c:ast_write() is more streamlined
-         and will automatically adjust any needed translation to changes in the
-         frame formats sent.  Frame formats sent can change for many reasons such
-         as a recording is being played back or the bridged peer changed the format
-         it sends.  Since it is a normal expectation that sent formats can change,
-         the codec mismatch warning message is demoted to a debug message.
+         This patch makes it so that sip_report_security_event searches by IP address
+         when looking for a peer instead of by extension after an invite is processed.
 
-         * Removed the short circuit check in
-         channel.c:ast_channel_make_compatible_helper().  Two party bridges need to
-         make channels compatible with each other.  However, transfers and moving
-         channels among bridges can result in otherwise compatible channels having
-         sub-optimal translation paths if the make compatible check is short
-         circuited.  A result of forcing the reevaluation of channel compatibility
-         is that the asterisk.conf:transcode_via_slin and codecs.conf:genericplc
-         options take effect consistently now.  It is unfortunate that these two
-         options are enabled by default and negate some of the benefits to the
-         changes in channel.c:ast_read() by forcing translation through signed
-         linear on a two party bridge.
+         ASTERISK-25320 #close
 
-         * Improved the softmix bridge technology to better control the translation
-         of frames to the bridge.  All of the incoming translation is now normally
-         handled by ast_read() instead of splitting any translation steps between
-         ast_read() and the slin factory.  If any frame comes in with an unexpected
-         format then the translation path in ast_read() is updated for the next
-         frame and the slin factory handles the current frame translation.
+         Change-Id: I9b3f11549efb475b6561c64f0e6da1a481d98bc4
+2015-08-13 05:26 +0000 [7089472637]  Joshua Colp <jcolp@digium.com>
 
-         This is the final patch in a series of patches aimed at improving
-         translation path choices.  The other patches are on the following reviews:
-         https://reviewboard.asterisk.org/r/4600/
-         https://reviewboard.asterisk.org/r/4605/
+       * res_http_websocket: When shutting down a session don't close closed socket
 
-         ASTERISK-24841 #close
-         Reported by: Matt Jordan
+         Due to the use of ast_websocket_close in session termination it is
+         possible for the underlying socket to already be closed when the
+         session is terminated. This occurs when the close frame is attempted
+         to be written out but fails.
 
-         Review: https://reviewboard.asterisk.org/r/4609/
+         Change-Id: I7572583529a42a7dc911ea77a974d8307d5c0c8b
+2015-08-11 05:24 +0000 [128d2348e6]  Joshua Colp <jcolp@digium.com>
 
+       * res_http_websocket: Forcefully terminate on write errors.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434671 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         The res_http_websocket module will currently attempt to close
+         the WebSocket connection if fatal cases occur, such as when
+         attempting to write out data and being unable to. When the
+         fatal cases occur the code attempts to write a WebSocket close
+         frame out to have the remote side close the connection. If
+         writing this fails then the connection is not terminated.
 
-2015-04-10 16:03 +0000 [af458e2e60]  Kevin Harwell <kharwell@digium.com>
+         This change forcefully terminates the connection if the
+         WebSocket is to be closed but is unable to send the close frame.
 
-       * chan_sip: make progressinband default to no
+         ASTERISK-25312 #close
 
-         After the "progressinband" value setting of "never" was updated to never send a
-         183 this separated its use from the "no" value. Since "never" was the default,
-         but most users probably expect "no" this patch updates the default for the
-         "progressinband" setting to "no."
+         Change-Id: I10973086671cc192a76424060d9ec8e688602845
 
-         ASTERISK-24835 #close
-         Reported by: Andrew Nagy
-         Review: https://reviewboard.asterisk.org/r/4606/
+2015-08-10 13:43 +0000 [6b219a866c]  Richard Mudgett <rmudgett@digium.com>
 
+       * chan_dahdi.c: Flush the DAHDI write buffer after starting DTMF.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434654 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Pressing DTMF digits on a phone to go out on a DAHDI channel can result in
+         the digit not being recognized or even heard by the peer.
 
-2015-04-10 12:53 +0000 [88b0fa7755]  yaron nahum (License 6676)
+         Phone -> Asterisk -> DAHDI/channel
 
-       * res_pjsip: Add an 'auto' option for DTMF Mode
+         Turns out the DAHDI behavior with DTMF generation (and any other generated
+         tones) is exposed by the "buffers=" setting in chan_dahdi.conf.  When
+         Asterisk requests to start sending DTMF then DAHDI waits until its write
+         buffer is empty before generating any samples for the DTMF tones.  When
+         Asterisk subsequently requests DAHDI to stop sending DTMF then DAHDI
+         immediately stops generating the DTMF samples.  As a result, the more
+         samples there are in the DAHDI write buffer the shorter the time DTMF
+         actually gets sent on the wire.  If there are more samples in the write
+         buffer than the time DTMF is supposed to be sent then no DTMF gets sent on
+         the wire.  With the "buffers=12,half" setting and each buffer representing
+         20 ms of samples then the DAHDI write buffer is going to contain around
+         120 ms of samples.  For DTMF to be recognized by the peer the actual sent
+         DTMF duration needs to be a minimum of 40 ms.  Therefore, the intended
+         duration needs to be a minimum of 160 ms for the peer to receive the
+         minimum DTMF digit duration to recognize it.
 
-         This patch adds support for automatically detecting the type of DTMF that a
-         PJSIP endpoint supports. When the 'dtmf_mode' endpoint option is set to 'auto',
-         the channel created for an endpoint will attempt to determine if RFC 4733
-         DTMF is supported. If so, it will use that DTMF type. If not, the DTMF type
-         for the channel will be set to inband.
+         A simple and effective solution to work around the DAHDI behavior is for
+         Asterisk to flush the DAHDI write buffer when sending DTMF so the full
+         duration of DTMF is actually sent on the wire.  When someone is going to
+         send DTMF they are not likely to be talking before sending the tones so
+         the flushed write samples are expected to just contain silence.
 
-         Review: https://reviewboard.asterisk.org/r/4438
+         * Made dahdi_digit_begin() flush the DAHDI write buffer after requesting
+         to send a DTMF digit.
 
-         ASTERISK-24706 #close
-         Reported by: yaron nahum
-         patches:
-           yaron_patch_3_Feb.diff submitted by yaron nahum (License 6676)
+         ASTERISK-25315 #close
+         Reported by John Hardin
 
+         Change-Id: Ib56262c708cb7858082156bfc70ebd0a220efa6a
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434637 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-08-05 14:21 +0000 [fc4455216a]  Richard Mudgett <rmudgett@digium.com>
 
-2015-04-10 11:59 +0000 [16afee4651]  George Joseph <george.joseph@fairview5.com>
+       * chan_dahdi.c: Lock private struct for ast_write().
 
-       * res_pjsip_config_wizard: Cleanup load unload
+         There is a window of opportunity for DTMF to not go out if an audio frame
+         is in the process of being written to DAHDI while another thread starts
+         sending DTMF.  The thread sending the audio frame could be past the
+         currently dialing check before being preempted by another thread starting
+         a DTMF generation request.  When the thread sending the audio frame
+         resumes it will then cause DAHDI to stop the DTMF tone generation.  The
+         result is no DTMF goes out.
 
-         While investigating other unload issues I realized that the load/unload process 
-         for the config wizard was pretty ugly so I've refactored it as follows...
+         * Made dahdi_write() lock the private struct before writing to the DAHDI
+         file descriptor.
 
-         When the res_pjsip sorcery instance is created the config_wizard bumps it's own 
-         module reference to prevent it from unloading while the sorcery instance is 
-         still active.  When res_pjsip unloads and it's sorcery instance is destroyed, 
-         the config wizard unrefs itself which then allows itself to unload cleanly.  
-         Since the config wizard now can't load after res_pjsip or unload before it 
-         (which should have been the correct behavior all along), I was able to remove 
-         the chunks of code in both load_module and unload_module that handled that case.
+         ASTERISK-25315
+         Reported by John Hardin
 
-         Ran the testsuite tests to insure there were no functional changes and REF_DEBUG 
-         to insure that Asterisk was shutting down cleanly with no FRACKs or leaks.
+         Change-Id: Ib4e0264cf63305ed5da701188447668e72ec9abb
 
-         Tested-by: George Joseph
-         Review: https://reviewboard.asterisk.org/r/4610/
+2015-08-10 18:23 +0000 [739fca6084]  Richard Mudgett <rmudgett@digium.com>
 
+       * res_pjsip.c: Fix crash from corrupt saved SUBSCRIBE message.
 
+         If the saved SUBSCRIBE message is not parseable for whatever reason then
+         Asterisk could crash when libpjsip tries to parse the message and adds an
+         error message to the parse error list.
 
+         * Made ast_sip_create_rdata() initialize the parse error rdata list.  The
+         list is checked after parsing to see that it remains empty for the
+         function to return successful.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434619 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         ASTERISK-25306
+         Reported by Mark Michelson
 
-2015-04-10 11:37 +0000 [125acc52fe]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ie0677f69f707503b1a37df18723bd59418085256
 
-       * bridge_softmix.c,channel.c: Minor code simplification and cleanup.
+2015-08-06 12:48 +0000 [bfb15bea06]  Mark Michelson <mmichelson@digium.com>
 
-         * Made code easier to follow in bridge_softmix.c:analyse_softmix_stats()
-         and made some debug messages more helpful.
+       * res_pjsip_pubsub: More accurately persist packet.
 
-         * Made some debug and warning messages more helpful in
-         channel.c:set_format().
+         The pjsip_rx_data structure has a pkt_info.packet field on it that is
+         the packet that was read from the transport. For datagram transports,
+         the packet read from the transport will correspond to the SIP message
+         that arrived. For streamed transports, however, it is possible to read
+         multiple SIP messages in one packet.
 
-         Review: https://reviewboard.asterisk.org/r/4607/
+         In a recent case, Asterisk crashed on a system where TCP was being used.
+         This is because at some point, a read from the TCP socket resulted in a
+         200 OK response as well as an incoming SUBSCRIBE request being stored in
+         rdata->pkt_info.packet. When the SUBSCRIBE was processed, the
+         combination 200 OK and SUBSCRIBE was saved in persistent storage. Later,
+         a restart of Asterisk resulted in the crash because the persistent
+         subscription recreation code ended up building the 200 OK response
+         instead of a SUBSCRIBE request, and we attempted to access
+         request-specific data.
 
+         The fix here is to use the pjsip_msg_print() function in order to
+         persist SUBSCRIBE requests. This way, rather than using the raw socket
+         data, we use the parsed SIP message that PJSIP has given us. If we
+         receive multiple SIP messages from a single read, we will be sure only
+         to save off the relevant SIP message. There also is a safeguard put in
+         place to make sure that if we do end up reconstructing a SIP response,
+         it will not cause a crash.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434617 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         ASTERISK-25306 #close
+         Reported by Mark Michelson
 
-2015-04-10 11:28 +0000 [a63f7ad04a]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: I4bf16f7b76a2541d10b55de82bcd14c6e542afb2
 
-       * translate.c: Only select audio codecs to determine the best translation choice.
+2015-08-04 16:12 +0000 [9e93ad109b]  Joshua Colp <jcolp@digium.com>
 
-         Given a source capability of h264 and ulaw, a destination capability of
-         h264 and g722 then ast_translator_best_choice() would pick h264 as the
-         best choice even though h264 is a video codec and Asterisk only supports
-         translation of audio codecs.  When the audio starts flowing, there are
-         warnings about a codec mismatch when the channel tries to write a frame to
-         the peer.
+       * res_pjsip: Ensure sanitized XML is NULL terminated.
 
-         * Made ast_translator_best_choice() only select audio codecs.
+         The ast_sip_sanitize_xml function is used to sanitize
+         a string for placement into XML. This is done by examining
+         an input string and then appending values to an output
+         buffer. The function used by its implementation, strncat,
+         has specific behavior that was not taken into account.
+         If the size of the input string exceeded the available
+         output buffer size it was possible for the sanitization
+         function to write past the output buffer itself causing
+         a crash. The crash would either occur because it was
+         writing into memory it shouldn't be or because the resulting
+         string was not NULL terminated.
 
-         * Restore a check in channel.c:set_format() lost after v1.8 to prevent
-         trying to set a non-audio codec.
+         This change keeps count of how much remaining space is
+         available in the output buffer for text and only allows
+         strncat to use that amount.
 
-         This is an intermediate patch for a series of patches aimed at improving
-         translation path choices for ASTERISK-24841.
+         Since this was exposed by the res_pjsip_pidf_digium_body_supplement
+         module attempting to send a large message the maximum allowed
+         message size has also been increased in it.
 
-         This patch is a complete enough fix for ASTERISK-21777 as the v11 version
-         of ast_translator_best_choice() does the same thing.  However, chan_sip.c
-         still somehow tries to call ast_codec_choose() which then calls
-         ast_best_codec() with a capability set that doesn't contain any audio
-         formats for the incoming call.  The remaining warning message seems to be
-         a benign transient.
+         A unit test has also been added which confirms that the
+         ast_sip_sanitize_xml function is providing NULL terminated
+         output even when the input length exceeds the output
+         buffer size.
 
-         ASTERISK-21777 #close
-         Reported by: Nick Ruggles
+         ASTERISK-25304 #close
 
-         ASTERISK-24380 #close
-         Reported by: Matt Jordan
+         Change-Id: I743dd9809d3e13d722df1b0509dfe34621398302
 
-         Review: https://reviewboard.asterisk.org/r/4605/
-         ........
+2015-02-13 11:21 +0000 [f6dcbd9707]  Richard Mudgett <rmudgett@digium.com>
 
-         Merged revisions 434614 from http://svn.asterisk.org/svn/asterisk/branches/11
+       * res_pjsip_session: Fix double re-INVITE collision crash.
 
+         A multi-asterisk box setup with direct media enabled would occasionally
+         crash when two re-INVITE collisions on a call leg happen in a row.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434615 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         The re-INVITE logic only had one timer struct to defer the re-INVITE.
+         When the second collision happens the timer struct is overwritten and put
+         into the timer heap again.  Resources for the first timer are leaked and
+         the heap has two positions occupied by the same timer struct.  Now the
+         heap ordering is potentially corrupted, the timer will fire twice, and any
+         resources allocated for the second timer will be released twice.
 
-2015-04-10 09:55 +0000 [c9791dba1f]  Matthew Jordan <mjordan@digium.com>
+         * The solution is to put the collided re-INVITE into the delayed requests
+         queue with all the other delayed requests and cherry pick the next request
+         that can come off the queue when an event happens.
 
-       * res/ari: Fix model validation for ChannelHold event
+         * Changed to put delayed BYE requests at the head of the delayed queue.
+         There is no sense in processing delayed UPDATEs and re-INVITEs when a BYE
+         has been requested.
 
-         When the ChannelHold event was added, the 'musicclass' parameter was
-         erroneously removed. This caused the ChannelHold events to be rejected as
-         they failed model validation. This patch updates the Swagger schema such that
-         it now properly reflects the event that is being created.
+         * Made the start of a BYE request flush the delayed requests queue to
+         prevent a delayed request from overlapping the BYE transaction.  I saw a
+         few cases where a delayed re-INVITE got started after the BYE transaction
+         started.
 
-         Hooray for tests that catch things like this.
+         * Changed the delayed_request struct to use an enum instead of a string
+         for the request method.  Cherry picking the queue is easier with an enum
+         than string comparisons and the compiler can warn if a switch statement
+         does not cover all defined enum values.
 
+         * Improved the debug output to give more information.  It helps to know
+         which channel is involved with an endpoint.  Trunks can have many channels
+         associated with the endpoint at the same time.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434597 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         ASTERISK-24727 #close
+         Reported by: Mark Michelson
 
-2015-04-10 07:39 +0000 [c39faa4729]  Y Ateya (License 6693)
+         Review: https://reviewboard.asterisk.org/r/4414/
 
-       * channels/chan_iax2: Improve POKE expiration time calculation for lossy networks
+         Change-Id: Ib05700c3a13ceac53b17d66099ef0d296a5e1863
 
-         POKE is used to check for peer availability; however, in networks with packet
-         loss, the current calculations may result in POKE expiration times that are too
-         short. This patch alters the expiration/retry time logic to take into account
-         the last known qualify round trip time, as opposed to always using a static
-         value for each peer.
+2015-01-16 16:12 +0000 [4350fd22c8]  Mark Michelson <mmichelson@digium.com>
 
-         Review: https://reviewboard.asterisk.org/r/4536
+       * Fix problem where a hung channel could occur on a failed blind transfer.
 
-         ASTERISK-22352 #close
-         Reported by: Frederic Van Espen
+         Different clients react differently to being told that a blind transfer
+         has failed. Some will simply send a BYE and be done with it. Others will
+         attempt to reinvite themselves back onto the call.
 
-         ASTERISK-24894 #close
-         Reported by: Y Ateya
-         patches:
-           poke_noanswer_duration.diff submitted by Y Ateya (License 6693)
-         ........
+         In the latter case, we were creating a new channel and then leaving it to
+         sit forever doing nothing. With this code change, that new channel will
+         not be created and the dialog with the transferring channel will be cleaned
+         up properly.
 
-         Merged revisions 434564 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ASTERISK-24624 #close
+         Reported by Zane Conkle
 
+         Review: https://reviewboard.asterisk.org/r/4339
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434565 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: I76e440e08e603c1eea40a14951e7b171c0472a55
 
-2015-04-09 17:35 +0000 [75c2c85962]  George Joseph <george.joseph@fairview5.com>
+2015-07-18 11:16 +0000 [fae081ad5b]  Joshua Colp <jcolp@digium.com>
 
-       * res_pjsip_phoneprov_provider: Fix reference leak on unload
+       * pjsip: Add rtp_timeout and rtp_timeout_hold endpoint options.
 
-         res_pjsip_phoneprov_provider was leaking references to phoneprov objects due to 
-         a missing OBJ_NODATA in an ao2_callback in load_users().  Rather than adding the 
-         OBJ_NODATA, I changed load_users to use a more straightforward ao2_iterator.  
-         This plugged the leak but exposed an unload order issue between 
-         res_pjsip_phoneprov_provider, res_phoneprov and res_pjsip.
+         This change adds support for the 'rtp_timeout' and 'rtp_timeout_hold'
+         endpoint options. These allow the channel to be hung up if RTP
+         is not received from the remote endpoint for a specified number of
+         seconds.
 
-         res_pjsip_phoneprov_provider unloads first, then res_phoneprov, then res_pjsip.  
-         Since res_pjsip_phoneprov_provider uses res_pjsip's sorcery instance, when it 
-         unloads, it's objects are still in the sorcery instance.  When res_pjsip 
-         unloads, it destroys all its objects including res_pjsip_phoneprov_provider's.  
-         The phoneprov destructor then attempts to unregister the extension from 
-         res_phoneprov but because res_phoneprov is already cleaned up, its users 
-         container is gone and we get a FRACK.
+         ASTERISK-25259 #close
 
-         Simple solution, check for the NULL users container before attempting to remove 
-         the entry. Duh.
+         Change-Id: I3f39daaa7da2596b5022737b77799d16204175b9
 
-         Ran tests/res_phoneprov/res_phoneprov_provider.  No leaks in 
-         res_pjsip_phoneprov_provider and no FRACKs.
+2015-07-09 14:17 +0000 [d66abb6746]  Mark Michelson <mmichelson@digium.com>
 
-         Reported-by: Corey Farrell
-         Tested-by: George Joseph
-         Review: https://reviewboard.asterisk.org/r/4608/
-         ASTERISK-24935 #close
+       * res_pjsip: Add rtp_keepalive endpoint option.
 
+         This adds an "rtp_keepalive" option for PJSIP endpoints. Similar to the
+         chan_sip option, this specifies an interval, in seconds, at which we
+         will send RTP comfort noise frames. This can be useful for keeping RTP
+         sessions alive as well as keeping NAT associations alive during lulls.
 
+         ASTERISK-25242 #close
+         Reported by Mark Michelson
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434545 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: I683bdc206c8c7def586ecaa64dcf2b86550be3bf
 
-2015-04-09 17:31 +0000 [73c286a393]  George Joseph <george.joseph@fairview5.com>
+2015-07-16 09:46 +0000 [1b744ab684]  Joshua Colp <jcolp@digium.com>
 
-       * loader/main: Don't set ast_fully_booted until deferred reloads are processed
+       * chan_pjsip: Don't change formats when frame of unsupported format is received.
 
-         Until we have a true module management facility it's sometimes necessary for one 
-         module to force a reload on another before its own load is complete.  If 
-         Asterisk isn't fully booted yet, these reloads are deferred.  The problem is 
-         that asterisk reports fully booted before processing the deferred reloads which 
-         means Asterisk really isn't quite ready when it says it is.
+         Receipt of an RTP packet currently causes the formats on an PJSIP channel to
+         change to the format of the RTP packet. In some off-nominal cases it's possible
+         for this to be a format that has not been configured or negotiated. This change
+         makes it so only formats explicitly configured on the endpoint are allowed.
 
-         This patch moves the report of fully booted after the processing of the deferred 
-         reloads is complete.
+         ASTERISK-25258 #close
 
-         Since the pjsip stack has the most number of related modules, I ran the 
-         channels/pjsip testsuite to make sure there aren't any issues.  All tests 
-         passed.
+         Change-Id: If93d641fb6418a285928839300d7854cab8c1020
 
-         Tested-by: George Joseph
-         Review: https://reviewboard.asterisk.org/r/4604/
+2015-07-15 15:40 +0000 [147b86a8d1]  Richard Mudgett <rmudgett@digium.com>
 
+       * strings.h: Fix issues with escape string functions.
 
+         Fixes for issues with the ASTERISK-24934 patch.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434544 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         * Fixed ast_escape_alloc() and ast_escape_c_alloc() if the s parameter is
+         an empty string.  If it were an empty string the functions returned NULL
+         as if there were a memory allocation failure.  This failure caused the AMI
+         VarSet event to not get posted if the new value was an empty string.
 
-2015-04-09 17:03 +0000 [5737650a67]  Kevin Harwell <kharwell@digium.com>
+         * Fixed dest buffer overwrite potential in ast_escape() and
+         ast_escape_c().  If the dest buffer size is smaller than the space needed
+         by the escaped s parameter string then the dest buffer would be written
+         beyond the end by the nul string terminator.  The num parameter was really
+         the dest buffer size parameter so I renamed it to size.
 
-       * res_pjsip: add CLI command to show global and system configuration
+         * Made nul terminate the dest buffer if the source string parameter s was
+         an empty string in ast_escape() and ast_escape_c().
 
-         Added a new CLI command for res_pjsip that shows both global and system
-         configuration settings: pjsip show settings
+         * Updated ast_escape() and ast_escape_c() doxygen function description
+         comments to reflect reality.
 
-         ASTERISK-24918 #close
-         Reported by: Scott Griepentrog
-         Review: https://reviewboard.asterisk.org/r/4597/
+         * Added some more unit test cases to /main/strings/escape to cover the
+         empty source string issues.
 
+         ASTERISK-25255 #close
+         Reported by: Richard Mudgett
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434527 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: Id77fc704600ebcce81615c1200296f74de254104
 
-2015-04-09 11:07 +0000 [1695a5b85f]  Richard Mudgett <rmudgett@digium.com>
+2015-07-14 14:36 +0000 [131f6ef8f5]  Richard Mudgett <rmudgett@digium.com>
 
-       * chan_iax2.c: Fix ref leak in iax2_request().
+       * res_parking: Fix crash if ATTENDEDTRANSFER set empty before Park.
 
-         * Increased warning message format capability string buffer size in
-         iax2_request().
+         setup_park_common_datastore() was assuming that a non-NULL string returned
+         for the ATTENDEDTRANSFER and BLINDTRANSFER channel variables are not empty
+         strings.  Things got crashy as a result.
 
-         Review: https://reviewboard.asterisk.org/r/4601/
+         * Made setup_park_common_datastore() treat the channel variable values the
+         same whether they are NULL or empty for ATTENDEDTRANSFER and
+         BLINDTRANSFER.
 
+         ASTERISK-25254 #close
+         Reported by: Richard Mudgett
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: I9a9c174b33f354f35f82cc6b7cea8303adbaf9c2
 
-2015-04-09 10:54 +0000 [92c1688edb]  Richard Mudgett <rmudgett@digium.com>
+2015-07-09 09:18 +0000 [23b7b109c2]  Joshua Colp <jcolp@digium.com>
 
-       * bridge_native_rtp.c: Defer allocation and check if it fails in native_rtp_bridge_compatible().
+       * bridge_native_rtp.c: Don't start native RTP bridging after attended transfer.
 
-         Review: https://reviewboard.asterisk.org/r/4601/
+         The bridge_native_rtp module adds a frame hook to channels which are in
+         a native RTP bridge. This frame hook is used to intercept when a hold
+         or unhold frame traverses the bridge so native RTP can be stopped or
+         started as appropriate. This is expected but exposes a specific bug
+         when attended transfers are involved.
 
+         Upon completion of an attended transfer an unhold frame is queued up
+         to take one of the channels involved off hold. After this is done
+         the channel is moved between bridges.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434508 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         When the frame hook is involved in this case for the unhold it
+         releases the channel lock and acquires the bridge lock. This
+         allows the bridge core to step in and move the channel
+         (potentially changing the bridging techology) from another thread.
+         Once completed the bridge lock is released by the bridge core.
+         The frame hook is then able to acquire the bridge lock and
+         wrongfully starts native RTP again, despite the channel no longer
+         being in the bridge or needing to start native RTP. In fact at
+         this point the frame hook is no longer attached to the channel.
 
-2015-04-09 10:42 +0000 [2679d0100a]  yaron nahum (License 6676)
+         This change makes it so the native RTP bridge data is available to
+         the frame hook when it is invoked. Whether the frame hook has
+         been detached or not is stored on the native RTP bridge data and
+         is checked by the frame hook before starting or stopping native
+         RTP bridging. If the frame hook has been detached it does nothing.
 
-       * res/res_pjsip_dlg_options: Add a module to handle in-dialog OPTIONS requests
+         ASTERISK-25240 #close
 
-         This patch adds a new session supplement that handles in-dialog OPTIONS
-         requests. Said OPTIONS requests are sent a 200 OK, as an endpoint lookup
-         for the OPTIONS request would already have been done by the time the
-         session supplement receives the inbound request.
+         Change-Id: I13a73186a05f4e5a764f81e5cd0ccec1ed1891d2
 
-         ASTERISK-24862 #close
-         Reported by: yaron nahum
-         patches:
-           res_pjsip_dlg_options.c submitted by yaron nahum (License 6676)
+2015-05-26 07:44 +0000 [0fcc530dc7]  Joshua Colp <jcolp@digium.com>
 
+       * sorcery: Fix cache creation callback.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434506 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         The cache creation callback function expects to receive a sorcery_details
+         structure and not just a standalone object.
 
-2015-04-09 07:56 +0000 [6ba6e3dffd]  dkdegroot (License 6600)
+         Change-Id: Id2a9e5f271c466686e6d0def461fa50c8b2cae53
 
-       * clang compiler warnings: Fix autological comparisons
+2015-07-08 14:39 +0000 [c8d53f2372]  Mark Michelson <mmichelson@digium.com>
 
-         This fixes autological comparison warnings in the following:
-          * chan_skinny: letohl may return a signed or unsigned value, depending on the
-            macro chosen
-          * func_curl: Provide a specific cast to CURLoption to prevent mismatch
-          * cel: Fix enum comparisons where the enum can never be negative
-          * enum: Fix comparison of return result of dn_expand, which returns a signed
-            int value
-          * event: Fix enum comparisons where the enum can never be negative
-          * indications: tone_data.freq1 and freq2 are unsigned, and hence can never be
-            negative
-          * presencestate: Use the actual enum value for INVALID state
-          * security_events: Fix enum comparisons where the enum can never be negative
-          * udptl: Don't bother to check if the return value from encode_length is less
-            than 0, as it returns an unsigned int
-          * translate: Since the parameters are unsigned int, don't bother checking
-            to see if they are negative. The cast to unsigned int would already blow
-            past the matrix bounds.
-          * res_pjsip_exten_state: Use a temporary value to cache the return of
-            ast_hint_presence_state
-          * res_stasis_playback: Fix enum comparisons where the enum can never be
-            negative
-          * res_stasis_recording: Add an enum value for the case where the recording
-            operation is in error; fix enum comparisons
-          * resource_bridges: Use enum value as opposed to -1
-          * resource_channels: Use enum value as opposed to -1
+       * res_sorcery_memory_cache: Remove ASTERISK_REGISTER_FILE() macro.
 
-         Review: https://reviewboard.asterisk.org/r/4533
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4533.patch submitted by dkdegroot (License 6600)
-         ........
+         This was part of the backport of res_sorcery_memory_cache from master
+         but will not compile in 13.
 
-         Merged revisions 434469 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Change-Id: I27b3d833acda9dd1770fdbe594964197b93779b0
 
+2015-07-06 09:24 +0000 [a72cf6ce81]  Joshua Colp <jcolp@digium.com>
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434470 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+       * res_sorcery_memory_cache: Execute stale unit test last.
 
-2015-04-08 21:05 +0000 [e05c8ae68e]  Stefan Engström (License 6691)
+         In Jenkins there is currently a sporadic test failure of a
+         variable number of sorcery memory cache unit tests. I have not
+         been able to reproduce this on the build agents themselves or
+         on my development machine.
 
-       * apps/app_queue: Prevent possible crash when evaluating queue penalty rules
+         My working theory is that the stale unit test is causing a
+         sorcery instance to persist longer than expected, causing subsequent
+         tests to fail when setting up and initializing the next
+         sorcery instance.
 
-         Although it only occurred once, a crash occurred when a queue attempted to
-         evaluate a queue penalty rule that appeared to have already been destroyed.
-         In many locations in app_queue, a test is done to see if qe->pr is NULL;
-         however, when we dispose of a queue's penalty rules, we don't set the pointer
-         to NULL after free'ing it. This patch does that to prevent any dangling
-         pointers from lingering on the queue object.
+         To see if this is the case this change moves the stale unit test
+         to execute last so no subsequent unit tests can have issues
+         initializing their sorcery instance.
 
-         Review: https://reviewboard.asterisk.org/r/4522
+         Change-Id: Ifd6550a949613be774b75fa5db12c02110f82c4a
 
-         ASTERISK-23319 #close
-         Reported by: Vadim
-         patches:
-           rb4552.patch submitted by Stefan Engström (License 6691)
-         ........
+2015-06-17 07:00 +0000 [e0cd8216bb]  Joshua Colp <jcolp@digium.com>
 
-         Merged revisions 434448 from http://svn.asterisk.org/svn/asterisk/branches/11
+       * res_sorcery_memory_cache: Remove 'prefetch' option.
 
+         To prevent confusion I am removing the prefetch option until such
+         time as it is implemented. All other functionality, however, has
+         been implemented.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434449 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         ASTERISK-25067
 
-2015-04-08 13:15 +0000 [f21b45db49]  Jonathan Rose <jrose@digium.com>
+         Change-Id: I9ce6aa3e5c6c5bc3c5baa8ff90fa036d73939895
 
-       * res_pjsip_t38: Fix FAX failures when using PJSIP with authentication
+2015-06-02 10:20 +0000 [8b2bad7740]  Joshua Colp <jcolp@digium.com>
 
-         Without this patch, if a PJSIP endpoint with udptl enabled and authentication
-         set attempted to use sendFax, the FAX session would fail during setup. This
-         was because the invite issued in response to being auth challenged would cause
-         the PJSIP channel performing the FAX to receive a second T38 framehook and
-         this would cause frames to be consumed in an inappropriate manner.
+       * test_sorcery_memory_cache_thrash: Add unit tests for thrashing the memory cache.
 
-         ASTERISK-24933 #close
-         Reported by: Jonathan Rose
-         Review: https://reviewboard.asterisk.org/r/4577/
+         This change adds a CLI command which can perform memory cache thrashing as well
+         as unit tests which perform thrashing under the following configurations:
 
+         1. Low number of unique objects that go stale after 1 second
+         2. Low number of unique objects that expire after 1 second
+         3. Low number of unique objects which are constantly updated
+         4. Large number of unique objects which exceed a defined cache size
+         5. Large number of unique objects which exceed a defined cache size
+            that also expire and go stale rapidly
+         6. Large number of unique objects which expire and go stale rapidly
+         7. Large number of unique objects
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434425 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         For all of the above there are a large number of threads constantly
+         attempting to retrieve random objects and each test runs for a few
+         seconds.
 
-2015-04-08 13:14 +0000 [4441bb6a25]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-25067
+         Reported by: Matt Jordan
 
-       * Bridging: Eliminate the unnecessary make channel compatible with bridge operation.
+         Change-Id: I8c8ceff977332c80ed4a31f10d694d48552b2f78
 
-         When a channel enters the bridging system it is first made compatible with
-         the bridge and then the bridge technology makes the channel compatible
-         with the technology.  For all but the DAHDI native and softmix bridge
-         technologies the make channel compatible with the bridge step is an
-         effective noop because the other technologies allow all audio formats.
-         For the DAHDI native bridge technology it doesn't matter because it is not
-         an initial bridge technology and chan_dahdi allows only one native format
-         per channel.  For the softmix bridge technology, it is a noop at best and
-         harmful at worst because the wrong translation path could be setup if the
-         channel's native formats allow more than one audio format.
+2015-06-04 13:11 +0000 [8575c4f18d]  Joshua Colp <jcolp@digium.com>
 
-         This is an intermediate patch for a series of patches aimed at improving
-         translation path choices.
+       * res_sorcery_memory_cache: Implement expire_on_reload option.
 
-         * Removed code dealing with the unnecessary step of making the channel
-         compatible with the bridge.
+         This change implements the expire_on_reload option for memory caches.
+         If enabled and a reload is performed all objects within the cache
+         will be expired and the cache emptied.
 
-         ASTERISK-24841
+         ASTERISK-25067
          Reported by: Matt Jordan
 
-         Review: https://reviewboard.asterisk.org/r/4600/
-
-
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: Id46aa1957d660556700e689e195eed57c989b85e
 
-2015-04-08 11:40 +0000 [f767440906]  mhej (license 6085)
+2015-06-04 05:33 +0000 [da52527136]  Joshua Colp <jcolp@digium.com>
 
-       * Security/tcptls: MitM Attack potential from certificate with NULL byte in CN.
-
-         When registering to a SIP server with TLS, Asterisk will accept CA signed
-         certificates with a common name that was signed for a domain other than the
-         one requested if it contains a null character in the common name portion of
-         the cert. This patch fixes that by checking that the common name length
-         matches the the length of the content we actually read from the common name
-         segment. Some certificate authorities automatically sign CA requests when
-         the requesting CN isn't already taken, so an attacker could potentially
-         register a CN with something like www.google.com\x00www.secretlyevil.net
-         and have their certificate signed and Asterisk would accept that certificate
-         as though it had been for www.google.com - this is a security fix and is
-         noted in AST-2015-003.
+       * res_sorcery_memory_cache: Add test event when a refresh occurs.
 
-         ASTERISK-24847 #close
-         Reported by: Maciej Szmigiero
-         Patches:
-          asterisk-null-in-cn.patch submitted by mhej (license 6085)
-         ........
+         This change adds a testsuite event for when a refresh occurs.
+         This is useful as it provides a guaranteed mechanism of knowing when
+         it has occurred instead of waiting an arbitrary amount of time.
 
-         Merged revisions 434337 from http://svn.asterisk.org/svn/asterisk/branches/1.8
-         ........
+         ASTERISK-25067
+         Reported by: Matt Jordan
 
-         Merged revisions 434338 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Change-Id: Iaa6b8d2d6bab7f99ee08e1c8908b8272a8987e65
 
+2015-05-26 07:34 +0000 [f596b4a85c]  Joshua Colp <jcolp@digium.com>
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434384 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+       * res_sorcery_memory_cache: Add CLI commands and AMI actions.
 
-2015-04-08 11:23 +0000 [1712d16825]  Richard Mudgett <rmudgett@digium.com>
+         This change adds the following CLI commands and AMI actions:
 
-       * format_cache.c: Add missing slin12 format to ast_format_cache_is_slinear().
+         sorcery memory cache show
+         sorcery memory cache dump
+         sorcery memory cache expire
+         sorcery memory cache stale
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434357 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         SorceryMemoryCacheExpire
+         SorceryMemoryCacheExpireObject
+         SorceryMemoryCacheStale
+         SorceryMemoryCacheStaleObject
 
-2015-04-08 07:33 +0000 [ae39dd1f46]  Matthew Jordan <mjordan@digium.com>
+         These allow both examination and manipulation of sorcery memory
+         caches from external sources.
 
-       * chan_iax2: Fix compilation issue due to funky merge
+         Cached objects can be explicitly expired from a cache or marked
+         as stale. If expired they are immediately removed. If marked as
+         stale they will be background refreshed when next retrieved.
 
-         Don't mix declarations and code
+         ASTERISK-25067
+         Reported by Matt Jordan
 
+         Change-Id: I68e03cfd8c34b5e07f4b6ee4fd93a3f4a00a3d9e
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434314 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-05-26 13:01 +0000 [9c2de310be]  Mark Michelson <mmichelson@digium.com>
 
-2015-04-08 07:00 +0000 [05397ad01e]  Jaco Kroon (License 5671)
+       * res_sorcery_memory_cache: Add support for refreshing stale objects.
 
-       * chan_iax2: Fix crash caused by unprotected access to iaxs[peer->callno]
+         This change introduces a check of object_lifetime_stale when retrieving
+         cached objects. If the amount of time the object has been in the cache
+         exceeds the lifetime, then a task is scheduled to update the cached
+         object based on an object retrieved from other sorcery wizards instead.
 
-         This patch fixes an access to the peer callnumber that is unprotected by a
-         corresponding mutex. The peer->callno value can be changed by multiple threads,
-         and all data inside the iaxs array must be procted by a corresponding lock
-         of iaxsl.
+         To prevent the cached object from being retrieved during a refresh,
+         thread-local storage is used to mark the thread as being a stale object
+         update. This results in the cache returning no object, leading to
+         sorcery querying other wizards for the object instead.
 
-         The patch moves the unprotected access to a location where the mutex is
-         safely obtained.
+         A test has been added for stale objects as well. This test ensures that
+         stale objects are retrieved the same as freshly-cached objects. The test
+         also ensures that after an object is stale, changes in the backend are
+         reflected in the cache, to include if the object has been deleted from
+         the backend.
 
-         Review: https://reviewboard.asterisk.org/r/4599/
+         ASTERISK-25067
+         Reported by Matt Jordan
 
-         ASTERISK-21211 #close
-         Reported by: Jaco Kroon
-         patches:
-           asterisk-11.2.1-iax2_poke-segfault.diff submitted by Jaco Kroon (License 5671)
-         ........
+         Change-Id: I9bd7c049adf6939bfe2899f393c2bfbbf412d217
 
-         Merged revisions 434291 from http://svn.asterisk.org/svn/asterisk/branches/11
+2015-05-20 17:35 +0000 [9a7fccc50c]  Joshua Colp <jcolp@digium.com>
 
+       * res_sorcery_memory_cache: Add support for object_lifetime_maximum.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434292 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         This makes the "object_lifetime_maximum" option operational.
 
-2015-04-08 06:53 +0000 [be13c72142]  Valentin Vidić (License 6697)
+         On the addition of an object to an empty memory cache a scheduled
+         task is created which, when invoked, expires objects from the cache
+         which have exceeded their lifetime. If more objects have been added
+         the remaining life of the oldest object is used to schedule the
+         next invocation of the scheduled task.
 
-       * chan_sip: Handle IPv4 mapped IPv6 clients when NAT is enabled
+         If the oldest object is removed from the cache before it can be
+         expired automatically the scheduled task is cancelled, if possible,
+         and the lifetime of the next oldest is used to schedule the task.
 
-         When udpbindaddr is set to the IPv6 bind all address of '::', Asterisk will
-         attempt to handle both IPv4 and IPv6 addresses, although the information will
-         be stored in a struct with an AF_INET6 address type. However, the current
-         NAT handling code won't handle the IPv4 mapped IPv6 addresses correctly.
-         This patch adds an additional check for the mapped address case, allowing
-         the NAT code to handle clients even when the address is IPv6.
+         If during these two operations no additional objects exist in the
+         cache then no task is scheduled.
 
-         Review: https://reviewboard.asterisk.org/r/4563/
+         An additional unit test has been added which verifies this
+         functionality.
 
-         ASTERISK-18032 #close
-         Reported by: Christoph Timm
-         patches:
-           nat_with_ipv6.diff submitted by Valentin Vidić (License 6697)
-         ........
+         ASTERISK-25067
+         Reported by: Matt Jordan
 
-         Merged revisions 434288 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Change-Id: I87409674674a508e7717ee20739ca15cec6ba7b6
 
+2015-05-20 15:19 +0000 [9ae9221d2b]  Mark Michelson <mmichelson@digium.com>
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434289 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+       * res_sorcery_memory_cache: Add support for maximum_objects.
 
-2015-04-08 06:44 +0000 [f324870dab]  dkdegroot (License 6600)
+         This makes the "maximum_objects" option operational.
 
-       * clang compiler warnings: Fix pointer-bool-converesion warnings
+         A heap has been added alongside the hash table in the cache. When
+         objects are added to the cache, they are also added to the heap.
+         Similarly, when objects are removed from the cache, they are removed
+         from the heap.
 
-         This patch fixes several warnings pointed out by the clang compiler.
-         * chan_pjsip: Removed check for data->text, as it will always be non-NULL.
-         * app_minivm: Fixed evaluation of etemplate->locale, which will always
-           evaluate to 'true'. This patch changes the evaluation to use
-           ast_strlen_zero.
-         * app_queue:
-           - Fixed evaluation of qe->parent->monfmt, which always evaluates to
-             true. Instead, we just check to see if the dereferenced pointer
-             evaluates to true.
-           - Fixed evaluation of mem->state_interface, wrapping it with a call to
-             ast_strlen_zero.
-         * res_smdi: Wrapped search_msg->mesg_desk_term with calls to ast_strlen_zero.
+         The heap's use comes into play when an item is to be added to a "full"
+         cache. When the cache is full, the oldest item is removed from the
+         cache, using the heap to determine the oldest item.
 
-         Review: https://reviewboard.asterisk.org/r/4541
+         A unit test has been added that verifies that the maximum_objects option
+         works as expected and that the oldest object is removed from the cache
+         when an object beyond the maximum is added.
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4541.patch submitted by dkdegroot (License 6600)
-         ........
+         ASTERISK-25067 #close
+         Reported by Matt Jordan
 
-         Merged revisions 434285 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Change-Id: I490658830e9c4cbf0b3051e4cdc4913cf9f1b73a
 
+2015-05-16 17:02 +0000 [e4d42119b5]  Joshua Colp <jcolp@digium.com>
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434286 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+       * res_sorcery_memory_cache: Add basic module implementation.
 
-2015-04-07 14:38 +0000 [a6aed7f6f6]  Scott Griepentrog <sgriepentrog@digium.com>
+         This change adds a basic res_sorcery_memory_cache module which implements
+         configuration option parsing, configuration file parsing for threading,
+         sorcery interface implementation, and unit tests.
 
-       * Revert accidental change in r434261
+         Objects can be added, updated, deleted, and retrieved from the memory
+         cache. Automatic expiration and stale handling will be added in the
+         future.
 
+         Note that unit tests exist within the module itself in case the
+         threading done as a result of expiration results in asynchronous
+         actions (which it likely will). Providing access and a notification
+         mechanism for an external test module would be complicated and
+         not worth it.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434262 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         ASTERISK-25067 #close
+         Reported by: Matt Jordan
 
-2015-04-07 14:35 +0000 [0584e29300]  Scott Griepentrog <sgriepentrog@digium.com>
+         Change-Id: Id8a6a357ef5a83d466f81eee56a67d13eeb118b9
 
-       * pjsip: resolve compatibility problem with ast_sip_session
+2015-07-02 17:03 +0000 [49a37f22e1]  Jonathan Rose <jrose@digium.com>
 
-         A change in r430179 inserted a variable near the top of a
-         structure caused a problem when running DPMA in a version
-         of Asterisk compiled across the change.  This patch moves
-         the new variable to the end of the structure, eliminating
-         the problem.
+       * app: Add functions to swap vm function table
 
-         Review: https://reviewboard.asterisk.org/r/4574/
-         ........
+         This patch adds function-mocking methods for testing voicemail
+         features in external modules. It is being pulled over from r432556
+         on SVN because DPMA won't presently compile with TEST_FRAMEWORK
+         set in Asterisk 13.1 certified.
 
-         Merged revisions 433944 from http://svn.asterisk.org/svn/asterisk/branches/13
+         Change-Id: I1c2cf6d5a8589104154a86538ecd3f62a2694681
+2015-04-22 16:22 +0000 [f58c0acfa2]  gtjoseph <george.joseph@fairview5.com>
 
+       * res/res_corosync: Always decline module load, instead of failing
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434261 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Returns a 'failure' from the module load routine indicates to Asterisk
+         that it should abort loading completely. This is rarely - in fact,
+         really, never - a good option. Aborting load of Asterisk from a dynamic
+         module implies that the core, and the rest of the dynamic modules, don't
+         matter: we should abandon all processing.
 
-2015-04-07 11:40 +0000 [d754f70239]  Kevin Harwell <kharwell@digium.com>
+         res_corosync is really not that important.
 
-       * bridge.c: Hangup attended transfer target after it has been swapped out
+         This patch updates the module such that, if it fails to load, it
+         politely declines (emitting ERROR messages along the way), and allows
+         Asterisk to continue to function.
 
-         After completing an attended transfer the transfer target channel (the one that
-         gets swapped out) was not being hung up after leaving the bridge. This resulted
-         in a channel possibly being left around. Added an explicit softhangup for the
-         channel in question after the transfer is successfully completed in order to
-         make sure the channel is hung up.
+         Note that this issue was keeping Asterisk unit tests from running on
+         certain build agents.
 
-         ASTERISK-24782 #close
-         Reported by: John Bigelow
-         Review: https://reviewboard.asterisk.org/r/4575/
+         Change-Id: I252249e81fb9b1a68e0da873f54f47e21d648f0f
 
+2015-06-29 12:45 +0000 [9cbd76630a]  Mark Michelson <mmichelson@digium.com>
 
+       * res_sorcery_realtime: Fix leak of sorcery object type.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434240 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         This prevents a leak of a sorcery object type when realtime sorcery
+         objects are retrieved by fields or when multiple objects are retrieved.
 
-2015-04-07 10:33 +0000 [c516981dc7]  Mark Michelson <mmichelson@digium.com>
+         The extent of this leak is that sorcery object types would be leaked.
+         These are allocated whenever an object type is registered with sorcery,
+         meaning that on module shutdown, these objects would be leaked. This
+         could be problematic if many reloads were performed, but it is not as
+         severe as if every sorcery object retrieved from realtime were being
+         leaked.
 
-       * Do not queue message requests that we do not respond to.
+         ASTERISK-25165 #close
+         Reported by Corey Farrell
 
-         If we receive a MESSAGE request that we cannot send a response
-         to, we should not send the incoming MESSAGE to the dialplan.
+         Change-Id: I625c3b50eee4576670b7eeb013c81ad043b4b4f8
 
-         This commit should help the bouncing message_retrans test to
-         pass consistently.
+2015-06-26 16:12 +0000 [8ba3de43ad]  Mark Michelson <mmichelson@digium.com>
 
+       * res_pjsip_nat: Adjust when contact should be rewritten.
 
+         A previous change made the contact only get rewritten if the dialog's
+         route set was not marked frozen. Unfortunately, while the intent of this
+         is correct, the dialog's route set actually gets marked as frozen
+         earlier than expected, especially for UAS dialogs.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434218 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Instead, the idea is that the contact needs to not be rewritten if there
+         is a pre-existing route set on the dialog. This is now accomplished by
+         checking the dialog's route set list instead of checking if the route
+         set is frozen.
 
-2015-04-07 10:21 +0000 [ab803ec342]  Matthew Jordan <mjordan@digium.com>
+         Doing this causes some broken tests to begin passing again.
 
-       * ARI: Add the ability to intercept hold and raise an event
+         ASTERISK-25196
+         Reported by Mark Michelson
 
-         For some applications - such as SLA - a phone pressing hold should not behave
-         in the fashion that the Asterisk core would like it to. Instead, the hold
-         action has some application specific behaviour associated with it - such as
-         disconnecting the channel that initiated the hold; only playing MoH to channels
-         in the bridge if the channels are of a particular type, etc.
+         Change-Id: I525ab251fd40a52ede327a52a2810a56deb0529e
 
-         One way of accomplishing this is to use a framehook to intercept the
-         hold/unhold frames, raise an event, and eat the frame. Tasty. This patch
-         accomplishes that using a new dialplan function, HOLD_INTERCEPT.
+2015-06-26 10:41 +0000 [20f50131d7]  Mark Michelson <mmichelson@digium.com>
 
-         In addition, some general cleanup of raising hold/unhold Stasis messages was
-         done, including removing some RAII_VAR usage.
+       * res_pjsip_refer: Prevent sending duplicate headers.
 
-         Review: https://reviewboard.asterisk.org/r/4549/
+         res_pjsip_refer will attempt to add Referred-By or Replaces headers to
+         outbound INVITEs at times. If the INVITE gets challenged for
+         authentication, then we will resend the INVITE. Prior to this patch, the
+         Referred-By or Replaces header would be re-added to the outbound INVITE,
+         resulting in duplicated headers.
 
-         ASTERISK-24922 #close
+         ASTERISK-25204 #close
+         Reported by Mark Michelson
 
+         Change-Id: I59fb5c08b4d253c0dba9ee3d3950b5025358222d
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434216 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-06-23 17:43 +0000 [0d535df734]  Mark Michelson <mmichelson@digium.com>
 
-2015-04-06 21:09 +0000 [488f093e97]  dkdegroot (License 6600)
+       * res_pjsip_nat: Rewrite route set when required.
 
-       * clang compiler warnings: Fix sometimes-initialized warning in func_math
+         When performing some provider testing, the rewrite_contact option was
+         interfering with proper construction of a route set when sending an ACK
+         after receiving a 200 OK response to an INVITE.
 
-         This patch fixes a bug in a unit test in func_math where a variable could be
-         passed to ast_free that wasn't allocated. This patch corrects the issue and
-         ensures that we only attempt to free a variable if we previously allocated
-         it.
+         The initial INVITE was sent to address sip:foo. The 200 OK had a Contact
+         header with URI sip:bar. In addition, the 200 OK had Record-Route
+         headers for sip:baz and sip:foo, in that order. Since the Record-Route
+         headers had the lr parameter, the result should have been:
 
-         Review: https://reviewboard.asterisk.org/r/4552
+         * Set R-URI of the ACK to sip:bar.
+         * Add Route headers for sip:foo and sip:baz, in that order.
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4552.patch submitted by dkdegroot (License 6600)
-         ........
+         However, the rewrite_contact option resulted in our rewriting the
+         Contact header on the 200 OK to sip:foo. The result was:
 
-         Merged revisions 434190 from http://svn.asterisk.org/svn/asterisk/branches/11
+         * R-URI remained sip:foo.
+         * We added Route headers for sip:foo and sip:baz, in that order.
 
+         The result was that sip:bar was not indicated in the ACK at all, so the
+         far end never received our ACK. The call eventually dropped.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434191 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         The intention of rewrite_contact is to rewrite the most immediate
+         destination of our SIP request to be the same address on which we
+         received a request or response. In the case of processing a SIP response
+         with Record-Route headers, this means that instead of rewriting the
+         Contact header, we should instead rewrite the bottom-most Record-Route
+         header. In the case of processing a SIP request with Record-Route
+         headers, this means we rewrite the top-most Record-route header.
+         Like when we rewrite the Contact header, we also ensure to update
+         the dialog's route set if it exists.
 
-2015-04-06 21:03 +0000 [c027133f6d]  dkdegroot (License 6600)
+         ASTERISK-25196 #close
+         Reported by Mark Michelson
 
-       * clang compiler warnings: Fix non-literal-null-conversion warnings
+         Change-Id: I9702157c3603a2d0bd8a8215ac27564d366b666f
+2015-06-23 14:34 +0000 [3332869b48]  Richard Mudgett <rmudgett@digium.com>
 
-         Clang will flag errors when a char pointer is set to '\0', as opposed to a
-         value that the char pointer points to. This patch fixes this warning
-         in a variety of locations.
+       * AMI: Add Linkedid to the standard channel snapshot AMI event headers.
 
-         Review: https://reviewboard.asterisk.org/r/4551
+         ASTERISK-25189 #close
+         Reported by: John Hardin
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4551.patch submitted by dkdegroot (License 6600)
-         ........
+         Change-Id: I2b1778c3fdc1dca0ed55db4e3a639eddfb16c2ac
 
-         Merged revisions 434187 from http://svn.asterisk.org/svn/asterisk/branches/11
+2015-06-17 05:04 +0000 [a35d6feae2]  Joshua Colp <jcolp@digium.com>
 
+       * res_pjsip_mwi: Set up unsolicited MWI upon registration.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434188 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         The res_pjsip_mwi previously required a reload to set up the proper
+         subscriptions to allow unsolicited MWI to work. This change
+         makes it so the act of registering will also cause this to occur.
+         This is particularly useful if realtime is involved as no reload
+         needs to occur within Asterisk to cause the MWI information
+         to get sent.
 
-2015-04-06 14:23 +0000 [2270c40d33]  Kevin Harwell <kharwell@digium.com>
+         ASTERISK-25180 #close
 
-       * res_pjsip: config option 'timers' can't be set to 'no'
+         Change-Id: Id847b47de4b8b3ab8858455ccc2f07b0f915f252
 
-         When setting the configuration option 'timers' equal to 'no' the bit flag was
-         not properly negated. This patch clears all associated flags and only sets the
-         specified one. pjsip will handle any necessary flag combinations. Also went
-         ahead and did similar for the '100rel' option.
+2015-06-10 18:28 +0000 [75589c4a3b]  Joshua Colp <jcolp@digium.com>
 
-         ASTERISK-24910 #close
-         Reported by: Ray Crumrine
-         Review: https://reviewboard.asterisk.org/r/4582/
+       * bridge: When performing a blonde transfer update connected line information.
 
+         When performing a blonde transfer the code uses the old masquerade
+         mechanism to move a channel around. As a result of this certain information,
+         such as connected line, is moved between the channels involved. Upon
+         completion of the move a frame is queued which is supposed to update the
+         connected line information on the channel. This does not occur as the
+         code considers it a redundant update since the masquerade operation
+         updated the channel (but did not inform it of the new connected line
+         information). The code also does not queue a connected line update
+         to be handled by the thread handling the channel. Without this any
+         other channel that may be loosely involved does not know it is
+         talking to a different caller.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434131 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         This change does the following to resolve this:
 
-2015-04-06 14:02 +0000 [95de71f247]  George Joseph <george.joseph@fairview5.com>
+         1. The indicated connected line information is cleared upon
+         completion of the masquerade operation when doing a blonde transfer.
+         This prevents the connected line update from being considered
+         redundant.
 
-       * build: Fixes for gcc 5 compilation
+         2. A connected line update frame is now queued upon the completion
+         of the masquerade operation so any other channel loosely involved
+         knows that there is a different caller.
 
-         These are fixes for compilation under gcc 5.0...
+         ASTERISK-25157 #close
+         Reported by: Joshua Colp
 
-         chan_sip.c:    In parse_request needed to make 'lim' unsigned.
-         inline_api.h:  Needed to add a check for '__GNUC_STDC_INLINE__' to detect C99 
-                        inline semantics (same as clang).
-         ccss.c:        In ast_cc_set_parm, needed to fix weird comparison.
-         dsp.c:         Needed to work around a possible compiler bug.  It was throwing 
-                        an array-bounds error but neither
-                        sgriepentrog, rmudgett nor I could figure out why.
-         manager.c:     In action_atxfer, needed to correct an array allocation.
+         Change-Id: Ibb8798184a1dab3ecd35299faecc420034adbf20
 
-         This patch will go to 11, 13, trunk.
+2015-06-11 14:39 +0000 [8142b922ab]  Richard Mudgett <rmudgett@digium.com>
 
-         Review: https://reviewboard.asterisk.org/r/4581/
-         Reported-by: Jeffrey Ollie
-         Tested-by: George Joseph
-         ASTERISK-24932 #close
-         ........
+       * app_directory: Fix crash when using the alias option 'a'.
 
-         Merged revisions 434113 from http://svn.asterisk.org/svn/asterisk/branches/11
+         The voicemail.conf mailbox key/value pair is defined as:
+         <mailbox>=[<password>[,<full-name>[,<email>[,<pager>[,<options>]]]]]
+         Where all fields in the value including the field values are optional.
 
+         Since the parsing code for the mailbox key/value pair is sloppy, this
+         patch tightens the parsing for the directory information.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434114 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         * Renamed the 'pos' and 'bufptr' variables to 'name' and 'options'
+         respectively in search_directory_sub().  Those names make more sense.
+
+         * Made sure that search_directory_sub() is dealing with the voicemail.conf
+         mailbox options field if it even exists when looking for the 'hidefromdir'
+         and 'alias' options.
+
+         * Fix crash if a voicemail.conf mailbox is just
+         <mailbox>=<password>,<name> when the 'a' option is used.  If there were no
+         fields after the name then the 'options' pointer was not checked for NULL.
 
-2015-04-06 13:18 +0000 [d54ccda3b1]  dkdegroot (License 6600)
+         * Fix users.conf alias processing if the 'a' option is used.  The wrong
+         variable was used.
 
-       * clang compiler warnings: Remove large chunks of unused code from extconf
+         ASTERISK-25087 #close
+         Reported by: Chet Stevens
 
-         This patch fixes a warning caught by clang, in which it detected that large
-         chunks of extconf were unused. Frankly, I wish we could pretend that all of
-         extconf was unused, but alas, that is not yet the case.
+         Change-Id: I86052ea77307beddddba5279824d39dc0d593374
 
-         A few extraneous functions in the parking tests were removed as well, for
-         the same reason.
+2015-06-08 12:28 +0000 [ca2174bb23]  Matt Jordan <mjordan@digium.com>
 
-         Review: https://reviewboard.asterisk.org/r/4553
+       * .version: Update for certified/13.1-cert3-rc1
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4553.patch submitted by dkdegroot (License 6600)
-         ........
+2015-06-08 12:28 +0000 [2ef2c12fae]  Matt Jordan <mjordan@digium.com>
 
-         Merged revisions 434093 from http://svn.asterisk.org/svn/asterisk/branches/11
+       * .lastclean: Update for certified/13.1-cert3-rc1
 
+2015-06-08 12:28 +0000 [5032390639]  Matt Jordan <mjordan@digium.com>
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434097 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+       * realtime: Add database scripts for certified/13.1-cert3-rc1
 
-2015-04-06 13:03 +0000 [0ecd472e4f]  dkdegroot (License 6600)
+2015-06-08 09:43 +0000 [2bf6fd263a]  Kevin Harwell <kharwell@digium.com>
 
-       * clang compiler warnings: Fix sometimes-uninitialized warning in pbx_config
+       * AMI: Escape string values.
 
-         This patch fixes a warning caught by clang, in which a char pointer could be
-         assigned to before it was initialized. The patch re-organizes the code to
-         ensure that the pointer is always initialized, even on off nominal paths.
+         So this issue is a bit complicated. Since it is possible to pass values to AMI
+         that contain a '\r\n' (or other similar sequences) these values need to be
+         escaped. One way to solve this is to escape the values and then pass the escaped
+         values to the AMI variable parameter string building function. However, this
+         puts the onus on the pre-build function to escape all string values. This
+         potentially requires a fair amount of changes along with a lot of string
+         allocations/freeing for all values.
 
-         Review: https://reviewboard.asterisk.org/r/4529
+         Surely there is a way to push this complexity down a level into the string
+         building function itself? This of course is possible, but ends up requiring a
+         way to distinguish between strings that need to be escaped and those that don't.
+         The best way to handle this is by introducing a new format specifier in the
+         format string. For instance a %s (no escape) and %S (escape). However, that is
+         a bit weird and unexpected.
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4529.patch submitted by dkdegroot (License 6600)
-         ........
+         So faced with those possibilities this patch implements a limited version of the
+         first option. Instead of attempting to escape all string values this patch only
+         escapes those values that make sense. This approach limits the number of changes
+         and doesn't suffer from the odd format specifier problem.
 
-         Merged revisions 434090 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ASTERISK-24934 #close
+         Reported by: warren smith
 
+         Change-Id: Ib55a5b84fe0481b0f2caaaab68c566f392c0aac0
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434091 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-06-03 17:41 +0000 [5f954e1e00]  Mark Michelson <mmichelson@digium.com>
 
-2015-04-06 12:52 +0000 [4e7be5b2dc]  dkdegroot (License 6600)
+       * res_pjsip: Prevent access of NULL channels.
 
-       * clang compiler warnings: Fix format specified in framehook
+         It is possible to receive incoming requests or responses after the channel
+         on an ast_sip_session has been destroyed and NULLed out. Handlers of these
+         sorts of requests or responses need to be prepared for the possibility
+         that the channel is NULL or else they could cause a crash.
 
-         This patch fixes an invalid format specifier used in the formatting of an
-         ERROR message in the framehook code. The format specifier specifies a
-         type of 'unsigned short', but the argument passed to it is of type 'int'.
-         The patch changes the format specifier to 'i'.
+         While several places have been amended to deal with NULL channels, there
+         were still a couple of places that needed updating.
 
-         Review: https://reviewboard.asterisk.org/r/4540
+         res_pjsip_dtmf_info.c: When handling incoming INFO requests, we need to
+         return early if there is no channel on the session.
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4535.patch submitted by dkdegroot (License 6600)
-         ........
+         res_pjsip_session.c: When handling a 302 response, we need to stop the
+         redirecting attempt if there is no channel on the session.
 
-         Merged revisions 434087 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ASTERISK-25148 #close
+         reported by Mark Michelson
 
+         Change-Id: Id1a75ffc3d0eaa168b0b28188fb54d6cf9fc47a9
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434088 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-02-17 09:34 +0000 [c994a3bfa0]  Richard Mudgett <rmudgett@digium.com>
 
-2015-04-06 11:02 +0000 [2443b40341]  Mark Michelson <mmichelson@digium.com>
+       * res_pjsip_refer: Fix crash from a REFER and BYE collision.
 
-       * Ensure that a non-zero sample rate is returned for all formats.
+         Analyzing a one-off crash on a busy system showed that processing a REFER
+         request had a NULL session channel pointer.  The only way I can think of
+         that could cause this is if an outgoing BYE transaction overlapped the
+         incoming REFER transaction in a collision.  Asterisk sends a BYE while the
+         phone sends a REFER to complete an attended transfer.
 
-         Versions of Asterisk prior to 12 defaulted to 8000 as a sample rate
-         if one was not provided by a format. In Asterisk 13, this was removed.
-         The result was that some calculations which involve dividing by the
-         sample rate resulted in dividing by 0. The fix being put in place
-         here is to have the same default fallback that was present in previous
-         versions of Asterisk.
+         * Made check the session channel pointer before processing an incoming
+         REFER request in res_pjsip_refer.
 
-         Asterisk-24914 #close
-         Reported by Marcello Ceschia
+         * Fixed similar crash potential for res_pjsip supplement incoming request
+         processing for res_pjsip_sdp_rtp INFO, res_pjsip_caller_id INVITE/UPDATE,
+         res_pjsip_messaging MESSAGE, and res_pjsip_send_to_voicemail REFER
+         messages.
 
+         * Made res_pjsip_messaging respond to a message body too large with a 413
+         instead of ignoring it.
 
+         ASTERISK-24700 #close
+         Reported by: Zane Conkle
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434046 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Review: https://reviewboard.asterisk.org/r/4417/
+         ........
 
-2015-04-06 10:16 +0000 [b1102cd642]  Corey Farrell <git@cfware.com>
+         Merged revisions 431898 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * res_pjsip_phoneprov_provider: Revert 433996 / 433997.
+         Change-Id: I57878adc0846dd942a699ad36dcec9cba5e57994
 
-         res_pjsip_phoneprov_provider is using ao2_callback with OBJ_MULTIPLE, then
-         ignoring the return.  OBJ_NODATA flag was to prevent a reference leak, but
-         this caused the module to FRACK on unload.  Revert change until this can
-         be investigated further.
+2015-04-06 14:23 +0000 [1e98fcac6b]  Kevin Harwell <kharwell@digium.com>
 
-         ASTERISK-24935
-         Reported by: Corey Farrell
-         Review: https://reviewboard.asterisk.org/r/4578/
+       * res_pjsip: config option 'timers' can't be set to 'no'
 
+         When setting the configuration option 'timers' equal to 'no' the bit flag was
+         not properly negated. This patch clears all associated flags and only sets the
+         specified one. pjsip will handle any necessary flag combinations. Also went
+         ahead and did similar for the '100rel' option.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434025 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         ASTERISK-24910 #close
+         Reported by: Ray Crumrine
+         Review: https://reviewboard.asterisk.org/r/4582/
+         ........
 
-2015-04-06 09:50 +0000 [0f25076f67]  Mark Michelson (license #5049)
+         Merged revisions 434131 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * ParkedCall: Don't allow dialplan fallthrough after retrieving parked call.
+         Change-Id: Ibbc25d4592aabf7596ef473447d630961f88c217
 
-         This is a change to align behavior with that of Asterisk 11 and previous versions.
-         In those versions, if a parked call were retrieved, and the call ended, the parked
-         call retriever would be hung up after the ParkedCall application ran. Prior to this
-         patch, in Asterisk 13, the same situation would result in the parked call retriever
-         falling through to additional priorities in the extension where the ParkedCall
-         application was called. With this patch, the behavior between Asterisk 11 and 13
-         aligns.
+2015-05-26 13:56 +0000 [bd32327353]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-24899 #close
-         Reported by Malcolm Davenport
-         Patches:
-               ASTERISK-24899.patch uploaded by Mark Michelson(license #5049)
+       * res_pjsip_session: Fix in-dialog authentication.
 
+         When the remote peer requires authentication for in-dialog requests then
+         re-INVITEs to the peer cause the call to be disconnected and other
+         in-dialog requests to the peer like MESSAGE just don't go through.
 
+         * Made session_inv_on_tsx_state_changed() handle in-dialog authentication
+         for re-INVITEs and other methods.  Initial INVITEs cannot be handled here
+         because the INVITE transaction must be restarted earlier.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434022 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         * Pulled needed code from res/res_pjsip/pjsip_outbound_auth.c in
+         preparation for removing the file.  The generic outbound authentication
+         code did not work as well as anticipated.
 
-2015-04-05 07:53 +0000 [709fa14b44]  Corey Farrell <git@cfware.com>
+         * Created outbound_invite_auth() to only handle initial outbound INVITEs.
+         Re-INVITEs cannot be handled here.  The re-INVITE transaction is still in
+         progress and the PJSIP library cannot handle the overlapping INVITE
+         transactions.  Other method types should not be handled here as this code
+         only works on outgoing calls and we need to handle incoming and outgoing
+         calls.
 
-       * res_pjsip_phoneprov_provider: Fix leaked OBJ_MULTIPLE iterator.
+         ASTERISK-25131 #close
+         Reported by: Richard Mudgett
 
-         res_pjsip_phoneprov_provider was using ao2_callback with OBJ_MULTIPLE, then
-         ignoring the return.  Added OBJ_NODATA flag to prevent a reference leak.
+         Change-Id: I12bdd7ddccc819b4ce4b091e826d1e26334601b0
 
-         ASTERISK-24935 #close
-         Reported by: Corey Farrell
-         Review: https://reviewboard.asterisk.org/r/4578/
+2015-05-12 17:45 +0000 [b81353a0ec]  Jonathan Rose <jrose@digium.com>
 
+       * app_voicemail: fix moving when old messages full
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433996 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         When completing voicemail playback of a message in the 'INBOX', the
+         message gets moved to the 'Old' messages folder. Without this patch, if
+         the 'Old' folder is already at its set limit, then the 'INBOX' message will
+         simply be deleted. With this patch, the flag to delete the message will be
+         removed if the save_to_folder function indicates that the message could
+         not be moved due to a full folder.
 
-2015-04-03 16:53 +0000 [1ee8424f27]  Mark Michelson <mmichelson@digium.com>
+         ASTERISK-25082 #close
+         Reported by: Jonathan Rose
+         Review: https://gerrit.asterisk.org/#/c/448/
 
-       * res_pjsip_messaging: Serialize outbound SIP MESSAGEs
+         Change-Id: I2be440a09f42e2d06d50975c40d1ad7f836ecb3f
 
-         Outbound SIP MESSAGEs had the potential to be sent out
-         of order from how they were specified in a set of
-         dialplan steps.
+2015-05-12 17:34 +0000 [523fab02d8]  Richard Mudgett <rmudgett@digium.com>
 
-         This change creates a serializer for sending outbound
-         MESSAGE requests on. This ensures that the MESSAGEs are
-         sent by Asterisk in the same order that they were sent
-         from the dialplan.
+       * chan_dahdi/sig_pri: Fix crash on ISDN call hangup collision.
 
-         ASTERISK-24937 #close
-         Reported by Mark Michelson
+         If an ISDN call is hungup by both sides at the same time a crash could
+         happen.
 
-         Review: https://reviewboard.asterisk.org/r/4579
+         * Added missing NULL checks for the owner channel after calling
+         pri_queue_pvt_cause_data() in two places.  Code after those calls need to
+         check the owner channel pointer for NULL before use because
+         pri_queue_pvt_cause_data() needs to do deadlock avoidance to lock the
+         owner and the owner may get hung up.
 
+         ASTERISK-21893 #close
+         Reported by:  Alexandr Gordeev
 
+         Change-Id: Ica3e266ebc7a894b41d762326f08653e1904bb9a
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433968 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-04-16 10:51 +0000 [b764454d4d]  Kevin Harwell <kharwell@digium.com>
 
-2015-04-02 09:56 +0000 [169e57d2e0]  Scott Griepentrog <sgriepentrog@digium.com>
+       * bridge.c: NULL app causes crash during attended transfer
 
-       * pjsip: resolve compatibility problem with ast_sip_session
+         Due to a race condition there was a chance that during an attended transfer the
+         channel's application would return NULL. This, of course, would cause a crash
+         when attempting to access the memory. This patch retrieves the channel's app
+         at an earlier time in processing in hopes that the app name is available.
+         However, if it is not then "unknown" is used instead. Since some string value
+         is now always present the crash can no longer occur.
 
-         A change in r430179 inserted a variable near the top of a
-         structure caused a problem when running DPMA in a version
-         of Asterisk compiled across the change.  This patch moves
-         the new variable to the end of the structure, eliminating
-         the problem.
+         ASTERISK-24869 #close
+         Reported by: viniciusfontes
+         Review:
 
-         Review: https://reviewboard.asterisk.org/r/4574/
+         Change-Id: I5134b84c4524906d8148817719d76ffb306488ac
 
+2015-05-06 13:24 +0000 [6433b697ae]  Joshua Colp <jcolp@digium.com>
 
+       * res_pjsip_exten_state: Fix race condition between sending NOTIFY and termination
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433944 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         The res_pjsip_exten_state module currently has a race condition between
+         processing the extension state callback from the PBX core and processing
+         the subscription shutdown callback from res_pjsip_pubsub. There is currently
+         no synchronization between the two. This can present a problem as while
+         the SIP subscription will remain valid the tree it points to may not.
+         This is in particular a problem as a task to send a NOTIFY may get queued
+         which will try to use the tree that may no longer be valid.
 
-2015-04-02 05:31 +0000 [1eb0c5f4e8]  Corey Farrell <git@cfware.com>
+         This change does the following to fix this problem:
 
-       * Tell menuselect that MALLOC_DEBUG conflicts with DEBUG_CHAOS.
+         1. All access to the subscription tree is done within the task that
+         sends the NOTIFY to ensure that no other thread is modifying or
+         destroying the tree. This task executes on the serializer for the
+         subscriptions.
 
-         DEBUG_CHAOS was marked as conflicting with MALLOC_DEBUG, but
-         for this to work correctly MALLOC_DEBUG must also be marked
-         as conflicting with DEBUG_CHAOS.
+         2. A reference to the subscription serializer is kept to ensure it
+         remains valid for the lifetime of the extension state subscription.
 
-         Review: https://reviewboard.asterisk.org/r/4557/
+         3. The NOTIFY task has been changed so it will no longer attempt
+         to send a NOTIFY if the subscription has already been terminated.
 
+         ASTERISK-25057 #close
+         Reported by: Matt Jordan
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433923 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: I0b3cd2fac5be8d9b3dc5e693aaa79846eeaf5643
 
-2015-04-01 11:25 +0000 [e301185983]  Ashley Sanders <asanders@digium.com>
+2015-01-19 07:18 +0000 [bf31a486cb]  Joshua Colp <jcolp@digium.com>
 
-       * stasis: set a channel variable on websocket disconnect error
+       * res_pjsip / res_pjsip_multihomed: Use the correct transport and addressing information on UAS sessions.
 
-         Resolve compile errors caused by r433863 by fixing the
-         documentation xml to comply with the schema.
+         The first thing this patch fixes is UAS dialogs. Previously if a transport was
+         configured on an endpoint and an inbound session was created there was no guarantee
+         that requests sent on the dialog would use the correct transport and address
+         information. This has now been fixed so an explicitly configured transport
+         is taken into account.
 
+         The second thing this patch fixes is res_pjsip_multihomed. The res_pjsip_multihomed
+         module attempts to determine what transport a message should go out on and what
+         addressing information should go into the message itself. In a scenario where
+         multiple transports exist bound to the same IP address but a different port the
+         code would incorrectly alter the transport and change the message to the wrong
+         transport. This change makes the res_pjsip_multihomed module smarter so it will
+         only change the transport and address information in the message when it is
+         possible and makes sense.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433888 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         ASTERISK-24615 #close
+         Reported by: David Justl
 
-2015-03-31 22:26 +0000 [a1f12d9231]  Ashley Sanders <asanders@digium.com>
+         Change-Id: I5b57362201cc8c6555834ec8707e9fbddeff7904
 
-       * stasis: set a channel variable on websocket disconnect error
+2015-05-04 12:16 +0000 [7c687c8e54]  Joshua Colp <jcolp@digium.com>
 
-         Resolve compile errors caused by r433839 by included the missing
-         header file, pbx.h.
+       * stasis: Fix dial masquerade datastore lifetime
 
+         A recent change went into Asterisk which added reference counts to the
+         channels stored in a dial masquerade datastore. Unfortunately this
+         included a reference to the caller in a dialing operation. While all
+         of the dialed targets have the datastore removed from them upon dialing
+         completion this did not occur for the caller, causing it to have a
+         reference to itself that could go never go away (as it depended on
+         the destruction of the datastore which only happened when the channel
+         was destroyed). This resulted in the caller channel remaining on the
+         system despite it having hung up.
 
+         This change does the following to fix this issue:
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433863 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         1. The dial masquerade datastore is now removed from the caller upon
+         dialing completion, just like the dialed targets.
+         2. Upon destruction of the caller all the dialed targets are also
+         removed from the dial masquerade datastore (just in case).
+         3. The reference to the caller has been removed as it should not be
+         possible for the datastore to now be valid/useful after the lifetime
+         of the caller has ended.
 
-2015-03-31 17:00 +0000 [7293ecd90b]  Ashley Sanders <asanders@digium.com>
+         ASTERISK-25025 #close
 
-       * stasis: set a channel variable on websocket disconnect error
+         Change-Id: I1ef4ca5ca04980028604cc2af5d2992ac3431b3f
 
-         When an error occurs while writing to a web socket, the web socket is
-         disconnected and the event is logged. A side-effect of this, however, is that
-         any application on the other side waiting for a response from Stasis is left
-         hanging indefinitely (as there is no mechanism presently available for
-         notifying interested parties about web socket error states in Stasis).
+2015-04-29 14:29 +0000 [0602409c89]  Richard Mudgett <rmudgett@digium.com>
 
-         To remedy this scenario, this patch introduces a new channel variable:
-         STASISSTATUS.
+       * chan_dahdi: Add the chan_dahdi.conf force_restart_unavailable_chans option.
 
-         The possible values for STASISSTATUS are:
-         SUCCESS         - The channel has exited Stasis without any failures
-         FAILED          - Something caused Stasis to croak. Some (not all) possible
-                           reasons for this:
-                             - The app registry is not instantiated;
-                             - The app requested is not registered;
-                             - The app requested is not active;
-                             - Stasis couldn't send a start message
+         Some telco switches occasionally ignore ISDN RESTART requests.  The fix
+         for ASTERISK-19608 added an escape clause for B channels in the restarting
+         state if the telco ignores a RESTART request.  If the telco fails to
+         acknowledge the RESTART then Asterisk will assume the telco acknowledged
+         the RESTART on the second call attempt requesting the B channel by the
+         telco.  The escape clause is good for dealing with RESTART requests in
+         general but it does cause the next call for the restarting B channel to be
+         rejected if the telco insists the call must go on that B channel.
 
-         ASTERISK-24802
-         Reported By: Kevin Harwell
-         Review: https://reviewboard.asterisk.org/r/4519/
+         chan_dahdi doesn't really need to issue a RESTART request in response to
+         receiving a cause 44 (Requested channel not available) code.  Sending the
+         RESTART in such a situation is not required (nor prohibited) by the
+         standards.  I think chan_dahdi does this for historical reasons to deal
+         with buggy peers to get channels unstuck in a similar fashion as the
+         chan_dahdi.conf resetinterval option.
 
+         * Add the chan_dahdi.conf force_restart_unavailable_chans compatability
+         option that when disabled will prevent chan_dahdi from trying to RESTART
+         the channel in response to a cause 44 code.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433839 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         ASTERISK-25034 #close
+         Reported by: Richard Mudgett
 
-2015-03-31 11:55 +0000 [94949e7f2f]  Richard Mudgett <rmudgett@digium.com>
+         Change-Id: Ib8b17a438799920f4a2038826ff99a1884042f65
 
-       * chan_sip: Fix expression in unit test /channels/chan_sip/test_sip_rtpqos.
+2015-04-30 15:20 +0000 [c6c06bbe70]  Mark Michelson <mmichelson@digium.com>
 
-         Fix misplaced parentheses in original fabs() expression.
-         ........
+       * Prevent potential crash on blond transfer.
 
-         Merged revisions 433816 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Scenario:
+         Alice calls Bob. Bob performs a blond transfer to Carol. Carol rejects
+         the incoming call (or some other immediate circumstance causes Carol not
+         to answer the call)
 
+         What occurs in this case is that when the bridge between Alice and Bob
+         breaks, Alice is told to masquerade into Bob's channel that had placed
+         the call to Carol. The actual masquerade goes down without a hitch.
+         However, a channel fixup callback that attempts to publish dial events
+         over Stasis has a crash. The reason for this crash is that the datastore
+         on Bob's channel that placed the outbound call to Carol only had a bare
+         pointer to Carol's channel. Since Carol rejected the incoming call,
+         Carol's channel has been hung up and freed, meaning accessing her
+         channel results in a crash.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433817 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         The fix here is simple. The dial fixup code has been altered to hold
+         references to the involved channels and to drop those references when
+         freeing data.
 
-2015-03-31 06:47 +0000 [9967739669]  Corey Farrell <git@cfware.com>
+         ASTERISK-25025 #close
+         Reported by Chet Stevens
 
-       * Re-add _ast_mem_backtrace_buffer variable for ABI compatibility.
+         Change-Id: I54eedda207b8ec7a69263353b43abe5746aea197
 
-         Modules built prior to commit of r4502 expect to link at runtime
-         to the variable _ast_mem_backtrace_buffer.  This change re-adds
-         the variable to the C file only.
+2015-04-30 14:09 +0000 [08a4cf3237]  Mark Michelson <mmichelson@digium.com>
 
-         Review: https://reviewboard.asterisk.org/r/4558/
+       * res_pjsip_outbound_authenticator_digest: Add missing outbound authenticator callback.
 
+         The Asterisk 13 version of the fix for outbound registration was missing
+         a key component that set the outbound authenticator's callback that
+         creates an authenticated request based on an old request. This was
+         picked up by some outbound registration tests failing in the testsuite.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433795 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: I5ca9379698c606da36bc38eaffccedaf64211ce3
+2015-04-30 06:04 +0000 [47df4e031c]  Joshua Colp <jcolp@digium.com>
 
-2015-03-30 06:42 +0000 [2d39bc5528]  Corey Farrell <git@cfware.com>
+       * res_pjsip_outbound_registration: Fix double unref on error return.
 
-       * Fix an ABI compatibility issue with ast_log_safe for modules.
+         When the PJSIP pjsip_regc_send function is invoked and an error
+         status returned the caller currently decrements the reference count
+         of the client state that it just incremented, assuming the
+         registration callback would not have been invoked. In practice
+         this is not correct. If the failure happens after the transaction
+         has been set up the callback will still be invoked. This will
+         cause the reference count to be incorrectly decremented twice, once
+         by the registration callback and second by the caller of
+         pjsip_regc_send.
 
-         Binary modules are sometimes built against the latest release of
-         Asterisk in each branch, and need to be compatible with all
-         releases of that branch.  This change ensures that utils.h only
-         uses ast_log_safe from the core.  For modules and utilities ast_log
-         is used instead.
+         This change makes it so that whether the callback is invoked or
+         not is known by the caller of pjsip_regc_send. Depending on
+         this it can know whether it is responsible for decrementing the
+         reference count of the client state or not.
 
-         Review: https://reviewboard.asterisk.org/r/4548/
-         ........
+         ASTERISK-25037 #close
+         Reported by: Joshua Colp
 
-         Merged revisions 433772 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Change-Id: I749dc12f3a22115c49c5d7d95ff42a5fa45319de
 
+2015-04-27 16:56 +0000 [11d85ea251]  Mark Michelson <mmichelson@digium.com>
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433773 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+       * res_pjsip_outbound_registration: Don't fail on delayed processing: 13.
 
-2015-03-29 21:44 +0000 [5f8faf16af]  dkdegroot (License 6600)
+         This is the Asterisk 13 version of a change to master that allows for
+         registration responses to be processed successfully potentially after
+         the original transaction has timed out. The main difference between this
+         and the master change is that the master version has API changes that
+         are unacceptable for 13. For 13, this is worked around by adding a new
+         API call that the outbound registration code uses instead.
 
-       * clang compiler warnings: Fix -Wabsolute-value warnings
+         The following is the text from the master version of this commit:
 
-         This patch fixes several warnings caught by clang - in this case, usage of the
-         abs function on non-integer values. This patch uses labs and fabs, as
-         appropriate, in the various affected files.
+         Odd behaviors have been observed during outbound registrations. The most
+         common problem witnessed has been one where a request with
+         authentication credentials cannot be created after receiving a 401
+         response. Other behaviors include apparently processing an incorrect SIP
+         response.
 
-         Review: https://reviewboard.asterisk.org/r/4525
+         Inspecting the code led to an apparent issue with regards to how we
+         handle transactions in outbound registration code. When a response to a
+         REGISTER arrives, we save a pointer to the transaction and then push a
+         task onto the registration serializer. Between the time that we save the
+         pointer and push the task, it's possible for the transaction to be
+         destroyed due to a timeout. It's also possible for the address to be
+         reused by the transaction layer for a new transaction.
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4525.patch submitted by dkdegroot (License 6600)
-         ........
+         To allow for authentication of a REGISTER request to be authenticated
+         after the transaction has timed out, we now also hold a reference to the
+         original REGISTER request instead of the transaction. The function for
+         creating a request with authentication has been altered to take the
+         original request instead of the transaction where the original request
+         was sent.
 
-         Merged revisions 433749 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ASTERISK-25020
+         Reported by Mark Michelson
 
+         Change-Id: If1ee5f601be839479a219424f0358a229f358f7c
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433750 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-04-27 14:44 +0000 [0037ca59a6]  Mark Michelson <mmichelson@digium.com>
 
-2015-03-29 21:39 +0000 [09b681e344]  dkdegroot (License 6600)
+       * res_pjsip_outbound_registration: Add debugging messages.
 
-       * clang compiler warnings: Fix invalid enum conversion
+         When problems occur regarding outbound registrations, it currently
+         is difficult to debug. Most off-nominal paths had warning messages,
+         but sometimes we want to know what's going on before hitting the
+         off-nominal path. This patch adds lots of debugging output that
+         should give a clearer picture of what is happening with regards
+         to outbound registrations.
 
-         This patch fixes some invalid enum conversion warnings caught by clang. In
-         particular:
-         * chan_sip: Several functions mixed usage of the st_refresher_param
-           enum and st_refresher enum. This patch corrects the functions to use the
-           right enum.
-         * chan_pjsip: Fixed mixed usage of ast_sip_session_t38state and ast_t38_state.
-         * strings: Fixed incorrect usage of AO2 flags with strings container.
-         * res_stasis: Change a return enumeration to stasis_app_user_event_res.
+         ASTERISK-25020
+         Reported by Mark Michelson
 
-         Review: https://reviewboard.asterisk.org/r/4535
+         Change-Id: I577bde7860be0a6c872b5bcb4d5047340bf45d45
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4535.patch submitted by dkdegroot (License 6600)
-         ........
+2015-04-11 10:10 +0000 [e84fcb2464]  Juergen Spies (License 6698)
 
-         Merged revisions 433746 from http://svn.asterisk.org/svn/asterisk/branches/11
+       * res/res_pjsip_t38: Add missing initialization of t38faxmaxdatagram
 
+         Prior to this patch, the far_max_datagram value on the UDPTL structure would
+         remain -1 if the remote endpoint fails to provide the SDP media attribute
+         T38FaxMaxDatagram. This can result in the INVITE request being rejected. With
+         this patch, we will now properly initialize the value with either the default
+         value or with the value provided by pjsip.conf's t38_udptl_maxdatagram
+         parameter.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433747 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Review: https://reviewboard.asterisk.org/r/4589
 
-2015-03-29 21:29 +0000 [7f33abb827]  Matthew Jordan <mjordan@digium.com>
+         ASTERISK-24928 #close
+         Reported by: Juergen Spies
+         Tested by: Juergen Spies
+         patches:
+           pjsipT38patch20150331.txt submitted by Juergen Spies (License 6698)
 
-       * main/stdtime/localtime: Fix warning introduced in r433720
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@434688 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: I15bde169fd59a224a02005fec9a439f0679a375e
 
-         The patch in r433720 caused a warning to be kicked back by gcc. It occurred
-         due to this check in unistd.h:
+2015-04-23 12:54 +0000 [008076ecf4]  Mark Michelson <mmichelson@digium.com>
 
-             if (__nbytes > __bos0 (__buf))
-                 return __read_chk_warn (__fd, __buf, __nbytes, __bos0 (__buf));
+       * res_pjsip_t38: Don't crash on authenticated reinvite after originated T.38 FAX.
 
-         That is, if __nbytes is greater than the result of GCC's built-in object size
-         for the struct, we'll kick back a warning.
+         When Asterisk originates a channel to an application, the channel is
+         hung up once the application finishes executing. When the application
+         in question is SendFax, the Asterisk PJSIP code will attempt to reinvite
+         the T.38 session to audio after the FAX completes. The hangup of the
+         channel happens in the midst of this reinvite transaction. In most
+         circumstances, this works out okay because the BYE is delayed until the
+         reinvite transaction can complete.
 
-         As it turns out, this is because there is an error in the code in the patch.
-         We are passing the address of the pointer to the struct, not iev, which is a
-         pointer to the struct. Hence, the number of bytes is probably going to be lot
-         larger than the number of bytes that make up a pointer! This patch changes
-         the code just read from the pointer to the struct - which fixes the warning.
+         However, if the reinvite that Asterisk sends receives a 401/407
+         response, then Asterisk's attempt to re-send the reinvite with
+         authentication will fail. This is because the session supplement in
+         res_pjsip_t38 makes the assumption that the channel on the session will
+         always be non-NULL. Since the channel has been hung up, though, the
+         channel is now NULL. Attempting to operate on the channel causes a
+         crash.
 
-         ASTERISK-24917
-         ........
+         This patch fixes the issue by ensuring that the channel on the session
+         is not NULL before attempting to mess with the T.38 framehook.
 
-         Merged revisions 433743 from http://svn.asterisk.org/svn/asterisk/branches/11
+         This patch also contains some corrections for comments that were
+         incorrect and really confused me when I first started looking at the
+         code.
 
+         ASTERISK-25004 #close
+         Reported by Mark Michelson
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433744 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: Ic5a1230668369dda4bb13524098aed9306ab45a0
 
-2015-03-29 20:56 +0000 [47eeb67e14]  dkdegroot (License 6600)
+2015-04-15 10:38 +0000 [1bb6122f35]  Mark Michelson <mmichelson@digium.com>
 
-       * clang compiler warnings: Ignore -Wunused-command-line-argument
+       * Detect potential forwarding loops based on count.
 
-         Asterisk's build system has a tendency to pass include directives for libraries
-         to everything compiled within a particular group of source files. This means
-         we pass the header for libxml2 to things that don't necessarily need it. As a
-         result, we ignore this particular warning.
+         A potential problem that can arise is the following:
 
-         Review: https://reviewboard.asterisk.org/r/4545/
+         * Bob's phone is programmed to automatically forward to Carol.
+         * Carol's phone is programmed to automatically forward to Bob.
+         * Alice calls Bob.
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4545.patch submitted by dkdegroot (License 6600)
-         ........
+         If left unchecked, this results in an endless loops of call forwards
+         that would eventually result in some sort of fiery crash.
 
-         Merged revisions 433720 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Asterisk's method of solving this issue was to track which interfaces
+         had been dialed. If a destination were dialed a second time, then
+         the attempt to call that destination would fail since a loop was
+         detected.
 
+         The problem with this method is that call forwarding has evolved. Some
+         SIP phones allow for a user to manually forward an incoming call to an
+         ad-hoc destination. This can mean that:
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433721 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         * There are legitimate use cases where a device may be dialed multiple
+         times, or
+         * There can be human error when forwarding calls.
 
-2015-03-29 20:52 +0000 [dbb4d6f9e7]  dkdegroot (License 6600)
+         This change removes the old method of detecting forwarding loops in
+         favor of keeping a count of the number of destinations a channel has
+         dialed on a particular branch of a call. If the number exceeds the
+         set number of max forwards, then the call fails. This approach has
+         the following advantages over the old:
 
-       * clang compiler warnings: Fix warning for -Wgnu-variable-sized-type-not-at-end
+         * It is much simpler.
+         * It can detect loops involving local channels.
+         * It is user configurable.
 
-         This patch fixes a warning caught by clang, wherein a variable sized struct is
-         not located at the end of a struct. While the code in question actually
-         expected this, this is a good warning to watch for. Hence, this patch refactors
-         the code in question to not have two variable length elements in the same
-         struct.
+         The only disadvantage it has is that in the case where there is a
+         legitimate forwarding loop present, it takes longer to detect it.
+         However, the forwarding loop is still properly detected and the
+         call is cleaned up as it should be.
 
-         Review: https://reviewboard.asterisk.org/r/4530/
+         Address review feedback on gerrit.
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4530.patch submitted by dkdegroot (License 6600)
-         ........
+         * Correct "mfgium" to "Digium"
+         * Decrement max forwards by one in the case where allocation of the
+           max forwards datastore is required.
+         * Remove irrelevant code change from pjsip_global_headers.c
 
-         Merged revisions 433717 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ASTERISK-24958 #close
 
+         Change-Id: Ia7e4b7cd3bccfbd34d9a859838356931bba56c23
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433718 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-04-15 16:08 +0000 [cb67aae596]  gtjoseph <george.joseph@fairview5.com>
 
-2015-03-28 07:56 +0000 [e126ab9eeb]  dkdegroot (License 6600)
+       * More .gitignore updates
 
-       * clang compiler warnings: Fix a variety of "unused" warnings
+         Added .pyc and .sha1 to the top-level .gitignore.
 
-         This patch fixes the -Wunused-value -Wunused-variable -Wunused-const-variable
-         errors caught by clang. Specifically:
+         Change-Id: I7dfc4f554d54d22947b38140d3305007503cc16a
+         Tested-by: George Joseph <george.joseph@fairview5.com>
 
-         * apps/app_queue.c: removed unused qpm_cmd_usage[], qum_cmd_usage[],
-                             qsmp_cmd_usage[]
-         * cel/cel_sqlite3_custom.c: removed unused name[] = "cel_sqlite3_custom"
-         * channels/chan_pjsip.c: removed unused desc[] = "PJSIP Channel"
-         * codecs/gsm/src/gsm_create.c: removed unused ident[] = "$Header$"
-         * funcs/func_env.c:729: Fixed ast_str_append_substr.
-         * main/editline/np/strlcat.c: removed unused rcsid variable
-         * main/editline/np/strlcpy.c: removed unused rcsid variable
-         * main/security_events.c: removed unused TIMESTAMP_STR_LEN
-         * utils/conf2ael.c: removed unused cfextension_states
-         * utils/extconf.c: removed unused cfextension_states
+2015-04-13 19:06 +0000 [70fab74baf]  gtjoseph <george.joseph@fairview5.com>
 
-         Review: https://reviewboard.asterisk.org/r/4526
+       * .gitignore updates for master/13
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4526.patch submitted by dkdegroot (License 6600)
-         ........
+         Added products of ./bootstrap
 
-         Merged revisions 433693 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Added nmenuselect and gmenuselect to menuselect/
 
+         Change-Id: Ied658463958bafc04a9aff9ebc28e40c116a6e35
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433694 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-04-13 09:54 +0000 [735bea479a]  Matt Jordan <mjordan@digium.com>
 
-2015-03-28 07:48 +0000 [2f6534527d]  dkdegroot (License 6600)
+       * build_tools/make_version: Update version parsing for Git migration
 
-       * clang compiler warnings: Fix -Wself-assign
+         External systems - such as the Asterisk Test Suite - require knowledge of the
+         upstream branch. Unfortunately, after moving to Git, the Asterisk version
+         currently consists of only a 'GIT" prefix followed by an object blob,
+         e.g., GIT-as08d7. This makes it difficult for such systems to know what
+         features are available in a particular check out of Asterisk.
 
-         Assigning a variable to itself isn't super useful. However, the WAV format
-         modules make use of this in order to perform byte endian checks. This patch
-         works around the warning by only performing the self assignment if we are
-         going to do more than just assign it to ourselves. Which is odd, but true.
+         This patch fixes this by hardcoding the branch in a variable in the
+         make_version script. Since the mainline branches are not changed often -
+         typically only once a year - this is a reasonable approach to solving
+         the problem, and is more reliable than parsing the output of 'git branch
+         -vv'. Branches that track off of an upstream primary branch will then get the
+         benefit of knowing which mainline branch they are currently based off
+         of.
 
-         Review: https://reviewboard.asterisk.org/r/4544/
+         ASTERISK-24954 #close
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4544.patch submitted by dkdegroot (License 6600)
-         ........
+         Change-Id: I8090d5d548b6d19e917157ed530b914b7eaf9799
 
-         Merged revisions 433690 from http://svn.asterisk.org/svn/asterisk/branches/11
+2015-04-12 12:59 +0000 [7d64479748]  Matt Jordan <mjordan@digium.com>
 
+       * git migration: Remove support for file versions
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433691 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Git does not support the ability to replace a token with a version
+         string during check-in. While it does have support for replacing a
+         token on clone, this is somewhat sub-optimal: the token is replaced
+         with the object hash, which is not particularly easy for human
+         consumption. What's more, in practice, the source file version was often
+         not terribly useful. Generally, when triaging bugs, the overall version
+         of Asterisk is far more useful than an individual SVN version of a file.
+         As a result, this patch removes Asterisk's support for showing source file
+         versions.
 
-2015-03-28 07:40 +0000 [eb70993a50]  dkdegroot (License 6600)
+         Specifically, it does the following:
+         * main/asterisk:
+           - Refactor the file_version structure to reflect that it no longer
+             tracks a version field.
+           - Alter the "core show file version" CLI command such that it always
+             reports the version of Asterisk. The file version is no longer
+             available.
 
-       * clang compiler warnings: Fix -Wparantheses-equality warnings
+         * main/manager: The Version key now always reports the Asterisk version.
 
-         Clang will treat ((a == b)) as a warning, as it reasonably expects that the
-         developer may have intended to write (a == b) or ((a = b)). This patch cleans
-         up all instances where equality, not assignment, was intended between two
-         parantheses.
+         * UPGRADE: Add notes for:
+           - Modification to the ModuleCheck AMI Action.
+           - Modification of the "core show file version" CLI command.
 
-         Review: https://reviewboard.asterisk.org/r/4531/
+         Change-Id: Ia932d3c64cd18a14a3c894109baa657ec0a85d28
 
-         ASTERISK-24917
-         Repoted by: dkdegroot
-         patches:
-           rb4531.patch submitted by dkdegroot (License 6600)
-         ........
+2015-04-12 06:12 +0000 [9237e8b11e]  Corey Farrell <git@cfware.com>
 
-         Merged revisions 433687 from http://svn.asterisk.org/svn/asterisk/branches/11
+       * main/editline: Add .gitignore.
 
+         This patch adds a .gitignore for main/editline to ignore all build results.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433688 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Change-Id: I68c7bf375ea46282689e5a706534b69fca233b5d
 
-2015-03-28 07:31 +0000 [c0ff16036a]  dkdegroot (License 6600)
+2015-04-11 23:22 +0000 [630dbcb8b4]  Matt Jordan <mjordan@digium.com>
 
-       * clang compiler warnings: Fix -Wbitfield-constant-conversion warning
+       * .gitignore: Ignore tarballs (*.gz)
 
-         In chan_iax2, we attempt to assign a -1 to a bitfield. This gets caught by
-         clang, as it will truncate the -1 to a 1 implicitly.
+         This patch updates the root .gitignore file to ignore files with a .gz
+         extension. This will cause git to ignore downloaded sound tarballs in
+         the the sounds/ directory.
 
-         Instead, we just assign the value a '1'.
+         Change-Id: I1e42fbfa02a8884231507b683e8e49ac3e278aaa
 
-         Review: https://reviewboard.asterisk.org/r/4537/
+2015-04-11 13:20 +0000 [e4892f9aa4]  gtjoseph <george.joseph@fairview5.com>
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4537.patch submitted by dkdegroot (License 6600)
-         ........
+       * Add .gitignore and .gitreview files
 
-         Merged revisions 433683 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Add the .gitignore and .gitreview files to the asterisk repo.
 
+         NB:  You can add local ignores to the .git/info/exclude file
+         without having to do a commit.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433684 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Common ignore patterns are in the top-level .gitignore file.
+         Subdirectory-specific ignore patterns are in their own .gitignore
+         files.
 
-2015-03-28 07:27 +0000 [844bc76bef]  dkdegroot (License 6600)
+         Change-Id: I4c8af3b8e3739957db545f7368ac53f38e99f696
+         Tested-by: George Joseph
 
-       * clang compiler warnings: Fix -Winitializer-overrides
+2015-04-14 14:04 +0000 [677898f839]  Joshua Colp <jcolp@digium.com>
 
-         This patch fixes clange compiler warnings for initializer overrides.
-         Specifically:
+       * res_pjsip_mwi: Send unsolicited MWI NOTIFY on startup and when endpoint registers.
 
-         res_pjsip/config_transport maps PJSIP_TLSV1_METHOD to the same enumeration
-         value as PJSIP_SSL_DEFAULT_METHOD. When initializing an array containing
-         those enum values, we therefore initialize the value twice to two different
-         values, "tlsv1" and "default". This patch changes it to just initialize
-         the index in the array to "tlsv1".
+         Currently the res_pjsip_mwi module only sends an unsolicited MWI NOTIFY upon
+         a mailbox state change (such as a new message being left, or one being deleted).
+         In practice this is not sufficient to keep clients aware of the current MWI status.
 
-         Review: https://reviewboard.asterisk.org/r/4539/
+         This change makes the module send unsolicited MWI NOTIFY on startup so that
+         clients are guaranteed to have the most up to date MWI information. It also makes
+         clients receive an unsolicited MWI NOTIFY upon registration so if they are unaware
+         of the current MWI status they receive it.
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4539.patch submitted by dkdegroot (License 6600)
+         ASTERISK-24982 #close
+         Reported by: Joshua Colp
 
+         Change-Id: I043f20230227e91218f18a82c7d5bb2aa62b1d58
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433682 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+2015-04-08 13:19 +0000 [918ca7dd36]  Jonathan Rose <jrose@digium.com>
 
-2015-03-28 07:19 +0000 [5e204042d9]  dkdegroot (License 6600)
+       * res_pjsip_t38: Fix FAX failures when using PJSIP with authentication
 
-       * clang compiler warnings: Fix -Wunused-function; make inline function static
+         Without this patch, if a PJSIP endpoint with udptl enabled and authentication
+         set attempted to use sendFax, the FAX session would fail during setup. This
+         was because the invite issued in response to being auth challenged would cause
+         the PJSIP channel performing the FAX to receive a second T38 framehook and
+         this would cause frames to be consumed in an inappropriate manner.
 
-         This patch fixes clang compilers warnings for unused functions. Specifically:
-          * channels/chan_iax2: removed user_ref function
-          * main/dsp.c: removed goertzel_update function
-          * main/config.c: made variable_list_switch static
+         ASTERISK-24933 #close
+         Reported by: Jonathan Rose
+         Review: https://reviewboard.asterisk.org/r/4577/
+         ........
 
-         Review: https://reviewboard.asterisk.org/r/4527
+         Merged revisions 434425 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         ASTERISK-24917
-         Reported by: dkdegroot
-         patches:
-           rb4527.patch submitted by dkdegroot (License 6600)
-         ........
 
-         Merged revisions 433678 from http://svn.asterisk.org/svn/asterisk/branches/11
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@434428 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
+2015-04-08 12:24 +0000 [08945a5c77]  Maciej Szmigiero <mail@maciej.szmigiero.name> (license 6085)
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433680 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+       * Security/tcptls: MitM Attack potential from certificate with NULL byte in CN.
 
-2015-03-27 17:34 +0000 [cfbf5fbe91]  Jonathan Rose <jrose@digium.com>
+         When registering to a SIP server with TLS, Asterisk will accept CA signed
+         certificates with a common name that was signed for a domain other than the
+         one requested if it contains a null character in the common name portion of
+         the cert. This patch fixes that by checking that the common name length
+         matches the the length of the content we actually read from the common name
+         segment. Some certificate authorities automatically sign CA requests when
+         the requesting CN isn't already taken, so an attacker could potentially
+         register a CN with something like www.google.com\x00www.secretlyevil.net
+         and have their certificate signed and Asterisk would accept that certificate
+         as though it had been for www.google.com - this is a security fix and is
+         noted in AST-2015-003.
 
-       * SAC: Add a few basic queues
+         ASTERISK-24847 #close
+         Reported by: Maciej Szmigiero
+         Patches:
+          asterisk-null-in-cn.patch submitted by mhej (license 6085)
+         ........
 
-         Review: https://reviewboard.asterisk.org/r/4503/
+         Merged revisions 434337 from http://svn.asterisk.org/svn/asterisk/branches/1.8
+         ........
 
+         Merged revisions 434338 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ........
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433658 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Merged revisions 434384 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-03-27 17:25 +0000 [1a50d8d4c2]  Jonathan Rose <jrose@digium.com>
 
-       * SAC: Add conferencing extensions and configuration
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@434418 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-         Review: https://reviewboard.asterisk.org/r/4504/
+2015-04-07 10:35 +0000 [45f09898e9]  Mark Michelson <mmichelson@digium.com>
 
+       * Do not queue message requests that we do not respond to.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433656 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         If we receive a MESSAGE request that we cannot send a response
+         to, we should not send the incoming MESSAGE to the dialplan.
 
-2015-03-27 16:15 +0000 [c6c08d755d]  Rusty Newton <rnewton@digium.com>
+         This commit should help the bouncing message_retrans test to
+         pass consistently.
+         ........
 
-       * configs/basic-pbx - Super Awesome Company example configs Phase 1, Patch 2
+         Merged revisions 434218 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         Example configuration files for a "basic PBX" deployment for the fictitious
-         Super Awesome Company. Details at https://reviewboard.asterisk.org/r/4488/
-         and https://wiki.asterisk.org/wiki/display/AST/Super+Awesome+Company
 
-         Patch 4488 includes all functionality needed for SAC's outside connectivity
-         and some externally accessed features, as well as outbound dialing.
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@434220 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-         Reported by: Malcolm Davenport
-         Tested by: Rusty Newton
+2015-04-03 16:59 +0000 [42b7ebdd4d]  Mark Michelson <mmichelson@digium.com>
 
-         Review: https://reviewboard.asterisk.org/r/4488/
+       * res_pjsip_messaging: Serialize outbound SIP MESSAGEs
 
+         Outbound SIP MESSAGEs had the potential to be sent out
+         of order from how they were specified in a set of
+         dialplan steps.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433624 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         This change creates a serializer for sending outbound
+         MESSAGE requests on. This ensures that the MESSAGEs are
+         sent by Asterisk in the same order that they were sent
+         from the dialplan.
 
-2015-03-27 16:04 +0000 [13557675d4]  Richard Mudgett <rmudgett@digium.com>
+         ASTERISK-24937 #close
+         Reported by Mark Michelson
 
-       * res_pjsip_registrar_expire.c: Made use ao2 container template routines and eliminated some RAII_VAR() usage.
+         Review: https://reviewboard.asterisk.org/r/4579
+         ........
 
-         * Converted the contact_autoexpire container to use the ao2 template hash
-         and cmp functions.  Also made use the OBJ_SEARCH_xxx names instead of the
-         deprecated names.
+         Merged revisions 433968 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         * Eliminates several unnecessary uses of RAII_VAR().
 
-         Review: https://reviewboard.asterisk.org/r/4524/
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433970 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
+2015-04-01 15:32 +0000 [b6fff2719d]  Mark Michelson <mmichelson@digium.com>
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433622 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+       * core: avoid possible asterisk -r crash from long id
 
-2015-03-27 15:30 +0000 [85feac857c]  Mark Michelson <mmichelson@digium.com>
+         When connecting to the remote console, an id string
+         is first provided that consts of the hostname, pid,
+         and version.  This is parsed by the remote instance
+         using a buffer that may be too short, and can allow
+         a buffer overrun because it is not terminated. This
+         patch adds termination and a larger buffer.
 
-       * Add stateful PJSIP response API call, and use it for out-of-dialog responses.
+         Review: https://reviewboard.asterisk.org/r/4182/
 
-         Asterisk had an issue where retransmissions of MESSAGE requests resulted in
-         Asterisk processing the retransmission as if it were a new MESSAGE request.
+         AFS-254
+         ........
 
-         This patch fixes the issue by creating a transaction in PJSIP on the incoming
-         request. This way, if a retransmission arrives, the PJSIP transaction layer
-         will resend the response and Asterisk will not ever see the retransmission.
+         Merged revisions 429223 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         ASTERISK-24920 #close
-         Reported by Mark Michelson
 
-         Review: https://reviewboard.asterisk.org/r/4532/
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433918 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
+2015-04-01 11:29 +0000 [8ae3670781]  Ashley Sanders <asanders@digium.com>
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433619 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+       * stasis: set a channel variable on websocket disconnect error
 
-2015-03-27 12:50 +0000 [dc2cf21144]  Richard Mudgett <rmudgett@digium.com>
+         Resolve compile errors caused by r433863 by fixing the
+         documentation xml to comply with the schema.
+         ........
 
-       * res_pjsip_registrar_expire.c: Cleanup scheduler leaks on unload/shutdown.
+         Merged revisions 433888 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         Contact expiration object refs were leaked when the module was unloaded.
 
-         * Made empty the scheduler of entries before destroying it to release the
-         object ref held by the scheduler entry.
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433890 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-         Review: https://reviewboard.asterisk.org/r/4523/
+2015-03-31 22:39 +0000 [259227eb1a]  Ashley Sanders <asanders@digium.com>
 
+       * stasis: set a channel variable on websocket disconnect error
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433596 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Resolve compile errors caused by r433839 by included the missing
+         header file, pbx.h.
+         ........
 
-2015-03-27 09:41 +0000 [6e6f5b3a1f]  scsiguy (License 6692)
+         Merged revisions 433863 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * res/res_timing_kqueue: Update the module to conform to current timer API
 
-         This patch updates the kqueue timing module to conform to current timer API.
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433864 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-         This fixes issues with using the kqueue timing source on Asterisk 13 on
-         FreeBSD 10. These issues include:
+2015-03-31 17:34 +0000 [758fead630]  Ashley Sanders <asanders@digium.com>
 
-         - Remove support for kevent64().  The values used to support Asterisk timers
-           fit within 32bits and so can be handled on all platforms via kevent().
+       * stasis: set a channel variable on websocket disconnect error
 
-         - Provide debug logging for, but do not track, unacked events.  This matches
-           the behavior of all other timer implementations.
+         When an error occurs while writing to a web socket, the web socket is
+         disconnected and the event is logged. A side-effect of this, however, is that
+         any application on the other side waiting for a response from Stasis is left
+         hanging indefinitely (as there is no mechanism presently available for
+         notifying interested parties about web socket error states in Stasis).
 
-         - Implement continuous mode by triggering and leaving active, a user event.
-           This ensures that the file descriptor for the timer returns immediately from
-           poll(), without placing the load of a high speed timer on the kernel.
+         To remedy this scenario, this patch introduces a new channel variable:
+         STASISSTATUS.
 
-         - In kqueue_timer_get_max_rate(), don't overstate the capability of the timer.
-           On some platforms, UINT_MAX is greater than INTPTR_MAX, the largest integer
-           type kqueue supports for timers.
+         The possible values for STASISSTATUS are:
+         SUCCESS         - The channel has exited Stasis without any failures
+         FAILED          - Something caused Stasis to croak. Some (not all) possible
+                           reasons for this:
+                             - The app registry is not instantiated;
+                             - The app requested is not registered;
+                             - The app requested is not active;
+                             - Stasis couldn't send a start message
 
-         - In kqueue_timer_get_event(), assume the caller woke up from poll() and just
-           return the mode the timer is currently in. This matches all other timer
-           implementations.
+         ASTERISK-24802
+         Reported By: Kevin Harwell
+         Review: https://reviewboard.asterisk.org/r/4519/
+         ........
 
-         - Adjust the test code now that unacked events are not tracked.
+         Merged revisions 433839 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         Review: https://reviewboard.asterisk.org/r/4465/
 
-         ASTERISK-24857 #close
-         Reported by: scsiguy
-         Tested by: Ed Hynan
-         patches:
-           rb4465.patch submitted by scsiguy (License 6692)
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433842 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
+2015-03-27 15:55 +0000 [b5b44876c2]  Mark Michelson <mmichelson@digium.com>
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433574 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+       * Add stateful PJSIP response API call, and use it for out-of-dialog responses.
 
-2015-03-27 07:26 +0000 [b0df413fb2]  Corey Farrell <git@cfware.com>
+         Asterisk had an issue where retransmissions of MESSAGE requests resulted in
+         Asterisk processing the retransmission as if it were a new MESSAGE request.
 
-       * Fix link error for utils/aelparse.
+         This patch fixes the issue by creating a transaction in PJSIP on the incoming
+         request. This way, if a retransmission arrives, the PJSIP transaction layer
+         will resend the response and Asterisk will not ever see the retransmission.
 
-         Use the standard ast_log instead of ast_log_safe for STANDALONE programs.
+         ASTERISK-24920 #close
+         Reported by Mark Michelson
 
-         Review: https://reviewboard.asterisk.org/r/4538/
+         Review: https://reviewboard.asterisk.org/r/4532/
          ........
 
-         Merged revisions 433549 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Merged revisions 433619 from http://svn.asterisk.org/svn/asterisk/branches/13
 
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433550 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433621 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-2015-03-27 02:09 +0000 [d01706ce1e]  Corey Farrell <git@cfware.com>
+2015-03-27 15:25 +0000 [66b8c7cab4]  Richard Mudgett <rmudgett@digium.com>
 
-       * Improved and portable ast_log recursion avoidance
+       * res_pjsip_registrar_expire.c: Cleanup scheduler leaks on unload/shutdown.
 
-         This introduces a new logger routine ast_log_safe.  This routine should be
-         used for all error messages in code that can be run as a result of ast_log.
-         ast_log_safe does nothing if run recursively.  All error logging in
-         astobj2.c, strings.c and utils.h have been switched to ast_log_safe.
+         Contact expiration object refs were leaked when the module was unloaded.
 
-         This required adding support for raw threadstorage.  This provides direct
-         access to the void* pointer in threadstorage.  In ast_log_safe, NULL is used
-         to signify that this thread is not already running ast_log_safe, (void*)1 when
-         it is already running.  This was done since it's critical that ast_log_safe
-         do nothing that could log during recursion checking.
+         * Made empty the scheduler of entries before destroying it to release the
+         object ref held by the scheduler entry.
 
-         ASTERISK-24155 #close
-         Reported by: Timo Teräs
-         Review: https://reviewboard.asterisk.org/r/4502/
+         Review: https://reviewboard.asterisk.org/r/4523/
          ........
 
-         Merged revisions 433522 from http://svn.asterisk.org/svn/asterisk/branches/11
-
+         Merged revisions 433596 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433523 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-2015-03-26 18:07 +0000 [4b225e2104]  Corey Farrell <git@cfware.com>
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433618 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-       * Fix compile errors caused by r4500 / r4501.
+2015-03-20 14:57 +0000 [fb7062afca]  Richard Mudgett <rmudgett@digium.com>
 
-         * Add ast_register_cleanup to utils/clicompat.c to deal with
-           any utils that copy sources from main.
-         * Asterisk 13+: remove unused variables from core_local.c.
+       * Audit ast_pjsip_rdata_get_endpoint() usage for ref leaks.
 
-         Review: https://reviewboard.asterisk.org/r/4534/
-         ........
+         Valgrind found some memory leaks associated with
+         ast_pjsip_rdata_get_endpoint().  The leaks would manifest when sending
+         responses to OPTIONS requests, processing MESSAGE requests, and
+         res_pjsip supplements implementing the incoming_request callback.
 
-         Merged revisions 433499 from http://svn.asterisk.org/svn/asterisk/branches/11
+         * Fix ast_pjsip_rdata_get_endpoint() endpoint ref leaks in
+         res/res_pjsip.c:supplement_on_rx_request(),
+         res/res_pjsip/pjsip_options.c:send_options_response(),
+         res/res_pjsip_messaging.c:rx_data_to_ast_msg(), and
+         res/res_pjsip_messaging.c:send_response().
 
+         * Eliminated RAII_VAR() use with ast_pjsip_rdata_get_endpoint() in
+         res/res_pjsip_nat.c:nat_on_rx_message().
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433500 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         * Fixed inconsistent but benign return value in
+         res/res_pjsip/pjsip_options.c:options_on_rx_request().
 
-2015-03-26 17:19 +0000 [6adf26f14d]  Corey Farrell <git@cfware.com>
+         Review: https://reviewboard.asterisk.org/r/4511/
+         ........
 
-       * Replace most uses of ast_register_atexit with ast_register_cleanup.
+         Merged revisions 433222 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         Since 'core stop now' and 'core restart now' do not stop modules,
-         it is unsafe for most of the core to run cleanups.  Originally all
-         cleanups used ast_register_atexit, and were only changed when it
-         was shown to be unsafe.  ast_register_atexit is now used only when
-         absolutely required to prevent corruption and close child processes.
 
-         Exceptions that need to use ast_register_atexit:
-         * CDR: Flush records.
-         * res_musiconhold: Kill external applications.
-         * AstDB: Close the DB.
-         * canary_exit: Kill canary process.
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433224 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-         ASTERISK-24142 #close
-         Reported by: David Brillert
+2015-03-20 14:04 +0000 [cf9799845f]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-24683 #close
-         Reported by: Peter Katzmann
+       * res_pjsip_sdp_rtp,sorcery: Fix invalid access and memory leak respectively.
 
-         ASTERISK-24805 #close
-         Reported by: Badalian Vyacheslav
+         Valgrind found a memory leak and invalid access.
 
-         ASTERISK-24881 #close
-         Reported by: Corey Farrell
+         * Fix invalid access by sscanf() being fed a non-nul terminated string of
+         digits in res/res_pjsip_sdp_rtp.c:get_codecs().
 
-         Review: https://reviewboard.asterisk.org/r/4500/
-         Review: https://reviewboard.asterisk.org/r/4501/
-         ........
+         * Fix memory leak in main/sorcery.c:sorcery_object_field_destructor().
 
-         Merged revisions 433495 from http://svn.asterisk.org/svn/asterisk/branches/11
+         * Fix potential NULL pointer dereference in
+         main/xmldoc.c:xmldoc_get_syntax_config_option().
 
+         Review: https://reviewboard.asterisk.org/r/4513/
+         ........
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433497 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Merged revisions 433199 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-03-26 12:46 +0000 [d0df545a44]  Corey Farrell <git@cfware.com>
 
-       * res_pjsip: Enable unload of all modules at shutdown.
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433201 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-         * Move most of res_pjsip:module_unload to unload_pjsip to resolve crashes
-           caused by running PJSIP functions from non-PJSIP threads.
-         * Remove call to pjsip_endpt_destroy(ast_pjsip_endpoint), it was causing
-           crashes in some cases.  In theory pj_shutdown() should take care of this.
-         * Mark res_pjsip_keepalive and res_pjsip_session as allowed to unload at
-           shutdown.
-         * Resolve leaked config global in res_pjsip_notify.
-         * Unregister pubsub pjsip service module.
-         * Implement cleanup for res_pjsip_session.
+2015-03-17 16:56 +0000 [90fc65da62]  Richard Mudgett <rmudgett@digium.com>
 
-         ASTERISK-24731 #close
-         Reported by: Corey Farrell
-         Review: https://reviewboard.asterisk.org/r/4498/
+       * Audit ast_sockaddr_resolve() usage for memory leaks.
 
+         Valgrind found some memory leaks associated with ast_sockaddr_resolve().
+         Most of the leaks had already been fixed by earlier memory leak hunt
+         patches.  This patch performs an audit of ast_sockaddr_resolve() and found
+         one more.
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433469 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         * Fix ast_sockaddr_resolve() memory leak in
+         apps/app_externalivr.c:app_exec().
 
-2015-03-26 12:04 +0000 [fd434a210f]  Kevin Harwell <kharwell@digium.com>
+         * Made main/netsock2.c:ast_sockaddr_resolve() always set the addrs
+         parameter for safety so the pointer will never be uninitialized on return.
+         The same goes for res/res_pjsip_acl.c:extract_contact_addr().
 
-       * app_confbridge: file playback blocks dtmf
+         * Made functions that call ast_sockaddr_resolve() with RAII_VAR()
+         controlling the addrs variable use ast_free instead of ast_free_ptr to
+         provide better MALLOC_DEBUG information.
 
-         Attempting to execute DTMF in a confbridge while file playback (prompt,
-         announcement, etc) is occurring is not allowed. You have to wait until
-         the sound file has completed before entering DTMF. This patch fixes it
-         so that app_confbridge now monitors for dtmf key presses during menu
-         driven file playback. If a key is pressed playback stops and it executes
-         the matched menu option.
+         Review: https://reviewboard.asterisk.org/r/4509/
+         ........
 
-         ASTERISK-24864 #close
-         Reported by: Steve Pitts
-         Review: https://reviewboard.asterisk.org/r/4510/
+         Merged revisions 433056 from http://svn.asterisk.org/svn/asterisk/branches/11
          ........
 
-         Merged revisions 433445 from http://svn.asterisk.org/svn/asterisk/branches/11
+         Merged revisions 433057 from http://svn.asterisk.org/svn/asterisk/branches/13
 
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433446 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433059 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-2015-03-25 13:37 +0000 [dea885a607]  Richard Mudgett <rmudgett@digium.com>
+2015-03-17 13:44 +0000 [e0b644ddb7]  Kevin Harwell <kharwell@digium.com>
 
-       * A couple minor cleanup tweaks.
+       * res_pjsip: Allow configuration of endpoint identifier query order
 
-         * In res/res_sorcery_realtime.c: Broke long line.
+         Updated some documentation stating that endpoint identifiers registered without
+         a name are place at the front of the lookup list. Also renamed register method
+         'ast_sip_register_endpoint_identifier_by_name' to
+         'ast_sip_register_endpoint_identifier_with_name'
 
-         * In main/bucket.c: Eliminated unnecessary NULL check as
-         ast_sorcery_unref() is NULL tolerant and set the global object to NULL
-         after unref in the system shutdown bucket_cleanup().
+         ASTERISK-24840
+         Reported by: Mark Michelson
+         ........
 
+         Merged revisions 433031 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433420 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-2015-03-25 10:30 +0000 [05de9082a5]  Simon Arlott (License 5756)
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433034 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-       * res_xmpp: Buddies are always auto-registered when processing the roster
+2015-03-17 13:43 +0000 [d7c8041f6b]  Kevin Harwell <kharwell@digium.com>
 
-         Due to a quirk in the configuration handling of res_xmpp, the 'autoregister'
-         setting was never actually processed. This was due to not properly copying
-         over the global settings to the client settings when applying the
-         configuration to the run-time object.
+       * res_pjsip: Allow configuration of endpoint identifier query order
 
-         Review: https://reviewboard.asterisk.org/r/4496/
+         This patch fixes previously reverted code that caused binary incompatibility
+         problems with some modules. And like the original patch it makes sure that
+         no matter what order the endpoint identifier modules were loaded, priority is
+         given based on the ones specified in the new global 'endpoint_identifier_order'
+         option.
 
-         ASTERISK-14233
-         ASTERISK-24780 #close
-         Reported by: Simon Arlott
-         patches:
-           asterisk-13.1.0-24780 uploaded by Simon Arlott (License 5756)
+         ASTERISK-24840
+         Reported by: Mark Michelson
+         Review: https://reviewboard.asterisk.org/r/4489/
          ........
 
-         Merged revisions 433395 from http://svn.asterisk.org/svn/asterisk/branches/11
-
+         Merged revisions 433028 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433396 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-2015-03-24 14:26 +0000 [b1e9552b08]  Richard Mudgett <rmudgett@digium.com>
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433033 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-       * chan_pjsip: Add "rpid_immediate" option to prevent unnecessary "180 Ringing" messages.
+2015-03-17 11:25 +0000 [cd4e18c4cc]  Richard Mudgett <rmudgett@digium.com>
 
-         Incoming PJSIP call legs that have not been answered yet send unnecessary
-         "180 Ringing" or "183 Progress" messages every time a connected line
-         update happens.  If the outgoing channel is also PJSIP then the incoming
-         channel will always send a "180 Ringing" or "183 Progress" message when
-         the outgoing channel sends the INVITE.
+       * Multiple revisions 431583,433005
 
-         Consequences of these unnecessary messages:
+         ........
+           r431583 | sgriepentrog | 2015-02-06 15:26:12 -0600 (Fri, 06 Feb 2015) | 10 lines
+           
+           various: cleanup issues found during leak hunt
+           
+           In this collection of small patches to prevent
+           Valgrind errors are: fixes for reference leaks
+           in config hooks, evaluating a parameter beyond
+           bounds, and accessing a structure after a lock
+           where it could have been already free'd.
+           
+           Review: https://reviewboard.asterisk.org/r/4407/
+         ........
+           r433005 | rmudgett | 2015-03-17 11:10:39 -0500 (Tue, 17 Mar 2015) | 1 line
+           
+           res_pjsip: Add reason comment.
+         ........
 
-         * The caller can start hearing ringback before the far end even gets the
-         call.
+         Merged revisions 431583,433005 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-         * Many phones tend to grab the first connected line information and refuse
-         to update the display if it changes.  The first information is not likely
-         to be correct if the call goes to an endpoint not under the control of the
-         first Asterisk box.
 
-         When connected line first went into Asterisk in v1.8, chan_sip received an
-         undocumented option "rpid_immediate" that defaults to disabled.  When
-         enabled, the option immediately passes connected line update information
-         to the caller in "180 Ringing" or "183 Progress" messages as described
-         above.
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@433025 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-         * Added "rpid_immediate" option to prevent unnecessary "180 Ringing" or
-         "183 Progress" messages.  The default is "no" to disable sending the
-         unnecessary messages.
+2015-03-13 10:51 +0000 [6cd70450fd]  Kevin Harwell <kharwell@digium.com>
 
-         ASTERISK-24781 #close
-         Reported by: Richard Mudgett
+       * Revert - res_pjsip: Allow configuration of endpoint identifier query order
 
-         Review: https://reviewboard.asterisk.org/r/4473/
+         Due to a break in binary compatibility with some other modules these changes
+         are being reverted until the issue can be resolved.
 
+         ASTERISK-24840
+         Reported by: Mark Michelson
+         ........
 
-         git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/13@433338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+         Merged revisions 432868 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-03-23  Asterisk Development Team <asteriskteam@digium.com>
 
-       * Asterisk 13.3.0-rc1 Released.
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@432888 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-2015-03-22 23:58 +0000 [r433247-433269]  Matthew Jordan <mjordan@digium.com>
+2015-03-09 11:44 +0000 [4eb1dd4b35]  Kevin Harwell <kharwell@digium.com>
 
-       * apps/app_queue.c, main/cli.c, main/cdr.c, main/manager.c,
-         main/rtp_engine.c, /, funcs/func_cdr.c: Fix compilations errors
-         on 64-bit OpenBSD systems In versiong 5.5, OpenBSD went to 64-bit
-         time values. This requires a cast to (long) when printing members
-         of certain time structs. Review:
-         https://reviewboard.asterisk.org/r/4507 ASTERISK-24879 #close
-         Reported by: snuffy Tested by: snuffy patches:
-         openbsd-time64.diff uploaded by snuffy (License 5024) ........
-         Merged revisions 433268 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+       * res_pjsip: Allow configuration of endpoint identifier query order
 
-       * main/asterisk.c, main/loader.c, main/xmldoc.c, /: Fix compilation
-         issues for OpenBSD This patch addresses compilation issues for
-         OpenBSD. Specifically, it addresses: * It allows including
-         <sys/vmmeter.h> in asterisk.c * Provides a needed (size_t) cast
-         in xmldoc.c In 13+, it also addresses a conditional inclusion in
-         loader.c. Review: https://reviewboard.asterisk.org/r/4506
-         ASTERISK-24880 #close Reported by: snuffy Tested by: snuffy
-         patches: misc-openbsd.diff uploaded by snuffy (License 5024)
-         ........ Merged revisions 433245 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         It's possible to have a scenario that will create a conflict between endpoint
+         identifiers. For instance an incoming call could be identified by two different
+         endpoint identifiers and the one chosen depended upon which identifier module
+         loaded first. This of course causes problems when, for example, the incoming
+         call is expected to be identified by username, but instead is identified by ip.
+         This patch adds a new 'global' option to res_pjsip called
+         'endpoint_identifier_order'. It is a comma separated list of endpoint
+         identifier names that specifies the order by which identifiers are processed
+         and checked.
 
-2015-03-20 19:52 +0000 [r433199-433222]  Richard Mudgett <rmudgett@digium.com>
-
-       * res/res_pjsip_messaging.c, res/res_pjsip/pjsip_options.c,
-         res/res_pjsip.c, res/res_pjsip_nat.c: Audit
-         ast_pjsip_rdata_get_endpoint() usage for ref leaks. Valgrind
-         found some memory leaks associated with
-         ast_pjsip_rdata_get_endpoint(). The leaks would manifest when
-         sending responses to OPTIONS requests, processing MESSAGE
-         requests, and res_pjsip supplements implementing the
-         incoming_request callback. * Fix ast_pjsip_rdata_get_endpoint()
-         endpoint ref leaks in res/res_pjsip.c:supplement_on_rx_request(),
-         res/res_pjsip/pjsip_options.c:send_options_response(),
-         res/res_pjsip_messaging.c:rx_data_to_ast_msg(), and
-         res/res_pjsip_messaging.c:send_response(). * Eliminated
-         RAII_VAR() use with ast_pjsip_rdata_get_endpoint() in
-         res/res_pjsip_nat.c:nat_on_rx_message(). * Fixed inconsistent but
-         benign return value in
-         res/res_pjsip/pjsip_options.c:options_on_rx_request(). Review:
-         https://reviewboard.asterisk.org/r/4511/
-
-       * res/res_pjsip_sdp_rtp.c, main/sorcery.c, main/xmldoc.c:
-         res_pjsip_sdp_rtp,sorcery: Fix invalid access and memory leak
-         respectively. Valgrind found a memory leak and invalid access. *
-         Fix invalid access by sscanf() being fed a non-nul terminated
-         string of digits in res/res_pjsip_sdp_rtp.c:get_codecs(). * Fix
-         memory leak in main/sorcery.c:sorcery_object_field_destructor().
-         * Fix potential NULL pointer dereference in
-         main/xmldoc.c:xmldoc_get_syntax_config_option(). Review:
-         https://reviewboard.asterisk.org/r/4513/
-
-2015-03-19 19:19 +0000 [r433174]  Matthew Jordan <mjordan@digium.com>
-
-       * funcs/func_env.c, tests/test_func_file.c, /: funcs/func_env: Fix
-         regression caused in FILE read operation When r432935 was merged,
-         it did correctly fix a situation where a FILE read operation on
-         the middle of a file buffer would not read the requested length
-         in the parameters passed to the FILE function. Unfortunately, it
-         would also allow the FILE function to append more bytes than what
-         was available in the buffer if the length exceeded the end of the
-         buffer length. This patch takes the minimum of the remaining
-         bytes in the buffer along with the calculated length to append
-         provided by the original patch, and uses that as the length to
-         append in the return result. This patch also updates the unit
-         tests with the scenarios that were originally pointed out in
-         ASTERISK-21765 that the original implementation treated
-         incorrectly. ASTERISK-21765 ........ Merged revisions 433173 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         ASTERISK-24840 #close
+         Reported by: Mark Michelson
+         Review: https://reviewboard.asterisk.org/r/4455/
+         ........
 
-2015-03-19 10:20 +0000 [r433113-433126]  Corey Farrell <git@cfware.com>
+         Merged revisions 432638 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * main/logger.c, /: logger: Apply default console logging when
-         configuration cannot be loaded. When logger.conf is missing or
-         invalid enable console logging and display an error message.
-         ASTERISK-24817 #close Reported by: Corey Farrell Review:
-         https://reviewboard.asterisk.org/r/4497/ ........ Merged
-         revisions 433122 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
 
-       * channels/sip/include/dialog.h, channels/chan_sip.c,
-         channels/sip/include/sip.h: chan_sip: Simplify dialog/peer
-         references, improve REF_DEBUG output. * Replace functions for
-         ref/undef of dialogs and peers with macro's to call
-         ao2_t_bump/ao2_t_cleanup. * Enable passthough of REF_DEBUG caller
-         information to sip_alloc and find_call. ASTERISK-24882 #close
-         Reported by: Corey Farrell Review:
-         https://reviewboard.asterisk.org/r/4189/
-
-       * /, channels/chan_sip.c: chan_sip: Fix dialog reference leaked to
-         scheduler for reinvite_timeout. Release the scheduler reference
-         to the dialog for reinvite timeout during dialog_unlink_all.
-         ASTERISK-24876 #close Reported by: Corey Farrell Review:
-         https://reviewboard.asterisk.org/r/4491/ ........ Merged
-         revisions 433112 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@432658 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-2015-03-18 02:34 +0000 [r433088]  Richard Mudgett <rmudgett@digium.com>
-
-       * res/res_pjsip_session.c: res_pjsip_session: Fix off-nominal extra
-         unref of session.
-
-2015-03-17 22:15 +0000 [r433060-433064]  Scott Griepentrog <sgriepentrog@digium.com>
-
-       * main/asterisk.c, main/config.c, main/xmldoc.c, main/manager.c,
-         include/asterisk/config.h, main/utils.c, main/codec_builtin.c,
-         main/endpoints.c: Various: bugfixes found via chaos Using
-         DEBUG_CHAOS several instances of a null pointer crash, and one
-         uninitialized variable were uncovered and fixed. Also added
-         details on why Asterisk failed to initialize. Review:
-         https://reviewboard.asterisk.org/r/4468/
-
-       * build_tools/cflags.xml, include/asterisk/utils.h: core: Introduce
-         chaos into memory allocations Locate potential crashes by
-         exercising seldom used code paths. This patch introduces a new
-         define DEBUG_CHAOS, and mechanism to randomly return an error
-         condition from functions that will seldom do so. Functions that
-         handle the allocation of memory get the first treatment. Review:
-         https://reviewboard.asterisk.org/r/4463/
-
-2015-03-17 21:49 +0000 [r433057]  Richard Mudgett <rmudgett@digium.com>
-
-       * main/netsock2.c, /, res/res_pjsip_sdp_rtp.c, res/res_pjsip_t38.c,
-         apps/app_externalivr.c, res/res_pjsip_acl.c: Audit
-         ast_sockaddr_resolve() usage for memory leaks. Valgrind found
-         some memory leaks associated with ast_sockaddr_resolve(). Most of
-         the leaks had already been fixed by earlier memory leak hunt
-         patches. This patch performs an audit of ast_sockaddr_resolve()
-         and found one more. * Fix ast_sockaddr_resolve() memory leak in
-         apps/app_externalivr.c:app_exec(). * Made
-         main/netsock2.c:ast_sockaddr_resolve() always set the addrs
-         parameter for safety so the pointer will never be uninitialized
-         on return. The same goes for
-         res/res_pjsip_acl.c:extract_contact_addr(). * Made functions that
-         call ast_sockaddr_resolve() with RAII_VAR() controlling the addrs
-         variable use ast_free instead of ast_free_ptr to provide better
-         MALLOC_DEBUG information. Review:
-         https://reviewboard.asterisk.org/r/4509/ ........ Merged
-         revisions 433056 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+2015-03-04 12:53 +0000 [52366a423c]  Matt Jordan <mjordan@digium.com>
 
-2015-03-17 18:34 +0000 [r433028-433031]  Kevin Harwell <kharwell@digium.com>
+       * translate: Prevent invalid memory accesses on fast shutdown
 
-       * include/asterisk/res_pjsip.h,
-         res/res_pjsip_endpoint_identifier_anonymous.c,
-         res/res_pjsip_endpoint_identifier_ip.c, res/res_pjsip.c,
-         res/res_pjsip_endpoint_identifier_user.c: res_pjsip: Allow
-         configuration of endpoint identifier query order Updated some
-         documentation stating that endpoint identifiers registered
-         without a name are place at the front of the lookup list. Also
-         renamed register method
-         'ast_sip_register_endpoint_identifier_by_name' to
-         'ast_sip_register_endpoint_identifier_with_name' ASTERISK-24840
-         Reported by: Mark Michelson
+         When a 'core restart now' or 'core stop now' is executed and a channel is
+         currently in a media operation, the translator matrix can be destroyed while a
+         channel is currently blocked on getting the best translation choice
+         (see ast_translator_best_choice). When the channel gets the mutex, the
+         translation matrix now has invalid memory, and Asterisk crashes.
 
-       * configs/samples/pjsip.conf.sample, CHANGES, res/res_pjsip.c,
-         res/res_pjsip_endpoint_identifier_user.c,
-         include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c,
-         res/res_pjsip_endpoint_identifier_anonymous.c,
-         res/res_pjsip_endpoint_identifier_ip.c,
-         contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py:
-         res_pjsip: Allow configuration of endpoint identifier query order
-         This patch fixes previously reverted code that caused binary
-         incompatibility problems with some modules. And like the original
-         patch it makes sure that no matter what order the endpoint
-         identifier modules were loaded, priority is given based on the
-         ones specified in the new global 'endpoint_identifier_order'
-         option. ASTERISK-24840 Reported by: Mark Michelson Review:
-         https://reviewboard.asterisk.org/r/4489/
-
-2015-03-17 16:10 +0000 [r433005]  Richard Mudgett <rmudgett@digium.com>
-
-       * res/res_pjsip.c: res_pjsip: Add reason comment.
-
-2015-03-14 02:28 +0000 [r432971]  Matthew Jordan <mjordan@digium.com>
-
-       * /, main/format_cap.c: main/frame: Don't report empty disallow
-         values as an error In realtime, it is normal to have a database
-         with both 'allow' and 'disallow' columns in the schema. It is
-         perfectly valid to have an 'allow' value of '!all,g722,ulaw,alaw'
-         and no 'disallow' value. Unlike in static conf files, you can't
-         *not* provide the disallow value. Thus, the empty disallow value
-         causes a spurious WARNING message, which is kind of annoying.
-         This patch makes it so that a 'disallow' value with no ... value
-         ... is ignored. Granted, you can still screw this up as well, as
-         technically specifying 'disallow=all,!ulaw' allows only ulaw, and
-         then you would have no 'allow' value in your database. But
-         really, why would you do that? WHY? ASTERISK-16779 #close
-         Reported by: Atis Lezdins ........ Merged revisions 432970 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         This patch does two things:
+         (1) We now only clean up the translation matrix on a graceful shutdown. In that
+             case, there are no channels, and so there is no risk of this occurring.
+         (2) We also now set the __matrix and __indextable to NULL. In some initial
+             backtraces when this occurred, it looked as if there was a memory corruption
+             occurring, and it wasn't until we determined that something had restarted
+             Asterisk that the issue became clear. By setting these to NULL on shutdown,
+             it becomes a bit easier to determine why a crash is occurring.
+
+         Note that we could litter the code with NULL checks on the __matrix, but the
+         act of making the translation matrix cleaned up on shutdown should preclude
+         this issue from occurring in the first place, and this part of the code needs
+         to be as fast as possible.
+
+         Review: https://reviewboard.asterisk.org/r/4457/
+         ........
 
-2015-03-14 02:00 +0000 [r432945-432949]  Joshua Colp <jcolp@digium.com>
+         Merged revisions 432453 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * funcs/func_curl.c, /: func_curl: Don't hold exclusive lock when
-         performing HTTP request. This code originally kept a lock held
-         when performing the HTTP request to ensure that the options
-         provided to curl remain valid. This doesn't seem to be necessary
-         these days and holding the lock caused requests to happen
-         sequentially instead of in parallel. ASTERISK-18708 #close
-         Reported by: Dave Cabot ........ Merged revisions 432948 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
 
-       * main/cli.c, /: core: Fix tab completion of "core set debug
-         channel" CLI command. The "core set debug channel" CLI command
-         mistakenly had source filenames added to its tab completion. This
-         occurred because the CLI generator fell back to the "core set
-         debug" command which permits setting debug at a source filename
-         level. ASTERISK-21038 #close Reported by: Richard Kenner ........
-         Merged revisions 432944 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@432454 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-2015-03-14 01:21 +0000 [r432920-432938]  Matthew Jordan <mjordan@digium.com>
+2015-03-02 13:15 +0000 [b17d0953b6]  Matt Jordan <mjordan@digium.com>
 
-       * /, funcs/func_env.c: FILE: fix retrieval of file contents when
-         offset is specified The loop that reads in a file was not
-         correctly using the offset when determining what bytes to append
-         to the output. This patch corrects the logic such that the
-         correct portion of the file is extracted when an offset is
-         specified. ASTERISK-21765 Reported by: John Zhong Tested by: Matt
-         Jordan, Di-Shi Sun patches: file_read_390821.patch uploaded by
-         Di-Shi Sun (License 5076) ........ Merged revisions 432935 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+       * res/res_pjsip_sdp_rtp: Revert portion of r432195
 
-       * apps/app_amd.c, /, configs/samples/amd.conf.sample: apps/app_amd:
-         Document maximum_word_length option; fix AMDCAUSE documentation
-         This patch corrects the documentation for the AMD application.
-         Specifically: * It documents the maximum_word_length option,
-         which limits the maximum allowed length of a single utterance. *
-         It clarifies the AMDCAUSE values MAXWORDS and MAXWORDLENGTH.
-         MAXWORDLENGTH was documented as MAXWORDS, while MAXWORDS was
-         undocumented. Thanks to the issue reporter, Frank DiGennaro, for
-         pointing out the issues. ASTERISK-19470 #close Reported by: Frank
-         DiGennaro ........ Merged revisions 432918 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         Unfortunately, while initial testing with ConfBridge did not reproduce the
+         audio problem alluded to in the comment in res_pjsip_sdp_rtp, further testing
+         did show that bridge_softmix and/or ConfBridge has a severe problem bridging
+         two or more participants at different sampling rates. Sometimes, it even picks
+         odd sampling rates that cause hideous audio problems.
 
-2015-03-13 17:04 +0000 [r432892-432894]  Richard Mudgett <rmudgett@digium.com>
-
-       * res/res_pjsip/pjsip_configuration.c: chan_pjsip: AMI action
-         PJSIPShowEndpoint closes AMI connection on error. Also fixed
-         similar problem with AMI action PJSIPShowEndpoints.
-         ASTERISK-24872 #close Reported by: Dmitriy Serov Review:
-         https://reviewboard.asterisk.org/r/4487/
-
-       * channels/chan_pjsip.c, res/res_pjsip_caller_id.c:
-         chan_pjsip/res_pjsip_callerid: Make Party ID handling simpler and
-         consistent. The res_pjsip modules were manually checking both
-         name and number presentation values when there is a function that
-         determines the combined presentation for a party ID struct. The
-         function takes into account if the name or number components are
-         valid while the manual code rarely checked if the data was even
-         valid. * Made use ast_party_id_presentation() rather than
-         manually checking party ID presentation values. * Ensure that
-         set_id_from_pai() and set_id_from_rpid() will not return
-         presentation values other than what is pulled out of the SIP
-         headers. It is best if the code doesn't assume that
-         AST_PRES_ALLOWED and AST_PRES_USER_NUMBER_UNSCREENED are zero. *
-         Fixed copy paste error in add_privacy_params() dealing with RPID
-         privacy. * Pulled the id->number.valid test from
-         add_privacy_header() and add_privacy_params() up into the parent
-         function add_id_headers() to skip adding PAI/RPID headers
-         earlier. * Made update_connected_line_information() not send out
-         connected line updates if the connected line number is invalid.
-         Lower level code would not add the party ID information and thus
-         the sent message would be unnecessary. * Eliminated RAII_VAR
-         usage in send_direct_media_request(). Review:
-         https://reviewboard.asterisk.org/r/4472/
-
-2015-03-13 14:48 +0000 [r432868]  Kevin Harwell <kharwell@digium.com>
-
-       * include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c,
-         res/res_pjsip_endpoint_identifier_anonymous.c,
-         res/res_pjsip_endpoint_identifier_ip.c,
-         contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py,
-         configs/samples/pjsip.conf.sample, CHANGES, res/res_pjsip.c,
-         res/res_pjsip_endpoint_identifier_user.c: Revert - res_pjsip:
-         Allow configuration of endpoint identifier query order Due to a
-         break in binary compatibility with some other modules these
-         changes are being reverted until the issue can be resolved.
-         ASTERISK-24840 Reported by: Mark Michelson
-
-2015-03-12 12:58 +0000 [r432808-432811]  Matthew Jordan <mjordan@digium.com>
-
-       * /, main/audiohook.c: main/audiohook: Update internal sample rate
-         on reads When an audiohook is created (which is used by the
-         various Spy applications and Snoop channel in Asterisk 13+), it
-         initially is given a sample rate of 8kHz. It is expected,
-         however, that this rate may change based on the media that passes
-         through the audiohook. However, the read/write operations on the
-         audiohook behave very differently. When a frame is written to the
-         audiohook, the format of the frame is checked against the
-         internal sample rate. If the rate of the format does not match
-         the internal sample rate, the internal sample rate is updated and
-         a new SLIN format is chosen based on that sample rate. This works
-         just fine. When a frame is read, however, we do something quite
-         different. If the format rate matches the internal sample rate,
-         all is fine. However, if the rates don't match, the audiohook
-         attempts to "fix up" the number of samples that were requested.
-         This can result in some seriously large number of samples being
-         requested from the read/write factories. Consider the worst case
-         - 192kHz SLIN. If we attempt to read 20ms worth of audio produced
-         at that rate, we'd request 3840 samples (192000 / (1000 / 20)).
-         However, if the audiohook is still expecting an internal sample
-         rate of 8000, we'll attempt to "fix up" the requested samples to:
-         samples_converted = samples * (ast_format_get_sample_rate(format)
-         / (float) audiohook->hook_internal_samp_rate); which is: 92160 =
-         3840 * (192000 / 8000) This results in us attempting to read
-         92160 samples from our factories, as opposed to the 3840 that we
-         actually wanted. On a 64-bit machine, this miraculously survives
-         - despite allocating up to two buffers of length 92160 on the
-         stack. The 32-bit machines aren't quite so lucky. Even in the
-         case where this works, we will either (a) get way more samples
-         than we wanted; or (b) get about 3840 samples, assuming the
-         timing is pretty good on the machine. Either way, the calculation
-         being performed is wrong, based on the API users expectations. My
-         first inclination was to allocate the buffers on the heap. As it
-         is, however, there's at least two drawbacks with doing this: (1)
-         It's a bit complicated, as the size of the buffers may change
-         during the lifetime of the audiohook (ew). (2) The stack is
-         faster (yay); the heap is slower (boo). Since our calculation is
-         flat out wrong in the first place, this patch fixes this issue by
-         instead updating the internal sample rate based on the format
-         passed into the read operation. This causes us to read the
-         correct number of samples, and has the added benefit of setting
-         the audihook with the right SLIN format. Note that this issue was
-         caught by the Asterisk Test Suite as a result of r432195 in the
-         13 branch. Because this issue is also theoretically possible in
-         Asterisk 11, the change is being made here as well. Review:
-         https://reviewboard.asterisk.org/r/4475/ ........ Merged
-         revisions 432810 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         This patch backs out the offending portion of the code until the issues in
+         the affected bridging modules can be more properly analyzed.
 
-       * Makefile, include/asterisk/utils.h, /, configure, main/Makefile,
-         configure.ac, include/asterisk/inline_api.h, makeopts.in: Add
-         support for the clang compiler; update RAII_VAR to use
-         BlocksRuntime RAII_VAR, which is used extensively in Asterisk to
-         manage reference counted resources, uses a GCC extension to
-         automatically invoke a cleanup function when a variable loses
-         scope. While this functionality is incredibly useful and has
-         prevented a large number of memory leaks, it also prevents
-         Asterisk from being compiled with clang. This patch updates the
-         RAII_VAR macro such that it can be compiled with clang. It makes
-         use of the BlocksRuntime, which allows for a closure to be
-         created that performs the actual cleanup. Note that this does not
-         attempt to address the numerous warnings that the clang compiler
-         catches in Asterisk. Much thanks for this patch goes to: * The
-         folks on StackOverflow who asked this question and Leushenko for
-         providing the answer that formed the basis of this code:
-         http://stackoverflow.com/questions/24959440/rewrite-gcc-cleanup-macro-with-nested-function-for-clang
-         * Diederik de Groot, who has been extremely patient in working on
-         getting this patch into Asterisk. Review:
-         https://reviewboard.asterisk.org/r/4370/ ASTERISK-24133
-         ASTERISK-23666 ASTERISK-20399 ASTERISK-20850 #close Reported by:
-         Diederik de Groot patches: RAII_CLANG.patch uploaded by Diederik
-         de Groot (License 6600) ........ Merged revisions 432807 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         ASTERISK-24841
+         ........
 
-2015-03-11 16:38 +0000 [r432764-432787]  Richard Mudgett <rmudgett@digium.com>
+         Merged revisions 432423 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * res/res_pjsip/config_domain_aliases.c,
-         res/res_pjsip/include/res_pjsip_private.h,
-         include/asterisk/res_pjsip.h: res_pjsip: Move internal
-         init/destroy prototypes to private header file. Done as a
-         separate commit from a finding in
-         https://reviewboard.asterisk.org/r/4467/
 
-       * include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c,
-         res/res_pjsip/pjsip_configuration.c: res_pjsip: Fix pjsip.conf
-         type=global object default value handling. When a type=global
-         section is not defined in pjsip.conf the global defaults are not
-         applied. As a result the mandatory Max-Forwards header is not
-         added to SIP messages for res_pjsip/chan_pjsip. The handling of
-         pjsip.conf type=global objects has several problems: 1) If the
-         global object is missing the defaults are not applied. 2) If the
-         global object is missing the default_outbound_endpoint's default
-         value is not returned by
-         ast_sip_global_default_outbound_endpoint(). 3) Defines are needed
-         so default values only need to be changed in one place. * Added a
-         sorcery instance observer callback to check if there were any
-         type=global sections loaded. If there were more than one then
-         issue an error message. If there were none then apply the global
-         defaults. * Fixed ast_sip_global_default_outbound_endpoint() to
-         return the documented default when no type=global object is
-         defined. * Made defines for the global default values. *
-         Increased the default_useragent[] size because SVN version
-         strings can get lengthy and 128 characters may not be enough. *
-         Fixed an off-nominal code path ref leak in global_alloc() if the
-         string fields fail to initialize. * Eliminated RAII_VAR in
-         get_global_cfg() and ast_sip_global_default_outbound_endpoint().
-         ASTERISK-24807 #close Reported by: Anatoli Review:
-         https://reviewboard.asterisk.org/r/4467/
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@432424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-       * res/res_pjsip/pjsip_global_headers.c: res_pjsip: Fixed invalid
-         empty Server and User-Agent SIP headers. Setting pjsip.conf
-         useragent to an empty string results in an empty SIP header being
-         sent. * Made not add an empty SIP header item to the global SIP
-         headers list. Review: https://reviewboard.asterisk.org/r/4467/
+2015-02-26 11:15 +0000 [3b4ba353f0]  Kevin Harwell <kharwell@digium.com>
 
-2015-03-10 23:09 +0000 [r432742]  Joshua Colp <jcolp@digium.com>
+       * app_chanspy, channel: fix frame leaks
 
-       * main/stasis_channels.c, main/endpoints.c, main/stasis_bridges.c:
-         core: Don't create snapshots with locks. Snapshots are immutable
-         and are never changed. Allocating them with a lock is wasteful.
-         Review: https://reviewboard.asterisk.org/r/4469/
+         Fixed a couple of frame leaks that were found during testing.
 
-2015-03-10 21:33 +0000 [r432693-432721]  Matthew Jordan <mjordan@digium.com>
-
-       * res/res_config_odbc.c, /: res/res_config_odbc: Fix improper
-         escaping of backslashes with MySQL When escaping backslashes with
-         MySQL, the proper way to escape the characters in a LIKE clause
-         is to escape the '\' four times, i.e., '\\\\'. To quote the MySQL
-         manual: "Because MySQL uses C escape syntax in strings (for
-         example, “\n” to represent a newline character), you must double
-         any “\” that you use in LIKE strings. For example, to search for
-         “\n”, specify it as “\\n”. To search for “\”, specify it as
-         “\\\\”; this is because the backslashes are stripped once by the
-         parser and again when the pattern match is made, leaving a single
-         backslash to be matched against." ASTERISK-24808 #close Reported
-         by: Javier Acosta patches: res_config_odbc.diff uploaded by
-         Javier Acosta (License 6690) ........ Merged revisions 432720
-         from http://svn.asterisk.org/svn/asterisk/branches/11
-
-       * apps/app_voicemail.c, /: app_voicemail: Fix crash with IMAP
-         backends when greetings aren't present When an IMAP backend is in
-         use and greetings are set to be used, but aren't present for a
-         user in their IMAP folder, Asterisk will crash. This occurs due
-         to the mailstream being set to the 'greetings' folder and being
-         left in that particular state, regardless of the success/failure
-         of the attempt to access the folder the mailstream points to.
-         Later access of the mailstream assumes that it points to the
-         'INBOX' (or some other folder), resulting in either a crash (if
-         the greetings folder didn't exist and the mailstream is invalid)
-         or an inability to read messages from the 'INBOX' folder. This
-         patch restores the mailstream to its correct state after
-         accessing the greetings. This fixes the crash, and sets the
-         mailstream to the state that VoiceMailMain expects. Note that
-         while ASTERISK-23390 also contained a patch for this issue, the
-         patch on ASTERISK-24786 is the one being merged here. Review:
-         https://reviewboard.asterisk.org/r/4459/ ASTERISK-23390 #close
-         Reported by: Ben Smithurst ASTERISK-24786 #close Reported by:
-         Graham Barnett Tested by: Graham Barnett patches:
-         app_voicemail.c.patch.SIGSEGV3rev2 uploaded by Graham Barnett
-         (License 6685) ........ Merged revisions 432695 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         ASTERISK-24828 #close
+         Reported by: John Hardin
+         Review: https://reviewboard.asterisk.org/r/4445/
+         ........
 
-       * /, main/stdtime/localtime.c: localtime: Fix file descriptor leak
-         on kqueue(2) systems The localtime management in the Asterisk
-         core contains a thread that watches for changes in the local
-         timezone. On systems where the directory containing
-         /etc/localtime is modified frequently, the thread monitoring the
-         changes will be woken up to determine if any changes in timezone
-         have occurred. When using kqueue(2), this can cause a leak of
-         file descriptors due to some improper management of resources.
-         This patch updates the kqueue(2) handling in localtime, such that
-         is no longer leaks resources. Review:
-         https://reviewboard.asterisk.org/r/4450/ ASTERISK-24739 #close
-         Reported by: Ed Hynan patches: 11.15.0-u.diff uploaded by Ed
-         Hynan (Licnese 6680) 11.7.0-u.diff uploaded by Ed Hynan (License
-         6680) svn-trunk-Jan-26-2015-u.diff uploaded by Ed Hynan (License
-         6680) ........ Merged revisions 432691 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         Merged revisions 432362 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ........
 
-2015-03-10 16:04 +0000 [r432668]  Richard Mudgett <rmudgett@digium.com>
+         Merged revisions 432363 from http://svn.asterisk.org/svn/asterisk/branches/13
+
+
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@432365 65c4cc65-6c06-0410-ace0-fbb531ad65f3
+
+2015-02-24 16:01 +0000 [33c73ffeaa]  Matt Jordan <mjordan@digium.com>
+
+       * ARI/PJSIP: Apply requesting channel's format cap to created channels
+
+         This patch addresses the following problems:
+         * ari/resource_channels: In ARI, we currently create a format capability
+           structure of SLIN and apply it to the new channel being created. This was
+           originally done when the PBX core was used to create the channel, as there
+           was a condition where a newly created channel could be created without any
+           formats. Unfortunately, now that the Dial API is being used, this has two
+           drawbacks:
+           (a) SLIN, while it will ensure audio will flows, can cause a lot of
+               needless transcodings to occur, particularly when a Local channel is
+               created to the dialplan. When no format capabilities are available, the
+               Dial API handles this better by handing all audio formats to the requsted
+               channels. As such, we defer to that API to provide the format
+               capabilities.
+           (b) If a channel (requester) is causing this channel to be created, we
+               currently don't use its format capabilities as we are passing in our own.
+               However, the Dial API will use the requester channel's formats if none
+               are passed into it, and the requester channel exists and has format
+               capabilities. This is the "best" scenario, as it is the most likely to
+               create a media path that minimizes transcoding.
+           Fixing this simply entails removing the providing of the format capabilities
+           structure to the Dial API.
+
+         * chan_pjsip: Rather than blindly picking the first format in the format
+           capability structure - which actually *can* be a video or text format - we
+           select an audio format, and only pick the first format if that fails. That
+           minimizes the weird scenario where we attempt to transcode between video/audio.
+
+         * res_pjsip_sdp_rtp: Applied the joint capapbilites to the format structure.
+           Since ast_request already limits us down to one format capability once the
+           format capabilities are passed along, there's no reason to squelch it here.
+
+         * channel: Fixed a comment. The reason we have to minimize our requested
+           format capabilities down to a single format is due to Asterisk's inability
+           to convey the format to be used back "up" a channel chain. Consider the
+           following:
+
+             PJSIP/A => L;1 <=> L;2 => PJSIP/B
+             g,u,a     g,u,a    g,u,a      u
+
+           That is, we have PJSIP/A dialing a Local channel, where the Local;2 dials
+           PJSIP/B. PJSIP/A has native format capabilities g722,ulaw,alaw; the Local
+           channel has inherited those format capabilities down the line; PJSIP/B
+           supports only ulaw. According to these format capabilities, ulaw is
+           acceptable and should be selected across all the channels, and no
+           transcoding should occur. However, there is no way to convey this: when L;2
+           and PJSIP/B are put into a bridge, we will select ulaw, but that is not
+           conveyed to PJSIP/A and L;1. Thus, we end up with:
+
+             PJSIP/A <=> L;1 <=> L;2 <=> PJSIP/B
+               g          g   X   u        u
+
+           Which causes g722 to be written to PJSIP/B.
+
+           Even if we can convey the 'ulaw' choice back up the chain (which through
+           some severe hacking in Local channels was accomplished), such that the chain
+           looks like:
+
+             PJSIP/A <=> L;1 <=> L;2 <=> PJSIP/B
+               u          u       u         u
+
+           We have no way to tell PJSIP/A's *channel driver* to Answer in the SDP back
+           with only 'ulaw'. This results in all the channel structures being set up
+           correctly, but PJSIP/A *still* sending g722 and causing the chain to fall
+           apart.
+
+           There's a lot of difficulty just in setting this up, as there are numerous
+           race conditions in the act of bridging, and no clean mechanism to pass the
+           selected format backwards down an established channel chain. As such, the
+           best that can be done at this point in time is clarifying the comment.
+
+         Review: https://reviewboard.asterisk.org/r/4434/
+
+         ASTERISK-24812 #close
+         Reported by: Matt Jordan
+         ........
 
-       * res/res_pjsip_refer.c, res/res_pjsip_session.c,
-         include/asterisk/res_pjsip_session.h,
-         res/res_pjsip_session.exports.in: res_pjsip_refer: Fix occasional
-         unexpected BYE sent after receiving a REFER. A race condition
-         happened between initiating a transfer and requesting that a
-         dialog termination be delayed. Occasionally, the transferrer
-         channels would exit the bridge and hangup before the dialog
-         termination delay was requested. * Made request dialog
-         termination delay before initiating the transfer action. If the
-         transfer fails then cancel the delayed dialog termination
-         request. ASTERISK-24755 #close Reported by: John Bigelow Review:
-         https://reviewboard.asterisk.org/r/4460/
+         Merged revisions 432195 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-03-09 16:12 +0000 [r432638]  Kevin Harwell <kharwell@digium.com>
 
-       * include/asterisk/res_pjsip.h, res/res_pjsip/config_global.c,
-         res/res_pjsip_endpoint_identifier_anonymous.c,
-         res/res_pjsip_endpoint_identifier_ip.c,
-         contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py
-         (added), configs/samples/pjsip.conf.sample, CHANGES,
-         res/res_pjsip.c, res/res_pjsip_endpoint_identifier_user.c:
-         res_pjsip: Allow configuration of endpoint identifier query order
-         It's possible to have a scenario that will create a conflict
-         between endpoint identifiers. For instance an incoming call could
-         be identified by two different endpoint identifiers and the one
-         chosen depended upon which identifier module loaded first. This
-         of course causes problems when, for example, the incoming call is
-         expected to be identified by username, but instead is identified
-         by ip. This patch adds a new 'global' option to res_pjsip called
-         'endpoint_identifier_order'. It is a comma separated list of
-         endpoint identifier names that specifies the order by which
-         identifiers are processed and checked. ASTERISK-24840 #close
-         Reported by: Mark Michelson Review:
-         https://reviewboard.asterisk.org/r/4455/
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@432197 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-2015-03-08 01:46 +0000 [r432614]  Joshua Colp <jcolp@digium.com>
+2015-02-11 12:04 +0000 [3ad393b043]  Kevin Harwell <kharwell@digium.com>
 
-       * res/res_rtp_asterisk.c: res_rtp_asterisk: Fix wrongful use of
-         USE_PJPROJECT define. As pjproject is now used as a shared
-         library a different define, HAVE_PJPROJECT, is used to specify if
-         pjproject is present. ASTERISK-24830 #close Reported by: Stefan
-         Engström
+       * res_pjsip: dtls_handler causes Asterisk to crash
 
-2015-03-06 22:50 +0000 [r432574-432594]  Richard Mudgett <rmudgett@digium.com>
+         There have been a couple of times where a crash occurred in the dtls_handler
+         section of the code for res_pjsip. Unfortunately, in working this issue the
+         problem was unable to be reproduced. After looking at the backtraces and
+         through the code the current best guess as to why this happened might be due
+         to a reentrance problem and the strtok function. So, the current fix is to
+         convert the strtok function into the reentrant version of the function,
+         strtok_r.
 
-       * res/res_pjsip_refer.c: res_pjsip_refer: Make safely get the
-         context for a blind transfer. Made safely get the
-         TRANSFER_CONTEXT channel value while the channel is locked in
-         refer_incoming_attended_request() and
-         refer_incoming_blind_request(). The pointer returned by
-         pbx_builtin_getvar_helper() is only valid while the channel is
-         locked.
+         ASTERISK-24741 #close
+         Reported by: Zane Conkle
+         Review: https://reviewboard.asterisk.org/r/4409/
+         ........
 
-       * res/res_pjsip_refer.c: res_pjsip_refer: Made
-         refer_attended_alloc() not create the ao2 object with a lock. The
-         lock is unused.
-
-2015-03-06 21:11 +0000 [r432556]  Jonathan Rose <jrose@digium.com>
-
-       * include/asterisk/app.h, main/app.c: app: Add functions to swap
-         voicemail function table for testing purposes
-
-2015-03-06 20:18 +0000 [r432528-432534]  Richard Mudgett <rmudgett@digium.com>
-
-       * channels/chan_dahdi.c, channels/sig_analog.c, /,
-         channels/chan_dahdi.h, channels/sig_analog.h, UPGRADE.txt:
-         chan_dahdi/sig_analog: Fix distinctive ring detection to suck
-         less. The distinctive ring feature interferes with detecting
-         Caller ID and appears to have been broken for years. What happens
-         is if you have a ring-ring cadence as used in the UK you get too
-         many DAHDI events for the distinctive ring pattern array and
-         Caller ID detection is aborted. I think when Zapata/DAHDI added
-         the ring begin event it broke distinctive ring. More events
-         happen than before and the code does no filtering of which event
-         times are recorded in the pattern array. * Made distinctive ring
-         only record the ringt count when the ring ends instead of on just
-         any DAHDI event. Distinctive ring can be ring, ring-ring,
-         ring-ring-ring, or different ring durations for the up to three
-         rings. * Fixed the distinctive ring detection enable
-         (chan_dahdi.conf option usedistinctiveringdetection) to be per
-         port instead of somewhat per port and somewhat global. This has
-         been broken since v1.8. * Fixed using the default distinctive
-         ring context when the detected pattern does not match any
-         configured dringX patterns. The default context did not get set
-         when the previous call was a matched distinctive ring pattern and
-         the current call is not matched. This has been broken since v1.8.
-         * Made distinctive ring have no effect on Caller ID detection
-         when it is disabled. Caller ID detection just monitors for 10
-         seconds before giving up. * Fixed leak of struct callerid_state
-         memory when a polarity reversal during Caller ID detection causes
-         the incoming call to be aborted. DAHDI-1143 AST-1545
-         ASTERISK-24825 #close Reported by: Richard Mudgett ASTERISK-17588
-         Reported by: Daniel Flounders Review:
-         https://reviewboard.asterisk.org/r/4444/ ........ Merged
-         revisions 432530 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         Merged revisions 431698 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * /, channels/chan_sip.c: chan_sip: Fix realtime locking inversion
-         when poking a just built peer. When a realtime peer is built it
-         can cause a locking inversion when the just built peer is poked.
-         If the CLI command "sip show channels" is periodically executed
-         then a deadlock can happen because of the locking inversion. *
-         Push the peer poke off onto the scheduler thread to avoid the
-         locking inversion of the just built realtime peer. AST-1540
-         ASTERISK-24838 #close Reported by: Richard Mudgett Review:
-         https://reviewboard.asterisk.org/r/4454/ ........ Merged
-         revisions 432526 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
 
-2015-03-05 16:38 +0000 [r432485]  George Joseph <george.joseph@fairview5.com>
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@431700 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-       * apps/app_voicemail.c, /: app_voicemail: Fix compile breaking in
-         app_voicemail with IMAP_STORAGE. There is a leftover "assert" in
-         app_voicemail/__messagecount that references variables that don't
-         exist. This causes the compile to fail when --enable-dev-mode and
-         IMAP_STORAGE are selected. This patch removes the assert.
-         Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4461/ ........ Merged
-         revisions 432484 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+2015-02-11 11:52 +0000 [8be00450b9]  Kevin Harwell <kharwell@digium.com>
 
-2015-03-04 18:52 +0000 [r432453]  Matthew Jordan <mjordan@digium.com>
+       * res_http_websocket: websocket write timeout fails to fully disconnect
 
-       * main/translate.c: translate: Prevent invalid memory accesses on
-         fast shutdown When a 'core restart now' or 'core stop now' is
-         executed and a channel is currently in a media operation, the
-         translator matrix can be destroyed while a channel is currently
-         blocked on getting the best translation choice (see
-         ast_translator_best_choice). When the channel gets the mutex, the
-         translation matrix now has invalid memory, and Asterisk crashes.
-         This patch does two things: (1) We now only clean up the
-         translation matrix on a graceful shutdown. In that case, there
-         are no channels, and so there is no risk of this occurring. (2)
-         We also now set the __matrix and __indextable to NULL. In some
-         initial backtraces when this occurred, it looked as if there was
-         a memory corruption occurring, and it wasn't until we determined
-         that something had restarted Asterisk that the issue became
-         clear. By setting these to NULL on shutdown, it becomes a bit
-         easier to determine why a crash is occurring. Note that we could
-         litter the code with NULL checks on the __matrix, but the act of
-         making the translation matrix cleaned up on shutdown should
-         preclude this issue from occurring in the first place, and this
-         part of the code needs to be as fast as possible. Review:
-         https://reviewboard.asterisk.org/r/4457/
-
-2015-03-02 19:14 +0000 [r432423]  Matthew Jordan <mjordan@digium.com>
-
-       * res/res_pjsip_sdp_rtp.c: res/res_pjsip_sdp_rtp: Revert portion of
-         r432195 Unfortunately, while initial testing with ConfBridge did
-         not reproduce the audio problem alluded to in the comment in
-         res_pjsip_sdp_rtp, further testing did show that bridge_softmix
-         and/or ConfBridge has a severe problem bridging two or more
-         participants at different sampling rates. Sometimes, it even
-         picks odd sampling rates that cause hideous audio problems. This
-         patch backs out the offending portion of the code until the
-         issues in the affected bridging modules can be more properly
-         analyzed. ASTERISK-24841
-
-2015-02-27 18:23 +0000 [r432404]  Richard Mudgett <rmudgett@digium.com>
-
-       * main/json.c, rest-api/api-docs/endpoints.json,
-         res/ari/resource_endpoints.c, res/res_ari_endpoints.c,
-         include/asterisk/json.h, res/ari/resource_channels.c: ARI: Fix
-         crash if integer values used in JSON payload 'variables' object.
-         Sending the following ARI commands caused Asterisk to crash if
-         the JSON body 'variables' object passes values of types other
-         than strings. POST /ari/channels POST /ari/channels/{channelid}
-         PUT /ari/endpoints/sendMessage PUT
-         /ari/endpoints/{tech}/{resource}/sendMessage * Eliminated
-         RAII_VAR usage in ast_ari_channels_originate_with_id(),
-         ast_ari_channels_originate(), ast_ari_endpoints_send_message(),
-         and ast_ari_endpoints_send_message_to_endpoint(). ASTERISK-24751
-         #close Reported by: jeffrey putnam Review:
-         https://reviewboard.asterisk.org/r/4447/
-
-2015-02-26 18:52 +0000 [r432385]  Scott Griepentrog <sgriepentrog@digium.com>
-
-       * include/asterisk/dial.h, main/dial.c: Dial API: add self destruct
-         option when complete This patch adds a self-destruction option to
-         the dial api. The usefulness of this is mostly when using async
-         mode to spawn a separate thread used to handle the new call,
-         while the calling thread is allowed to go on about other
-         business. The only alternative to this option would be the
-         calling thread spawning a new thread, or hanging around itself
-         waiting to destroy the dial struct after completion. Example of
-         use (minus error checking): struct ast_dial *dial =
-         ast_dial_create(); ast_dial_append(dial, "PJSIP", "200", NULL);
-         ast_dial_option_global_enable(dial, AST_DIAL_OPTION_ANSWER_EXEC,
-         "Echo"); ast_dial_option_global_enable(dial,
-         AST_DIAL_OPTION_SELF_DESTROY, NULL); ast_dial_run(dial, NULL, 1);
-         The dial_run call will return almost immediately after spawning
-         the new thread to run and monitor the dial. If the call is
-         answered, it is placed into the echo app. When completed, it will
-         call ast_dial_destroy() on the dial structure. Note that any
-         allocations made to pass values to ast_dial_set_user_data() or
-         dial options must be free'd in a state callback function on any
-         of: AST_DIAL_RESULT_UNASWERED, AST_DIAL_RESULT_ANSWERED,
-         AST_DIAL_RESULT_HANGUP, or AST_DIAL_RESULT_TIMEOUT. Review:
-         https://reviewboard.asterisk.org/r/4443/
-
-2015-02-26 17:07 +0000 [r432363]  Kevin Harwell <kharwell@digium.com>
-
-       * /, apps/app_chanspy.c, main/channel.c: app_chanspy, channel: fix
-         frame leaks Fixed a couple of frame leaks that were found during
-         testing. ASTERISK-24828 #close Reported by: John Hardin Review:
-         https://reviewboard.asterisk.org/r/4445/ ........ Merged
-         revisions 432362 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         When writing to a websocket if a timeout occurred the underlying socket did not
+         get closed/disconnected. This patch makes sure the websocket gets disconnected
+         on a write timeout. Also a notice is logged stating that the websocket was
+         disconnected.
 
-2015-02-26 04:58 +0000 [r432321-432342]  Matthew Jordan <mjordan@digium.com>
+         ASTERISK-24701 #close
+         Reported by: Matt Jordan
+         Review: https://reviewboard.asterisk.org/r/4412/
+         ........
 
-       * /, apps/Makefile, channels/Makefile: make: Remove 'res_features'
-         from libraries to link against with cygwin/mingw32 Both the apps
-         and channels Makefiles still listed 'res_features' as modules to
-         link against when compiling for cygwin or mingw32. This module
-         hasn't existed for quite some time. ASTERISK-18105 #close
-         Reported by: feyfre ........ Merged revisions 432341 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         Merged revisions 431669 from http://svn.asterisk.org/svn/asterisk/branches/11
+         ........
 
-       * /, channels/chan_sip.c: channels/chan_sip: Don't send a BYE after
-         final response when PBX thread fails When Asterisk fails to start
-         a PBX thread for a new channel - for example, when the maxcalls
-         setting in asterisk.conf is exceeded - we currently send a final
-         response, and then attempt to send a BYE request to the UA. Since
-         that's all sorts of wrong, this patch fixes that by setting
-         sipalreadygone on the sip_pvt such that we don't get stuck
-         sending BYE requests to something that does not want it. Note
-         that this patch is a slight modification of the one on
-         ASTERISK-15434. For clarity, it explicitly calls sipalreadygone
-         with the calls to transmit a final response. ASTERISK-21845
-         ASTERISK-15434 #close Reported by: Makoto Dei Tested by: Matt
-         Jordan patches: sip-pbxstart-failed.patch uploaded by Makoto Dei
-         (License 5027) ........ Merged revisions 432320 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         Merged revisions 431670 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-02-25 23:48 +0000 [r432301]  Rusty Newton <rnewton@digium.com>
-
-       * configs/basic-pbx/README (added), configs/basic-pbx (added),
-         configs/basic-pbx/extensions.conf (added),
-         configs/basic-pbx/logger.conf (added),
-         configs/basic-pbx/indications.conf (added),
-         configs/basic-pbx/musiconhold.conf (added),
-         configs/basic-pbx/asterisk.conf (added),
-         configs/basic-pbx/pjsip.conf (added),
-         configs/basic-pbx/modules.conf (added),
-         configs/basic-pbx/voicemail.conf (added): configs/basic-pbx -
-         Super Awesome Company example configs Phase 1, Patch 1 Example
-         configuration files for a "basic PBX" deployment for the
-         fictitious Super Awesome Company. Details at
-         https://reviewboard.asterisk.org/r/4379/ and
-         https://wiki.asterisk.org/wiki/display/AST/Super+Awesome+Company
-         Reported by: Malcolm Davenport Tested by: Rusty Newton Review:
-         https://reviewboard.asterisk.org/r/4379/
-
-2015-02-25 23:09 +0000 [r432258-432281]  Matthew Jordan <mjordan@digium.com>
-
-       * /, configure, configure.ac: configure: Promote SQLite3 "not
-         installed" warning to error Since Asterisk won't build without
-         the library, not having it is definitely an error. Thanks to Kyle
-         Kurz for pointing this out. ........ Merged revisions 432280 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
 
-       * /, channels/chan_sip.c: channels/chan_sip: Clarify WARNING
-         message in mismatched SRTP scenario When we receive an SDP as
-         part of an offer/answer for a peer/friend has been configured to
-         require encryption, and that SDP offer/answer failed to provide
-         acceptable crypto attributes, we currently issue a WARNING that
-         uses the phrase "we" and "requested". In this case, both of those
-         terms are ambiguous - the user will probably think "we" is
-         Asterisk (it most likely isn't) and it may not be a "request", so
-         much as an SDP that was received in some fashion. This patch
-         makes the WARNING messages slightly less bad and a bit more
-         accurate as well. ASTERISK-23214 #close Reported by: Rusty Newton
-         ........ Merged revisions 432277 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@431697 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-       * main/sdp_srtp.c, /: channels/sip/sdp_crypto: Handle SRTP keys
-         negotiated with key lifetime/MKI Prior to this patch, SDP offers
-         negotiating SDES-SRTP crypto attributes would be rejected if
-         those crypto attributes contained either a key lifetime or a MKI
-         parameter. While from a theoretical point of view this was
-         defensible - Asterisk does not support key lifetimes or multiple
-         crypto keys - from a practical point of view, this is quite a
-         problem. A large number of endpoints offer lifetimes/MKI, which
-         Asterisk can tolerate so long as it doesn't actually have to
-         support anything more than a single key or refresh the key. In
-         reality, this is (so far as we've seen) always the case. This
-         patch is a forward port of Olle's work in the
-         lingon-srtp-key-lifetime-1.8 branch. To quote Olle from
-         ASTERISK-17721, it handles lifetime/MKI parameters in the
-         following fashion: > The Lingon branch now handle lifetime and
-         MKI parameters. > > We only accept lifetimes up to max for the
-         crypto and higher than 10 hours > for packetization of 20 ms (50
-         pps). > > We only handle MKI with index 1. > > We do not really
-         bother with counting packets and reinviting at end of > lifetime,
-         so the min of 10 hours kind of takes care of most calls. If there
-         > are longer ones, we rely on the other side for re-invites. > >
-         It's still not perfect, but I personally think this is an
-         improvement. A > configuration option for minimum lifetime
-         accepted could be added. When the patch was ported forward, I
-         decided against adding a configuration option as Olle's handling
-         was more than sufficient for every case I've seen come through
-         the issue tracker or through interoperability testing. We can
-         revisit that decision if it proves to be false. A few small other
-         tweaks were made to the surrounding code to reduce indentation
-         and provide better type safety for the 'tag' parameter. Review:
-         https://reviewboard.asterisk.org/r/4419/ Review:
-         https://reviewboard.asterisk.org/r/4418/ ASTERISK-17721 #close
-         Reported by: Terry Wilson ASTERISK-17899 #close Reported by:
-         Dwayne Hubbard patches: lingon-srtp-key-lifetime-1.8.diff
-         uploaded by oej (License 5267) ASTERISK-20233 Reported by: tootai
-         ASTERISK-22748 Reported by: Alejandro Mejia ........ Merged
-         revisions 432239 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+2015-02-11 11:48 +0000 [340588c721]  Richard Mudgett <rmudgett@digium.com>
 
-2015-02-25 20:44 +0000 [r432237]  David M. Lee <dlee@digium.com>
-
-       * res/res_http_websocket.c, /: Increase WebSocket frame size and
-         improve large read handling Some WebSocket applications, like
-         [chan_respoke][], require a larger frame size than the default
-         8k; this patch bumps the default to 16k. This patch also fixes
-         some problems exacerbated by large frames. The sanity counter was
-         decremented on every fread attempt in ws_safe_read(), regardless
-         of whether data was read from the socket or not. For large
-         frames, this could result in loss of sanity prior to reading the
-         entire frame. (16k frame / 1448 bytes per segment = 12 segments).
-         This patch changes the sanity counter so that it only decrements
-         when fread() doesn't read any bytes. This more closely matches
-         the original intention of ws_safe_read(), given that the error
-         message is "Websocket seems unresponsive". This patch also
-         properly logs EOF conditions, so disconnects are no longer
-         confused with unresponsive connections. [chan_respoke]:
-         https://github.com/respoke/chan_respoke Review:
-         https://reviewboard.asterisk.org/r/4431/ ........ Merged
-         revisions 432236 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+       * HTTP: Stop accepting requests on final system shutdown.
 
-2015-02-24 22:14 +0000 [r432195-432199]  Matthew Jordan <mjordan@digium.com>
-
-       * /, channels/chan_sip.c: channels/chan_sip: Fix crash when
-         transmitting packet after thread shutdown When the monitor thread
-         is stopped, its pthread ID is set to a specific value
-         (AST_PTHREADT_STOP) so that later portions of the code can
-         determine whether or not it is safe to manipulate the thread.
-         Unfortunately, __sip_reliable_xmit failed to check for that
-         value, checking instead only for AST_PTHREAD_STOP. Passing the
-         invalid yet very specific value to pthread_kill causes a crash.
-         This patch adds a check for AST_PTHREADT_STOP in
-         __sip_reliable_xmit such that it doesn't attempt to poke the
-         thread if the thread has already been stopped. ASTERISK-24800
-         #close Reported by: JoshE ........ Merged revisions 432198 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         There are three CLI commands to stop and restart Asterisk each.
 
-       * channels/chan_pjsip.c, main/channel.c, res/res_pjsip_sdp_rtp.c,
-         res/ari/resource_channels.c: ARI/PJSIP: Apply requesting
-         channel's format cap to created channels This patch addresses the
-         following problems: * ari/resource_channels: In ARI, we currently
-         create a format capability structure of SLIN and apply it to the
-         new channel being created. This was originally done when the PBX
-         core was used to create the channel, as there was a condition
-         where a newly created channel could be created without any
-         formats. Unfortunately, now that the Dial API is being used, this
-         has two drawbacks: (a) SLIN, while it will ensure audio will
-         flows, can cause a lot of needless transcodings to occur,
-         particularly when a Local channel is created to the dialplan.
-         When no format capabilities are available, the Dial API handles
-         this better by handing all audio formats to the requsted
-         channels. As such, we defer to that API to provide the format
-         capabilities. (b) If a channel (requester) is causing this
-         channel to be created, we currently don't use its format
-         capabilities as we are passing in our own. However, the Dial API
-         will use the requester channel's formats if none are passed into
-         it, and the requester channel exists and has format capabilities.
-         This is the "best" scenario, as it is the most likely to create a
-         media path that minimizes transcoding. Fixing this simply entails
-         removing the providing of the format capabilities structure to
-         the Dial API. * chan_pjsip: Rather than blindly picking the first
-         format in the format capability structure - which actually *can*
-         be a video or text format - we select an audio format, and only
-         pick the first format if that fails. That minimizes the weird
-         scenario where we attempt to transcode between video/audio. *
-         res_pjsip_sdp_rtp: Applied the joint capapbilites to the format
-         structure. Since ast_request already limits us down to one format
-         capability once the format capabilities are passed along, there's
-         no reason to squelch it here. * channel: Fixed a comment. The
-         reason we have to minimize our requested format capabilities down
-         to a single format is due to Asterisk's inability to convey the
-         format to be used back "up" a channel chain. Consider the
-         following: PJSIP/A => L;1 <=> L;2 => PJSIP/B g,u,a g,u,a g,u,a u
-         That is, we have PJSIP/A dialing a Local channel, where the
-         Local;2 dials PJSIP/B. PJSIP/A has native format capabilities
-         g722,ulaw,alaw; the Local channel has inherited those format
-         capabilities down the line; PJSIP/B supports only ulaw. According
-         to these format capabilities, ulaw is acceptable and should be
-         selected across all the channels, and no transcoding should
-         occur. However, there is no way to convey this: when L;2 and
-         PJSIP/B are put into a bridge, we will select ulaw, but that is
-         not conveyed to PJSIP/A and L;1. Thus, we end up with: PJSIP/A
-         <=> L;1 <=> L;2 <=> PJSIP/B g g X u u Which causes g722 to be
-         written to PJSIP/B. Even if we can convey the 'ulaw' choice back
-         up the chain (which through some severe hacking in Local channels
-         was accomplished), such that the chain looks like: PJSIP/A <=>
-         L;1 <=> L;2 <=> PJSIP/B u u u u We have no way to tell PJSIP/A's
-         *channel driver* to Answer in the SDP back with only 'ulaw'. This
-         results in all the channel structures being set up correctly, but
-         PJSIP/A *still* sending g722 and causing the chain to fall apart.
-         There's a lot of difficulty just in setting this up, as there are
-         numerous race conditions in the act of bridging, and no clean
-         mechanism to pass the selected format backwards down an
-         established channel chain. As such, the best that can be done at
-         this point in time is clarifying the comment. Review:
-         https://reviewboard.asterisk.org/r/4434/ ASTERISK-24812 #close
-         Reported by: Matt Jordan
+         1) core stop/restart now - Hangup all calls and stop or restart Asterisk.
+         New channels are prevented while the shutdown request is pending.
 
-2015-02-24 18:32 +0000 [r432175]  Kevin Harwell <kharwell@digium.com>
-
-       * /, bridges/bridge_softmix.c: bridge_softmix: G.729 codec license
-         held When more than one call using the same codec type enters
-         into a softmix bridge and no audio is present for a channel the
-         bridge optimizes the out frame by using the same one for all
-         channels with the same codec type. Unfortunately, when that
-         number (channels with same codec type) dropped to <= 1 the codec
-         was not dereferenced. At least not until all parties left the
-         bridge. Thus in the case of G.729 the license was not released.
-         This patch ensures that the codec is dereferenced immediately
-         when the optimization no longer applies. ASTERISK-24797 #close
-         Reported by: Luke Hulsey Review:
-         https://reviewboard.asterisk.org/r/4429/ ........ Merged
-         revisions 432174 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         2) core stop/restart gracefully - Stop or restart Asterisk when there are
+         no calls remaining in the system.  New channels are prevented while the
+         shutdown request is pending.
 
-2015-02-21 20:47 +0000 [r432118-432154]  Joshua Colp <jcolp@digium.com>
+         3) core stop/restart when convenient - Stop or restart Asterisk when there
+         are no calls in the system.  New calls are not prevented while the
+         shutdown request is pending.
 
-       * rest-api/api-docs/channels.json, res/ari/resource_channels.c,
-         res/res_ari_channels.c: res_ari_channels: Return a 404 response
-         when a requested channel variable does not exist. This change
-         makes it so that if a channel variable is requested and it does
-         not exist a 404 response will be returned instead of an
-         allocation failed response. This makes it easier to debug and
-         figure out what is going on for a user. ASTERISK-24677 #close
-         Reported by: Joshua Colp
+         ARI has made stopping/restarting Asterisk more problematic.  While a
+         shutdown request is pending it is desirable to continue to process ARI
+         HTTP requests for current calls.  To handle the current calls while a
+         shutdown request is pending, a new committed to shutdown phase is needed
+         so ARI applications can deal with the calls until the system is fully
+         committed to shutdown.
 
-       * res/res_pjsip_registrar.c: res_pjsip_registrar: Add Expires
-         header to 200 OK if present in REGISTER. Some implementations
-         don't pay attention to the expires for individual contacts. In
-         this case they may consider the lack of an Expires header in the
-         200 OK as unregistered. This change makes it so if an Expires
-         header is present in the REGISTER we will add one in the 200 OK.
-         ASTERISK-24785 #close Reported by: Ross Beer
+         * Added a new shutdown committed phase so ARI applications can deal with
+         calls until the final committed to shutdown phase is reached.
 
-       * res/res_pjsip.c: res_pjsip: Add a log message when creating a UAC
-         dialog to a target URI that is invalid. ASTERISK-24499 #close
-         Reported by: Rusty Newton
+         * Made refuse new HTTP requests when the system has reached the final
+         system shutdown phase.  Starting anything while the system is actively
+         releasing resources and unloading modules is not a good thing.
 
-2015-02-21 17:35 +0000 [r432099]  Matthew Jordan <mjordan@digium.com>
-
-       * apps/app_voicemail.c, /: apps/app_voicemail: Demote an ERROR
-         message to a WARNING message When using IMAP voicemail with
-         FreePBX, you will often get ERROR messages complaining about not
-         being able to find a mailbox. This is due to how FreePBX handles
-         voicemail mailboxes. Unfortunately, app_voicemail has to consider
-         this a configuration error, as in any other system it would be
-         indicative of someone misconfiguring their system. Regardless, a
-         misconfiguration is a WARNING, and not an ERROR. This patch
-         demotes the message so that system administrators can hopefully
-         reduce some of the noise in their log files. Note that in the
-         original patch this was made into a NOTICE, but that's a too
-         forgiving. ASTERISK-24790 #close Reported by: Graham Barnett
-         patches: app_voicemail.c.patch_noise uploaded by Graham Barnett
-         (License 6685) ........ Merged revisions 432098 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         * Split the bridging framework shutdown to not cleanup the global bridging
+         containers when shutting down in a hurry.  This is similar to how other
+         modules prevent crashes on rapid system shutdown.
 
-2015-02-21 14:05 +0000 [r432079]  Joshua Colp <jcolp@digium.com>
+         * Moved ast_begin_shutdown(), ast_cancel_shutdown(), and
+         ast_shutting_down().  You should not have to include channel.h just to
+         access these system functions.
 
-       * main/http.c, /: http: Add missing html tag to 'httpstatus'
-         functionality. ASTERISK-24724 #close Reported by: Ashley Sanders
-         ........ Merged revisions 432078 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         ASTERISK-24752 #close
+         Reported by: Matthew Jordan
 
-2015-02-21 02:56 +0000 [r432055-432059]  Corey Farrell <git@cfware.com>
+         Review: https://reviewboard.asterisk.org/r/4399/
+         ........
 
-       * /, main/bucket.c, main/codec.c, main/loader.c: Allow shutdown to
-         unload modules that register bucket scheme's or codec's. * Change
-         __ast_module_shutdown_ref to be NULL safe (11+). * Allow modules
-         that call ast_bucket_scheme_register or ast_codec_register to be
-         unloaded during graceful shutdown only (13+ only). ASTERISK-24796
-         #close Reported by: Corey Farrell Review:
-         https://reviewboard.asterisk.org/r/4428/ ........ Merged
-         revisions 432058 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         Merged revisions 431692 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * /, include/asterisk/lock.h: asterisk/lock.h: Fix syntax errors
-         for non-gcc OSX with 64-bit integers. Add a couple of missing
-         closing brackets / parenthesis. ASTERISK-24814 #close Reported
-         by: Corey Farrell Review:
-         https://reviewboard.asterisk.org/r/4436/ ........ Merged
-         revisions 432054 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
 
-2015-02-20 17:51 +0000 [r432034]  Richard Mudgett <rmudgett@digium.com>
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@431696 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-       * /, channels/sig_analog.c: chan_dahdi/sig_analog: Put log message
-         strings on one line. With the log messages on one line, you can
-         search for the log message seen in the log and expect to find it.
-         ........ Merged revisions 432032 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+2015-02-11 10:19 +0000 [69dc8f9ec2]  Kevin Harwell <kharwell@digium.com>
 
-2015-02-20 17:46 +0000 [r432033]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip_publish_asterisk.c, res/res_pjsip_acl.c:
-         ASTERISK-24811: Add ast_sorcery_apply_config() to
-         res_pjsip_publish_asterisk. Matt Hoskins reported that
-         res_pjsip_publish_asterisk wouldn't pull config from realtime.
-         Turns out it was just missing a call ast_sorcery_apply_config().
-         res_pjsip_acl was missing it as well, so I added it. The other
-         pjsip modules looked OK. ASTERISK-24811 #close Reported-by: Matt
-         Hoskins Tested-by: George Joseph Tested-by: Matt Hoskins patches:
-         res_pjsip_publish_asterisk.c.patch submitted by Matt Hoskins
-         (license 6688) Review: https://reviewboard.asterisk.org/r/4433/
-
-2015-02-20 15:47 +0000 [r432013]  Matthew Jordan <mjordan@digium.com>
-
-       * apps/app_voicemail.c, /: apps/app_voicemail: Fix IMAP header
-         compatibility issue with Microsoft Exchange When interfacing with
-         Microsoft Exchange, custom headers will be returned as all lower
-         case. Currently, the IMAP header code will fail to parse the
-         returned custom headers, as it will be performing a case
-         sensitive comparison. This can cause playback of messages to
-         fail, as needed information - such as origtime - will not be
-         present. This patch updates app_voicemail's header parsing code
-         to perform a case insensitive lookup for the requested custom
-         headers. Since the headers are specific to Asterisk, e.g.,
-         'x-asterisk-vm-orig-time', and headers should be unique in an
-         IMAP message, this should cause no issues with other systems.
-         ASTERISK-24787 #close Reported by: Graham Barnett patches:
-         app_voicemail.c.patch_MSExchange uploaded by Graham Barnett
-         (License 6685) ........ Merged revisions 432012 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+       * pjsip_options: Fix continued qualifies after endpoint/aor deletion
 
-2015-02-19 21:25 +0000 [r431956-431993]  Richard Mudgett <rmudgett@digium.com>
+         If you remove an endpoint/aor from pjsip.conf then do a core reload,
+         qualifies will continue even though the object are gone.  This happens
+         because nothing clears out the qualify tasks.
 
-       * channels/chan_dahdi.c, channels/sig_analog.c, /: chan_dahdi:
-         Remove some dead code. ........ Merged revisions 431992 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         This patch unschedules all existing qualify tasks before scheduling
+         new ones on reload.
 
-       * main/aoc.c: ISDN AOC: Fix crash from an AOC-E message that
-         doesn't have a channel association. Processing an AOC-E event
-         that does not or no longer has a channel association causes a
-         crash. The problem with posting AOC events to the channel topic
-         is that AOC-E events don't always have a channel association and
-         posting the event to the all channels topic is just wrong. AOC-E
-         events do however have their own charging association method to
-         refer to the agreement with the charging entity. * Changed the
-         AOC events to post to the AMI manager topic instead of the
-         channel topics. If a channel is associated with the event then
-         channel snapshot information is supplied with the AMI event. *
-         Eliminated RAII_VAR() usage in aoc_to_ami() and
-         ast_aoc_manager_event(). This patch supercedes the patch on
-         Review: https://reviewboard.asterisk.org/r/4427/ ASTERISK-22670
-         #close Reported by: klaus3000 ASTERISK-24689 #close Reported by:
-         Marcel Manz ASTERISK-24740 #close Reported by: Panos Gkikakis
-         Review: https://reviewboard.asterisk.org/r/4430/
+         Tested-by: George Joseph
 
-       * res/res_pjsip_refer.c: res_pjsip_refer: Handle INVITE with
-         Replaces failure after answer. * Fixed hangup handling of the
-         session->channel after answer if the ast_channel_move() or
-         ast_bridge_impart() fails. We are still the thread controlling
-         the session->channel so we need to call ast_hangup() to kill the
-         channel. * Fixed debug messages in
-         refer_incoming_invite_request() referencing incorrect channnels
-         on success. Code comments now say why the session->channel cannot
-         be used. Review: https://reviewboard.asterisk.org/r/4422/
-
-2015-02-19 15:28 +0000 [r431937]  Matthew Jordan <mjordan@digium.com>
-
-       * main/tcptls.c, /: tcptls: Handle new OpenSSL compile time option
-         to disable SSLv3 Some distributions are going to disable SSLv3 at
-         compile time. This option can be checked using the directive
-         OPENSSL_NO_SSL3_METHOD. This patch updates the TCP/TLS handling
-         in Asterisk to look for that directive before attempting to use
-         the SSLv3 specific methods. ASTERISK-24799 #close Reported by:
-         Alexander Traud patches: no-ssl3-method.patch uploaded by
-         Alexander Traud (License 6520) ........ Merged revisions 431936
-         from http://svn.asterisk.org/svn/asterisk/branches/11
-
-2015-02-19 02:01 +0000 [r431917]  Corey Farrell <git@cfware.com>
-
-       * main/sched.c, /, include/asterisk/sched.h, channels/chan_iax2.c:
-         Create work around for scheduler leaks during shutdown. * Added
-         ast_sched_clean_by_callback for cleanup of scheduled events that
-         have not yet fired. * Run all pending peercnt_remove_cb and
-         replace_callno events in chan_iax2. Cleanup of replace_callno
-         events is only run 11, since it no longer releases any references
-         or allocations in 13+. ASTERISK-24451 #close Reported by: Corey
-         Farrell Review: https://reviewboard.asterisk.org/r/4425/ ........
-         Merged revisions 431916 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         Review: https://reviewboard.asterisk.org/r/4290/
+         ........
 
-2015-02-17 15:31 +0000 [r431898]  Richard Mudgett <rmudgett@digium.com>
-
-       * res/res_pjsip_sdp_rtp.c, res/res_pjsip_messaging.c,
-         res/res_pjsip_caller_id.c, res/res_pjsip_refer.c,
-         res/res_pjsip_send_to_voicemail.c: res_pjsip_refer: Fix crash
-         from a REFER and BYE collision. Analyzing a one-off crash on a
-         busy system showed that processing a REFER request had a NULL
-         session channel pointer. The only way I can think of that could
-         cause this is if an outgoing BYE transaction overlapped the
-         incoming REFER transaction in a collision. Asterisk sends a BYE
-         while the phone sends a REFER to complete an attended transfer. *
-         Made check the session channel pointer before processing an
-         incoming REFER request in res_pjsip_refer. * Fixed similar crash
-         potential for res_pjsip supplement incoming request processing
-         for res_pjsip_sdp_rtp INFO, res_pjsip_caller_id INVITE/UPDATE,
-         res_pjsip_messaging MESSAGE, and res_pjsip_send_to_voicemail
-         REFER messages. * Made res_pjsip_messaging respond to a message
-         body too large with a 413 instead of ignoring it. ASTERISK-24700
-         #close Reported by: Zane Conkle Review:
-         https://reviewboard.asterisk.org/r/4417/
-
-2015-02-16 21:29 +0000 [r431879]  Matthew Jordan <mjordan@digium.com>
-
-       * res/res_rtp_asterisk.c: res/res_rtp_asterisk: Fix crash in debug
-         from RTCP reports without report block When RTCP debugging was
-         enabled, an RTCP report without a report block would cause a
-         crash. This was due to the verbose output not checking to see if
-         the report_block pointer was NULl before dereferencing it. This
-         patch adds the necessary check to prevent printing any verbose
-         output if the far side hasn't provided us the information they
-         should have. ASTERISK-24791 #close Reported by: JoshE Tested by:
-         JoshE
-
-2015-02-15 19:00 +0000 [r431807-431860]  Joshua Colp <jcolp@digium.com>
-
-       * configs/samples/pjsip.conf.sample: pjsip: Remove "contact" type
-         from pjsip.conf.sample The "contact" object is not meant to be
-         configured from the pjsip.conf configuration file. It is meant to
-         be created as a result of a registration and stored elsewhere.
-         ASTERISK-24085 #close Reported by: Rusty Newton
-
-       * contrib/scripts/install_prereq: install_prereq: Tweak flags when
-         configuring pjproject. This change does two things: 1. Disables
-         debugging so assertions which can return an error do, instead of
-         asserting. 2. Enables IPv6 support. ASTERISK-24632 #close
-         Reported by: Rusty Newton
+         Merged revisions 430064 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * res/res_sorcery_config.c: res_sorcery_config: Improve object
-         lookup times. The res_sorcery_config module currently uses a
-         fixed bucket size of 53. This means that depending on the number
-         of objects you either end up with excess buckets or a lot of
-         collisions. Due to the way that res_sorcery_config is implemented
-         it's actually possible to make the bucket size dynamic based on
-         the number of objects. This is due to the fact that each loading
-         of the config file produces a new container and does not modify
-         the existing one. This change uses the number of expected objects
-         and finds a prime number near it. In practice depending on the
-         number of objects this can speed up lookups anywhere from 2X to
-         15X. This change also removes the lock from the container as it
-         is not needed. Review: https://reviewboard.asterisk.org/r/4423/
-
-       * res/res_pjsip/pjsip_cli.c: res_pjsip: Add "pjsip show version"
-         CLI command. When debugging things it can be useful to know
-         absolutely what version of pjproject res_pjsip is running
-         against. This change adds a "pjsip show version" CLI command
-         which can be used to query for this. ASTERISK-24685 #close
-         Reported by: Joshua Colp Review:
-         https://reviewboard.asterisk.org/r/4424/
-
-       * res/res_timing_pthread.c: res_timing_pthread: Fix leaky pipes.
-         During some refactoring the way private information for timers
-         was stored was changed. As a result of this the action which
-         normally removed the timer upon closure in res_timing_pthread was
-         also removed causing the timer to remain after it should using up
-         resources. This change ensures that the timer is removed upon
-         closure. ASTERISK-24768 #close Reported by: Matthias Urlichs
-         patches: timer.patch submitted by Matthias Urlichs (license 5508)
-
-2015-02-15 00:32 +0000 [r431789]  Matthew Jordan <mjordan@digium.com>
-
-       * /, apps/app_mixmonitor.c: apps/app_mixmonitor: Move Test Event
-         for MIXMONITOR_END to after it finishes The Test Event for
-         MIXMONITOR_END - which signals that a MixMonitor has completed -
-         technically fired before the filestream was closed. If a test
-         used this to trigger a condition to verify that the file was
-         written, it could result in a race condition where the file size
-         would not be what the test expected. Luckily, no tests were using
-         this (although they should have been). Since the test event
-         needed to be moved after the point where the MixMonitor autochan
-         has been destroyed, the test event no longer emits the channel
-         name. Luckily, nothing needs it. ........ Merged revisions 431788
-         from http://svn.asterisk.org/svn/asterisk/branches/11
-
-2015-02-14 19:45 +0000 [r431751-431771]  Joshua Colp <jcolp@digium.com>
-
-       * main/sorcery.c: sorcery: Output an error message if a wizard is
-         specified for an object type and it isn't found. ASTERISK-24612
-         #close Reported by: Joshua Colp
-
-       * res/res_pjsip_exten_state.c: res_pjsip_exten_state: Improve log
-         message when a subscription is attempted to a non-existent
-         extension. ASTERISK-24716 #close Reported by: Rusty Newton
-
-       * channels/pjsip/dialplan_functions.c: 'information' ends with an
-         'n'.
-
-       * channels/pjsip/dialplan_functions.c: chan_pjsip: Fix crash when
-         CHANNEL dialplan function is invoked with pjsip argument and no
-         type. ASTERISK-24771 #close Reported by: Niklas Larsson
-
-2015-02-13 17:21 +0000 [r431734]  Richard Mudgett <rmudgett@digium.com>
-
-       * res/res_pjsip_session.c: res_pjsip_session: Fix double re-INVITE
-         collision crash. A multi-asterisk box setup with direct media
-         enabled would occasionally crash when two re-INVITE collisions on
-         a call leg happen in a row. The re-INVITE logic only had one
-         timer struct to defer the re-INVITE. When the second collision
-         happens the timer struct is overwritten and put into the timer
-         heap again. Resources for the first timer are leaked and the heap
-         has two positions occupied by the same timer struct. Now the heap
-         ordering is potentially corrupted, the timer will fire twice, and
-         any resources allocated for the second timer will be released
-         twice. * The solution is to put the collided re-INVITE into the
-         delayed requests queue with all the other delayed requests and
-         cherry pick the next request that can come off the queue when an
-         event happens. * Changed to put delayed BYE requests at the head
-         of the delayed queue. There is no sense in processing delayed
-         UPDATEs and re-INVITEs when a BYE has been requested. * Made the
-         start of a BYE request flush the delayed requests queue to
-         prevent a delayed request from overlapping the BYE transaction. I
-         saw a few cases where a delayed re-INVITE got started after the
-         BYE transaction started. * Changed the delayed_request struct to
-         use an enum instead of a string for the request method. Cherry
-         picking the queue is easier with an enum than string comparisons
-         and the compiler can warn if a switch statement does not cover
-         all defined enum values. * Improved the debug output to give more
-         information. It helps to know which channel is involved with an
-         endpoint. Trunks can have many channels associated with the
-         endpoint at the same time. ASTERISK-24727 #close Reported by:
-         Mark Michelson Review: https://reviewboard.asterisk.org/r/4414/
-
-2015-02-12 20:32 +0000 [r431717]  Matthew Jordan <mjordan@digium.com>
-
-       * res/res_pjsip_multihomed.c, res/stasis/control.c,
-         include/asterisk/stasis_app.h, rest-api/api-docs/channels.json,
-         res/ari/resource_channels.c, CHANGES, res/res_ari_channels.c,
-         channels/chan_pjsip.c, res/res_pjsip_nat.c,
-         res/res_pjsip_transport_websocket.c, res/ari/resource_channels.h:
-         ARI/PJSIP: Add the ability to redirect (transfer) a channel in a
-         Stasis app This patch adds a new feature to ARI to redirect a
-         channel to another server, and fixes a few bugs in PJSIP's
-         handling of the Transfer dialplan application/ARI redirect
-         capability. *New Feature* A new operation has been added to the
-         ARI channels resource, redirect. With this, a channel in a Stasis
-         application can be redirected to another endpoint of the same
-         underlying channel technology. *Bug fixes* In the process of
-         writing this new feature, two bugs were fixed in the PJSIP stack:
-         (1) The existing .transfer channel callback had the limitation
-         that it could only transfer channels to a SIP URI, i.e., you had
-         to pass 'PJSIP/sip:foo@my_provider.com' to the dialplan
-         application. While this is still supported, it is somewhat
-         unintuitive - particularly in a world full of endpoints. As such,
-         we now also support specifying the PJSIP endpoint to transfer to.
-         (2) res_pjsip_multihomed was, unfortunately, trying to 'help' a
-         302 redirect by updating its Contact header. Alas, that resulted
-         in the forwarding destination set by the dialplan application/ARI
-         resource/whatever being rewritten with very incorrect
-         information. Hence, we now don't bother updating an outgoing
-         response if it is a 302. Since this took a looong time to find,
-         some additional debug statements have been added to those modules
-         that update the Contact headers. Review:
-         https://reviewboard.asterisk.org/r/4316/ ASTERISK-24015 #close
-         Reported by: Private Name ASTERISK-24703 #close Reported by: Matt
-         Jordan
-
-2015-02-11 18:02 +0000 [r431693-431698]  Kevin Harwell <kharwell@digium.com>
-
-       * res/res_pjsip/pjsip_configuration.c: res_pjsip: dtls_handler
-         causes Asterisk to crash There have been a couple of times where
-         a crash occurred in the dtls_handler section of the code for
-         res_pjsip. Unfortunately, in working this issue the problem was
-         unable to be reproduced. After looking at the backtraces and
-         through the code the current best guess as to why this happened
-         might be due to a reentrance problem and the strtok function. So,
-         the current fix is to convert the strtok function into the
-         reentrant version of the function, strtok_r. ASTERISK-24741
-         #close Reported by: Zane Conkle Review:
-         https://reviewboard.asterisk.org/r/4409/
-
-       * res/ari/ari_websockets.c: ari_websockets: removed extra check on
-         websocket session read When merging the websocket timeout issue
-         (ASTERISK-24701) an extra, almost duplicate, check was left in
-         the code that should not have been. This removes it.
-         ASTERISK-24701 #close Reported by: Matt Jordan Review:
-         https://reviewboard.asterisk.org/r/4412/
-
-2015-02-11 17:28 +0000 [r431692]  Richard Mudgett <rmudgett@digium.com>
-
-       * main/bridge.c, main/http.c, apps/app_confbridge.c,
-         include/asterisk/channel.h, res/res_pjsip/pjsip_options.c,
-         res/res_pjsip_pubsub.c, main/asterisk.c, main/channel.c,
-         include/asterisk.h, channels/chan_sip.c: HTTP: Stop accepting
-         requests on final system shutdown. There are three CLI commands
-         to stop and restart Asterisk each. 1) core stop/restart now -
-         Hangup all calls and stop or restart Asterisk. New channels are
-         prevented while the shutdown request is pending. 2) core
-         stop/restart gracefully - Stop or restart Asterisk when there are
-         no calls remaining in the system. New channels are prevented
-         while the shutdown request is pending. 3) core stop/restart when
-         convenient - Stop or restart Asterisk when there are no calls in
-         the system. New calls are not prevented while the shutdown
-         request is pending. ARI has made stopping/restarting Asterisk
-         more problematic. While a shutdown request is pending it is
-         desirable to continue to process ARI HTTP requests for current
-         calls. To handle the current calls while a shutdown request is
-         pending, a new committed to shutdown phase is needed so ARI
-         applications can deal with the calls until the system is fully
-         committed to shutdown. * Added a new shutdown committed phase so
-         ARI applications can deal with calls until the final committed to
-         shutdown phase is reached. * Made refuse new HTTP requests when
-         the system has reached the final system shutdown phase. Starting
-         anything while the system is actively releasing resources and
-         unloading modules is not a good thing. * Split the bridging
-         framework shutdown to not cleanup the global bridging containers
-         when shutting down in a hurry. This is similar to how other
-         modules prevent crashes on rapid system shutdown. * Moved
-         ast_begin_shutdown(), ast_cancel_shutdown(), and
-         ast_shutting_down(). You should not have to include channel.h
-         just to access these system functions. ASTERISK-24752 #close
-         Reported by: Matthew Jordan Review:
-         https://reviewboard.asterisk.org/r/4399/
-
-2015-02-11 17:12 +0000 [r431674]  Matthew Jordan <mjordan@digium.com>
-
-       * /, channels/chan_sip.c: channels/chan_sip: Fix RealTime error
-         during SIP unregistration with MariaDB When a SIP device that has
-         its registration stored in RealTime unregisters, the entry for
-         that device is updated with blank values, i.e., "", indicating
-         that it is no longer registered. Unfortunately, one of those
-         values that is 'blanked' is the device's port. If the column type
-         for the port is not a string datatype (the recommended type is
-         integer), an ODBC or database error will be thrown. MariaDB does
-         not coerce empty strings to a valid integer value. This patch
-         updates the query run from chan_sip such that it replaces the
-         port value with a value of '0', as opposed to a blank value. This
-         is the value that other database backends coerce the empty string
-         ("") to already, and the handling of reading a RealTime
-         registration value from a backend already anticipates receiving a
-         port of '0' from the backends. ASTERISK-24772 #close Reported by:
-         Richard Miller patches: chan_sip.diff uploaded by Richard Miller
-         (License 5685) ........ Merged revisions 431673 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
 
-2015-02-11 16:51 +0000 [r431670]  Kevin Harwell <kharwell@digium.com>
-
-       * res/res_http_websocket.c, res/ari/ari_websockets.c, /:
-         res_http_websocket: websocket write timeout fails to fully
-         disconnect When writing to a websocket if a timeout occurred the
-         underlying socket did not get closed/disconnected. This patch
-         makes sure the websocket gets disconnected on a write timeout.
-         Also a notice is logged stating that the websocket was
-         disconnected. ASTERISK-24701 #close Reported by: Matt Jordan
-         Review: https://reviewboard.asterisk.org/r/4412/ ........ Merged
-         revisions 431669 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@431667 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-2015-02-11 15:51 +0000 [r431663]  Corey Farrell <git@cfware.com>
+2015-02-05 09:50 +0000 [2125e1b2de]  Mark Michelson <mmichelson@digium.com>
 
-       * include/asterisk/module.h, main/loader.c, /,
-         bridges/bridge_builtin_features.c: Enable REF_DEBUG for
-         ast_module_ref / ast_module_unref. Add ast_module_shutdown_ref
-         for use by modules that can only be unloaded during graceful
-         shutdown. When REF_DEBUG is enabled: * Add an empty ao2 object to
-         struct ast_module. * Allocate ao2 object when the module is
-         loaded. * Perform an ao2_ref in each place where mod->usecount is
-         manipulated. * ao2_cleanup on module unload. ASTERISK-24479
-         #close Reported by: Corey Farrell Review:
-         https://reviewboard.asterisk.org/r/4141/ ........ Merged
-         revisions 431662 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+       * Add Asterisk 13 revision 431420 that fixes disabling 100rel option on PJSIP endpoints.
 
-2015-02-10 23:16 +0000 [r431643]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip_config_wizard.c,
-         configs/samples/pjsip_wizard.conf.sample:
-         res_pjsip_config_wizard: Add ability to auto-create hints.
-         Looking at the Super Awesome Company sample reminded me that
-         creating hints is just plain gruntwork. So you can now have the
-         pjsip conifg wizard auto-create them for you. Specifying
-         'hint_exten' in the wizard will create 'exten =>
-         <hint_exten>,hint/PJSIP/<wizard_id>' in whatever is specified for
-         'hint_context'. Specifying 'hint_application' in the wizard will
-         create 'exten => <hint_exten>,1,<hint_application>' in whatever
-         is specified for 'hint_context'. The default for 'hint_context'
-         is the endpoint's context. There's no default for
-         'hint_application'. If not specified, no app is added. There's no
-         default for 'hint_exten'. If not specified, neither the hint
-         itself nor the application will be created. Some may think this
-         is the slippery slope to users.conf but hints are a basic
-         necessity for phones unlike voicemail, manager, etc that
-         users.conf creates. Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4383/
-
-2015-02-09 03:10 +0000 [r431600-431622]  Matthew Jordan <mjordan@digium.com>
-
-       * rest-api/api-docs/channels.json, res/ari/resource_channels.c:
-         res/ari/resource_channels: Add missing 'no_answer' reason to
-         DELETE /channels One of the canonical reasons for hanging up a
-         channel is because the far end failed to answer - or because
-         someone else answered, and we want to get rid of this channel.
-         This patch adds the missing value to the 'reason' query parameter
-         for the DELETE /channels operation. Review:
-         https://reviewboard.asterisk.org/r/4400 ASTERISK-24745 #close
-         Reported by: Ben Merrills patches:
-         add_no_answer_ari_hangup_cause.diff uploaded by Ben Merrills
-         (License 6678)
-
-       * /, res/res_odbc.c: res/res_odbc: Remove unneeded queries when
-         determining if a table exists This patch modifies the
-         ast_odbc_find_table function such that it only performs a lookup
-         of the requested table if the table is not already known. Prior
-         to this patch, a queries would be executed against the database
-         even if the table was already known and cached. Review:
-         https://reviewboard.asterisk.org/r/4405/ ASTERISK-24742 #close
-         Reported by: ibercom patches: patch.diff uploaded by ibercom
-         (License 6599) ........ Merged revisions 431617 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
 
-       * res/res_pjsip_sdp_rtp.c: res/res_pjsip_sdp_rtp: Fix leak of local
-         ICE candidates when applying to SDP When an SDP is created for an
-         outgoing request/response, the ICE candidates obtained from the
-         RTP instance are currently leaked. This causes the ao2 container
-         that holds the candidates to never properly be reclaimed when the
-         RTP instance is destroyed. This patch properly decrements the ICE
-         candidates' container if it is successfully obtained.
-         ASTERISK-24769 #close Reported by: Matt Jordan
-
-2015-02-06 21:26 +0000 [r431583]  Scott Griepentrog <sgriepentrog@digium.com>
-
-       * main/utils.c, res/res_pjsip.c, main/config.c: various: cleanup
-         issues found during leak hunt In this collection of small patches
-         to prevent Valgrind errors are: fixes for reference leaks in
-         config hooks, evaluating a parameter beyond bounds, and accessing
-         a structure after a lock where it could have been already free'd.
-         Review: https://reviewboard.asterisk.org/r/4407/
 
-2015-02-04 01:27 +0000 [r431538-431555]  Joshua Colp <jcolp@digium.com>
+         git-svn-id: https://origsvn.digium.com/svn/asterisk/certified/branches/13.1@431573 65c4cc65-6c06-0410-ace0-fbb531ad65f3
 
-       * res/res_pjsip_keepalive.c: res_pjsip_keepalive: Don't crash if
-         PJSIP module is not loaded.
+2015-04-08  Asterisk Development Team <asteriskteam@digium.com>
 
-       * main/sorcery.c: sorcery: Don't try to load object types which
-         haven't been defined. The act of defining wizards for an object
-         type in sorcery.conf will create a minimal object type. This can
-         cause a problem when a module has multiple sorcery instances
-         (which all get the wizards from sorcery.conf applied) but the
-         sorcery instances do not all contain full information about the
-         object types. Upon loading errors will occur stating that the
-         objects can not be created. This is confusing and is actually
-         perfectly fine. This change makes it so that only object types
-         which have been fully defined will be loaded. ASTERISK-24748
-         #close Reported by: Joshua Colp
+       * Certified Asterisk 13.1-cert2 Released.
 
-2015-01-31 16:27 +0000 [r431521]  Joshua Colp <jcolp@digium.com>
+       * Mitigate MitM attack potential from certificate with NULL byte in CN.
 
-       * res/res_format_attr_h264.c: res_format_attr_h264: Fix crash when
-         determining joint capability. The res_format_attr_h264 module
-         currently incorrectly attempts to copy SPS and PPS information
-         from the wrong attribute. This change fixes that. ASTERISK-24616
-         #close Reported by: Yura Kocyuba Review:
-         https://reviewboard.asterisk.org/r/4392/
+         When registering to a SIP server with TLS, Asterisk will accept CA
+         signed certificates with a common name that was signed for a domain
+         other than the one requested if it contains a null character in the
+         common name portion of the cert. This patch fixes that by checking
+         that the common name length matches the the length of the content we
+         actually read from the common name segment. Some certificate
+         authorities automatically sign CA requests when the requesting CN
+         isn't already taken, so an attacker could potentially register a CN
+         with something like www.google.com\x00www.secretlyevil.net and have
+         their certificate signed and Asterisk would accept that certificate
+         as though it had been for www.google.com.
 
-2015-02-06  Asterisk Development Team <asteriskteam@digium.com>
+         ASTERISK-24847 #close
+         Reported by: Maciej Szmigiero
+         patches:
+           asterisk-null-in-cn.patch uploaded by mhej (license 6085)
 
-       * Asterisk 13.2.0 Released.
+         AST-2015-003
 
 2015-01-30  Asterisk Development Team <asteriskteam@digium.com>
 
-       * Asterisk 13.2.0-rc1 Released.
+       * Certified Asterisk 13.1-cert1 Released.
 
-2015-01-30 17:44 +0000 [r431492]  Richard Mudgett <rmudgett@digium.com>
+2015-01-30 17:53 +0000 [r431494]  Richard Mudgett <rmudgett@digium.com>
 
-       * apps/app_agent_pool.c: app_agent_pool: Fix initial module load
+       * apps/app_agent_pool.c, /: app_agent_pool: Fix initial module load
          agent device state reporting. When the app_agent_pool module
          initially loads there is a race condition between the thread
          loading agents.conf and the device state internal processing
          load_config(). * Added lock protection when accessing the device
          state in agent_pvt_devstate_get() and eliminated the RAII_VAR()
          usage. ASTERISK-24737 #close Reported by: Steve Pitts Review:
-         https://reviewboard.asterisk.org/r/4390/
-
-2015-01-30 17:38 +0000 [r431490]  Kevin Harwell <kharwell@digium.com>
-
-       * res/res_pjsip_outbound_publish.c: res_pjsip_outbound_publish:
-         eventually crashes when no response is ever received When
-         Asterisk attempts to send SIP outbound publish information and no
-         response is ever received (no 200 okay, 412, 423) the system
-         eventually crashes. A response is never received because the
-         system Asterisk is attempting to send publish information to is
-         not available. The underlying pjsip framework attempts to send
-         publish information. After several attempts it calls back into
-         the Asterisk outbound publish code. At this point if the
-         "client->queue" is empty Asterisk attempts to schedule a refresh
-         which utilizes "rdata" and since no response was received the
-         given "rdata" struture is NULL. Attempting to dereference a NULL
-         object of course results in a crash. The fix here removes the
-         dependency on rdata for schedule_publish_refresh. Instead
-         param->expiration is now passed to it as this is set to -1 if no
-         response is received. Also added a notification when no response
-         is received. ASTERISK-24635 #close Reported by: Marco Paland
-         Review: https://reviewboard.asterisk.org/r/4384/
-
-2015-01-30 16:52 +0000 [r431471]  asanders <asanders@localhost>:
+         https://reviewboard.asterisk.org/r/4390/ ........ Merged
+         revisions 431492 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * include/asterisk/http.h, configs/samples/http.conf.sample,
-         main/http.c: HTTP: For httpd server, need option to define server
-         name for security purposes Added a new config property
-         [servername] to the http.conf file; updated the http server to
-         use the new property when sending responses, for showing http
-         status through the CLI and when reporting status through the
-         'httpstatus' webpage. ASTERISK-24316 #close Reported By: Andrew
-         Nagy Review: https://reviewboard.asterisk.org/r/4374/
-
-2015-01-30 16:47 +0000 [r431468]  Mark Michelson <mmichelson@digium.com>
+2015-01-30 16:50 +0000 [r431470]  Mark Michelson <mmichelson@digium.com>
 
        * main/stasis_channels.c, channels/chan_pjsip.c, main/xmldoc.c,
          res/res_pjsip_refer.c, main/pbx.c, main/manager.c,
-         pbx/pbx_spool.c, main/bridge_after.c: Fix some memory leaks.
+         pbx/pbx_spool.c, /, main/bridge_after.c: Fix some memory leaks.
          These memory leaks were found and fixed by John Hardin. I'm just
          committing them for him. ASTERISK-24736 #close Reported by Mark
          Michelson Review: https://reviewboard.asterisk.org/r/4389
+         ........ Merged revisions 431468 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-01-29 23:02 +0000 [r431450]  Scott Griepentrog <sgriepentrog@digium.com>
-
-       * include/asterisk/bridge.h, main/bridge.c,
-         res/stasis/stasis_bridge.c: stasis transfer: fix stasis bridge
-         push race part two When swapping a Local channel in place of one
-         already in a bridge (to complete a bridge attended transfer), the
-         channel that was swapped out can actually be hung up before the
-         stasis bridge push callback executes on the independant transfer
-         thread. This results in the stasis app loop dropping out and
-         removing the control that has the the app name which the local
-         replacement channel needs so it can re-enter stasis. To avoid
-         this race condition a new push_peek callback has been added, and
-         called from the ast_bridge_impart thread before it launches the
-         independant thread that will complete the transfer. Now the
-         stasis push_peek callback can copy the stasis app name before the
-         swap channel can hang up. ASTERISK-24649 Review:
-         https://reviewboard.asterisk.org/r/4382/
-
-2015-01-29 20:58 +0000 [r431420-431426]  Mark Michelson <mmichelson@digium.com>
-
-       * res/res_pjsip.c, res/res_pjsip_sips_contact.c (added): Use SIPS
-         URIs in Contact headers when appropriate. RFC 3261 sections
-         8.1.1.8 and 12.1.1 dictate specific scenarios when we are
-         required to use SIPS URIs in Contact headers. Asterisk's
-         non-compliance with this could actually cause calls to get
-         dropped when communicating with clients that are strict about
-         checking the Contact header. Both of the SIP stacks in Asterisk
-         suffered from this issue. This changeset corrects the behavior in
-         res_pjsip/chan_pjsip.c Review:
-         https://reviewboard.asterisk.org/r/4345
-
-       * /, channels/chan_sip.c: Use SIPS URIs in Contact headers when
-         appropriate. RFC 3261 sections 8.1.1.8 and 12.1.1 dictate
-         specific scenarios when we are required to use SIPS URIs in
-         Contact headers. Asterisk's non-compliance with this could
-         actually cause calls to get dropped when communicating with
-         clients that are strict about checking the Contact header. Both
-         of the SIP stacks in Asterisk suffered from this issue. This
-         changeset corrects the behavior in chan_sip. ASTERISK-24646
-         #close Reported by Stephan Eisvogel Review:
-         https://reviewboard.asterisk.org/r/4346 ........ Merged revisions
-         431423 from http://svn.asterisk.org/svn/asterisk/branches/11
-
-       * res/res_pjsip/pjsip_configuration.c: Allow disabling of 100rel
-         support on PJSIP endpoints. Due to an inversion error, setting
-         100rel=no would not actually change the current value of the
-         setting (which defaulted to "yes"). With this fix, the inversion
-         is corrected.
-
-2015-01-29 16:46 +0000 [r431403]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip_exten_state.c: res_pjsip_exten_state: Reduce log
-         clutter... change a WARNING to a VERBOSE/2 Reduce log clutter by
-         changing the "Watcher for hint %s (removed|deactivated)" message
-         from WARNING to VERBOSE/2. Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4387/
-
-2015-01-29 12:09 +0000 [r431385]  Joshua Colp <jcolp@digium.com>
-
-       * res/res_rtp_asterisk.c, /: res_rtp_asterisk: Fix DTLS when used
-         with OpenSSL 1.0.1k A recent security fix for OpenSSL broke DTLS
-         negotiation for many applications. This was caused by read ahead
-         not being enabled when it should be. While a commit has gone into
-         OpenSSL to force read ahead on for DTLS it may take some time for
-         a release to be made and the change to be present in
-         distributions (if at all). As enabling read ahead is a simple one
-         line change this commit does that and fixes the issue.
-         ASTERISK-24711 #close Reported by: Jared Biel ........ Merged
-         revisions 431384 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+2015-01-30 16:41 +0000 [r431467]  Jonathan Rose <jrose@digium.com>
 
-2015-01-28 17:37 +0000 [r431301-431303]  Mark Michelson <mmichelson@digium.com>
+       * main/manager.c, /: Merge r431153 from asterisk/branches/13
+         r431153 | jrose | 2015-01-27 11:22:52 -0600 (Tue, 27 Jan 2015) |
+         9 lines Manager: Fix Manager Action ModuleLoad to give correct
+         response when reloading Prior to this patch, ModuleLoad would
+         respond with an error indicating that the requested module wasn't
+         found in spite of finding and reloading the module. Review:
+         https://reviewboard.asterisk.org/r/4373/ ASTERISK-24721 #close
 
-       * /, res/res_pjsip_sdp_rtp.c, res/res_pjsip_t38.c,
-         res/res_pjsip_session.c: Fix file descriptor leak in RTP code.
-         SIP requests that offered codecs incompatible with configured
-         values could result in the allocation of RTP and RTCP ports that
-         would not get reclaimed later. ASTERISK-24666 #close Reported by
-         Y Ateya Review: https://reviewboard.asterisk.org/r/4323
-         AST-2015-001 ........ Merged revisions 431300 from
-         http://svn.asterisk.org/svn/asterisk/branches/12
+2015-01-28 21:53 +0000 [r431326-431334]  Mark Michelson <mmichelson@digium.com>
 
        * funcs/func_curl.c, /: Multiple revisions 431297-431298 ........
          r431297 | mmichelson | 2015-01-28 11:05:26 -0600 (Wed, 28 Jan
          previous patch. ........ Merged revisions 431297-431298 from
          http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
          revisions 431299 from
-         http://svn.asterisk.org/svn/asterisk/branches/12
-
-2015-01-28 12:18 +0000 [r431267]  Sean Bright <sean@malleable.com>
+         http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged
+         revisions 431301 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * res/res_format_attr_silk.c, res/res_format_attr_opus.c: media
-         formats: update res_format_attr_opus & silk In r419044, we
-         changed how formats were handled, but the return value of the
-         format_parse_sdp_fmtp functions in res_format_attr_opus and
-         res_format_attr_silk were not updated, causing calls to fail. Ran
-         into this when getting codec_opus working with Asterisk 13. Once
-         the return value was corrected, we were crashing in opus_getjoint
-         because of NULL format attributes. I've fixed this as well in
-         this patch. Review: https://reviewboard.asterisk.org/r/4371/
+       * res/res_pjsip_t38.c, res/res_pjsip_session.c, /,
+         res/res_pjsip_sdp_rtp.c: Fix file descriptor leak in RTP code.
+         SIP requests that offered codecs incompatible with configured
+         values could result in the allocation of RTP and RTCP ports that
+         would not get reclaimed later. ASTERISK-24666 #close Reported by
+         Y Ateya Review: https://reviewboard.asterisk.org/r/4323
+         AST-2015-001 ........ Merged revisions 431300 from
+         http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged
+         revisions 431303 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-01-28 04:09 +0000 [r431243]  Richard Mudgett <rmudgett@digium.com>
+2015-01-28 04:11 +0000 [r431244]  Richard Mudgett <rmudgett@digium.com>
 
-       * main/sorcery.c, res/res_pjsip_outbound_registration.c,
-         res/res_pjsip.c: res_pjsip_outbound_registration: Fix reload race
+       * /, res/res_pjsip_outbound_registration.c, res/res_pjsip.c,
+         main/sorcery.c: res_pjsip_outbound_registration: Fix reload race
          condition. Performing a CLI "module reload" command when there
          are new pjsip.conf registration objects defined frequently failed
          to load them correctly. What happens is a race condition between
          wizard loading/loaded would be prevented, and the non-reloadable
          type logging message would be logged for each associated wizard.
          ASTERISK-24729 #close Review:
-         https://reviewboard.asterisk.org/r/4381/
+         https://reviewboard.asterisk.org/r/4381/ ........ Merged
+         revisions 431243 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-01-27 22:56 +0000 [r431179-431219]  Kevin Harwell <kharwell@digium.com>
+2015-01-27 23:02 +0000 [r431200-431221]  Kevin Harwell <kharwell@digium.com>
 
-       * /, main/tcptls.c: tcptls: Bad file descriptor error when
+       * main/tcptls.c, /: tcptls: Bad file descriptor error when
          reloading chan_sip While running through some scenarios using
          chan_sip and tcp a problem would occur that resulted in a flood
          of bad file descriptor messages on the cli: tcptls.c:712
          occurrences of that message. ASTERISK-24728 #close Reported by:
          Thomas Thompson Review: https://reviewboard.asterisk.org/r/4380/
          ........ Merged revisions 431218 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+         revisions 431219 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
        * /, channels/chan_sip.c: chan_sip: stale nonce causes failure When
          refreshing (with a small expiration) a registration that was sent
          new one. ASTERISK-24715 #close Reported by: John Bigelow Review:
          https://reviewboard.asterisk.org/r/4367/ ........ Merged
          revisions 431187 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+         revisions 431194 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * res/res_pjsip/pjsip_outbound_auth.c, res/res_pjsip/config_auth.c,
-         main/stasis_message_router.c, res/res_pjsip/location.c,
-         res/res_pjsip/pjsip_configuration.c,
-         res/res_pjsip/pjsip_distributor.c,
-         res/res_pjsip/include/res_pjsip_private.h,
-         res/res_pjsip/pjsip_global_headers.c,
-         res/res_pjsip/pjsip_options.c, res/res_pjsip.c,
-         res/res_pjsip/config_transport.c: res_pjsip: make it unloadable
-         (take 2) Due to the original patch causing memory corruptions it
-         was removed until the problem could be resolved. This patch is
-         the original patch plus some added locking around stasis router
-         subcription that was needed to avoid the memory corruption.
-         Description of the original problem and patch (still applicable):
-         The res_pjsip module was previously unloadable. With this patch
-         it can now be unloaded. This patch is based off the original
-         patch on the issue (listed below) by Corey Farrell with a few
-         modifications. Namely, removed a few changes not required to make
-         the module unloadable and also fixed a bug that would cause
-         asterisk to crash on unloading. This patch is the first step
-         (should hopefully be followed by another/others at some point) in
-         allowing res_pjsip and the modules that depend on it to be
-         unloadable. At this time, res_pjsip and some of the modules that
-         depend on res_pjsip cannot be unloaded without causing problems
-         of some sort. The goal of this patch is to get res_pjsip and only
-         res_pjsip to be able to unload successfully and/or shutdown
-         without incident (crashes, leaks, etc...). Other dependent
-         modules may still cause problems on unload. Basically made sure,
-         with the patch applied, that res_pjsip (with no other dependent
-         modules loaded) could be succesfully unloaded and Asterisk could
-         shutdown without any leaks or crashes that pertained directly to
-         res_pjsip. ASTERISK-24485 #close Reported by: Corey Farrell
-         Review: https://reviewboard.asterisk.org/r/4363/ patches:
-         pjsip_unload-broken-r1.patch submitted by Corey Farrell (license
-         5909)
-
-2015-01-27 17:36 +0000 [r431160]  Richard Mudgett <rmudgett@digium.com>
+2015-01-27 17:52 +0000 [r431162]  Richard Mudgett <rmudgett@digium.com>
 
        * /, apps/confbridge/include/confbridge.h, apps/app_confbridge.c:
          app_confbridge: Repeatedly starting and stopping recording ref
          by: John Bigelow Review: https://reviewboard.asterisk.org/r/4368/
          Review: https://reviewboard.asterisk.org/r/4369/ ........ Merged
          revisions 431135 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+         revisions 431160 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-01-27 17:32 +0000 [r431157]  Joshua Colp <jcolp@digium.com>
+2015-01-27 17:35 +0000 [r431159]  Joshua Colp <jcolp@digium.com>
 
-       * main/bridge_channel.c, res/res_pjsip_sdp_rtp.c: bridge /
+       * res/res_pjsip_sdp_rtp.c, main/bridge_channel.c, /: bridge /
          res_pjsip_sdp_rtp: Fix issues with media not being reinvited
          during direct media. This change fixes two issues: 1. During a
          swap operation bridging added the new channel before having the
          re-evaluate things. After this change an UPDATE_RTP_PEER control
          frame is queued when this situation occurs and upstream can
          react. AST-1524 #close Review:
-         https://reviewboard.asterisk.org/r/4378/
-
-2015-01-27 17:22 +0000 [r431153]  Jonathan Rose <jrose@digium.com>
+         https://reviewboard.asterisk.org/r/4378/ ........ Merged
+         revisions 431157 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * main/manager.c: Manager: Fix Manager Action ModuleLoad to give
-         correct response when reloading Prior to this patch, ModuleLoad
-         would respond with an error indicating that the requested module
-         wasn't found in spite of finding and reloading the module.
-         Review: https://reviewboard.asterisk.org/r/4373/ ASTERISK-24721
-         #close
-
-2015-01-27 17:20 +0000 [r431134-431145]  Matthew Jordan <mjordan@digium.com>
-
-       * res/ari/resource_bridges.c,
-         rest-api-templates/asterisk_processor.py,
-         res/ari/resource_channels.h, res/res_ari_bridges.c,
-         res/ari/resource_bridges.h, rest-api-templates/api.wiki.mustache,
-         rest-api/api-docs/channels.json,
-         rest-api-templates/swagger_model.py,
-         rest-api/api-docs/bridges.json: ARI: Improve wiki documentation
-         This patch improves the documentation of ARI on the wiki.
-         Specifically, it addresses the following: * Allowed values and
-         allowed ranges weren't documented. This was particularly
-         frustrating, as Asterisk would reject query parameters with
-         disallowed values - but we didn't tell anyone what the allowed
-         values were. * The /play/id operation on /channels and /bridges
-         failed to document all of the added media resource types. *
-         Documentation for creating a channel into a Stasis application
-         failed to note when it occurred, and that creating a channel into
-         Stasis conflicts with creating a channel into the dialplan. *
-         Some other minor tweaks in the mustache templates, including
-         italicizing the parameter type, putting the default value on its
-         own sub-bullet, and some other nicities. Review:
-         https://reviewboard.asterisk.org/r/4351
+2015-01-27 17:18 +0000 [r431140]  Matthew Jordan <mjordan@digium.com>
 
-       * apps/confbridge/conf_config_parser.c,
-         apps/confbridge/include/confbridge.h: app_confbridge: Restore
+       * /, apps/confbridge/include/confbridge.h,
+         apps/confbridge/conf_config_parser.c: app_confbridge: Restore
          user's menu name to CLI output of 'confbridge list' When issuing
          a 'confbridge list XXXX' CLI command, the resulting output no
          longer displays the menu associated with a ConfBridge
          the confbridge_user structure; this patch makes the lengths match
          so that a strcpy can be used. Review:
          https://reviewboard.asterisk.org/r/4372/ ASTERISK-24723 #close
-         Reported by: Steve Pitts
+         Reported by: Steve Pitts ........ Merged revisions 431134 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-01-27 11:47 +0000 [r431114]  Joshua Colp <jcolp@digium.com>
+2015-01-27 11:48 +0000 [r431116]  Joshua Colp <jcolp@digium.com>
 
-       * res/parking/parking_manager.c: res_parking: Fix crash due to race
-         condition when unloading. There is currently a race condition
-         when unloading the res_parking module. Depending on the will of
-         the universe the subscription invocation may occur AFTER the
-         module is unloaded. This is because the module does NOT use
+       * res/parking/parking_manager.c, /: res_parking: Fix crash due to
+         race condition when unloading. There is currently a race
+         condition when unloading the res_parking module. Depending on the
+         will of the universe the subscription invocation may occur AFTER
+         the module is unloaded. This is because the module does NOT use
          stasis_unsubscribe_and_join when terminating the subscription. It
          merely uses stasis_unsubscribe. This change makes it use
          stasis_unsubscribe_and_join which is documented for usage in this
          exact scenario. AST-1520 #close Review:
-         https://reviewboard.asterisk.org/r/4375/
-
-2015-01-26 14:49 +0000 [r431092]  David M. Lee <dlee@digium.com>
-
-       * channels/sip/include/route.h, funcs/func_presencestate.c,
-         main/rtp_engine.c, configure, include/asterisk/autoconfig.h.in,
-         include/asterisk/sem.h, configure.ac, main/app.c,
-         main/bridge_channel.c, main/sem.c, res/res_timing_kqueue.c,
-         main/asterisk.c: Various fixes for OS X This patch addresses
-         compilation errors on OS X. It's been a while, so there's quite a
-         few things. * Fixed __attribute__ decls in route.h to be
-         portable. * Fixed htonll and ntohll to work when they are defined
-         as macros. * Replaced sem_t usage with our ast_sem wrapper. *
-         Added ast_sem_timedwait to our ast_sem wrapper. * Fixed some GCC
-         4.9 warnings using sig*set() functions. * Fixed some format
-         strings for portability. * Fixed compilation issues with
-         res_timing_kqueue (although tests still fail on OS X). * Fixed
-         menuconfig /sbin/launchd detection, which disables
-         res_timing_kqueue on OS X). ASTERISK-24539 #close Reported by:
-         George Joseph ASTERISK-24544 #close Reported by: George Joseph
-         Review: https://reviewboard.asterisk.org/r/4327/
-
-2015-01-25 13:42 +0000 [r431072]  Matthew Jordan <mjordan@digium.com>
-
-       * main/config.c: dynamic realtime: Updates fail to work due to
-         update fields being passed over When a crash was fixed due to
-         usage of the REALTIME function in r423003, a regression was
-         introduced into ast_update2_realtime where the update fields
-         passed to the function would be skipped and the lookup field
-         processed twice. The use of this function is a bit interesting: A
-         variable argument list is used with two sentinel values - the
-         first marks the end of the lookup fields/values; the second marks
-         the end of the update fields/values. Unfortunately,
-         ast_update2_realtime parses over the lookup fields twice, as
-         opposed to parsing over the update fields. This causes the
-         lookups to succeed, but the updates itself to have no effect.
-         Note that the most common instance of this problem occurred in
-         app_voicemail during the updating of a mailbox password. Thanks
-         to the issue reporter, Paddy Grice, for pointing out the problem.
-         Review: https://reviewboard.asterisk.org/r/4356/ ASTERISK-24231
-         ASTERISK-24626 #close Reported by: Paddy Grice
-
-2015-01-23 20:13 +0000 [r431050-431052]  Richard Mudgett <rmudgett@digium.com>
-
-       * apps/confbridge/conf_chan_record.c: app_confbridge: Make CBRec
-         channel names more unique. Channel names should be different from
-         other channels in the system while the channel exists. * Use a
-         sequence number for CBRec channels instead of a random number
-         because the same random number could be picked again for the next
-         CBRec channel.
-
-       * /, apps/app_confbridge.c: app_confbridge: Whitespace Because
-         there is sometimes no sence to any whitespace. ........ Merged
-         revisions 431049 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-2015-01-23 17:08 +0000 [r431030]  David M. Lee <dlee@digium.com>
-
-       * res/res_pjsip_config_wizard.c: Add depend on pjproject to
-         res_pjsip_config_wizard.c
-
-2015-01-23 15:12 +0000 [r430999]  Kevin Harwell <kharwell@digium.com>
-
-       * res/parking/parking_applications.c, channels/chan_iax2.c,
-         res/res_pjsip/pjsip_global_headers.c, res/res_pjsip_pubsub.c,
-         res/res_ari_channels.c, res/res_stasis.c,
-         rest-api-templates/param_parsing.mustache,
-         res/res_ari_endpoints.c, res/res_ari_events.c,
-         include/asterisk/stasis_app.h, res/res_pjsip_mwi.c: Investigate
-         and fix memory leaks in Asterisk Fixed memory leaks that were
-         found in Asterisk. ASTERISK-24693 #close Reported by: Kevin
-         Harwell Review: https://reviewboard.asterisk.org/r/4347/
-
-2015-01-23 15:03 +0000 [r430994-430998]  Walter Doekes <walter+asterisk@wjd.nu>
-
-       * apps/app_voicemail.c, channels/chan_unistim.c,
-         funcs/func_hangupcause.c, main/manager_bridges.c,
-         channels/chan_misdn.c, funcs/func_groupcount.c, /,
-         addons/ooh323c/src/ooh245.c, channels/chan_sip.c, res/res_fax.c,
-         res/res_pjsip_outbound_registration.c, apps/app_minivm.c,
-         apps/app_alarmreceiver.c, include/asterisk/channel.h,
-         contrib/utils/eagi_proxy.c: Fix typo's (retrieve, specified,
-         address). ........ Merged revisions 430996 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-       * /, channels/chan_sip.c: chan_sip: Case insensitive comparison of
-         "defaultuser" parameter. All the other configuration options are
-         case insensitive, so this one should be too. ASTERISK-24355
-         #close Reported by: HZMI8gkCvPpom0tM patches: ast.patch uploaded
-         by HZMI8gkCvPpom0tM (License 6658) ........ Merged revisions
-         430993 from http://svn.asterisk.org/svn/asterisk/branches/11
-
-2015-01-22 19:24 +0000 [r430957-430975]  Richard Mudgett <rmudgett@digium.com>
-
-       * include/asterisk/bridge.h,
-         include/asterisk/bridge_channel_internal.h, main/bridge.c,
-         include/asterisk/bridge_internal.h, main/bridge_channel.c: Bridge
-         core: Pass a ref with the swap channel when joining a bridge.
-         When code imparts a channel into a bridge to swap with another
-         channel, a ref needs to be held on the swap channel to ensure
-         that it cannot dissapear before finding it in the bridge. * The
-         ast_bridge_join() swap channel parameter now always steals a ref
-         for the swap channel. This is the only change to the bridge
-         framework's public API semantics. *
-         bridge_channel_internal_join() now requires the
-         bridge_channel->swap channel to pass in a ref. ASTERISK-24649
-         Reported by: John Bigelow Review:
-         https://reviewboard.asterisk.org/r/4354/
-
-       * res/res_pjsip_outbound_registration.c:
-         res_pjsip_outbound_registration.c: Minor code cleanup. * Add an
-         allocation failure check and assert in
-         sip_outbound_registration_response_cb(). * Made
-         sip_outbound_registration_state_destroy() handle partially
-         created state objects from
-         sip_outbound_registration_state_alloc(). Review:
-         https://reviewboard.asterisk.org/r/4366/
-
-2015-01-22 18:09 +0000 [r430939]  Scott Griepentrog <sgriepentrog@digium.com>
-
-       * res/stasis/app.c, res/stasis/stasis_bridge.c: stasis transfer:
-         fix a race condition on stasis bridge push After a bridge
-         transfer completes where a local replacement channel is used, a
-         stasis transfer message with the details of the transfer is sent.
-         This is processed by stasis which then sets the stasis app name
-         and replaced channel snapshot on the replacement channel.
-         However, since a separate thread was already started to run
-         stasis on the new replacement channel, a race was on to see if
-         the message processing would be completed before the app name was
-         needed, otherwise the channel would be hung up. This change moves
-         the calls used to set the stasis app name and the replace
-         snapshot to the bridge_stasis_push function callback from the
-         bridge transfer logic, allowing the steps to be completed earlier
-         and more deterministically, and the race elimianted. NOTE: the
-         swap channel parameter to bridge_stasis_push (and thus all bridge
-         push callbacks) must always be present when performing a swap
-         with another channel. ASTERISK-24649 #close Reported by: John
-         Bigelow Review: https://reviewboard.asterisk.org/r/4341/
-
-2015-01-22 14:23 +0000 [r430921]  Matthew Jordan <mjordan@digium.com>
-
-       * /, apps/app_voicemail.c: apps/app_voicemail: Trigger MWI
-         notification with MixMonitor m() option The MixMonitor m() option
-         allows a recording to be pushed to a specific voicemail mailbox.
-         If the message is delivered to the mailbox's INBOX, however, no
-         MWI notification is currently raised. This patch corrects the
-         issue by properly calling notify_new_state from the
-         msg_create_from_file function. This will cause MWI to be
-         triggered if the message was placed in the mailbox's INBOX.
-         ASTERISK-24709 #close Reported by: Gareth Palmer patches:
-         app_voicemail-430919.patch uploaded by Gareth Palmer (License
-         5169) ........ Merged revisions 430920 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-2015-01-21 21:53 +0000 [r430902]  Richard Mudgett <rmudgett@digium.com>
-
-       * res/res_pjsip_outbound_registration.c:
-         res_pjsip_outbound_registration.c: Move unref to a better place.
-         Move an unconditional unref of client_state so it doesn't look
-         like it could be used after the last ref has destroyed it.
+         https://reviewboard.asterisk.org/r/4375/ ........ Merged
+         revisions 431114 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+2015-01-23 15:24 +0000 [r431016]  Kevin Harwell <kharwell@digium.com>
+
+       * res/res_ari_events.c, include/asterisk/stasis_app.h,
+         res/res_pjsip_mwi.c, res/parking/parking_applications.c,
+         channels/chan_iax2.c, res/res_pjsip/pjsip_global_headers.c,
+         res/res_pjsip_pubsub.c, res/res_ari_channels.c, res/res_stasis.c,
+         rest-api-templates/param_parsing.mustache, /,
+         res/res_ari_endpoints.c: Investigate and fix memory leaks in
+         Asterisk Fixed memory leaks that were found in Asterisk.
+         ASTERISK-24693 #close Reported by: Kevin Harwell Review:
+         https://reviewboard.asterisk.org/r/4347/ ........ Merged
+         revisions 430999 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+2015-01-21 19:47 +0000 [r430898]  Richard Mudgett <rmudgett@digium.com>
+
+       * CHANGES, /, res/res_pjsip_outbound_registration.c: Multiple
+         revisions 430223,430373,430395 ........ r430223 | gtjoseph |
+         2015-01-06 11:35:21 -0600 (Tue, 06 Jan 2015) | 24 lines
+         outbound_registration: Add 'pjsip send register' and update 'send
+         unregister' The current behavior of 'pjsip send unregister' is to
+         send the unregister (REGISTER with 0 exp) but let the next
+         scheduled register proceed normally. I don't think that's a good
+         idea. If you unregister, it should stay unregistered until you
+         decide to start registrations again. So this patch just adds a
+         cancel_registration call to the current unregister_task to cancel
+         the timer. Of course, now you need a way to start registration
+         again so I've added a 'pjsip send register' command that
+         unregisters and cancels any existing registration (the same as
+         send unregister), then sends an immediate registration and starts
+         the timer back up again. Both changes also ripple to AMI. There's
+         a new PJSIPRegister command. There's no harm in calling either
+         command repeatedly. They don't care about the actual state.
+         Tested-by: George Joseph Review:
+         https://reviewboard.asterisk.org/r/4301/ ........ r430373 |
+         gtjoseph | 2015-01-08 11:48:29 -0600 (Thu, 08 Jan 2015) | 25
+         lines res_pjsip_outbound_registration: Fix several reload issues
+         There are 2 issues with reloading registrations... 1. The
+         'can_reuse_registration' test wasn't considering the intervals or
+         expiration in its determination of whether a registration changed
+         or not so if you changed any of the intervals or the expiration
+         and reloaded, the object would get reloaded but the actual timers
+         wouldn't change. can_reuse_registration now does a sorcery diff
+         on the old and new objects instead of discretely testing certain
+         fields. Now if you change expiration for instance, and reload,
+         the timer is updated and re-registration will occur on the new
+         value. 2. If you mung up your password on an outbound
+         registration you get a permanent failure. If you fix the password
+         (on the outbound_auth object) and reload, nothing tells
+         outbound_registration to try again because the registration
+         itself didn't change. This patch adds an observer on the "auth"
+         object type and if any auth changes, existing registration states
+         are searched and those in a REJECTED_PERMANENT state are retried.
+         Tested-by: George Joseph Review:
+         https://reviewboard.asterisk.org/r/4304/ ........ r430395 |
+         gtjoseph | 2015-01-08 15:37:42 -0600 (Thu, 08 Jan 2015) | 14
+         lines res_pjsip_outbound_registration: Fix reference leak. Every
+         time a registration started,
+         sip_outbound_registration_response_cb bumps the ref count on
+         client_state then pushes a handle_registration_response task.
+         handle_registration_response never unreffed it though. So every
+         time a registration goes out, the ref count goes up by one. This
+         patch adds the unreffs to handle_registration_response.
+         Tested-by: George Joseph Review:
+         https://reviewboard.asterisk.org/r/4303/ ........ Merged
+         revisions 430223,430373,430395 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-01-21 13:33 +0000 [r430840-430864]  Matthew Jordan <mjordan@digium.com>
+2015-01-21 13:36 +0000 [r430843-430865]  Matthew Jordan <mjordan@digium.com>
 
-       * channels/chan_sip.c: channels/chan_sip: Fix registration leak
+       * /, channels/chan_sip.c: channels/chan_sip: Fix registration leak
          during reload When the SIP registrations were migrated to using
          ao2 in what was then trunk, the explicit destruction of the
          registrations on module reload was removed and not replaced with
          it from the registration container registry_list. Review:
          https://reviewboard.asterisk.org/r/4355/ ASTERISK-24640 #close
          Reported by: Max Man ASTERISK-24673 #close Reported by: Stefan
-         Engström Tested by: Stefan Engström
-
-       * cdr/cdr_manager.c, cel/cel_manager.c: AMI: Add documentation for
-         the missing Cdr/CEL events. This patch adds AMI event
-         documentation for the Cdr and CEL AMI events. Note that while
-         these events do share fields with each other and with other
-         channel related events, they do not contain all of the fields in
-         a standard channel snapshot, nor is the description of the fields
-         identical. As such, the patch opts for documentation for each
-         field, for each event. Review:
-         https://reviewboard.asterisk.org/r/4350/ ASTERISK-24671 #close
-         Reported by: Dan Jenkins
+         Engström Tested by: Stefan Engström ........ Merged revisions
+         430864 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * apps/app_dial.c: apps/app_dial: Don't publish DialEnd twice on
+       * apps/app_dial.c, /: apps/app_dial: Don't publish DialEnd twice on
          unexpected GoSub/Macro values The Dial application has some
          interesting options with the mid-call Macro (M) and GoSub (U)
          options. If the MACRO_RESULT/GOSUB_RESULT returns specific
          only publish a DialEnd message to Stasis if the Dial
          application's mid-call Macro/GoSub returns something that Dial
          cares about. Review: https://reviewboard.asterisk.org/r/4336
-         ASTERISK-24682 #close Reported by: Matt Jordan
-
-       * main/rtp_engine.c: main/rtp_engine: Format NTP timestamps as
-         unsigned longs When the RTCP reports are created, the NTP
-         timestamps are stored as strings, as JSON does not have an
-         integer type long enough to store the value. However, on 32-bit
-         systems, a signed long may overflow for some portion of the
-         timestamp. This patch corrects the overflow by formatting the
-         timestamps as unsigned longs.
-
-2015-01-20 16:51 +0000 [r430818]  asanders <asanders@localhost>:
-
-       * res/ari/resource_bridges.c: ARI: Fixed crash that occurred when
-         updating a bridge when the optional query parameter 'name' was
-         not supplied. Prior to this changeset, posting to the:
-         /ari/bridges/{bridgeId} endpoint without specifying a value for
-         the [name] query parameter, would crash Asterisk if the bridge
-         you are attempting to create (or update) had the same ID as an
-         existing bridge. The internal mechanism of the POST operation
-         interpreted a null value for name, thus resulting in an error
-         condition that crashed Asterisk. ASTERISK-24560 #close Reported
-         By: Kinsey Moore Review: https://reviewboard.asterisk.org/r/4349/
-
-2015-01-20 16:46 +0000 [r430817]  Richard Mudgett <rmudgett@digium.com>
-
-       * configs/samples/iax.conf.sample, res/res_fax.c,
-         funcs/func_channel.c, UPGRADE.txt, res/snmp/agent.c,
-         channels/chan_iax2.c: CHANNEL(peer), chan_iax2, res_fax, SNMP
-         agent: Fix deadlock from reaching across a bridge. Calling
-         ast_channel_bridge_peer() cannot be done while holding any
-         channel locks. The reported issue hit the deadlock in chan_iax2,
-         but an audit of the ast_channel_bridge_peer() calls found three
-         more locations where the same deadlock can occur. * Made
-         CHANNEL(peer), res_fax, and the SNMP agent not call
-         ast_channel_bridge_peer() with any channel locked. For
-         CHANNEL(peer) I had to rework the logic to not hold the channel
-         lock. * Made chan_iax2 no longer call ast_channel_bridge_peer().
-         It was done for legacy reasons that no longer apply. * Removed
-         the iax.conf forcejitterbuffer option. It is now always enabled
-         when the jitterbuffer option is enabled. If you put a jitter
-         buffer on a channel it will be on the channel. ASTERISK-24600
-         #close Reported by: Jeff Collell Review:
-         https://reviewboard.asterisk.org/r/4342/
-
-2015-01-20 02:39 +0000 [r430796-430799]  Matthew Jordan <mjordan@digium.com>
-
-       * contrib/scripts/install_prereq, /:
-         contrib/scripts/install_prereq: Don't install 32-bit packages on
-         64-bit hosts On Debian based systems, the install_prereq tool
-         uses a search command on Debian that results in selecting both
-         64-bit and 32-bit packages. Besides the waste of disk space, this
-         can actually cause aptitude use 100% of memory on a VM with 1GB
-         of RAM as it tried to work out all of the 32-bit package
-         dependencies. This patch filters out the 32-bit packages on a
-         64-bit machine, and leaves 32-bit machines alone. ASTERISK-24048
-         #close Reported by: Ben Klang Tested by: Ben Klang, Matt Jordan
-         patches: install_prereq_64-bit_compat.patch uploaded by Ben Klang
-         (License 5876) ........ Merged revisions 430798 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         ASTERISK-24682 #close Reported by: Matt Jordan ........ Merged
+         revisions 430842 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * apps/app_voicemail.c, /: app_voicemail: Temp message left after
-         review/hangup with ODBC/IMAP backend When using ODBC or IMAP
-         storage, temporary files created on the file system must be
-         disposed of using the DISPOSE macro. The DELETE macro will map to
-         a deletion function for the backend storage, but does not clean
-         up any local files created as a result of the operation. When
-         using voicemail with the operator and review options enabled,
-         pressing 0 to enter the menu, followed by 1 to save the message,
-         followed by any other DTMF press to delete the message, will
-         result in the temporary file lingering on the file system. This
-         patch properly calls DISPOSE after the DELETE. This causes the
-         local file to be disposed of. ASTERISK-24288 #close Reported by:
-         LEI FU patches: voicemail_odbc_review_fix.diff uploaded by LEI FU
-         (License 6640) ........ Merged revisions 430795 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-2015-01-19 18:05 +0000 [r430776]  Mark Michelson <mmichelson@digium.com>
+2015-01-19 18:18 +0000 [r430782]  Mark Michelson <mmichelson@digium.com>
 
-       * main/pbx.c: Call extension state callbacks at hint creation. When
-         a hint gets created, any subsequent device or presence state
+       * main/pbx.c, /: Call extension state callbacks at hint creation.
+         When a hint gets created, any subsequent device or presence state
          changes result in extension status events getting sent out to
          interested parties. However, at the time of hint creation, no
          such event gets sent out, so watchers of extension state are
          potentially left in the dark until the first state change after
          hint creation. Patch contributed by John Hardin (License #6512)
+         ........ Merged revisions 430776 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-01-19 13:18 +0000 [r430755]  Joshua Colp <jcolp@digium.com>
-
-       * res/res_pjsip_multihomed.c, res/res_pjsip.c: res_pjsip /
-         res_pjsip_multihomed: Use the correct transport and addressing
-         information on UAS sessions. The first thing this patch fixes is
-         UAS dialogs. Previously if a transport was configured on an
-         endpoint and an inbound session was created there was no
-         guarantee that requests sent on the dialog would use the correct
-         transport and address information. This has now been fixed so an
-         explicitly configured transport is taken into account. The second
-         thing this patch fixes is res_pjsip_multihomed. The
-         res_pjsip_multihomed module attempts to determine what transport
-         a message should go out on and what addressing information should
-         go into the message itself. In a scenario where multiple
-         transports exist bound to the same IP address but a different
-         port the code would incorrectly alter the transport and change
-         the message to the wrong transport. This change makes the
-         res_pjsip_multihomed module smarter so it will only change the
-         transport and address information in the message when it is
-         possible and makes sense. ASTERISK-24615 #close Reported by:
-         David Justl Review: https://reviewboard.asterisk.org/r/4331/
-
-2015-01-17 00:31 +0000 [r430734]  Kevin Harwell <kharwell@digium.com>
-
-       * res/res_pjsip/config_transport.c,
-         res/res_pjsip/pjsip_outbound_auth.c, res/res_pjsip/config_auth.c,
-         main/stasis_message_router.c, res/res_pjsip/location.c,
-         res/res_pjsip/pjsip_configuration.c,
-         res/res_pjsip/pjsip_distributor.c,
-         res/res_pjsip/include/res_pjsip_private.h,
-         res/res_pjsip/pjsip_global_headers.c,
-         res/res_pjsip/pjsip_options.c, res/res_pjsip.c: REVERTING
-         res_pjsip: make it unloadable Due to the original patch causing
-         memory corruptions the patch is being removed until the problem
-         can be resolved.
-
-2015-01-16 22:13 +0000 [r430709-430716]  Mark Michelson <mmichelson@digium.com>
-
-       * CHANGES: Change PJProject version requirement for ca_list_path
-         transport option in CHANGES file.
-
-       * channels/chan_pjsip.c, res/res_pjsip_session.c: Fix problem where
-         a hung channel could occur on a failed blind transfer. Different
-         clients react differently to being told that a blind transfer has
-         failed. Some will simply send a BYE and be done with it. Others
-         will attempt to reinvite themselves back onto the call. In the
-         latter case, we were creating a new channel and then leaving it
-         to sit forever doing nothing. With this code change, that new
-         channel will not be created and the dialog with the transferring
-         channel will be cleaned up properly. ASTERISK-24624 #close
-         Reported by Zane Conkle Review:
-         https://reviewboard.asterisk.org/r/4339
-
-       * include/asterisk/res_pjsip.h, configure,
-         include/asterisk/autoconfig.h.in, configure.ac,
-         configs/samples/pjsip.conf.sample, CHANGES, res/res_pjsip.c,
-         res/res_pjsip/config_transport.c: Add support for the
-         ca_list_path option for PJSIP transports. This allows for a path
-         to be specified that has a collection of CA certificates in it.
-         ASTERISK-24575 #close Reported by cloos Patches:
-         pj-ca-path-trunk.diff uploaded by cloos (License #5956) Review:
-         https://reviewboard.asterisk.org/r/4344
-
-2015-01-15 17:35 +0000 [r430685-430687]  Richard Mudgett <rmudgett@digium.com>
-
-       * res/res_fax_spandsp.c, res/res_fax.c: res_fax.c,
-         res_fax_spandsp.c: Remove redundant locking. When FAX was
-         developed, apparently the faxregistry.container used to be a
-         linked list that was converted to an ao2 container. Some of the
-         replacement ao2 container operations still had explicit
-         lock/unlocks around them. Three off nominal code paths in
-         res_fax.c and res_fax_spandsp.c unlock the channel even though
-         the routine did not lock the channel and other code paths in the
-         routine do not unlock the channel. Review:
-         https://reviewboard.asterisk.org/r/4340/
-
-       * res/res_fax_spandsp.c, res/res_fax.c: res_fax.c,
-         res_fax_spandsp.c: Fix some curlies on the end of function
-         definitions.
-
-2015-01-15 12:09 +0000 [r430664]  Joshua Colp <jcolp@digium.com>
-
-       * res/res_pjsip_outbound_registration.c:
+2015-01-15 12:11 +0000 [r430666]  Joshua Colp <jcolp@digium.com>
+
+       * /, res/res_pjsip_outbound_registration.c:
          res_pjsip_outbound_registration: Fix race condition when
          reloading and listing registrations. Due to the split of outbound
          registration state from configuration it is possible during a
          removed due to a reload operation occurring at the same time. The
          code for printing the outbound registration did not take this
          into account but now it does. AST-1506 #close Review:
-         https://reviewboard.asterisk.org/r/4338/
-
-2015-01-15 02:18 +0000 [r430646]  Matthew Jordan <mjordan@digium.com>
-
-       * configure, configure.ac: configure: If cross-compiling, assume we
-         have working semaphores The Asterisk 13 configure.ac checks for
-         HAS_WORKING_SEMAPHORE but does not have an option for
-         cross-compiling so it fails with an exit. Since we're cross-
-         compiling, we can't exactly go looking for the header. The
-         semaphore.h header is relatively common: * It's part of the POSIX
-         standard * It's part of GNU C Library As such, we assume that it
-         will be present when cross-compiling. As such, this patch
-         defaults "HAS_WORKING_SEMAPHORE" to "1" if cross-compiling is
-         detected. If you're cross-compiling to a platform that doesn't
-         support this, then make sure you re-define this to 0.
-         ASTERISK-24663 #close Reported by: abelbeck patches:
-         asterisk-13-anonymous-semaphores.patch uploaded by abelbeck
-         (License 5903)
-
-2015-01-14 23:14 +0000 [r430628]  Kevin Harwell <kharwell@digium.com>
-
-       * res/res_pjsip/pjsip_configuration.c,
-         res/res_pjsip/pjsip_distributor.c,
-         res/res_pjsip/include/res_pjsip_private.h,
-         res/res_pjsip/pjsip_global_headers.c,
-         res/res_pjsip/pjsip_options.c, res/res_pjsip.c,
-         res/res_pjsip/config_transport.c,
-         res/res_pjsip/pjsip_outbound_auth.c, res/res_pjsip/config_auth.c,
-         main/stasis_message_router.c, res/res_pjsip/location.c:
-         res_pjsip: make it unloadable The res_pjsip module was previously
-         unloadable. With this patch it can now be unloaded. This patch is
-         based off the original patch on the issue (listed below) by Corey
-         Farrell with a few modifications. Namely, removed a few changes
-         not required to make the module unloadable and also fixed a bug
-         that would cause asterisk to crash on unloading. This patch is
-         the first step (should hopefully be followed by another/others at
-         some point) in allowing res_pjsip and the modules that depend on
-         it to be unloadable. At this time, res_pjsip and some of the
-         modules that depend on res_pjsip cannot be unloaded without
-         causing problems of some sort. The goal of this patch is to get
-         res_pjsip and only res_pjsip to be able to unload successfully
-         and/or shutdown without incident (crashes, leaks, etc...). Other
-         dependent modules may still cause problems on unload. Basically
-         made sure, with the patch applied, that res_pjsip (with no other
-         dependent modules loaded) could be succesfully unloaded and
-         Asterisk could shutdown without any leaks or crashes that
-         pertained directly to res_pjsip. ASTERISK-24485 #close Reported
-         by: Corey Farrell Review:
-         https://reviewboard.asterisk.org/r/4311/ patches:
-         pjsip_unload-broken-r1.patch submitted by Corey Farrell (license
-         5909)
-
-2015-01-14 20:27 +0000 [r430608]  Mark Michelson <mmichelson@digium.com>
-
-       * res/res_pjsip_outbound_publish.c: Prevent slow graceful shutdown
-         when outbound publications never started. The code was missing
-         the case for explicitly destroying an outbound publication when
-         Asterisk had never actually published anything. The result was
-         that Asterisk would hang for a while on a graceful shutdown. With
-         this change, the case is taken into account, and on a graceful
-         shutdown, these publications are destroyed without the need to
-         actually send a PUBLISH request. ASTERISK-24655 #close Reported
-         by Kevin Harwell Review: https://reviewboard.asterisk.org/r/4325
-
-2015-01-14 15:39 +0000 [r430590]  Matthew Jordan <mjordan@digium.com>
-
-       * build_tools/mkpkgconfig, /: build_tools/mkpkgconfig: Fix Cflags
-         concatenation error in asterisk.pc The mkpkgconfig script
-         incorrectly concatenates Cflags options together. As an example,
-         the following: Cflags: -I/usr/include/libxml2 -g3 Is instead
-         generated as: Cflags: -I/usr/include/libxml2-g3 This patch
-         corrects the generation of Cflags in mkpkgconfig such that the
-         Cflags options are output correctly. Review:
-         https://reviewboard.asterisk.org/r/3707/ ASTERISK-23991 #close
-         Reported by: Diederik de Groot patches: fix_mkpkgconfig.diff
-         uploaded by Diederik de Groot (License 6600) ........ Merged
-         revisions 430589 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-2015-01-13 18:16 +0000 [r430565]  Richard Mudgett <rmudgett@digium.com>
-
-       * apps/app_macro.c, /: app_macro: Don't restore the calling
-         location on a channel redirect. v11: If a channel redirect to a
-         macro exten of a macro that is active happens, the redirect
-         location doesn't get executed. Instead the original macro
-         location is restored and gets reexecuted. v13: An additional
-         effect happens if a parked call times out to an extension in the
-         macro that parked the call then the macro is reexecuted instead
-         of the expected park return location. * Made not restore the
-         macro calling location on an AST_SOFTHANGUP_ASYNCGOTO. *
-         Increased the locked channel range when setting up the macro
-         execution environment to cover things that should be done while
-         the channel is locked. * Removed unnecessary NULL tests before
-         calling ast_free() in _macro_exec(). ASTERISK-23850 #close
-         Reported by: Andrew Nagy Review:
-         https://reviewboard.asterisk.org/r/4292/ ........ Merged
-         revisions 430564 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-2015-01-13 12:06 +0000 [r430546]  Joshua Colp <jcolp@digium.com>
-
-       * channels/pjsip/dialplan_functions.c, configure,
-         include/asterisk/autoconfig.h.in, configure.ac: chan_pjsip: Add
-         configure check for 'pjsip_get_dest_info' function. The
-         'pjsip_get_dest_info' function is used to determine if the
-         signaling transport of the dialog is secure or not. This function
-         was added in PJSIP 2.3 and does not exist in earlier versions.
-         This configure check allows Asterisk to build and run with older
-         versions at the loss of the 'secure' argument for the PJSIP
-         CHANNEL dialplan function. Usage of this argument will require
-         upgrading to PJSIP 2.3. ASTERISK-24665 #close Reported by: Mark
-         Michelson Review: https://reviewboard.asterisk.org/r/4329/
-
-2015-01-12 18:34 +0000 [r430528]  Richard Mudgett <rmudgett@digium.com>
-
-       * include/asterisk/manager.h, main/manager.c: AMI: Revert
-         non-backwards compatible changes from earlier commit. * Reverted
-         the change to astman_send_listack() to not use the listflag
-         parameter and always set the value to "Start" so the start
-         capitalization is consistent. Unfortunately changing the case of
-         a returned value is not a backward compatible change so for now
-         FAXSessions is going to have to remain inconsistent with all of
-         the other AMI list actions. * Reverted the minor protocol error
-         fix in action_getconfig() when no requested categories are found.
-         Each line needs to be formatted as "Header: text". Caught by the
-         testsuite. ASTERISK-24049
-
-2015-01-12 18:28 +0000 [r430488-430526]  Matthew Jordan <mjordan@digium.com>
-
-       * configs/samples/features.conf.sample:
-         configs/samples/features.conf.sample: Document attended transfer
-         DTMF options The sample config was missing the configuration
-         options for DTMF attended transfer completion scenarios. The
-         configuration options 'atxferabort', 'atxfercomplete',
-         'atxferthreeway', and 'atxferswap' are now documented in the
-         appropriate configuration file. ASTERISK-24678 #close Reported
-         by: Niklas Larsson patches: features.conf.sample.diff uploaded by
-         Niklas Larsson (License 5068)
-
-       * main/syslog.c, include/asterisk/syslog.h, /: main/syslog: Allow
-         dynamic logs, such as security events, to log to the syslog The
-         security event log uses a dynamic log level (SECURITY) that is
-         registered with the Asterisk logging core. Unfortunately, the
-         syslog would ignore log statements that had a dynamic log level
-         associated with them. Because the syslog cannot handle ad hoc
-         dynamic log levels, this patch treats any dynamic log entries
-         sent to the syslog as logs with a level of NOTICE. ASTERISK-20744
-         #close Reported by: Michael Keuter Tested by: Michael L. Young,
-         Jacek Konieczny patches:
-         asterisk-20744-syslog-dynamic-logging_trunk.diff uploaded by
-         Michael L. Young (license 5026) ........ Merged revisions 430506
-         from http://svn.asterisk.org/svn/asterisk/branches/11
-
-       * funcs/func_curl.c, /: funcs/func_curl: Fix memory leak when
-         CURLOPT channel datastore is destroyed When the channel datastore
-         associated with the usage of CURLOPT on a specific channel is
-         freed, the underlying structure holding the list of options is
-         not disposed of. This patch properly frees the structure in the
-         datastore .destroy callback. ASTERISK-24672 #close Reported by:
-         Kristian Hogh patches: func_curl-memory-leak.diff uploaded by
-         Kristian Hogh (License 6639) ........ Merged revisions 430487
-         from http://svn.asterisk.org/svn/asterisk/branches/11
-
-2015-01-09 22:08 +0000 [r430467-430469]  Scott Griepentrog <sgriepentrog@digium.com>
-
-       * contrib/scripts/sip_to_pjsip/sip_to_pjsip.py,
-         contrib/scripts/sip_to_pjsip/astconfigparser.py: sip_to_pjsip:
-         improve ability to parse input files General improvements to SIP
-         to PJSIP conversion utility: 1) track default section of input
-         file to allow parsing an include file that doesn't specify a
-         [section] 2) informatively handle case of assignment without
-         [section] 3) correctly handle getting sections from included
-         files - [section]'s are inherited by included file 4) provide
-         null string as default transport bind ip 5) gracefully handle
-         missing portions of registration string 6) denote steps of
-         operation during conversion and confirm top level files as a
-         convenience ASTERISK-24474 #close Review:
-         https://reviewboard.asterisk.org/r/4280/ Reported by: John
-         Kiniston
-
-       * main/features.c: app_bridge: return to the next dialplan priority
-         When app_bridge grabs a channel and puts it into a bridge, the
-         channel should then continue where it left off in the dialplan
-         after the bridge has ended. Although it stores the current
-         dialplan location as an after bridge goto on the channel, it was
-         executing the same priority again instead of going to the next
-         priority. By swapping the "specific" version of
-         bridge_set_after_goto with bridge_set_after_go_on, the next
-         priority in the dialplan is executed instead. ASTERISK-24637
-         #close Review: https://reviewboard.asterisk.org/r/4322/ Reported
-         by: John Bigelow
-
-2015-01-09 17:54 +0000 [r430434]  Richard Mudgett <rmudgett@digium.com>
-
-       * UPGRADE.txt, res/res_mwi_external_ami.c, CHANGES,
-         include/asterisk/manager.h, channels/chan_iax2.c,
-         apps/app_queue.c, apps/app_agent_pool.c,
-         res/res_manager_devicestate.c, main/manager_bridges.c,
-         channels/chan_dahdi.c, main/manager.c, channels/chan_skinny.c,
-         res/res_pjsip_outbound_registration.c,
-         res/res_manager_presencestate.c,
-         res/res_pjsip/pjsip_configuration.c, apps/app_confbridge.c,
-         res/res_pjsip_pubsub.c, main/db.c, res/parking/parking_manager.c,
-         res/res_pjsip_registrar.c, apps/app_voicemail.c, main/pbx.c,
-         channels/chan_sip.c, apps/app_meetme.c, main/bridge.c,
-         res/res_fax.c: AMI: Make AMI actions that generate event lists
-         consistent. * Made the following AMI actions use list API calls
-         for consistency: Agents BridgeInfo BridgeList
-         BridgeTechnologyList ConfbridgeLIst ConfbridgeLIstRooms
-         CoreShowChannels DAHDIShowChannels DBGet DeviceStateList
-         ExtensionStateList FAXSessions Hangup IAXpeerlist IAXpeers
-         IAXregistry MeetmeList MeetmeListRooms MWIGet ParkedCalls
-         Parkinglots PJSIPShowEndpoint PJSIPShowEndpoints
-         PJSIPShowRegistrationsInbound PJSIPShowRegistrationsOutbound
-         PJSIPShowResourceLists PJSIPShowSubscriptionsInbound
-         PJSIPShowSubscriptionsOutbound PresenceStateList PRIShowSpans
-         QueueStatus QueueSummary ShowDialPlan SIPpeers SIPpeerstatus
-         SIPshowregistry SKINNYdevices SKINNYlines Status
-         VoicemailUsersList * Incremented the AMI version to 2.7.0. *
-         Changed astman_send_listack() to not use the listflag parameter
-         and always set the value to "Start" so the start capitalization
-         is consistent. i.e., The FAXSessions used "Start" while the rest
-         of the system used "start". The corresponding complete event
-         always used "Complete". * Fixed ami_show_resource_lists()
-         "PJSIPShowResourceLists" to output the AMI ActionID for all of
-         its list events. * Fixed off-nominal AMI protocol error in
-         manager_bridge_info(), manager_parking_status_single_lot(), and
-         manager_parking_status_all_lots(). Use of astman_send_error()
-         after responding to the original AMI action request violates the
-         action response pattern by sending two responses. * Fixed minor
-         protocol error in action_getconfig() when no requested categories
-         are found. Each line needs to be formatted as "Header: text". *
-         Fixed off-nominal memory leak in
-         manager_build_parked_call_string(). * Eliminated unnecessary use
-         of RAII_VAR() in ami_subscription_detail(). ASTERISK-24049 #close
-         Reported by: Jonathan Rose Review:
-         https://reviewboard.asterisk.org/r/4315/
-
-2015-01-09 14:51 +0000 [r430416]  Kinsey Moore <kmoore@digium.com>
-
-       * /, res/res_fax.c, include/asterisk/res_fax.h,
-         configs/samples/res_fax.conf.sample, CHANGES: res_fax: Add T.38
-         negotiation timeout option This change makes the T.38 negotiation
-         timeout configurable via 't38timeout' in res_fax.conf or
-         FAXOPT(t38timeout). It was previously hard coded to be 5000
-         milliseconds. This change also handles T.38 switch failures by
-         aborting the fax since in the case where this can happen, both
-         sides have agreed to switch to T.38 and Asterisk is unable to do
-         so. Review: https://reviewboard.asterisk.org/r/4320/ ........
-         Merged revisions 430415 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-2015-01-08 21:40 +0000 [r430373-430397]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip_pubsub.c: res_pjsip_pubsub: Fix persistent
-         subscriptions not surviving graceful shutdown If you do a 'core
-         (shutdown|restart) graceful' persistent subscriptions won't
-         survive. If you do a 'core (shutdown|restart) now' or asterisk
-         terminates for some reason, they do. Here's why... When asterisk
-         shuts down gracefully, it sends a 'NOTIFY/terminated' to
-         subscribers for each subscription. This not only tells the
-         subscribers that the dialog/state machine is done, it also frees
-         the last reference to the subscription tree which causes the
-         persistent subscription to get deleted from astdb. When asterisk
-         restarts, nothing's left. Just preventing the delete from astdb
-         doesn't work because we already told the subscriber to terminate
-         the dialog so we can't restart it even if it was still in astdb.
-         Everything works OK if asterisk terminates unexpectedly because
-         we never send the 'terminated' message so on restart, the
-         subscription is still in astdb and the subscriber is none the
-         wiser. This patch suppresses the sending of 'NOTIFY/terminated'
-         on shutdown for persistent connections. Tested-by: George Joseph
-         Review: https://reviewboard.asterisk.org/r/4318/
-
-       * res/res_pjsip_outbound_registration.c:
-         res_pjsip_outbound_registration: Fix reference leak. Every time a
-         registration started, sip_outbound_registration_response_cb bumps
-         the ref count on client_state then pushes a
-         handle_registration_response task. handle_registration_response
-         never unreffed it though. So every time a registration goes out,
-         the ref count goes up by one. This patch adds the unreffs to
-         handle_registration_response. Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4303/
-
-       * res/res_pjsip_outbound_registration.c:
-         res_pjsip_outbound_registration: Fix several reload issues There
-         are 2 issues with reloading registrations... 1. The
-         'can_reuse_registration' test wasn't considering the intervals or
-         expiration in its determination of whether a registration changed
-         or not so if you changed any of the intervals or the expiration
-         and reloaded, the object would get reloaded but the actual timers
-         wouldn't change. can_reuse_registration now does a sorcery diff
-         on the old and new objects instead of discretely testing certain
-         fields. Now if you change expiration for instance, and reload,
-         the timer is updated and re-registration will occur on the new
-         value. 2. If you mung up your password on an outbound
-         registration you get a permanent failure. If you fix the password
-         (on the outbound_auth object) and reload, nothing tells
-         outbound_registration to try again because the registration
-         itself didn't change. This patch adds an observer on the "auth"
-         object type and if any auth changes, existing registration states
-         are searched and those in a REJECTED_PERMANENT state are retried.
-         Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4304/
-
-2015-01-07 21:25 +0000 [r430355]  Kinsey Moore <kmoore@digium.com>
-
-       * res/res_stasis.c: ARI: Allow usage of ASYNCGOTO with Stasis()
-         When the AMI Redirect action is used with a channel bridged
-         inside Stasis() and not running a pbx, the channel is hung up
-         instead of proceeding to the desired location in dialplan. This
-         change allows such channels to be Redirected properly by
-         detecting the operation used by Redirect (ASYNCGOTO) and using
-         the code already established for functionality of the ARI channel
-         continue operation. ASTERISK-24591 #close Review:
-         https://reviewboard.asterisk.org/r/4271/
-
-2015-01-07 18:53 +0000 [r430337]  Mark Michelson <mmichelson@digium.com>
-
-       * rest-api/api-docs/channels.json, rest-api/resources.json,
-         res/ari/resource_channels.c, CHANGES, res/res_ari_channels.c,
-         res/ari/resource_channels.h: Add the ability to continue and
-         originate using priority labels. With this patch, the following
-         two ARI commands POST /channels POST /channels/{id}/continue
-         Accept a new parameter, label, that can be used to continue to or
-         originate to a priority label in the dialplan. Because this is
-         adding a new parameter to ARI commands, the API version of ARI
-         has been bumped from 1.6.0 to 1.7.0. This patch comes courtesy of
-         Nir Simionovich from Greenfield Tech. Thanks! ASTERISK-24412
-         #close Reported by Nir Simionovich Review:
-         https://reviewboard.asterisk.org/r/4285
-
-2015-01-07 18:17 +0000 [r430315-430319]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip_exten_state.c: res_pjsip_exten_state: Change 'does
-         not exist' warning to notice The 'new_subscribe: Extension <>
-         does not exist or has no associated hint' is a config issue and
-         doesn't need to clutter up logs with warnings. Changed to notice.
-         Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4307/
-
-       * res/res_pjsip_mwi.c: res_pjsip_mwi: Change "MWI Subscription
-         failed" message from warning to notice The "MWI Subscription
-         failed" message means the client is trying to subscribe to a
-         mailbox that doesn't exist. There's no need to clutter up logs
-         with warnings for a client misconfiguration so I changed it to a
-         notice. Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4306/
-
-       * funcs/func_config.c, tests/test_config.c: func_config: Add
-         ability to retrieve specific occurrence of a variable I guess
-         nobody uses templates with AST_CONFIG because today if you have a
-         context that inherits from a template and you call AST_CONFIG on
-         the context, you'll get the value from the template even if
-         you've overridden it in the context. This is because AST_CONFIG
-         only gets the first occurrence which is always from the template.
-         This patch adds an optional 'index' parameter to AST_CONFIG which
-         lets you specify the exact occurrence to retrieve, or '-1' to
-         retrieve the last. The default behavior is the current behavior.
-         Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4313/
-
-2015-01-07 17:35 +0000 [r430313]  Mark Michelson <mmichelson@digium.com>
-
-       * res/res_pjsip_refer.c: Fix ability to perform a remote attended
-         transfer with PJSIP. This fix has two parts: * Corrected an error
-         message to properly state that external_replaces is an extension.
-         The error message also prints what dialplan context the
-         external_replaces extension was being looked for in. * Corrected
-         the printing of the Replaces: header in an INVITE request. We
-         were duplicating "Replaces: " in the header. ASTERISK-24376
-         #close Reported by Matt Jordan Review:
-         https://reviewboard.asterisk.org/r/4296
-
-2015-01-07 16:55 +0000 [r430295]  George Joseph <george.joseph@fairview5.com>
-
-       * include/asterisk/config.h, main/config.c, main/manager.c: config:
-         Add option to NOT preserve effective context when changing a
-         template Let's say you have a template T with variable VAR1 = ON
-         and you have a context C(T) that doesn't specify VAR1. If you
-         read C, the effective value of VAR1 is ON. Now you change T VAR1
-         to OFF and call ast_config_text_file_save. The current behavior
-         is that the file gets re-written with T/VAR1=OFF but C/VAR1=ON is
-         added. Personally, I think this is a bug. It's preserving the
-         effective state of C even though I didn't specify C/VAR1 in th
-         first place. I believe the behavior should be that if I didn't
-         specify C/VAR1 originally, then the effective value of C/VAR1
-         should continue to follow the inherited state. Now, if I DID
-         explicitly specify C/VAR1, the it should be preserved even if the
-         template changes. Even though I think the existing behavior is a
-         bug, it's been that way forever so I'm not changing it. Instead,
-         I've created ast_config_text_file_save2() that takes a bitmask of
-         flags, one of which is to preserve the effective context (the
-         current behavior). The original ast_config_text_file_save calls
-         *2 with the preserve flag. If you want the new behavior, call *2
-         directly without a flag. I've also updated Manager UpdateConfig
-         with a new parameter 'PreserveEffectiveContext' whose default is
-         'yes'. If you want the new behavior with UpdateConfig, set
-         'PreserveEffectiveContext: no'. Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4297/
-
-2015-01-07 02:52 +0000 [r430274]  Kinsey Moore <kmoore@digium.com>
-
-       * res/res_pjsip/pjsip_options.c, res/res_pjsip.c,
-         main/rtp_engine.c: Fix dev-mode build on recent gcc
-
-2015-01-06 22:46 +0000 [r430252]  Matthew Jordan <mjordan@digium.com>
+         https://reviewboard.asterisk.org/r/4338/ ........ Merged
+         revisions 430664 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+2015-01-07 03:29 +0000 [r430253-430293]  Matthew Jordan <mjordan@digium.com>
+
+       * utils/conf2ael.c, apps/app_waitforring.c, formats/format_vox.c,
+         res/res_timing_pthread.c, pbx/pbx_ael.c,
+         cel/cel_sqlite3_custom.c, res/res_hep_rtcp.c,
+         formats/format_jpeg.c, apps/app_jack.c, apps/app_adsiprog.c,
+         cdr/cdr_sqlite3_custom.c, res/res_snmp.c, channels/chan_sip.c,
+         cel/cel_tds.c, apps/app_dictate.c, apps/app_festival.c,
+         agi/eagi-test.c, res/res_hep_pjsip.c, apps/app_alarmreceiver.c,
+         apps/app_image.c, channels/chan_console.c, apps/app_getcpeid.c,
+         apps/app_talkdetect.c, channels/chan_oss.c,
+         channels/chan_misdn.c, apps/app_mp3.c, channels/chan_alsa.c,
+         pbx/pbx_dundi.c, channels/chan_nbs.c, utils/extconf.c,
+         apps/app_zapateller.c, cel/cel_pgsql.c, res/res_config_pgsql.c,
+         utils/muted.c, apps/app_test.c, utils/smsq.c,
+         apps/app_morsecode.c, apps/app_ices.c, cdr/cdr_csv.c,
+         channels/chan_phone.c, funcs/func_pitchshift.c,
+         funcs/func_audiohookinherit.c,
+         res/res_pjsip_phoneprov_provider.c, apps/app_minivm.c,
+         res/res_statsd.c, apps/app_sms.c, res/res_config_ldap.c,
+         utils/streamplayer.c, utils/check_expr.c, cel/cel_radius.c,
+         apps/app_nbscat.c, res/res_hep.c, apps/app_waitforsilence.c,
+         apps/app_dahdiras.c, pbx/pbx_lua.c, res/res_ael_share.c,
+         cdr/cdr_radius.c, cdr/cdr_tds.c, utils/stereorize.c,
+         apps/app_osplookup.c, channels/chan_skinny.c,
+         funcs/func_frame_trace.c, apps/app_amd.c, pbx/pbx_realtime.c,
+         apps/app_url.c, apps/app_externalivr.c, cdr/cdr_odbc.c,
+         res/res_timing_kqueue.c, channels/chan_mgcp.c,
+         channels/chan_unistim.c, res/res_phoneprov.c, utils/astman.c,
+         cdr/cdr_pgsql.c, res/res_config_sqlite.c: Disable extended
+         support modules
 
-       * contrib/ast-db-manage/config/versions/371a3bf4143e_add_user_eq_phone_option_to_pjsip.py:
+       * /,
+         contrib/ast-db-manage/config/versions/371a3bf4143e_add_user_eq_phone_option_to_pjsip.py:
          contrib/ast-db-manage: Correct down_revision path for
          user_eq_phone When the user_eq_phone patch was backported to 13,
          it referenced the downward revision that the PJSIP optimistic
          upgrade Exception when generating the SQL files. This patch
          corrects this in the 13 branch. Note that trunk, which already
          contained both of these features, is unaffected by this problem.
+         ........ Merged revisions 430252 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2015-01-06 17:52 +0000 [r430221-430227]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip_mwi.c: res_pjsip_mwi: Change warning to notice When
-         res_pjsip loads and an endpoint auto-subscribes a mailbox for
-         mwi, if a contact hasn't registered yet, res_pjsip_mwi spits out
-         a warning. This is a perfectly normal situation though and
-         doesn't require something as serious as a warning. It's also self
-         correcting. The device will start getting mwi as soon as it
-         registers. This patch changes the warning to a notice. Tested-by:
-         George Joseph Review: https://reviewboard.asterisk.org/r/4314/
-
-       * bridges/bridge_native_rtp.c: bridge_native_rtp: Change
-         local/remote message from debug/2 to verb/4 Change the "Locally
-         bridged"/"Remotely bridged" messages from dbg/2 to verb/4.
-         Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4300/
-
-       * res/res_pjsip_outbound_registration.c, CHANGES:
-         outbound_registration: Add 'pjsip send register' and update 'send
-         unregister' The current behavior of 'pjsip send unregister' is to
-         send the unregister (REGISTER with 0 exp) but let the next
-         scheduled register proceed normally. I don't think that's a good
-         idea. If you unregister, it should stay unregistered until you
-         decide to start registrations again. So this patch just adds a
-         cancel_registration call to the current unregister_task to cancel
-         the timer. Of course, now you need a way to start registration
-         again so I've added a 'pjsip send register' command that
-         unregisters and cancels any existing registration (the same as
-         send unregister), then sends an immediate registration and starts
-         the timer back up again. Both changes also ripple to AMI. There's
-         a new PJSIPRegister command. There's no harm in calling either
-         command repeatedly. They don't care about the actual state.
-         Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4301/
-
-       * res/res_pjsip/location.c: pjsip cli: Fix sorting of contacts for
-         'pjsip list contacts' For some reason I was using a hash
-         container instead of a list to gather the contacts for 'pjsip
-         list/show contacts' so even though I had a sort function, the
-         output wasn't sorted. This patch just changes the hash container
-         to a list container and the contacts now appear sorted in the
-         CLI. Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4305/
+2015-01-06 19:53 +0000 [r430245]  Scott Griepentrog <sgriepentrog@digium.com>
 
-2015-01-05 22:49 +0000 [r430200]  Scott Griepentrog <sgriepentrog@digium.com>
-
-       * /, main/bridge_basic.c: bridge: avoid leaking channel during
+       * main/bridge_basic.c, /: bridge: avoid leaking channel during
          blond transfer pt2 A blond transfer to a failed destination, when
          followed by a recall attempt, lead to a leak of the reference to
          the destination channel. In addition to correcting the regression
          on the previous attempt (r429826) this fixes the leak and two
          additional reference leaks on failures of bridge_import.
          ASTERISK-24513 #close Review:
-         https://reviewboard.asterisk.org/r/4302/ ........ Merged
-         revisions 430199 from
-         http://svn.asterisk.org/svn/asterisk/branches/12
-
-2015-01-05 17:56 +0000 [r430179-430181]  Joshua Colp <jcolp@digium.com>
-
-       * CHANGES: pjsip: Document addition of 'PJSIP_AOR' and
-         'PJSIP_CONTACT' in CHANGES file.
-
-       * funcs/func_pjsip_contact.c (added), res/res_pjsip_session.c,
-         include/asterisk/res_pjsip.h,
-         channels/pjsip/dialplan_functions.c,
-         include/asterisk/res_pjsip_session.h, funcs/func_pjsip_aor.c
-         (added), res/res_pjsip/location.c: pjsip: Add 'PJSIP_AOR' and
-         'PJSIP_CONTACT' dialplan functions. The PJSIP_AOR dialplan
-         function allows inspection of configured AORs including what
-         contacts are currently bound to them. The PJSIP_CONTACT dialplan
-         function allows inspection of contacts in existence. These can
-         include both externally added (by way of registration) or
-         permanent ones. ASTERISK-24341 Reported by: xrobau Review:
-         https://reviewboard.asterisk.org/r/4308/
-
-2014-12-29 13:10 +0000 [r430145]  Kinsey Moore <kmoore@digium.com>
-
-       * res/res_pjsip.c: PJSIP: Update transport method documentation
-         This updates the documentation for the 'method' configuration
-         option to be more verbose about the behaviors of values
-         'unspecified' and 'default'. They do exactly the same thing which
-         is to select the default as defined by PJSIP which is currently
-         TLSv1. Review: https://reviewboard.asterisk.org/r/4264/
-
-2014-12-24 21:27 +0000 [r430127]  Kevin Harwell <kharwell@digium.com>
-
-       * /, configs/samples/queues.conf.sample: app_queue: Update sample
-         conf documenation Updated the queues.conf.sample file to
-         explicitly state which channel queue variables are propagated to.
-         ASTERISK-24267 Reported by: Mitch Claborn ........ Merged
-         revisions 430126 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+         https://reviewboard.asterisk.org/r/4302/ ........ Merged
+         revisions 430199 from
+         http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged
+         revisions 430200 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2014-12-24 15:26 +0000 [r430083-430092]  Matthew Jordan <mjordan@digium.com>
+2014-12-24 15:27 +0000 [r430085-430094]  Matthew Jordan <mjordan@digium.com>
 
-       * res/res_pjsip.c,
-         contrib/ast-db-manage/config/versions/371a3bf4143e_add_user_eq_phone_option_to_pjsip.py
-         (added): res_pjsip: Backport missing commits for user_eq_phone
-         This backports the following from trunk, which were missed:
-         r427257 | file | 2014-11-04 16:31:16 -0600 (Tue, 04 Nov 2014) | 2
-         lines res_pjsip: Allow + at the beginning of a phone number when
-         user_eq_phone is enabled. r427259 | file | 2014-11-04 16:51:32
-         -0600 (Tue, 04 Nov 2014) | 2 lines res_pjsip: Apply the
-         'user_eq_phone' setting to the To header as well. It also adds
-         the Alembic script for the option. ASTERISK-24643
+       * res/res_agi.c, /: res/res_agi: Make Verbose message for 'stream
+         file' match other playbacks The Verbose message displayed when a
+         file is played back via 'stream file' was formatted differently
+         than other playbacks: * It didn't include the channel name * It
+         didn't include the channel language It does, however, include the
+         playback offset as well as any escape digits. That information
+         was kept; however, this patch updates the formatting to more
+         closely match the Verbose messages displayed when a file is
+         played back by 'control stream file', Playback, ControlPlayback,
+         or any other file playback operation. ........ Merged revisions
+         429519 from http://svn.asterisk.org/svn/asterisk/branches/13
+
+       * contrib/ast-db-manage/config/versions/371a3bf4143e_add_user_eq_phone_option_to_pjsip.py
+         (added), /, res/res_pjsip.c: res_pjsip: Backport missing commits
+         for user_eq_phone This backports the following from trunk, which
+         were missed: r427257 | file | 2014-11-04 16:31:16 -0600 (Tue, 04
+         Nov 2014) | 2 lines res_pjsip: Allow + at the beginning of a
+         phone number when user_eq_phone is enabled. r427259 | file |
+         2014-11-04 16:51:32 -0600 (Tue, 04 Nov 2014) | 2 lines res_pjsip:
+         Apply the 'user_eq_phone' setting to the To header as well. It
+         also adds the Alembic script for the option. ASTERISK-24643
+         ........ Merged revisions 430092 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+       * /, tests/test_stasis_channels.c: Stasis: Update unittest for
+         channel snapshots This adjusts the unit test for channel
+         snapshots to take the new language key into account. ........
+         Merged revisions 429352 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
        * CHANGES, res/res_pjsip.c, include/asterisk/res_pjsip.h,
-         res/res_pjsip/config_global.c, res/res_pjsip_keepalive.c (added),
-         configs/samples/pjsip.conf.sample: res_pjsip_keepalive: Add
+         res/res_pjsip_keepalive.c (added), res/res_pjsip/config_global.c,
+         /, configs/samples/pjsip.conf.sample: res_pjsip_keepalive: Add
          runtime configurable keepalive module for connection-oriented
          transports. Note that this is backport from trunk of r425825.
          This change adds a module which is configurable using the
          connections open through NATs. This functionality also exists
          within PJSIP but can not be controlled at runtime and requires
          recompiling it. Review: https://reviewboard.asterisk.org/r/4084/
-         ASTERISK-24644 #close
+         ASTERISK-24644 #close ........ Merged revisions 430084 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * res/res_pjsip/pjsip_configuration.c, res/res_pjsip_caller_id.c,
-         CHANGES, res/res_pjsip.c, include/asterisk/res_pjsip.h:
-         res_pjsip: Add 'user_eq_phone' option to add a 'user=phone'
-         parameter when applicable. Note that this is a backport of
-         r425804 from trunk. This change adds a configuration option which
-         adds a 'user=phone' parameter if the user portion of the request
-         URI or the From URI is determined to be a number. Review:
-         https://reviewboard.asterisk.org/r/4073/ ASTERISK-24643 #close
-
-2014-12-23 23:18 +0000 [r430059-430064]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip/pjsip_options.c: pjsip_options: Fix continued
-         qualifies after endpoint/aor deletion If you remove an
-         endpoint/aor from pjsip.conf then do a core reload, qualifies
-         will continue even though the object are gone. This happens
-         because nothing clears out the qualify tasks. This patch
-         unschedules all existing qualify tasks before scheduling new ones
-         on reload. Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4290/
-
-       * tests/test_astobj2.c: test_astobj2: Fix warning for missing
-         trailing slash in category This patch adds a trailing slash to
-         the category for this test. No more warning. Tested-by: George
-         Joseph Review: https://reviewboard.asterisk.org/r/4295/
-
-2014-12-22 21:18 +0000 [r430010-430034]  Richard Mudgett <rmudgett@digium.com>
-
-       * main/bridge_basic.c: DTMF atxfer: Setup recall channels as if the
-         transferee initiated the call. After the initial DTMF atxfer call
-         attempt to the transfer target fails to answer during a blonde
-         transfer, the recall callback channels do not get setup with
-         information from the initial transferrer channel. As a result,
-         the recall callback to the transferrer does not have callid,
-         channel variables, datastores, accountcode, peeraccount, COLP,
-         and CLID setup. A similar situation happens with the recall
+       * /, res/res_pjsip/pjsip_configuration.c,
+         res/res_pjsip_caller_id.c, CHANGES, res/res_pjsip.c,
+         include/asterisk/res_pjsip.h: res_pjsip: Add 'user_eq_phone'
+         option to add a 'user=phone' parameter when applicable. Note that
+         this is a backport of r425804 from trunk. This change adds a
+         configuration option which adds a 'user=phone' parameter if the
+         user portion of the request URI or the From URI is determined to
+         be a number. Review: https://reviewboard.asterisk.org/r/4073/
+         ASTERISK-24643 #close ........ Merged revisions 430083 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+2014-12-22 21:22 +0000 [r430030-430046]  Richard Mudgett <rmudgett@digium.com>
+
+       * main/bridge_basic.c, /: DTMF atxfer: Setup recall channels as if
+         the transferee initiated the call. After the initial DTMF atxfer
+         call attempt to the transfer target fails to answer during a
+         blonde transfer, the recall callback channels do not get setup
+         with information from the initial transferrer channel. As a
+         result, the recall callback to the transferrer does not have
+         callid, channel variables, datastores, accountcode, peeraccount,
+         COLP, and CLID setup. A similar situation happens with the recall
          callback to the transfer target but it is less visible. The
          recall callback to the transfer target does not have callid,
          channel variables, datastores, accountcode, peeraccount, and COLP
          unlocks and props unref to off nominal paths in
          attended_transfer_properties_alloc(). ASTERISK-23841 #close
          Reported by: Richard Mudgett Review:
-         https://reviewboard.asterisk.org/r/4259/
+         https://reviewboard.asterisk.org/r/4259/ ........ Merged
+         revisions 430034 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * /, main/logger.c, include/asterisk/_private.h, main/asterisk.c:
+       * include/asterisk/_private.h, main/asterisk.c, /, main/logger.c:
          queue_log: Post QUEUESTART entry when Asterisk fully boots. The
          QUEUESTART log entry has historically acted like a fully booted
          event for the queue_log file. When the QUEUESTART entry was
          #close Reported by: Denis Martinez Review:
          https://reviewboard.asterisk.org/r/4282/ ........ Merged
          revisions 430009 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-2014-12-22 15:40 +0000 [r429983]  Matthew Jordan <mjordan@digium.com>
-
-       * /, channels/chan_sip.c: chan_sip: Send CANCEL via original INVITE
-         destination even after UPDATE request Given the following
-         scenario: * Three SIP phones (A, B, C), all communicating via a
-         proxy with Asterisk * A call is established between A and B. B
-         performs a SIP attended transfer of A to C. B sets the call on
-         hold (A is hearing MOH) and dials the extension of C. While phone
-         C is ringing, B transfers the call (that is, what we typically
-         call a 'blond transfer'). * When the transfer completes, A hears
-         the ringing of phone C, while B is idle. In the SIP messaging for
-         the above scenario, a REFER request is sent to transfer the call.
-         When "sendrpid=yes" is set in sip.conf, Asterisk may send an
-         UPDATE request to phone C to update party information. This
-         update is sent directly to phone C, not through the intervening
-         proxy. This has the unfortunate side effect of providing route
-         information, which is then set on the sip_pvt structure for C. If
-         someone (e.g. B) is trying to get the call back (through a
-         directed pickup), Asterisk will send a CANCEL request to C.
-         However, since we have now updated the route set, the CANCEL
-         request will be sent directly to C and not through the proxy. The
-         phone ignores this CANCEL according to RFC3261 (Section 9.1).
-         This patch updates reqprep such that the route is not updated if
-         an UPDATE request is being sent while the INVITE state is
-         INV_PROCEEDING or INV_EARLY_MEDIA. This ensures that a subsequent
-         CANCEL request is still sent to the correct location. Review:
-         https://reviewboard.asterisk.org/r/4279 ASTERISK-24628 #close
-         Reported by: Karsten Wemheuer patches: issue.patch uploaded by
-         Karsten Wemheuer (License 5930) ........ Merged revisions 429982
-         from http://svn.asterisk.org/svn/asterisk/branches/11
-
-2014-12-22 00:17 +0000 [r429914]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip_phoneprov_provider.c:
-         res_pjsip_phoneprovi_provider: Fix reload Reloading wasn't
-         working correctly because on a reload, the sorcery apply handler
-         was never being called for unchanged users. So, instead of using
-         an apply handler, I'm now iterating over all users. Works much
-         more reliably. Tested-by: George Joseph Review:
-         https://reviewboard.asterisk.org/r/4288/
-
-2014-12-20 20:57 +0000 [r429894]  Joshua Colp <jcolp@digium.com>
-
-       * main/named_acl.c, /: acl: Fix reloading of configuration if
-         configuration file does not exist at startup. The named ACL code
-         incorrectly destroyed the config options information if loading
-         of the configuration file failed at startup. This would result in
-         reloading also failing even if a valid configuration file was put
-         in place. ASTERISK-23733 #close Reported by: Richard Kenner
-         ........ Merged revisions 429893 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-2014-12-19 20:54 +0000 [r429829-429868]  Richard Mudgett <rmudgett@digium.com>
-
-       * /, res/res_http_websocket.c: res_http_websocket.c: Fix incorrect
-         use of sizeof in ast_websocket_write(). This won't fix the
-         reported issue but it is an incorrect use of sizeof.
-         ASTERISK-24566 Reported by: Badalian Vyacheslav ........ Merged
-         revisions 429867 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-       * channels/chan_dahdi.c, /: chan_dahdi: Don't ignore setvar when
-         using configuration section scheme. When the configuration
-         section scheme of chan_dahdi.conf is used (keyword dahdichan
-         instead of channel) all setvar= options are completely ignored.
-         No variable defined this way appears in the created DAHDI
-         channels. * Move the clearing of setvar values to after the
-         deferred processing of dahdichan. AST-1378 #close Reported by:
-         Guenther Kelleter Patch by: Guenther Kelleter ........ Merged
-         revisions 429825 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-2014-12-19 17:26 +0000 [r429827]  Scott Griepentrog <sgriepentrog@digium.com>
-
-       * /, main/bridge_basic.c: bridge: avoid leaking channel during
-         blond transfer After a blond transfer (start attended and hang
-         up) to a destination that also hangs up without answer, the
-         Local;1 channel was leaked and would show up on core show
-         channels. This was happening because the attended state
-         blond_nonfinal_enter() resetting the props->transfer_target to
-         null while releasing it's own reference, which would later
-         prevent props from releasing another reference during
-         destruction. The change made here is simply to not assign the
-         target to NULL. ASTERISK-24513 #close Reported by: Mark Michelson
-         Review: https://reviewboard.asterisk.org/r/4262/ ........ Merged
-         revisions 429826 from
-         http://svn.asterisk.org/svn/asterisk/branches/12
+         http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+         revisions 430010 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2014-12-18 22:38 +0000 [r429784-429805]  Richard Mudgett <rmudgett@digium.com>
+2014-12-22 18:35 +0000 [r430007-430008]  bebuild <bebuild@localhost>:
 
-       * res/res_rtp_asterisk.c, channels/chan_dahdi.c, /: chan_dahdi.c,
-         res_rtp_asterisk.c: Change some spammy debug messages to level 5.
-         ASTERISK-24337 #close Reported by: Rusty Newton ........ Merged
-         revisions 429804 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+       * /, res/res_pjsip/pjsip_options.c: Multiple revisions
+         429128,429246 ........ r429128 | kmoore | 2014-12-09 08:00:50
+         -0600 (Tue, 09 Dec 2014) | 12 lines PJSIP: Stagger outbound
+         qualifies This change staggers initiation of outbound qualify
+         (OPTIONS) attempts to reduce instantaneous server load and
+         prevent network congestion. Review:
+         https://reviewboard.asterisk.org/r/4246/ ASTERISK-24342 #close
+         Reported by: Richard Mudgett ........ Merged revisions 429127
+         from http://svn.asterisk.org/svn/asterisk/branches/12 ........
+         r429246 | kmoore | 2014-12-10 07:14:56 -0600 (Wed, 10 Dec 2014) |
+         8 lines PJSIP: Fix assert on initial mass qualify This fixes the
+         MWI test regressions caused by r429127 and ensures that contacts
+         have non-zero qualify_frequency before attempting scheduling.
+         ........ Merged revisions 429245 from
+         http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged
+         revisions 429128,429246 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+       * main/manager.c, /: Prevent possible race condition on dual
+         redirect of channels in the same bridge. The
+         AST_FLAG_BRIDGE_DUAL_REDIRECT_WAIT flag was created to prevent
+         bridges from prematurely acting on orphaned channels in bridges.
+         The problem with the AMI redirect action was that it was setting
+         this flag on channels based on the presence of a PBX, not whether
+         the channel was in a bridge. Whether a channel has a PBX is
+         irrelevant, so the condition has been altered to check if the
+         channel is in a bridge. ASTERISK-24536 #close Reported by Niklas
+         Larsson Review: https://reviewboard.asterisk.org/r/4268 ........
+         Merged revisions 429741 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * UPGRADE.txt, channels/sig_analog.c, /: chan_dahdi: Populate
-         CALLERID(ani2) for incoming calls in featdmf signaling mode. For
-         the featdmf signaling mode the incoming MF Caller-ID information
-         is formatted as follows:
-         *${CALLERID(ani2)}${CALLERID(ani)}#*${EXTEN}# Rather than
-         discarding the ani2 digits, populate the CALLERID(ani2) value
-         with what is received instead. AST-1368 #close Reported by: Denis
-         Martinez Patches: extract_ani2_for_featdmf_v11.patch (license
-         #5621) patch uploaded by Richard Mudgett ........ Merged
-         revisions 429783 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
+2014-12-19 21:52 +0000 [r429855-429892]  bebuild <bebuild@localhost>:
 
-2014-12-18 15:50 +0000 [r429763]  Kevin Harwell <kharwell@digium.com>
+       * CHANGES, res/res_ari_channels.c, res/ari/resource_channels.h, /,
+         rest-api/api-docs/channels.json, res/ari/resource_channels.c:
+         ari: Add support for specifying an originator channel when
+         originating. If an originator channel is specified when
+         originating a channel the linked ID of it will be applied to the
+         newly originated outgoing channel. This allows an association to
+         be made between the two so it is known that the originator has
+         dialed the originated channel. ASTERISK-24552 #close Reported by:
+         Matt Jordan Review: https://reviewboard.asterisk.org/r/4243/
+         ........ Merged revisions 429153 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+       * res/ari/ari_model_validators.c, main/manager_channels.c,
+         res/ari/ari_model_validators.h, /, main/stasis_channels.c,
+         rest-api/api-docs/channels.json: ARI/AMI: Include language in
+         standard channel snapshot output The channel "language" was
+         already part of a channel snapshot, however is was not sent out
+         over AMI or ARI. This patch makes it so the channel "language" is
+         included in the appropriate AMI or ARI events. ASTERISK-24553
+         #close Reported by: Matt Jordan Review:
+         https://reviewboard.asterisk.org/r/4245/ ........ Merged
+         revisions 429204 from
+         http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged
+         revisions 429206 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * res/res_pjsip_sdp_rtp.c: res_pjsip_sdp_rtp: wrong bridge chosen
-         when the DTMF mode is not compatible A native rtp bridge was
-         being chosen (it shouldn't have been) when using two pjsip
-         channels with incompatible DTMF modes. This patch sets the rtp
-         instance property, AST_RTP_PROPERTY_DTMF, for the appropriate
-         DTMF mode(s) for pjsip. It was not being set before, meaning all
-         DTMF modes for pjsip were being treated as compatible, thus
-         native bridging would be chosen as the bridge type when it
-         shouldn't have been. ASTERISK-24459 #close Reported by: Yaniv
-         Simhi Review: https://reviewboard.asterisk.org/r/4265/
+       * res/res_pjsip_session.c, /: res_pjsip_session: Fix issue where a
+         declined media stream in a re-INVITE would fail SDP negotiation.
+         In the past the SDP negotiation within res_pjsip_session was made
+         more tolerant of certain situations. The only case where SDP
+         negotiation will fail is when a major error occurs during
+         negotiation. Receiving an already declined media stream is not
+         considered a major error. When producing the local SDP the logic
+         took this into account so on the initial INVITE the declined
+         media stream did not cause an SDP negotiation failure.
+         Unfortunately the logic for handling media streams with a handler
+         did not mirror this logic and considered an already declined
+         media stream an error and thus failed the SDP negotiation. This
+         change makes the logic between both situations match so only
+         under major errors will the SDP negotiation fail. ASTERISK-24607
+         #close Reported by: Matt Jordan Review:
+         https://reviewboard.asterisk.org/r/4254/ ........ Merged
+         revisions 429407 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2014-12-18 15:34 +0000 [r429739-429761]  Mark Michelson <mmichelson@digium.com>
+       * include/asterisk/format.h, main/format.c, /, main/codec.c: media:
+         Fix crash when determining sample count of a frame during
+         shutdown. When shutting down Asterisk the codecs are cleaned up.
+         As a result anything attempting to get a codec based on ID or
+         details will find that no codec exists. This currently occurs
+         when determining the sample count of a frame. This code did not
+         take this situation into account. This change fixes this by
+         getting the codec directly from the format and eliminates the
+         lookup. This is both faster and also provides a guarantee that
+         the codec will exist and will be valid. ASTERISK-24604 #close
+         Reported by: Matt Jordan Review:
+         https://reviewboard.asterisk.org/r/4260/ ........ Merged
+         revisions 429497 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * res/res_pjsip_outbound_registration.c: Prevent potential infinite
-         outbound authentication loops in registration. Prior to this
-         patch, Asterisk would always respond to 401 responses to
+       * /, res/res_pjsip_outbound_registration.c: Prevent potential
+         infinite outbound authentication loops in registration. Prior to
+         this patch, Asterisk would always respond to 401 responses to
          registration attempts by trying to provide a registration with
          authentication credentials. Even if subsequent attempts were
          rejected with 401 responses, Asterisk would continue this
          we have attempted authentication on an outbound registration
          attempt. If we already have, we don not try again until the next
          attempt. This prevents the infinite loop scenario. Review:
-         https://reviewboard.asterisk.org/r/4273
+         https://reviewboard.asterisk.org/r/4273 ........ Merged revisions
+         429761 from http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * main/manager.c: Prevent possible race condition on dual redirect
-         of channels in the same bridge. The
-         AST_FLAG_BRIDGE_DUAL_REDIRECT_WAIT flag was created to prevent
-         bridges from prematurely acting on orphaned channels in bridges.
-         The problem with the AMI redirect action was that it was setting
-         this flag on channels based on the presence of a PBX, not whether
-         the channel was in a bridge. Whether a channel has a PBX is
-         irrelevant, so the condition has been altered to check if the
-         channel is in a bridge. ASTERISK-24536 #close Reported by Niklas
-         Larsson Review: https://reviewboard.asterisk.org/r/4268
-
-       * channels/pjsip/dialplan_functions.c: Ensure the correct value is
-         returned for CHANNEL(pjsip, secure) Prior to this patch, we were
-         using the PJSIP dialog's secure flag to determine if a secure
-         transport was being used. Unfortunately, the dialog's secure flag
-         was only set if a SIPS URI were in use, as required by RFC 3261
-         sections 12.1.1 and 12.1.2. What we're interested in is not
-         dialog security, but transport security. This code change
+       * res/res_pjsip_outbound_publish.c, /: res_pjsip_outbound_publish:
+         stack overflow when using non-default sorcery wizard When using a
+         non-default sorcery wizard (in this instance realtime) for
+         outbound publishes Asterisk will crash after a stack overflow
+         occurs due to the code infinitely recursing. The fix entails
+         removing the outbound publish state dependency from the outbound
+         publish sorcery object and instead keeping an in memory container
+         that can be used to lookup the state when needed. ASTERISK-24514
+         #close Reported by: Mark Michelson Review:
+         https://reviewboard.asterisk.org/r/4178/ ........ Merged
+         revisions 429175 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+       * /, res/res_pjsip_sdp_rtp.c: PJSIP: Allow use of 'inactive'
+         streams for hold This allows use of the 'inactive' stream
+         direction identifier to be used for hold where 'sendonly' is
+         normally used. Some Seimens phones use 'inactive' and this change
+         allows music on hold to operate properly. Review:
+         https://reviewboard.asterisk.org/r/4252/ Reported by: Steve Pitts
+         ........ Merged revisions 429432 from
+         http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged
+         revisions 429433 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+       * channels/chan_pjsip.c, res/res_pjsip_session.c,
+         include/asterisk/res_pjsip_session.h, /,
+         res/res_pjsip_session.exports.in: res_pjsip_session: Delay
+         sending BYE if a re-INVITE transaction is in progress. Given the
+         scenario where a PJSIP channel is in a native RTP bridge with
+         direct media and the channel is then hung up the code will
+         currently re-INVITE the channel back to Asterisk and send a BYE
+         at the same time. Many SIP implementations dislike this greatly.
+         This change makes it so that if a re-INVITE transaction is in
+         progress the BYE is queued to occur after the completion of the
+         transaction (be it through normal means or a timeout). Review:
+         https://reviewboard.asterisk.org/r/4248/ ........ Merged
+         revisions 429409 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+       * /, channels/chan_pjsip.c: chan_pjsip: Race between channel answer
+         and bridge setup when using direct media When direct media is
+         enabled and a pjsip channel is answered a race would occur
+         between the handling of the answer and bridge setup. Sometimes
+         the media negotiation would take place after the native bridge
+         was setup. This resulted in a NULL media address, which in turn
+         resulted in Asterisk using its address as the remote media
+         address when sending a reinvite. This patch makes the chan_pjsip
+         answer handler synchronous thus alleviating the race condition
+         (the bridge won't start setting things up until after it
+         returns). ASTERISK-24563 #close Reported by: Steve Pitts Review:
+         https://reviewboard.asterisk.org/r/4257/ ........ Merged
+         revisions 429477 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+       * main/rtp_engine.c, /, channels/chan_sip.c,
+         include/asterisk/rtp_engine.h, res/res_rtp_asterisk.c: Direct
+         Media calls within private network sometimes get one way audio
+         When endpoints with direct_media enabled, behind a firewall
+         (Asterisk on a separate network) and were bridged sometimes
+         Asterisk would send the ip address of the firewall in the sdp to
+         one of the phones in the reinvite resulting in one way audio.
+         When sending the reinvite Asterisk will retrieve the media
+         address from the associated rtp instance, but if frames were
+         being read this can be overwritten with another address (in this
+         case the firewall's). This patch ensures that Asterisk uses the
+         original device address when using direct media. ASTERISK-24563
+         Reported by: Steve Pitts Review:
+         https://reviewboard.asterisk.org/r/4216/ ........ Merged
+         revisions 429195 from
+         http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged
+         revisions 429196 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
+
+       * channels/pjsip/dialplan_functions.c, /: Ensure the correct value
+         is returned for CHANNEL(pjsip, secure) Prior to this patch, we
+         were using the PJSIP dialog's secure flag to determine if a
+         secure transport was being used. Unfortunately, the dialog's
+         secure flag was only set if a SIPS URI were in use, as required
+         by RFC 3261 sections 12.1.1 and 12.1.2. What we're interested in
+         is not dialog security, but transport security. This code change
          switches to a model where we use the dialog's target URI to
          determine what transport would be used to communicate, and then
          check if that transport is secure. AST-1450 #close Reported by
          John Bigelow Review: https://reviewboard.asterisk.org/r/4277
+         ........ Merged revisions 429739 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2014-12-18 00:10 +0000 [r429699-429719]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip_config_wizard.c: res_pjsip_config_wizard: fix
-         unload SEGV If certain pjsip modules aren't loaded, the wizard
-         causes a SEGV when it unloads. Added a check for the presense of
-         the object type wizard before trying to clean it up. Tested-by:
-         George Joseph
-
-       * res/res_pjsip_config_wizard.c: res_pjsip_config_wizard: Change
-         FILEUNCHANGED config_load2 flag determination The module now
-         applies the FILEUNCHANGED flag when both reloaded is specified
-         AND there's no last_config for the object type. Tested-by: George
-         Joseph Review: https://reviewboard.asterisk.org/r/4276/
-
-2014-12-17 09:54 +0000 [r429675]  Walter Doekes <walter+asterisk@wjd.nu>
-
-       * addons/ooh323c/src/printHandler.c, apps/app_adsiprog.c,
-         channels/chan_unistim.c, main/udptl.c, res/res_rtp_asterisk.c, /,
-         channels/chan_sip.c, channels/vcodecs.c, res/res_crypto.c,
-         utils/astman.c, utils/smsq.c, main/utils.c, pbx/dundi-parser.c,
-         apps/app_getcpeid.c, channels/chan_iax2.c, channels/sig_pri.c,
-         res/res_pktccops.c, main/loader.c, channels/iax2/parser.c,
-         main/uuid.c, main/manager.c, channels/chan_misdn.c,
-         apps/app_osplookup.c, channels/misdn/ie.c, main/http.c,
-         apps/app_sms.c: Fix printf problems with high ascii characters
-         after r413586 (1.8). In r413586 (1.8) various casts were added to
-         silence gcc 4.10 warnings. Those fixes included things like: -out
-         += sprintf(out, "%%%02X", (unsigned char) *ptr); +out +=
-         sprintf(out, "%%%02X", (unsigned) *ptr); That works for low ascii
-         characters, but for the high range that yields e.g. FFFFFFC3 when
-         C3 is expected. This changeset: - fixes those casts to use the
-         'hh' unsigned char modifier instead - consistently uses %02x
-         instead of %2.2x (or other non-standard usage) - adds a few 'h'
-         modifiers in various places - fixes a 'replcaes' typo -
-         dev/urandon typo (in 13+ patch) Review:
-         https://reviewboard.asterisk.org/r/4263/ ASTERISK-24619 #close
-         Reported by: Stefan27 (on IRC) ........ Merged revisions 429673
-         from http://svn.asterisk.org/svn/asterisk/branches/11 ........
-         Merged revisions 429674 from
-         http://svn.asterisk.org/svn/asterisk/branches/12
-
-2014-12-16 17:53 +0000 [r429653]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip_config_wizard.c: res_pjsip_config_wizard: fix test
-         breakage Fix test breakage caused by not checking for res_pjsip
-         before calling ast_sip_get_sorcery. Tested-by: George Joseph
-         Review: https://reviewboard.asterisk.org/r/4269/
-
-2014-12-16 16:38 +0000 [r429612-429633]  Joshua Colp <jcolp@digium.com>
-
-       * /, channels/chan_sip.c: chan_sip: Allow T.38 switch-over when
-         SRTP is in use. Previously when SRTP was enabled on a channel it
-         was not possible to switch to T.38 as no crypto attributes would
-         be present. This change makes it so it is now possible. If a T.38
-         re-invite comes in SRTP is terminated since in practice you can't
-         encrypt a UDPTL stream. Now... if we were doing T.38 over RTP
-         (which does exist) then we'd have a chance but almost nobody does
-         that so here we are. ASTERISK-24449 #close Reported by: Andreas
-         Steinmetz patches: udptl-ignore-srtp-v2.patch submitted by
-         Andreas Steinmetz (license 6523) ........ Merged revisions 429632
-         from http://svn.asterisk.org/svn/asterisk/branches/11
-
-       * res/res_pjsip_t38.c: res_pjsip_t38: Fix T.38 failure when peer
-         reinvites immediately. If a remote endpoint reinvites to T.38
-         immediately the state machine will go into a peer reinvite state.
-         If a T.38 capable application (such as ReceiveFax) queries it
-         will receive this state. Normally the application will then
-         indicate so that the channel driver will queue up the T.38 offer
-         previously received. Once it receives this offer the application
-         will act normally and negotiate. The res_pjsip_t38 module
-         incorrectly partially squashed this indication. This would cause
-         the application to think the request had failed when in reality
-         it had actually worked. This change makes it so that no T.38
-         control frames (or indications) are squashed.
-
-2014-12-15 17:07 +0000 [r429592]  George Joseph <george.joseph@fairview5.com>
-
-       * res/res_pjsip_phoneprov_provider.c,
-         configs/samples/pjsip_wizard.conf.sample (added), CHANGES,
-         res/res_pjsip_config_wizard.c (added): res_pjsip_config_wizard:
-         Allow streamlined config of common pjsip scenarios
-         res_pjsip_config_wizard ------------------ * This is a new module
-         that adds streamlined configuration capability for chan_pjsip.
-         It's targetted at users who have lots of basic configuration
-         scenarios like 'phone' or 'agent' or 'trunk'. Additional
-         information can be found in the sample configuration file at
-         config/samples/pjsip_wizard.conf.sample. Tested-by: George Joseph
-         Review: https://reviewboard.asterisk.org/r/4190/
-
-2014-12-15 15:36 +0000 [r429571]  Mark Michelson <mmichelson@digium.com>
-
-       * res/res_pjsip_pubsub.c: Activate persistent subscriptions when
-         they are recreated. Prior to this change, recreating persistent
-         subscriptions would create the subscription but would not
-         activate it. This led to subscriptions being listed in the "NULL"
-         state by diagnostics and not sending NOTIFYs when expected.
-         Review: https://reviewboard.asterisk.org/r/4261
-
-2014-12-12 23:54 +0000 [r429542]  George Joseph <george.joseph@fairview5.com>
-
-       * main/manager.c, include/asterisk/module.h,
-         include/asterisk/_private.h: loader: Move definition of
-         ast_module_reload from _private.h to module.h No functionality
-         change. Just move the definition of ast_module_reload from
-         _private.h to module.h so it can be public. Also removed the
-         include of _private.h from manager.c since ast_module_load was
-         the only reason for including it. Tested-by: George Joseph
-         Review: https://reviewboard.asterisk.org/r/4251/
-
-2014-12-12 23:40 +0000 [r429540]  Richard Mudgett <rmudgett@digium.com>
+       * channels/chan_dahdi.c, /: chan_dahdi: Don't ignore setvar when
+         using configuration section scheme. When the configuration
+         section scheme of chan_dahdi.conf is used (keyword dahdichan
+         instead of channel) all setvar= options are completely ignored.
+         No variable defined this way appears in the created DAHDI
+         channels. * Move the clearing of setvar values to after the
+         deferred processing of dahdichan. AST-1378 #close Reported by:
+         Guenther Kelleter Patch by: Guenther Kelleter ........ Merged
+         revisions 429825 from
+         http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
+         revisions 429829 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * main/lock.c, /, include/asterisk/lock.h: DEBUG_THREADS: Fix
+       * /, include/asterisk/lock.h, main/lock.c: DEBUG_THREADS: Fix
          regression and lock tracking initialization problems. This patch
          started with David Lee's patch at
          https://reviewboard.asterisk.org/r/2826/ and includes a
          https://reviewboard.asterisk.org/r/4247/ Review:
          https://reviewboard.asterisk.org/r/2826/ ........ Merged
          revisions 429539 from
-         http://svn.asterisk.org/svn/asterisk/branches/11
-
-2014-12-12 22:53 +0000 [r429518-429519]  Matthew Jordan <mjordan@digium.com>
-
-       * res/res_agi.c: res/res_agi: Make Verbose message for 'stream
-         file' match other playbacks The Verbose message displayed when a
-         file is played back via 'stream file' was formatted differently
-         than other playbacks: * It didn't include the channel name * It
-         didn't include the channel language It does, however, include the
-         playback offset as well as any escape digits. That information
-         was kept; however, this patch updates the formatting to more
-         closely match the Verbose messages displayed when a file is
-         played back by 'control stream file', Playback, ControlPlayback,
-         or any other file playback operation.
-
-       * /: Add 11 merge properties
-
-2014-12-12 16:57 +0000 [r429497]  Joshua Colp <jcolp@digium.com>
-
-       * main/format.c, main/codec.c, include/asterisk/format.h: media:
-         Fix crash when determining sample count of a frame during
-         shutdown. When shutting down Asterisk the codecs are cleaned up.
-         As a result anything attempting to get a codec based on ID or
-         details will find that no codec exists. This currently occurs
-         when determining the sample count of a frame. This code did not
-         take this situation into account. This change fixes this by
-         getting the codec directly from the format and eliminates the
-         lookup. This is both faster and also provides a guarantee that
-         the codec will exist and will be valid. ASTERISK-24604 #close
-         Reported by: Matt Jordan Review:
-         https://reviewboard.asterisk.org/r/4260/
-
-2014-12-12 15:30 +0000 [r429477]  Kevin Harwell <kharwell@digium.com>
-
-       * channels/chan_pjsip.c: chan_pjsip: Race between channel answer
-         and bridge setup when using direct media When direct media is
-         enabled and a pjsip channel is answered a race would occur
-         between the handling of the answer and bridge setup. Sometimes
-         the media negotiation would take place after the native bridge
-         was setup. This resulted in a NULL media address, which in turn
-         resulted in Asterisk using its address as the remote media
-         address when sending a reinvite. This patch makes the chan_pjsip
-         answer handler synchronous thus alleviating the race condition
-         (the bridge won't start setting things up until after it
-         returns). ASTERISK-24563 #close Reported by: Steve Pitts Review:
-         https://reviewboard.asterisk.org/r/4257/
-
-2014-12-12 15:00 +0000 [r429457]  David M. Lee <dlee@digium.com>
-
-       * res/res_pjsip_outbound_publish.c: Fix crash for sorcery
-         misconfigs res_pjsip_outbound_publish was missing the
-         CHECK_PJSIP_MODULE_LOADED() call in load_module, and would crash
-         with a segfault if res_pjsip declined to load. Review:
-         https://reviewboard.asterisk.org/r/4258/
-
-2014-12-12 14:12 +0000 [r429430-429433]  Kinsey Moore <kmoore@digium.com>
-
-       * /, res/res_pjsip_sdp_rtp.c: PJSIP: Allow use of 'inactive'
-         streams for hold This allows use of the 'inactive' stream
-         direction identifier to be used for hold where 'sendonly' is
-         normally used. Some Seimens phones use 'inactive' and this change
-         allows music on hold to operate properly. Review:
-         https://reviewboard.asterisk.org/r/4252/ Reported by: Steve Pitts
-         ........ Merged revisions 429432 from
-         http://svn.asterisk.org/svn/asterisk/branches/12
-
-       * res/res_sorcery_config.c, /: Sorcery: Log when old config remains
-         in use This adds a log message notifying the user that a stale
-         configuration is in place upon reload when a config object fails
-         to load. This situation can end up causing confusion when the
-         object failed to load but exists from a previous config load
-         especially when the old config is significantly different from
-         the new config. Review: https://reviewboard.asterisk.org/r/4250/
-         Reported by: Thomas Thompson ........ Merged revisions 429429
-         from http://svn.asterisk.org/svn/asterisk/branches/12
-
-2014-12-12 13:05 +0000 [r429407-429409]  Joshua Colp <jcolp@digium.com>
-
-       * res/res_pjsip_session.exports.in, channels/chan_pjsip.c,
-         res/res_pjsip_session.c, include/asterisk/res_pjsip_session.h:
-         res_pjsip_session: Delay sending BYE if a re-INVITE transaction
-         is in progress. Given the scenario where a PJSIP channel is in a
-         native RTP bridge with direct media and the channel is then hung
-         up the code will currently re-INVITE the channel back to Asterisk
-         and send a BYE at the same time. Many SIP implementations dislike
-         this greatly. This change makes it so that if a re-INVITE
-         transaction is in progress the BYE is queued to occur after the
-         completion of the transaction (be it through normal means or a
-         timeout). Review: https://reviewboard.asterisk.org/r/4248/
-
-       * res/res_pjsip_session.c: res_pjsip_session: Fix issue where a
-         declined media stream in a re-INVITE would fail SDP negotiation.
-         In the past the SDP negotiation within res_pjsip_session was made
-         more tolerant of certain situations. The only case where SDP
-         negotiation will fail is when a major error occurs during
-         negotiation. Receiving an already declined media stream is not
-         considered a major error. When producing the local SDP the logic
-         took this into account so on the initial INVITE the declined
-         media stream did not cause an SDP negotiation failure.
-         Unfortunately the logic for handling media streams with a handler
-         did not mirror this logic and considered an already declined
-         media stream an error and thus failed the SDP negotiation. This
-         change makes the logic between both situations match so only
-         under major errors will the SDP negotiation fail. ASTERISK-24607
-         #close Reported by: Matt Jordan Review:
-         https://reviewboard.asterisk.org/r/4254/
-
-2014-12-11 20:31 +0000 [r429387]  Kevin Harwell <kharwell@digium.com>
-
-       * CHANGES: ARI/AMI: Include language in standard channel snapshot
-         output The CHANGES verbiage for the "language" addition had been
-         put under the wrong release. This moves it to be under 13.1 to
-         13.2 changes. ASTERISK-24553 Reported by: Matt Jordan
-
-2014-12-11 17:21 +0000 [r429352-429379]  Kinsey Moore <kmoore@digium.com>
-
-       * /: Recorded merge of revisions 429378 from
-         http://svn.asterisk.org/svn/asterisk/branches/12 ........ Fix
-         incorrect patch applied in r429354 The patch that was applied was
-         another pending patch. This swaps them out.
-
-       * /: Recorded merge of revisions 429354 from
-         http://svn.asterisk.org/svn/asterisk/branches/12 ........ Stasis:
-         Update unittest for channel snapshots This adjusts the unit test
-         for channel snapshots to take the new language key into account.
-
-       * tests/test_stasis_channels.c: Stasis: Update unittest for channel
-         snapshots This adjusts the unit test for channel snapshots to
-         take the new language key into account.
-
-2014-12-10 15:42 +0000 [r429326]  Kevin Harwell <kharwell@digium.com>
-
-       * /, CHANGES: ARI/AMI: Include language in standard channel
-         snapshot output Adding information about including "language" in
-         the standard channel snapshot output to the CHANGES file. Note
-         the actual source changes have already been previously committed.
-         ASTERISK-24553 Reported by: Matt Jordan ........ Merged revisions
-         429325 from http://svn.asterisk.org/svn/asterisk/branches/12
-
-2014-12-10 13:34 +0000 [r429273]  Joshua Colp <jcolp@digium.com>
-
-       * res/res_http_websocket.c, res/res_pjsip_transport_websocket.c, /,
-         channels/chan_sip.c: res_http_websocket: Fix crash due to double
-         freeing memory when receiving a payload length of zero. Frames
-         with a payload length of 0 were incorrectly handled in
-         res_http_websocket. Provided a frame with a payload had been
-         received prior it was possible for a double free to occur. The
-         realloc operation would succeed (thus freeing the payload) but be
-         treated as an error. When the session was then torn down the
-         payload would be freed again causing a crash. The read function
-         now takes this into account. This change also fixes assumptions
-         made by users of res_http_websocket. There is no guarantee that a
-         frame received from it will be NULL terminated. ASTERISK-24472
-         #close Reported by: Badalian Vyacheslav Review:
-         https://reviewboard.asterisk.org/r/4220/ Review:
-         https://reviewboard.asterisk.org/r/4219/ ........ Merged
-         revisions 429270 from
          http://svn.asterisk.org/svn/asterisk/branches/11 ........ Merged
-         revisions 429272 from
-         http://svn.asterisk.org/svn/asterisk/branches/12
-
-2014-12-10 13:14 +0000 [r429246]  Kinsey Moore <kmoore@digium.com>
+         revisions 429540 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-       * /, res/res_pjsip/pjsip_options.c: PJSIP: Fix assert on initial
-         mass qualify This fixes the MWI test regressions caused by
-         r429127 and ensures that contacts have non-zero qualify_frequency
-         before attempting scheduling. ........ Merged revisions 429245
-         from http://svn.asterisk.org/svn/asterisk/branches/12
-
-2014-12-09 20:46 +0000 [r429223]  Scott Griepentrog <sgriepentrog@digium.com>
-
-       * main/asterisk.c: core: avoid possible asterisk -r crash from long
-         id When connecting to the remote console, an id string is first
-         provided that consts of the hostname, pid, and version. This is
-         parsed by the remote instance using a buffer that may be too
-         short, and can allow a buffer overrun because it is not
-         terminated. This patch adds termination and a larger buffer.
-         Review: https://reviewboard.asterisk.org/r/4182/
-
-2014-12-09 20:19 +0000 [r429175-429206]  Kevin Harwell <kharwell@digium.com>
-
-       * res/ari/ari_model_validators.h, /, main/stasis_channels.c,
-         rest-api/api-docs/channels.json, res/ari/ari_model_validators.c,
-         main/manager_channels.c: ARI/AMI: Include language in standard
-         channel snapshot output The channel "language" was already part
-         of a channel snapshot, however is was not sent out over AMI or
-         ARI. This patch makes it so the channel "language" is included in
-         the appropriate AMI or ARI events. ASTERISK-24553 #close Reported
-         by: Matt Jordan Review: https://reviewboard.asterisk.org/r/4245/
-         ........ Merged revisions 429204 from
-         http://svn.asterisk.org/svn/asterisk/branches/12
-
-       * include/asterisk/rtp_engine.h, res/res_rtp_asterisk.c,
-         main/rtp_engine.c, /, channels/chan_sip.c: Direct Media calls
-         within private network sometimes get one way audio When endpoints
-         with direct_media enabled, behind a firewall (Asterisk on a
-         separate network) and were bridged sometimes Asterisk would send
-         the ip address of the firewall in the sdp to one of the phones in
-         the reinvite resulting in one way audio. When sending the
-         reinvite Asterisk will retrieve the media address from the
-         associated rtp instance, but if frames were being read this can
-         be overwritten with another address (in this case the
-         firewall's). This patch ensures that Asterisk uses the original
-         device address when using direct media. ASTERISK-24563 Reported
-         by: Steve Pitts Review: https://reviewboard.asterisk.org/r/4216/
-         ........ Merged revisions 429195 from
-         http://svn.asterisk.org/svn/asterisk/branches/12
-
-       * res/res_pjsip_outbound_publish.c: res_pjsip_outbound_publish:
-         stack overflow when using non-default sorcery wizard When using a
-         non-default sorcery wizard (in this instance realtime) for
-         outbound publishes Asterisk will crash after a stack overflow
-         occurs due to the code infinitely recursing. The fix entails
-         removing the outbound publish state dependency from the outbound
-         publish sorcery object and instead keeping an in memory container
-         that can be used to lookup the state when needed. ASTERISK-24514
-         #close Reported by: Mark Michelson Review:
-         https://reviewboard.asterisk.org/r/4178/
-
-2014-12-09 15:44 +0000 [r429153]  Joshua Colp <jcolp@digium.com>
-
-       * res/ari/resource_channels.h, rest-api/api-docs/channels.json,
-         res/ari/resource_channels.c, CHANGES, res/res_ari_channels.c:
-         ari: Add support for specifying an originator channel when
-         originating. If an originator channel is specified when
-         originating a channel the linked ID of it will be applied to the
-         newly originated outgoing channel. This allows an association to
-         be made between the two so it is known that the originator has
-         dialed the originated channel. ASTERISK-24552 #close Reported by:
-         Matt Jordan Review: https://reviewboard.asterisk.org/r/4243/
+       * /, res/res_pjsip_pubsub.c: Activate persistent subscriptions when
+         they are recreated. Prior to this change, recreating persistent
+         subscriptions would create the subscription but would not
+         activate it. This led to subscriptions being listed in the "NULL"
+         state by diagnostics and not sending NOTIFYs when expected.
+         Review: https://reviewboard.asterisk.org/r/4261 ........ Merged
+         revisions 429571 from
+         http://svn.asterisk.org/svn/asterisk/branches/13
 
-2014-12-09 14:00 +0000 [r429128]  Kinsey Moore <kmoore@digium.com>
+       * /, asterisk-13.1.0-summary.html (removed),
+         asterisk-13.1.0-summary.txt (removed): Update properties; remove
+         old summaries
 
-       * /, res/res_pjsip/pjsip_options.c: PJSIP: Stagger outbound
-         qualifies This change staggers initiation of outbound qualify
-         (OPTIONS) attempts to reduce instantaneous server load and
-         prevent network congestion. Review:
-         https://reviewboard.asterisk.org/r/4246/ ASTERISK-24342 #close
-         Reported by: Richard Mudgett ........ Merged revisions 429127
-         from http://svn.asterisk.org/svn/asterisk/branches/12
+       * / (added): Create Certified Asterisk 13.1 branch
 
 2014-12-15  Asterisk Development Team <asteriskteam@digium.com>
 
diff --git a/asterisk-13.13.0-summary.html b/asterisk-13.13.0-summary.html
deleted file mode 100644 (file)
index 143d263..0000000
+++ /dev/null
@@ -1,304 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-13.13.0</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-13.13.0</h3><h3 align="center">Date: 2016-11-23</h3><h3 align="center">&lt;asteriskteam@digium.com&gt;</h3><hr><h2 align="center">Table of Contents</h2><ol>
-<li><a href="#summary">Summary</a></li>
-<li><a href="#contributors">Contributors</a></li>
-<li><a href="#closed_issues">Closed Issues</a></li>
-<li><a href="#open_issues">Open Issues</a></li>
-<li><a href="#commits">Other Changes</a></li>
-<li><a href="#diffstat">Diffstat</a></li>
-</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release is a point release of an existing major version. The changes included were made to address problems that have been identified in this release series, or are minor, backwards compatible new features or improvements. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous version are strongly encouraged to review the UPGRADE.txt document as well as the CHANGES document for information about upgrading to this release series.</p><p>The data in this summary reflects changes that have been made since the previous release, asterisk-13.12.0.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were affected by commits that went into this release.</p><table width="100%" border="0">
-<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
-<tr valign="top"><td width="33%">21 gtjoseph <gjoseph@digium.com><br/>11 Joshua Colp <jcolp@digium.com><br/>10 Matt Jordan <mjordan@digium.com><br/>10 Mark Michelson <mmichelson@digium.com><br/>7 Richard Mudgett <rmudgett@digium.com><br/>5 Kevin Harwell <kharwell@digium.com><br/>3 Tzafrir Cohen <tzafrir.cohen@xorcom.com><br/>3 Alexander Traud <pabstraud@compuserve.com><br/>3 Corey Farrell <git@cfware.com><br/>3 Alexander Anikin <may213@yandex.ru><br/>2 Sebastian Gutierrez <sgutierrez@integraccs.com><br/>1 Michael Walton <mike@farsouthnet.com><br/>1 Etienne Lessard <elessard@proformatique.com><br/>1 Leandro Dardini <ldardini@gmail.com><br/>1 snuffy <snuffy22@gmail.com><br/>1 Pascal Cadotte Michaud <pcadotte@proformatique.com><br/>1 Maciej Szmigiero <mail@maciej.szmigiero.name><br/>1 Michael Kuron <m.kuron@gmx.de><br/>1 Rusty Newton <rnewton@digium.com><br/>1 Grachev Sergey <grachev@mcn.ru><br/>1 Alexei Gradinari <alex2grad@gmail.com><br/>1 Igor Goncharovskiy <igor.goncharovsky@gmail.com><br/>1 Moises Silva <moises.silva@gmail.com><br/></td><td width="33%">1 Dmitry Melekhov<br/></td><td width="33%">7 Matt Jordan <mjordan@digium.com><br/>5 Alexander Traud <pabstraud@compuserve.com><br/>4 Morten Tryfoss <morten@tryfoss.no><br/>4 scgm11 <scgm11@gmail.com><br/>4 Joshua Colp <jcolp@digium.com><br/>3 George Joseph <gjoseph@digium.com><br/>3 Richard Mudgett <rmudgett@digium.com><br/>2 Gabriele Giacone <1o5g4r8o@gmail.com><br/>2 Andrew Nagy <andrew.nagy@the159.com><br/>1 Rusty Newton <rnewton@digium.com><br/>1 Dmitry Melekhov<br/>1 Andreas Wetzel <mickey242@gmx.net><br/>1 Ian Gilmour<br/>1 Alexei Gradinari <alex2grad@gmail.com><br/>1 Bill Brigden <bill@brigden.me><br/>1 Andrew Nagy<br/>1 Sergey Grachev <FreeSS@live.ru><br/>1 snuffy <snuffy22@gmail.com><br/>1 Daniele Pallastrelli <daniele.pallastrelli@sadel.it><br/>1 Kevin Harwell <kharwell@digium.com><br/>1 Kayode <kayode.olajide@gltd.net><br/>1 Michael Keuter <lists@mksolutions.info><br/>1 Dmitry Melekhov <dm@belkam.com><br/>1 Harley Peters <harley@thepetersclan.com><br/>1 Corey Farrell <git@cfware.com><br/>1 Leandro Dardini <ldardini@gmail.com><br/>1 Jonathan Harris <lardconcepts@gmail.com><br/>1 Badalian Vyacheslav <slavon.net@gmail.com><br/>1 Doug Lytle <support@drdos.info><br/>1 scgm11<br/>1 Richard Mudgett<br/>1 Maciej Szmigiero <mail@maciej.szmigiero.name><br/>1 Etienne Lessard <elessard@proformatique.com><br/>1 Tzafrir Cohen <tzafrir.cohen@xorcom.com><br/>1 John Kiniston <johnkiniston@gmail.com><br/>1 Jason <asterisk@srpl.com><br/>1 Florian Loyau <florian.loyau@astrium-eu-projects.eu><br/>1 Ian Gilmour <ian.gilmour.x@gmail.com><br/>1 Michael Walton <mike@farsouthnet.com><br/>1 Morton Tryfoss<br/></td></tr>
-</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>New Feature</h3><h4>Category: General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26595">ASTERISK-26595</a>: ARI: Add the ability to control the source of video in a multi-party mixing bridge<br/>Reported by: Matt Jordan<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d23b4af4779675589c8a3ce39c0f4b80d0432d5c">[d23b4af477]</a> Matt Jordan -- res/ari/resource_bridges: Add the ability to manipulate the video source</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26470">ASTERISK-26470</a>: ARI: Add an 'asterisk_id' field to outgoing events<br/>Reported by: Matt Jordan<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=42cfdcd1b700af157746b897dc04362e853065c0">[42cfdcd1b7]</a> Matt Jordan -- res/ari: Add the Asterisk EID field to outgoing events</li>
-</ul><br><h3>Bug</h3><h4>Category: Addons/chan_ooh323</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24400">ASTERISK-24400</a>: ooh323 sends wrong hangup code<br/>Reported by: Dmitry Melekhov<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a9ac1f5de474feee8933530b6370acdf3a45cc3f">[a9ac1f5de4]</a> Alexander Anikin -- chan_ooh323: Fixes to work right with Cisco devices</li>
-</ul><br><h4>Category: Applications/app_dial</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26549">ASTERISK-26549</a>: app_dial: When PickupChan() is used some channels may have incorrect device state<br/>Reported by: Joshua Colp<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d971647949a5a6dee5c80526f2baa90b02687ad5">[d971647949]</a> Joshua Colp -- app_dial: Fix incorrect device state when channel is picked up.</li>
-</ul><br><h4>Category: Applications/app_queue</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26462">ASTERISK-26462</a>: [patch] app_queue: While using queues with realtime, setting back to an empty context doesn't stop the exit key usage<br/>Reported by: Leandro Dardini<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0306869399c519fd6f1b35332aa639a8db4b86fb">[0306869399]</a> Leandro Dardini -- app_queue: Added initialization for "context" parameter</li>
-</ul><br><h4>Category: Applications/app_voicemail</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26503">ASTERISK-26503</a>: app_voicemail: Asterisk crashes when MailboxExists is used<br/>Reported by: Doug Lytle<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=14496ce1e5bbc9b2192ca8f882ecb99887c5d40a">[14496ce1e5]</a> Joshua Colp -- app_voicemail: Clear voice mailbox in MailboxExists and MAILBOX_EXISTS.</li>
-</ul><br><h4>Category: Bridges/bridge_softmix</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26555">ASTERISK-26555</a>: Multi-party Video: Fix some post Asterisk-11 regressions<br/>Reported by: Matt Jordan<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e7dc536b7ae11abf0414b367d1125610dd858188">[e7dc536b7a]</a> Matt Jordan -- main/bridge_channel: Fix channel reference leak on video source</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7c824b955d4200c82805b3e07aa3af30c43fd09d">[7c824b955d]</a> Matt Jordan -- main/bridge: Add some verbose logging for video source changes</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fd6af2dee8016ac64b3c4943d8ded04767a0a752">[fd6af2dee8]</a> Matt Jordan -- bridges/bridge_softmix: Remove SSRC changes on join/leave; update video source</li>
-</ul><br><h4>Category: Channels/chan_dahdi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26412">ASTERISK-26412</a>: build:  Prepare for gcc 6.2<br/>Reported by: George Joseph<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bd4d7d8ad05bbe8d86b89429dfa55fbc3a0c108d">[bd4d7d8ad0]</a> Kevin Harwell -- stasis_recording/stored: remove calls to deprecated readdir_r function.</li>
-</ul><br><h4>Category: Channels/chan_multicast_rtp</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26439">ASTERISK-26439</a>: chan_rtp: Crash when originating<br/>Reported by: Kayode<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=644fad74770594c10b1819900d6195855068020a">[644fad7477]</a> Moises Silva -- chan_rtp: Set a sane default rtp engine for unicast.</li>
-</ul><br><h4>Category: Channels/chan_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26516">ASTERISK-26516</a>: pjsip: Memory corruption with possible memory leak.<br/>Reported by: Richard Mudgett<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e632222bc41d860af7de2463c35de60387a2f295">[e632222bc4]</a> Richard Mudgett -- res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=afecb2cfc084db522cf570aa2210056b1c396196">[afecb2cfc0]</a> Richard Mudgett -- bundled pjproject: Fix DNS write to freed memory.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26444">ASTERISK-26444</a>: 'features show' command in CLI does not return prompt.<br/>Reported by: John Kiniston<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c2036c827cb22e2fbf509d4318b6f177d516c033">[c2036c827c]</a> snuffy -- Fix issue with CLI not returning to prompt after running "features show"</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26482">ASTERISK-26482</a>: [patch] chan_pjsip: segfault on already disconnected session<br/>Reported by: Alexei Gradinari<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6d462b9eaf4f34a518ec491f1f97c21adc30a87c">[6d462b9eaf]</a> Alexei Gradinari -- chan_pjsip: segfault on already disconnected session</li>
-</ul><br><h4>Category: Channels/chan_sip/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26523">ASTERISK-26523</a>: chan_sip: Asterisk 13.12.1 disconnects incoming calls after 2 minutes - rtptimeout behaving badly - regression<br/>Reported by: Michael Keuter<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb30963d222cb1e12af9bbf8dfed58001c9fcaf4">[cb30963d22]</a> Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always updated"</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26476">ASTERISK-26476</a>: chan_sip: Incorrect display option "Outbound reg. retry 403" in "sip show settings"<br/>Reported by: Sergey Grachev<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b3f10b7b94c08e9024057d0237a83da1bda6a946">[b3f10b7b94]</a> Grachev Sergey -- chan_sip: Incorrect display option Outbound reg. retry 403</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26457">ASTERISK-26457</a>: [patch] force_rport,auto_comedia: No NAT detection triggered.<br/>Reported by: Alexander Traud<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a859bcb49cc2c60ff2979853aae8c54269287598">[a859bcb49c]</a> Alexander Traud -- chan_sip: Support nat=auto_comedia or nat=force_rport,auto_comedia.</li>
-</ul><br><h4>Category: Channels/chan_unistim</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26565">ASTERISK-26565</a>: chan_unistim on 11, 13, 14 placing call on hold temporarily locks up set<br/>Reported by: Jason<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3faca1d4ffb3e727b792958f3b124f2258643259">[3faca1d4ff]</a> Igor Goncharovskiy -- Fix closing rtp ports after call finished in chan_unistim.</li>
-</ul><br><h4>Category: Codecs/codec_opus</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26520">ASTERISK-26520</a>: codec_opus: Generated fmtp line has no content<br/>Reported by: scgm11<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2c031b67d3c7da83bab914bcdaad45d2a0bc9ff8">[2c031b67d3]</a> Mark Michelson -- res_format_attr_opus: Fix fmtp generation.</li>
-</ul><br><h4>Category: Core/AstMM</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26526">ASTERISK-26526</a>: [UBSAN] vector.h: null pointer can be passed as argument 2 to memcpy<br/>Reported by: Badalian Vyacheslav<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=30b1bc77d2cfea0a593ecead8e392e468b40430c">[30b1bc77d2]</a> Corey Farrell -- vector: Prevent NULL argument to memcpy.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26524">ASTERISK-26524</a>: astobj2: data_size variable is wasted space when AO2_DEBUG is not enabled.<br/>Reported by: Corey Farrell<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b96f18560b529b614d0773a060bc03ef73498c61">[b96f18560b]</a> Corey Farrell -- astobj2: Declare private variable data_size for AO2_DEBUG only.</li>
-</ul><br><h4>Category: Core/Bridging</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26555">ASTERISK-26555</a>: Multi-party Video: Fix some post Asterisk-11 regressions<br/>Reported by: Matt Jordan<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e7dc536b7ae11abf0414b367d1125610dd858188">[e7dc536b7a]</a> Matt Jordan -- main/bridge_channel: Fix channel reference leak on video source</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7c824b955d4200c82805b3e07aa3af30c43fd09d">[7c824b955d]</a> Matt Jordan -- main/bridge: Add some verbose logging for video source changes</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fd6af2dee8016ac64b3c4943d8ded04767a0a752">[fd6af2dee8]</a> Matt Jordan -- bridges/bridge_softmix: Remove SSRC changes on join/leave; update video source</li>
-</ul><br><h4>Category: Core/BuildSystem</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26608">ASTERISK-26608</a>: Compile and link failures on OpenBSD<br/>Reported by: snuffy<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b213045fe4a32d4b41ca9a29af383b17a885ca35">[b213045fe4]</a> gtjoseph -- build:  Various OpenBSD issues</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26592">ASTERISK-26592</a>: Latest libedit (3.1) defaults to unicode and makes asterisk CLI read garbage<br/>Reported by: George Joseph<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5e0c22404316ecdf8e1510553474274eddf55e20">[5e0c224043]</a> gtjoseph -- cli:  Fix ast_el_read_char to work with libedit >= 3.1</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-22480">ASTERISK-22480</a>: Embedded pjproject: build.mak contains hardcoded full path to version.mak<br/>Reported by: Matt Jordan<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=61a5c3460ec23a623ac62633d055b34d4dded682">[61a5c3460e]</a> gtjoseph -- pjproject_bundled:  Remove usage of tar's --strip-components option</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26356">ASTERISK-26356</a>: menuselect: invalid test for GTK2<br/>Reported by: Tzafrir Cohen<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6f5880913f80372dd042ae4c9e874d9eab840f55">[6f5880913f]</a> Tzafrir Cohen -- menuselect: invalid test for GTK2</li>
-</ul><br><h4>Category: Core/CodecInterface</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26605">ASTERISK-26605</a>: codec_opus: Spammed warning when Opus negotiated but codec_opus not loaded.<br/>Reported by: Richard Mudgett<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ed0f1afc8cea8918171a1aabc9b6885bba41e3c4">[ed0f1afc8c]</a> Richard Mudgett -- codec_opus: Fix warning when Opus negotiated but codec_opus not loaded.</li>
-</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26605">ASTERISK-26605</a>: codec_opus: Spammed warning when Opus negotiated but codec_opus not loaded.<br/>Reported by: Richard Mudgett<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ed0f1afc8cea8918171a1aabc9b6885bba41e3c4">[ed0f1afc8c]</a> Richard Mudgett -- codec_opus: Fix warning when Opus negotiated but codec_opus not loaded.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26509">ASTERISK-26509</a>: A few non-critical deprecation warnings when building on Ubuntu 16.10<br/>Reported by: Jonathan Harris<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bd4d7d8ad05bbe8d86b89429dfa55fbc3a0c108d">[bd4d7d8ad0]</a> Kevin Harwell -- stasis_recording/stored: remove calls to deprecated readdir_r function.</li>
-</ul><br><h4>Category: Core/ManagerInterface</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26537">ASTERISK-26537</a>: AMI: NewConnectedLine event is not documented<br/>Reported by: Etienne Lessard<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=42bd70b29f5673ffead10c70cc4096c1410f4144">[42bd70b29f]</a> Etienne Lessard -- manager: Add documentation for NewConnectedLine event.</li>
-</ul><br><h4>Category: Core/RTP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26311">ASTERISK-26311</a>: [patch] rtp_engine: Allow more than 32 dynamic payload types.<br/>Reported by: Alexander Traud<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0cf1778eed4754570a36938e1f5d212951320a71">[0cf1778eed]</a> Alexander Traud -- rtp_engine: Allow more than 32 dynamic payload types.</li>
-</ul><br><h4>Category: Core/Stasis</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26468">ASTERISK-26468</a>: ari: Bridge events stop working after this sequence of ARI calls<br/>Reported by: Daniele Pallastrelli<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3a1f9c5dab3fbb2159575d74721aa0f4ddc3d078">[3a1f9c5dab]</a> Joshua Colp -- res_stasis: Don't unsubscribe from a NULL bridge.</li>
-</ul><br><h4>Category: Documentation</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26514">ASTERISK-26514</a>: Super Awesome Company: Don't specify transport in pjsip.conf<br/>Reported by: Rusty Newton<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=87903a684888f88a46746801262e7f14a2249d01">[87903a6848]</a> Rusty Newton -- SAC documentation: don't specify transports for endpoints and registrations</li>
-</ul><br><h4>Category: Features</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26444">ASTERISK-26444</a>: 'features show' command in CLI does not return prompt.<br/>Reported by: John Kiniston<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c2036c827cb22e2fbf509d4318b6f177d516c033">[c2036c827c]</a> snuffy -- Fix issue with CLI not returning to prompt after running "features show"</li>
-</ul><br><h4>Category: General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26575">ASTERISK-26575</a>: testsuite: Need to check PJSIP functionality when res_srtp is not loaded.<br/>Reported by: Joshua Colp<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b70eb07c53d041e868ced079759471220f78bf50">[b70eb07c53]</a> Joshua Colp -- res_pjsip_sdp_rtp: Reject offer of required SRTP without res_srtp.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25070">ASTERISK-25070</a>: Fix FTBFS on Hurd<br/>Reported by: Gabriele Giacone<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=94c9496ed5a73a83ac26c58f8ae049acccc0fd51">[94c9496ed5]</a> Tzafrir Cohen -- netsock.c: fix includes for HURD</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c1c9487375f4dc80c5425a9ccfd407f3fa849ac3">[c1c9487375]</a> Tzafrir Cohen -- define PATH_MAX for HURD</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26387">ASTERISK-26387</a>: Asterisk segfaults shortly after starting even with no active calls. <br/>Reported by: Harley Peters<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d7f457e4c15235e33add6eb66158df0fbd9bf0b5">[d7f457e4c1]</a> Richard Mudgett -- bundled pjproject: Crashes while resolving DNS names.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26513">ASTERISK-26513</a>: tests/channels/pjsip/qualify/auth: Crashing enough to be a nuisance<br/>Reported by: Joshua Colp<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f373de302032c13487cfcaa616fc070f10d68b57">[f373de3020]</a> Corey Farrell -- Fix shutdown crash caused by modules being left open.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26421">ASTERISK-26421</a>: Segmentation Fault with ARI originate into mixing bridge with 43 clients<br/>Reported by: Andrew Nagy<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eff97808fb95e4f9de13c90990f8ef5435352f31">[eff97808fb]</a> Mark Michelson -- ARI: Detect duplicate channel IDs</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=012fda29d23bac1d2b06e9a8933980047da30246">[012fda29d2]</a> Mark Michelson -- CDR: Alter destruction pattern for CDR chains.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26480">ASTERISK-26480</a>: [patch] CLI: core set debug: Auto-completes File not Module<br/>Reported by: Alexander Traud<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=662b560c3531d8b70bdf8b91e68ae965926663cd">[662b560c35]</a> Alexander Traud -- cli: Auto-complete File not Module for core set debug.</li>
-</ul><br><h4>Category: Resources/res_agi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26343">ASTERISK-26343</a>: ASTERISK-25951 causes issues for callerid manipulation through agi<br/>Reported by: Morten Tryfoss<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=404596b79017611c47cfd2e260207ace1dbb9208">[404596b790]</a> gtjoseph -- channel:  Fix issues in hangup scenarios caused by frame deferral</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2e3a3545754749de21873bfdc6d1a40ec7d8893f">[2e3a354575]</a> Mark Michelson -- autoservice: Use frame deferral API</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5c10091f3d1430c6fc04015226f8c3e3aa9d8282">[5c10091f3d]</a> Mark Michelson -- AGI: Only defer frames when in an interception routine.</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9231a56cf3d6f5eca1bf2d37d827453400690773">[9231a56cf3]</a> Mark Michelson -- Add API for channel frame deferral.</li>
-</ul><br><h4>Category: Resources/res_ari_bridges</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26468">ASTERISK-26468</a>: ari: Bridge events stop working after this sequence of ARI calls<br/>Reported by: Daniele Pallastrelli<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3a1f9c5dab3fbb2159575d74721aa0f4ddc3d078">[3a1f9c5dab]</a> Joshua Colp -- res_stasis: Don't unsubscribe from a NULL bridge.</li>
-</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26516">ASTERISK-26516</a>: pjsip: Memory corruption with possible memory leak.<br/>Reported by: Richard Mudgett<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e632222bc41d860af7de2463c35de60387a2f295">[e632222bc4]</a> Richard Mudgett -- res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=afecb2cfc084db522cf570aa2210056b1c396196">[afecb2cfc0]</a> Richard Mudgett -- bundled pjproject: Fix DNS write to freed memory.</li>
-</ul><br><h4>Category: Resources/res_pjsip_caller_id</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26307">ASTERISK-26307</a>: res_pjsip_caller_id: Crash on outgoing change<br/>Reported by: Bill Brigden<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=675c71ae8ca9fc086a5da21a5abcb7ef72506343">[675c71ae8c]</a> Joshua Colp -- res_pjsip_caller_id: Fix crash on session timers UPDATE on inbound calls.</li>
-</ul><br><h4>Category: Resources/res_pjsip_sdp_rtp</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26541">ASTERISK-26541</a>: res_pjsip_sdp_rtp: Restrict number of formats to maximum<br/>Reported by: Joshua Colp<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f188bb7a84b5cb065f35d6068b0c800a695a940">[5f188bb7a8]</a> Joshua Colp -- res_pjsip_sdp_rtp: Limit number of formats to defined maximum.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26423">ASTERISK-26423</a>: res_pjsip_sdp_rtp: Asymmetric RTP codec can cause audio loss and wonkiness<br/>Reported by: Andreas Wetzel<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e0bc17edfff27bb9dbbe931814fb5653005f3219">[e0bc17edff]</a> Joshua Colp -- pjsip: Fix a few media bugs with reinvites and asymmetric payloads.</li>
-</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26309">ASTERISK-26309</a>: [patch] res_pjsip: Allow IPv4/IPv6 (Dual Stack) installations.<br/>Reported by: Alexander Traud<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f534f67f520397079f1af54358aa4404403025eb">[f534f67f52]</a> Joshua Colp -- res_pjsip_sdp_rtp: Fix address family of explicit media_address.</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bb982480d815fb0d5059fbfa86682cd30846556c">[bb982480d8]</a> Joshua Colp -- pjsip: Support dual stack automatically.</li>
-</ul><br><h4>Category: Resources/res_rtp_multicast</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26439">ASTERISK-26439</a>: chan_rtp: Crash when originating<br/>Reported by: Kayode<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=644fad74770594c10b1819900d6195855068020a">[644fad7477]</a> Moises Silva -- chan_rtp: Set a sane default rtp engine for unicast.</li>
-</ul><br><h4>Category: Third-Party/pjproject</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26510">ASTERISK-26510</a>: pjproject_bundled uses the --strip-components option of tar which isn't supported in older versions<br/>Reported by: George Joseph<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=61a5c3460ec23a623ac62633d055b34d4dded682">[61a5c3460e]</a> gtjoseph -- pjproject_bundled:  Remove usage of tar's --strip-components option</li>
-</ul><br><h4>Category: pjproject/pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26344">ASTERISK-26344</a>: Asterisk 13.11.0 + PJSIP crash<br/>Reported by: Ian Gilmour<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d7f457e4c15235e33add6eb66158df0fbd9bf0b5">[d7f457e4c1]</a> Richard Mudgett -- bundled pjproject: Crashes while resolving DNS names.</li>
-</ul><br><h3>Improvement</h3><h4>Category: Applications/app_queue</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26558">ASTERISK-26558</a>: app_queue: add variable to know if the call is not answered after a queue<br/>Reported by: scgm11<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=71dc33356504e32b6ed4bbf6faaacb51a3602d10">[71dc333565]</a> Joshua Colp -- app_queue: Add mention of 'ABANDON' variable to CHANGES.</li>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7fd5031c1cac30f7dacea803a8d9e07302edcbf7">[7fd5031c1c]</a> Sebastian Gutierrez -- app_queue: new variable set when abandoned</li>
-</ul><br><h4>Category: Channels/chan_sip/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26176">ASTERISK-26176</a>: chan_sip: Add AccountCode to AMI PeerEntry<br/>Reported by: scgm11<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=714412f6c43f2b6b8f8af5a7d0d2bb337a24701c">[714412f6c4]</a> Sebastian Gutierrez -- chan_sip: add missing account code</li>
-</ul><br><h4>Category: Codecs/codec_opus</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26538">ASTERISK-26538</a>: codec_opus: Add sample to configs/samples/codecs.conf.sample<br/>Reported by: Kevin Harwell<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=50fa868ab81992dfdfc0f50834fa06cb370290c3">[50fa868ab8]</a> Kevin Harwell -- codecs.conf.sample: Add sample and option descriptions for codec_opus</li>
-</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25063">ASTERISK-25063</a>: [patch]add X.509 subject alternative name support to Asterisk TLS support<br/>Reported by: Maciej Szmigiero<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7b96e8cc3d3db3d30921905203520b4e08b527b8">[7b96e8cc3d]</a> Maciej Szmigiero -- Add X.509 subject alternative name support to TLS certificate</li>
-</ul><br><h4>Category: Resources/res_ari</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26488">ASTERISK-26488</a>: ARI: Add 'ari show app', 'ari show apps', and 'ari set debug' CLI commands<br/>Reported by: Matt Jordan<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=29692d4aa42bc1ce9b737dd0fa4911a2bf5c3ce3">[29692d4aa4]</a> Matt Jordan -- res/stasis: Add CLI commands for displaying/debugging ARI apps</li>
-</ul><br><h4>Category: Resources/res_rtp_asterisk</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26418">ASTERISK-26418</a>: res_rtp_asterisk: Speed up ICE resolution by blacklisting host subnets that are not involved in RTP<br/>Reported by: Michael Walton<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3c62b60e56e5c06ae7d33d81d03268d0d2f6aa28">[3c62b60e56]</a> Michael Walton -- res_rtp_asterisk: Add ice_blacklist option</li>
-</ul><br><hr><a name="open_issues"><h2 align="center">Open Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all open issues from the issue tracker that were referenced by changes that went into this release.</p><h3>Bug</h3><h4>Category: Core/Jitterbuffer</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25270">ASTERISK-25270</a>: chan_sip: rtptimeout doesn't work at all when using JitterBuffers of any kind<br/>Reported by: Florian Loyau<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb30963d222cb1e12af9bbf8dfed58001c9fcaf4">[cb30963d22]</a> Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always updated"</li>
-</ul><br><h4>Category: Core/RTP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25270">ASTERISK-25270</a>: chan_sip: rtptimeout doesn't work at all when using JitterBuffers of any kind<br/>Reported by: Florian Loyau<ul>
-<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb30963d222cb1e12af9bbf8dfed58001c9fcaf4">[cb30963d22]</a> Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always updated"</li>
-</ul><br><hr><a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all changes that went into this release that did not reference a JIRA issue.</p><table width="100%" border="1">
-<tr><th>Revision</th><th>Author</th><th>Summary</th></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f93e55d124da09eb9929303189c4b925c42ad0bb">f93e55d124</a></td><td>Kevin Harwell</td><td>Update for 13.13.0-rc2</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e246b36a3c1f178e57e27c6a5fc40eba5d364c9b">e246b36a3c</a></td><td>gtjoseph</td><td>build:  Backport addition of librt check to configure.ac</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=855f05e525e81012638aed3366559de3c1c9eb86">855f05e525</a></td><td>Kevin Harwell</td><td>Update for 13.13.0</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=751d43e8e4173386be5455311561dfa819a642d3">751d43e8e4</a></td><td>Joshua Colp</td><td>Update for 13.13.0-rc1</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb624b10ae55450ead02f67dbcfb918f3eb2e372">cb624b10ae</a></td><td>Mark Michelson</td><td>Bump ARI version to 1.10.0</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bde3d022a3663e69e1da003f0ed1665a6eabd3fd">bde3d022a3</a></td><td>Mark Michelson</td><td>manager: update minor version</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c92dcc76da6eb57a9c9b9701c6577b0f8dde578f">c92dcc76da</a></td><td>gtjoseph</td><td>file.c/__ast_file_read_dirs:  Fix issues on filesystems without d_type</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0790aa528a902b49de9aff8232ff4c7a97ea6fda">0790aa528a</a></td><td>Matt Jordan</td><td>pjproject: Use a much higher limit for PJ_ICE_MAX_CHECKS</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=993a6f96c7f6e07849af4a923ad3a0497ca854bd">993a6f96c7</a></td><td>Matt Jordan</td><td>apps/app_echo: Only relay a single video source change frame</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=404a62eeeecec486065e45aaaf5a0d58b0adec0a">404a62eeee</a></td><td>gtjoseph</td><td>Revert "Revert "channel: Use frame deferral API for safe sleep.""</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=09d8febc91bc24a9c66c65616cf9a2502a501dcb">09d8febc91</a></td><td>gtjoseph</td><td>Revert "Revert "autoservice: Use frame deferral API""</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ffad2b44dfca5b3ced0265a085ddc67dfb0f86a6">ffad2b44df</a></td><td>gtjoseph</td><td>Revert "Revert "AGI: Only defer frames when in an interception routine.""</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2fefb6187ffe6d92b863ca3c2ee20a4a51554498">2fefb6187f</a></td><td>gtjoseph</td><td>Revert "Revert "Add API for channel frame deferral.""</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=412d43fa213fb7677561e0b0f842b56550440d8c">412d43fa21</a></td><td>Richard Mudgett</td><td>res_pjsip.c: Rework endpt_send_request() req_wrapper code.</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2e7fc56d3cb55b0fe200c0cb8f183e94698cfabc">2e7fc56d3c</a></td><td>Richard Mudgett</td><td>res_pjsip: Fix tdata leaks in off nominal paths.</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=da68b185b3469361c33b47d93455624aac2e5e5d">da68b185b3</a></td><td>Richard Mudgett</td><td>res_pjsip_registrar_expire.c: Remove extra linefeed in debug message.</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6b5a7ced136b7178ae0b2ba39221eba1cd2e37c9">6b5a7ced13</a></td><td>gtjoseph</td><td>Revert "Add API for channel frame deferral."</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6be5d8de0da7e804544507f70382425af9a07b3f">6be5d8de0d</a></td><td>gtjoseph</td><td>Revert "AGI: Only defer frames when in an interception routine."</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1df434e2b4bd7cc34b9b4addf405a3caa7ac16b8">1df434e2b4</a></td><td>gtjoseph</td><td>Revert "autoservice: Use frame deferral API"</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=58c88cfbaa80cb43419cde9186d643d1c5d24baf">58c88cfbaa</a></td><td>gtjoseph</td><td>Revert "channel: Use frame deferral API for safe sleep."</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a562fbe618e0e3b034e7006314b4ea1dfef6d732">a562fbe618</a></td><td>gtjoseph</td><td>build:  Fix default values for some SANITIZER options</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e043d1a55cf356066b3b39ebac8b4bbb612ce807">e043d1a55c</a></td><td>Mark Michelson</td><td>res_pjsip_session: Do not call session supplements when it's too late.</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=44f7e252397fd87420b3374df26941d7436401b3">44f7e25239</a></td><td>Mark Michelson</td><td>channel: Use frame deferral API for safe sleep.</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0ee249075a1433a9afc028d0de82dd9f7748025f">0ee249075a</a></td><td>Alexander Anikin</td><td>chan_ooh323: reset rrq count on gk registration</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=59c23e1768a48825cd628b8c4b59f7eb46b8d364">59c23e1768</a></td><td>Michael Kuron</td><td>automon: restore mixing of the both channels after recording stops</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e79acaeb750ba286786ad122ddf20e9c179c19cf">e79acaeb75</a></td><td>Matt Jordan</td><td>res_http_websocket: Increase the buffer size for non-LOW_MEMORY systems</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7a831969855c3117fa086a9ece9165e04cd1b2d4">7a83196985</a></td><td>Matt Jordan</td><td>res_stasis: Set a video source mode on Stasis created bridges</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eceab15f3339445c37b756c9dbe338f95850741f">eceab15f33</a></td><td>Alexander Anikin</td><td>chan_ooh323: Fix infinite loop on read second part of H.225 packet</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a9992da4aaa4807bac8384ff63e3b3e576d5ad3a">a9992da4aa</a></td><td>gtjoseph</td><td>pjproject_bundled:  Fix issue with libasteriskpj needing libresample</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a36a7d0cf4e73bd9f934e063ee5e4dc057921744">a36a7d0cf4</a></td><td>gtjoseph</td><td>pjproject_bundled:  Fix compile of pjsua so it handles audio</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6b1c55dc9be90904363dbcf958a9fcc243c85629">6b1c55dc9b</a></td><td>gtjoseph</td><td>pjproject_bundled:  Fix issue where "/version.mak" wasn't found</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3a2092b72266b78ab2c10bfac03bf28f207becdc">3a2092b722</a></td><td>gtjoseph</td><td>test_astobj2_thrash:  Fix multithreaded issues</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=640203802ee01354f5aacfa13cb035dfeb681b4c">640203802e</a></td><td>Pascal Cadotte Michaud</td><td>typo: s/paranthesis/parenthesis/ in a comment</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9b3557e0543233ce8dad27f3718a02025d1212b1">9b3557e054</a></td><td>gtjoseph</td><td>pjproject_bundled:  Fixed various build issues</td></tr>
-<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=74d9385273e914e3349cab63b7e478a0956bcf8a">74d9385273</a></td><td>gtjoseph</td><td>utils.c:  Fix ast_set_default_eid for multiple platforms</td></tr>
-</table><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>asterisk-13.12.0-summary.html                                                            |  543 ----
-asterisk-13.12.0-summary.txt                                                             | 1275 ---------
-b/.version                                                                               |    2
-b/CHANGES                                                                                |   95
-b/ChangeLog                                                                              | 1314 +++++++++-
-b/addons/ooh323c/src/ooCalls.c                                                           |    3
-b/addons/ooh323c/src/ooGkClient.c                                                        |    1
-b/addons/ooh323c/src/oochannels.c                                                        |   43
-b/addons/ooh323c/src/ooq931.c                                                            |    5
-b/apps/app_dial.c                                                                        |    1
-b/apps/app_echo.c                                                                        |    3
-b/apps/app_queue.c                                                                       |   13
-b/apps/app_voicemail.c                                                                   |    2
-b/asterisk-13.13.0-rc2-summary.html                                                      |   23
-b/asterisk-13.13.0-rc2-summary.txt                                                       |   92
-b/bridges/bridge_builtin_features.c                                                      |    2
-b/bridges/bridge_softmix.c                                                               |   28
-b/channels/chan_pjsip.c                                                                  |  237 +
-b/channels/chan_rtp.c                                                                    |    2
-b/channels/chan_sip.c                                                                    |   18
-b/channels/chan_unistim.c                                                                |   11
-b/configs/basic-pbx/pjsip.conf                                                           |    3
-b/configs/samples/asterisk.conf.sample                                                   |    9
-b/configs/samples/codecs.conf.sample                                                     |   54
-b/configs/samples/pjsip.conf.sample                                                      |   11
-b/configs/samples/rtp.conf.sample                                                        |   12
-b/configure                                                                              |  366 ++
-b/configure.ac                                                                           |   16
-b/contrib/ast-db-manage/config/versions/4468b4a91372_add_pjsip_asymmetric_rtp_codec.py   |   31
-b/contrib/realtime/mssql/mssql_config.sql                                                |   14
-b/contrib/realtime/mysql/mysql_config.sql                                                |    6
-b/contrib/realtime/oracle/oracle_config.sql                                              |   14
-b/contrib/realtime/postgresql/postgresql_config.sql                                      |    6
-b/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py                                           |    2
-b/doc/appdocsxml.xslt                                                                    |   20
-b/include/asterisk.h                                                                     |    9
-b/include/asterisk/_private.h                                                            |    1
-b/include/asterisk/autoconfig.h.in                                                       |    9
-b/include/asterisk/bridge.h                                                              |    9
-b/include/asterisk/channel.h                                                             |   61
-b/include/asterisk/channel_internal.h                                                    |    2
-b/include/asterisk/file.h                                                                |   28
-b/include/asterisk/manager.h                                                             |    2
-b/include/asterisk/module.h                                                              |    7
-b/include/asterisk/options.h                                                             |    2
-b/include/asterisk/res_pjsip.h                                                           |    2
-b/include/asterisk/rtp_engine.h                                                          |    3
-b/include/asterisk/stasis_app.h                                                          |   10
-b/include/asterisk/stasis_bridges.h                                                      |    4
-b/include/asterisk/tcptls.h                                                              |    1
-b/include/asterisk/vector.h                                                              |    8
-b/main/Makefile                                                                          |   13
-b/main/asterisk.c                                                                        |   48
-b/main/astobj2.c                                                                         |    4
-b/main/autoservice.c                                                                     |   66
-b/main/bridge.c                                                                          |   34
-b/main/bridge_channel.c                                                                  |    3
-b/main/cdr.c                                                                             |   19
-b/main/channel.c                                                                         |  160 -
-b/main/channel_internal_api.c                                                            |   29
-b/main/cli.c                                                                             |   14
-b/main/codec_builtin.c                                                                   |   16
-b/main/features_config.c                                                                 |    2
-b/main/file.c                                                                            |  137 +
-b/main/format_cap.c                                                                      |    2
-b/main/loader.c                                                                          |    5
-b/main/manager_bridges.c                                                                 |   52
-b/main/manager_channels.c                                                                |   11
-b/main/netsock.c                                                                         |    2
-b/main/rtp_engine.c                                                                      |   87
-b/main/stasis_bridges.c                                                                  |   29
-b/main/tcptls.c                                                                          |   67
-b/main/utils.c                                                                           |  244 +
-b/makeopts.in                                                                            |    2
-b/menuselect/aclocal.m4                                                                  |  281 ++
-b/menuselect/configure                                                                   |  197 +
-b/menuselect/configure.ac                                                                |    9
-b/res/ari/ari_model_validators.c                                                         |  463 +++
-b/res/ari/ari_model_validators.h                                                         |   65
-b/res/ari/ari_websockets.c                                                               |    2
-b/res/ari/resource_bridges.c                                                             |   66
-b/res/ari/resource_bridges.h                                                             |   28
-b/res/ari/resource_channels.c                                                            |    7
-b/res/res_agi.c                                                                          |   38
-b/res/res_ari_bridges.c                                                                  |  146 +
-b/res/res_ari_channels.c                                                                 |    2
-b/res/res_format_attr_opus.c                                                             |   10
-b/res/res_http_websocket.c                                                               |   19
-b/res/res_pjsip.c                                                                        |  137 -
-b/res/res_pjsip/include/res_pjsip_private.h                                              |   14
-b/res/res_pjsip/pjsip_configuration.c                                                    |    1
-b/res/res_pjsip/pjsip_message_ip_updater.c                                               |  303 ++
-b/res/res_pjsip_caller_id.c                                                              |   14
-b/res/res_pjsip_outbound_authenticator_digest.c                                          |   13
-b/res/res_pjsip_outbound_registration.c                                                  |    2
-b/res/res_pjsip_pubsub.c                                                                 |   20
-b/res/res_pjsip_registrar_expire.c                                                       |    2
-b/res/res_pjsip_sdp_rtp.c                                                                |   54
-b/res/res_pjsip_session.c                                                                |   15
-b/res/res_pjsip_t38.c                                                                    |   13
-b/res/res_rtp_asterisk.c                                                                 |  107
-b/res/res_stasis.c                                                                       |   22
-b/res/stasis/app.c                                                                       |  105
-b/res/stasis/app.h                                                                       |   26
-b/res/stasis/cli.c                                                                       |  216 +
-b/res/stasis/cli.h                                                                       |   43
-b/res/stasis_recording/stored.c                                                          |  217 -
-b/rest-api/api-docs/applications.json                                                    |    2
-b/rest-api/api-docs/asterisk.json                                                        |    2
-b/rest-api/api-docs/bridges.json                                                         |   84
-b/rest-api/api-docs/channels.json                                                        |   10
-b/rest-api/api-docs/deviceStates.json                                                    |    2
-b/rest-api/api-docs/endpoints.json                                                       |    2
-b/rest-api/api-docs/events.json                                                          |   22
-b/rest-api/api-docs/mailboxes.json                                                       |    2
-b/rest-api/api-docs/playbacks.json                                                       |    2
-b/rest-api/api-docs/recordings.json                                                      |    2
-b/rest-api/api-docs/sounds.json                                                          |    2
-b/rest-api/resources.json                                                                |    2
-b/tests/test_astobj2_thrash.c                                                            |   11
-b/tests/test_file.c                                                                      |  197 +
-b/tests/test_res_stasis.c                                                                |    6
-b/third-party/pjproject/Makefile                                                         |   75
-b/third-party/pjproject/Makefile.rules                                                   |   10
-b/third-party/pjproject/apply_patches                                                    |    4
-b/third-party/pjproject/configure.m4                                                     |    5
-b/third-party/pjproject/patches/0000-remove-third-party.patch                            |  142 +
-b/third-party/pjproject/patches/0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch |  134 +
-b/third-party/pjproject/patches/0006-r5473-svn-backport-Fix-pending-query.patch          |   28
-b/third-party/pjproject/patches/0006-r5475-svn-backport-Remove-DNS-cache-entry.patch     |   70
-res/res_pjsip_multihomed.c                                                               |  225 -
-131 files changed, 6383 insertions(+), 2796 deletions(-)</pre><br></html>
\ No newline at end of file
diff --git a/asterisk-13.13.0-summary.txt b/asterisk-13.13.0-summary.txt
deleted file mode 100644 (file)
index d14d5e3..0000000
+++ /dev/null
@@ -1,767 +0,0 @@
-                                Release Summary
-
-                                asterisk-13.13.0
-
-                                Date: 2016-11-23
-
-                           <asteriskteam@digium.com>
-
-     ----------------------------------------------------------------------
-
-                               Table of Contents
-
-    1. Summary
-    2. Contributors
-    3. Closed Issues
-    4. Open Issues
-    5. Other Changes
-    6. Diffstat
-
-     ----------------------------------------------------------------------
-
-                                    Summary
-
-                                 [Back to Top]
-
-   This release is a point release of an existing major version. The changes
-   included were made to address problems that have been identified in this
-   release series, or are minor, backwards compatible new features or
-   improvements. Users should be able to safely upgrade to this version if
-   this release series is already in use. Users considering upgrading from a
-   previous version are strongly encouraged to review the UPGRADE.txt
-   document as well as the CHANGES document for information about upgrading
-   to this release series.
-
-   The data in this summary reflects changes that have been made since the
-   previous release, asterisk-13.12.0.
-
-     ----------------------------------------------------------------------
-
-                                  Contributors
-
-                                 [Back to Top]
-
-   This table lists the people who have submitted code, those that have
-   tested patches, as well as those that reported issues on the issue tracker
-   that were resolved in this release. For coders, the number is how many of
-   their patches (of any size) were committed into this release. For testers,
-   the number is the number of times their name was listed as assisting with
-   testing a patch. Finally, for reporters, the number is the number of
-   issues that they reported that were affected by commits that went into
-   this release.
-
-   Coders                   Testers           Reporters                       
-   21 gtjoseph              1 Dmitry Melekhov 7 Matt Jordan                   
-   11 Joshua Colp                             5 Alexander Traud               
-   10 Matt Jordan                             4 Morten Tryfoss                
-   10 Mark Michelson                          4 scgm11                        
-   7 Richard Mudgett                          4 Joshua Colp                   
-   5 Kevin Harwell                            3 George Joseph                 
-   3 Tzafrir Cohen                            3 Richard Mudgett               
-   3 Alexander Traud                          2 Gabriele Giacone              
-   3 Corey Farrell                            <1o5g4r8o@gmail.com>            
-   3 Alexander Anikin                         2 Andrew Nagy                   
-   2 Sebastian Gutierrez                      1 Rusty Newton                  
-   1 Michael Walton                           1 Dmitry Melekhov               
-   1 Etienne Lessard                          1 Andreas Wetzel                
-   1 Leandro Dardini                          1 Ian Gilmour                   
-   1 snuffy                                   1 Alexei Gradinari              
-   1 Pascal Cadotte Michaud                   1 Bill Brigden                  
-   1 Maciej Szmigiero                         1 Andrew Nagy                   
-   1 Michael Kuron                            1 Sergey Grachev                
-   1 Rusty Newton                             1 snuffy                        
-   1 Grachev Sergey                           1 Daniele Pallastrelli          
-   1 Alexei Gradinari                         1 Kevin Harwell                 
-   1 Igor Goncharovskiy                       1 Kayode                        
-   1 Moises Silva                             1 Michael Keuter                
-                                              1 Dmitry Melekhov               
-                                              1 Harley Peters                 
-                                              1 Corey Farrell                 
-                                              1 Leandro Dardini               
-                                              1 Jonathan Harris               
-                                              1 Badalian Vyacheslav           
-                                              1 Doug Lytle                    
-                                              1 scgm11                        
-                                              1 Richard Mudgett               
-                                              1 Maciej Szmigiero              
-                                              1 Etienne Lessard               
-                                              1 Tzafrir Cohen                 
-                                              1 John Kiniston                 
-                                              1 Jason                         
-                                              1 Florian Loyau                 
-                                              1 Ian Gilmour                   
-                                              1 Michael Walton                
-                                              1 Morton Tryfoss                
-
-     ----------------------------------------------------------------------
-
-                                 Closed Issues
-
-                                 [Back to Top]
-
-   This is a list of all issues from the issue tracker that were closed by
-   changes that went into this release.
-
-  New Feature
-
-    Category: General
-
-   ASTERISK-26595: ARI: Add the ability to control the source of video in a
-   multi-party mixing bridge
-   Reported by: Matt Jordan
-     * [d23b4af477] Matt Jordan -- res/ari/resource_bridges: Add the ability
-       to manipulate the video source
-   ASTERISK-26470: ARI: Add an 'asterisk_id' field to outgoing events
-   Reported by: Matt Jordan
-     * [42cfdcd1b7] Matt Jordan -- res/ari: Add the Asterisk EID field to
-       outgoing events
-
-  Bug
-
-    Category: Addons/chan_ooh323
-
-   ASTERISK-24400: ooh323 sends wrong hangup code
-   Reported by: Dmitry Melekhov
-     * [a9ac1f5de4] Alexander Anikin -- chan_ooh323: Fixes to work right with
-       Cisco devices
-
-    Category: Applications/app_dial
-
-   ASTERISK-26549: app_dial: When PickupChan() is used some channels may have
-   incorrect device state
-   Reported by: Joshua Colp
-     * [d971647949] Joshua Colp -- app_dial: Fix incorrect device state when
-       channel is picked up.
-
-    Category: Applications/app_queue
-
-   ASTERISK-26462: [patch] app_queue: While using queues with realtime,
-   setting back to an empty context doesn't stop the exit key usage
-   Reported by: Leandro Dardini
-     * [0306869399] Leandro Dardini -- app_queue: Added initialization for
-       "context" parameter
-
-    Category: Applications/app_voicemail
-
-   ASTERISK-26503: app_voicemail: Asterisk crashes when MailboxExists is used
-   Reported by: Doug Lytle
-     * [14496ce1e5] Joshua Colp -- app_voicemail: Clear voice mailbox in
-       MailboxExists and MAILBOX_EXISTS.
-
-    Category: Bridges/bridge_softmix
-
-   ASTERISK-26555: Multi-party Video: Fix some post Asterisk-11 regressions
-   Reported by: Matt Jordan
-     * [e7dc536b7a] Matt Jordan -- main/bridge_channel: Fix channel reference
-       leak on video source
-     * [7c824b955d] Matt Jordan -- main/bridge: Add some verbose logging for
-       video source changes
-     * [fd6af2dee8] Matt Jordan -- bridges/bridge_softmix: Remove SSRC
-       changes on join/leave; update video source
-
-    Category: Channels/chan_dahdi
-
-   ASTERISK-26412: build: Prepare for gcc 6.2
-   Reported by: George Joseph
-     * [bd4d7d8ad0] Kevin Harwell -- stasis_recording/stored: remove calls to
-       deprecated readdir_r function.
-
-    Category: Channels/chan_multicast_rtp
-
-   ASTERISK-26439: chan_rtp: Crash when originating
-   Reported by: Kayode
-     * [644fad7477] Moises Silva -- chan_rtp: Set a sane default rtp engine
-       for unicast.
-
-    Category: Channels/chan_pjsip
-
-   ASTERISK-26516: pjsip: Memory corruption with possible memory leak.
-   Reported by: Richard Mudgett
-     * [e632222bc4] Richard Mudgett --
-       res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.
-     * [afecb2cfc0] Richard Mudgett -- bundled pjproject: Fix DNS write to
-       freed memory.
-   ASTERISK-26444: 'features show' command in CLI does not return prompt.
-   Reported by: John Kiniston
-     * [c2036c827c] snuffy -- Fix issue with CLI not returning to prompt
-       after running "features show"
-   ASTERISK-26482: [patch] chan_pjsip: segfault on already disconnected
-   session
-   Reported by: Alexei Gradinari
-     * [6d462b9eaf] Alexei Gradinari -- chan_pjsip: segfault on already
-       disconnected session
-
-    Category: Channels/chan_sip/General
-
-   ASTERISK-26523: chan_sip: Asterisk 13.12.1 disconnects incoming calls
-   after 2 minutes - rtptimeout behaving badly - regression
-   Reported by: Michael Keuter
-     * [cb30963d22] Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always
-       updated"
-   ASTERISK-26476: chan_sip: Incorrect display option "Outbound reg. retry
-   403" in "sip show settings"
-   Reported by: Sergey Grachev
-     * [b3f10b7b94] Grachev Sergey -- chan_sip: Incorrect display option
-       Outbound reg. retry 403
-   ASTERISK-26457: [patch] force_rport,auto_comedia: No NAT detection
-   triggered.
-   Reported by: Alexander Traud
-     * [a859bcb49c] Alexander Traud -- chan_sip: Support nat=auto_comedia or
-       nat=force_rport,auto_comedia.
-
-    Category: Channels/chan_unistim
-
-   ASTERISK-26565: chan_unistim on 11, 13, 14 placing call on hold
-   temporarily locks up set
-   Reported by: Jason
-     * [3faca1d4ff] Igor Goncharovskiy -- Fix closing rtp ports after call
-       finished in chan_unistim.
-
-    Category: Codecs/codec_opus
-
-   ASTERISK-26520: codec_opus: Generated fmtp line has no content
-   Reported by: scgm11
-     * [2c031b67d3] Mark Michelson -- res_format_attr_opus: Fix fmtp
-       generation.
-
-    Category: Core/AstMM
-
-   ASTERISK-26526: [UBSAN] vector.h: null pointer can be passed as argument 2
-   to memcpy
-   Reported by: Badalian Vyacheslav
-     * [30b1bc77d2] Corey Farrell -- vector: Prevent NULL argument to memcpy.
-   ASTERISK-26524: astobj2: data_size variable is wasted space when AO2_DEBUG
-   is not enabled.
-   Reported by: Corey Farrell
-     * [b96f18560b] Corey Farrell -- astobj2: Declare private variable
-       data_size for AO2_DEBUG only.
-
-    Category: Core/Bridging
-
-   ASTERISK-26555: Multi-party Video: Fix some post Asterisk-11 regressions
-   Reported by: Matt Jordan
-     * [e7dc536b7a] Matt Jordan -- main/bridge_channel: Fix channel reference
-       leak on video source
-     * [7c824b955d] Matt Jordan -- main/bridge: Add some verbose logging for
-       video source changes
-     * [fd6af2dee8] Matt Jordan -- bridges/bridge_softmix: Remove SSRC
-       changes on join/leave; update video source
-
-    Category: Core/BuildSystem
-
-   ASTERISK-26608: Compile and link failures on OpenBSD
-   Reported by: snuffy
-     * [b213045fe4] gtjoseph -- build: Various OpenBSD issues
-   ASTERISK-26592: Latest libedit (3.1) defaults to unicode and makes
-   asterisk CLI read garbage
-   Reported by: George Joseph
-     * [5e0c224043] gtjoseph -- cli: Fix ast_el_read_char to work with
-       libedit >= 3.1
-   ASTERISK-22480: Embedded pjproject: build.mak contains hardcoded full path
-   to version.mak
-   Reported by: Matt Jordan
-     * [61a5c3460e] gtjoseph -- pjproject_bundled: Remove usage of tar's
-       --strip-components option
-   ASTERISK-26356: menuselect: invalid test for GTK2
-   Reported by: Tzafrir Cohen
-     * [6f5880913f] Tzafrir Cohen -- menuselect: invalid test for GTK2
-
-    Category: Core/CodecInterface
-
-   ASTERISK-26605: codec_opus: Spammed warning when Opus negotiated but
-   codec_opus not loaded.
-   Reported by: Richard Mudgett
-     * [ed0f1afc8c] Richard Mudgett -- codec_opus: Fix warning when Opus
-       negotiated but codec_opus not loaded.
-
-    Category: Core/General
-
-   ASTERISK-26605: codec_opus: Spammed warning when Opus negotiated but
-   codec_opus not loaded.
-   Reported by: Richard Mudgett
-     * [ed0f1afc8c] Richard Mudgett -- codec_opus: Fix warning when Opus
-       negotiated but codec_opus not loaded.
-   ASTERISK-26509: A few non-critical deprecation warnings when building on
-   Ubuntu 16.10
-   Reported by: Jonathan Harris
-     * [bd4d7d8ad0] Kevin Harwell -- stasis_recording/stored: remove calls to
-       deprecated readdir_r function.
-
-    Category: Core/ManagerInterface
-
-   ASTERISK-26537: AMI: NewConnectedLine event is not documented
-   Reported by: Etienne Lessard
-     * [42bd70b29f] Etienne Lessard -- manager: Add documentation for
-       NewConnectedLine event.
-
-    Category: Core/RTP
-
-   ASTERISK-26311: [patch] rtp_engine: Allow more than 32 dynamic payload
-   types.
-   Reported by: Alexander Traud
-     * [0cf1778eed] Alexander Traud -- rtp_engine: Allow more than 32 dynamic
-       payload types.
-
-    Category: Core/Stasis
-
-   ASTERISK-26468: ari: Bridge events stop working after this sequence of ARI
-   calls
-   Reported by: Daniele Pallastrelli
-     * [3a1f9c5dab] Joshua Colp -- res_stasis: Don't unsubscribe from a NULL
-       bridge.
-
-    Category: Documentation
-
-   ASTERISK-26514: Super Awesome Company: Don't specify transport in
-   pjsip.conf
-   Reported by: Rusty Newton
-     * [87903a6848] Rusty Newton -- SAC documentation: don't specify
-       transports for endpoints and registrations
-
-    Category: Features
-
-   ASTERISK-26444: 'features show' command in CLI does not return prompt.
-   Reported by: John Kiniston
-     * [c2036c827c] snuffy -- Fix issue with CLI not returning to prompt
-       after running "features show"
-
-    Category: General
-
-   ASTERISK-26575: testsuite: Need to check PJSIP functionality when res_srtp
-   is not loaded.
-   Reported by: Joshua Colp
-     * [b70eb07c53] Joshua Colp -- res_pjsip_sdp_rtp: Reject offer of
-       required SRTP without res_srtp.
-   ASTERISK-25070: Fix FTBFS on Hurd
-   Reported by: Gabriele Giacone
-     * [94c9496ed5] Tzafrir Cohen -- netsock.c: fix includes for HURD
-     * [c1c9487375] Tzafrir Cohen -- define PATH_MAX for HURD
-   ASTERISK-26387: Asterisk segfaults shortly after starting even with no
-   active calls.
-   Reported by: Harley Peters
-     * [d7f457e4c1] Richard Mudgett -- bundled pjproject: Crashes while
-       resolving DNS names.
-   ASTERISK-26513: tests/channels/pjsip/qualify/auth: Crashing enough to be a
-   nuisance
-   Reported by: Joshua Colp
-     * [f373de3020] Corey Farrell -- Fix shutdown crash caused by modules
-       being left open.
-   ASTERISK-26421: Segmentation Fault with ARI originate into mixing bridge
-   with 43 clients
-   Reported by: Andrew Nagy
-     * [eff97808fb] Mark Michelson -- ARI: Detect duplicate channel IDs
-     * [012fda29d2] Mark Michelson -- CDR: Alter destruction pattern for CDR
-       chains.
-   ASTERISK-26480: [patch] CLI: core set debug: Auto-completes File not
-   Module
-   Reported by: Alexander Traud
-     * [662b560c35] Alexander Traud -- cli: Auto-complete File not Module for
-       core set debug.
-
-    Category: Resources/res_agi
-
-   ASTERISK-26343: ASTERISK-25951 causes issues for callerid manipulation
-   through agi
-   Reported by: Morten Tryfoss
-     * [404596b790] gtjoseph -- channel: Fix issues in hangup scenarios
-       caused by frame deferral
-     * [2e3a354575] Mark Michelson -- autoservice: Use frame deferral API
-     * [5c10091f3d] Mark Michelson -- AGI: Only defer frames when in an
-       interception routine.
-     * [9231a56cf3] Mark Michelson -- Add API for channel frame deferral.
-
-    Category: Resources/res_ari_bridges
-
-   ASTERISK-26468: ari: Bridge events stop working after this sequence of ARI
-   calls
-   Reported by: Daniele Pallastrelli
-     * [3a1f9c5dab] Joshua Colp -- res_stasis: Don't unsubscribe from a NULL
-       bridge.
-
-    Category: Resources/res_pjsip
-
-   ASTERISK-26516: pjsip: Memory corruption with possible memory leak.
-   Reported by: Richard Mudgett
-     * [e632222bc4] Richard Mudgett --
-       res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.
-     * [afecb2cfc0] Richard Mudgett -- bundled pjproject: Fix DNS write to
-       freed memory.
-
-    Category: Resources/res_pjsip_caller_id
-
-   ASTERISK-26307: res_pjsip_caller_id: Crash on outgoing change
-   Reported by: Bill Brigden
-     * [675c71ae8c] Joshua Colp -- res_pjsip_caller_id: Fix crash on session
-       timers UPDATE on inbound calls.
-
-    Category: Resources/res_pjsip_sdp_rtp
-
-   ASTERISK-26541: res_pjsip_sdp_rtp: Restrict number of formats to maximum
-   Reported by: Joshua Colp
-     * [5f188bb7a8] Joshua Colp -- res_pjsip_sdp_rtp: Limit number of formats
-       to defined maximum.
-   ASTERISK-26423: res_pjsip_sdp_rtp: Asymmetric RTP codec can cause audio
-   loss and wonkiness
-   Reported by: Andreas Wetzel
-     * [e0bc17edff] Joshua Colp -- pjsip: Fix a few media bugs with reinvites
-       and asymmetric payloads.
-   ASTERISK-26309: [patch] res_pjsip: Allow IPv4/IPv6 (Dual Stack)
-   installations.
-   Reported by: Alexander Traud
-     * [f534f67f52] Joshua Colp -- res_pjsip_sdp_rtp: Fix address family of
-       explicit media_address.
-     * [bb982480d8] Joshua Colp -- pjsip: Support dual stack automatically.
-
-    Category: Resources/res_rtp_multicast
-
-   ASTERISK-26439: chan_rtp: Crash when originating
-   Reported by: Kayode
-     * [644fad7477] Moises Silva -- chan_rtp: Set a sane default rtp engine
-       for unicast.
-
-    Category: Third-Party/pjproject
-
-   ASTERISK-26510: pjproject_bundled uses the --strip-components option of
-   tar which isn't supported in older versions
-   Reported by: George Joseph
-     * [61a5c3460e] gtjoseph -- pjproject_bundled: Remove usage of tar's
-       --strip-components option
-
-    Category: pjproject/pjsip
-
-   ASTERISK-26344: Asterisk 13.11.0 + PJSIP crash
-   Reported by: Ian Gilmour
-     * [d7f457e4c1] Richard Mudgett -- bundled pjproject: Crashes while
-       resolving DNS names.
-
-  Improvement
-
-    Category: Applications/app_queue
-
-   ASTERISK-26558: app_queue: add variable to know if the call is not
-   answered after a queue
-   Reported by: scgm11
-     * [71dc333565] Joshua Colp -- app_queue: Add mention of 'ABANDON'
-       variable to CHANGES.
-     * [7fd5031c1c] Sebastian Gutierrez -- app_queue: new variable set when
-       abandoned
-
-    Category: Channels/chan_sip/General
-
-   ASTERISK-26176: chan_sip: Add AccountCode to AMI PeerEntry
-   Reported by: scgm11
-     * [714412f6c4] Sebastian Gutierrez -- chan_sip: add missing account code
-
-    Category: Codecs/codec_opus
-
-   ASTERISK-26538: codec_opus: Add sample to
-   configs/samples/codecs.conf.sample
-   Reported by: Kevin Harwell
-     * [50fa868ab8] Kevin Harwell -- codecs.conf.sample: Add sample and
-       option descriptions for codec_opus
-
-    Category: Core/General
-
-   ASTERISK-25063: [patch]add X.509 subject alternative name support to
-   Asterisk TLS support
-   Reported by: Maciej Szmigiero
-     * [7b96e8cc3d] Maciej Szmigiero -- Add X.509 subject alternative name
-       support to TLS certificate
-
-    Category: Resources/res_ari
-
-   ASTERISK-26488: ARI: Add 'ari show app', 'ari show apps', and 'ari set
-   debug' CLI commands
-   Reported by: Matt Jordan
-     * [29692d4aa4] Matt Jordan -- res/stasis: Add CLI commands for
-       displaying/debugging ARI apps
-
-    Category: Resources/res_rtp_asterisk
-
-   ASTERISK-26418: res_rtp_asterisk: Speed up ICE resolution by blacklisting
-   host subnets that are not involved in RTP
-   Reported by: Michael Walton
-     * [3c62b60e56] Michael Walton -- res_rtp_asterisk: Add ice_blacklist
-       option
-
-     ----------------------------------------------------------------------
-
-                                  Open Issues
-
-                                 [Back to Top]
-
-   This is a list of all open issues from the issue tracker that were
-   referenced by changes that went into this release.
-
-  Bug
-
-    Category: Core/Jitterbuffer
-
-   ASTERISK-25270: chan_sip: rtptimeout doesn't work at all when using
-   JitterBuffers of any kind
-   Reported by: Florian Loyau
-     * [cb30963d22] Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always
-       updated"
-
-    Category: Core/RTP
-
-   ASTERISK-25270: chan_sip: rtptimeout doesn't work at all when using
-   JitterBuffers of any kind
-   Reported by: Florian Loyau
-     * [cb30963d22] Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always
-       updated"
-
-     ----------------------------------------------------------------------
-
-                      Commits Not Associated with an Issue
-
-                                 [Back to Top]
-
-   This is a list of all changes that went into this release that did not
-   reference a JIRA issue.
-
-   +------------------------------------------------------------------------+
-   | Revision   | Author          | Summary                                 |
-   |------------+-----------------+-----------------------------------------|
-   | f93e55d124 | Kevin Harwell   | Update for 13.13.0-rc2                  |
-   |------------+-----------------+-----------------------------------------|
-   | e246b36a3c | gtjoseph        | build: Backport addition of librt check |
-   |            |                 | to configure.ac                         |
-   |------------+-----------------+-----------------------------------------|
-   | 855f05e525 | Kevin Harwell   | Update for 13.13.0                      |
-   |------------+-----------------+-----------------------------------------|
-   | 751d43e8e4 | Joshua Colp     | Update for 13.13.0-rc1                  |
-   |------------+-----------------+-----------------------------------------|
-   | cb624b10ae | Mark Michelson  | Bump ARI version to 1.10.0              |
-   |------------+-----------------+-----------------------------------------|
-   | bde3d022a3 | Mark Michelson  | manager: update minor version           |
-   |------------+-----------------+-----------------------------------------|
-   | c92dcc76da | gtjoseph        | file.c/__ast_file_read_dirs: Fix issues |
-   |            |                 | on filesystems without d_type           |
-   |------------+-----------------+-----------------------------------------|
-   | 0790aa528a | Matt Jordan     | pjproject: Use a much higher limit for  |
-   |            |                 | PJ_ICE_MAX_CHECKS                       |
-   |------------+-----------------+-----------------------------------------|
-   | 993a6f96c7 | Matt Jordan     | apps/app_echo: Only relay a single      |
-   |            |                 | video source change frame               |
-   |------------+-----------------+-----------------------------------------|
-   | 404a62eeee | gtjoseph        | Revert "Revert "channel: Use frame      |
-   |            |                 | deferral API for safe sleep.""          |
-   |------------+-----------------+-----------------------------------------|
-   | 09d8febc91 | gtjoseph        | Revert "Revert "autoservice: Use frame  |
-   |            |                 | deferral API""                          |
-   |------------+-----------------+-----------------------------------------|
-   | ffad2b44df | gtjoseph        | Revert "Revert "AGI: Only defer frames  |
-   |            |                 | when in an interception routine.""      |
-   |------------+-----------------+-----------------------------------------|
-   | 2fefb6187f | gtjoseph        | Revert "Revert "Add API for channel     |
-   |            |                 | frame deferral.""                       |
-   |------------+-----------------+-----------------------------------------|
-   | 412d43fa21 | Richard Mudgett | res_pjsip.c: Rework                     |
-   |            |                 | endpt_send_request() req_wrapper code.  |
-   |------------+-----------------+-----------------------------------------|
-   | 2e7fc56d3c | Richard Mudgett | res_pjsip: Fix tdata leaks in off       |
-   |            |                 | nominal paths.                          |
-   |------------+-----------------+-----------------------------------------|
-   | da68b185b3 | Richard Mudgett | res_pjsip_registrar_expire.c: Remove    |
-   |            |                 | extra linefeed in debug message.        |
-   |------------+-----------------+-----------------------------------------|
-   | 6b5a7ced13 | gtjoseph        | Revert "Add API for channel frame       |
-   |            |                 | deferral."                              |
-   |------------+-----------------+-----------------------------------------|
-   | 6be5d8de0d | gtjoseph        | Revert "AGI: Only defer frames when in  |
-   |            |                 | an interception routine."               |
-   |------------+-----------------+-----------------------------------------|
-   | 1df434e2b4 | gtjoseph        | Revert "autoservice: Use frame deferral |
-   |            |                 | API"                                    |
-   |------------+-----------------+-----------------------------------------|
-   | 58c88cfbaa | gtjoseph        | Revert "channel: Use frame deferral API |
-   |            |                 | for safe sleep."                        |
-   |------------+-----------------+-----------------------------------------|
-   | a562fbe618 | gtjoseph        | build: Fix default values for some      |
-   |            |                 | SANITIZER options                       |
-   |------------+-----------------+-----------------------------------------|
-   | e043d1a55c | Mark Michelson  | res_pjsip_session: Do not call session  |
-   |            |                 | supplements when it's too late.         |
-   |------------+-----------------+-----------------------------------------|
-   | 44f7e25239 | Mark Michelson  | channel: Use frame deferral API for     |
-   |            |                 | safe sleep.                             |
-   |------------+-----------------+-----------------------------------------|
-   | 0ee249075a | Alexander       | chan_ooh323: reset rrq count on gk      |
-   |            | Anikin          | registration                            |
-   |------------+-----------------+-----------------------------------------|
-   | 59c23e1768 | Michael Kuron   | automon: restore mixing of the both     |
-   |            |                 | channels after recording stops          |
-   |------------+-----------------+-----------------------------------------|
-   | e79acaeb75 | Matt Jordan     | res_http_websocket: Increase the buffer |
-   |            |                 | size for non-LOW_MEMORY systems         |
-   |------------+-----------------+-----------------------------------------|
-   | 7a83196985 | Matt Jordan     | res_stasis: Set a video source mode on  |
-   |            |                 | Stasis created bridges                  |
-   |------------+-----------------+-----------------------------------------|
-   | eceab15f33 | Alexander       | chan_ooh323: Fix infinite loop on read  |
-   |            | Anikin          | second part of H.225 packet             |
-   |------------+-----------------+-----------------------------------------|
-   | a9992da4aa | gtjoseph        | pjproject_bundled: Fix issue with       |
-   |            |                 | libasteriskpj needing libresample       |
-   |------------+-----------------+-----------------------------------------|
-   | a36a7d0cf4 | gtjoseph        | pjproject_bundled: Fix compile of pjsua |
-   |            |                 | so it handles audio                     |
-   |------------+-----------------+-----------------------------------------|
-   | 6b1c55dc9b | gtjoseph        | pjproject_bundled: Fix issue where      |
-   |            |                 | "/version.mak" wasn't found             |
-   |------------+-----------------+-----------------------------------------|
-   | 3a2092b722 | gtjoseph        | test_astobj2_thrash: Fix multithreaded  |
-   |            |                 | issues                                  |
-   |------------+-----------------+-----------------------------------------|
-   | 640203802e | Pascal Cadotte  | typo: s/paranthesis/parenthesis/ in a   |
-   |            | Michaud         | comment                                 |
-   |------------+-----------------+-----------------------------------------|
-   | 9b3557e054 | gtjoseph        | pjproject_bundled: Fixed various build  |
-   |            |                 | issues                                  |
-   |------------+-----------------+-----------------------------------------|
-   | 74d9385273 | gtjoseph        | utils.c: Fix ast_set_default_eid for    |
-   |            |                 | multiple platforms                      |
-   +------------------------------------------------------------------------+
-
-     ----------------------------------------------------------------------
-
-                                Diffstat Results
-
-                                 [Back to Top]
-
-   This is a summary of the changes to the source code that went into this
-   release that was generated using the diffstat utility.
-
- asterisk-13.12.0-summary.html                                                            |  543 ----
- asterisk-13.12.0-summary.txt                                                             | 1275 ---------
- b/.version                                                                               |    2
- b/CHANGES                                                                                |   95
- b/ChangeLog                                                                              | 1314 +++++++++-
- b/addons/ooh323c/src/ooCalls.c                                                           |    3
- b/addons/ooh323c/src/ooGkClient.c                                                        |    1
- b/addons/ooh323c/src/oochannels.c                                                        |   43
- b/addons/ooh323c/src/ooq931.c                                                            |    5
- b/apps/app_dial.c                                                                        |    1
- b/apps/app_echo.c                                                                        |    3
- b/apps/app_queue.c                                                                       |   13
- b/apps/app_voicemail.c                                                                   |    2
- b/asterisk-13.13.0-rc2-summary.html                                                      |   23
- b/asterisk-13.13.0-rc2-summary.txt                                                       |   92
- b/bridges/bridge_builtin_features.c                                                      |    2
- b/bridges/bridge_softmix.c                                                               |   28
- b/channels/chan_pjsip.c                                                                  |  237 +
- b/channels/chan_rtp.c                                                                    |    2
- b/channels/chan_sip.c                                                                    |   18
- b/channels/chan_unistim.c                                                                |   11
- b/configs/basic-pbx/pjsip.conf                                                           |    3
- b/configs/samples/asterisk.conf.sample                                                   |    9
- b/configs/samples/codecs.conf.sample                                                     |   54
- b/configs/samples/pjsip.conf.sample                                                      |   11
- b/configs/samples/rtp.conf.sample                                                        |   12
- b/configure                                                                              |  366 ++
- b/configure.ac                                                                           |   16
- b/contrib/ast-db-manage/config/versions/4468b4a91372_add_pjsip_asymmetric_rtp_codec.py   |   31
- b/contrib/realtime/mssql/mssql_config.sql                                                |   14
- b/contrib/realtime/mysql/mysql_config.sql                                                |    6
- b/contrib/realtime/oracle/oracle_config.sql                                              |   14
- b/contrib/realtime/postgresql/postgresql_config.sql                                      |    6
- b/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py                                           |    2
- b/doc/appdocsxml.xslt                                                                    |   20
- b/include/asterisk.h                                                                     |    9
- b/include/asterisk/_private.h                                                            |    1
- b/include/asterisk/autoconfig.h.in                                                       |    9
- b/include/asterisk/bridge.h                                                              |    9
- b/include/asterisk/channel.h                                                             |   61
- b/include/asterisk/channel_internal.h                                                    |    2
- b/include/asterisk/file.h                                                                |   28
- b/include/asterisk/manager.h                                                             |    2
- b/include/asterisk/module.h                                                              |    7
- b/include/asterisk/options.h                                                             |    2
- b/include/asterisk/res_pjsip.h                                                           |    2
- b/include/asterisk/rtp_engine.h                                                          |    3
- b/include/asterisk/stasis_app.h                                                          |   10
- b/include/asterisk/stasis_bridges.h                                                      |    4
- b/include/asterisk/tcptls.h                                                              |    1
- b/include/asterisk/vector.h                                                              |    8
- b/main/Makefile                                                                          |   13
- b/main/asterisk.c                                                                        |   48
- b/main/astobj2.c                                                                         |    4
- b/main/autoservice.c                                                                     |   66
- b/main/bridge.c                                                                          |   34
- b/main/bridge_channel.c                                                                  |    3
- b/main/cdr.c                                                                             |   19
- b/main/channel.c                                                                         |  160 -
- b/main/channel_internal_api.c                                                            |   29
- b/main/cli.c                                                                             |   14
- b/main/codec_builtin.c                                                                   |   16
- b/main/features_config.c                                                                 |    2
- b/main/file.c                                                                            |  137 +
- b/main/format_cap.c                                                                      |    2
- b/main/loader.c                                                                          |    5
- b/main/manager_bridges.c                                                                 |   52
- b/main/manager_channels.c                                                                |   11
- b/main/netsock.c                                                                         |    2
- b/main/rtp_engine.c                                                                      |   87
- b/main/stasis_bridges.c                                                                  |   29
- b/main/tcptls.c                                                                          |   67
- b/main/utils.c                                                                           |  244 +
- b/makeopts.in                                                                            |    2
- b/menuselect/aclocal.m4                                                                  |  281 ++
- b/menuselect/configure                                                                   |  197 +
- b/menuselect/configure.ac                                                                |    9
- b/res/ari/ari_model_validators.c                                                         |  463 +++
- b/res/ari/ari_model_validators.h                                                         |   65
- b/res/ari/ari_websockets.c                                                               |    2
- b/res/ari/resource_bridges.c                                                             |   66
- b/res/ari/resource_bridges.h                                                             |   28
- b/res/ari/resource_channels.c                                                            |    7
- b/res/res_agi.c                                                                          |   38
- b/res/res_ari_bridges.c                                                                  |  146 +
- b/res/res_ari_channels.c                                                                 |    2
- b/res/res_format_attr_opus.c                                                             |   10
- b/res/res_http_websocket.c                                                               |   19
- b/res/res_pjsip.c                                                                        |  137 -
- b/res/res_pjsip/include/res_pjsip_private.h                                              |   14
- b/res/res_pjsip/pjsip_configuration.c                                                    |    1
- b/res/res_pjsip/pjsip_message_ip_updater.c                                               |  303 ++
- b/res/res_pjsip_caller_id.c                                                              |   14
- b/res/res_pjsip_outbound_authenticator_digest.c                                          |   13
- b/res/res_pjsip_outbound_registration.c                                                  |    2
- b/res/res_pjsip_pubsub.c                                                                 |   20
- b/res/res_pjsip_registrar_expire.c                                                       |    2
- b/res/res_pjsip_sdp_rtp.c                                                                |   54
- b/res/res_pjsip_session.c                                                                |   15
- b/res/res_pjsip_t38.c                                                                    |   13
- b/res/res_rtp_asterisk.c                                                                 |  107
- b/res/res_stasis.c                                                                       |   22
- b/res/stasis/app.c                                                                       |  105
- b/res/stasis/app.h                                                                       |   26
- b/res/stasis/cli.c                                                                       |  216 +
- b/res/stasis/cli.h                                                                       |   43
- b/res/stasis_recording/stored.c                                                          |  217 -
- b/rest-api/api-docs/applications.json                                                    |    2
- b/rest-api/api-docs/asterisk.json                                                        |    2
- b/rest-api/api-docs/bridges.json                                                         |   84
- b/rest-api/api-docs/channels.json                                                        |   10
- b/rest-api/api-docs/deviceStates.json                                                    |    2
- b/rest-api/api-docs/endpoints.json                                                       |    2
- b/rest-api/api-docs/events.json                                                          |   22
- b/rest-api/api-docs/mailboxes.json                                                       |    2
- b/rest-api/api-docs/playbacks.json                                                       |    2
- b/rest-api/api-docs/recordings.json                                                      |    2
- b/rest-api/api-docs/sounds.json                                                          |    2
- b/rest-api/resources.json                                                                |    2
- b/tests/test_astobj2_thrash.c                                                            |   11
- b/tests/test_file.c                                                                      |  197 +
- b/tests/test_res_stasis.c                                                                |    6
- b/third-party/pjproject/Makefile                                                         |   75
- b/third-party/pjproject/Makefile.rules                                                   |   10
- b/third-party/pjproject/apply_patches                                                    |    4
- b/third-party/pjproject/configure.m4                                                     |    5
- b/third-party/pjproject/patches/0000-remove-third-party.patch                            |  142 +
- b/third-party/pjproject/patches/0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch |  134 +
- b/third-party/pjproject/patches/0006-r5473-svn-backport-Fix-pending-query.patch          |   28
- b/third-party/pjproject/patches/0006-r5475-svn-backport-Remove-DNS-cache-entry.patch     |   70
- res/res_pjsip_multihomed.c                                                               |  225 -
- 131 files changed, 6383 insertions(+), 2796 deletions(-)
diff --git a/asterisk-certified-13.13-cert1-rc1-summary.html b/asterisk-certified-13.13-cert1-rc1-summary.html
new file mode 100644 (file)
index 0000000..0daa21b
--- /dev/null
@@ -0,0 +1,1498 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><title>Release Summary - asterisk-certified/13.13-cert1-rc1</title><h1 align="center"><a name="top">Release Summary</a></h1><h3 align="center">asterisk-certified/13.13-cert1-rc1</h3><h3 align="center">Date: 2016-11-23</h3><h3 align="center">&lt;asteriskteam@digium.com&gt;</h3><hr><h2 align="center">Table of Contents</h2><ol>
+<li><a href="#summary">Summary</a></li>
+<li><a href="#contributors">Contributors</a></li>
+<li><a href="#closed_issues">Closed Issues</a></li>
+<li><a href="#open_issues">Open Issues</a></li>
+<li><a href="#commits">Other Changes</a></li>
+<li><a href="#diffstat">Diffstat</a></li>
+</ol><hr><a name="summary"><h2 align="center">Summary</h2></a><center><a href="#top">[Back to Top]</a></center><p>This release is a point release of an existing major version. The changes included were made to address problems that have been identified in this release series, or are minor, backwards compatible new features or improvements. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous version are strongly encouraged to review the UPGRADE.txt document as well as the CHANGES document for information about upgrading to this release series.</p><p>The data in this summary reflects changes that have been made since the previous release, asterisk-certified/13.8-cert3.</p><hr><a name="contributors"><h2 align="center">Contributors</h2></a><center><a href="#top">[Back to Top]</a></center><p>This table lists the people who have submitted code, those that have tested patches, as well as those that reported issues on the issue tracker that were resolved in this release. For coders, the number is how many of their patches (of any size) were committed into this release. For testers, the number is the number of times their name was listed as assisting with testing a patch. Finally, for reporters, the number is the number of issues that they reported that were affected by commits that went into this release.</p><table width="100%" border="0">
+<tr><th width="33%">Coders</th><th width="33%">Testers</th><th width="33%">Reporters</th></tr>
+<tr valign="top"><td width="33%">114 Richard Mudgett <rmudgett@digium.com><br/>92 gtjoseph <gjoseph@digium.com><br/>44 Joshua Colp <jcolp@digium.com><br/>40 Alexander Traud <pabstraud@compuserve.com><br/>37 Alexei Gradinari <alex2grad@gmail.com><br/>34 Mark Michelson <mmichelson@digium.com><br/>33 Matt Jordan <mjordan@digium.com><br/>24 Kevin Harwell <kharwell@digium.com><br/>24 Corey Farrell <git@cfware.com><br/>12 Tzafrir Cohen <tzafrir.cohen@xorcom.com><br/>7 Walter Doekes <walter+github@wjd.nu><br/>4 Torrey Searle <torrey@voxbone.com><br/>3 Badalyan Vyacheslav <v.badalyan@open-bs.ru><br/>3 Michael Kuron <m.kuron@gmx.de><br/>3 Jacek Konieczny <jkonieczny@eggsoft.pl><br/>3 David M. Lee <dlee@respoke.io><br/>3 Jaco Kroon <jaco@uls.co.za><br/>3 Alexander Anikin <may213@yandex.ru><br/>2 Michael Walton <mike@farsouthnet.com><br/>2 Sebastian Gutierrez <sgutierrez@integraccs.com><br/>2 Etienne Lessard <elessard@proformatique.com><br/>2 snuffy <snuffy22@gmail.com><br/>2 Gianluca Merlo <gianluca.merlo@gmail.com><br/>2 Scott Griepentrog <scott@griepentrog.com><br/>2 Rusty Newton <rnewton@digium.com><br/>2 Timo Teräs <timo.teras@iki.fi><br/>2 Diederik de Groot <dkgroot@talon.nl><br/>2 Philip Correia<br/>1 ibercom <ibercom123@gmail.com><br/>1 Aaron An <anjb@ti-net.com.cn><br/>1 Andrew Nagy <andrew.nagy@the159.com><br/>1 Leandro Dardini <ldardini@gmail.com><br/>1 Pascal Cadotte Michaud <pcadotte@proformatique.com><br/>1 Chris Trobridge <christ.trobridge@ultra-aep.com><br/>1 Jesper (License 5518)<br/>1 Jason Parker (license 4993)<br/>1 Alessandro Crespi<br/>1 Maciej Szmigiero <mail@maciej.szmigiero.name><br/>1 Leif Madsen <leif@leifmadsen.com><br/>1 Francesco Castellano <francesco.castellano@messagenet.it><br/>1 Vasil Kolev <vasil.kolev@securax.org><br/>1 Grachev Sergey <grachev@mcn.ru><br/>1 Richard Miller (license 5685)<br/>1 Javier Acosta <javier.acosta@beeonline.es><br/>1 Igor Goncharovskiy <igor.goncharovsky@gmail.com><br/>1 Moises Silva <moises.silva@gmail.com><br/>1 Kirill Katsnelson <kkm@smartaction.com><br/>1 Eugene Voityuk <eugene@thirdlane.com><br/>1 chris de rock <chris@derock.de><br/>1 Sean Bright <sean.bright@gmail.com><br/>1 Rodrigo Ramírez Norambuena <a@rodrigoramirez.com><br/>1 Alexander Traud <pabstraud@compuserve.com><br/>1 Sebastian Damm <damm@sipgate.de><br/>1 Steve Davies <steve@one47.co.uk><br/>1 Evgeniy Tsybra <cjack@yandex.ru><br/></td><td width="33%">1 Dmitry Melekhov<br/>1 AaronAn<br/>1 Etienne Lessard<br/>1 Andrew Nagy<br/>1 Ross Beer<br/>1 Alexander Traud<br/>1 Eugene Voityuk <eugene@thirdlane.com><br/>1 Rusty Newton<br/>1 Alexander Traud <pabstraud@compuserve.com><br/></td><td width="33%">34 Richard Mudgett <rmudgett@digium.com><br/>33 Alexei Gradinari <alex2grad@gmail.com><br/>24 Matt Jordan <mjordan@digium.com><br/>24 Richard Mudgett<br/>23 Alexander Traud <pabstraud@compuserve.com><br/>23 George Joseph <gjoseph@digium.com><br/>21 Joshua Colp <jcolp@digium.com><br/>16 Corey Farrell <git@cfware.com><br/>15 Ross Beer <ross.beer@voicehost.co.uk><br/>13 Etienne Lessard <elessard@proformatique.com><br/>8 Mark Michelson <mmichelson@digium.com><br/>8 Ross Beer<br/>8 Kevin Harwell <kharwell@digium.com><br/>6 Tzafrir Cohen <tzafrir.cohen@xorcom.com><br/>5 Badalian Vyacheslav <slavon.net@gmail.com><br/>5 Mark Michelson<br/>4 Scott Griepentrog <sgriepentrog@digium.com><br/>4 scgm11 <scgm11@gmail.com><br/>4 Etienne Lessard<br/>4 Joshua Colp<br/>4 Andrew Nagy <andrew.nagy@the159.com><br/>4 Dmitriy Serov <serov.d.p@gmail.com><br/>4 Morten Tryfoss <morten@tryfoss.no><br/>3 Jaco Kroon <jaco@uls.co.za><br/>3 Edwin Vandamme <edwin.vandamme@telenet.be><br/>3 David Brillert <david_brillert@scopserv.com><br/>3 gtjoseph<br/>2 Jacek Konieczny <jkonieczny@eggsoft.pl><br/>2 Walter Doekes <walter+asterisk@wjd.nu><br/>2 Alexei Gradinari <alex2grad@gmail.com><br/>2 Diederik de Groot <dkgroot@talon.nl><br/>2 Javier Acosta <javier.acosta@beeonline.es><br/>2 Florian Loyau <florian.loyau@astrium-eu-projects.eu><br/>2 Dmitriy Serov<br/>2 Gabriele Giacone <1o5g4r8o@gmail.com><br/>2 Dmitry Melekhov <dm@belkam.com><br/>2 Gianluca Merlo <gianluca.merlo@gmail.com><br/>2 John Bigelow <jbigelow@digium.com><br/>2 Michael Walton <mike@farsouthnet.com><br/>2 Niklas Larsson <niklas@tese.se><br/>2 Philip Correia <asterisk@singularity.co.za><br/>2 Scott Griepentrog<br/>2 Philip Correia<br/>2 Kevin Harwell<br/>2 Anthony Messina <amessina@messinet.com><br/>2 Hans van Eijsden <info@hansvaneijsden.nl><br/>2 Aaron Hamstra <ahamstra@carnegietechnologies.com><br/>2 nik600 <nik600@gmail.com><br/>2 Andrew Nagy<br/>2 Anthony Messina<br/>2 nappsoft <infos@nappsoft.com><br/>2 Harley Peters <harley@thepetersclan.com><br/>2 Leandro Dardini <ldardini@gmail.com><br/>1 CGI.NET <loveme1314@gmail.com><br/>1 Edwin Vandamme<br/>1 Daniele Pallastrelli <daniele.pallastrelli@sadel.it><br/>1 effie mouzeli <manjiki@gmail.com><br/>1 Richard Miller <rich@ndpcci.com><br/>1 Michael Keuter <lists@mksolutions.info><br/>1 Marco Paland <info@paland.com><br/>1 Xavier Hienne<br/>1 CGI.NET<br/>1 Ross Beer.<br/>1 Aaron An <anjb@ti-net.com.cn><br/>1 Jonathan Rose<br/>1 Sébastien Couture <scouture@ubity.com><br/>1 Michael Newton <miken32@gmail.com><br/>1 Josh Colp<br/>1 Martin Vit <festr@lam.cz><br/>1 Kirill Katsnelson <kkm@smartaction.com><br/>1 Taylor Hawkes <th71852@gmail.com><br/>1 Olle Johansson<br/>1 Per Jensen <per.jensen@bolderthinking.com><br/>1 Greg Siemon<br/>1 Carlos Chavez<br/>1 Dmitry Melekhov<br/>1 Conrad de Wet<br/>1 Bill Brigden <bill@brigden.me><br/>1 snuffy <snuffy22@gmail.com><br/>1 Nick Repin <nick@cristalink.com><br/>1 Jesper<br/>1 Daniel Denson <dandenson@gmail.com><br/>1 AaronAn<br/>1 Vasil Kolev <vasil.kolev@securax.org><br/>1 Jacek <asterisk_J1R4@jacekk.info><br/>1 Patrick Laimbock <patrick@laimbock.com><br/>1 Jonathan R. Rose <jonathan.rose@motorolasolutions.com><br/>1 Ali Ghavidel <aghavidel@sangoma.com><br/>1 Doug Lytle <support@drdos.info><br/>1 scgm11<br/>1 Jeppe Ryskov Larsen<br/>1 Olle Johansson <oej@edvina.net><br/>1 chris de rock <chris@derock.de><br/>1 John Kiniston <johnkiniston@gmail.com><br/>1 Jason <asterisk@srpl.com><br/>1 Private Name<br/>1 Barry Flanagan <barry@flanagan.ie><br/>1 StefanEng86, urbaniak, pay123<br/>1 Sebastian Damm<br/>1 Rusty Newton <rnewton@digium.com><br/>1 Javier Acosta<br/>1 Ian Gilmour<br/>1 John Campbell <campbellj@gordonstoun.org.uk><br/>1 Sergey Grachev <FreeSS@live.ru><br/>1 Dmitry <dmitry2004@yandex.ru><br/>1 Ben Smithurst <ben.smithurst@gradwell.com><br/>1 József Dudás <j.dudas@manifone.com><br/>1 JoshE <josh@fluentstream.com><br/>1 Jesper <jpl@ipnordic.dk><br/>1 Maciej Szmigiero <mail@maciej.szmigiero.name><br/>1 Nick Repin<br/>1 Harley Peters<br/>1 B. Davis <vw.jetta.dude@gmail.com><br/>1 Ilya Trikoz <jleed@me.com><br/>1 Ian Gilmour <ian.gilmour.x@gmail.com><br/>1 Dafi Ni <zbyszek.wieczorek@gmail.com><br/>1 Morton Tryfoss<br/>1 Andreas Wetzel <mickey242@gmx.net><br/>1 Robert McGilvray <rmcgilvr@globeop.com><br/>1 Javier Riveros  <goseeped@gmail.com><br/>1 Hans van Eijsden<br/>1 Kayode <kayode.olajide@gltd.net><br/>1 John Campbell<br/>1 Robert McGilvray<br/>1 Michael Newton<br/>1 abelbeck <lonnie@abelbeck.com><br/>1 Xavier Hienne <xhienne@celya.fr><br/>1 Jens Bürger <jbuerger@arcor.de><br/>1 Chris Trobridge <chris.trobridge@ultra-aep.com><br/>1 Kevin Scott Adams <ksatllc@att.net><br/>1 Ilya Trikoz, Federico Santulli<br/>1 Elazar Broad <elazar@thebroadfamily.com><br/>1 Stefan Engström <stefanen@kth.se><br/>1 Jacek Kowalski<br/>1 Conrad de Wet <conrad@euphoria.co.za><br/>1 Jonathan Harris <lardconcepts@gmail.com><br/>1 Jeffrey Walton <noloader@gmail.com><br/>1 Jeppe Ryskov Larsen <jrl@patientsky.com><br/>1 Sebastian Damm <damm@sipgate.de><br/>1 Carlos Chavez <cursor@telecomabmex.com><br/>1 Javier Riveros<br/>1 Private Name <sales@minixel.com><br/>1 Dafi Ni<br/>1 Torrey Searle <tsearle@gmail.com><br/>1 Niklas Larsson<br/>1 Greg Siemon <greg@siemon.id.au><br/></td></tr>
+</table><hr><a name="closed_issues"><h2 align="center">Closed Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p><h3>New Feature</h3><h4>Category: Applications/app_confbridge</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25989">ASTERISK-25989</a>: apps/confbridge: add regcontext feature<br/>Reported by: Jaco Kroon<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2db17a793ca85ebef7ba36671272fad48e047e66">[2db17a793c]</a> Jaco Kroon -- app_confbridge: Add a regcontext option for confbridge bridge profiles.</li>
+</ul><br><h4>Category: Channels/chan_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26277">ASTERISK-26277</a>: Add dialplan function PJSIP_SEND_SESSION_REFRESH that sends a session refresh to update formats on a channel after session establishment<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f815f9dbaf78680fd7b21af27ed7fde900264fa">[5f815f9dba]</a> Matt Jordan -- channels/chan_pjsip: Add PJSIP_SEND_SESSION_REFRESH</li>
+</ul><br><h4>Category: Core/ManagerInterface/NewFeature</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25904">ASTERISK-25904</a>: PJSIP: add contact.updated event<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=97b4c7a5b42eb84eaeaf9ec3f524de40e1d7fd74">[97b4c7a5b4]</a> Richard Mudgett -- res_pjsip: Fix statsd regression.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e6eb17efd95ab42b4437666587ec292117565656">[e6eb17efd9]</a> Alexei Gradinari -- stasis_endpoints: Add new Status and Headers to ContactStatus</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7a14e669f073d6845ce4c13e8537b87fa4f3b042">[7a14e669f0]</a> Alexei Gradinari -- res_pjsip/AMI: add contact.updated event</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25903">ASTERISK-25903</a>: PJSIP AMI Event ContactStatus: add Useragent and RegExpire<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e6eb17efd95ab42b4437666587ec292117565656">[e6eb17efd9]</a> Alexei Gradinari -- stasis_endpoints: Add new Status and Headers to ContactStatus</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=70b7673f09ca53b56d174ea3d220d96eddc088c0">[70b7673f09]</a> Alexei Gradinari -- res_pjsip: Add headers to AMI Event ContactStatusDetail</li>
+</ul><br><h4>Category: General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26595">ASTERISK-26595</a>: ARI: Add the ability to control the source of video in a multi-party mixing bridge<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d23b4af4779675589c8a3ce39c0f4b80d0432d5c">[d23b4af477]</a> Matt Jordan -- res/ari/resource_bridges: Add the ability to manipulate the video source</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26470">ASTERISK-26470</a>: ARI: Add an 'asterisk_id' field to outgoing events<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=42cfdcd1b700af157746b897dc04362e853065c0">[42cfdcd1b7]</a> Matt Jordan -- res/ari: Add the Asterisk EID field to outgoing events</li>
+</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25904">ASTERISK-25904</a>: PJSIP: add contact.updated event<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=97b4c7a5b42eb84eaeaf9ec3f524de40e1d7fd74">[97b4c7a5b4]</a> Richard Mudgett -- res_pjsip: Fix statsd regression.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e6eb17efd95ab42b4437666587ec292117565656">[e6eb17efd9]</a> Alexei Gradinari -- stasis_endpoints: Add new Status and Headers to ContactStatus</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7a14e669f073d6845ce4c13e8537b87fa4f3b042">[7a14e669f0]</a> Alexei Gradinari -- res_pjsip/AMI: add contact.updated event</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25900">ASTERISK-25900</a>: PJSIP Endpoint IP Access Controls<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=524a30297468dc2bb7627f0dd589bd9e7368c744">[524a302974]</a> Alexei Gradinari -- res_pjsip: Endpoint IP Access Controls</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25903">ASTERISK-25903</a>: PJSIP AMI Event ContactStatus: add Useragent and RegExpire<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e6eb17efd95ab42b4437666587ec292117565656">[e6eb17efd9]</a> Alexei Gradinari -- stasis_endpoints: Add new Status and Headers to ContactStatus</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=70b7673f09ca53b56d174ea3d220d96eddc088c0">[70b7673f09]</a> Alexei Gradinari -- res_pjsip: Add headers to AMI Event ContactStatusDetail</li>
+</ul><br><h4>Category: Resources/res_pjsip_outbound_publish</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25901">ASTERISK-25901</a>: Add transport for outbound PUBLISH<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fd601f26f7fadad54dacb142cf2de341a6622c5a">[fd601f26f7]</a> Alexei Gradinari -- res_pjsip_outbound_publish: Add transport for outbound PUBLISH</li>
+</ul><br><h3>Bug</h3><h4>Category: Addons/cdr_mysql</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26359">ASTERISK-26359</a>: [patch] cdr_mysql: fails to use UTC if so instructed<br/>Reported by: Tzafrir Cohen<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=42cc267016229a7d6e9d525c860ff303912220cc">[42cc267016]</a> Tzafrir Cohen -- cdr_mysql: fix UTC support</li>
+</ul><br><h4>Category: Addons/chan_ooh323</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24400">ASTERISK-24400</a>: ooh323 sends wrong hangup code<br/>Reported by: Dmitry Melekhov<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a9ac1f5de474feee8933530b6370acdf3a45cc3f">[a9ac1f5de4]</a> Alexander Anikin -- chan_ooh323: Fixes to work right with Cisco devices</li>
+</ul><br><h4>Category: Addons/res_config_mysql</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26362">ASTERISK-26362</a>: res_config_mysql:  Broken after 13.10<br/>Reported by: Carlos Chavez<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=90ae4e433713e866d6745626ae601660a982eee1">[90ae4e4337]</a> gtjoseph -- res_config_mysql:  Fix several issues related to recent table changes</li>
+</ul><br><h4>Category: Applications/app_dial</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26549">ASTERISK-26549</a>: app_dial: When PickupChan() is used some channels may have incorrect device state<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d971647949a5a6dee5c80526f2baa90b02687ad5">[d971647949]</a> Joshua Colp -- app_dial: Fix incorrect device state when channel is picked up.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26446">ASTERISK-26446</a>: app_dial:  There's no way to override the hangupcause on unanswered channels<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f919edc4e26389725a6d2dc32e7bcbbd79d4ef40">[f919edc4e2]</a> gtjoseph -- app_dial:  Add the "Q" option to set the cause on unanswered channels</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25691">ASTERISK-25691</a>: Crash occurs when screening mode (Dial's 'p' argument) is enabled and callee rejects a call or hangs up.<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=df3d0188e4f4056d669615433e5b3cafc1c56d0f">[df3d0188e4]</a> Matt Jordan -- apps/app_dial: Fix crash on non-connect call paths for Privacy/Screening option</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a64063cc9720637c1f54f85bb48d54b0e0ae8d3d">[a64063cc97]</a> Matt Jordan -- apps/app_dial: Set the DIALSTATUS to NOANSWER on privacy option 5</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26282">ASTERISK-26282</a>: AEL: macro-call in Dial application, macro "lacks 's' extension"<br/>Reported by: chris de rock<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2fa168348e54e2c6662137404ba115c77020854a">[2fa168348e]</a> chris de rock -- app_macro: Consider '~~s~~' as a macro start extension.</li>
+</ul><br><h4>Category: Applications/app_echo</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25867">ASTERISK-25867</a>: [patch] Video delay on app_echo<br/>Reported by: Jacek Konieczny<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6a9c18fb5933bff08c66e3c3d6c5435da59b0040">[6a9c18fb59]</a> Jacek Konieczny -- app_echo: forward and generate VIDUPDATE frames</li>
+</ul><br><h4>Category: Applications/app_followme</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26288">ASTERISK-26288</a>: followme: fails to reset config items to default values on reload<br/>Reported by: Tzafrir Cohen<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=206d4f57dc5fda3a5c48c4af3d96ffb18d0851df">[206d4f57dc]</a> Tzafrir Cohen -- followme: initialize all config items on reload</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26008">ASTERISK-26008</a>: app_followme does not delete recorded name prompt<br/>Reported by: Tzafrir Cohen<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eec539a46e63bcaa222405d6e45e1d674061dd1f">[eec539a46e]</a> Tzafrir Cohen -- followme: delete the right recorded name file</li>
+</ul><br><h4>Category: Applications/app_macro</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26282">ASTERISK-26282</a>: AEL: macro-call in Dial application, macro "lacks 's' extension"<br/>Reported by: chris de rock<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2fa168348e54e2c6662137404ba115c77020854a">[2fa168348e]</a> chris de rock -- app_macro: Consider '~~s~~' as a macro start extension.</li>
+</ul><br><h4>Category: Applications/app_mp3</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26085">ASTERISK-26085</a>: app_mp3: results in timeout for streams<br/>Reported by: Jens Bürger<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a002a4d2dbc44d134be6e42d87092ecc2d2b22e4">[a002a4d2db]</a> Michael Kuron -- app_mp3: Use correct buffer size and the same sample rate as the channel</li>
+</ul><br><h4>Category: Applications/app_queue</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26462">ASTERISK-26462</a>: [patch] app_queue: While using queues with realtime, setting back to an empty context doesn't stop the exit key usage<br/>Reported by: Leandro Dardini<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0306869399c519fd6f1b35332aa639a8db4b86fb">[0306869399]</a> Leandro Dardini -- app_queue: Added initialization for "context" parameter</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26360">ASTERISK-26360</a>: app_queue: "queue show" output gets "failed to extend from 240 to 327" msgs.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0388882cdbaf85035c9548a9ff2d6e1edc43321e">[0388882cdb]</a> Richard Mudgett -- app_queue: Fix CLI "queue show" and AMI Queues action output truncation.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26299">ASTERISK-26299</a>: app_queue: Queue application sometimes stops calling members with Local interface<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f69f5cd3c43025180b61a20cc1aa906c9cf7f4f4">[f69f5cd3c4]</a> Joshua Colp -- app_queue: Ensure member is removed from pending when hanging up.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25797">ASTERISK-25797</a>: app_queue: Crash when calling a queue with a member with a forward to an nonexistent extension<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a3c5488ff465cf104e311831300d3501a1990b23">[a3c5488ff4]</a> Matt Jordan -- app_queue: Prevent crash when a call is forwarded to an invalid location</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26133">ASTERISK-26133</a>: app_queue: Queue members receive multiple calls<br/>Reported by: Richard Miller<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=43b5f8d57ba8a052e2227fa855e16e4d0b077e30">[43b5f8d57b]</a> Richard Miller -- app_queue: Only remove queue member from pending when state changes.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-16115">ASTERISK-16115</a>: [patch] problem with ringinuse=no, queue members receive sometimes two calls<br/>Reported by: nik600<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6959f5484b3077c6cced3477dda6fe04cfb86cb9">[6959f5484b]</a> Joshua Colp -- app_queue: Fix crash when unloading module.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c345e530f4401c06d1f87a938cff3a12de84e048">[c345e530f4]</a> Kevin Harwell -- app_queue: queue members can receive multiple calls</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25954">ASTERISK-25954</a>: Manager QueueSummary and QueueStatus Actions are case sensitive to QueueName<br/>Reported by: Javier Acosta<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c0688a6398f27296ff849848a2e416e036d794e3">[c0688a6398]</a> Javier Acosta -- Fix case sensitive actions in AMI QueueSummary and QueueStatus</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25888">ASTERISK-25888</a>: Frequent segfaults in function can_ring_entry() of app_queue.c<br/>Reported by: Sébastien Couture<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3b9d8b60b211377f2023ebfbfdd157cfb668de6e">[3b9d8b60b2]</a> ibercom -- app_queue: Frequent segfaults in function can_ring_entry()</li>
+</ul><br><h4>Category: Applications/app_voicemail</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26503">ASTERISK-26503</a>: app_voicemail: Asterisk crashes when MailboxExists is used<br/>Reported by: Doug Lytle<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=14496ce1e5bbc9b2192ca8f882ecb99887c5d40a">[14496ce1e5]</a> Joshua Colp -- app_voicemail: Clear voice mailbox in MailboxExists and MAILBOX_EXISTS.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26211">ASTERISK-26211</a>: Unit tests: AST_TEST_DEFINE should be used in conditional code.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c8e41d14a1478b46a6c986a4c30ba2c8bdf86cd5">[c8e41d14a1]</a> Corey Farrell -- Unit tests: Use AST_TEST_DEFINE in conditional code only.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26045">ASTERISK-26045</a>: [patch]app_voicemail: fix bugs, imap mm_status log change to debug<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c1512f4108c7b455494dfa7779bf7fe671e0e4e6">[c1512f4108]</a> Richard Mudgett -- app_voicemail.c: Fix IMAP compile error.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=859bbec09b24541b7a789adc5b815bf4406c2eb6">[859bbec09b]</a> Alexei Gradinari -- app_voicemail: fix bugs, imap mm_status log change to debug</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24463">ASTERISK-24463</a>: Voicemail email address corrupt or not sent when message is in the process of being recorded during reload<br/>Reported by: John Campbell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8028fc758597f9d9233c97c4be0e229d8af7e3ab">[8028fc7585]</a> Andrew Nagy -- app_voicemail: always copy dynamic struct to avoid race condition</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25917">ASTERISK-25917</a>: [patch]app_voicemail: passwordlocation=spooldir only works if you manually add secret.conf yourself<br/>Reported by: Jonathan R. Rose<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b38f1146e54f295c89727de4fde150ed731d5b64">[b38f1146e5]</a> gtjoseph -- config:  Fix ast_config_text_file_save2 writability check for missing files</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25874">ASTERISK-25874</a>: app_voicemail: Stack buffer overflow in test_voicemail_notify_endl<br/>Reported by: Badalian Vyacheslav<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=daa086fae4bdbdc06b8ff5e47c4a6be85ee9ddbb">[daa086fae4]</a> Joshua Colp -- app_voicemail: Fix test_voicemail_notify_endl test.</li>
+</ul><br><h4>Category: Applications/app_voicemail/IMAP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26045">ASTERISK-26045</a>: [patch]app_voicemail: fix bugs, imap mm_status log change to debug<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c1512f4108c7b455494dfa7779bf7fe671e0e4e6">[c1512f4108]</a> Richard Mudgett -- app_voicemail.c: Fix IMAP compile error.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=859bbec09b24541b7a789adc5b815bf4406c2eb6">[859bbec09b]</a> Alexei Gradinari -- app_voicemail: fix bugs, imap mm_status log change to debug</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24927">ASTERISK-24927</a>: app_voicemail (IMAP support) function save_to_folder: creates wrong folder<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f89613646082c7abb48ed4415fc34fd3fc70e923">[f896136460]</a> Alexei Gradinari -- app_voicemail/IMAP: function 'save_to_folder' creates wrong folder</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25899">ASTERISK-25899</a>: IMAP access FATAL error: Out of memory<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bc320df173623ab6e4b11c4e6bfd3a4bc7d023f3">[bc320df173]</a> Alexei Gradinari -- app_voicemail/IMAP: IMAP access FATAL error: Out of memory</li>
+</ul><br><h4>Category: Bridges/bridge_softmix</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26555">ASTERISK-26555</a>: Multi-party Video: Fix some post Asterisk-11 regressions<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e7dc536b7ae11abf0414b367d1125610dd858188">[e7dc536b7a]</a> Matt Jordan -- main/bridge_channel: Fix channel reference leak on video source</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7c824b955d4200c82805b3e07aa3af30c43fd09d">[7c824b955d]</a> Matt Jordan -- main/bridge: Add some verbose logging for video source changes</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fd6af2dee8016ac64b3c4943d8ded04767a0a752">[fd6af2dee8]</a> Matt Jordan -- bridges/bridge_softmix: Remove SSRC changes on join/leave; update video source</li>
+</ul><br><h4>Category: CDR/cdr_custom</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26054">ASTERISK-26054</a>: Asterisk crashes (core dump)<br/>Reported by: B. Davis<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=321a9b128fdc8dd59ea720fd50691a3a32c0d934">[321a9b128f]</a> Joshua Colp -- res_odbc: Implement a connection pool.</li>
+</ul><br><h4>Category: CEL/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25262">ASTERISK-25262</a>: Memory leak when a caller channel does multiple dials and CEL is enabled<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=caf6cccc5c75c310f0eedbd5b01b5d6751681e0d">[caf6cccc5c]</a> Joshua Colp -- cel: Ensure only one dial status per channel exists.</li>
+</ul><br><h4>Category: Channels/chan_dahdi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26412">ASTERISK-26412</a>: build:  Prepare for gcc 6.2<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bd4d7d8ad05bbe8d86b89429dfa55fbc3a0c108d">[bd4d7d8ad0]</a> Kevin Harwell -- stasis_recording/stored: remove calls to deprecated readdir_r function.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26216">ASTERISK-26216</a>: res_fax: Deadlock when detect fax while channel executing Playback<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dcb8aa8c1c1207a6ee0c8f9f158154254ab63ec8">[dcb8aa8c1c]</a> Richard Mudgett -- chan_dahdi.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fa91cf3eeca1ee3b2bdb5e3d685de7100702ff21">[fa91cf3eec]</a> Richard Mudgett -- chan_sip.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2e1bdc3775d7b22a3364b7a3aaa07c463043ac9b">[2e1bdc3775]</a> Richard Mudgett -- chan_pjsip.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=628e8c91d5c6a3e745bdb37e6593fd838b006393">[628e8c91d5]</a> Richard Mudgett -- res_fax.c: Fix deadlock potential in FAXOPT(faxdetect) framehook.</li>
+</ul><br><h4>Category: Channels/chan_dahdi/NewFeature</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26214">ASTERISK-26214</a>: Allow arbitrary time for fax detection to end on a channel<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=676aeede3643dbe9b79fd7117ce7e335f236d151">[676aeede36]</a> Richard Mudgett -- res_fax: Fix FAXOPT(faxdetect) timeout option.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=652130feb2c200a0f3fec500877255ebabbae28a">[652130feb2]</a> Richard Mudgett -- chan_dahdi: Add faxdetect_timeout option.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=851b1c3a177e06660aeeb92b29a0d3e267ddb61b">[851b1c3a17]</a> Richard Mudgett -- res_pjsip: Add fax_detect_timeout endpoint option.</li>
+</ul><br><h4>Category: Channels/chan_local</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25912">ASTERISK-25912</a>: chan_local passes AST_CONTROL_PVT_CAUSE_CODE without adding them to the local hangupcauses via ast_channel_hangupcause_hash_set<br/>Reported by: Jaco Kroon<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3f6c4667b814f9a4f51c81ac487dcc19c3230394">[3f6c4667b8]</a> Jaco Kroon -- core_unreal: Fix hangupcauses not getting set on Local channels</li>
+</ul><br><h4>Category: Channels/chan_multicast_rtp</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26439">ASTERISK-26439</a>: chan_rtp: Crash when originating<br/>Reported by: Kayode<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=644fad74770594c10b1819900d6195855068020a">[644fad7477]</a> Moises Silva -- chan_rtp: Set a sane default rtp engine for unicast.</li>
+</ul><br><h4>Category: Channels/chan_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26516">ASTERISK-26516</a>: pjsip: Memory corruption with possible memory leak.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e632222bc41d860af7de2463c35de60387a2f295">[e632222bc4]</a> Richard Mudgett -- res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=afecb2cfc084db522cf570aa2210056b1c396196">[afecb2cfc0]</a> Richard Mudgett -- bundled pjproject: Fix DNS write to freed memory.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26444">ASTERISK-26444</a>: 'features show' command in CLI does not return prompt.<br/>Reported by: John Kiniston<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c2036c827cb22e2fbf509d4318b6f177d516c033">[c2036c827c]</a> snuffy -- Fix issue with CLI not returning to prompt after running "features show"</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26482">ASTERISK-26482</a>: [patch] chan_pjsip: segfault on already disconnected session<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6d462b9eaf4f34a518ec491f1f97c21adc30a87c">[6d462b9eaf]</a> Alexei Gradinari -- chan_pjsip: segfault on already disconnected session</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26306">ASTERISK-26306</a>: channel: Hang-up crashes, chan_pjsip not cleaning up properly<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=847bd47ff0d066ba5b205131f959e778beef897f">[847bd47ff0]</a> Alexander Traud -- channel: No hung-up on failing security requirements.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26145">ASTERISK-26145</a>: pjsip: Deadlock with suspend + masquerade + indicate<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1589452fdc044dc6233e73e87c0e3735c97a5495">[1589452fdc]</a> Alexei Gradinari -- pjsip: Fix deadlock with suspend taskprocessor on masquerade</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26216">ASTERISK-26216</a>: res_fax: Deadlock when detect fax while channel executing Playback<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dcb8aa8c1c1207a6ee0c8f9f158154254ab63ec8">[dcb8aa8c1c]</a> Richard Mudgett -- chan_dahdi.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fa91cf3eeca1ee3b2bdb5e3d685de7100702ff21">[fa91cf3eec]</a> Richard Mudgett -- chan_sip.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2e1bdc3775d7b22a3364b7a3aaa07c463043ac9b">[2e1bdc3775]</a> Richard Mudgett -- chan_pjsip.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=628e8c91d5c6a3e745bdb37e6593fd838b006393">[628e8c91d5]</a> Richard Mudgett -- res_fax.c: Fix deadlock potential in FAXOPT(faxdetect) framehook.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26214">ASTERISK-26214</a>: Allow arbitrary time for fax detection to end on a channel<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=676aeede3643dbe9b79fd7117ce7e335f236d151">[676aeede36]</a> Richard Mudgett -- res_fax: Fix FAXOPT(faxdetect) timeout option.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=652130feb2c200a0f3fec500877255ebabbae28a">[652130feb2]</a> Richard Mudgett -- chan_dahdi: Add faxdetect_timeout option.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=851b1c3a177e06660aeeb92b29a0d3e267ddb61b">[851b1c3a17]</a> Richard Mudgett -- res_pjsip: Add fax_detect_timeout endpoint option.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26063">ASTERISK-26063</a>: ${PJSIP_HEADER(read,Call-ID)} does not work - documentation needs clarification for when read/write is possible<br/>Reported by: Private Name<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=37d039fdf31b89a315ca2d76ea23a3ce1a8151ec">[37d039fdf3]</a> Rusty Newton -- res_pjsip: Add clarifying documentation to PJSIP_HEADER help text</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24986">ASTERISK-24986</a>: keepalive INFO packages ignored by asterisk<br/>Reported by: Ilya Trikoz<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=39fedfa4235da9f2d5de63bafae0521d7591ac8e">[39fedfa423]</a> snuffy -- res_pjsip_empty_info: Respond to empty SIP INFO packets</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26005">ASTERISK-26005</a>: res_pjsip: Multiple SIP messages are combined into 1 TCP packet<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b6f9392a122a905ebf1925c8b00ababa8ad04125">[b6f9392a12]</a> gtjoseph -- res_pjsip:  Set TCP_NODELAY on TCP transports</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25990">ASTERISK-25990</a>: PJSIP TLS registration should respect client_uri scheme when generating Contact URI<br/>Reported by: Sebastian Damm<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a94a12bbf73c7e643a77e4aa0597e4e49eb5b7ab">[a94a12bbf7]</a> Sebastian Damm -- res_pjsip_outbound_registration: generate correct Contact URI for TLS</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25826">ASTERISK-25826</a>: PJSIP / Sorcery slow load from realtime<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9c2032240e4974fc4b6212f411c86c7d673006e3">[9c2032240e]</a> Alexei Gradinari -- res_pjsip: improve realtime performance</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5aa5c49413a9b86f9e0d4456e580e3d536d33ef6">[5aa5c49413]</a> gtjoseph -- sorcery/res_pjsip:  Refactor for realtime performance</li>
+</ul><br><h4>Category: Channels/chan_sip/CodecHandling</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24543">ASTERISK-24543</a>: Asterisk 13 responds to SIP Invite with all possible codecs configured for peer as opposed to intersection of configured codecs and offered codecs<br/>Reported by: Taylor Hawkes<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=81ce60f6d442e9e681bdfa72bc3d0204ad1cc744">[81ce60f6d4]</a> Alexander Traud -- chan_sip: Do not send all codecs on INVITE. Do not break on Session-Timers.</li>
+</ul><br><h4>Category: Channels/chan_sip/DatabaseSupport</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25934">ASTERISK-25934</a>: chan_sip should not require sipregs or updateable sippeers table unless rt<br/>Reported by: Jaco Kroon<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=22335fe18af85b8086899740cef436b5a59a2ae4">[22335fe18a]</a> Jaco Kroon -- chan_sip: Don't verify table if rtupdate=no</li>
+</ul><br><h4>Category: Channels/chan_sip/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26523">ASTERISK-26523</a>: chan_sip: Asterisk 13.12.1 disconnects incoming calls after 2 minutes - rtptimeout behaving badly - regression<br/>Reported by: Michael Keuter<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb30963d222cb1e12af9bbf8dfed58001c9fcaf4">[cb30963d22]</a> Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always updated"</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26476">ASTERISK-26476</a>: chan_sip: Incorrect display option "Outbound reg. retry 403" in "sip show settings"<br/>Reported by: Sergey Grachev<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b3f10b7b94c08e9024057d0237a83da1bda6a946">[b3f10b7b94]</a> Grachev Sergey -- chan_sip: Incorrect display option Outbound reg. retry 403</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26457">ASTERISK-26457</a>: [patch] force_rport,auto_comedia: No NAT detection triggered.<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a859bcb49cc2c60ff2979853aae8c54269287598">[a859bcb49c]</a> Alexander Traud -- chan_sip: Support nat=auto_comedia or nat=force_rport,auto_comedia.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25468">ASTERISK-25468</a>: Deadlock in chan_sip - core show locks shows do_monitor lock<br/>Reported by: Barry Flanagan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0056bcaebd46b6016b730eabc79b359c92296820">[0056bcaebd]</a> gtjoseph -- chan_sip:  Address runaway when realtime peers subscribe to mailboxes</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26358">ASTERISK-26358</a>: chan_sip: Contact is updated on re-200, but not on re-INVITE<br/>Reported by: Walter Doekes<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=da8ba990d13c0dd396b625cc98a9e00ca85d986a">[da8ba990d1]</a> Walter Doekes -- chan_sip: Allow target refresh (Contact update) on re-INVITE.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26272">ASTERISK-26272</a>: chan_sip: File descriptors leak (UDP sockets)<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=efcfc4c1eeecb5b05b3387d23a1e020514aad527">[efcfc4c1ee]</a> Corey Farrell -- chan_sip: Don't allocate new RTP instances on top of old ones.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24822">ASTERISK-24822</a>: Deadlock: Fax Gateway framehook creates locking inversion in T.38 query option with features bridging code<br/>Reported by: David Brillert<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8b4b2500ee010e9d6baf9454475d337d45c7c368">[8b4b2500ee]</a> Richard Mudgett -- res_fax: Fix deadlock in ast_channel_get_t38_state().</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e8d4f400226b9cb3110f287e15ca9521fc8af1e7">[e8d4f40022]</a> Richard Mudgett -- res_fax: Fix deadlock setting FAXMODE channel variable.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=35cf6c7702665af14e00bea0a5439137952b8aec">[35cf6c7702]</a> Richard Mudgett -- res_fax.c: Fix deadlock in fax_gateway_indicate_t38().</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-23013">ASTERISK-23013</a>: [patch] Deadlock between 'sip show channels' command and attended transfer handling<br/>Reported by: Ben Smithurst<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=52ab0bf25807c3d666b95c6e2fe5692752c6fbe6">[52ab0bf258]</a> gtjoseph -- chan_sip: Prevent deadlock when issuing "sip show channels"</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26216">ASTERISK-26216</a>: res_fax: Deadlock when detect fax while channel executing Playback<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dcb8aa8c1c1207a6ee0c8f9f158154254ab63ec8">[dcb8aa8c1c]</a> Richard Mudgett -- chan_dahdi.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fa91cf3eeca1ee3b2bdb5e3d685de7100702ff21">[fa91cf3eec]</a> Richard Mudgett -- chan_sip.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2e1bdc3775d7b22a3364b7a3aaa07c463043ac9b">[2e1bdc3775]</a> Richard Mudgett -- chan_pjsip.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=628e8c91d5c6a3e745bdb37e6593fd838b006393">[628e8c91d5]</a> Richard Mudgett -- res_fax.c: Fix deadlock potential in FAXOPT(faxdetect) framehook.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26211">ASTERISK-26211</a>: Unit tests: AST_TEST_DEFINE should be used in conditional code.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c8e41d14a1478b46a6c986a4c30ba2c8bdf86cd5">[c8e41d14a1]</a> Corey Farrell -- Unit tests: Use AST_TEST_DEFINE in conditional code only.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26193">ASTERISK-26193</a>: chan_sip: reference leak in mwi_event_cb<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2be13d62fd35472d30b52d0e6bdc33390b0f17f6">[2be13d62fd]</a> Corey Farrell -- chan_sip: Fix reference leak in mwi_event_cb</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26184">ASTERISK-26184</a>: chan_sip: Reference leaks in error paths.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=06ba533bc702cd5dde914b8e9473b9d26385b202">[06ba533bc7]</a> Corey Farrell -- chan_sip: Fix reference leaks in error paths.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26069">ASTERISK-26069</a>: Asterisk truncates To: header, dropping the closing '>'<br/>Reported by: Vasil Kolev<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=89cc86fc383664f91cfd0d4463c1d9de3131f794">[89cc86fc38]</a> Vasil Kolev -- chan_sip: bigger buffers for headers, better failure mode</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25950">ASTERISK-25950</a>: [patch]SIP channel does not send PeerStatus events for autocreated peers<br/>Reported by: Kirill Katsnelson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=29bab0d1a4d6bbcdbf27fcff49b2e2262f65460e">[29bab0d1a4]</a> Kirill Katsnelson -- chan_sip: Make autocreated peers send PeerStatus events</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25927">ASTERISK-25927</a>: Removed option "registertrying" is still documented in sip.conf.sample<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6aeefa89bc4f415b9b9282b6e29a8643eaa44e8b">[6aeefa89bc]</a> Leif Madsen -- Remove reference to non-existent sip.conf option</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24543">ASTERISK-24543</a>: Asterisk 13 responds to SIP Invite with all possible codecs configured for peer as opposed to intersection of configured codecs and offered codecs<br/>Reported by: Taylor Hawkes<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=81ce60f6d442e9e681bdfa72bc3d0204ad1cc744">[81ce60f6d4]</a> Alexander Traud -- chan_sip: Do not send all codecs on INVITE. Do not break on Session-Timers.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-21301">ASTERISK-21301</a>: ERROR and failure to resolve socket address due to whitespace after port number in SIP Via header<br/>Reported by: Martin Vit<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c5170677e72e48b487462e79a31974845a417dce">[c5170677e7]</a> Francesco Castellano -- chan_sip.c: Space after port causes unnecessary resolution attempt</li>
+</ul><br><h4>Category: Channels/chan_sip/IPv6</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26438">ASTERISK-26438</a>: [patch] chan_sip: auto_force_rport: No NAT = No Symmetric Response.<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f166681c121265b92a9091bdafab9980c086b9d2">[f166681c12]</a> Alexander Traud -- chan_sip: Honor support of Symmetric Response (rport) for SIP requests.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-18232">ASTERISK-18232</a>: Broken REGISTER sent to IPv4 server when bindaddr=[::]<br/>Reported by: Jacek<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0502675e5c7ab77b7359776b77166d28760978af">[0502675e5c]</a> Alessandro Crespi -- chan_sip: Resolve externhost not to IPv6; instead go for IPv4.</li>
+</ul><br><h4>Category: Channels/chan_sip/Interoperability</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26030">ASTERISK-26030</a>: call cut because of double Session-Expires header in re-invite after proxy authentication is required<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=77e8ec162b4625b144fae18203d2ac67a4f7a4eb">[77e8ec162b]</a> gtjoseph -- chan_sip:  Prevent extra Session-Expires headers from being added</li>
+</ul><br><h4>Category: Channels/chan_sip/Registration</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-18232">ASTERISK-18232</a>: Broken REGISTER sent to IPv4 server when bindaddr=[::]<br/>Reported by: Jacek<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0502675e5c7ab77b7359776b77166d28760978af">[0502675e5c]</a> Alessandro Crespi -- chan_sip: Resolve externhost not to IPv6; instead go for IPv4.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25950">ASTERISK-25950</a>: [patch]SIP channel does not send PeerStatus events for autocreated peers<br/>Reported by: Kirill Katsnelson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=29bab0d1a4d6bbcdbf27fcff49b2e2262f65460e">[29bab0d1a4]</a> Kirill Katsnelson -- chan_sip: Make autocreated peers send PeerStatus events</li>
+</ul><br><h4>Category: Channels/chan_sip/SRTP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-23989">ASTERISK-23989</a>: [patch]SDP offer/answer fails if crypto keys added to non-crypto offer<br/>Reported by: Olle Johansson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d04ae7d1d81ee157bea1295b2316e278c951d877">[d04ae7d1d8]</a> Walter Doekes -- chan_sip: Don't refuse calls with "optional crypto"; fall back to RTP.</li>
+</ul><br><h4>Category: Channels/chan_sip/T.38</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26179">ASTERISK-26179</a>: chan_sip: Second T.38 request fails<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=77b0145a25aa8c5d4b5c5de27150faf8f3a19eb5">[77b0145a25]</a> Joshua Colp -- chan_sip/res_pjsip_t38: Handle a request to negotiate T.38 after it is enabled.</li>
+</ul><br><h4>Category: Channels/chan_sip/TCP-TLS</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19968">ASTERISK-19968</a>: TCP Session-Timers not dropping call<br/>Reported by: Aaron Hamstra<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=98e42cc6624a02bede84c38772412b6ff9d8fa2f">[98e42cc662]</a> Steve Davies -- chan_sip: Fix session timeout on retransmit of non-UDP packets</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=66c9dfb272322b21192f58383ae519ceb44e474c">[66c9dfb272]</a> Alexander Traud -- chan_sip: Enable Session-Timers for SIP over TCP (and TLS).</li>
+</ul><br><h4>Category: Channels/chan_sip/Video</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-17470">ASTERISK-17470</a>: [patch] - When videosupport=yes, asterisk  allows one end peer to send video, even though the other end supports only audio.<br/>Reported by: effie mouzeli<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f1fd873df059277131e82f5ee716bb1631428d95">[f1fd873df0]</a> Michael Kuron -- chan_sip: Only send video on outgoing channel if incoming channel supports it</li>
+</ul><br><h4>Category: Channels/chan_skinny</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26029">ASTERISK-26029</a>: parking: ast_parking_park_call should return parking_space instead of parking_exten<br/>Reported by: Diederik de Groot<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9453d1187ab1258166ae2fd8185ffb7b6e2c4575">[9453d1187a]</a> Richard Mudgett -- parking.h: Update ast_parking_park_call() doxygen to reality.</li>
+</ul><br><h4>Category: Channels/chan_unistim</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26565">ASTERISK-26565</a>: chan_unistim on 11, 13, 14 placing call on hold temporarily locks up set<br/>Reported by: Jason<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3faca1d4ffb3e727b792958f3b124f2258643259">[3faca1d4ff]</a> Igor Goncharovskiy -- Fix closing rtp ports after call finished in chan_unistim.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26138">ASTERISK-26138</a>: chan_unistim:  Under FreeBSD, chan_unistim generates a compile error<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bc69b033167c0fe6f2cfb71e39aaa2c73d60fa32">[bc69b03316]</a> gtjoseph -- chan_unistim:  Fix memcpy in get_to_address</li>
+</ul><br><h4>Category: Codecs/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26144">ASTERISK-26144</a>: Crash on loading codecs g729/g723<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d07c8a050445cf48591105f1676c190f477a7af1">[d07c8a0504]</a> gtjoseph -- codecs:  Fix ABI incompatibility created by adding format_name to ast_codec</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25914">ASTERISK-25914</a>: PJSIP: failed registration with wrong codec name on allow/disallow<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=64ecd41c8f432a913eb7e9fdc9be746e4b15cd8c">[64ecd41c8f]</a> Alexei Gradinari -- Codecs: strip codec name while parsing allow/disallow options</li>
+</ul><br><h4>Category: Codecs/codec_opus</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26520">ASTERISK-26520</a>: codec_opus: Generated fmtp line has no content<br/>Reported by: scgm11<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2c031b67d3c7da83bab914bcdaad45d2a0bc9ff8">[2c031b67d3]</a> Mark Michelson -- res_format_attr_opus: Fix fmtp generation.</li>
+</ul><br><h4>Category: Codecs/codec_siren14</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26021">ASTERISK-26021</a>: Build codecs siren7 and siren14 for Asterisk 13<br/>Reported by: Daniel Denson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1dfc28641884111a025fdf2b3e0f811511a282a1">[1dfc286418]</a> Joshua Colp -- siren: Add format attribute modules for Siren7 and Siren14.</li>
+</ul><br><h4>Category: Codecs/codec_siren7</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26021">ASTERISK-26021</a>: Build codecs siren7 and siren14 for Asterisk 13<br/>Reported by: Daniel Denson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1dfc28641884111a025fdf2b3e0f811511a282a1">[1dfc286418]</a> Joshua Colp -- siren: Add format attribute modules for Siren7 and Siren14.</li>
+</ul><br><h4>Category: Contrib/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24311">ASTERISK-24311</a>: Populating database via Alembic fails when using same database for multiple schema sets<br/>Reported by: Dafi Ni<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=86550f9c17c6a7e8454c3a143cddddb8f130d47e">[86550f9c17]</a> gtjoseph -- alembic:  Allow cdr, config and voicemail to exist in the same schema</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-22374">ASTERISK-22374</a>: Finish mapping the sip.conf parameters to res_sip.conf parameters<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a628009eb9c883947b57762dc81c216a9a89112b">[a628009eb9]</a> Alexander Traud -- sip_to_pjsip: Add cert_file.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cab6975b02b55b8b91560b5a186c6f82a4d7ee55">[cab6975b02]</a> Kevin Harwell -- sip_to_pjsip: Set correct tls transport method</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2381ddde63489b8601c9514111838fb4656610b4">[2381ddde63]</a> Alexander Traud -- sip_to_pjsip: Map the TLS method correctly.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6500f5e138d21589cde9bf0c76ccecefa2b7a71d">[6500f5e138]</a> Alexander Traud -- sip_to_pjsip: Add compactheaders, timerb, timert1, and useragent.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=21e9c69e566fd5c9abf2ab7f73fa2cfa82c82caa">[21e9c69e56]</a> Alexander Traud -- sip_to_pjsip: Map (session-)timers correctly.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c9a97398f7d9953e4ba404580b5043a102f1a739">[c9a97398f7]</a> Alexander Traud -- sip_to_pjsip: Write username even without authname.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=60275359bc6646a6000dbaf1e262763f409fb6fe">[60275359bc]</a> Alexander Traud -- sip_to_pjsip: Parse register even with transport.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0d479232ebf423c454b75051c83b35476ce7e688">[0d479232eb]</a> Alexander Traud -- sip_to_pjsip: Write local_net, contact_acl, contact_deny, and contact_permit.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cbc1b2d020fbafbfee1da0adb81ecdfefad6cffb">[cbc1b2d020]</a> Alexander Traud -- sip_to_pjsip: Map externhost/ip to Transports.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f33e995343f2ac0ddc5d061e4a4d84440212df0">[5f33e99534]</a> Alexander Traud -- sip_to_pjsip: Add defaultexpiry, maxexpiry, and minexpiry.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=231ea0350d644194233a15112eff020a88eca436">[231ea0350d]</a> Alexander Traud -- sip_to_pjsip: Write media_encryption.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=23eb06512170cd308d3d5caec09fb3372d61f256">[23eb065121]</a> Alexander Traud -- sip_to_pjsip: Write cos and tos.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0b675a208bd6ee75cf1937b3dbf12fbb826a44e8">[0b675a208b]</a> Alexander Traud -- sip_to_pjsip: Add cert_file and ca_list_path.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26183">ASTERISK-26183</a>: alembic: error when using sqlalchemy version 1.1.0b2<br/>Reported by: Kevin Harwell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f6ec94cca66addac71d566d6fa48188b407f26ba">[f6ec94cca6]</a> Kevin Harwell -- alembic/sqlalchemy: auto increment only allowed on a single column</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26128">ASTERISK-26128</a>: Alembic scripts are failing<br/>Reported by: Mark Michelson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1b79e2deff58dbf3f98791da1715aa4a696b028c">[1b79e2deff]</a> Mark Michelson -- Fix Alembic upgrades.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25890">ASTERISK-25890</a>: Asterisk 13.8.0 alembic database update fails<br/>Reported by: Harley Peters<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d312fdeb1b1a2e7f745bc5420c1082f8eff5ff46">[d312fdeb1b]</a> gtjoseph -- alembic:  Remove batch operations (and sqlite support)</li>
+</ul><br><h4>Category: Core/AstMM</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26526">ASTERISK-26526</a>: [UBSAN] vector.h: null pointer can be passed as argument 2 to memcpy<br/>Reported by: Badalian Vyacheslav<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=30b1bc77d2cfea0a593ecead8e392e468b40430c">[30b1bc77d2]</a> Corey Farrell -- vector: Prevent NULL argument to memcpy.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26524">ASTERISK-26524</a>: astobj2: data_size variable is wasted space when AO2_DEBUG is not enabled.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b96f18560b529b614d0773a060bc03ef73498c61">[b96f18560b]</a> Corey Farrell -- astobj2: Declare private variable data_size for AO2_DEBUG only.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26181">ASTERISK-26181</a>: REF_DEBUG: Node object incorrectly logged during duplicate replacement<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9d4e664f6280cbc6e0c48d59f62ab34887fa1971">[9d4e664f62]</a> Corey Farrell -- REF_DEBUG: Prevent logging of container node objects.</li>
+</ul><br><h4>Category: Core/Bridging</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26555">ASTERISK-26555</a>: Multi-party Video: Fix some post Asterisk-11 regressions<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e7dc536b7ae11abf0414b367d1125610dd858188">[e7dc536b7a]</a> Matt Jordan -- main/bridge_channel: Fix channel reference leak on video source</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7c824b955d4200c82805b3e07aa3af30c43fd09d">[7c824b955d]</a> Matt Jordan -- main/bridge: Add some verbose logging for video source changes</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fd6af2dee8016ac64b3c4943d8ded04767a0a752">[fd6af2dee8]</a> Matt Jordan -- bridges/bridge_softmix: Remove SSRC changes on join/leave; update video source</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25947">ASTERISK-25947</a>: Protocol transfers to stasis applications are missing the StasisStart with the replace_channel object.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a036c359036a4b8e6b51f53d51c707658cbf77ff">[a036c35903]</a> Richard Mudgett -- res_stasis: Handle re-enter stasis bridge with swap channel.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9942d50aa5cca7f864344069e924d9b254380638">[9942d50aa5]</a> Richard Mudgett -- bridge: Hold off more than one imparting channel at a time.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24782">ASTERISK-24782</a>: StasisEnd event not present for channel that was swapped out for another after completing attended transfer<br/>Reported by: John Bigelow<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a036c359036a4b8e6b51f53d51c707658cbf77ff">[a036c35903]</a> Richard Mudgett -- res_stasis: Handle re-enter stasis bridge with swap channel.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9942d50aa5cca7f864344069e924d9b254380638">[9942d50aa5]</a> Richard Mudgett -- bridge: Hold off more than one imparting channel at a time.</li>
+</ul><br><h4>Category: Core/BuildSystem</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26608">ASTERISK-26608</a>: Compile and link failures on OpenBSD<br/>Reported by: snuffy<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b213045fe4a32d4b41ca9a29af383b17a885ca35">[b213045fe4]</a> gtjoseph -- build:  Various OpenBSD issues</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26592">ASTERISK-26592</a>: Latest libedit (3.1) defaults to unicode and makes asterisk CLI read garbage<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5e0c22404316ecdf8e1510553474274eddf55e20">[5e0c224043]</a> gtjoseph -- cli:  Fix ast_el_read_char to work with libedit >= 3.1</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-22480">ASTERISK-22480</a>: Embedded pjproject: build.mak contains hardcoded full path to version.mak<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=61a5c3460ec23a623ac62633d055b34d4dded682">[61a5c3460e]</a> gtjoseph -- pjproject_bundled:  Remove usage of tar's --strip-components option</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26356">ASTERISK-26356</a>: menuselect: invalid test for GTK2<br/>Reported by: Tzafrir Cohen<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6f5880913f80372dd042ae4c9e874d9eab840f55">[6f5880913f]</a> Tzafrir Cohen -- menuselect: invalid test for GTK2</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26303">ASTERISK-26303</a>: [patch] BuildSystem: ca_list_path capabilities not detected in PJProject.<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=56e0aed17758b1cad338e84c5457824cee874d95">[56e0aed177]</a> Alexander Traud -- BuildSystem: Detect ca_list_path capabilities in external PJProject.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26038">ASTERISK-26038</a>: 'make install' doesn't seem to install OS/X init files<br/>Reported by: Tzafrir Cohen<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f24874ebb8686eb73817084385bb23727c19e85">[5f24874ebb]</a> Alexander Traud -- Makefile: Suppress echoing of target 'config' again.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a32616d60c380733da01c04008b84bc82086698d">[a32616d60c]</a> Tzafrir Cohen -- Makefile: remove OSARCH check for init install</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26046">ASTERISK-26046</a>: [patch] Avoid obsolete warnings on autoconf.<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=148cd1b319fae6b14b25965455b5b47aa16be469">[148cd1b319]</a> Alexander Traud -- BuildSystem: Avoid obsolete warning with pthread.m4 on autoconf.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a1bd57884d88821337b794b6ebc5a916be68596d">[a1bd57884d]</a> Alexander Traud -- BuildSystem: Avoid obsolete warning with libcurl.m4 on autoconf.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f0a0982439dc2e9ecb08ff914429141628ee64c">[5f0a098243]</a> Alexander Traud -- BuildSystem: Avoid obsolete warning with AC_TYPE_SIGNAL on autoconf.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e30602587cea1f2398c82874f964b85f27de9b8d">[e30602587c]</a> Alexander Traud -- BuildSystem: Avoid obsolete warning with AC_FUNC_SETVBUF_REVERSED on autoconf.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cbfa9f771e0756a4c8f76b68d65a936af2a55ace">[cbfa9f771e]</a> Alexander Traud -- BuildSystem: Avoid obsolete warning with HELP_STRING on autoconf.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25289">ASTERISK-25289</a>: Build System does not respect CFLAGS and CXXFLAGS when building menuselect<br/>Reported by: Jeffrey Walton<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3be6fa1e4b920fe1ccec67e4a78e101354a767d9">[3be6fa1e4b]</a> Alexander Traud -- BuildSystem: Allow own CFLAGS on ./configure.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26157">ASTERISK-26157</a>: Build:   Fix errors highlighted by GCC 6.x<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f3d236ca7fdf8b03106f1e50474ff6a79f3efb20">[f3d236ca7f]</a> gtjoseph -- BuildSystem:  Fix a few issues hightlighted by gcc 6.x</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26091">ASTERISK-26091</a>: [patch] ar cru creates warning, instead use ar cr<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d38b8e6399094805ad551f149ba6916ba80d7a6b">[d38b8e6399]</a> Alexander Traud -- BuildSystem: Avoid 'ar cru' and use 'ar cr' instead.</li>
+</ul><br><h4>Category: Core/CallCompletionSupplementaryServices</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-22732">ASTERISK-22732</a>: Deadlock potential in res_fax and CCSS with local channels.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8b4b2500ee010e9d6baf9454475d337d45c7c368">[8b4b2500ee]</a> Richard Mudgett -- res_fax: Fix deadlock in ast_channel_get_t38_state().</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e8d4f400226b9cb3110f287e15ca9521fc8af1e7">[e8d4f40022]</a> Richard Mudgett -- res_fax: Fix deadlock setting FAXMODE channel variable.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=35cf6c7702665af14e00bea0a5439137952b8aec">[35cf6c7702]</a> Richard Mudgett -- res_fax.c: Fix deadlock in fax_gateway_indicate_t38().</li>
+</ul><br><h4>Category: Core/Channels</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26331">ASTERISK-26331</a>: Crash on “core show channeltype Surrogate” in ast_format_cap_get_names<br/>Reported by: CGI.NET<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8d1c535bd66349edfa8e974866eba632e3ba4e95">[8d1c535bd6]</a> Richard Mudgett -- format_cap.c: Fix CLI "core show channeltype Surrogate" crash.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26306">ASTERISK-26306</a>: channel: Hang-up crashes, chan_pjsip not cleaning up properly<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=847bd47ff0d066ba5b205131f959e778beef897f">[847bd47ff0]</a> Alexander Traud -- channel: No hung-up on failing security requirements.</li>
+</ul><br><h4>Category: Core/CodecInterface</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26605">ASTERISK-26605</a>: codec_opus: Spammed warning when Opus negotiated but codec_opus not loaded.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ed0f1afc8cea8918171a1aabc9b6885bba41e3c4">[ed0f1afc8c]</a> Richard Mudgett -- codec_opus: Fix warning when Opus negotiated but codec_opus not loaded.</li>
+</ul><br><h4>Category: Core/Configuration</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25956">ASTERISK-25956</a>: Compilation error in conditionally compiled code in config_options.c<br/>Reported by: Chris Trobridge<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dd00c71aae12ddfb8af9ca5fab41b1badd50ca5a">[dd00c71aae]</a> Chris Trobridge -- config_options.c: Expand #ifdef to contain whole if statement.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25868">ASTERISK-25868</a>: Sorcery "append to category" should allow filters<br/>Reported by: Nick Repin<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=50b0922a22ec4ab42dca4bbc89fa49c8e1f5dd23">[50b0922a22]</a> gtjoseph -- config:  Allow filters when appending to a category</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25612">ASTERISK-25612</a>: Configuration parser handles unsigned integers as signed integers<br/>Reported by: Gianluca Merlo<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c6e4c48e67a78940e4dd17805ba74416023365ae">[c6e4c48e67]</a> Gianluca Merlo -- config: fix flags in uint option handler</li>
+</ul><br><h4>Category: Core/FileFormatInterface</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25998">ASTERISK-25998</a>: file: Crash when using nativeformats<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fa11f4c920226da3677a4e7ff95649994036462f">[fa11f4c920]</a> Joshua Colp -- file: Ensure nativeformats remains valid for lifetime of use.</li>
+</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26605">ASTERISK-26605</a>: codec_opus: Spammed warning when Opus negotiated but codec_opus not loaded.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ed0f1afc8cea8918171a1aabc9b6885bba41e3c4">[ed0f1afc8c]</a> Richard Mudgett -- codec_opus: Fix warning when Opus negotiated but codec_opus not loaded.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26509">ASTERISK-26509</a>: A few non-critical deprecation warnings when building on Ubuntu 16.10<br/>Reported by: Jonathan Harris<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bd4d7d8ad05bbe8d86b89429dfa55fbc3a0c108d">[bd4d7d8ad0]</a> Kevin Harwell -- stasis_recording/stored: remove calls to deprecated readdir_r function.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26466">ASTERISK-26466</a>: core: Be forgiving on external callerid that may be flawed so we don't drop events<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3c54328c572968a2e8e43257e1e521069a78379a">[3c54328c57]</a> Richard Mudgett -- Audit ast_json_pack() calls for needed UTF-8 checks.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7f8f1257381e1697a0347b101382d57ebf2c0b06">[7f8f125738]</a> Richard Mudgett -- json: Check party id name, number, subaddresses for UTF-8.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9621c9bcbca70f61605606db8517a789f53f8600">[9621c9bcbc]</a> Richard Mudgett -- json: Add UTF-8 check call.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26273">ASTERISK-26273</a>: core: Won't compile when LOW_MEMORY is enabled<br/>Reported by: Anthony Messina<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c9ce299b649471a10eecce2642420e04bdd12417">[c9ce299b64]</a> Corey Farrell -- core: Fix LOW_MEMORY missing symbol ast_pbx_uuid_get.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26331">ASTERISK-26331</a>: Crash on “core show channeltype Surrogate” in ast_format_cap_get_names<br/>Reported by: CGI.NET<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8d1c535bd66349edfa8e974866eba632e3ba4e95">[8d1c535bd6]</a> Richard Mudgett -- format_cap.c: Fix CLI "core show channeltype Surrogate" crash.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26267">ASTERISK-26267</a>: ast_register_atexit callbacks should be run on failed startup.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb043249b6c0cac14a0ed4497e39d53b1043b0c0">[cb043249b6]</a> Corey Farrell -- Run mandatory cleanup when startup fails.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26265">ASTERISK-26265</a>: Errors ignored from some parts of system initialization.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=805f105f8898beb0be0cdf5a7df653fdb03f730e">[805f105f88]</a> Corey Farrell -- Add missing checks during startup.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25996">ASTERISK-25996</a>: Remove "live_dangerously" requirement on DB(read)<br/>Reported by: Andrew Nagy<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=873fc0fda596aa33115821329dfc556848ac2e9d">[873fc0fda5]</a> Richard Mudgett -- pbx.c: Allow dangerous functions when adding a hint to dialplan.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26237">ASTERISK-26237</a>: Fax is detected on regular calls.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=159e437e5a3f48d97584e711e3b6163adb9cdff5">[159e437e5a]</a> Richard Mudgett -- dsp.c: Fix erroneous fax tone detection.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26191">ASTERISK-26191</a>: threadpool: Leak on duplicate taskprocessor for ast_threadpool_serializer_group<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=672a64bda3142a162f7c458ce7df2896805e9a1f">[672a64bda3]</a> Corey Farrell -- threadpool: Fix leak in ast_threadpool_serializer_group error path.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26119">ASTERISK-26119</a>: [patch] fix: memory leaks, resource leaks, out of bounds and bugs<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5ee205d8bb0dfbae5be89661aa3a787fbdf9986b">[5ee205d8bb]</a> Richard Mudgett -- ast_expr2: Fix off-nominal memory leak.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5134a8043a81b5b3d0b70ae3fbf7564f2526469a">[5134a8043a]</a> Alexei Gradinari -- fix: memory leaks, resource leaks, out of bounds and bugs</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26097">ASTERISK-26097</a>: [patch] CLI: show maximum file descriptors<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ca38a3cbb48a27160d764459123053f930a2bec6">[ca38a3cbb4]</a> Alexander Traud -- core: Not the configured but granted number of possible file descriptors.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0d84421f9315a974de821dd5ce99ce2c8728d3a2">[0d84421f93]</a> Alexander Traud -- astfd: Not maximum size of a single file but maximum file descriptors.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25894">ASTERISK-25894</a>: [patch] webrtc video broken due to missing marker bits in RTP streams<br/>Reported by: Jacek Konieczny<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0735a4d6d7a57a61b33ba267ee2f1ca5ffda95ea">[0735a4d6d7]</a> Jacek Konieczny -- frame.c: Copy the whole subclass in ast_frdup().</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25825">ASTERISK-25825</a>: Crashes during shutdown when running CLI commands<br/>Reported by: Mark Michelson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=59c8e189fddcbc861947143f48e5b86e4707b29a">[59c8e189fd]</a> Mark Michelson -- Restrict CLI/AMI commands on shutdown.</li>
+</ul><br><h4>Category: Core/HTTP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26126">ASTERISK-26126</a>: [patch] leverage 'bindaddr' for TLS in http.conf<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=76516bd79d7d9c8cf51b2359c2741db29d5bc54f">[76516bd79d]</a> Alexander Traud -- http: leverage 'bindaddr' for TLS in http.conf</li>
+</ul><br><h4>Category: Core/Logging</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26078">ASTERISK-26078</a>: core: Memory leak in logging<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e2132dd3588b10538f7c67a92aa26b9b4a5bf1b5">[e2132dd358]</a> Richard Mudgett -- logging,cdr,cel: Fix stringfield memory leak.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25538">ASTERISK-25538</a>: [patch]Missing PID in syslog logger messages<br/>Reported by: Javier Acosta<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=36d66a23e0afce16c89382ea9cbf5b60afd331f2">[36d66a23e0]</a> Alexei Gradinari -- logger: Add PID to syslog messages.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25407">ASTERISK-25407</a>: Asterisk fails to log to multiple syslog destinations<br/>Reported by: Elazar Broad<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=82e55e48835b3f71aa88c439ab406266b494d4f8">[82e55e4883]</a> Walter Doekes -- core/logging: Fix broken syslog levels on older glibc.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25510">ASTERISK-25510</a>: [patch]Log to syslog failing<br/>Reported by: Michael Newton<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=82e55e48835b3f71aa88c439ab406266b494d4f8">[82e55e4883]</a> Walter Doekes -- core/logging: Fix broken syslog levels on older glibc.</li>
+</ul><br><h4>Category: Core/ManagerInterface</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26537">ASTERISK-26537</a>: AMI: NewConnectedLine event is not documented<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=42bd70b29f5673ffead10c70cc4096c1410f4144">[42bd70b29f]</a> Etienne Lessard -- manager: Add documentation for NewConnectedLine event.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26397">ASTERISK-26397</a>: manager: PresenceState action crashes Asterisk 14<br/>Reported by: Andrew Nagy<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=323aff3a09b0a59de6e67be183e94fb15dd1e9a8">[323aff3a09]</a> Joshua Colp -- core: Ensure presencestate subtype and message are NULL.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26246">ASTERISK-26246</a>: Security: Privilege escalation by AMI adding dialplan extensions.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2735ec899aea9e5e54af8199208b8c91f5ca40b0">[2735ec899a]</a> Joshua Colp -- manager: Clarify that dialplan manipulation actions are under system class.</li>
+</ul><br><h4>Category: Core/PBX</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26226">ASTERISK-26226</a>: pbx: Asterisk crash on AMI action "ShowDialplan" when there's a circular dependency between contexts<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=27951792c4c6b410f51dbe55526f3166e6183a85">[27951792c4]</a> Etienne Lessard -- pbx.c: Prevent infinite recursion in manager_show_dialplan_helper.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26233">ASTERISK-26233</a>: pbx: Failure to remove inconsistent extension names<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9b822293bdb51e5f17116fe884d490d332b7bce4">[9b822293bd]</a> Corey Farrell -- pbx.c: Additional fixes to ast_context_remove_extension_callerid2.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=57e9c66819607fc8b391f7939a9b2487c032c11e">[57e9c66819]</a> Corey Farrell -- pbx.c: Fix handling of '-' in extension name and callerid</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26196">ASTERISK-26196</a>: pbx: Time based includes can leak timezone string<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a17b071e364a28f092dc9cfae8eda9e160106c78">[a17b071e36]</a> Corey Farrell -- pbx: Fix leak of timezone for time based includes.</li>
+</ul><br><h4>Category: Core/RTP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26311">ASTERISK-26311</a>: [patch] rtp_engine: Allow more than 32 dynamic payload types.<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0cf1778eed4754570a36938e1f5d212951320a71">[0cf1778eed]</a> Alexander Traud -- rtp_engine: Allow more than 32 dynamic payload types.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26367">ASTERISK-26367</a>: rtp: Timestamps broken when video frame is across multiple RTP packets<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1cac856e175efb57585448f0266b5eedd21c7d40">[1cac856e17]</a> Joshua Colp -- rtp: Preserve timestamps on video frames.</li>
+</ul><br><h4>Category: Core/SQLite3</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25996">ASTERISK-25996</a>: Remove "live_dangerously" requirement on DB(read)<br/>Reported by: Andrew Nagy<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=873fc0fda596aa33115821329dfc556848ac2e9d">[873fc0fda5]</a> Richard Mudgett -- pbx.c: Allow dangerous functions when adding a hint to dialplan.</li>
+</ul><br><h4>Category: Core/Sorcery</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26172">ASTERISK-26172</a>: res_sorcery_realtime: fix bug when successful sql UPDATE is treated as failed if there is no affected rows.<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b4a9fa2c9e2c7c5bae5b6bbb4a6fb7f021a1f2f6">[b4a9fa2c9e]</a> Alexei Gradinari -- res_sorcery_realtime: fix bug when successful UPDATE is treated as failed</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26014">ASTERISK-26014</a>: res_sorcery_astdb: Make tolerant of unknown fields<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ddcf983e392c6eeeb925109961697992f341e5d5">[ddcf983e39]</a> Joshua Colp -- res_sorcery_astdb: Filter fields to only the registered ones.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25826">ASTERISK-25826</a>: PJSIP / Sorcery slow load from realtime<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9c2032240e4974fc4b6212f411c86c7d673006e3">[9c2032240e]</a> Alexei Gradinari -- res_pjsip: improve realtime performance</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5aa5c49413a9b86f9e0d4456e580e3d536d33ef6">[5aa5c49413]</a> gtjoseph -- sorcery/res_pjsip:  Refactor for realtime performance</li>
+</ul><br><h4>Category: Core/Stasis</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26468">ASTERISK-26468</a>: ari: Bridge events stop working after this sequence of ARI calls<br/>Reported by: Daniele Pallastrelli<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3a1f9c5dab3fbb2159575d74721aa0f4ddc3d078">[3a1f9c5dab]</a> Joshua Colp -- res_stasis: Don't unsubscribe from a NULL bridge.</li>
+</ul><br><h4>Category: Core/UDPTL</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26034">ASTERISK-26034</a>: T.38 passthrough problem behind firewall due to early nosignal packet<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=935e0496c4b10604c100005cb3ebff594380486b">[935e0496c4]</a> gtjoseph -- udptl:  Don't eat sequence numbers until OK is received</li>
+</ul><br><h4>Category: Documentation</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26514">ASTERISK-26514</a>: Super Awesome Company: Don't specify transport in pjsip.conf<br/>Reported by: Rusty Newton<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=87903a684888f88a46746801262e7f14a2249d01">[87903a6848]</a> Rusty Newton -- SAC documentation: don't specify transports for endpoints and registrations</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25472">ASTERISK-25472</a>: Swagger scripts are not replacing format variable in file brief<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ff2378c73598b4df55ef1508c93bd97c480a4945">[ff2378c735]</a> Kevin Harwell -- rest-api: Swagger scripts were not replacing format variable in file brief</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26212">ASTERISK-26212</a>: [patch] Makefile: Retain XML Declaration and DTD in docs.<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=021d4892cdb44eb11c68a7f468dfc609b28e86bf">[021d4892cd]</a> Alexander Traud -- Makefile: Retain XML Declaration and DTD in docs.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25927">ASTERISK-25927</a>: Removed option "registertrying" is still documented in sip.conf.sample<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6aeefa89bc4f415b9b9282b6e29a8643eaa44e8b">[6aeefa89bc]</a> Leif Madsen -- Remove reference to non-existent sip.conf option</li>
+</ul><br><h4>Category: Features</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26444">ASTERISK-26444</a>: 'features show' command in CLI does not return prompt.<br/>Reported by: John Kiniston<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c2036c827cb22e2fbf509d4318b6f177d516c033">[c2036c827c]</a> snuffy -- Fix issue with CLI not returning to prompt after running "features show"</li>
+</ul><br><h4>Category: Features/Parking</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26029">ASTERISK-26029</a>: parking: ast_parking_park_call should return parking_space instead of parking_exten<br/>Reported by: Diederik de Groot<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9453d1187ab1258166ae2fd8185ffb7b6e2c4575">[9453d1187a]</a> Richard Mudgett -- parking.h: Update ast_parking_park_call() doxygen to reality.</li>
+</ul><br><h4>Category: Formats/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26426">ASTERISK-26426</a>: format_ogg_opus: remove from source<br/>Reported by: Kevin Harwell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2449d2877c94c7252350535680bb2ed869387e3e">[2449d2877c]</a> Kevin Harwell -- Remove "format_ogg_opus: New format"</li>
+</ul><br><h4>Category: Functions/func_aes</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25857">ASTERISK-25857</a>: func_aes: incorrect use of strlen() leads to data corruption<br/>Reported by: Gianluca Merlo<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=aa2fcd244eaf9e6099479d289f1833ae471fb2ba">[aa2fcd244e]</a> Gianluca Merlo -- func_aes: fix misuse of strlen on binary data</li>
+</ul><br><h4>Category: Functions/func_curl</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26211">ASTERISK-26211</a>: Unit tests: AST_TEST_DEFINE should be used in conditional code.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c8e41d14a1478b46a6c986a4c30ba2c8bdf86cd5">[c8e41d14a1]</a> Corey Farrell -- Unit tests: Use AST_TEST_DEFINE in conditional code only.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25669">ASTERISK-25669</a>: [patch]CURL incorrect trim for non ASCII characters<br/>Reported by: Jesper<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9ddaab789eb1ac5afc440ab751ad1b2288ce35e0">[9ddaab789e]</a> Jesper -- func_curl: Don't trim response text on non-ASCII characters</li>
+</ul><br><h4>Category: Functions/func_odbc</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25984">ASTERISK-25984</a>: res_odbc relies on res_odbc_transaction, but it's not mandatory to compile it<br/>Reported by: József Dudás<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4c1ae07d51da3d8fe7967e48b74eeb685449bf78">[4c1ae07d51]</a> gtjoseph -- res_odbc:  Correct the dependency relationship with res_odbc_transaction</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26177">ASTERISK-26177</a>: func_odbc: Database handle is kept when it should be released<br/>Reported by: Leandro Dardini<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=17efed6cf77d936c8e007c5d6afcd37acdc5b880">[17efed6cf7]</a> Joshua Colp -- func_odbc: Fix connection deadlock.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25938">ASTERISK-25938</a>: res_odbc: MySQL/MariaDB statement LAST_INSERT_ID() always returns zero.<br/>Reported by: Edwin Vandamme<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cd89501d48b516ef03957bd39cdd8180b4684a56">[cd89501d48]</a> Alexei Gradinari -- func_odbc: single database connection should be optional</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=068ae54c76cc12ad87451ae44cedf252039e0956">[068ae54c76]</a> Mark Michelson -- func_odbc: Use one connection per DSN.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25963">ASTERISK-25963</a>: func_odbc requires reconnect checks for stale connections<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=677d5b515151b51ed8be5e760ce0c7b99dae2761">[677d5b5151]</a> Mark Michelson -- func_odbc: Check connection status before executing queries.</li>
+</ul><br><h4>Category: Functions/func_strings</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25669">ASTERISK-25669</a>: [patch]CURL incorrect trim for non ASCII characters<br/>Reported by: Jesper<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9ddaab789eb1ac5afc440ab751ad1b2288ce35e0">[9ddaab789e]</a> Jesper -- func_curl: Don't trim response text on non-ASCII characters</li>
+</ul><br><h4>Category: General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26575">ASTERISK-26575</a>: testsuite: Need to check PJSIP functionality when res_srtp is not loaded.<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b70eb07c53d041e868ced079759471220f78bf50">[b70eb07c53]</a> Joshua Colp -- res_pjsip_sdp_rtp: Reject offer of required SRTP without res_srtp.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25070">ASTERISK-25070</a>: Fix FTBFS on Hurd<br/>Reported by: Gabriele Giacone<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=94c9496ed5a73a83ac26c58f8ae049acccc0fd51">[94c9496ed5]</a> Tzafrir Cohen -- netsock.c: fix includes for HURD</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c1c9487375f4dc80c5425a9ccfd407f3fa849ac3">[c1c9487375]</a> Tzafrir Cohen -- define PATH_MAX for HURD</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26387">ASTERISK-26387</a>: Asterisk segfaults shortly after starting even with no active calls. <br/>Reported by: Harley Peters<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d7f457e4c15235e33add6eb66158df0fbd9bf0b5">[d7f457e4c1]</a> Richard Mudgett -- bundled pjproject: Crashes while resolving DNS names.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26513">ASTERISK-26513</a>: tests/channels/pjsip/qualify/auth: Crashing enough to be a nuisance<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f373de302032c13487cfcaa616fc070f10d68b57">[f373de3020]</a> Corey Farrell -- Fix shutdown crash caused by modules being left open.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26421">ASTERISK-26421</a>: Segmentation Fault with ARI originate into mixing bridge with 43 clients<br/>Reported by: Andrew Nagy<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eff97808fb95e4f9de13c90990f8ef5435352f31">[eff97808fb]</a> Mark Michelson -- ARI: Detect duplicate channel IDs</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=012fda29d23bac1d2b06e9a8933980047da30246">[012fda29d2]</a> Mark Michelson -- CDR: Alter destruction pattern for CDR chains.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26480">ASTERISK-26480</a>: [patch] CLI: core set debug: Auto-completes File not Module<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=662b560c3531d8b70bdf8b91e68ae965926663cd">[662b560c35]</a> Alexander Traud -- cli: Auto-complete File not Module for core set debug.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26268">ASTERISK-26268</a>: alembic: 'auth_username' not in PJSIP 'identify_by' enum<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5913929d312c2f3668ac11b62734694adbf52462">[5913929d31]</a> Kevin Harwell -- alembic: add auth_username to endpoint's identify_by enum</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26227">ASTERISK-26227</a>: sqlalchemy error due to long identifier name<br/>Reported by: Mark Michelson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eda95236d10f4bd0d772efc29a0a2ad270db8c32">[eda95236d1]</a> Mark Michelson -- Fix sqlalchemy error regarding identifier length.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26180">ASTERISK-26180</a>: PJSIP: provide valid tcp nodelay option for reuse<br/>Reported by: Scott Griepentrog<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e26bd15e7a79d21ba0963d8ce38ec43e4550e225">[e26bd15e7a]</a> Scott Griepentrog -- PJSIP: provide valid tcp nodelay option for reuse</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26132">ASTERISK-26132</a>: PJSIP: provide transport type with received messages<br/>Reported by: Scott Griepentrog<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=69d58a1e377938e5236f51200e222eb219739441">[69d58a1e37]</a> Scott Griepentrog -- PJSIP: provide transport type with received messages</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25777">ASTERISK-25777</a>: data race in threadpool<br/>Reported by: Badalian Vyacheslav<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a42bea3314fab798b3ef6f73c6a47d925621127c">[a42bea3314]</a> Corey Farrell -- threadpool: Fix potential data race.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25978">ASTERISK-25978</a>: res_pjsip_authenticator_digest: Should not use source port in nonce verification<br/>Reported by: Mark Michelson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4d063814ba50438b70cd37a5ddf0a234d1892724">[4d063814ba]</a> Kevin Harwell -- res_pjsip_authenticator_digest: Don't use source port in nonce verification</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25948">ASTERISK-25948</a>: ast_pthread_mutex_lock calling ast_reentrancy_lock with lt=0x0<br/>Reported by: Diederik de Groot<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e750ea9b5bae47dc6127631dfefc4fb969ab9160">[e750ea9b5b]</a> Diederik de Groot -- lock.c: Check *lt before dereferencing it</li>
+</ul><br><h4>Category: Resources/res_agi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26343">ASTERISK-26343</a>: ASTERISK-25951 causes issues for callerid manipulation through agi<br/>Reported by: Morten Tryfoss<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=404596b79017611c47cfd2e260207ace1dbb9208">[404596b790]</a> gtjoseph -- channel:  Fix issues in hangup scenarios caused by frame deferral</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2e3a3545754749de21873bfdc6d1a40ec7d8893f">[2e3a354575]</a> Mark Michelson -- autoservice: Use frame deferral API</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5c10091f3d1430c6fc04015226f8c3e3aa9d8282">[5c10091f3d]</a> Mark Michelson -- AGI: Only defer frames when in an interception routine.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9231a56cf3d6f5eca1bf2d37d827453400690773">[9231a56cf3]</a> Mark Michelson -- Add API for channel frame deferral.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25951">ASTERISK-25951</a>: res_agi:  run_agi eats frames it shouldn't<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eb7c58180686b90b359fbf6c05c102ffc0b79856">[eb7c581806]</a> gtjoseph -- res_agi:  Prevent run_agi from eating frames it shouldn't</li>
+</ul><br><h4>Category: Resources/res_ari</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25492">ASTERISK-25492</a>: ARI: Path parameters are case sensitive<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2edcfcf1eb091c9613f4257381fe8c22df7d6121">[2edcfcf1eb]</a> gtjoseph -- ari:  Add documentation that path parameters are case-sensitive</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25941">ASTERISK-25941</a>: chan_pjsip: Crash on an immediate SIP final response<br/>Reported by: Javier Riveros <ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c0b190dd9ab71904b0e0e8492edfdbd6e538e9e1">[c0b190dd9a]</a> Mark Michelson -- res_pjsip: Match dialogs on responses better.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25964">ASTERISK-25964</a>: Outbound registrations created via ARI/push configuration do not clean up outbound registrations currently in flight<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3f6ef63099d58d0aa74895156e8038eb44180ea8">[3f6ef63099]</a> gtjoseph -- res_pjsip_outbound_registration:  Clean up state when registration is deleted</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25882">ASTERISK-25882</a>: ARI: Crash can occur due to race condition when attempting to operate on a hung up channel (Part 2)<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ecf4102d02db03923adfcce7408ab25c3fdbb7c1">[ecf4102d02]</a> Richard Mudgett -- res_stasis: Add control ref to playback and recording structs.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a179aba65e117afb6480d8396e92df2e5d2d4628">[a179aba65e]</a> Richard Mudgett -- res_stasis: Fix crash on a hanging up channel.</li>
+</ul><br><h4>Category: Resources/res_ari_bridges</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26468">ASTERISK-26468</a>: ari: Bridge events stop working after this sequence of ARI calls<br/>Reported by: Daniele Pallastrelli<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3a1f9c5dab3fbb2159575d74721aa0f4ddc3d078">[3a1f9c5dab]</a> Joshua Colp -- res_stasis: Don't unsubscribe from a NULL bridge.</li>
+</ul><br><h4>Category: Resources/res_ari_channels</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26070">ASTERISK-26070</a>: ari/channels:  Creating a local channel without an originator adds all audio formats to it's capabilities<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c27c2320574902117b1c2e66f210640eb606a736">[c27c232057]</a> gtjoseph -- ari/resource_channels:  Add 'formats' to channel create/originate</li>
+</ul><br><h4>Category: Resources/res_config_odbc</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26263">ASTERISK-26263</a>: SQL error when using realtime and registering extension / inserting into ps_contacts<br/>Reported by: Jeppe Ryskov Larsen<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cdbad152c79a042341288069f0713f6cc4a92410">[cdbad152c7]</a> Richard Mudgett -- res_config_odbc.c: Fix buffer size limitation creating invalid SQL.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26172">ASTERISK-26172</a>: res_sorcery_realtime: fix bug when successful sql UPDATE is treated as failed if there is no affected rows.<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b4a9fa2c9e2c7c5bae5b6bbb4a6fb7f021a1f2f6">[b4a9fa2c9e]</a> Alexei Gradinari -- res_sorcery_realtime: fix bug when successful UPDATE is treated as failed</li>
+</ul><br><h4>Category: Resources/res_fax</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26203">ASTERISK-26203</a>: res_fax: Deadlock when using FAXOPT(gateway)=yes with Local channels<br/>Reported by: Etienne Lessard<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8b4b2500ee010e9d6baf9454475d337d45c7c368">[8b4b2500ee]</a> Richard Mudgett -- res_fax: Fix deadlock in ast_channel_get_t38_state().</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e8d4f400226b9cb3110f287e15ca9521fc8af1e7">[e8d4f40022]</a> Richard Mudgett -- res_fax: Fix deadlock setting FAXMODE channel variable.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=35cf6c7702665af14e00bea0a5439137952b8aec">[35cf6c7702]</a> Richard Mudgett -- res_fax.c: Fix deadlock in fax_gateway_indicate_t38().</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-22732">ASTERISK-22732</a>: Deadlock potential in res_fax and CCSS with local channels.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8b4b2500ee010e9d6baf9454475d337d45c7c368">[8b4b2500ee]</a> Richard Mudgett -- res_fax: Fix deadlock in ast_channel_get_t38_state().</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e8d4f400226b9cb3110f287e15ca9521fc8af1e7">[e8d4f40022]</a> Richard Mudgett -- res_fax: Fix deadlock setting FAXMODE channel variable.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=35cf6c7702665af14e00bea0a5439137952b8aec">[35cf6c7702]</a> Richard Mudgett -- res_fax.c: Fix deadlock in fax_gateway_indicate_t38().</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26216">ASTERISK-26216</a>: res_fax: Deadlock when detect fax while channel executing Playback<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dcb8aa8c1c1207a6ee0c8f9f158154254ab63ec8">[dcb8aa8c1c]</a> Richard Mudgett -- chan_dahdi.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fa91cf3eeca1ee3b2bdb5e3d685de7100702ff21">[fa91cf3eec]</a> Richard Mudgett -- chan_sip.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2e1bdc3775d7b22a3364b7a3aaa07c463043ac9b">[2e1bdc3775]</a> Richard Mudgett -- chan_pjsip.c: Fix deadlock potential in fax redirection.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=628e8c91d5c6a3e745bdb37e6593fd838b006393">[628e8c91d5]</a> Richard Mudgett -- res_fax.c: Fix deadlock potential in FAXOPT(faxdetect) framehook.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26214">ASTERISK-26214</a>: Allow arbitrary time for fax detection to end on a channel<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=676aeede3643dbe9b79fd7117ce7e335f236d151">[676aeede36]</a> Richard Mudgett -- res_fax: Fix FAXOPT(faxdetect) timeout option.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=652130feb2c200a0f3fec500877255ebabbae28a">[652130feb2]</a> Richard Mudgett -- chan_dahdi: Add faxdetect_timeout option.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=851b1c3a177e06660aeeb92b29a0d3e267ddb61b">[851b1c3a17]</a> Richard Mudgett -- res_pjsip: Add fax_detect_timeout endpoint option.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26141">ASTERISK-26141</a>: res_fax: fax_v21_session_new leaks reference to v21_details<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3d904659ec3aa23565aa54690961048be7ec7f4c">[3d904659ec]</a> Corey Farrell -- res_fax: Fix reference leak in fax_v21_session_new.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25982">ASTERISK-25982</a>: [patch]res_fax/t38_gateway: Peer V.21 session is created on wrong channel<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2d17fe06c55eedb2c0429af5f13d0589cf1866d0">[2d17fe06c5]</a> Alexei Gradinari -- res_fax/t38_gateway: Peer V.21 session is created on wrong channel</li>
+</ul><br><h4>Category: Resources/res_hep</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26096">ASTERISK-26096</a>: res_hep: Crash when configuration file is missing<br/>Reported by: Niklas Larsson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eabb398d71772ee47c81220faba2781d4f4fbf2a">[eabb398d71]</a> Matt Jordan -- res_hep_{pjsip|rtcp}: Decline module loads if res_hep had not loaded</li>
+</ul><br><h4>Category: Resources/res_hep_rtcp</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25352">ASTERISK-25352</a>: res_hep_rtcp correlation_id is different then res_hep<br/>Reported by: Kevin Scott Adams<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=89ae4466eacc6ae2bef56b2e10000046be7ae2c0">[89ae4466ea]</a> Matt Jordan -- res_hep: Provide an option to pick the UUID type</li>
+</ul><br><h4>Category: Resources/res_jabber</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24425">ASTERISK-24425</a>: [patch] jabber/xmpp to use TLS instead of SSLv3, security fix POODLE (CVE-2014-3566)<br/>Reported by: abelbeck<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b1fe070d0bc26088cddffa5befd64fad7130f0ee">[b1fe070d0b]</a> Alexander Traud -- sip.conf: tlsclientmethod is using sslv23 as default.</li>
+</ul><br><h4>Category: Resources/res_odbc</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26389">ASTERISK-26389</a>: res_odbc: Clean up pooling options<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=10c180760ccd34e39d8cd3a8ca48cfde7adb7a84">[10c180760c]</a> Joshua Colp -- res_odbc: Make pooling option deprecation notice more useful.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f16ab192922b6532e653bde41ceb7dd33e73e04e">[f16ab19292]</a> Joshua Colp -- odbc: Remove options that are no longer applicable.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25984">ASTERISK-25984</a>: res_odbc relies on res_odbc_transaction, but it's not mandatory to compile it<br/>Reported by: József Dudás<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4c1ae07d51da3d8fe7967e48b74eeb685449bf78">[4c1ae07d51]</a> gtjoseph -- res_odbc:  Correct the dependency relationship with res_odbc_transaction</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26074">ASTERISK-26074</a>: res_odbc: Deadlock within UnixODBC<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=321a9b128fdc8dd59ea720fd50691a3a32c0d934">[321a9b128f]</a> Joshua Colp -- res_odbc: Implement a connection pool.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25938">ASTERISK-25938</a>: res_odbc: MySQL/MariaDB statement LAST_INSERT_ID() always returns zero.<br/>Reported by: Edwin Vandamme<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cd89501d48b516ef03957bd39cdd8180b4684a56">[cd89501d48]</a> Alexei Gradinari -- func_odbc: single database connection should be optional</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=068ae54c76cc12ad87451ae44cedf252039e0956">[068ae54c76]</a> Mark Michelson -- func_odbc: Use one connection per DSN.</li>
+</ul><br><h4>Category: Resources/res_parking</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24605">ASTERISK-24605</a>: res_parking option parkeddynamic does not work with the core Features 'parkcall' (DTMF initiated parking)<br/>Reported by: Philip Correia<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=50f90d409948770e9453b4f5d769b4ae6478f6b1">[50f90d4099]</a> Philip Correia -- res_parking: Fix blind transfer dynamic lots creation.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6f95b5eda19850a7e4dd140b2d7e7bd8d10dcf18">[6f95b5eda1]</a> Philip Correia -- res_parking: Update parking documentation for dynamic parking lots.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24596">ASTERISK-24596</a>: Unclear how to use Park application with res_parking 'parkeddynamic' enabled. Documentation?<br/>Reported by: Philip Correia<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6f95b5eda19850a7e4dd140b2d7e7bd8d10dcf18">[6f95b5eda1]</a> Philip Correia -- res_parking: Update parking documentation for dynamic parking lots.</li>
+</ul><br><h4>Category: Resources/res_phoneprov</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26119">ASTERISK-26119</a>: [patch] fix: memory leaks, resource leaks, out of bounds and bugs<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5ee205d8bb0dfbae5be89661aa3a787fbdf9986b">[5ee205d8bb]</a> Richard Mudgett -- ast_expr2: Fix off-nominal memory leak.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5134a8043a81b5b3d0b70ae3fbf7564f2526469a">[5134a8043a]</a> Alexei Gradinari -- fix: memory leaks, resource leaks, out of bounds and bugs</li>
+</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26516">ASTERISK-26516</a>: pjsip: Memory corruption with possible memory leak.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e632222bc41d860af7de2463c35de60387a2f295">[e632222bc4]</a> Richard Mudgett -- res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=afecb2cfc084db522cf570aa2210056b1c396196">[afecb2cfc0]</a> Richard Mudgett -- bundled pjproject: Fix DNS write to freed memory.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26453">ASTERISK-26453</a>: res_pjsip_config_wizard: Memory leak in module_unload<br/>Reported by: Badalian Vyacheslav<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a884b26392c2199efb8d443f88551e83418e3176">[a884b26392]</a> Badalyan Vyacheslav -- vector: After remove element recheck index</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9da3489d247775fb06bee40fe4cf26640681fb93">[9da3489d24]</a> Badalyan Vyacheslav -- res_pjsip_config_wizard: Memory leak in module_unload</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26375">ASTERISK-26375</a>: res_pjsip_transport_management: Log message states seconds, but time value is milliseconds<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9df4056d70ceeaad2093a7a81b73e093f8601860">[9df4056d70]</a> Joshua Colp -- res_pjsip_transport_management: Convert time in log message to seconds.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26264">ASTERISK-26264</a>: res_pjsip: Crash when applying ACL from non-existent endpoint<br/>Reported by: nappsoft<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f1ffc22933167608db27ccdae8082ae83254d2e4">[f1ffc22933]</a> Mark Michelson -- res_pjsip: Do not crash on ACKs from unknown endpoints.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26269">ASTERISK-26269</a>: res_pjsip: Wrong state for aors without registered contacts after startup<br/>Reported by: nappsoft<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c16ef02318201f9db2e26512ec66cd62ec878d04">[c16ef02318]</a> Mark Michelson -- res_pjsip: Default endpoints to the "offline" status.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-22374">ASTERISK-22374</a>: Finish mapping the sip.conf parameters to res_sip.conf parameters<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a628009eb9c883947b57762dc81c216a9a89112b">[a628009eb9]</a> Alexander Traud -- sip_to_pjsip: Add cert_file.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cab6975b02b55b8b91560b5a186c6f82a4d7ee55">[cab6975b02]</a> Kevin Harwell -- sip_to_pjsip: Set correct tls transport method</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2381ddde63489b8601c9514111838fb4656610b4">[2381ddde63]</a> Alexander Traud -- sip_to_pjsip: Map the TLS method correctly.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6500f5e138d21589cde9bf0c76ccecefa2b7a71d">[6500f5e138]</a> Alexander Traud -- sip_to_pjsip: Add compactheaders, timerb, timert1, and useragent.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=21e9c69e566fd5c9abf2ab7f73fa2cfa82c82caa">[21e9c69e56]</a> Alexander Traud -- sip_to_pjsip: Map (session-)timers correctly.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c9a97398f7d9953e4ba404580b5043a102f1a739">[c9a97398f7]</a> Alexander Traud -- sip_to_pjsip: Write username even without authname.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=60275359bc6646a6000dbaf1e262763f409fb6fe">[60275359bc]</a> Alexander Traud -- sip_to_pjsip: Parse register even with transport.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0d479232ebf423c454b75051c83b35476ce7e688">[0d479232eb]</a> Alexander Traud -- sip_to_pjsip: Write local_net, contact_acl, contact_deny, and contact_permit.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cbc1b2d020fbafbfee1da0adb81ecdfefad6cffb">[cbc1b2d020]</a> Alexander Traud -- sip_to_pjsip: Map externhost/ip to Transports.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f33e995343f2ac0ddc5d061e4a4d84440212df0">[5f33e99534]</a> Alexander Traud -- sip_to_pjsip: Add defaultexpiry, maxexpiry, and minexpiry.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=231ea0350d644194233a15112eff020a88eca436">[231ea0350d]</a> Alexander Traud -- sip_to_pjsip: Write media_encryption.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=23eb06512170cd308d3d5caec09fb3372d61f256">[23eb065121]</a> Alexander Traud -- sip_to_pjsip: Write cos and tos.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0b675a208bd6ee75cf1937b3dbf12fbb826a44e8">[0b675a208b]</a> Alexander Traud -- sip_to_pjsip: Add cert_file and ca_list_path.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26305">ASTERISK-26305</a>: Asterisk 14: Two resolver unbound testsuite tests fail<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1cd12d73a60aaf8a6940ebf5d7791c4c9d5409ac">[1cd12d73a6]</a> Richard Mudgett -- res_pjsip_session.c: Fix unbound srv failover tests.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26241">ASTERISK-26241</a>: res_pjsip:  When using compact headers, rpid and pai are incorrectly generated<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4d5e96ab53f7076496e62b251dd349f320120d88">[4d5e96ab53]</a> gtjoseph -- res_pjsip_caller_id:  Copy header name to short header name</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26238">ASTERISK-26238</a>: res_pjsip: Empty global default_from_user causes crash<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=143df33110e61328a3c57cbcbeb63dd949f5680e">[143df33110]</a> gtjoseph -- res_pjsip:  Fail global load if debug or default_from_user are empty</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26145">ASTERISK-26145</a>: pjsip: Deadlock with suspend + masquerade + indicate<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1589452fdc044dc6233e73e87c0e3735c97a5495">[1589452fdc]</a> Alexei Gradinari -- pjsip: Fix deadlock with suspend taskprocessor on masquerade</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26206">ASTERISK-26206</a>: [patch] res_pjsip: Use more compatible regex for get all<br/>Reported by: Dmitry<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=102d28c11a0f74c275613f893e9708b5ab2b4e11">[102d28c11a]</a> Joshua Colp -- sorcery: Use more compatible regex for local expressions.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26256">ASTERISK-26256</a>: [patch] SIP/SDP origin (o=) contains brackets with IP6<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b78d10a2dfcf605e8abcfdd070b75f992625ce7a">[b78d10a2df]</a> Alexander Traud -- res_pjsip: SIP/SDP origin (o=) contained square brackets on IP6 transports.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26174">ASTERISK-26174</a>: res_pjsip: Crash when freeing cloned message in distributor<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5997ec7c9e70f3b12afb948c421355fb87aed44e">[5997ec7c9e]</a> Alexei Gradinari -- res_pjsip_pubsub: fixed a bug when pjsip_tx_data_dec_ref is called twice.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26211">ASTERISK-26211</a>: Unit tests: AST_TEST_DEFINE should be used in conditional code.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c8e41d14a1478b46a6c986a4c30ba2c8bdf86cd5">[c8e41d14a1]</a> Corey Farrell -- Unit tests: Use AST_TEST_DEFINE in conditional code only.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26160">ASTERISK-26160</a>: pjsip: Updated->Reachable during qualify<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=97b4c7a5b42eb84eaeaf9ec3f524de40e1d7fd74">[97b4c7a5b4]</a> Richard Mudgett -- res_pjsip: Fix statsd regression.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25772">ASTERISK-25772</a>: res_pjsip: Unexpected two BYE when answered<br/>Reported by: Dmitriy Serov<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=359134c8d3a0720baee28e1f7054609875018535">[359134c8d3]</a> Richard Mudgett -- res_pjsip_session.c: Don't send extra BYE if SDP invalid.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5fabcf2ca1d66ce6dbaac26eb3f0cf619e539454">[5fabcf2ca1]</a> Richard Mudgett -- res_pjsip_session.c: End call on initial invalid SDP negotiation.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=38a4e983dcf0d83006be1c50982fd62fdc6ea1a3">[38a4e983dc]</a> Richard Mudgett -- res_pjsip.c: Register PJMEDIA error code decoder.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26061">ASTERISK-26061</a>: [patch] res_pjsip: improve realtime performance - remove updating all endpoints status on startup<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b3c787d1ddd36eb7dfa0906b92a83ab23d8741cd">[b3c787d1dd]</a> Alexei Gradinari -- res_pjsip: improve realtime performance #2</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25941">ASTERISK-25941</a>: chan_pjsip: Crash on an immediate SIP final response<br/>Reported by: Javier Riveros <ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c0b190dd9ab71904b0e0e8492edfdbd6e538e9e1">[c0b190dd9a]</a> Mark Michelson -- res_pjsip: Match dialogs on responses better.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26007">ASTERISK-26007</a>: res_pjsip: Endpoints deleting early after upgrade from 13.8.2 to 13.9<br/>Reported by: Greg Siemon<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=02d30e171e439b52b0914ea87e427e175f371ad7">[02d30e171e]</a> Mark Michelson -- Use doubles instead of floats for conversions when comparing strings.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26004">ASTERISK-26004</a>: res_pjsip:  The transport/method parameter is ignored<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fb6227a37289e51931574ba33dd836e10ea5e5c7">[fb6227a372]</a> gtjoseph -- config_transport:  Tell pjproject to allow all SSL/TLS protocols</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25928">ASTERISK-25928</a>: res_pjsip: URI validation done outside of PJSIP thread<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=efae187217750e322cd6167705a33f888b631427">[efae187217]</a> Mark Michelson -- PJSIP: Remove PJSIP parsing functions from uri length validation.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25796">ASTERISK-25796</a>: res_pjsip: DOS/Crash when TCP/TLS sockets exceed pjproject PJ_IOQUEUE_MAX_HANDLES<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7fb3724a777a6a0c3c56c90c63a9a3953af96283">[7fb3724a77]</a> Mark Michelson -- res_pjsip_transport_management: Kill idle TCP connections.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=707fd4dcd0514c6b8576a18e03a8f0dd317d9915">[707fd4dcd0]</a> Mark Michelson -- Rename res_pjsip_keepalive res_pjsip_transport_management</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25707">ASTERISK-25707</a>: Long contact URIs or hostnames can crash pjproject/Asterisk under certain conditions<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0b4bb19e0b432d41c23f3defc07abd56b45923ae">[0b4bb19e0b]</a> Mark Michelson -- AST-2016-004: Fix crash on REGISTER with long URI.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25123">ASTERISK-25123</a>: Bracketed IPv6 Contact header parameter unparsable with Asterisk/PJSIP<br/>Reported by: Anthony Messina<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cf15a2f2d30e5ec0936ea921a8541a5cca40f63a">[cf15a2f2d3]</a> gtjoseph -- pjproject:  Add patch for removing strip of '[]' from header params</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25914">ASTERISK-25914</a>: PJSIP: failed registration with wrong codec name on allow/disallow<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=64ecd41c8f432a913eb7e9fdc9be746e4b15cd8c">[64ecd41c8f]</a> Alexei Gradinari -- Codecs: strip codec name while parsing allow/disallow options</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25885">ASTERISK-25885</a>: res_pjsip: Race condition between adding contact and automatic expiration<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fe7e48db03de03c232cc5af28e37ce08c5ccd3d8">[fe7e48db03]</a> gtjoseph -- res_pjsip contact:  Lock expiration/addition of contacts</li>
+</ul><br><h4>Category: Resources/res_pjsip/Bundling</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26416">ASTERISK-26416</a>: pjproject-bundled: configure fails to check for all required utilities<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ce4cfd2ecafb2abca9e6b8d9e1f74a5708b27c87">[ce4cfd2eca]</a> Corey Farrell -- Fix issues with bundled pjproject cached download.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e6b0053d7561032b7adbf6f3afaecf30f5046605">[e6b0053d75]</a> gtjoseph -- bundled_pjproject:  Add tests for programs used by the Makefile, et al.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26148">ASTERISK-26148</a>: pjsip: Cannot compile 13.10.0-rc1: "libasteriskpj.so: undefined reference to..."<br/>Reported by: Hans van Eijsden<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=972cee2e4c402df3ddce237951e9d54281093be4">[972cee2e4c]</a> gtjoseph -- pjproject_bundled:  Update for pjproject 2.5.5</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25873">ASTERISK-25873</a>: res_pjsip: Bundled pjproject: compile error, cannot find -lasteriskpj<br/>Reported by: Hans van Eijsden<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=964f54bd5d9fff378a48cbaed9b7f819df6cdde6">[964f54bd5d]</a> gtjoseph -- pjproject_bundled:  Fix use of LDCONFIG for shared library link creation</li>
+</ul><br><h4>Category: Resources/res_pjsip_caller_id</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26307">ASTERISK-26307</a>: res_pjsip_caller_id: Crash on outgoing change<br/>Reported by: Bill Brigden<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=675c71ae8ca9fc086a5da21a5abcb7ef72506343">[675c71ae8c]</a> Joshua Colp -- res_pjsip_caller_id: Fix crash on session timers UPDATE on inbound calls.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26316">ASTERISK-26316</a>: res_pjsip_callerid: Irregular URI causes unexpected callerid<br/>Reported by: Kevin Harwell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e9ddab4685b9aab5ac23a98c78ea45f8aa2e3341">[e9ddab4685]</a> Richard Mudgett -- sip_to_pjsip.py: Map legacy_useroption_parsing.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=30af92e78d36523f8012da5eb9aee16687d8fe61">[30af92e78d]</a> Richard Mudgett -- res_pjsip: Add ignore_uri_user_options option.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25942">ASTERISK-25942</a>: res_pjsip_caller_id: Transfer results in mixed ConnectedLine information<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=516c626a7d59bba52ae5e556d90dd6b6aa068a86">[516c626a7d]</a> gtjoseph -- res_pjsip_callerid:  Clear out display name if id->name is not valid</li>
+</ul><br><h4>Category: Resources/res_pjsip_logger</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26239">ASTERISK-26239</a>: res_pjsip_logger:  An empty global/debug option is treated as a "match all" hostname<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=143df33110e61328a3c57cbcbeb63dd949f5680e">[143df33110]</a> gtjoseph -- res_pjsip:  Fail global load if debug or default_from_user are empty</li>
+</ul><br><h4>Category: Resources/res_pjsip_multihomed</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26374">ASTERISK-26374</a>: res_pjsip_multihomed: Contact port is rewritten for connectionful protocols<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=449719be008f8b7073d350f587c93159afa8f37f">[449719be00]</a> Joshua Colp -- res_pjsip_multihomed: Change Contact port to listening port.</li>
+</ul><br><h4>Category: Resources/res_pjsip_mwi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26200">ASTERISK-26200</a>: [patch] res_pjsip_mwi: improve realtime performance - remove unneeded check on endpoint's contacts.<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb58f853e1bccb1b9ba1df458234052fc14c822f">[cb58f853e1]</a> Alexei Gradinari -- res_pjsip_mwi: remove unneeded check on endpoint's contacts.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26065">ASTERISK-26065</a>: chan_pjsip: MWI NOTIFY contents not ordered properly<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fe305ccf01003e9484098ee5e8319e847a1cecc7">[fe305ccf01]</a> gtjoseph -- res_pjsip_mwi_body_generator:  Re-order the body items</li>
+</ul><br><h4>Category: Resources/res_pjsip_mwi_body_generator</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26065">ASTERISK-26065</a>: chan_pjsip: MWI NOTIFY contents not ordered properly<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fe305ccf01003e9484098ee5e8319e847a1cecc7">[fe305ccf01]</a> gtjoseph -- res_pjsip_mwi_body_generator:  Re-order the body items</li>
+</ul><br><h4>Category: Resources/res_pjsip_outbound_publish</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25217">ASTERISK-25217</a>: [patch]res_pjsip_outbound_publish.c needs a similar treatment for module unloading as res_pjsip_outbound_registration.c<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=485fd27f7cf55549a2fa513f038d7e1e332b7857">[485fd27f7c]</a> Joshua Colp -- res_pjsip_outbound_publish: Use a serializer shutdown group for unload.</li>
+</ul><br><h4>Category: Resources/res_pjsip_outbound_registration</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25964">ASTERISK-25964</a>: Outbound registrations created via ARI/push configuration do not clean up outbound registrations currently in flight<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3f6ef63099d58d0aa74895156e8038eb44180ea8">[3f6ef63099]</a> gtjoseph -- res_pjsip_outbound_registration:  Clean up state when registration is deleted</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25990">ASTERISK-25990</a>: PJSIP TLS registration should respect client_uri scheme when generating Contact URI<br/>Reported by: Sebastian Damm<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a94a12bbf73c7e643a77e4aa0597e4e49eb5b7ab">[a94a12bbf7]</a> Sebastian Damm -- res_pjsip_outbound_registration: generate correct Contact URI for TLS</li>
+</ul><br><h4>Category: Resources/res_pjsip_pubsub</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26164">ASTERISK-26164</a>: XMPP no longer triggers NOTIFY to device via chan_pjsip<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=403c794684a5a8afce2b490e5a40214f792794d4">[403c794684]</a> Alexei Gradinari -- core: Entity ID is not set or invalid</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26166">ASTERISK-26166</a>: res_pjsip_pubsub: Crash when decrementing reference count of message<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5997ec7c9e70f3b12afb948c421355fb87aed44e">[5997ec7c9e]</a> Alexei Gradinari -- res_pjsip_pubsub: fixed a bug when pjsip_tx_data_dec_ref is called twice.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26099">ASTERISK-26099</a>: res_pjsip_pubsub: Crash when sending request due to server timeout<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=43a78100c0e51117e7e5c91ed2800c772f767f8a">[43a78100c0]</a> gtjoseph -- configure:  Fix HAVE_PJSIP_EVSUB_GRP_LOCK not set with external pjproject</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6a568bcc665714376d077b562ee819d864b2e520">[6a568bcc66]</a> gtjoseph -- res_pjsip_pubsub: Address SEGV when attempting to terminate a subscription</li>
+</ul><br><h4>Category: Resources/res_pjsip_registrar</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25929">ASTERISK-25929</a>: res_pjsip_registrar: AOR_CONTACT_ADDED events not raised<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f436b9ab111f1ff57c6dd3970051f123b42c1103">[f436b9ab11]</a> Mark Michelson -- res_pjsip_registrar: Fix bad memory-ness with user_agent.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25885">ASTERISK-25885</a>: res_pjsip: Race condition between adding contact and automatic expiration<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fe7e48db03de03c232cc5af28e37ce08c5ccd3d8">[fe7e48db03]</a> gtjoseph -- res_pjsip contact:  Lock expiration/addition of contacts</li>
+</ul><br><h4>Category: Resources/res_pjsip_sdp_rtp</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26541">ASTERISK-26541</a>: res_pjsip_sdp_rtp: Restrict number of formats to maximum<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f188bb7a84b5cb065f35d6068b0c800a695a940">[5f188bb7a8]</a> Joshua Colp -- res_pjsip_sdp_rtp: Limit number of formats to defined maximum.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26423">ASTERISK-26423</a>: res_pjsip_sdp_rtp: Asymmetric RTP codec can cause audio loss and wonkiness<br/>Reported by: Andreas Wetzel<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e0bc17edfff27bb9dbbe931814fb5653005f3219">[e0bc17edff]</a> Joshua Colp -- pjsip: Fix a few media bugs with reinvites and asymmetric payloads.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26309">ASTERISK-26309</a>: [patch] res_pjsip: Allow IPv4/IPv6 (Dual Stack) installations.<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f534f67f520397079f1af54358aa4404403025eb">[f534f67f52]</a> Joshua Colp -- res_pjsip_sdp_rtp: Fix address family of explicit media_address.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bb982480d815fb0d5059fbfa86682cd30846556c">[bb982480d8]</a> Joshua Colp -- pjsip: Support dual stack automatically.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b59d3b48d0e0875fc5de9dfb9bad8a1d0fe3a6c4">[b59d3b48d0]</a> Alexander Traud -- sip_to_pjsip: Migrate IPv4/IPv6 (Dual Stack) configurations.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=be38c95def9da61ce31118cc29ea6992a341278f">[be38c95def]</a> Alexander Traud -- pjproject_bundled: Allow IPv4/IPv6 (Dual Stack) configurations.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26228">ASTERISK-26228</a>: res_pjsip_sdp_rtp: G729A does not include annexb=no attribute.<br/>Reported by: Ali Ghavidel<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=43f400ef95e761bc9f58dfc2f44e8b36534e6ae1">[43f400ef95]</a> Jason Parker -- res_format_attr_g729: Add annexb=no format parameter to SDPs</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26119">ASTERISK-26119</a>: [patch] fix: memory leaks, resource leaks, out of bounds and bugs<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5ee205d8bb0dfbae5be89661aa3a787fbdf9986b">[5ee205d8bb]</a> Richard Mudgett -- ast_expr2: Fix off-nominal memory leak.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5134a8043a81b5b3d0b70ae3fbf7564f2526469a">[5134a8043a]</a> Alexei Gradinari -- fix: memory leaks, resource leaks, out of bounds and bugs</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25854">ASTERISK-25854</a>: No audio after HOLD/RESUME - incorrect a=recvonly in SDP from Asterisk<br/>Reported by: Robert McGilvray<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c61dca64190fd462d4ef9fa42d2ded5b323e617b">[c61dca6419]</a> Mark Michelson -- res_pjsip: Handle deferred SDP hold/unhold properly.</li>
+</ul><br><h4>Category: Resources/res_pjsip_session</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26127">ASTERISK-26127</a>: res_pjsip_session: Crash due to race condition between res_pjsip_session unload and timer<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ba0d9e7f7af620e27ce3b09062c28a7f8fcc4557">[ba0d9e7f7a]</a> Joshua Colp -- res_pjsip_session: Handle race condition at shutdown with timer.</li>
+</ul><br><h4>Category: Resources/res_realtime</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26172">ASTERISK-26172</a>: res_sorcery_realtime: fix bug when successful sql UPDATE is treated as failed if there is no affected rows.<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b4a9fa2c9e2c7c5bae5b6bbb4a6fb7f021a1f2f6">[b4a9fa2c9e]</a> Alexei Gradinari -- res_sorcery_realtime: fix bug when successful UPDATE is treated as failed</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25914">ASTERISK-25914</a>: PJSIP: failed registration with wrong codec name on allow/disallow<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=64ecd41c8f432a913eb7e9fdc9be746e4b15cd8c">[64ecd41c8f]</a> Alexei Gradinari -- Codecs: strip codec name while parsing allow/disallow options</li>
+</ul><br><h4>Category: Resources/res_rtp_asterisk</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26280">ASTERISK-26280</a>: DNS lookups can block channel media paths<br/>Reported by: Mark Michelson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a119bab6a66bd38243b242bb724b2ce874b89dae">[a119bab6a6]</a> Mark Michelson -- res_rtp_asterisk: Cache local RTCP address.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26207">ASTERISK-26207</a>: [patch] sRTP: Count a roll-over of the sequence number even on lost packets.<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e404f51b42d9518dc8f7153678998d81489d4edb">[e404f51b42]</a> Alexander Traud -- res_rtp_asterisk: Count a roll-over of the sequence number even on lost packets.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25659">ASTERISK-25659</a>: res_rtp_asterisk: ECDH not negotiated causing DTLS failure occurred on RTP instance<br/>Reported by: Edwin Vandamme<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=332beb27d86c8e1a6220c2ccfc9e54b57d299e02">[332beb27d8]</a> Eugene Voityuk,Alexander Traud -- res_rtp_asterisk: Enable Forward Secrecy (PFS) for DTLS.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26140">ASTERISK-26140</a>: res_rtp_asterisk: gcc 6 caught a self-comparison<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=48db4c215924f2881f6eef79ae120f6a3166ad63">[48db4c2159]</a> gtjoseph -- res_rtp_asterisk:  Fix a self-comparison identified by gcc 6</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26129">ASTERISK-26129</a>: res_rtp_asterisk: Memory leak of CERT bio in DTLS implementation<br/>Reported by: Torrey Searle<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dfcd466bf03104c570c501af1571654370e50de7">[dfcd466bf0]</a> Torrey Searle -- res_rtp_asterisk: fix memory leak in dtls</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26130">ASTERISK-26130</a>: [patch] WebRTC: Should use latest DTLS version.<br/>Reported by: Alexander Traud<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ef97911a1c0f380d17df3b92c9b5805dd3dbd6b5">[ef97911a1c]</a> Alexander Traud -- res_rtp_asterisk: Use latest DTLS version available by underlying platform.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26092">ASTERISK-26092</a>: [Segfault] in res_rtp_asterisk.c:4268 after Remotely bridged channels<br/>Reported by: Niklas Larsson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=715ef071a1d27d550ddc3f83d9ff569381b8fddc">[715ef071a1]</a> Mark Michelson -- chan_pjsip: Lock channel when checking for RTP changes.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25642">ASTERISK-25642</a>: res_rtp_asterisk: SRTCP broken with DTLS  - bad video is one of the consequences<br/>Reported by: Stefan Engström<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0cfab30b284286b74a4c58b040364b246a9680d7">[0cfab30b28]</a> Jacek Konieczny -- res_rtp_asterisk: Use separate SRTP session for RTCP with DTLS</li>
+</ul><br><h4>Category: Resources/res_rtp_multicast</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26439">ASTERISK-26439</a>: chan_rtp: Crash when originating<br/>Reported by: Kayode<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=644fad74770594c10b1819900d6195855068020a">[644fad7477]</a> Moises Silva -- chan_rtp: Set a sane default rtp engine for unicast.</li>
+</ul><br><h4>Category: Resources/res_srtp</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24436">ASTERISK-24436</a>: Missing header in res/res_srtp.c when compiling against libsrtp-1.5.0<br/>Reported by: Patrick Laimbock<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c6ee4a0f44f7f5d8e3c77f63f3c56694584e28e9">[c6ee4a0f44]</a> Alexander Traud -- res_srtp: Instead of libSRTP use OpenSSL as random source.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25642">ASTERISK-25642</a>: res_rtp_asterisk: SRTCP broken with DTLS  - bad video is one of the consequences<br/>Reported by: Stefan Engström<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0cfab30b284286b74a4c58b040364b246a9680d7">[0cfab30b28]</a> Jacek Konieczny -- res_rtp_asterisk: Use separate SRTP session for RTCP with DTLS</li>
+</ul><br><h4>Category: Resources/res_stasis</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25947">ASTERISK-25947</a>: Protocol transfers to stasis applications are missing the StasisStart with the replace_channel object.<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a036c359036a4b8e6b51f53d51c707658cbf77ff">[a036c35903]</a> Richard Mudgett -- res_stasis: Handle re-enter stasis bridge with swap channel.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9942d50aa5cca7f864344069e924d9b254380638">[9942d50aa5]</a> Richard Mudgett -- bridge: Hold off more than one imparting channel at a time.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24649">ASTERISK-24649</a>: Pushing of channel into bridge fails; Stasis fails to get app name<br/>Reported by: John Bigelow<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a036c359036a4b8e6b51f53d51c707658cbf77ff">[a036c35903]</a> Richard Mudgett -- res_stasis: Handle re-enter stasis bridge with swap channel.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9942d50aa5cca7f864344069e924d9b254380638">[9942d50aa5]</a> Richard Mudgett -- bridge: Hold off more than one imparting channel at a time.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24782">ASTERISK-24782</a>: StasisEnd event not present for channel that was swapped out for another after completing attended transfer<br/>Reported by: John Bigelow<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a036c359036a4b8e6b51f53d51c707658cbf77ff">[a036c35903]</a> Richard Mudgett -- res_stasis: Handle re-enter stasis bridge with swap channel.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9942d50aa5cca7f864344069e924d9b254380638">[9942d50aa5]</a> Richard Mudgett -- bridge: Hold off more than one imparting channel at a time.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25882">ASTERISK-25882</a>: ARI: Crash can occur due to race condition when attempting to operate on a hung up channel (Part 2)<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ecf4102d02db03923adfcce7408ab25c3fdbb7c1">[ecf4102d02]</a> Richard Mudgett -- res_stasis: Add control ref to playback and recording structs.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a179aba65e117afb6480d8396e92df2e5d2d4628">[a179aba65e]</a> Richard Mudgett -- res_stasis: Fix crash on a hanging up channel.</li>
+</ul><br><h4>Category: Resources/res_stasis_playback</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26083">ASTERISK-26083</a>: ARI: Announcer channels staying around after playback to a bridge is finished<br/>Reported by: Per Jensen<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cfebe3b94a8e80db054a899e76c19607f103a48c">[cfebe3b94a]</a> Mark Michelson -- ARI: Ensure announcer channels are destroyed.</li>
+</ul><br><h4>Category: Resources/res_xmpp</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24425">ASTERISK-24425</a>: [patch] jabber/xmpp to use TLS instead of SSLv3, security fix POODLE (CVE-2014-3566)<br/>Reported by: abelbeck<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b1fe070d0bc26088cddffa5befd64fad7130f0ee">[b1fe070d0b]</a> Alexander Traud -- sip.conf: tlsclientmethod is using sslv23 as default.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26164">ASTERISK-26164</a>: XMPP no longer triggers NOTIFY to device via chan_pjsip<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=403c794684a5a8afce2b490e5a40214f792794d4">[403c794684]</a> Alexei Gradinari -- core: Entity ID is not set or invalid</li>
+</ul><br><h4>Category: Tests/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26211">ASTERISK-26211</a>: Unit tests: AST_TEST_DEFINE should be used in conditional code.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c8e41d14a1478b46a6c986a4c30ba2c8bdf86cd5">[c8e41d14a1]</a> Corey Farrell -- Unit tests: Use AST_TEST_DEFINE in conditional code only.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26139">ASTERISK-26139</a>: test_res_pjsip_scheduler:  Compile failure if pjproject isn't installed in a system location<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=77da168e58df6f030ceec4f80b27438cef0ba079">[77da168e58]</a> gtjoseph -- test_res_pjsip_scheduler: Add 'depends' on pjproject in MODULEINFO</li>
+</ul><br><h4>Category: Tests/testsuite</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25961">ASTERISK-25961</a>: tests/channels/SIP/sip_tls_call: Sporadic crash when running test<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=949bf6b282e09cb7104a5cc55a3be3d33873db0f">[949bf6b282]</a> Joshua Colp -- chan_sip: Give more time for TCP/TLS threads to stop.</li>
+</ul><br><h4>Category: Third-Party/pjproject</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26510">ASTERISK-26510</a>: pjproject_bundled uses the --strip-components option of tar which isn't supported in older versions<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=61a5c3460ec23a623ac62633d055b34d4dded682">[61a5c3460e]</a> gtjoseph -- pjproject_bundled:  Remove usage of tar's --strip-components option</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26477">ASTERISK-26477</a>: pjproject:  SEGV during SSL operations<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=546ec4b038ac3d750c5138d7fbb8e3ce93f482df">[546ec4b038]</a> gtjoseph -- pjproject_bundled:  Add patch to address SSL crash</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26279">ASTERISK-26279</a>: pjproject-bundled:  Fails to compile on Debian 6<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fb82fdb01384fee774bf04ec67ef3c6c6f8476c2">[fb82fdb013]</a> gtjoseph -- pjproject_bundled:  Disable srtp use by pjmedia</li>
+</ul><br><h4>Category: Utilities/astcanary</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26352">ASTERISK-26352</a>: Astcanary dies when doing "core restart"<br/>Reported by: Walter Doekes<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9372d32100b82669d56fcb147b0f8b2fa10ab529">[9372d32100]</a> Walter Doekes -- asterisk.c: Non-root users also get the astcanary after core restart.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-19867">ASTERISK-19867</a>: asterisk fails to lower its priority when astcanary dies<br/>Reported by: Xavier Hienne<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e96448e991d0c9285baa413c73a336189f6c5ba5">[e96448e991]</a> Walter Doekes -- asterisk.c: When astcanary dies on linux, reset priority on all threads.</li>
+</ul><br><h4>Category: pjproject/pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26344">ASTERISK-26344</a>: Asterisk 13.11.0 + PJSIP crash<br/>Reported by: Ian Gilmour<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d7f457e4c15235e33add6eb66158df0fbd9bf0b5">[d7f457e4c1]</a> Richard Mudgett -- bundled pjproject: Crashes while resolving DNS names.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26477">ASTERISK-26477</a>: pjproject:  SEGV during SSL operations<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=546ec4b038ac3d750c5138d7fbb8e3ce93f482df">[546ec4b038]</a> gtjoseph -- pjproject_bundled:  Add patch to address SSL crash</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26349">ASTERISK-26349</a>:  13.11.1 res_pjsip/pjsip_distributor.c: Request 'REGISTER' failed<br/>Reported by: Dmitry Melekhov<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7580a736bb30577d7557aac9165894dc9f9583e6">[7580a736bb]</a> Joshua Colp -- res_pjsip: Only invoke unidentified endpoint logic when unidentified.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26199">ASTERISK-26199</a>: PJSIP: tx_data_destroy called twice<br/>Reported by: Scott Griepentrog<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5997ec7c9e70f3b12afb948c421355fb87aed44e">[5997ec7c9e]</a> Alexei Gradinari -- res_pjsip_pubsub: fixed a bug when pjsip_tx_data_dec_ref is called twice.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26089">ASTERISK-26089</a>: Invalid security events during boot using PJSIP Realtime<br/>Reported by: Scott Griepentrog<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=993b769524b5e39aa5749a64e0389f01427235ee">[993b769524]</a> Richard Mudgett -- pjsip_distributor.c: Ignore messages until fully booted.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25993">ASTERISK-25993</a>: pjproject: Allow bundling to not require everything it does<br/>Reported by: Joshua Colp<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2a7130b8b09358744a7b75f17285b5d4ea01d650">[2a7130b8b0]</a> gtjoseph -- pjproject_bundled:  Check for python-dev and TEST_FRAMEWORK</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25968">ASTERISK-25968</a>: pjproject_bundled:  Configure and make need to be re-tested<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f39089f17cc3df6f795914d664c5ddbe41027498">[f39089f17c]</a> gtjoseph -- pjproject_bundled:  Various fixes discovered during testing of OSes</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25970">ASTERISK-25970</a>: Segfault in pjsip_url_compare<br/>Reported by: Dmitriy Serov<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=719ece5659e166df7006d2fd3afdb83235022052">[719ece5659]</a> gtjoseph -- pjproject_bundled:  Disable PJSIP_UNESCAPE_IN_PLACE</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25910">ASTERISK-25910</a>: pjproject:  Via headers are not parsed when "received" contains an IPv6 address<br/>Reported by: George Joseph<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0c414eaf35eb29dd7422a776a33955e89999f68d">[0c414eaf35]</a> gtjoseph -- pjproject:  Add patch to fix Via IPv6 parsing</li>
+</ul><br><h3>Improvement</h3><h4>Category: Applications/app_confbridge</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26289">ASTERISK-26289</a>: Announcer channels in ConfBridges cause inefficiencies<br/>Reported by: Mark Michelson<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=63feffa126628e1a49e930f8fc9e7dfafc51422d">[63feffa126]</a> Mark Michelson -- ConfBridge: Make some announcements asynchronous.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b8b5d52b5e1f81a6116fb23e75cbe5a9d3b94673">[b8b5d52b5e]</a> Mark Michelson -- ConfBridge: Rework announcer channel methodology</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0cdeb2bfb0f4203384c08858951af3c77be8b9b3">[0cdeb2bfb0]</a> Mark Michelson -- ConfBridge: Rework announcer channel methodology</li>
+</ul><br><h4>Category: Applications/app_dial</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26059">ASTERISK-26059</a>: [patch]core: New channel variable FORWARDERNAME<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2de58c6d01a3ef1d6b31167833731eefcf844f0a">[2de58c6d01]</a> Alexei Gradinari -- core/dial: New channel variable FORWARDERNAME</li>
+</ul><br><h4>Category: Applications/app_queue</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26558">ASTERISK-26558</a>: app_queue: add variable to know if the call is not answered after a queue<br/>Reported by: scgm11<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=71dc33356504e32b6ed4bbf6faaacb51a3602d10">[71dc333565]</a> Joshua Colp -- app_queue: Add mention of 'ABANDON' variable to CHANGES.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7fd5031c1cac30f7dacea803a8d9e07302edcbf7">[7fd5031c1c]</a> Sebastian Gutierrez -- app_queue: new variable set when abandoned</li>
+</ul><br><h4>Category: Channels/chan_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-22131">ASTERISK-22131</a>: Update the make dependencies script to pull, build, and install the correct pjproject<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f5e987201658ac468baeeb8cd4529b5868a9c08c">[f5e9872016]</a> Alexander Traud -- install_prereq: Checkout of libSRTP 1.5.x.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25471">ASTERISK-25471</a>: [patch]Add subscribe_context to res_pjsip<br/>Reported by: JoshE<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2c16a81dd57676db494994a72514ecda4bdd437d">[2c16a81dd5]</a> Alexei Gradinari -- res_pjsip: Added "subscribe_context" to endpoint</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25835">ASTERISK-25835</a>: Authentication using 'Username' field from Digest<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=38bed4515dc9fbb3bdf3a4fdb957bad3d3bd9cea">[38bed4515d]</a> gtjoseph -- res_pjsip:  Add ability to identify by Authorization username</li>
+</ul><br><h4>Category: Channels/chan_sip/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26176">ASTERISK-26176</a>: chan_sip: Add AccountCode to AMI PeerEntry<br/>Reported by: scgm11<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=714412f6c43f2b6b8f8af5a7d0d2bb337a24701c">[714412f6c4]</a> Sebastian Gutierrez -- chan_sip: add missing account code</li>
+</ul><br><h4>Category: Codecs/codec_opus</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26538">ASTERISK-26538</a>: codec_opus: Add sample to configs/samples/codecs.conf.sample<br/>Reported by: Kevin Harwell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=50fa868ab81992dfdfc0f50834fa06cb370290c3">[50fa868ab8]</a> Kevin Harwell -- codecs.conf.sample: Add sample and option descriptions for codec_opus</li>
+</ul><br><h4>Category: Core/Bridging</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26059">ASTERISK-26059</a>: [patch]core: New channel variable FORWARDERNAME<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2de58c6d01a3ef1d6b31167833731eefcf844f0a">[2de58c6d01]</a> Alexei Gradinari -- core/dial: New channel variable FORWARDERNAME</li>
+</ul><br><h4>Category: Core/BuildSystem</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26220">ASTERISK-26220</a>: Add support for noreturn function attributes.<br/>Reported by: Corey Farrell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7fdf7c3d4cf1124a3a9bbed86c9490e0a0b2d125">[7fdf7c3d4c]</a> Corey Farrell -- Add conditional support for noreturn functions.</li>
+</ul><br><h4>Category: Core/Channels</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26059">ASTERISK-26059</a>: [patch]core: New channel variable FORWARDERNAME<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2de58c6d01a3ef1d6b31167833731eefcf844f0a">[2de58c6d01]</a> Alexei Gradinari -- core/dial: New channel variable FORWARDERNAME</li>
+</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25063">ASTERISK-25063</a>: [patch]add X.509 subject alternative name support to Asterisk TLS support<br/>Reported by: Maciej Szmigiero<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7b96e8cc3d3db3d30921905203520b4e08b527b8">[7b96e8cc3d]</a> Maciej Szmigiero -- Add X.509 subject alternative name support to TLS certificate</li>
+</ul><br><h4>Category: Core/Sorcery</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26088">ASTERISK-26088</a>: Investigate heavy memory utilization by res_pjsip_pubsub<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9c35f34301c15d1370623d6f8a59a25a723b59b6">[9c35f34301]</a> Richard Mudgett -- res_pjsip_registrar.c: Eliminate rx REGISTER request race condition.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=557333ea4c031d10bf52ceade79c32cbff801c0c">[557333ea4c]</a> Richard Mudgett -- stasis: Add setting subscription congestion levels.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=110d7724675a496dd1c338e296e0c26d96156c3e">[110d772467]</a> Richard Mudgett -- sorcery: Add setting object type congestion levels.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=610eee2a36d2d2426947784a230c31dca6b18c62">[610eee2a36]</a> Richard Mudgett -- taskprocessors: Implement high/low water mark alerts.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=26e34922469102ceb3ae93025b6b13c15fa19e8f">[26e3492246]</a> Richard Mudgett -- res_pjsip_session: Use distributor serializer for incoming calls.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ceb1007ed7b201059aafd4b8dcde8c5dd62e803d">[ceb1007ed7]</a> Richard Mudgett -- res_pjsip_pubsub.c: Recreate subscriptions using distributor serializer.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=27bafc3a8b7981051fa07ef01b9a6afe4ef37f8c">[27bafc3a8b]</a> Richard Mudgett -- res_pjsip_pubsub.c: Use distributor serializer for incoming subscriptions.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=16b08444dae47eded183f63300908b49cf6b2c1a">[16b08444da]</a> Richard Mudgett -- pjsip_distributor.c: Consistently pick a serializer for messages.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=993b769524b5e39aa5749a64e0389f01427235ee">[993b769524]</a> Richard Mudgett -- pjsip_distributor.c: Ignore messages until fully booted.</li>
+</ul><br><h4>Category: Core/Stasis</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26088">ASTERISK-26088</a>: Investigate heavy memory utilization by res_pjsip_pubsub<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9c35f34301c15d1370623d6f8a59a25a723b59b6">[9c35f34301]</a> Richard Mudgett -- res_pjsip_registrar.c: Eliminate rx REGISTER request race condition.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=557333ea4c031d10bf52ceade79c32cbff801c0c">[557333ea4c]</a> Richard Mudgett -- stasis: Add setting subscription congestion levels.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=110d7724675a496dd1c338e296e0c26d96156c3e">[110d772467]</a> Richard Mudgett -- sorcery: Add setting object type congestion levels.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=610eee2a36d2d2426947784a230c31dca6b18c62">[610eee2a36]</a> Richard Mudgett -- taskprocessors: Implement high/low water mark alerts.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=26e34922469102ceb3ae93025b6b13c15fa19e8f">[26e3492246]</a> Richard Mudgett -- res_pjsip_session: Use distributor serializer for incoming calls.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ceb1007ed7b201059aafd4b8dcde8c5dd62e803d">[ceb1007ed7]</a> Richard Mudgett -- res_pjsip_pubsub.c: Recreate subscriptions using distributor serializer.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=27bafc3a8b7981051fa07ef01b9a6afe4ef37f8c">[27bafc3a8b]</a> Richard Mudgett -- res_pjsip_pubsub.c: Use distributor serializer for incoming subscriptions.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=16b08444dae47eded183f63300908b49cf6b2c1a">[16b08444da]</a> Richard Mudgett -- pjsip_distributor.c: Consistently pick a serializer for messages.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=993b769524b5e39aa5749a64e0389f01427235ee">[993b769524]</a> Richard Mudgett -- pjsip_distributor.c: Ignore messages until fully booted.</li>
+</ul><br><h4>Category: Functions/func_odbc</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26010">ASTERISK-26010</a>: [patch]func_odbc: single database connection should be optional<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cd89501d48b516ef03957bd39cdd8180b4684a56">[cd89501d48]</a> Alexei Gradinari -- func_odbc: single database connection should be optional</li>
+</ul><br><h4>Category: Resources/res_ari</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26488">ASTERISK-26488</a>: ARI: Add 'ari show app', 'ari show apps', and 'ari set debug' CLI commands<br/>Reported by: Matt Jordan<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=29692d4aa42bc1ce9b737dd0fa4911a2bf5c3ce3">[29692d4aa4]</a> Matt Jordan -- res/stasis: Add CLI commands for displaying/debugging ARI apps</li>
+</ul><br><h4>Category: Resources/res_fax</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25980">ASTERISK-25980</a>: [patch]res_fax: set FAXMODE variable to let dialplan know what fax transport was used<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e8d4f400226b9cb3110f287e15ca9521fc8af1e7">[e8d4f40022]</a> Richard Mudgett -- res_fax: Fix deadlock setting FAXMODE channel variable.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=06d4ac0355d99ce7a6caacf2e52a22078233e9c4">[06d4ac0355]</a> Alexei Gradinari -- res_fax: add FAXMODE variable</li>
+</ul><br><h4>Category: Resources/res_format_attr_opus</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26409">ASTERISK-26409</a>: codec_opus: Update Asterisk to support the translation codec.<br/>Reported by: Kevin Harwell<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5258c067ae726f72d62666d0f387ca4628658a4c">[5258c067ae]</a> gtjoseph -- codec_opus: Add download ability to menuselect</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a5af8709c8d3079191bd5caca77a800e9c446af2">[a5af8709c8]</a> gtjoseph -- codec_opus: Replace res_format_attr_opus with the one from codec_opus</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=44c0c51cf1c2c89326e5047b2b90ada0e36ec68f">[44c0c51cf1]</a> gtjoseph -- format_ogg_opus: New format</li>
+</ul><br><h4>Category: Resources/res_hep</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26159">ASTERISK-26159</a>: res_hep: enabled by default and information sent to default address<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=99eff80e76c81f6ae54d95ba1bee3bed7d331e27">[99eff80e76]</a> Matt Jordan -- hep.conf.sample: Default 'enabled' to 'no'</li>
+</ul><br><h4>Category: Resources/res_musiconhold</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25444">ASTERISK-25444</a>: [patch]Music On Hold Warning misleading<br/>Reported by: Conrad de Wet<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ff3eebf454301ffca414c652415c3fcaaecf134d">[ff3eebf454]</a> Walter Doekes -- musiconhold: Only warn if music class is not found in memory and database.</li>
+</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26088">ASTERISK-26088</a>: Investigate heavy memory utilization by res_pjsip_pubsub<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9c35f34301c15d1370623d6f8a59a25a723b59b6">[9c35f34301]</a> Richard Mudgett -- res_pjsip_registrar.c: Eliminate rx REGISTER request race condition.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=557333ea4c031d10bf52ceade79c32cbff801c0c">[557333ea4c]</a> Richard Mudgett -- stasis: Add setting subscription congestion levels.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=110d7724675a496dd1c338e296e0c26d96156c3e">[110d772467]</a> Richard Mudgett -- sorcery: Add setting object type congestion levels.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=610eee2a36d2d2426947784a230c31dca6b18c62">[610eee2a36]</a> Richard Mudgett -- taskprocessors: Implement high/low water mark alerts.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=26e34922469102ceb3ae93025b6b13c15fa19e8f">[26e3492246]</a> Richard Mudgett -- res_pjsip_session: Use distributor serializer for incoming calls.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ceb1007ed7b201059aafd4b8dcde8c5dd62e803d">[ceb1007ed7]</a> Richard Mudgett -- res_pjsip_pubsub.c: Recreate subscriptions using distributor serializer.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=27bafc3a8b7981051fa07ef01b9a6afe4ef37f8c">[27bafc3a8b]</a> Richard Mudgett -- res_pjsip_pubsub.c: Use distributor serializer for incoming subscriptions.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=16b08444dae47eded183f63300908b49cf6b2c1a">[16b08444da]</a> Richard Mudgett -- pjsip_distributor.c: Consistently pick a serializer for messages.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=993b769524b5e39aa5749a64e0389f01427235ee">[993b769524]</a> Richard Mudgett -- pjsip_distributor.c: Ignore messages until fully booted.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26011">ASTERISK-26011</a>: [patch]PJSIP: add "via_addr", "via_port", "call_id" to contacts<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=230686f4ec82a774e2a41aaa5e86909fd589f9b4">[230686f4ec]</a> Alexei Gradinari -- res_pjsip: add "via_addr", "via_port", "call_id" to contact</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26055">ASTERISK-26055</a>: [patch]res_pjsip: chatty verbose messages<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=04c12561a7c7a10f416081520a72a22248a72cd4">[04c12561a7]</a> Alexei Gradinari -- res_pjsip: chatty verbose messages</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25994">ASTERISK-25994</a>: [patch]res_pjsip: module load priority<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=72eb7c8301b046fb10dfb9afd9f145f72889b921">[72eb7c8301]</a> Alexei Gradinari -- res_pjsip: module load priority</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25931">ASTERISK-25931</a>: PJSIP: add "reg_server" to contacts.<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fe38d21c2a2bbb3a3e9c157c39cdb46e1925737e">[fe38d21c2a]</a> Alexei Gradinari -- pjsip: Added "reg_server" to contacts (fixed alembic)</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3cb8934de0db468d600beddd3464b44d33759cdc">[3cb8934de0]</a> Alexei Gradinari -- pjsip: Added "reg_server" to contacts.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25930">ASTERISK-25930</a>: PJSIP: disable multi domain to improve realtime performace<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=df3639700a7d7e6a9a2dd67fde74e14b4bb46a37">[df3639700a]</a> Alexei Gradinari -- res_pjsip: disable multi domain to improve realtime performace</li>
+</ul><br><h4>Category: Resources/res_pjsip_mwi_body_generator</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25865">ASTERISK-25865</a>: Message-Account Missing From PJSIP MWI<br/>Reported by: Ross Beer<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=16c7d8e74a9af13f98c3c22aa9c43ce39965f6b7">[16c7d8e74a]</a> gtjoseph -- res_pjsip_mwi:  Allow subscribe to vm access extension as an alias</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d8f0bc35729466c44181dab6f25da5891e8ce694">[d8f0bc3572]</a> gtjoseph -- res_pjsip_mwi:  Add voicemail extension and mwi_subscribe_replaces_unsolicited</li>
+</ul><br><h4>Category: Resources/res_pjsip_pubsub</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26088">ASTERISK-26088</a>: Investigate heavy memory utilization by res_pjsip_pubsub<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9c35f34301c15d1370623d6f8a59a25a723b59b6">[9c35f34301]</a> Richard Mudgett -- res_pjsip_registrar.c: Eliminate rx REGISTER request race condition.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=557333ea4c031d10bf52ceade79c32cbff801c0c">[557333ea4c]</a> Richard Mudgett -- stasis: Add setting subscription congestion levels.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=110d7724675a496dd1c338e296e0c26d96156c3e">[110d772467]</a> Richard Mudgett -- sorcery: Add setting object type congestion levels.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=610eee2a36d2d2426947784a230c31dca6b18c62">[610eee2a36]</a> Richard Mudgett -- taskprocessors: Implement high/low water mark alerts.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=26e34922469102ceb3ae93025b6b13c15fa19e8f">[26e3492246]</a> Richard Mudgett -- res_pjsip_session: Use distributor serializer for incoming calls.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ceb1007ed7b201059aafd4b8dcde8c5dd62e803d">[ceb1007ed7]</a> Richard Mudgett -- res_pjsip_pubsub.c: Recreate subscriptions using distributor serializer.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=27bafc3a8b7981051fa07ef01b9a6afe4ef37f8c">[27bafc3a8b]</a> Richard Mudgett -- res_pjsip_pubsub.c: Use distributor serializer for incoming subscriptions.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=16b08444dae47eded183f63300908b49cf6b2c1a">[16b08444da]</a> Richard Mudgett -- pjsip_distributor.c: Consistently pick a serializer for messages.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=993b769524b5e39aa5749a64e0389f01427235ee">[993b769524]</a> Richard Mudgett -- pjsip_distributor.c: Ignore messages until fully booted.</li>
+</ul><br><h4>Category: Resources/res_pjsip_registrar</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26088">ASTERISK-26088</a>: Investigate heavy memory utilization by res_pjsip_pubsub<br/>Reported by: Richard Mudgett<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9c35f34301c15d1370623d6f8a59a25a723b59b6">[9c35f34301]</a> Richard Mudgett -- res_pjsip_registrar.c: Eliminate rx REGISTER request race condition.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=557333ea4c031d10bf52ceade79c32cbff801c0c">[557333ea4c]</a> Richard Mudgett -- stasis: Add setting subscription congestion levels.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=110d7724675a496dd1c338e296e0c26d96156c3e">[110d772467]</a> Richard Mudgett -- sorcery: Add setting object type congestion levels.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=610eee2a36d2d2426947784a230c31dca6b18c62">[610eee2a36]</a> Richard Mudgett -- taskprocessors: Implement high/low water mark alerts.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=26e34922469102ceb3ae93025b6b13c15fa19e8f">[26e3492246]</a> Richard Mudgett -- res_pjsip_session: Use distributor serializer for incoming calls.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ceb1007ed7b201059aafd4b8dcde8c5dd62e803d">[ceb1007ed7]</a> Richard Mudgett -- res_pjsip_pubsub.c: Recreate subscriptions using distributor serializer.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=27bafc3a8b7981051fa07ef01b9a6afe4ef37f8c">[27bafc3a8b]</a> Richard Mudgett -- res_pjsip_pubsub.c: Use distributor serializer for incoming subscriptions.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=16b08444dae47eded183f63300908b49cf6b2c1a">[16b08444da]</a> Richard Mudgett -- pjsip_distributor.c: Consistently pick a serializer for messages.</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=993b769524b5e39aa5749a64e0389f01427235ee">[993b769524]</a> Richard Mudgett -- pjsip_distributor.c: Ignore messages until fully booted.</li>
+</ul><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26011">ASTERISK-26011</a>: [patch]PJSIP: add "via_addr", "via_port", "call_id" to contacts<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=230686f4ec82a774e2a41aaa5e86909fd589f9b4">[230686f4ec]</a> Alexei Gradinari -- res_pjsip: add "via_addr", "via_port", "call_id" to contact</li>
+</ul><br><h4>Category: Resources/res_rtp_asterisk</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26418">ASTERISK-26418</a>: res_rtp_asterisk: Speed up ICE resolution by blacklisting host subnets that are not involved in RTP<br/>Reported by: Michael Walton<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3c62b60e56e5c06ae7d33d81d03268d0d2f6aa28">[3c62b60e56]</a> Michael Walton -- res_rtp_asterisk: Add ice_blacklist option</li>
+</ul><br><hr><a name="open_issues"><h2 align="center">Open Issues</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all open issues from the issue tracker that were referenced by changes that went into this release.</p><h3>Bug</h3><h4>Category: Channels/chan_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26396">ASTERISK-26396</a>: chan_pjsip: HANGUPCAUSE return the wrong code when dialed channel answer.<br/>Reported by: Aaron An<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a0a17a8c6f92cea38afb234d2f8b6cb4e3883424">[a0a17a8c6f]</a> Aaron An -- channels/chan_pjsip: fix HANGUPCAUSE function bug.</li>
+</ul><br><h4>Category: Core/Jitterbuffer</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25270">ASTERISK-25270</a>: chan_sip: rtptimeout doesn't work at all when using JitterBuffers of any kind<br/>Reported by: Florian Loyau<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb30963d222cb1e12af9bbf8dfed58001c9fcaf4">[cb30963d22]</a> Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always updated"</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=93332cb1d0eea18021ea6538237297e627d6e2fc">[93332cb1d0]</a> Evgeniy Tsybra -- chan_sip: Fix lastrtprx always updated</li>
+</ul><br><h4>Category: Core/RTP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-25270">ASTERISK-25270</a>: chan_sip: rtptimeout doesn't work at all when using JitterBuffers of any kind<br/>Reported by: Florian Loyau<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb30963d222cb1e12af9bbf8dfed58001c9fcaf4">[cb30963d22]</a> Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always updated"</li>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=93332cb1d0eea18021ea6538237297e627d6e2fc">[93332cb1d0]</a> Evgeniy Tsybra -- chan_sip: Fix lastrtprx always updated</li>
+</ul><br><h4>Category: Resources/res_pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26319">ASTERISK-26319</a>: [patch] res_pjsip: qualify/unqualify added/deleted realtime endpoints<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=308a65fe6c21da8508bd631f77d64bb4e9517845">[308a65fe6c]</a> Alexei Gradinari -- res_pjsip: qualify/unqualify added/deleted realtime endpoints</li>
+</ul><br><h4>Category: Resources/res_pjsip_session</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26291">ASTERISK-26291</a>: res_pjsip_session: segfault on already disconnected session<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9bca89546992a540d106a725734e6038cb91d76f">[9bca895469]</a> Alexei Gradinari -- res_pjsip_session: segfault on already disconnected session</li>
+</ul><br><h4>Category: pjproject/pjsip</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-24601">ASTERISK-24601</a>: [patch]Missing RFC4235 tags and attributes in PJSIP NOTIFY event: dialog  XML body<br/>Reported by: Marco Paland<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f768d2a9ca7e900f26cd82dd160f86bb45a1a72">[5f768d2a9c]</a> Alexei Gradinari -- res_pjsip_dialog_info: Add missing "direction" attribute in NOTIFY event</li>
+</ul><br><h3>Improvement</h3><h4>Category: Applications/app_voicemail/IMAP</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26229">ASTERISK-26229</a>: [patch] app_voicemail: Add taskprocessor alert level options.<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ea71bd6e3e17bc43b006400c25cce281dd0f6897">[ea71bd6e3e]</a> Alexei Gradinari -- app_voicemail: Add taskprocessor alert level options.</li>
+</ul><br><h4>Category: Core/Channels</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26419">ASTERISK-26419</a>: audiohooks: Remove redundant codec translations when using audiohooks<br/>Reported by: Michael Walton<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=430f6e5388b6e18b31e1a08582112838f6cc7557">[430f6e5388]</a> Michael Walton -- audiohooks: Remove redundant codec translations when using audiohooks</li>
+</ul><br><h4>Category: Core/General</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26419">ASTERISK-26419</a>: audiohooks: Remove redundant codec translations when using audiohooks<br/>Reported by: Michael Walton<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=430f6e5388b6e18b31e1a08582112838f6cc7557">[430f6e5388]</a> Michael Walton -- audiohooks: Remove redundant codec translations when using audiohooks</li>
+</ul><br><h4>Category: Resources/res_pjsip_mwi</h4><a href="https://issues.asterisk.org/jira/browse/ASTERISK-26230">ASTERISK-26230</a>: [patch] res_pjsip_mwi: unsolicited mwi could block PJSIP taskprocessor on startup<br/>Reported by: Alexei Gradinari<ul>
+<li><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a06a1af0eb17428f5b929e1b6b76854a21a84500">[a06a1af0eb]</a> Alexei Gradinari -- res_pjsip_mwi: fix unsolicited mwi blocks PJSIP stack</li>
+</ul><br><hr><a name="commits"><h2 align="center">Commits Not Associated with an Issue</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a list of all changes that went into this release that did not reference a JIRA issue.</p><table width="100%" border="1">
+<tr><th>Revision</th><th>Author</th><th>Summary</th></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=907160ee210aa34968a6138391d13d1023080bea">907160ee21</a></td><td>Kevin Harwell</td><td>app_talkdectect: Now core supported, enable for cert</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0cd0495732bfa26455c9f716b0e8af5f18e6920d">0cd0495732</a></td><td>Kevin Harwell</td><td>Disable extended support modules</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=854196eea9761b80cacf7ba6948e2e608015f6ae">854196eea9</a></td><td>Kevin Harwell</td><td>.version: Update for certified/13.13</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fdde690e0fa2e58bf45ea2bf83962bb1c261d6e0">fdde690e0f</a></td><td>Kevin Harwell</td><td>Update for 13.13.0</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f93e55d124da09eb9929303189c4b925c42ad0bb">f93e55d124</a></td><td>Kevin Harwell</td><td>Update for 13.13.0-rc2</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e246b36a3c1f178e57e27c6a5fc40eba5d364c9b">e246b36a3c</a></td><td>gtjoseph</td><td>build:  Backport addition of librt check to configure.ac</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=855f05e525e81012638aed3366559de3c1c9eb86">855f05e525</a></td><td>Kevin Harwell</td><td>Update for 13.13.0</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=751d43e8e4173386be5455311561dfa819a642d3">751d43e8e4</a></td><td>Joshua Colp</td><td>Update for 13.13.0-rc1</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb624b10ae55450ead02f67dbcfb918f3eb2e372">cb624b10ae</a></td><td>Mark Michelson</td><td>Bump ARI version to 1.10.0</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bde3d022a3663e69e1da003f0ed1665a6eabd3fd">bde3d022a3</a></td><td>Mark Michelson</td><td>manager: update minor version</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c92dcc76da6eb57a9c9b9701c6577b0f8dde578f">c92dcc76da</a></td><td>gtjoseph</td><td>file.c/__ast_file_read_dirs:  Fix issues on filesystems without d_type</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0790aa528a902b49de9aff8232ff4c7a97ea6fda">0790aa528a</a></td><td>Matt Jordan</td><td>pjproject: Use a much higher limit for PJ_ICE_MAX_CHECKS</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=993a6f96c7f6e07849af4a923ad3a0497ca854bd">993a6f96c7</a></td><td>Matt Jordan</td><td>apps/app_echo: Only relay a single video source change frame</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=404a62eeeecec486065e45aaaf5a0d58b0adec0a">404a62eeee</a></td><td>gtjoseph</td><td>Revert "Revert "channel: Use frame deferral API for safe sleep.""</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=09d8febc91bc24a9c66c65616cf9a2502a501dcb">09d8febc91</a></td><td>gtjoseph</td><td>Revert "Revert "autoservice: Use frame deferral API""</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ffad2b44dfca5b3ced0265a085ddc67dfb0f86a6">ffad2b44df</a></td><td>gtjoseph</td><td>Revert "Revert "AGI: Only defer frames when in an interception routine.""</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2fefb6187ffe6d92b863ca3c2ee20a4a51554498">2fefb6187f</a></td><td>gtjoseph</td><td>Revert "Revert "Add API for channel frame deferral.""</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=412d43fa213fb7677561e0b0f842b56550440d8c">412d43fa21</a></td><td>Richard Mudgett</td><td>res_pjsip.c: Rework endpt_send_request() req_wrapper code.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2e7fc56d3cb55b0fe200c0cb8f183e94698cfabc">2e7fc56d3c</a></td><td>Richard Mudgett</td><td>res_pjsip: Fix tdata leaks in off nominal paths.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=da68b185b3469361c33b47d93455624aac2e5e5d">da68b185b3</a></td><td>Richard Mudgett</td><td>res_pjsip_registrar_expire.c: Remove extra linefeed in debug message.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6b5a7ced136b7178ae0b2ba39221eba1cd2e37c9">6b5a7ced13</a></td><td>gtjoseph</td><td>Revert "Add API for channel frame deferral."</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6be5d8de0da7e804544507f70382425af9a07b3f">6be5d8de0d</a></td><td>gtjoseph</td><td>Revert "AGI: Only defer frames when in an interception routine."</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1df434e2b4bd7cc34b9b4addf405a3caa7ac16b8">1df434e2b4</a></td><td>gtjoseph</td><td>Revert "autoservice: Use frame deferral API"</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=58c88cfbaa80cb43419cde9186d643d1c5d24baf">58c88cfbaa</a></td><td>gtjoseph</td><td>Revert "channel: Use frame deferral API for safe sleep."</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a562fbe618e0e3b034e7006314b4ea1dfef6d732">a562fbe618</a></td><td>gtjoseph</td><td>build:  Fix default values for some SANITIZER options</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e043d1a55cf356066b3b39ebac8b4bbb612ce807">e043d1a55c</a></td><td>Mark Michelson</td><td>res_pjsip_session: Do not call session supplements when it's too late.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=44f7e252397fd87420b3374df26941d7436401b3">44f7e25239</a></td><td>Mark Michelson</td><td>channel: Use frame deferral API for safe sleep.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0ee249075a1433a9afc028d0de82dd9f7748025f">0ee249075a</a></td><td>Alexander Anikin</td><td>chan_ooh323: reset rrq count on gk registration</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=59c23e1768a48825cd628b8c4b59f7eb46b8d364">59c23e1768</a></td><td>Michael Kuron</td><td>automon: restore mixing of the both channels after recording stops</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e79acaeb750ba286786ad122ddf20e9c179c19cf">e79acaeb75</a></td><td>Matt Jordan</td><td>res_http_websocket: Increase the buffer size for non-LOW_MEMORY systems</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7a831969855c3117fa086a9ece9165e04cd1b2d4">7a83196985</a></td><td>Matt Jordan</td><td>res_stasis: Set a video source mode on Stasis created bridges</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=eceab15f3339445c37b756c9dbe338f95850741f">eceab15f33</a></td><td>Alexander Anikin</td><td>chan_ooh323: Fix infinite loop on read second part of H.225 packet</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a9992da4aaa4807bac8384ff63e3b3e576d5ad3a">a9992da4aa</a></td><td>gtjoseph</td><td>pjproject_bundled:  Fix issue with libasteriskpj needing libresample</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a36a7d0cf4e73bd9f934e063ee5e4dc057921744">a36a7d0cf4</a></td><td>gtjoseph</td><td>pjproject_bundled:  Fix compile of pjsua so it handles audio</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6b1c55dc9be90904363dbcf958a9fcc243c85629">6b1c55dc9b</a></td><td>gtjoseph</td><td>pjproject_bundled:  Fix issue where "/version.mak" wasn't found</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3a2092b72266b78ab2c10bfac03bf28f207becdc">3a2092b722</a></td><td>gtjoseph</td><td>test_astobj2_thrash:  Fix multithreaded issues</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=640203802ee01354f5aacfa13cb035dfeb681b4c">640203802e</a></td><td>Pascal Cadotte Michaud</td><td>typo: s/paranthesis/parenthesis/ in a comment</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9b3557e0543233ce8dad27f3718a02025d1212b1">9b3557e054</a></td><td>gtjoseph</td><td>pjproject_bundled:  Fixed various build issues</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=74d9385273e914e3349cab63b7e478a0956bcf8a">74d9385273</a></td><td>gtjoseph</td><td>utils.c:  Fix ast_set_default_eid for multiple platforms</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e4bb9f9a37e8cd10799deadc1b95cdd6d28f4caa">e4bb9f9a37</a></td><td>Richard Mudgett</td><td>aoc.c: Whitespace cleanup</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=bcac905bd3d73c03f31dd67d9fb0199b510f77f0">bcac905bd3</a></td><td>Richard Mudgett</td><td>app_queue.c: Fix clearing of pause reason string.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ee4ae2b648b3d3868ab341e9c1366fc8034b4252">ee4ae2b648</a></td><td>Richard Mudgett</td><td>app_minivm.c: Fix malformed ast_json_pack() call.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=86c15db6a1bacd92f31c3a128717f91060e6496d">86c15db6a1</a></td><td>Torrey Searle</td><td>res_fax: Fix a tight race condition causing fax to crash in audio fallback</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=29b7a5b00f8c4bf632d244900fd88009279e49b4">29b7a5b00f</a></td><td>Rodrigo Ramírez Norambuena</td><td>Add text of cdr directory into README.md for ast-db-manage</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=349c34f72a0a84c052b62adbefe73b481f66c93c">349c34f72a</a></td><td>Torrey Searle</td><td>res_rtp_asterisk: Fix infinite DTMF issue when switching to P2P bridge</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fa2885b3ff469860fae479257e1ee675eac77f75">fa2885b3ff</a></td><td>Badalyan Vyacheslav</td><td>cel_odbc: Fix memory leak on module unload</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0dc0356e39e19b480db4549b892f775d105ae8e0">0dc0356e39</a></td><td>gtjoseph</td><td>pjproject_bundled:  Add MALLOC_DEBUG capability</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dd873bcada4e257ba8e8b497b1a36036b09f5635">dd873bcada</a></td><td>Corey Farrell</td><td>astobj2: Add backtrace to log_bad_ao2.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f0a2e628d6a1cf52073c7a5a6e4fc1d121f38163">f0a2e628d6</a></td><td>gtjoseph</td><td>download_externals: Fix issue with re-install</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0ab443007b4ca9207011cf16e31ceefd7ce98bcb">0ab443007b</a></td><td>gtjoseph</td><td>build_tools:  Add ability to download variants to download_externals</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=610eb4c1893a5b002122aea4cad1e7a0c6f1bab9">610eb4c189</a></td><td>Corey Farrell</td><td>logger: Fix default console settings.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=36092ee3a087e6c37bf4efcd101b324f1ba9fada">36092ee3a0</a></td><td>Tzafrir Cohen</td><td>sd_notify (systemd status notifications) support</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=01884a7af637bd92511b2f85378afea1e42f76bf">01884a7af6</a></td><td>Timo Teräs</td><td>Fix showing of swap details when sysinfo() is available</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4d64b176ebbd6ee6c51f028068a0d0d6ddaa4ac7">4d64b176eb</a></td><td>gtjoseph</td><td>pjproject_bundled:  Prevent SERVFAIL from marking name server bad</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7ed5dc2c586e7a5e68aecb91f3083041176e7ea7">7ed5dc2c58</a></td><td>Walter Doekes</td><td>contrib: Let safe_asterisk script continue without /dev/tty9.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=23d6ec7417c8ffb6a0f3bde115fc406dc534441f">23d6ec7417</a></td><td>Richard Mudgett</td><td>res_pjsip_messaging.c: Misc cleanups and fixes.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f19657710aa82c76f48a1a4f49cd92e6cd8e1f6">5f19657710</a></td><td>Joshua Colp</td><td>res_pjsip: Allow global headers to be overridden.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=117a7741c856886c52ce014e3034993cc02f0358">117a7741c8</a></td><td>gtjoseph</td><td>build: Add download capability for external packages</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=03fc438f6eaebf736edb2be8cb7314afed6ca689">03fc438f6e</a></td><td>Richard Mudgett</td><td>res_pjsip_registrar.c: Reduce stack usage in find_aor_name().</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b5e753227d1774a4fdea65dec63b4377d190cc1e">b5e753227d</a></td><td>Richard Mudgett</td><td>pjsip_configuration.c: Ignore repeated identify by methods.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9b7501b6ad1bb8c1f964c700adf7d8f4f17ba745">9b7501b6ad</a></td><td>Richard Mudgett</td><td>config_global.c: Comments and a default expression adjustment.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=3314e1cec2ca67da619e98faee2560812efeefee">3314e1cec2</a></td><td>Richard Mudgett</td><td>sip_to_pjsip.py: Map canreinvite as directmedia alias.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6372f40ba0012c60c3a06321f7302e1f5b369594">6372f40ba0</a></td><td>Richard Mudgett</td><td>sip_to_pjsip.py: Fix typo converting outboundproxy registration.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=11eb1afd2d912a0c7d0cce59e510701dc36012c8">11eb1afd2d</a></td><td>Richard Mudgett</td><td>sip_to_pjsip.py: Fix comment typo and tabs.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0f9b144c1aaf7a68050051dcb069923bc422f4df">0f9b144c1a</a></td><td>Richard Mudgett</td><td>Sample configs: Eliminate false multiline comment block starts.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5cd583d7a2e97b49ea48cac8fc5874c18952d2ea">5cd583d7a2</a></td><td>Richard Mudgett</td><td>res_pjsip: Cache global config options.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=50b2aa506fed1b28cf8b0c9f76080622097383e2">50b2aa506f</a></td><td>Richard Mudgett</td><td>res_fax.c: Add chan locked precondition comments.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=038cbc02152d4688293cadeaa17d65746d59fa44">038cbc0215</a></td><td>Richard Mudgett</td><td>ast_framehook_detach() must be called with the channel locked.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=88e9d05ef7de24f0169032c1ae4cacbe54be0a55">88e9d05ef7</a></td><td>Richard Mudgett</td><td>ast_framehook_attach() must be called with the channel locked.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c9e83f6d0be9d89a3beaa509b46c423d78fac6d1">c9e83f6d0b</a></td><td>gtjoseph</td><td>res_rtp_multicast:  Fix SEGV in ast_multicast_rtp_create_options</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb8fd610e20fef4de5f779fda33af7795c9e8a5b">cb8fd610e2</a></td><td>Corey Farrell</td><td>Fix checks for allocation debugging.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d5d7cbfcfb9502a03d3a6b5a69a796794770cd79">d5d7cbfcfb</a></td><td>Joshua Colp</td><td>Revert "ConfBridge: Rework announcer channel methodology"</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e54dcf4fd509d7ac9e5105ba99aa38c21d94f13e">e54dcf4fd5</a></td><td>David M. Lee</td><td>res_odbc_transaction: add dep on generic_odbc</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b494b9f88cd6ead7352bdc946ea8c1d82ebaa54c">b494b9f88c</a></td><td>Alexei Gradinari</td><td>compilation failed with -Werror=maybe-uninitialized</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=329507fe20ae5dcbed3e7b494ce6fffeb9990af3">329507fe20</a></td><td>gtjoseph</td><td>res_pjsip:  Add contact_user to endpoint</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6f448f32fe9b7379e2630fab7b06205f901f2ded">6f448f32fe</a></td><td>Torrey Searle</td><td>res_ari: Add http prefix to generated docs</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f4e28b3a09d3223fad1c736d59f06abf0667b5fa">f4e28b3a09</a></td><td>Corey Farrell</td><td>Refactor usage pattern of xmldoc info tag.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a8d9a53baea00c1802b5798d5ab18820739489a9">a8d9a53bae</a></td><td>Richard Mudgett</td><td>res_sorcery_config.c: Cleanup ao2 container usage idioms.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=74a91b9ee5a352ec87d62f050daf6ec428649404">74a91b9ee5</a></td><td>Richard Mudgett</td><td>sorcery.c: Minor optimizations.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=29beb2890c56efa3a1a10c811081c191bc41961b">29beb2890c</a></td><td>Richard Mudgett</td><td>sorcery.c: Tweak some container declaration formatting.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f59bd47ed3131f52598a4043c5fac6341a7db37e">f59bd47ed3</a></td><td>Matt Jordan</td><td>app_dial: Improve documentation</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4facaac4083573e509052dbecf29c28019145600">4facaac408</a></td><td>Matt Jordan</td><td>manager: Add &lt;see-also&gt; tags to relate interrelated events/actions together</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=232d4fe24f29d4eb831c9fe1948faedd68c39b5d">232d4fe24f</a></td><td>Matt Jordan</td><td>manager: Add &lt;see-also&gt; tags to relate Bridge related events,actions, and apps</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=63c0b2f7c9e1f29c0ed369820bfff3cb3c728c51">63c0b2f7c9</a></td><td>Matt Jordan</td><td>manager: Add &lt;see-also&gt; tags to relate AoC events and actions</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0422667d6cb3d3d31e574adde271acef7acdf3fd">0422667d6c</a></td><td>Matt Jordan</td><td>manager: Add &lt;see-also&gt; tags to relate UserEvent actions/apps/events</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f9e734974b3718c20885d8023519f3ab64a9dfe0">f9e734974b</a></td><td>Matt Jordan</td><td>res_agi: Improve documentation</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=781bb410d0442adbfe87727b6bdf94f77bd830a0">781bb410d0</a></td><td>Matt Jordan</td><td>manager: Add &lt;see-also&gt; links between related events</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cfd6852d3929f77bd045dc59952a2c3b4ec6d9dc">cfd6852d39</a></td><td>Matt Jordan</td><td>func_channel: Reorganize documentation</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1fc5c9001488bb6f4eeebbf0ab6a9fa1ec9c8fa9">1fc5c90014</a></td><td>Richard Mudgett</td><td>res_pjsip res_pjsip_mwi: Misc fixes and cleanups.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=73052e573219725eb437cdd56c6f9d21c84a0f6f">73052e5732</a></td><td>Richard Mudgett</td><td>location.c: Misc fixes and cleanups.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9d4bd3d763635169751de02d44affbf574d8044e">9d4bd3d763</a></td><td>Richard Mudgett</td><td>taskprocessor.c: Tweak high water checks.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e1248c30756ed9f48ba0f06c46a876c5d08cbb11">e1248c3075</a></td><td>Richard Mudgett</td><td>res_pjsip: Make aor named lock a mutex.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=6e40334d89104f0208df6d57fe26c299e392f89e">6e40334d89</a></td><td>Richard Mudgett</td><td>pjsip_distributor.c: Add missing allocation failure check.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9dc8cfabd5fa240a26972dac5c6ce396dadb7d75">9dc8cfabd5</a></td><td>Joshua Colp</td><td>astconfigparser: Really handle case where line is simply a comment.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ad3e65433c76b2c1ed81ba28641d202dd678fbfd">ad3e65433c</a></td><td>gtjoseph</td><td>asterisk.c:  Add auto generation and persistence of UUID</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=efc4034d72120ec47a84cf179dfdd859b68e8aa2">efc4034d72</a></td><td>Kevin Harwell</td><td>rest-api: Code out of sync with the model</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f6821fbaec3fed7bbc1c814de3a4824cc926a90d">f6821fbaec</a></td><td>Mark Michelson</td><td>Remove SILK payload mappings from Asterisk core.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1f95c011c7762c430760b3afe7170b71b2b29b16">1f95c011c7</a></td><td>gtjoseph</td><td>menuselect:  Add an opaque "member_data" string to the acceptable xml</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=df42f64d62cf6c158a391db4ff1b4c57b87dbf10">df42f64d62</a></td><td>David M. Lee</td><td>Replace strdupa with more portable ast_strdupa</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=56a07fbab9bdabc562d88706067ce53f7025a660">56a07fbab9</a></td><td>gtjoseph</td><td>menuselect:  Various menuselect enhancements</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7f9369c1b63513ea3c8c4971a287ed4f9c369612">7f9369c1b6</a></td><td>Joshua Colp</td><td>astconfigparser: Handle case where line is simply a comment.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f00525a6f623acdba5d6198caaaa78de33e0fea4">f00525a6f6</a></td><td>Alexei Gradinari</td><td>pjproject: fixed a few bugs</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8902a51d59e1d7bff962aa2168da31fbc078a3ed">8902a51d59</a></td><td>David M. Lee</td><td>Portably sscanf tv_usec</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=852e7635719e4b217094786819df996816d82ab5">852e763571</a></td><td>Kevin Harwell</td><td>rtp_engine: Failed assertion and wrong name given for codec</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e8c34680caf1e84746610931bd6628e2f76c38a9">e8c34680ca</a></td><td>Richard Mudgett</td><td>dsp.c: Add fax and DTMF detection unit tests.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c1f240b8189635feeb9ba2efd262794608bfa1cb">c1f240b818</a></td><td>Richard Mudgett</td><td>dsp.c: Added descriptive comments to Goertzel calculations.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=003a52fd626563b2d0db3a0d0ffefff2602c0149">003a52fd62</a></td><td>Richard Mudgett</td><td>dsp.c: Fix incorrect format reference typo.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4c0a0cbe02fe745dfa8cc3ff35e357efadd1c050">4c0a0cbe02</a></td><td>Richard Mudgett</td><td>dsp.c: Correct DTMF twist dsp.conf documentation.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=87433c2566b7978614584f267e0518719004a86d">87433c2566</a></td><td>Joshua Colp</td><td>astconfigparser.py: Update with realtime fixes.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=33716106e00da12d24999610aea60a76cc5bbdb5">33716106e0</a></td><td>Richard Mudgett</td><td>res_pjsip: Whitespace and comment cleanup.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=76d4983c1572b3d796b2076f4a49087f004a816c">76d4983c15</a></td><td>Corey Farrell</td><td>features.c: Remove unneeded adsi.h include.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=28501051b47e6bb8968bb016abf0b3493c05fa21">28501051b4</a></td><td>Mark Michelson</td><td>Update support for SILK format.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8cef8f35e7d02faaaf2f20063887f1d73afdd14e">8cef8f35e7</a></td><td>Kevin Harwell</td><td>translate: explicit format destination not properly set</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=afbd10b0c5dbbd511dc8a58826b7db3921a8b24e">afbd10b0c5</a></td><td>Richard Mudgett</td><td>stasis_endpoint.c: Fix contactstatus_to_json().</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fea201f7e61c4daacce899cdafc40a5a13de9441">fea201f7e6</a></td><td>Richard Mudgett</td><td>pjsip_options.c: Fix container operation.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=02877b4b4fd8393620ee3568483e14b04f7d2aed">02877b4b4f</a></td><td>Richard Mudgett</td><td>pjsip_configuration.c: Misc cleanups.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1dfd3fc995f94859b99bf5cad0de302222556e6c">1dfd3fc995</a></td><td>Matt Jordan</td><td>res/res_pjsip_session: Check for presence of an active negotiator</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9dd0aeeb44c8ac6d4f86184fce45884505f5deef">9dd0aeeb44</a></td><td>Matt Jordan</td><td>res/res_pjsip_pubsub: Add additional debug statements</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1ec4f8dd003b92c262a33f6e91c3dc538681bae5">1ec4f8dd00</a></td><td>Matt Jordan</td><td>res/res_corosync: Raise a Stasis message on node join/leave events</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=640fbbbe2868779545aa8aef6b3f3fefdeb4eef5">640fbbbe28</a></td><td>Richard Mudgett</td><td>features: Fix channel datastore access.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1952434df562f0b4dd41af161cf0186e393013da">1952434df5</a></td><td>Richard Mudgett</td><td>res_pjsip_session.c: Remove unused parameter from handle_incoming().</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=28928ba5c4f92d407e9f161ebc5a1441261a2de0">28928ba5c4</a></td><td>Richard Mudgett</td><td>res_pjsip: Add missing NULL checks when using pjsip_inv_end_session().</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=78960975f21d7e9d807d09634385b3a7153648d1">78960975f2</a></td><td>Matt Jordan</td><td>pjproject/patches/config_site: Increase the max number of ICE candidates</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9d5b0934d93ee1024811151d32b9c5e93e73da40">9d5b0934d9</a></td><td>Matt Jordan</td><td>configs/basic-pbx/modules.conf: Remove 'bad' modules</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c982da0641f7cc43b9014fb47423ac7066ba4bdb">c982da0641</a></td><td>Richard Mudgett</td><td>res_pjproject.c: Replace inlined DEBUG_ATLEAST() with macro.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d53a36ff335e8a2176712f759266e4870bfe4f10">d53a36ff33</a></td><td>Richard Mudgett</td><td>res_pjsip_transport_management.c: Misc cleanups to survive shutdown.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=03953d80346b3561305606f8509ab3ea2fa962a1">03953d8034</a></td><td>Richard Mudgett</td><td>res_pjsip.c: Add check that timer actually got scheduled.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=32ab98116e7e43674cb9f639876cdbbb5cf86f4b">32ab98116e</a></td><td>Richard Mudgett</td><td>res_rtp_multicast.c: Fix warning message typo.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=0429c5336845e08c3f3a1279da34d958eff14391">0429c53368</a></td><td>Richard Mudgett</td><td>res_pjsip_session.c: Reorganize ast_sip_session_terminate().</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5823f279f32244bef2f6389dbe5022c2f73e4685">5823f279f3</a></td><td>Richard Mudgett</td><td>chan_rtp: Backport changes from master.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=dde58df3182b7f99714e446a684d8ddb81f759bb">dde58df318</a></td><td>Richard Mudgett</td><td>chan_rtp.c: Copy file from chan_multicast_rtp.c</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a99ddc6a0d2b9075c2cc436a6770c8ac889f5286">a99ddc6a0d</a></td><td>gtjoseph</td><td>build:  Fix ast_sockaddr initialization to be more portable</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9c5a0b814b9fa6f7348cb7fbfdd0bc1204e72b77">9c5a0b814b</a></td><td>Timo Teräs</td><td>Fix #include poll.h and sys/cdefs.h</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cda33854091eabf243dee228b92da3fcaa5bb5e3">cda3385409</a></td><td>Joshua Colp</td><td>alembic: Fix migration.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b2ce0e354b780d373b2243fa23df02efec540b7f">b2ce0e354b</a></td><td>Richard Mudgett</td><td>pjsip_distributor.c: Use correct rdata info access method (Part 2).</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e8abfdcdc5ce4d32d1fe281e75b13fd652f9e5f7">e8abfdcdc5</a></td><td>gtjoseph</td><td>pjproject_bundled:  Move to pjproject 2.5</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=03d5b3ce5c8403b790fcae53c938625ae5dd10f8">03d5b3ce5c</a></td><td>Richard Mudgett</td><td>pjsip_distributor.c: Use correct rdata info access method.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=361a16f3160506b1d5f32c9bdd10fd31cfc4e81f">361a16f316</a></td><td>Matt Jordan</td><td>configs/samples/pjsip.conf.sample: Fix typo</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f91a7dc99350f8be610e303e8cbd0d263eda4d7d">f91a7dc993</a></td><td>Matt Jordan</td><td>res/res_hep_pjsip: Fix reported local IP address when bound to 'any'</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9de5cd209e5918d27d03afaaddb41125d7a76701">9de5cd209e</a></td><td>Sean Bright</td><td>res_ari: Correct Location headers returned by some ARI resources</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a73d79c22f69d0c7a4a5cdbe7e92e3c8cd9dd0e7">a73d79c22f</a></td><td>Tzafrir Cohen</td><td>basic-cfg: asterisk.conf: remove [directories]</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1c56de9453c67b54d023feed738ed7ec1c17a245">1c56de9453</a></td><td>Tzafrir Cohen</td><td>basic-cfg: asterisk.conf: defaults of options</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d7af591c59ecda3856ae28a8cd442828be75ded8">d7af591c59</a></td><td>Tzafrir Cohen</td><td>basic-cfg: asterisk.conf: debug level 5 spams</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9b7db18fc1c6c6b740ad0240f0684e4ca002035c">9b7db18fc1</a></td><td>Tzafrir Cohen</td><td>basic-cfg: asterisk.conf: don't set languages</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=e2df15bae971794960fe61efee498b7bf00fe869">e2df15bae9</a></td><td>gtjoseph</td><td>pjsip_distributor:  Add missing newline to NOTICE</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=37214b0bdf52cf2f742349b22fae73742aeda091">37214b0bdf</a></td><td>Matt Jordan</td><td>configure: Fix errors with AST_UNDEFINED_SANITIZER/AST_LEAK_SANITIZER</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=49b25a095656dd6d41a75e4fcbbe9651946b1605">49b25a0956</a></td><td>Kevin Harwell</td><td>res_pjsip_outbound_publish: state potential dropped on reloads/realtime fetches</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1b5c91b7be1020754ca724e488c9fb733dbce99d">1b5c91b7be</a></td><td>Kevin Harwell</td><td>res_pjsip_outbound_publish: Potential crash due to off nominal path</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=10de553c9d6922ebf3959b4fd7b50a2fad629eb1">10de553c9d</a></td><td>Kevin Harwell</td><td>res_pjsip_outbound_publishing: After unloading the library won't load again</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1a833b97398c0f2479d3fd828b0a8152ff72cfb3">1a833b9739</a></td><td>Kevin Harwell</td><td>res_pjsip_outbound_publish: Ref leak in off nominal callback paths</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=4752ef02e02dfcb1b1ec38d154eb9bc42736df3c">4752ef02e0</a></td><td>Kevin Harwell</td><td>res_pjsip_outbound_publish: Won't unload if condition wait times out</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a2f19d82a86590c58737f252e28b816f957686ff">a2f19d82a8</a></td><td>Diederik de Groot</td><td>configs/basic-pbx/asterisk.conf: contains incorrect path separator</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7992923c709ee155fa4f792ca063ac24d7fdf817">7992923c70</a></td><td>Richard Mudgett</td><td>res_pjsip: Start body generator users after suppliers.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5dc0e082b26896e8a6ae07927aa46c2cec75a7ed">5dc0e082b2</a></td><td>Richard Mudgett</td><td>res_pjsip_pubsub.c: Add useful information to some messages.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f9e416f0538ee404906390e4b1c1a97cedf23075">f9e416f053</a></td><td>Richard Mudgett</td><td>res_pjsip_pubsub.c: Fix body generator registration race.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b1b201904697e394e405ec8864e4c60383d1ffda">b1b2019046</a></td><td>Richard Mudgett</td><td>res_pjsip_pubsub.h: Fix doxygen association.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=b7f07fdff548b0dcc5aa2259d7c37d3c37555abd">b7f07fdff5</a></td><td>Richard Mudgett</td><td>res_pjsip_outbound_publish.c: Remove redundant flag check.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ebf0724a8355e060764f1f6a4b92abb071eb9af6">ebf0724a83</a></td><td>Richard Mudgett</td><td>test_message.c: Wait longer in case dialplan also processes the test message.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ba63aa7c9e01919d53588e0e35066db554613d53">ba63aa7c9e</a></td><td>Richard Mudgett</td><td>Manager: Short circuit AMI message processing.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d5ee6acf28f67670b5afa1be0161280b33a5a9e9">d5ee6acf28</a></td><td>Richard Mudgett</td><td>manager.c: Eliminate most RAII_VAR usage.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7303e3dc96a4b2d5f36bb03c7cf8880aaa9e0753">7303e3dc96</a></td><td>Richard Mudgett</td><td>manager_channels.c: Fix allocation failure crash.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1e93f3d7232a2a087a190a18e4a3f490a41d42d1">1e93f3d723</a></td><td>Richard Mudgett</td><td>Bridge system: Fix memory leaks and double frees on impart failure.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5e388d41888a1e1c4061003a4a090dbe797bca7a">5e388d4188</a></td><td>Richard Mudgett</td><td>bridge_softmix.c: Fix crash if channel fails to join mixing tech.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=ded3794fc65902dd7426b2fe488bb61329281b4d">ded3794fc6</a></td><td>Joshua Colp</td><td>app_talkdetect: Make the module core supported.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=49bfdc9ac029e0ef17cd8e85d8d7b7731387a34e">49bfdc9ac0</a></td><td>Joshua Colp</td><td>res_pjsip_transport_management: Allow unload to occur.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f4693d1897614faf5631051f9f6616bf99b940b3">f4693d1897</a></td><td>Richard Mudgett</td><td>bridge_channel.c: Ignore role setup failure in channel push.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=724acb6ce72b931ccff5d6df586db941dea87b2a">724acb6ce7</a></td><td>Richard Mudgett</td><td>stasis_bridge.c: Update stasis bridge push diagnostic messages.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f788018592ec33e4b8928a614ca012fcc75542e">5f78801859</a></td><td>Mark Michelson</td><td>transport management: Register thread with PJProject.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9740277713fe308a3f6014a07180a52c3de08b58">9740277713</a></td><td>gtjoseph</td><td>res_pjsip:  Add serialized scheduler (res_pjsip/pjsip_scheduler.c)</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f6e080c6a4d10597aa6e3d72a7576a5a12bdf858">f6e080c6a4</a></td><td>Richard Mudgett</td><td>bridge_softmix.c: Fix crash if could not allocate the dsp.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=772ff3048fca37d2b1d768910ccbcef515ac546c">772ff3048f</a></td><td>gtjoseph</td><td>lock:  Add named lock capability</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=82638fb0c79ecb00b216205c28282b73333f74c3">82638fb0c7</a></td><td>Richard Mudgett</td><td>pbx.c: Minor code rearangements.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=2ef8a954b370eb2d39b3ba833b53627ffbd5aa17">2ef8a954b3</a></td><td>Richard Mudgett</td><td>pbx: Update doxygen for extension state watchers.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=901e8d78c4ddad0e60ce792f53ebe5a43026f163">901e8d78c4</a></td><td>Joshua Colp</td><td>res_pjsip_registrar_expire: Fix race condition at shutdown.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8207372e663bdaa44acbe8fd6a262eead5532ad8">8207372e66</a></td><td>Joshua Colp</td><td>res_pjsip: Fix configuration setting of "regcontext".</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cb56ef806904fdb9395f4af1279986a09c619644">cb56ef8069</a></td><td>Joshua Colp</td><td>res_http_websocket: Make core supported.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=f6f4cf459f43f072604927209b39646f84aaa2e2">f6f4cf459f</a></td><td>gtjoseph</td><td>stringfields:  Refactor to allow fields to be added to the end of structures</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=fe448ac8a74cc4629a4596325d25e2dd8c26fba3">fe448ac8a7</a></td><td>gtjoseph</td><td>res_pjsip_mwi:  Fix segv caused by 16c7d8e74a9af13f98c3c22aa9c43ce39965f6b7</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=9d4318f79852b4318a5204495335fd971b20cab0">9d4318f798</a></td><td>gtjoseph</td><td>install_prereq:  Fix check_installed_debs remove subversion</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=566601837e312915494cf6d75c8b303505a43fa2">566601837e</a></td><td>gtjoseph</td><td>utils.c:  Fix typo in handle_show_locks</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=5f73c2ef0a3e483e3d7faddcc4a7baf876fc3258">5f73c2ef0a</a></td><td>Richard Mudgett</td><td>res_stasis.c: Protect channel datastore list from stasis end.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=74d63f56eedf02523b3ddbe9c46efa183df77428">74d63f56ee</a></td><td>Richard Mudgett</td><td>res_ari: Cannot get control also means channel is unavailable.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=cf49b440904d667c46319e2747da617a802f46d2">cf49b44090</a></td><td>Richard Mudgett</td><td>res_stasis_recording.c: Cleanup stasis_app_recording_find_by_name().</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=7f53f1d89e18608d2b193bfcaace4eed9fb0ce0c">7f53f1d89e</a></td><td>Richard Mudgett</td><td>core_unreal.c: Add clarification comment about channel ref.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=8dc8d6ceb8539ab6bb025f9a2172f5fe594329d5">8dc8d6ceb8</a></td><td>gtjoseph</td><td>res_rtp_asterisk:  Fix placement of txcount increment</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=c7eb18d8655272c7e1bdecce176891e99c140795">c7eb18d865</a></td><td>gtjoseph</td><td>chan_pjsip:  Add 'pjsip show channelstats'</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1583559a06297e37e611713916e8f69c3afce713">1583559a06</a></td><td>gtjoseph</td><td>res_pjsip/pjsip_options:  Fix From generation on outgoing OPTIONS</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=1bce690ccb36a4744a327c07af23a9a3a0fa20cd">1bce690ccb</a></td><td>gtjoseph</td><td>res_rtp_asterisk:  Fix packet stats on bridged connection</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=05fc3a96d108d48214b47ea2212432498bea3a33">05fc3a96d1</a></td><td>Richard Mudgett</td><td>res_parking: Cleanup find_channel_parking_lot_name() usage.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=a4189763ab562ee2e8e79fda60b213ee90aab6f1">a4189763ab</a></td><td>Richard Mudgett</td><td>res_parking: Misc fixes.</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=d963a3374991c64594cf196e90a5c74964c8ba7c">d963a33749</a></td><td>gtjoseph</td><td>pjproject-bundled:  Cleanups for reported issues</td></tr>
+<tr><td><a href="https://code.asterisk.org/code/changelog/asterisk?cs=51deadee3854d94db026b90ee3d8d0202e93033b">51deadee38</a></td><td>gtjoseph</td><td>progdocs:  Exclude ./third-party from documentation generation</td></tr>
+</table><hr><a name="diffstat"><h2 align="center">Diffstat Results</h2></a><center><a href="#top">[Back to Top]</a></center><p>This is a summary of the changes to the source code that went into this release that was generated using the diffstat utility.</p><pre>.lastclean                                                                                      |    1
+asterisk-certified-13.8-cert3-summary.html                                                      |   47
+asterisk-certified-13.8-cert3-summary.txt                                                       |  156
+autoconf/acx_pthread.m4                                                                         |  243
+b/.version                                                                                      |    2
+b/CHANGES                                                                                       |  304
+b/ChangeLog                                                                                     |34469 +++++-----
+b/Makefile                                                                                      |  117
+b/Makefile.moddir_rules                                                                         |   14
+b/Makefile.rules                                                                                |    4
+b/UPGRADE.txt                                                                                   |   11
+b/addons/cdr_mysql.c                                                                            |   11
+b/addons/chan_ooh323.c                                                                          |   48
+b/addons/ooh323c/src/Makefile.in                                                                |    2
+b/addons/ooh323c/src/ooCalls.c                                                                  |    3
+b/addons/ooh323c/src/ooGkClient.c                                                               |    1
+b/addons/ooh323c/src/oochannels.c                                                               |   43
+b/addons/ooh323c/src/ooq931.c                                                                   |    5
+b/addons/res_config_mysql.c                                                                     |  364
+b/apps/app_confbridge.c                                                                         |   15
+b/apps/app_dial.c                                                                               |  195
+b/apps/app_echo.c                                                                               |   18
+b/apps/app_fax.c                                                                                |   14
+b/apps/app_followme.c                                                                           |   43
+b/apps/app_macro.c                                                                              |   36
+b/apps/app_minivm.c                                                                             |    8
+b/apps/app_mp3.c                                                                                |   52
+b/apps/app_queue.c                                                                              |   87
+b/apps/app_skel.c                                                                               |    2
+b/apps/app_userevent.c                                                                          |    4
+b/apps/app_voicemail.c                                                                          |  383
+b/apps/confbridge/conf_chan_announce.c                                                          |    1
+b/apps/confbridge/conf_config_parser.c                                                          |   19
+b/apps/confbridge/include/confbridge.h                                                          |    1
+b/asterisk-13.13.0-summary.html                                                                 |  304
+b/asterisk-13.13.0-summary.txt                                                                  |  767
+b/autoconf/ast_ext_lib.m4                                                                       |    2
+b/autoconf/ast_prog_ld.m4                                                                       |    2
+b/autoconf/ax_pthread.m4                                                                        |  485
+b/autoconf/libcurl.m4                                                                           |   49
+b/bridges/bridge_builtin_features.c                                                             |    2
+b/bridges/bridge_softmix.c                                                                      |   60
+b/build_tools/download_externals                                                                |  224
+b/build_tools/list_valid_installed_externals                                                    |   55
+b/build_tools/make_version                                                                      |    4
+b/build_tools/menuselect-deps.in                                                                |    2
+b/cdr/cdr_custom.c                                                                              |    2
+b/cdr/cdr_syslog.c                                                                              |    2
+b/cel/cel_custom.c                                                                              |    2
+b/cel/cel_odbc.c                                                                                |    1
+b/channels/chan_dahdi.c                                                                         |   82
+b/channels/chan_iax2.c                                                                          |   19
+b/channels/chan_pjsip.c                                                                         |  318
+b/channels/chan_rtp.c                                                                           |    2
+b/channels/chan_sip.c                                                                           |  351
+b/channels/chan_unistim.c                                                                       |   13
+b/channels/pjsip/cli_commands.c                                                                 |  467
+b/channels/pjsip/dialplan_functions.c                                                           |  131
+b/channels/pjsip/include/cli_functions.h                                                        |   45
+b/channels/pjsip/include/dialplan_functions.h                                                   |   12
+b/channels/sip/config_parser.c                                                                  |    7
+b/channels/sip/dialplan_functions.c                                                             |   82
+b/channels/sip/include/sip.h                                                                    |    9
+b/channels/sip/reqresp_parser.c                                                                 |   23
+b/codecs/codecs.xml                                                                             |   32
+b/configs/basic-pbx/asterisk.conf                                                               |   25
+b/configs/basic-pbx/modules.conf                                                                |    4
+b/configs/basic-pbx/pjsip.conf                                                                  |    3
+b/configs/samples/alsa.conf.sample                                                              |    4
+b/configs/samples/asterisk.conf.sample                                                          |   17
+b/configs/samples/ccss.conf.sample                                                              |   16
+b/configs/samples/cdr_mysql.conf.sample                                                         |    5
+b/configs/samples/chan_dahdi.conf.sample                                                        |    4
+b/configs/samples/codecs.conf.sample                                                            |   54
+b/configs/samples/confbridge.conf.sample                                                        |    2
+b/configs/samples/console.conf.sample                                                           |    4
+b/configs/samples/dsp.conf.sample                                                               |   28
+b/configs/samples/func_odbc.conf.sample                                                         |   14
+b/configs/samples/hep.conf.sample                                                               |    6
+b/configs/samples/manager.conf.sample                                                           |    4
+b/configs/samples/mgcp.conf.sample                                                              |    6
+b/configs/samples/minivm.conf.sample                                                            |   14
+b/configs/samples/misdn.conf.sample                                                             |    4
+b/configs/samples/oss.conf.sample                                                               |    4
+b/configs/samples/pjsip.conf.sample                                                             |  134
+b/configs/samples/queues.conf.sample                                                            |    4
+b/configs/samples/res_odbc.conf.sample                                                          |   13
+b/configs/samples/res_parking.conf.sample                                                       |   42
+b/configs/samples/res_snmp.conf.sample                                                          |    2
+b/configs/samples/rtp.conf.sample                                                               |   12
+b/configs/samples/sip.conf.sample                                                               |   58
+b/configs/samples/skinny.conf.sample                                                            |   20
+b/configs/samples/unistim.conf.sample                                                           |    4
+b/configs/samples/voicemail.conf.sample                                                         |   10
+b/configs/samples/vpb.conf.sample                                                               |    2
+b/configure                                                                                     | 2433
+b/configure.ac                                                                                  |  127
+b/contrib/ast-db-manage/README.md                                                               |    1
+b/contrib/ast-db-manage/cdr/env.py                                                              |    1
+b/contrib/ast-db-manage/config/env.py                                                           |    1
+b/contrib/ast-db-manage/config/versions/10aedae86a32_add_outgoing_enum_va.py                    |   10
+b/contrib/ast-db-manage/config/versions/136885b81223_add_regcontext_to_pj.py                    |    3
+b/contrib/ast-db-manage/config/versions/154177371065_add_default_from_user.py                   |    3
+b/contrib/ast-db-manage/config/versions/1758e8bbf6b_increase_useragent_column_size.py           |    6
+b/contrib/ast-db-manage/config/versions/189a235b3fd7_add_keep_alive_interval.py                 |    3
+b/contrib/ast-db-manage/config/versions/1c688d9a003c_pjsip_voicemail_extension.py               |   28
+b/contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py                      |    3
+b/contrib/ast-db-manage/config/versions/21e526ad3040_add_pjsip_debug_option.py                  |    3
+b/contrib/ast-db-manage/config/versions/23530d604b96_add_rpid_immediate.py                      |    3
+b/contrib/ast-db-manage/config/versions/26d7f3bf0fa5_add_bind_rtp_to_media_address_to_pjsip.py  |    3
+b/contrib/ast-db-manage/config/versions/26f10cadc157_add_pjsip_timeout_options.py               |    5
+b/contrib/ast-db-manage/config/versions/28b8e71e541f_add_g726_non_standard.py                   |    3
+b/contrib/ast-db-manage/config/versions/28ce1e718f05_add_fatal_response_interval.py             |    3
+b/contrib/ast-db-manage/config/versions/2d078ec071b7_increaes_contact_column_size.py            |    6
+b/contrib/ast-db-manage/config/versions/2fc7930b41b3_add_pjsip_endpoint_options_for_12_1.py     |   38
+b/contrib/ast-db-manage/config/versions/31cd4f4891ec_add_auto_dtmf_mode.py                      |   10
+b/contrib/ast-db-manage/config/versions/371a3bf4143e_add_user_eq_phone_option_to_pjsip.py       |    3
+b/contrib/ast-db-manage/config/versions/3772f8f828da_update_identify_by.py                      |   44
+b/contrib/ast-db-manage/config/versions/3855ee4e5f85_add_missing_pjsip_options.py               |    6
+b/contrib/ast-db-manage/config/versions/3bcc0b5bc2c9_add_allow_reload_to_ps_transports.py       |    3
+b/contrib/ast-db-manage/config/versions/423f34ad36e2_fix_pjsip_qualify_ti.py                    |   12
+b/contrib/ast-db-manage/config/versions/4468b4a91372_add_pjsip_asymmetric_rtp_codec.py          |   31
+b/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py     |    3
+b/contrib/ast-db-manage/config/versions/461d7d691209_add_pjsip_qualify_timeout.py               |    6
+b/contrib/ast-db-manage/config/versions/498357a710ae_add_rtp_keepalive.py                       |    3
+b/contrib/ast-db-manage/config/versions/4a6c67fa9b7a_add_fax_detect_timeout_option.py           |    4
+b/contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py                     |   54
+b/contrib/ast-db-manage/config/versions/4e2493ef32e6_add_contact_user_to_endpoint.py            |    4
+b/contrib/ast-db-manage/config/versions/5139253c0423_make_q_member_uniqueid_autoinc.py          |   25
+b/contrib/ast-db-manage/config/versions/51f8cb66540e_add_further_dtls_options.py                |    5
+b/contrib/ast-db-manage/config/versions/5813202e92be_add_contact_expiration_check_interval_.py  |   20
+b/contrib/ast-db-manage/config/versions/5950038a6ead_fix_pjsip_verifiy_typo.py                  |    6
+b/contrib/ast-db-manage/config/versions/65eb22eb195_add_unidentified_request_options_to_.py     |   27
+b/contrib/ast-db-manage/config/versions/6d8c104e6184_res_pjsip_add_contact_via_addr_and_.py     |   25
+b/contrib/ast-db-manage/config/versions/81b01a191a46_pjsip_add_contact_reg_server.py            |   23
+b/contrib/ast-db-manage/config/versions/837aa67461fb_add_pjsip_endpoint_ip_access_control_.py   |   32
+b/contrib/ast-db-manage/config/versions/837aa67461fb_ps_contacts_add_authenticate_qualify.py    |   32
+b/contrib/ast-db-manage/config/versions/8d478ab86e29_pjsip_add_disable_multi_domain.py          |    4
+b/contrib/ast-db-manage/config/versions/9deac0ae4717_pjsip_add_subscribe_context.py             |   21
+b/contrib/ast-db-manage/config/versions/a541e0b5e89_add_pjsip_max_initial_qualify_time.py       |    3
+b/contrib/ast-db-manage/config/versions/a6ef36f1309_ps_globals_add_ignore_uri_user_options.py   |   32
+b/contrib/ast-db-manage/config/versions/c7a44a5a0851_pjsip_add_global_mwi_options.py            |   35
+b/contrib/ast-db-manage/config/versions/dbc44d5a908_add_missing_columns_to_sys_and_reg.py       |    8
+b/contrib/ast-db-manage/config/versions/e96a0b8071c_increase_pjsip_column_size.py               |   30
+b/contrib/ast-db-manage/config/versions/eb88a14f2a_add_media_encryption_optimistic_to_pjsip.py  |    3
+b/contrib/ast-db-manage/config/versions/ef7efc2d3964_ps_contacts_add_endpoint_and_modify_.py    |   33
+b/contrib/ast-db-manage/env.py                                                                  |  140
+b/contrib/ast-db-manage/voicemail/env.py                                                        |    1
+b/contrib/realtime/mssql/mssql_config.sql                                                       |  238
+b/contrib/realtime/mysql/mysql_config.sql                                                       |  128
+b/contrib/realtime/oracle/oracle_config.sql                                                     |  238
+b/contrib/realtime/postgresql/postgresql_config.sql                                             |  134
+b/contrib/scripts/install_prereq                                                                |   49
+b/contrib/scripts/safe_asterisk                                                                 |   13
+b/contrib/scripts/sip_to_pjsip/astconfigparser.py                                               |   27
+b/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py                                                  |  499
+b/doc/appdocsxml.dtd                                                                            |    2
+b/doc/appdocsxml.xslt                                                                           |   25
+b/doc/asterisk-ng-doxygen.in                                                                    |    3
+b/funcs/func_aes.c                                                                              |    2
+b/funcs/func_cdr.c                                                                              |   10
+b/funcs/func_channel.c                                                                          |  214
+b/funcs/func_curl.c                                                                             |    2
+b/funcs/func_odbc.c                                                                             |  499
+b/include/asterisk.h                                                                            |   16
+b/include/asterisk/_private.h                                                                   |    3
+b/include/asterisk/ari.h                                                                        |    3
+b/include/asterisk/astobj2.h                                                                    |  134
+b/include/asterisk/autoconfig.h.in                                                              |   59
+b/include/asterisk/bridge.h                                                                     |    9
+b/include/asterisk/bridge_technology.h                                                          |    3
+b/include/asterisk/channel.h                                                                    |   67
+b/include/asterisk/channel_internal.h                                                           |    2
+b/include/asterisk/chanvars.h                                                                   |    2
+b/include/asterisk/cli.h                                                                        |   12
+b/include/asterisk/compat.h                                                                     |    2
+b/include/asterisk/compiler.h                                                                   |    6
+b/include/asterisk/config.h                                                                     |   83
+b/include/asterisk/config_options.h                                                             |   22
+b/include/asterisk/event_defs.h                                                                 |   13
+b/include/asterisk/features.h                                                                   |    9
+b/include/asterisk/file.h                                                                       |   28
+b/include/asterisk/format_cache.h                                                               |    8
+b/include/asterisk/hashtab.h                                                                    |   14
+b/include/asterisk/heap.h                                                                       |    4
+b/include/asterisk/http.h                                                                       |    1
+b/include/asterisk/io.h                                                                         |   10
+b/include/asterisk/json.h                                                                       |   35
+b/include/asterisk/lock.h                                                                       |    2
+b/include/asterisk/manager.h                                                                    |    2
+b/include/asterisk/module.h                                                                     |    7
+b/include/asterisk/options.h                                                                    |    2
+b/include/asterisk/opus.h                                                                       |   51
+b/include/asterisk/parking.h                                                                    |   11
+b/include/asterisk/pbx.h                                                                        |   58
+b/include/asterisk/poll-compat.h                                                                |    2
+b/include/asterisk/res_fax.h                                                                    |   22
+b/include/asterisk/res_hep.h                                                                    |   22
+b/include/asterisk/res_odbc.h                                                                   |    5
+b/include/asterisk/res_pjsip.h                                                                  |  376
+b/include/asterisk/res_pjsip_body_generator_types.h                                             |    2
+b/include/asterisk/res_pjsip_pubsub.h                                                           |   24
+b/include/asterisk/rtp_engine.h                                                                 |   17
+b/include/asterisk/sorcery.h                                                                    |   24
+b/include/asterisk/stasis.h                                                                     |   24
+b/include/asterisk/stasis_app.h                                                                 |   29
+b/include/asterisk/stasis_bridges.h                                                             |    4
+b/include/asterisk/stasis_system.h                                                              |    6
+b/include/asterisk/stringfields.h                                                               |  295
+b/include/asterisk/strings.h                                                                    |   38
+b/include/asterisk/taskprocessor.h                                                              |   32
+b/include/asterisk/tcptls.h                                                                     |    1
+b/include/asterisk/utils.h                                                                      |   19
+b/include/asterisk/vector.h                                                                     |   62
+b/main/Makefile                                                                                 |   27
+b/main/aoc.c                                                                                    |   64
+b/main/ast_expr2.c                                                                              |   12
+b/main/ast_expr2.y                                                                              |   12
+b/main/asterisk.c                                                                               |  535
+b/main/asterisk.exports.in                                                                      |    2
+b/main/astfd.c                                                                                  |    2
+b/main/astobj2.c                                                                                |   29
+b/main/astobj2_container.c                                                                      |   36
+b/main/astobj2_hash.c                                                                           |    8
+b/main/astobj2_rbtree.c                                                                         |    6
+b/main/autoservice.c                                                                            |   66
+b/main/bridge.c                                                                                 |   57
+b/main/bridge_basic.c                                                                           |    2
+b/main/bridge_channel.c                                                                         |   20
+b/main/cdr.c                                                                                    |   19
+b/main/cel.c                                                                                    |  112
+b/main/channel.c                                                                                |  214
+b/main/channel_internal_api.c                                                                   |   29
+b/main/chanvars.c                                                                               |    4
+b/main/cli.c                                                                                    |   70
+b/main/codec.c                                                                                  |   70
+b/main/codec_builtin.c                                                                          |   96
+b/main/config.c                                                                                 |  161
+b/main/config_options.c                                                                         |    9
+b/main/core_unreal.c                                                                            |   12
+b/main/dial.c                                                                                   |   14
+b/main/dsp.c                                                                                    |  496
+b/main/editline/Makefile.in                                                                     |    2
+b/main/features.c                                                                               |   22
+b/main/features_config.c                                                                        |    2
+b/main/file.c                                                                                   |  137
+b/main/format_cache.c                                                                           |   20
+b/main/format_cap.c                                                                             |    6
+b/main/frame.c                                                                                  |    5
+b/main/hashtab.c                                                                                |   40
+b/main/heap.c                                                                                   |   14
+b/main/http.c                                                                                   |    4
+b/main/io.c                                                                                     |   10
+b/main/json.c                                                                                   |  146
+b/main/loader.c                                                                                 |   14
+b/main/lock.c                                                                                   |   52
+b/main/logger.c                                                                                 |    7
+b/main/manager.c                                                                                |  301
+b/main/manager_bridges.c                                                                        |   98
+b/main/manager_channels.c                                                                       |   91
+b/main/message.c                                                                                |   16
+b/main/named_locks.c                                                                            |    4
+b/main/netsock.c                                                                                |    2
+b/main/pbx.c                                                                                    |  378
+b/main/pbx_functions.c                                                                          |   19
+b/main/presencestate.c                                                                          |    3
+b/main/rtp_engine.c                                                                             |  136
+b/main/say.c                                                                                    |    4
+b/main/sdp_srtp.c                                                                               |    2
+b/main/sorcery.c                                                                                |  141
+b/main/stasis.c                                                                                 |    1
+b/main/stasis_bridges.c                                                                         |   35
+b/main/stasis_endpoints.c                                                                       |   47
+b/main/stasis_message.c                                                                         |   35
+b/main/stasis_system.c                                                                          |    6
+b/main/stringfields.c                                                                           |  508
+b/main/strings.c                                                                                |  131
+b/main/taskprocessor.c                                                                          |   37
+b/main/tcptls.c                                                                                 |   67
+b/main/threadpool.c                                                                             |   10
+b/main/translate.c                                                                              |    2
+b/main/utils.c                                                                                  |  634
+b/makeopts.in                                                                                   |   16
+b/menuselect/aclocal.m4                                                                         |  281
+b/menuselect/configure                                                                          |  197
+b/menuselect/configure.ac                                                                       |    9
+b/menuselect/menuselect.c                                                                       |   24
+b/menuselect/menuselect.h                                                                       |   17
+b/menuselect/menuselect_curses.c                                                                |   61
+b/menuselect/menuselect_gtk.c                                                                   |   11
+b/menuselect/menuselect_newt.c                                                                  |    2
+b/pbx/pbx_dundi.c                                                                               |    3
+b/res/ael/pval.c                                                                                |   70
+b/res/ari/ari_model_validators.c                                                                |  463
+b/res/ari/ari_model_validators.h                                                                |   65
+b/res/ari/ari_websockets.c                                                                      |    2
+b/res/ari/resource_bridges.c                                                                    |   86
+b/res/ari/resource_bridges.h                                                                    |   28
+b/res/ari/resource_channels.c                                                                   |   56
+b/res/ari/resource_channels.h                                                                   |    4
+b/res/parking/parking_applications.c                                                            |   85
+b/res/parking/parking_bridge.c                                                                  |   17
+b/res/parking/parking_bridge_features.c                                                         |   21
+b/res/parking/parking_manager.c                                                                 |    8
+b/res/parking/res_parking.h                                                                     |    5
+b/res/res.xml                                                                                   |   13
+b/res/res_agi.c                                                                                 |  422
+b/res/res_ari.c                                                                                 |   19
+b/res/res_ari_applications.c                                                                    |    6
+b/res/res_ari_asterisk.c                                                                        |   26
+b/res/res_ari_bridges.c                                                                         |  162
+b/res/res_ari_channels.c                                                                        |   50
+b/res/res_ari_device_states.c                                                                   |    4
+b/res/res_ari_endpoints.c                                                                       |   10
+b/res/res_ari_events.c                                                                          |    6
+b/res/res_ari_mailboxes.c                                                                       |    4
+b/res/res_ari_playbacks.c                                                                       |    6
+b/res/res_ari_recordings.c                                                                      |   18
+b/res/res_ari_sounds.c                                                                          |    4
+b/res/res_config_odbc.c                                                                         |  175
+b/res/res_corosync.c                                                                            |  279
+b/res/res_fax.c                                                                                 |  191
+b/res/res_format_attr_g729.c                                                                    |   76
+b/res/res_format_attr_opus.c                                                                    |  350
+b/res/res_format_attr_silk.c                                                                    |   64
+b/res/res_format_attr_siren14.c                                                                 |   94
+b/res/res_format_attr_siren7.c                                                                  |   94
+b/res/res_hep.c                                                                                 |   49
+b/res/res_hep.exports.in                                                                        |    2
+b/res/res_hep_pjsip.c                                                                           |   68
+b/res/res_hep_rtcp.c                                                                            |   37
+b/res/res_http_websocket.c                                                                      |   21
+b/res/res_musiconhold.c                                                                         |   29
+b/res/res_odbc.c                                                                                |   19
+b/res/res_odbc_transaction.c                                                                    |    2
+b/res/res_parking.c                                                                             |  100
+b/res/res_phoneprov.c                                                                           |    5
+b/res/res_pjproject.c                                                                           |    7
+b/res/res_pjsip.c                                                                               |  501
+b/res/res_pjsip/config_global.c                                                                 |  252
+b/res/res_pjsip/config_transport.c                                                              |    7
+b/res/res_pjsip/include/res_pjsip_private.h                                                     |   33
+b/res/res_pjsip/location.c                                                                      |  192
+b/res/res_pjsip/pjsip_cli.c                                                                     |    2
+b/res/res_pjsip/pjsip_configuration.c                                                           |  643
+b/res/res_pjsip/pjsip_distributor.c                                                             |  492
+b/res/res_pjsip/pjsip_global_headers.c                                                          |    8
+b/res/res_pjsip/pjsip_message_ip_updater.c                                                      |  303
+b/res/res_pjsip/pjsip_options.c                                                                 |  445
+b/res/res_pjsip/pjsip_scheduler.c                                                               |  495
+b/res/res_pjsip_authenticator_digest.c                                                          |   23
+b/res/res_pjsip_caller_id.c                                                                     |   34
+b/res/res_pjsip_config_wizard.c                                                                 |    4
+b/res/res_pjsip_dialog_info_body_generator.c                                                    |    3
+b/res/res_pjsip_diversion.c                                                                     |   27
+b/res/res_pjsip_dtmf_info.c                                                                     |    7
+b/res/res_pjsip_empty_info.c                                                                    |   89
+b/res/res_pjsip_endpoint_identifier_ip.c                                                        |    2
+b/res/res_pjsip_endpoint_identifier_user.c                                                      |  121
+b/res/res_pjsip_exten_state.c                                                                   |   18
+b/res/res_pjsip_header_funcs.c                                                                  |    9
+b/res/res_pjsip_messaging.c                                                                     |  151
+b/res/res_pjsip_mwi.c                                                                           |  392
+b/res/res_pjsip_mwi_body_generator.c                                                            |    5
+b/res/res_pjsip_one_touch_record_info.c                                                         |    9
+b/res/res_pjsip_outbound_authenticator_digest.c                                                 |   13
+b/res/res_pjsip_outbound_publish.c                                                              |  346
+b/res/res_pjsip_outbound_registration.c                                                         |   28
+b/res/res_pjsip_path.c                                                                          |   22
+b/res/res_pjsip_publish_asterisk.c                                                              |   15
+b/res/res_pjsip_pubsub.c                                                                        |   98
+b/res/res_pjsip_pubsub.exports.in                                                               |   40
+b/res/res_pjsip_refer.c                                                                         |   17
+b/res/res_pjsip_registrar.c                                                                     |  179
+b/res/res_pjsip_registrar_expire.c                                                              |  322
+b/res/res_pjsip_sdp_rtp.c                                                                       |   56
+b/res/res_pjsip_session.c                                                                       |  342
+b/res/res_pjsip_t38.c                                                                           |   27
+b/res/res_pjsip_transport_management.c                                                          |  102
+b/res/res_rtp_asterisk.c                                                                        |  229
+b/res/res_sorcery_astdb.c                                                                       |  141
+b/res/res_sorcery_config.c                                                                      |   53
+b/res/res_sorcery_memory.c                                                                      |    8
+b/res/res_sorcery_memory_cache.c                                                                |    3
+b/res/res_sorcery_realtime.c                                                                    |  111
+b/res/res_srtp.c                                                                                |    8
+b/res/res_stasis.c                                                                              |   57
+b/res/res_stasis_playback.c                                                                     |    2
+b/res/res_stasis_recording.c                                                                    |   20
+b/res/res_xmpp.c                                                                                |    8
+b/res/stasis/app.c                                                                              |  107
+b/res/stasis/app.h                                                                              |   26
+b/res/stasis/cli.c                                                                              |  216
+b/res/stasis/cli.h                                                                              |   43
+b/res/stasis/control.c                                                                          |   36
+b/res/stasis/control.h                                                                          |   10
+b/res/stasis/stasis_bridge.c                                                                    |    7
+b/res/stasis_recording/stored.c                                                                 |  217
+b/rest-api-templates/api.wiki.mustache                                                          |    4
+b/rest-api-templates/swagger_model.py                                                           |    4
+b/rest-api/api-docs/applications.json                                                           |    2
+b/rest-api/api-docs/asterisk.json                                                               |    2
+b/rest-api/api-docs/bridges.json                                                                |   84
+b/rest-api/api-docs/channels.json                                                               |   27
+b/rest-api/api-docs/deviceStates.json                                                           |    2
+b/rest-api/api-docs/endpoints.json                                                              |    2
+b/rest-api/api-docs/events.json                                                                 |   22
+b/rest-api/api-docs/mailboxes.json                                                              |    2
+b/rest-api/api-docs/playbacks.json                                                              |    2
+b/rest-api/api-docs/recordings.json                                                             |    2
+b/rest-api/api-docs/sounds.json                                                                 |    2
+b/rest-api/resources.json                                                                       |    2
+b/tests/test_ari.c                                                                              |    8
+b/tests/test_astobj2_thrash.c                                                                   |   11
+b/tests/test_cel.c                                                                              |    2
+b/tests/test_channel_feature_hooks.c                                                            |   15
+b/tests/test_config.c                                                                           |  137
+b/tests/test_file.c                                                                             |  197
+b/tests/test_json.c                                                                             |   34
+b/tests/test_message.c                                                                          |    8
+b/tests/test_res_pjsip_scheduler.c                                                              |  401
+b/tests/test_res_stasis.c                                                                       |    6
+b/tests/test_sorcery_astdb.c                                                                    |    4
+b/tests/test_sorcery_realtime.c                                                                 |  221
+b/tests/test_stringfields.c                                                                     |  205
+b/tests/test_strings.c                                                                          |   64
+b/third-party/Makefile.rules                                                                    |   19
+b/third-party/configure.m4                                                                      |    7
+b/third-party/pjproject/.gitignore                                                              |    1
+b/third-party/pjproject/Makefile                                                                |  180
+b/third-party/pjproject/Makefile.rules                                                          |   38
+b/third-party/pjproject/apply_patches                                                           |   10
+b/third-party/pjproject/configure.m4                                                            |   89
+b/third-party/pjproject/patches/0000-remove-third-party.patch                                   |  142
+b/third-party/pjproject/patches/0001-r5397-pjsip_generic_array_max_count.patch                  |   58
+b/third-party/pjproject/patches/0001-r5400-pjsip_tx_data_dec_ref.patch                          |   24
+b/third-party/pjproject/patches/0002-Fix-1946-Avoid-deinitialization-of-uninitialized-cli.patch |   56
+b/third-party/pjproject/patches/0002-r5435-add-pjsip_inv_session-ref_cnt.patch                  |  212
+b/third-party/pjproject/patches/0003-r5403-pjsip_IPV6_V6ONLY.patch                              |   13
+b/third-party/pjproject/patches/0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch |   48
+b/third-party/pjproject/patches/0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch |  164
+b/third-party/pjproject/patches/0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch        |  134
+b/third-party/pjproject/patches/0006-r5473-svn-backport-Fix-pending-query.patch                 |   28
+b/third-party/pjproject/patches/0006-r5475-svn-backport-Remove-DNS-cache-entry.patch            |   70
+b/third-party/pjproject/patches/0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch     |   33
+b/third-party/pjproject/patches/asterisk_malloc_debug.c                                         |   72
+b/third-party/pjproject/patches/asterisk_malloc_debug.h                                         |   78
+b/third-party/pjproject/patches/config_site.h                                                   |   16
+contrib/ast-db-manage/cdr/env.py                                                                |   74
+contrib/ast-db-manage/config/env.py                                                             |   75
+contrib/ast-db-manage/voicemail/env.py                                                          |   74
+res/res_pjsip_multihomed.c                                                                      |  222
+third-party/pjproject/patches/0001-evsub-Add-APIs-to-add-decrement-an-event-subscriptio.patch   |   73
+third-party/pjproject/patches/0001-sip_transport_tcp-tls-Set-factory-on-transports-crea.patch   |   48
+454 files changed, 43085 insertions(+), 24871 deletions(-)</pre><br></html>
\ No newline at end of file
diff --git a/asterisk-certified-13.13-cert1-rc1-summary.txt b/asterisk-certified-13.13-cert1-rc1-summary.txt
new file mode 100644 (file)
index 0000000..2ddfa34
--- /dev/null
@@ -0,0 +1,3523 @@
+                                Release Summary
+
+                       asterisk-certified/13.13-cert1-rc1
+
+                                Date: 2016-11-23
+
+                           <asteriskteam@digium.com>
+
+     ----------------------------------------------------------------------
+
+                               Table of Contents
+
+    1. Summary
+    2. Contributors
+    3. Closed Issues
+    4. Open Issues
+    5. Other Changes
+    6. Diffstat
+
+     ----------------------------------------------------------------------
+
+                                    Summary
+
+                                 [Back to Top]
+
+   This release is a point release of an existing major version. The changes
+   included were made to address problems that have been identified in this
+   release series, or are minor, backwards compatible new features or
+   improvements. Users should be able to safely upgrade to this version if
+   this release series is already in use. Users considering upgrading from a
+   previous version are strongly encouraged to review the UPGRADE.txt
+   document as well as the CHANGES document for information about upgrading
+   to this release series.
+
+   The data in this summary reflects changes that have been made since the
+   previous release, asterisk-certified/13.8-cert3.
+
+     ----------------------------------------------------------------------
+
+                                  Contributors
+
+                                 [Back to Top]
+
+   This table lists the people who have submitted code, those that have
+   tested patches, as well as those that reported issues on the issue tracker
+   that were resolved in this release. For coders, the number is how many of
+   their patches (of any size) were committed into this release. For testers,
+   the number is the number of times their name was listed as assisting with
+   testing a patch. Finally, for reporters, the number is the number of
+   issues that they reported that were affected by commits that went into
+   this release.
+
+   Coders                       Testers           Reporters                   
+   114 Richard Mudgett          1 Dmitry Melekhov 34 Richard Mudgett          
+   92 gtjoseph                  1 AaronAn         33 Alexei Gradinari         
+   44 Joshua Colp               1 Etienne Lessard 24 Matt Jordan              
+   40 Alexander Traud           1 Andrew Nagy     24 Richard Mudgett          
+   37 Alexei Gradinari          1 Ross Beer       23 Alexander Traud          
+   34 Mark Michelson            1 Alexander Traud 23 George Joseph            
+   33 Matt Jordan               1 Eugene Voityuk  21 Joshua Colp              
+   24 Kevin Harwell             1 Rusty Newton    16 Corey Farrell            
+   24 Corey Farrell             1 Alexander Traud 15 Ross Beer                
+   12 Tzafrir Cohen                               13 Etienne Lessard          
+   7 Walter Doekes                                8 Mark Michelson            
+   4 Torrey Searle                                8 Ross Beer                 
+   3 Badalyan Vyacheslav                          8 Kevin Harwell             
+   3 Michael Kuron                                6 Tzafrir Cohen             
+   3 Jacek Konieczny                              5 Badalian Vyacheslav       
+   3 David M. Lee                                 5 Mark Michelson            
+   3 Jaco Kroon                                   4 Scott Griepentrog         
+   3 Alexander Anikin                             4 scgm11                    
+   2 Michael Walton                               4 Etienne Lessard           
+   2 Sebastian Gutierrez                          4 Joshua Colp               
+   2 Etienne Lessard                              4 Andrew Nagy               
+   2 snuffy                                       4 Dmitriy Serov             
+   2 Gianluca Merlo                               4 Morten Tryfoss            
+   2 Scott Griepentrog                            3 Jaco Kroon                
+   2 Rusty Newton                                 3 Edwin Vandamme            
+   2 Timo TerACURs                                3 David Brillert            
+   2 Diederik de Groot                            3 gtjoseph                  
+   2 Philip Correia                               2 Jacek Konieczny           
+   1 ibercom                                      2 Walter Doekes             
+   1 Aaron An                                     2 Alexei Gradinari          
+   1 Andrew Nagy                                  2 Diederik de Groot         
+   1 Leandro Dardini                              2 Javier Acosta             
+   1 Pascal Cadotte Michaud                       2 Florian Loyau             
+   1 Chris Trobridge                              2 Dmitriy Serov             
+   1 Jesper (License 5518)                        2 Gabriele Giacone          
+   1 Jason Parker (license                        <1o5g4r8o@gmail.com>        
+   4993)                                          2 Dmitry Melekhov           
+   1 Alessandro Crespi                            2 Gianluca Merlo            
+   1 Maciej Szmigiero                             2 John Bigelow              
+   1 Leif Madsen                                  2 Michael Walton            
+   1 Francesco Castellano                         2 Niklas Larsson            
+   1 Vasil Kolev                                  2 Philip Correia            
+   1 Grachev Sergey                               2 Scott Griepentrog         
+   1 Richard Miller (license                      2 Philip Correia            
+   5685)                                          2 Kevin Harwell             
+   1 Javier Acosta                                2 Anthony Messina           
+   1 Igor Goncharovskiy                           2 Hans van Eijsden          
+   1 Moises Silva                                 2 Aaron Hamstra             
+   1 Kirill Katsnelson                            2 nik600                    
+   1 Eugene Voityuk                               2 Andrew Nagy               
+   1 chris de rock                                2 Anthony Messina           
+   1 Sean Bright                                  2 nappsoft                  
+   1 Rodrigo RamArez Norambuena                   2 Harley Peters             
+   1 Alexander Traud                              2 Leandro Dardini           
+   1 Sebastian Damm                               1 CGI.NET                   
+   1 Steve Davies                                 1 Edwin Vandamme            
+   1 Evgeniy Tsybra                               1 Daniele Pallastrelli      
+                                                  1 effie mouzeli             
+                                                  1 Richard Miller            
+                                                  1 Michael Keuter            
+                                                  1 Marco Paland              
+                                                  1 Xavier Hienne             
+                                                  1 CGI.NET                   
+                                                  1 Ross Beer.                
+                                                  1 Aaron An                  
+                                                  1 Jonathan Rose             
+                                                  1 SA(c)bastien Couture      
+                                                  1 Michael Newton            
+                                                  1 Josh Colp                 
+                                                  1 Martin Vit                
+                                                  1 Kirill Katsnelson         
+                                                  1 Taylor Hawkes             
+                                                  1 Olle Johansson            
+                                                  1 Per Jensen                
+                                                  1 Greg Siemon               
+                                                  1 Carlos Chavez             
+                                                  1 Dmitry Melekhov           
+                                                  1 Conrad de Wet             
+                                                  1 Bill Brigden              
+                                                  1 snuffy                    
+                                                  1 Nick Repin                
+                                                  1 Jesper                    
+                                                  1 Daniel Denson             
+                                                  1 AaronAn                   
+                                                  1 Vasil Kolev               
+                                                  1 Jacek                     
+                                                  1 Patrick Laimbock          
+                                                  1 Jonathan R. Rose          
+                                                  1 Ali Ghavidel              
+                                                  1 Doug Lytle                
+                                                  1 scgm11                    
+                                                  1 Jeppe Ryskov Larsen       
+                                                  1 Olle Johansson            
+                                                  1 chris de rock             
+                                                  1 John Kiniston             
+                                                  1 Jason                     
+                                                  1 Private Name              
+                                                  1 Barry Flanagan            
+                                                  1 StefanEng86, urbaniak,    
+                                                  pay123                      
+                                                  1 Sebastian Damm            
+                                                  1 Rusty Newton              
+                                                  1 Javier Acosta             
+                                                  1 Ian Gilmour               
+                                                  1 John Campbell             
+                                                  1 Sergey Grachev            
+                                                  1 Dmitry                    
+                                                  1 Ben Smithurst             
+                                                  1 JA^3zsef DudA!s           
+                                                  1 JoshE                     
+                                                  1 Jesper                    
+                                                  1 Maciej Szmigiero          
+                                                  1 Nick Repin                
+                                                  1 Harley Peters             
+                                                  1 B. Davis                  
+                                                  1 Ilya Trikoz               
+                                                  1 Ian Gilmour               
+                                                  1 Dafi Ni                   
+                                                  1 Morton Tryfoss            
+                                                  1 Andreas Wetzel            
+                                                  1 Robert McGilvray          
+                                                  1 Javier Riveros            
+                                                  1 Hans van Eijsden          
+                                                  1 Kayode                    
+                                                  1 John Campbell             
+                                                  1 Robert McGilvray          
+                                                  1 Michael Newton            
+                                                  1 abelbeck                  
+                                                  1 Xavier Hienne             
+                                                  1 Jens BA 1/4rger           
+                                                  1 Chris Trobridge           
+                                                  1 Kevin Scott Adams         
+                                                  1 Ilya Trikoz, Federico     
+                                                  Santulli                    
+                                                  1 Elazar Broad              
+                                                  1 Stefan EngstrAP:m         
+                                                  1 Jacek Kowalski            
+                                                  1 Conrad de Wet             
+                                                  1 Jonathan Harris           
+                                                  1 Jeffrey Walton            
+                                                  1 Jeppe Ryskov Larsen       
+                                                  1 Sebastian Damm            
+                                                  1 Carlos Chavez             
+                                                  1 Javier Riveros            
+                                                  1 Private Name              
+                                                  1 Dafi Ni                   
+                                                  1 Torrey Searle             
+                                                  1 Niklas Larsson            
+                                                  1 Greg Siemon               
+
+     ----------------------------------------------------------------------
+
+                                 Closed Issues
+
+                                 [Back to Top]
+
+   This is a list of all issues from the issue tracker that were closed by
+   changes that went into this release.
+
+  New Feature
+
+    Category: Applications/app_confbridge
+
+   ASTERISK-25989: apps/confbridge: add regcontext feature
+   Reported by: Jaco Kroon
+     * [2db17a793c] Jaco Kroon -- app_confbridge: Add a regcontext option for
+       confbridge bridge profiles.
+
+    Category: Channels/chan_pjsip
+
+   ASTERISK-26277: Add dialplan function PJSIP_SEND_SESSION_REFRESH that
+   sends a session refresh to update formats on a channel after session
+   establishment
+   Reported by: Matt Jordan
+     * [5f815f9dba] Matt Jordan -- channels/chan_pjsip: Add
+       PJSIP_SEND_SESSION_REFRESH
+
+    Category: Core/ManagerInterface/NewFeature
+
+   ASTERISK-25904: PJSIP: add contact.updated event
+   Reported by: Alexei Gradinari
+     * [97b4c7a5b4] Richard Mudgett -- res_pjsip: Fix statsd regression.
+     * [e6eb17efd9] Alexei Gradinari -- stasis_endpoints: Add new Status and
+       Headers to ContactStatus
+     * [7a14e669f0] Alexei Gradinari -- res_pjsip/AMI: add contact.updated
+       event
+   ASTERISK-25903: PJSIP AMI Event ContactStatus: add Useragent and RegExpire
+   Reported by: Alexei Gradinari
+     * [e6eb17efd9] Alexei Gradinari -- stasis_endpoints: Add new Status and
+       Headers to ContactStatus
+     * [70b7673f09] Alexei Gradinari -- res_pjsip: Add headers to AMI Event
+       ContactStatusDetail
+
+    Category: General
+
+   ASTERISK-26595: ARI: Add the ability to control the source of video in a
+   multi-party mixing bridge
+   Reported by: Matt Jordan
+     * [d23b4af477] Matt Jordan -- res/ari/resource_bridges: Add the ability
+       to manipulate the video source
+   ASTERISK-26470: ARI: Add an 'asterisk_id' field to outgoing events
+   Reported by: Matt Jordan
+     * [42cfdcd1b7] Matt Jordan -- res/ari: Add the Asterisk EID field to
+       outgoing events
+
+    Category: Resources/res_pjsip
+
+   ASTERISK-25904: PJSIP: add contact.updated event
+   Reported by: Alexei Gradinari
+     * [97b4c7a5b4] Richard Mudgett -- res_pjsip: Fix statsd regression.
+     * [e6eb17efd9] Alexei Gradinari -- stasis_endpoints: Add new Status and
+       Headers to ContactStatus
+     * [7a14e669f0] Alexei Gradinari -- res_pjsip/AMI: add contact.updated
+       event
+   ASTERISK-25900: PJSIP Endpoint IP Access Controls
+   Reported by: Alexei Gradinari
+     * [524a302974] Alexei Gradinari -- res_pjsip: Endpoint IP Access
+       Controls
+   ASTERISK-25903: PJSIP AMI Event ContactStatus: add Useragent and RegExpire
+   Reported by: Alexei Gradinari
+     * [e6eb17efd9] Alexei Gradinari -- stasis_endpoints: Add new Status and
+       Headers to ContactStatus
+     * [70b7673f09] Alexei Gradinari -- res_pjsip: Add headers to AMI Event
+       ContactStatusDetail
+
+    Category: Resources/res_pjsip_outbound_publish
+
+   ASTERISK-25901: Add transport for outbound PUBLISH
+   Reported by: Alexei Gradinari
+     * [fd601f26f7] Alexei Gradinari -- res_pjsip_outbound_publish: Add
+       transport for outbound PUBLISH
+
+  Bug
+
+    Category: Addons/cdr_mysql
+
+   ASTERISK-26359: [patch] cdr_mysql: fails to use UTC if so instructed
+   Reported by: Tzafrir Cohen
+     * [42cc267016] Tzafrir Cohen -- cdr_mysql: fix UTC support
+
+    Category: Addons/chan_ooh323
+
+   ASTERISK-24400: ooh323 sends wrong hangup code
+   Reported by: Dmitry Melekhov
+     * [a9ac1f5de4] Alexander Anikin -- chan_ooh323: Fixes to work right with
+       Cisco devices
+
+    Category: Addons/res_config_mysql
+
+   ASTERISK-26362: res_config_mysql: Broken after 13.10
+   Reported by: Carlos Chavez
+     * [90ae4e4337] gtjoseph -- res_config_mysql: Fix several issues related
+       to recent table changes
+
+    Category: Applications/app_dial
+
+   ASTERISK-26549: app_dial: When PickupChan() is used some channels may have
+   incorrect device state
+   Reported by: Joshua Colp
+     * [d971647949] Joshua Colp -- app_dial: Fix incorrect device state when
+       channel is picked up.
+   ASTERISK-26446: app_dial: There's no way to override the hangupcause on
+   unanswered channels
+   Reported by: George Joseph
+     * [f919edc4e2] gtjoseph -- app_dial: Add the "Q" option to set the cause
+       on unanswered channels
+   ASTERISK-25691: Crash occurs when screening mode (Dial's 'p' argument) is
+   enabled and callee rejects a call or hangs up.
+   Reported by: Etienne Lessard
+     * [df3d0188e4] Matt Jordan -- apps/app_dial: Fix crash on non-connect
+       call paths for Privacy/Screening option
+     * [a64063cc97] Matt Jordan -- apps/app_dial: Set the DIALSTATUS to
+       NOANSWER on privacy option 5
+   ASTERISK-26282: AEL: macro-call in Dial application, macro "lacks 's'
+   extension"
+   Reported by: chris de rock
+     * [2fa168348e] chris de rock -- app_macro: Consider '~~s~~' as a macro
+       start extension.
+
+    Category: Applications/app_echo
+
+   ASTERISK-25867: [patch] Video delay on app_echo
+   Reported by: Jacek Konieczny
+     * [6a9c18fb59] Jacek Konieczny -- app_echo: forward and generate
+       VIDUPDATE frames
+
+    Category: Applications/app_followme
+
+   ASTERISK-26288: followme: fails to reset config items to default values on
+   reload
+   Reported by: Tzafrir Cohen
+     * [206d4f57dc] Tzafrir Cohen -- followme: initialize all config items on
+       reload
+   ASTERISK-26008: app_followme does not delete recorded name prompt
+   Reported by: Tzafrir Cohen
+     * [eec539a46e] Tzafrir Cohen -- followme: delete the right recorded name
+       file
+
+    Category: Applications/app_macro
+
+   ASTERISK-26282: AEL: macro-call in Dial application, macro "lacks 's'
+   extension"
+   Reported by: chris de rock
+     * [2fa168348e] chris de rock -- app_macro: Consider '~~s~~' as a macro
+       start extension.
+
+    Category: Applications/app_mp3
+
+   ASTERISK-26085: app_mp3: results in timeout for streams
+   Reported by: Jens BA 1/4rger
+     * [a002a4d2db] Michael Kuron -- app_mp3: Use correct buffer size and the
+       same sample rate as the channel
+
+    Category: Applications/app_queue
+
+   ASTERISK-26462: [patch] app_queue: While using queues with realtime,
+   setting back to an empty context doesn't stop the exit key usage
+   Reported by: Leandro Dardini
+     * [0306869399] Leandro Dardini -- app_queue: Added initialization for
+       "context" parameter
+   ASTERISK-26360: app_queue: "queue show" output gets "failed to extend from
+   240 to 327" msgs.
+   Reported by: Richard Mudgett
+     * [0388882cdb] Richard Mudgett -- app_queue: Fix CLI "queue show" and
+       AMI Queues action output truncation.
+   ASTERISK-26299: app_queue: Queue application sometimes stops calling
+   members with Local interface
+   Reported by: Etienne Lessard
+     * [f69f5cd3c4] Joshua Colp -- app_queue: Ensure member is removed from
+       pending when hanging up.
+   ASTERISK-25797: app_queue: Crash when calling a queue with a member with a
+   forward to an nonexistent extension
+   Reported by: Etienne Lessard
+     * [a3c5488ff4] Matt Jordan -- app_queue: Prevent crash when a call is
+       forwarded to an invalid location
+   ASTERISK-26133: app_queue: Queue members receive multiple calls
+   Reported by: Richard Miller
+     * [43b5f8d57b] Richard Miller -- app_queue: Only remove queue member
+       from pending when state changes.
+   ASTERISK-16115: [patch] problem with ringinuse=no, queue members receive
+   sometimes two calls
+   Reported by: nik600
+     * [6959f5484b] Joshua Colp -- app_queue: Fix crash when unloading
+       module.
+     * [c345e530f4] Kevin Harwell -- app_queue: queue members can receive
+       multiple calls
+   ASTERISK-25954: Manager QueueSummary and QueueStatus Actions are case
+   sensitive to QueueName
+   Reported by: Javier Acosta
+     * [c0688a6398] Javier Acosta -- Fix case sensitive actions in AMI
+       QueueSummary and QueueStatus
+   ASTERISK-25888: Frequent segfaults in function can_ring_entry() of
+   app_queue.c
+   Reported by: SA(c)bastien Couture
+     * [3b9d8b60b2] ibercom -- app_queue: Frequent segfaults in function
+       can_ring_entry()
+
+    Category: Applications/app_voicemail
+
+   ASTERISK-26503: app_voicemail: Asterisk crashes when MailboxExists is used
+   Reported by: Doug Lytle
+     * [14496ce1e5] Joshua Colp -- app_voicemail: Clear voice mailbox in
+       MailboxExists and MAILBOX_EXISTS.
+   ASTERISK-26211: Unit tests: AST_TEST_DEFINE should be used in conditional
+   code.
+   Reported by: Corey Farrell
+     * [c8e41d14a1] Corey Farrell -- Unit tests: Use AST_TEST_DEFINE in
+       conditional code only.
+   ASTERISK-26045: [patch]app_voicemail: fix bugs, imap mm_status log change
+   to debug
+   Reported by: Alexei Gradinari
+     * [c1512f4108] Richard Mudgett -- app_voicemail.c: Fix IMAP compile
+       error.
+     * [859bbec09b] Alexei Gradinari -- app_voicemail: fix bugs, imap
+       mm_status log change to debug
+   ASTERISK-24463: Voicemail email address corrupt or not sent when message
+   is in the process of being recorded during reload
+   Reported by: John Campbell
+     * [8028fc7585] Andrew Nagy -- app_voicemail: always copy dynamic struct
+       to avoid race condition
+   ASTERISK-25917: [patch]app_voicemail: passwordlocation=spooldir only works
+   if you manually add secret.conf yourself
+   Reported by: Jonathan R. Rose
+     * [b38f1146e5] gtjoseph -- config: Fix ast_config_text_file_save2
+       writability check for missing files
+   ASTERISK-25874: app_voicemail: Stack buffer overflow in
+   test_voicemail_notify_endl
+   Reported by: Badalian Vyacheslav
+     * [daa086fae4] Joshua Colp -- app_voicemail: Fix
+       test_voicemail_notify_endl test.
+
+    Category: Applications/app_voicemail/IMAP
+
+   ASTERISK-26045: [patch]app_voicemail: fix bugs, imap mm_status log change
+   to debug
+   Reported by: Alexei Gradinari
+     * [c1512f4108] Richard Mudgett -- app_voicemail.c: Fix IMAP compile
+       error.
+     * [859bbec09b] Alexei Gradinari -- app_voicemail: fix bugs, imap
+       mm_status log change to debug
+   ASTERISK-24927: app_voicemail (IMAP support) function save_to_folder:
+   creates wrong folder
+   Reported by: Alexei Gradinari
+     * [f896136460] Alexei Gradinari -- app_voicemail/IMAP: function
+       'save_to_folder' creates wrong folder
+   ASTERISK-25899: IMAP access FATAL error: Out of memory
+   Reported by: Alexei Gradinari
+     * [bc320df173] Alexei Gradinari -- app_voicemail/IMAP: IMAP access FATAL
+       error: Out of memory
+
+    Category: Bridges/bridge_softmix
+
+   ASTERISK-26555: Multi-party Video: Fix some post Asterisk-11 regressions
+   Reported by: Matt Jordan
+     * [e7dc536b7a] Matt Jordan -- main/bridge_channel: Fix channel reference
+       leak on video source
+     * [7c824b955d] Matt Jordan -- main/bridge: Add some verbose logging for
+       video source changes
+     * [fd6af2dee8] Matt Jordan -- bridges/bridge_softmix: Remove SSRC
+       changes on join/leave; update video source
+
+    Category: CDR/cdr_custom
+
+   ASTERISK-26054: Asterisk crashes (core dump)
+   Reported by: B. Davis
+     * [321a9b128f] Joshua Colp -- res_odbc: Implement a connection pool.
+
+    Category: CEL/General
+
+   ASTERISK-25262: Memory leak when a caller channel does multiple dials and
+   CEL is enabled
+   Reported by: Etienne Lessard
+     * [caf6cccc5c] Joshua Colp -- cel: Ensure only one dial status per
+       channel exists.
+
+    Category: Channels/chan_dahdi
+
+   ASTERISK-26412: build: Prepare for gcc 6.2
+   Reported by: George Joseph
+     * [bd4d7d8ad0] Kevin Harwell -- stasis_recording/stored: remove calls to
+       deprecated readdir_r function.
+   ASTERISK-26216: res_fax: Deadlock when detect fax while channel executing
+   Playback
+   Reported by: Richard Mudgett
+     * [dcb8aa8c1c] Richard Mudgett -- chan_dahdi.c: Fix deadlock potential
+       in fax redirection.
+     * [fa91cf3eec] Richard Mudgett -- chan_sip.c: Fix deadlock potential in
+       fax redirection.
+     * [2e1bdc3775] Richard Mudgett -- chan_pjsip.c: Fix deadlock potential
+       in fax redirection.
+     * [628e8c91d5] Richard Mudgett -- res_fax.c: Fix deadlock potential in
+       FAXOPT(faxdetect) framehook.
+
+    Category: Channels/chan_dahdi/NewFeature
+
+   ASTERISK-26214: Allow arbitrary time for fax detection to end on a channel
+   Reported by: Richard Mudgett
+     * [676aeede36] Richard Mudgett -- res_fax: Fix FAXOPT(faxdetect) timeout
+       option.
+     * [652130feb2] Richard Mudgett -- chan_dahdi: Add faxdetect_timeout
+       option.
+     * [851b1c3a17] Richard Mudgett -- res_pjsip: Add fax_detect_timeout
+       endpoint option.
+
+    Category: Channels/chan_local
+
+   ASTERISK-25912: chan_local passes AST_CONTROL_PVT_CAUSE_CODE without
+   adding them to the local hangupcauses via ast_channel_hangupcause_hash_set
+   Reported by: Jaco Kroon
+     * [3f6c4667b8] Jaco Kroon -- core_unreal: Fix hangupcauses not getting
+       set on Local channels
+
+    Category: Channels/chan_multicast_rtp
+
+   ASTERISK-26439: chan_rtp: Crash when originating
+   Reported by: Kayode
+     * [644fad7477] Moises Silva -- chan_rtp: Set a sane default rtp engine
+       for unicast.
+
+    Category: Channels/chan_pjsip
+
+   ASTERISK-26516: pjsip: Memory corruption with possible memory leak.
+   Reported by: Richard Mudgett
+     * [e632222bc4] Richard Mudgett --
+       res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.
+     * [afecb2cfc0] Richard Mudgett -- bundled pjproject: Fix DNS write to
+       freed memory.
+   ASTERISK-26444: 'features show' command in CLI does not return prompt.
+   Reported by: John Kiniston
+     * [c2036c827c] snuffy -- Fix issue with CLI not returning to prompt
+       after running "features show"
+   ASTERISK-26482: [patch] chan_pjsip: segfault on already disconnected
+   session
+   Reported by: Alexei Gradinari
+     * [6d462b9eaf] Alexei Gradinari -- chan_pjsip: segfault on already
+       disconnected session
+   ASTERISK-26306: channel: Hang-up crashes, chan_pjsip not cleaning up
+   properly
+   Reported by: Alexander Traud
+     * [847bd47ff0] Alexander Traud -- channel: No hung-up on failing
+       security requirements.
+   ASTERISK-26145: pjsip: Deadlock with suspend + masquerade + indicate
+   Reported by: Ross Beer
+     * [1589452fdc] Alexei Gradinari -- pjsip: Fix deadlock with suspend
+       taskprocessor on masquerade
+   ASTERISK-26216: res_fax: Deadlock when detect fax while channel executing
+   Playback
+   Reported by: Richard Mudgett
+     * [dcb8aa8c1c] Richard Mudgett -- chan_dahdi.c: Fix deadlock potential
+       in fax redirection.
+     * [fa91cf3eec] Richard Mudgett -- chan_sip.c: Fix deadlock potential in
+       fax redirection.
+     * [2e1bdc3775] Richard Mudgett -- chan_pjsip.c: Fix deadlock potential
+       in fax redirection.
+     * [628e8c91d5] Richard Mudgett -- res_fax.c: Fix deadlock potential in
+       FAXOPT(faxdetect) framehook.
+   ASTERISK-26214: Allow arbitrary time for fax detection to end on a channel
+   Reported by: Richard Mudgett
+     * [676aeede36] Richard Mudgett -- res_fax: Fix FAXOPT(faxdetect) timeout
+       option.
+     * [652130feb2] Richard Mudgett -- chan_dahdi: Add faxdetect_timeout
+       option.
+     * [851b1c3a17] Richard Mudgett -- res_pjsip: Add fax_detect_timeout
+       endpoint option.
+   ASTERISK-26063: ${PJSIP_HEADER(read,Call-ID)} does not work -
+   documentation needs clarification for when read/write is possible
+   Reported by: Private Name
+     * [37d039fdf3] Rusty Newton -- res_pjsip: Add clarifying documentation
+       to PJSIP_HEADER help text
+   ASTERISK-24986: keepalive INFO packages ignored by asterisk
+   Reported by: Ilya Trikoz
+     * [39fedfa423] snuffy -- res_pjsip_empty_info: Respond to empty SIP INFO
+       packets
+   ASTERISK-26005: res_pjsip: Multiple SIP messages are combined into 1 TCP
+   packet
+   Reported by: Ross Beer
+     * [b6f9392a12] gtjoseph -- res_pjsip: Set TCP_NODELAY on TCP transports
+   ASTERISK-25990: PJSIP TLS registration should respect client_uri scheme
+   when generating Contact URI
+   Reported by: Sebastian Damm
+     * [a94a12bbf7] Sebastian Damm -- res_pjsip_outbound_registration:
+       generate correct Contact URI for TLS
+   ASTERISK-25826: PJSIP / Sorcery slow load from realtime
+   Reported by: Ross Beer
+     * [9c2032240e] Alexei Gradinari -- res_pjsip: improve realtime
+       performance
+     * [5aa5c49413] gtjoseph -- sorcery/res_pjsip: Refactor for realtime
+       performance
+
+    Category: Channels/chan_sip/CodecHandling
+
+   ASTERISK-24543: Asterisk 13 responds to SIP Invite with all possible
+   codecs configured for peer as opposed to intersection of configured codecs
+   and offered codecs
+   Reported by: Taylor Hawkes
+     * [81ce60f6d4] Alexander Traud -- chan_sip: Do not send all codecs on
+       INVITE. Do not break on Session-Timers.
+
+    Category: Channels/chan_sip/DatabaseSupport
+
+   ASTERISK-25934: chan_sip should not require sipregs or updateable sippeers
+   table unless rt
+   Reported by: Jaco Kroon
+     * [22335fe18a] Jaco Kroon -- chan_sip: Don't verify table if rtupdate=no
+
+    Category: Channels/chan_sip/General
+
+   ASTERISK-26523: chan_sip: Asterisk 13.12.1 disconnects incoming calls
+   after 2 minutes - rtptimeout behaving badly - regression
+   Reported by: Michael Keuter
+     * [cb30963d22] Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always
+       updated"
+   ASTERISK-26476: chan_sip: Incorrect display option "Outbound reg. retry
+   403" in "sip show settings"
+   Reported by: Sergey Grachev
+     * [b3f10b7b94] Grachev Sergey -- chan_sip: Incorrect display option
+       Outbound reg. retry 403
+   ASTERISK-26457: [patch] force_rport,auto_comedia: No NAT detection
+   triggered.
+   Reported by: Alexander Traud
+     * [a859bcb49c] Alexander Traud -- chan_sip: Support nat=auto_comedia or
+       nat=force_rport,auto_comedia.
+   ASTERISK-25468: Deadlock in chan_sip - core show locks shows do_monitor
+   lock
+   Reported by: Barry Flanagan
+     * [0056bcaebd] gtjoseph -- chan_sip: Address runaway when realtime peers
+       subscribe to mailboxes
+   ASTERISK-26358: chan_sip: Contact is updated on re-200, but not on
+   re-INVITE
+   Reported by: Walter Doekes
+     * [da8ba990d1] Walter Doekes -- chan_sip: Allow target refresh (Contact
+       update) on re-INVITE.
+   ASTERISK-26272: chan_sip: File descriptors leak (UDP sockets)
+   Reported by: Etienne Lessard
+     * [efcfc4c1ee] Corey Farrell -- chan_sip: Don't allocate new RTP
+       instances on top of old ones.
+   ASTERISK-24822: Deadlock: Fax Gateway framehook creates locking inversion
+   in T.38 query option with features bridging code
+   Reported by: David Brillert
+     * [8b4b2500ee] Richard Mudgett -- res_fax: Fix deadlock in
+       ast_channel_get_t38_state().
+     * [e8d4f40022] Richard Mudgett -- res_fax: Fix deadlock setting FAXMODE
+       channel variable.
+     * [35cf6c7702] Richard Mudgett -- res_fax.c: Fix deadlock in
+       fax_gateway_indicate_t38().
+   ASTERISK-23013: [patch] Deadlock between 'sip show channels' command and
+   attended transfer handling
+   Reported by: Ben Smithurst
+     * [52ab0bf258] gtjoseph -- chan_sip: Prevent deadlock when issuing "sip
+       show channels"
+   ASTERISK-26216: res_fax: Deadlock when detect fax while channel executing
+   Playback
+   Reported by: Richard Mudgett
+     * [dcb8aa8c1c] Richard Mudgett -- chan_dahdi.c: Fix deadlock potential
+       in fax redirection.
+     * [fa91cf3eec] Richard Mudgett -- chan_sip.c: Fix deadlock potential in
+       fax redirection.
+     * [2e1bdc3775] Richard Mudgett -- chan_pjsip.c: Fix deadlock potential
+       in fax redirection.
+     * [628e8c91d5] Richard Mudgett -- res_fax.c: Fix deadlock potential in
+       FAXOPT(faxdetect) framehook.
+   ASTERISK-26211: Unit tests: AST_TEST_DEFINE should be used in conditional
+   code.
+   Reported by: Corey Farrell
+     * [c8e41d14a1] Corey Farrell -- Unit tests: Use AST_TEST_DEFINE in
+       conditional code only.
+   ASTERISK-26193: chan_sip: reference leak in mwi_event_cb
+   Reported by: Corey Farrell
+     * [2be13d62fd] Corey Farrell -- chan_sip: Fix reference leak in
+       mwi_event_cb
+   ASTERISK-26184: chan_sip: Reference leaks in error paths.
+   Reported by: Corey Farrell
+     * [06ba533bc7] Corey Farrell -- chan_sip: Fix reference leaks in error
+       paths.
+   ASTERISK-26069: Asterisk truncates To: header, dropping the closing '>'
+   Reported by: Vasil Kolev
+     * [89cc86fc38] Vasil Kolev -- chan_sip: bigger buffers for headers,
+       better failure mode
+   ASTERISK-25950: [patch]SIP channel does not send PeerStatus events for
+   autocreated peers
+   Reported by: Kirill Katsnelson
+     * [29bab0d1a4] Kirill Katsnelson -- chan_sip: Make autocreated peers
+       send PeerStatus events
+   ASTERISK-25927: Removed option "registertrying" is still documented in
+   sip.conf.sample
+   Reported by: Etienne Lessard
+     * [6aeefa89bc] Leif Madsen -- Remove reference to non-existent sip.conf
+       option
+   ASTERISK-24543: Asterisk 13 responds to SIP Invite with all possible
+   codecs configured for peer as opposed to intersection of configured codecs
+   and offered codecs
+   Reported by: Taylor Hawkes
+     * [81ce60f6d4] Alexander Traud -- chan_sip: Do not send all codecs on
+       INVITE. Do not break on Session-Timers.
+   ASTERISK-21301: ERROR and failure to resolve socket address due to
+   whitespace after port number in SIP Via header
+   Reported by: Martin Vit
+     * [c5170677e7] Francesco Castellano -- chan_sip.c: Space after port
+       causes unnecessary resolution attempt
+
+    Category: Channels/chan_sip/IPv6
+
+   ASTERISK-26438: [patch] chan_sip: auto_force_rport: No NAT = No Symmetric
+   Response.
+   Reported by: Alexander Traud
+     * [f166681c12] Alexander Traud -- chan_sip: Honor support of Symmetric
+       Response (rport) for SIP requests.
+   ASTERISK-18232: Broken REGISTER sent to IPv4 server when bindaddr=[::]
+   Reported by: Jacek
+     * [0502675e5c] Alessandro Crespi -- chan_sip: Resolve externhost not to
+       IPv6; instead go for IPv4.
+
+    Category: Channels/chan_sip/Interoperability
+
+   ASTERISK-26030: call cut because of double Session-Expires header in
+   re-invite after proxy authentication is required
+   Reported by: George Joseph
+     * [77e8ec162b] gtjoseph -- chan_sip: Prevent extra Session-Expires
+       headers from being added
+
+    Category: Channels/chan_sip/Registration
+
+   ASTERISK-18232: Broken REGISTER sent to IPv4 server when bindaddr=[::]
+   Reported by: Jacek
+     * [0502675e5c] Alessandro Crespi -- chan_sip: Resolve externhost not to
+       IPv6; instead go for IPv4.
+   ASTERISK-25950: [patch]SIP channel does not send PeerStatus events for
+   autocreated peers
+   Reported by: Kirill Katsnelson
+     * [29bab0d1a4] Kirill Katsnelson -- chan_sip: Make autocreated peers
+       send PeerStatus events
+
+    Category: Channels/chan_sip/SRTP
+
+   ASTERISK-23989: [patch]SDP offer/answer fails if crypto keys added to
+   non-crypto offer
+   Reported by: Olle Johansson
+     * [d04ae7d1d8] Walter Doekes -- chan_sip: Don't refuse calls with
+       "optional crypto"; fall back to RTP.
+
+    Category: Channels/chan_sip/T.38
+
+   ASTERISK-26179: chan_sip: Second T.38 request fails
+   Reported by: Joshua Colp
+     * [77b0145a25] Joshua Colp -- chan_sip/res_pjsip_t38: Handle a request
+       to negotiate T.38 after it is enabled.
+
+    Category: Channels/chan_sip/TCP-TLS
+
+   ASTERISK-19968: TCP Session-Timers not dropping call
+   Reported by: Aaron Hamstra
+     * [98e42cc662] Steve Davies -- chan_sip: Fix session timeout on
+       retransmit of non-UDP packets
+     * [66c9dfb272] Alexander Traud -- chan_sip: Enable Session-Timers for
+       SIP over TCP (and TLS).
+
+    Category: Channels/chan_sip/Video
+
+   ASTERISK-17470: [patch] - When videosupport=yes, asterisk allows one end
+   peer to send video, even though the other end supports only audio.
+   Reported by: effie mouzeli
+     * [f1fd873df0] Michael Kuron -- chan_sip: Only send video on outgoing
+       channel if incoming channel supports it
+
+    Category: Channels/chan_skinny
+
+   ASTERISK-26029: parking: ast_parking_park_call should return parking_space
+   instead of parking_exten
+   Reported by: Diederik de Groot
+     * [9453d1187a] Richard Mudgett -- parking.h: Update
+       ast_parking_park_call() doxygen to reality.
+
+    Category: Channels/chan_unistim
+
+   ASTERISK-26565: chan_unistim on 11, 13, 14 placing call on hold
+   temporarily locks up set
+   Reported by: Jason
+     * [3faca1d4ff] Igor Goncharovskiy -- Fix closing rtp ports after call
+       finished in chan_unistim.
+   ASTERISK-26138: chan_unistim: Under FreeBSD, chan_unistim generates a
+   compile error
+   Reported by: George Joseph
+     * [bc69b03316] gtjoseph -- chan_unistim: Fix memcpy in get_to_address
+
+    Category: Codecs/General
+
+   ASTERISK-26144: Crash on loading codecs g729/g723
+   Reported by: Alexei Gradinari
+     * [d07c8a0504] gtjoseph -- codecs: Fix ABI incompatibility created by
+       adding format_name to ast_codec
+   ASTERISK-25914: PJSIP: failed registration with wrong codec name on
+   allow/disallow
+   Reported by: Alexei Gradinari
+     * [64ecd41c8f] Alexei Gradinari -- Codecs: strip codec name while
+       parsing allow/disallow options
+
+    Category: Codecs/codec_opus
+
+   ASTERISK-26520: codec_opus: Generated fmtp line has no content
+   Reported by: scgm11
+     * [2c031b67d3] Mark Michelson -- res_format_attr_opus: Fix fmtp
+       generation.
+
+    Category: Codecs/codec_siren14
+
+   ASTERISK-26021: Build codecs siren7 and siren14 for Asterisk 13
+   Reported by: Daniel Denson
+     * [1dfc286418] Joshua Colp -- siren: Add format attribute modules for
+       Siren7 and Siren14.
+
+    Category: Codecs/codec_siren7
+
+   ASTERISK-26021: Build codecs siren7 and siren14 for Asterisk 13
+   Reported by: Daniel Denson
+     * [1dfc286418] Joshua Colp -- siren: Add format attribute modules for
+       Siren7 and Siren14.
+
+    Category: Contrib/General
+
+   ASTERISK-24311: Populating database via Alembic fails when using same
+   database for multiple schema sets
+   Reported by: Dafi Ni
+     * [86550f9c17] gtjoseph -- alembic: Allow cdr, config and voicemail to
+       exist in the same schema
+   ASTERISK-22374: Finish mapping the sip.conf parameters to res_sip.conf
+   parameters
+   Reported by: Matt Jordan
+     * [a628009eb9] Alexander Traud -- sip_to_pjsip: Add cert_file.
+     * [cab6975b02] Kevin Harwell -- sip_to_pjsip: Set correct tls transport
+       method
+     * [2381ddde63] Alexander Traud -- sip_to_pjsip: Map the TLS method
+       correctly.
+     * [6500f5e138] Alexander Traud -- sip_to_pjsip: Add compactheaders,
+       timerb, timert1, and useragent.
+     * [21e9c69e56] Alexander Traud -- sip_to_pjsip: Map (session-)timers
+       correctly.
+     * [c9a97398f7] Alexander Traud -- sip_to_pjsip: Write username even
+       without authname.
+     * [60275359bc] Alexander Traud -- sip_to_pjsip: Parse register even with
+       transport.
+     * [0d479232eb] Alexander Traud -- sip_to_pjsip: Write local_net,
+       contact_acl, contact_deny, and contact_permit.
+     * [cbc1b2d020] Alexander Traud -- sip_to_pjsip: Map externhost/ip to
+       Transports.
+     * [5f33e99534] Alexander Traud -- sip_to_pjsip: Add defaultexpiry,
+       maxexpiry, and minexpiry.
+     * [231ea0350d] Alexander Traud -- sip_to_pjsip: Write media_encryption.
+     * [23eb065121] Alexander Traud -- sip_to_pjsip: Write cos and tos.
+     * [0b675a208b] Alexander Traud -- sip_to_pjsip: Add cert_file and
+       ca_list_path.
+   ASTERISK-26183: alembic: error when using sqlalchemy version 1.1.0b2
+   Reported by: Kevin Harwell
+     * [f6ec94cca6] Kevin Harwell -- alembic/sqlalchemy: auto increment only
+       allowed on a single column
+   ASTERISK-26128: Alembic scripts are failing
+   Reported by: Mark Michelson
+     * [1b79e2deff] Mark Michelson -- Fix Alembic upgrades.
+   ASTERISK-25890: Asterisk 13.8.0 alembic database update fails
+   Reported by: Harley Peters
+     * [d312fdeb1b] gtjoseph -- alembic: Remove batch operations (and sqlite
+       support)
+
+    Category: Core/AstMM
+
+   ASTERISK-26526: [UBSAN] vector.h: null pointer can be passed as argument 2
+   to memcpy
+   Reported by: Badalian Vyacheslav
+     * [30b1bc77d2] Corey Farrell -- vector: Prevent NULL argument to memcpy.
+   ASTERISK-26524: astobj2: data_size variable is wasted space when AO2_DEBUG
+   is not enabled.
+   Reported by: Corey Farrell
+     * [b96f18560b] Corey Farrell -- astobj2: Declare private variable
+       data_size for AO2_DEBUG only.
+   ASTERISK-26181: REF_DEBUG: Node object incorrectly logged during duplicate
+   replacement
+   Reported by: Corey Farrell
+     * [9d4e664f62] Corey Farrell -- REF_DEBUG: Prevent logging of container
+       node objects.
+
+    Category: Core/Bridging
+
+   ASTERISK-26555: Multi-party Video: Fix some post Asterisk-11 regressions
+   Reported by: Matt Jordan
+     * [e7dc536b7a] Matt Jordan -- main/bridge_channel: Fix channel reference
+       leak on video source
+     * [7c824b955d] Matt Jordan -- main/bridge: Add some verbose logging for
+       video source changes
+     * [fd6af2dee8] Matt Jordan -- bridges/bridge_softmix: Remove SSRC
+       changes on join/leave; update video source
+   ASTERISK-25947: Protocol transfers to stasis applications are missing the
+   StasisStart with the replace_channel object.
+   Reported by: Richard Mudgett
+     * [a036c35903] Richard Mudgett -- res_stasis: Handle re-enter stasis
+       bridge with swap channel.
+     * [9942d50aa5] Richard Mudgett -- bridge: Hold off more than one
+       imparting channel at a time.
+   ASTERISK-24782: StasisEnd event not present for channel that was swapped
+   out for another after completing attended transfer
+   Reported by: John Bigelow
+     * [a036c35903] Richard Mudgett -- res_stasis: Handle re-enter stasis
+       bridge with swap channel.
+     * [9942d50aa5] Richard Mudgett -- bridge: Hold off more than one
+       imparting channel at a time.
+
+    Category: Core/BuildSystem
+
+   ASTERISK-26608: Compile and link failures on OpenBSD
+   Reported by: snuffy
+     * [b213045fe4] gtjoseph -- build: Various OpenBSD issues
+   ASTERISK-26592: Latest libedit (3.1) defaults to unicode and makes
+   asterisk CLI read garbage
+   Reported by: George Joseph
+     * [5e0c224043] gtjoseph -- cli: Fix ast_el_read_char to work with
+       libedit >= 3.1
+   ASTERISK-22480: Embedded pjproject: build.mak contains hardcoded full path
+   to version.mak
+   Reported by: Matt Jordan
+     * [61a5c3460e] gtjoseph -- pjproject_bundled: Remove usage of tar's
+       --strip-components option
+   ASTERISK-26356: menuselect: invalid test for GTK2
+   Reported by: Tzafrir Cohen
+     * [6f5880913f] Tzafrir Cohen -- menuselect: invalid test for GTK2
+   ASTERISK-26303: [patch] BuildSystem: ca_list_path capabilities not
+   detected in PJProject.
+   Reported by: Alexander Traud
+     * [56e0aed177] Alexander Traud -- BuildSystem: Detect ca_list_path
+       capabilities in external PJProject.
+   ASTERISK-26038: 'make install' doesn't seem to install OS/X init files
+   Reported by: Tzafrir Cohen
+     * [5f24874ebb] Alexander Traud -- Makefile: Suppress echoing of target
+       'config' again.
+     * [a32616d60c] Tzafrir Cohen -- Makefile: remove OSARCH check for init
+       install
+   ASTERISK-26046: [patch] Avoid obsolete warnings on autoconf.
+   Reported by: Alexander Traud
+     * [148cd1b319] Alexander Traud -- BuildSystem: Avoid obsolete warning
+       with pthread.m4 on autoconf.
+     * [a1bd57884d] Alexander Traud -- BuildSystem: Avoid obsolete warning
+       with libcurl.m4 on autoconf.
+     * [5f0a098243] Alexander Traud -- BuildSystem: Avoid obsolete warning
+       with AC_TYPE_SIGNAL on autoconf.
+     * [e30602587c] Alexander Traud -- BuildSystem: Avoid obsolete warning
+       with AC_FUNC_SETVBUF_REVERSED on autoconf.
+     * [cbfa9f771e] Alexander Traud -- BuildSystem: Avoid obsolete warning
+       with HELP_STRING on autoconf.
+   ASTERISK-25289: Build System does not respect CFLAGS and CXXFLAGS when
+   building menuselect
+   Reported by: Jeffrey Walton
+     * [3be6fa1e4b] Alexander Traud -- BuildSystem: Allow own CFLAGS on
+       ./configure.
+   ASTERISK-26157: Build: Fix errors highlighted by GCC 6.x
+   Reported by: George Joseph
+     * [f3d236ca7f] gtjoseph -- BuildSystem: Fix a few issues hightlighted by
+       gcc 6.x
+   ASTERISK-26091: [patch] ar cru creates warning, instead use ar cr
+   Reported by: Alexander Traud
+     * [d38b8e6399] Alexander Traud -- BuildSystem: Avoid 'ar cru' and use
+       'ar cr' instead.
+
+    Category: Core/CallCompletionSupplementaryServices
+
+   ASTERISK-22732: Deadlock potential in res_fax and CCSS with local
+   channels.
+   Reported by: Richard Mudgett
+     * [8b4b2500ee] Richard Mudgett -- res_fax: Fix deadlock in
+       ast_channel_get_t38_state().
+     * [e8d4f40022] Richard Mudgett -- res_fax: Fix deadlock setting FAXMODE
+       channel variable.
+     * [35cf6c7702] Richard Mudgett -- res_fax.c: Fix deadlock in
+       fax_gateway_indicate_t38().
+
+    Category: Core/Channels
+
+   ASTERISK-26331: Crash on a**core show channeltype Surrogatea** in
+   ast_format_cap_get_names
+   Reported by: CGI.NET
+     * [8d1c535bd6] Richard Mudgett -- format_cap.c: Fix CLI "core show
+       channeltype Surrogate" crash.
+   ASTERISK-26306: channel: Hang-up crashes, chan_pjsip not cleaning up
+   properly
+   Reported by: Alexander Traud
+     * [847bd47ff0] Alexander Traud -- channel: No hung-up on failing
+       security requirements.
+
+    Category: Core/CodecInterface
+
+   ASTERISK-26605: codec_opus: Spammed warning when Opus negotiated but
+   codec_opus not loaded.
+   Reported by: Richard Mudgett
+     * [ed0f1afc8c] Richard Mudgett -- codec_opus: Fix warning when Opus
+       negotiated but codec_opus not loaded.
+
+    Category: Core/Configuration
+
+   ASTERISK-25956: Compilation error in conditionally compiled code in
+   config_options.c
+   Reported by: Chris Trobridge
+     * [dd00c71aae] Chris Trobridge -- config_options.c: Expand #ifdef to
+       contain whole if statement.
+   ASTERISK-25868: Sorcery "append to category" should allow filters
+   Reported by: Nick Repin
+     * [50b0922a22] gtjoseph -- config: Allow filters when appending to a
+       category
+   ASTERISK-25612: Configuration parser handles unsigned integers as signed
+   integers
+   Reported by: Gianluca Merlo
+     * [c6e4c48e67] Gianluca Merlo -- config: fix flags in uint option
+       handler
+
+    Category: Core/FileFormatInterface
+
+   ASTERISK-25998: file: Crash when using nativeformats
+   Reported by: Joshua Colp
+     * [fa11f4c920] Joshua Colp -- file: Ensure nativeformats remains valid
+       for lifetime of use.
+
+    Category: Core/General
+
+   ASTERISK-26605: codec_opus: Spammed warning when Opus negotiated but
+   codec_opus not loaded.
+   Reported by: Richard Mudgett
+     * [ed0f1afc8c] Richard Mudgett -- codec_opus: Fix warning when Opus
+       negotiated but codec_opus not loaded.
+   ASTERISK-26509: A few non-critical deprecation warnings when building on
+   Ubuntu 16.10
+   Reported by: Jonathan Harris
+     * [bd4d7d8ad0] Kevin Harwell -- stasis_recording/stored: remove calls to
+       deprecated readdir_r function.
+   ASTERISK-26466: core: Be forgiving on external callerid that may be flawed
+   so we don't drop events
+   Reported by: Richard Mudgett
+     * [3c54328c57] Richard Mudgett -- Audit ast_json_pack() calls for needed
+       UTF-8 checks.
+     * [7f8f125738] Richard Mudgett -- json: Check party id name, number,
+       subaddresses for UTF-8.
+     * [9621c9bcbc] Richard Mudgett -- json: Add UTF-8 check call.
+   ASTERISK-26273: core: Won't compile when LOW_MEMORY is enabled
+   Reported by: Anthony Messina
+     * [c9ce299b64] Corey Farrell -- core: Fix LOW_MEMORY missing symbol
+       ast_pbx_uuid_get.
+   ASTERISK-26331: Crash on a**core show channeltype Surrogatea** in
+   ast_format_cap_get_names
+   Reported by: CGI.NET
+     * [8d1c535bd6] Richard Mudgett -- format_cap.c: Fix CLI "core show
+       channeltype Surrogate" crash.
+   ASTERISK-26267: ast_register_atexit callbacks should be run on failed
+   startup.
+   Reported by: Corey Farrell
+     * [cb043249b6] Corey Farrell -- Run mandatory cleanup when startup
+       fails.
+   ASTERISK-26265: Errors ignored from some parts of system initialization.
+   Reported by: Corey Farrell
+     * [805f105f88] Corey Farrell -- Add missing checks during startup.
+   ASTERISK-25996: Remove "live_dangerously" requirement on DB(read)
+   Reported by: Andrew Nagy
+     * [873fc0fda5] Richard Mudgett -- pbx.c: Allow dangerous functions when
+       adding a hint to dialplan.
+   ASTERISK-26237: Fax is detected on regular calls.
+   Reported by: Richard Mudgett
+     * [159e437e5a] Richard Mudgett -- dsp.c: Fix erroneous fax tone
+       detection.
+   ASTERISK-26191: threadpool: Leak on duplicate taskprocessor for
+   ast_threadpool_serializer_group
+   Reported by: Corey Farrell
+     * [672a64bda3] Corey Farrell -- threadpool: Fix leak in
+       ast_threadpool_serializer_group error path.
+   ASTERISK-26119: [patch] fix: memory leaks, resource leaks, out of bounds
+   and bugs
+   Reported by: Alexei Gradinari
+     * [5ee205d8bb] Richard Mudgett -- ast_expr2: Fix off-nominal memory
+       leak.
+     * [5134a8043a] Alexei Gradinari -- fix: memory leaks, resource leaks,
+       out of bounds and bugs
+   ASTERISK-26097: [patch] CLI: show maximum file descriptors
+   Reported by: Alexander Traud
+     * [ca38a3cbb4] Alexander Traud -- core: Not the configured but granted
+       number of possible file descriptors.
+     * [0d84421f93] Alexander Traud -- astfd: Not maximum size of a single
+       file but maximum file descriptors.
+   ASTERISK-25894: [patch] webrtc video broken due to missing marker bits in
+   RTP streams
+   Reported by: Jacek Konieczny
+     * [0735a4d6d7] Jacek Konieczny -- frame.c: Copy the whole subclass in
+       ast_frdup().
+   ASTERISK-25825: Crashes during shutdown when running CLI commands
+   Reported by: Mark Michelson
+     * [59c8e189fd] Mark Michelson -- Restrict CLI/AMI commands on shutdown.
+
+    Category: Core/HTTP
+
+   ASTERISK-26126: [patch] leverage 'bindaddr' for TLS in http.conf
+   Reported by: Alexander Traud
+     * [76516bd79d] Alexander Traud -- http: leverage 'bindaddr' for TLS in
+       http.conf
+
+    Category: Core/Logging
+
+   ASTERISK-26078: core: Memory leak in logging
+   Reported by: Etienne Lessard
+     * [e2132dd358] Richard Mudgett -- logging,cdr,cel: Fix stringfield
+       memory leak.
+   ASTERISK-25538: [patch]Missing PID in syslog logger messages
+   Reported by: Javier Acosta
+     * [36d66a23e0] Alexei Gradinari -- logger: Add PID to syslog messages.
+   ASTERISK-25407: Asterisk fails to log to multiple syslog destinations
+   Reported by: Elazar Broad
+     * [82e55e4883] Walter Doekes -- core/logging: Fix broken syslog levels
+       on older glibc.
+   ASTERISK-25510: [patch]Log to syslog failing
+   Reported by: Michael Newton
+     * [82e55e4883] Walter Doekes -- core/logging: Fix broken syslog levels
+       on older glibc.
+
+    Category: Core/ManagerInterface
+
+   ASTERISK-26537: AMI: NewConnectedLine event is not documented
+   Reported by: Etienne Lessard
+     * [42bd70b29f] Etienne Lessard -- manager: Add documentation for
+       NewConnectedLine event.
+   ASTERISK-26397: manager: PresenceState action crashes Asterisk 14
+   Reported by: Andrew Nagy
+     * [323aff3a09] Joshua Colp -- core: Ensure presencestate subtype and
+       message are NULL.
+   ASTERISK-26246: Security: Privilege escalation by AMI adding dialplan
+   extensions.
+   Reported by: Richard Mudgett
+     * [2735ec899a] Joshua Colp -- manager: Clarify that dialplan
+       manipulation actions are under system class.
+
+    Category: Core/PBX
+
+   ASTERISK-26226: pbx: Asterisk crash on AMI action "ShowDialplan" when
+   there's a circular dependency between contexts
+   Reported by: Etienne Lessard
+     * [27951792c4] Etienne Lessard -- pbx.c: Prevent infinite recursion in
+       manager_show_dialplan_helper.
+   ASTERISK-26233: pbx: Failure to remove inconsistent extension names
+   Reported by: Corey Farrell
+     * [9b822293bd] Corey Farrell -- pbx.c: Additional fixes to
+       ast_context_remove_extension_callerid2.
+     * [57e9c66819] Corey Farrell -- pbx.c: Fix handling of '-' in extension
+       name and callerid
+   ASTERISK-26196: pbx: Time based includes can leak timezone string
+   Reported by: Corey Farrell
+     * [a17b071e36] Corey Farrell -- pbx: Fix leak of timezone for time based
+       includes.
+
+    Category: Core/RTP
+
+   ASTERISK-26311: [patch] rtp_engine: Allow more than 32 dynamic payload
+   types.
+   Reported by: Alexander Traud
+     * [0cf1778eed] Alexander Traud -- rtp_engine: Allow more than 32 dynamic
+       payload types.
+   ASTERISK-26367: rtp: Timestamps broken when video frame is across multiple
+   RTP packets
+   Reported by: Joshua Colp
+     * [1cac856e17] Joshua Colp -- rtp: Preserve timestamps on video frames.
+
+    Category: Core/SQLite3
+
+   ASTERISK-25996: Remove "live_dangerously" requirement on DB(read)
+   Reported by: Andrew Nagy
+     * [873fc0fda5] Richard Mudgett -- pbx.c: Allow dangerous functions when
+       adding a hint to dialplan.
+
+    Category: Core/Sorcery
+
+   ASTERISK-26172: res_sorcery_realtime: fix bug when successful sql UPDATE
+   is treated as failed if there is no affected rows.
+   Reported by: Alexei Gradinari
+     * [b4a9fa2c9e] Alexei Gradinari -- res_sorcery_realtime: fix bug when
+       successful UPDATE is treated as failed
+   ASTERISK-26014: res_sorcery_astdb: Make tolerant of unknown fields
+   Reported by: Joshua Colp
+     * [ddcf983e39] Joshua Colp -- res_sorcery_astdb: Filter fields to only
+       the registered ones.
+   ASTERISK-25826: PJSIP / Sorcery slow load from realtime
+   Reported by: Ross Beer
+     * [9c2032240e] Alexei Gradinari -- res_pjsip: improve realtime
+       performance
+     * [5aa5c49413] gtjoseph -- sorcery/res_pjsip: Refactor for realtime
+       performance
+
+    Category: Core/Stasis
+
+   ASTERISK-26468: ari: Bridge events stop working after this sequence of ARI
+   calls
+   Reported by: Daniele Pallastrelli
+     * [3a1f9c5dab] Joshua Colp -- res_stasis: Don't unsubscribe from a NULL
+       bridge.
+
+    Category: Core/UDPTL
+
+   ASTERISK-26034: T.38 passthrough problem behind firewall due to early
+   nosignal packet
+   Reported by: George Joseph
+     * [935e0496c4] gtjoseph -- udptl: Don't eat sequence numbers until OK is
+       received
+
+    Category: Documentation
+
+   ASTERISK-26514: Super Awesome Company: Don't specify transport in
+   pjsip.conf
+   Reported by: Rusty Newton
+     * [87903a6848] Rusty Newton -- SAC documentation: don't specify
+       transports for endpoints and registrations
+   ASTERISK-25472: Swagger scripts are not replacing format variable in file
+   brief
+   Reported by: Corey Farrell
+     * [ff2378c735] Kevin Harwell -- rest-api: Swagger scripts were not
+       replacing format variable in file brief
+   ASTERISK-26212: [patch] Makefile: Retain XML Declaration and DTD in docs.
+   Reported by: Alexander Traud
+     * [021d4892cd] Alexander Traud -- Makefile: Retain XML Declaration and
+       DTD in docs.
+   ASTERISK-25927: Removed option "registertrying" is still documented in
+   sip.conf.sample
+   Reported by: Etienne Lessard
+     * [6aeefa89bc] Leif Madsen -- Remove reference to non-existent sip.conf
+       option
+
+    Category: Features
+
+   ASTERISK-26444: 'features show' command in CLI does not return prompt.
+   Reported by: John Kiniston
+     * [c2036c827c] snuffy -- Fix issue with CLI not returning to prompt
+       after running "features show"
+
+    Category: Features/Parking
+
+   ASTERISK-26029: parking: ast_parking_park_call should return parking_space
+   instead of parking_exten
+   Reported by: Diederik de Groot
+     * [9453d1187a] Richard Mudgett -- parking.h: Update
+       ast_parking_park_call() doxygen to reality.
+
+    Category: Formats/General
+
+   ASTERISK-26426: format_ogg_opus: remove from source
+   Reported by: Kevin Harwell
+     * [2449d2877c] Kevin Harwell -- Remove "format_ogg_opus: New format"
+
+    Category: Functions/func_aes
+
+   ASTERISK-25857: func_aes: incorrect use of strlen() leads to data
+   corruption
+   Reported by: Gianluca Merlo
+     * [aa2fcd244e] Gianluca Merlo -- func_aes: fix misuse of strlen on
+       binary data
+
+    Category: Functions/func_curl
+
+   ASTERISK-26211: Unit tests: AST_TEST_DEFINE should be used in conditional
+   code.
+   Reported by: Corey Farrell
+     * [c8e41d14a1] Corey Farrell -- Unit tests: Use AST_TEST_DEFINE in
+       conditional code only.
+   ASTERISK-25669: [patch]CURL incorrect trim for non ASCII characters
+   Reported by: Jesper
+     * [9ddaab789e] Jesper -- func_curl: Don't trim response text on
+       non-ASCII characters
+
+    Category: Functions/func_odbc
+
+   ASTERISK-25984: res_odbc relies on res_odbc_transaction, but it's not
+   mandatory to compile it
+   Reported by: JA^3zsef DudA!s
+     * [4c1ae07d51] gtjoseph -- res_odbc: Correct the dependency relationship
+       with res_odbc_transaction
+   ASTERISK-26177: func_odbc: Database handle is kept when it should be
+   released
+   Reported by: Leandro Dardini
+     * [17efed6cf7] Joshua Colp -- func_odbc: Fix connection deadlock.
+   ASTERISK-25938: res_odbc: MySQL/MariaDB statement LAST_INSERT_ID() always
+   returns zero.
+   Reported by: Edwin Vandamme
+     * [cd89501d48] Alexei Gradinari -- func_odbc: single database connection
+       should be optional
+     * [068ae54c76] Mark Michelson -- func_odbc: Use one connection per DSN.
+   ASTERISK-25963: func_odbc requires reconnect checks for stale connections
+   Reported by: Ross Beer
+     * [677d5b5151] Mark Michelson -- func_odbc: Check connection status
+       before executing queries.
+
+    Category: Functions/func_strings
+
+   ASTERISK-25669: [patch]CURL incorrect trim for non ASCII characters
+   Reported by: Jesper
+     * [9ddaab789e] Jesper -- func_curl: Don't trim response text on
+       non-ASCII characters
+
+    Category: General
+
+   ASTERISK-26575: testsuite: Need to check PJSIP functionality when res_srtp
+   is not loaded.
+   Reported by: Joshua Colp
+     * [b70eb07c53] Joshua Colp -- res_pjsip_sdp_rtp: Reject offer of
+       required SRTP without res_srtp.
+   ASTERISK-25070: Fix FTBFS on Hurd
+   Reported by: Gabriele Giacone
+     * [94c9496ed5] Tzafrir Cohen -- netsock.c: fix includes for HURD
+     * [c1c9487375] Tzafrir Cohen -- define PATH_MAX for HURD
+   ASTERISK-26387: Asterisk segfaults shortly after starting even with no
+   active calls.
+   Reported by: Harley Peters
+     * [d7f457e4c1] Richard Mudgett -- bundled pjproject: Crashes while
+       resolving DNS names.
+   ASTERISK-26513: tests/channels/pjsip/qualify/auth: Crashing enough to be a
+   nuisance
+   Reported by: Joshua Colp
+     * [f373de3020] Corey Farrell -- Fix shutdown crash caused by modules
+       being left open.
+   ASTERISK-26421: Segmentation Fault with ARI originate into mixing bridge
+   with 43 clients
+   Reported by: Andrew Nagy
+     * [eff97808fb] Mark Michelson -- ARI: Detect duplicate channel IDs
+     * [012fda29d2] Mark Michelson -- CDR: Alter destruction pattern for CDR
+       chains.
+   ASTERISK-26480: [patch] CLI: core set debug: Auto-completes File not
+   Module
+   Reported by: Alexander Traud
+     * [662b560c35] Alexander Traud -- cli: Auto-complete File not Module for
+       core set debug.
+   ASTERISK-26268: alembic: 'auth_username' not in PJSIP 'identify_by' enum
+   Reported by: Joshua Colp
+     * [5913929d31] Kevin Harwell -- alembic: add auth_username to endpoint's
+       identify_by enum
+   ASTERISK-26227: sqlalchemy error due to long identifier name
+   Reported by: Mark Michelson
+     * [eda95236d1] Mark Michelson -- Fix sqlalchemy error regarding
+       identifier length.
+   ASTERISK-26180: PJSIP: provide valid tcp nodelay option for reuse
+   Reported by: Scott Griepentrog
+     * [e26bd15e7a] Scott Griepentrog -- PJSIP: provide valid tcp nodelay
+       option for reuse
+   ASTERISK-26132: PJSIP: provide transport type with received messages
+   Reported by: Scott Griepentrog
+     * [69d58a1e37] Scott Griepentrog -- PJSIP: provide transport type with
+       received messages
+   ASTERISK-25777: data race in threadpool
+   Reported by: Badalian Vyacheslav
+     * [a42bea3314] Corey Farrell -- threadpool: Fix potential data race.
+   ASTERISK-25978: res_pjsip_authenticator_digest: Should not use source port
+   in nonce verification
+   Reported by: Mark Michelson
+     * [4d063814ba] Kevin Harwell -- res_pjsip_authenticator_digest: Don't
+       use source port in nonce verification
+   ASTERISK-25948: ast_pthread_mutex_lock calling ast_reentrancy_lock with
+   lt=0x0
+   Reported by: Diederik de Groot
+     * [e750ea9b5b] Diederik de Groot -- lock.c: Check *lt before
+       dereferencing it
+
+    Category: Resources/res_agi
+
+   ASTERISK-26343: ASTERISK-25951 causes issues for callerid manipulation
+   through agi
+   Reported by: Morten Tryfoss
+     * [404596b790] gtjoseph -- channel: Fix issues in hangup scenarios
+       caused by frame deferral
+     * [2e3a354575] Mark Michelson -- autoservice: Use frame deferral API
+     * [5c10091f3d] Mark Michelson -- AGI: Only defer frames when in an
+       interception routine.
+     * [9231a56cf3] Mark Michelson -- Add API for channel frame deferral.
+   ASTERISK-25951: res_agi: run_agi eats frames it shouldn't
+   Reported by: George Joseph
+     * [eb7c581806] gtjoseph -- res_agi: Prevent run_agi from eating frames
+       it shouldn't
+
+    Category: Resources/res_ari
+
+   ASTERISK-25492: ARI: Path parameters are case sensitive
+   Reported by: Joshua Colp
+     * [2edcfcf1eb] gtjoseph -- ari: Add documentation that path parameters
+       are case-sensitive
+   ASTERISK-25941: chan_pjsip: Crash on an immediate SIP final response
+   Reported by: Javier Riveros
+     * [c0b190dd9a] Mark Michelson -- res_pjsip: Match dialogs on responses
+       better.
+   ASTERISK-25964: Outbound registrations created via ARI/push configuration
+   do not clean up outbound registrations currently in flight
+   Reported by: Matt Jordan
+     * [3f6ef63099] gtjoseph -- res_pjsip_outbound_registration: Clean up
+       state when registration is deleted
+   ASTERISK-25882: ARI: Crash can occur due to race condition when attempting
+   to operate on a hung up channel (Part 2)
+   Reported by: Richard Mudgett
+     * [ecf4102d02] Richard Mudgett -- res_stasis: Add control ref to
+       playback and recording structs.
+     * [a179aba65e] Richard Mudgett -- res_stasis: Fix crash on a hanging up
+       channel.
+
+    Category: Resources/res_ari_bridges
+
+   ASTERISK-26468: ari: Bridge events stop working after this sequence of ARI
+   calls
+   Reported by: Daniele Pallastrelli
+     * [3a1f9c5dab] Joshua Colp -- res_stasis: Don't unsubscribe from a NULL
+       bridge.
+
+    Category: Resources/res_ari_channels
+
+   ASTERISK-26070: ari/channels: Creating a local channel without an
+   originator adds all audio formats to it's capabilities
+   Reported by: George Joseph
+     * [c27c232057] gtjoseph -- ari/resource_channels: Add 'formats' to
+       channel create/originate
+
+    Category: Resources/res_config_odbc
+
+   ASTERISK-26263: SQL error when using realtime and registering extension /
+   inserting into ps_contacts
+   Reported by: Jeppe Ryskov Larsen
+     * [cdbad152c7] Richard Mudgett -- res_config_odbc.c: Fix buffer size
+       limitation creating invalid SQL.
+   ASTERISK-26172: res_sorcery_realtime: fix bug when successful sql UPDATE
+   is treated as failed if there is no affected rows.
+   Reported by: Alexei Gradinari
+     * [b4a9fa2c9e] Alexei Gradinari -- res_sorcery_realtime: fix bug when
+       successful UPDATE is treated as failed
+
+    Category: Resources/res_fax
+
+   ASTERISK-26203: res_fax: Deadlock when using FAXOPT(gateway)=yes with
+   Local channels
+   Reported by: Etienne Lessard
+     * [8b4b2500ee] Richard Mudgett -- res_fax: Fix deadlock in
+       ast_channel_get_t38_state().
+     * [e8d4f40022] Richard Mudgett -- res_fax: Fix deadlock setting FAXMODE
+       channel variable.
+     * [35cf6c7702] Richard Mudgett -- res_fax.c: Fix deadlock in
+       fax_gateway_indicate_t38().
+   ASTERISK-22732: Deadlock potential in res_fax and CCSS with local
+   channels.
+   Reported by: Richard Mudgett
+     * [8b4b2500ee] Richard Mudgett -- res_fax: Fix deadlock in
+       ast_channel_get_t38_state().
+     * [e8d4f40022] Richard Mudgett -- res_fax: Fix deadlock setting FAXMODE
+       channel variable.
+     * [35cf6c7702] Richard Mudgett -- res_fax.c: Fix deadlock in
+       fax_gateway_indicate_t38().
+   ASTERISK-26216: res_fax: Deadlock when detect fax while channel executing
+   Playback
+   Reported by: Richard Mudgett
+     * [dcb8aa8c1c] Richard Mudgett -- chan_dahdi.c: Fix deadlock potential
+       in fax redirection.
+     * [fa91cf3eec] Richard Mudgett -- chan_sip.c: Fix deadlock potential in
+       fax redirection.
+     * [2e1bdc3775] Richard Mudgett -- chan_pjsip.c: Fix deadlock potential
+       in fax redirection.
+     * [628e8c91d5] Richard Mudgett -- res_fax.c: Fix deadlock potential in
+       FAXOPT(faxdetect) framehook.
+   ASTERISK-26214: Allow arbitrary time for fax detection to end on a channel
+   Reported by: Richard Mudgett
+     * [676aeede36] Richard Mudgett -- res_fax: Fix FAXOPT(faxdetect) timeout
+       option.
+     * [652130feb2] Richard Mudgett -- chan_dahdi: Add faxdetect_timeout
+       option.
+     * [851b1c3a17] Richard Mudgett -- res_pjsip: Add fax_detect_timeout
+       endpoint option.
+   ASTERISK-26141: res_fax: fax_v21_session_new leaks reference to
+   v21_details
+   Reported by: Corey Farrell
+     * [3d904659ec] Corey Farrell -- res_fax: Fix reference leak in
+       fax_v21_session_new.
+   ASTERISK-25982: [patch]res_fax/t38_gateway: Peer V.21 session is created
+   on wrong channel
+   Reported by: Alexei Gradinari
+     * [2d17fe06c5] Alexei Gradinari -- res_fax/t38_gateway: Peer V.21
+       session is created on wrong channel
+
+    Category: Resources/res_hep
+
+   ASTERISK-26096: res_hep: Crash when configuration file is missing
+   Reported by: Niklas Larsson
+     * [eabb398d71] Matt Jordan -- res_hep_{pjsip|rtcp}: Decline module loads
+       if res_hep had not loaded
+
+    Category: Resources/res_hep_rtcp
+
+   ASTERISK-25352: res_hep_rtcp correlation_id is different then res_hep
+   Reported by: Kevin Scott Adams
+     * [89ae4466ea] Matt Jordan -- res_hep: Provide an option to pick the
+       UUID type
+
+    Category: Resources/res_jabber
+
+   ASTERISK-24425: [patch] jabber/xmpp to use TLS instead of SSLv3, security
+   fix POODLE (CVE-2014-3566)
+   Reported by: abelbeck
+     * [b1fe070d0b] Alexander Traud -- sip.conf: tlsclientmethod is using
+       sslv23 as default.
+
+    Category: Resources/res_odbc
+
+   ASTERISK-26389: res_odbc: Clean up pooling options
+   Reported by: Joshua Colp
+     * [10c180760c] Joshua Colp -- res_odbc: Make pooling option deprecation
+       notice more useful.
+     * [f16ab19292] Joshua Colp -- odbc: Remove options that are no longer
+       applicable.
+   ASTERISK-25984: res_odbc relies on res_odbc_transaction, but it's not
+   mandatory to compile it
+   Reported by: JA^3zsef DudA!s
+     * [4c1ae07d51] gtjoseph -- res_odbc: Correct the dependency relationship
+       with res_odbc_transaction
+   ASTERISK-26074: res_odbc: Deadlock within UnixODBC
+   Reported by: Ross Beer
+     * [321a9b128f] Joshua Colp -- res_odbc: Implement a connection pool.
+   ASTERISK-25938: res_odbc: MySQL/MariaDB statement LAST_INSERT_ID() always
+   returns zero.
+   Reported by: Edwin Vandamme
+     * [cd89501d48] Alexei Gradinari -- func_odbc: single database connection
+       should be optional
+     * [068ae54c76] Mark Michelson -- func_odbc: Use one connection per DSN.
+
+    Category: Resources/res_parking
+
+   ASTERISK-24605: res_parking option parkeddynamic does not work with the
+   core Features 'parkcall' (DTMF initiated parking)
+   Reported by: Philip Correia
+     * [50f90d4099] Philip Correia -- res_parking: Fix blind transfer dynamic
+       lots creation.
+     * [6f95b5eda1] Philip Correia -- res_parking: Update parking
+       documentation for dynamic parking lots.
+   ASTERISK-24596: Unclear how to use Park application with res_parking
+   'parkeddynamic' enabled. Documentation?
+   Reported by: Philip Correia
+     * [6f95b5eda1] Philip Correia -- res_parking: Update parking
+       documentation for dynamic parking lots.
+
+    Category: Resources/res_phoneprov
+
+   ASTERISK-26119: [patch] fix: memory leaks, resource leaks, out of bounds
+   and bugs
+   Reported by: Alexei Gradinari
+     * [5ee205d8bb] Richard Mudgett -- ast_expr2: Fix off-nominal memory
+       leak.
+     * [5134a8043a] Alexei Gradinari -- fix: memory leaks, resource leaks,
+       out of bounds and bugs
+
+    Category: Resources/res_pjsip
+
+   ASTERISK-26516: pjsip: Memory corruption with possible memory leak.
+   Reported by: Richard Mudgett
+     * [e632222bc4] Richard Mudgett --
+       res_pjsip_outbound_authenticator_digest.c: Fix memory pool leak.
+     * [afecb2cfc0] Richard Mudgett -- bundled pjproject: Fix DNS write to
+       freed memory.
+   ASTERISK-26453: res_pjsip_config_wizard: Memory leak in module_unload
+   Reported by: Badalian Vyacheslav
+     * [a884b26392] Badalyan Vyacheslav -- vector: After remove element
+       recheck index
+     * [9da3489d24] Badalyan Vyacheslav -- res_pjsip_config_wizard: Memory
+       leak in module_unload
+   ASTERISK-26375: res_pjsip_transport_management: Log message states
+   seconds, but time value is milliseconds
+   Reported by: Joshua Colp
+     * [9df4056d70] Joshua Colp -- res_pjsip_transport_management: Convert
+       time in log message to seconds.
+   ASTERISK-26264: res_pjsip: Crash when applying ACL from non-existent
+   endpoint
+   Reported by: nappsoft
+     * [f1ffc22933] Mark Michelson -- res_pjsip: Do not crash on ACKs from
+       unknown endpoints.
+   ASTERISK-26269: res_pjsip: Wrong state for aors without registered
+   contacts after startup
+   Reported by: nappsoft
+     * [c16ef02318] Mark Michelson -- res_pjsip: Default endpoints to the
+       "offline" status.
+   ASTERISK-22374: Finish mapping the sip.conf parameters to res_sip.conf
+   parameters
+   Reported by: Matt Jordan
+     * [a628009eb9] Alexander Traud -- sip_to_pjsip: Add cert_file.
+     * [cab6975b02] Kevin Harwell -- sip_to_pjsip: Set correct tls transport
+       method
+     * [2381ddde63] Alexander Traud -- sip_to_pjsip: Map the TLS method
+       correctly.
+     * [6500f5e138] Alexander Traud -- sip_to_pjsip: Add compactheaders,
+       timerb, timert1, and useragent.
+     * [21e9c69e56] Alexander Traud -- sip_to_pjsip: Map (session-)timers
+       correctly.
+     * [c9a97398f7] Alexander Traud -- sip_to_pjsip: Write username even
+       without authname.
+     * [60275359bc] Alexander Traud -- sip_to_pjsip: Parse register even with
+       transport.
+     * [0d479232eb] Alexander Traud -- sip_to_pjsip: Write local_net,
+       contact_acl, contact_deny, and contact_permit.
+     * [cbc1b2d020] Alexander Traud -- sip_to_pjsip: Map externhost/ip to
+       Transports.
+     * [5f33e99534] Alexander Traud -- sip_to_pjsip: Add defaultexpiry,
+       maxexpiry, and minexpiry.
+     * [231ea0350d] Alexander Traud -- sip_to_pjsip: Write media_encryption.
+     * [23eb065121] Alexander Traud -- sip_to_pjsip: Write cos and tos.
+     * [0b675a208b] Alexander Traud -- sip_to_pjsip: Add cert_file and
+       ca_list_path.
+   ASTERISK-26305: Asterisk 14: Two resolver unbound testsuite tests fail
+   Reported by: Richard Mudgett
+     * [1cd12d73a6] Richard Mudgett -- res_pjsip_session.c: Fix unbound srv
+       failover tests.
+   ASTERISK-26241: res_pjsip: When using compact headers, rpid and pai are
+   incorrectly generated
+   Reported by: George Joseph
+     * [4d5e96ab53] gtjoseph -- res_pjsip_caller_id: Copy header name to
+       short header name
+   ASTERISK-26238: res_pjsip: Empty global default_from_user causes crash
+   Reported by: Joshua Colp
+     * [143df33110] gtjoseph -- res_pjsip: Fail global load if debug or
+       default_from_user are empty
+   ASTERISK-26145: pjsip: Deadlock with suspend + masquerade + indicate
+   Reported by: Ross Beer
+     * [1589452fdc] Alexei Gradinari -- pjsip: Fix deadlock with suspend
+       taskprocessor on masquerade
+   ASTERISK-26206: [patch] res_pjsip: Use more compatible regex for get all
+   Reported by: Dmitry
+     * [102d28c11a] Joshua Colp -- sorcery: Use more compatible regex for
+       local expressions.
+   ASTERISK-26256: [patch] SIP/SDP origin (o=) contains brackets with IP6
+   Reported by: Alexander Traud
+     * [b78d10a2df] Alexander Traud -- res_pjsip: SIP/SDP origin (o=)
+       contained square brackets on IP6 transports.
+   ASTERISK-26174: res_pjsip: Crash when freeing cloned message in
+   distributor
+   Reported by: Ross Beer
+     * [5997ec7c9e] Alexei Gradinari -- res_pjsip_pubsub: fixed a bug when
+       pjsip_tx_data_dec_ref is called twice.
+   ASTERISK-26211: Unit tests: AST_TEST_DEFINE should be used in conditional
+   code.
+   Reported by: Corey Farrell
+     * [c8e41d14a1] Corey Farrell -- Unit tests: Use AST_TEST_DEFINE in
+       conditional code only.
+   ASTERISK-26160: pjsip: Updated->Reachable during qualify
+   Reported by: Matt Jordan
+     * [97b4c7a5b4] Richard Mudgett -- res_pjsip: Fix statsd regression.
+   ASTERISK-25772: res_pjsip: Unexpected two BYE when answered
+   Reported by: Dmitriy Serov
+     * [359134c8d3] Richard Mudgett -- res_pjsip_session.c: Don't send extra
+       BYE if SDP invalid.
+     * [5fabcf2ca1] Richard Mudgett -- res_pjsip_session.c: End call on
+       initial invalid SDP negotiation.
+     * [38a4e983dc] Richard Mudgett -- res_pjsip.c: Register PJMEDIA error
+       code decoder.
+   ASTERISK-26061: [patch] res_pjsip: improve realtime performance - remove
+   updating all endpoints status on startup
+   Reported by: Alexei Gradinari
+     * [b3c787d1dd] Alexei Gradinari -- res_pjsip: improve realtime
+       performance #2
+   ASTERISK-25941: chan_pjsip: Crash on an immediate SIP final response
+   Reported by: Javier Riveros
+     * [c0b190dd9a] Mark Michelson -- res_pjsip: Match dialogs on responses
+       better.
+   ASTERISK-26007: res_pjsip: Endpoints deleting early after upgrade from
+   13.8.2 to 13.9
+   Reported by: Greg Siemon
+     * [02d30e171e] Mark Michelson -- Use doubles instead of floats for
+       conversions when comparing strings.
+   ASTERISK-26004: res_pjsip: The transport/method parameter is ignored
+   Reported by: George Joseph
+     * [fb6227a372] gtjoseph -- config_transport: Tell pjproject to allow all
+       SSL/TLS protocols
+   ASTERISK-25928: res_pjsip: URI validation done outside of PJSIP thread
+   Reported by: Joshua Colp
+     * [efae187217] Mark Michelson -- PJSIP: Remove PJSIP parsing functions
+       from uri length validation.
+   ASTERISK-25796: res_pjsip: DOS/Crash when TCP/TLS sockets exceed pjproject
+   PJ_IOQUEUE_MAX_HANDLES
+   Reported by: George Joseph
+     * [7fb3724a77] Mark Michelson -- res_pjsip_transport_management: Kill
+       idle TCP connections.
+     * [707fd4dcd0] Mark Michelson -- Rename res_pjsip_keepalive
+       res_pjsip_transport_management
+   ASTERISK-25707: Long contact URIs or hostnames can crash
+   pjproject/Asterisk under certain conditions
+   Reported by: George Joseph
+     * [0b4bb19e0b] Mark Michelson -- AST-2016-004: Fix crash on REGISTER
+       with long URI.
+   ASTERISK-25123: Bracketed IPv6 Contact header parameter unparsable with
+   Asterisk/PJSIP
+   Reported by: Anthony Messina
+     * [cf15a2f2d3] gtjoseph -- pjproject: Add patch for removing strip of
+       '[]' from header params
+   ASTERISK-25914: PJSIP: failed registration with wrong codec name on
+   allow/disallow
+   Reported by: Alexei Gradinari
+     * [64ecd41c8f] Alexei Gradinari -- Codecs: strip codec name while
+       parsing allow/disallow options
+   ASTERISK-25885: res_pjsip: Race condition between adding contact and
+   automatic expiration
+   Reported by: Joshua Colp
+     * [fe7e48db03] gtjoseph -- res_pjsip contact: Lock expiration/addition
+       of contacts
+
+    Category: Resources/res_pjsip/Bundling
+
+   ASTERISK-26416: pjproject-bundled: configure fails to check for all
+   required utilities
+   Reported by: Corey Farrell
+     * [ce4cfd2eca] Corey Farrell -- Fix issues with bundled pjproject cached
+       download.
+     * [e6b0053d75] gtjoseph -- bundled_pjproject: Add tests for programs
+       used by the Makefile, et al.
+   ASTERISK-26148: pjsip: Cannot compile 13.10.0-rc1: "libasteriskpj.so:
+   undefined reference to..."
+   Reported by: Hans van Eijsden
+     * [972cee2e4c] gtjoseph -- pjproject_bundled: Update for pjproject 2.5.5
+   ASTERISK-25873: res_pjsip: Bundled pjproject: compile error, cannot find
+   -lasteriskpj
+   Reported by: Hans van Eijsden
+     * [964f54bd5d] gtjoseph -- pjproject_bundled: Fix use of LDCONFIG for
+       shared library link creation
+
+    Category: Resources/res_pjsip_caller_id
+
+   ASTERISK-26307: res_pjsip_caller_id: Crash on outgoing change
+   Reported by: Bill Brigden
+     * [675c71ae8c] Joshua Colp -- res_pjsip_caller_id: Fix crash on session
+       timers UPDATE on inbound calls.
+   ASTERISK-26316: res_pjsip_callerid: Irregular URI causes unexpected
+   callerid
+   Reported by: Kevin Harwell
+     * [e9ddab4685] Richard Mudgett -- sip_to_pjsip.py: Map
+       legacy_useroption_parsing.
+     * [30af92e78d] Richard Mudgett -- res_pjsip: Add ignore_uri_user_options
+       option.
+   ASTERISK-25942: res_pjsip_caller_id: Transfer results in mixed
+   ConnectedLine information
+   Reported by: George Joseph
+     * [516c626a7d] gtjoseph -- res_pjsip_callerid: Clear out display name if
+       id->name is not valid
+
+    Category: Resources/res_pjsip_logger
+
+   ASTERISK-26239: res_pjsip_logger: An empty global/debug option is treated
+   as a "match all" hostname
+   Reported by: George Joseph
+     * [143df33110] gtjoseph -- res_pjsip: Fail global load if debug or
+       default_from_user are empty
+
+    Category: Resources/res_pjsip_multihomed
+
+   ASTERISK-26374: res_pjsip_multihomed: Contact port is rewritten for
+   connectionful protocols
+   Reported by: Joshua Colp
+     * [449719be00] Joshua Colp -- res_pjsip_multihomed: Change Contact port
+       to listening port.
+
+    Category: Resources/res_pjsip_mwi
+
+   ASTERISK-26200: [patch] res_pjsip_mwi: improve realtime performance -
+   remove unneeded check on endpoint's contacts.
+   Reported by: Alexei Gradinari
+     * [cb58f853e1] Alexei Gradinari -- res_pjsip_mwi: remove unneeded check
+       on endpoint's contacts.
+   ASTERISK-26065: chan_pjsip: MWI NOTIFY contents not ordered properly
+   Reported by: Ross Beer
+     * [fe305ccf01] gtjoseph -- res_pjsip_mwi_body_generator: Re-order the
+       body items
+
+    Category: Resources/res_pjsip_mwi_body_generator
+
+   ASTERISK-26065: chan_pjsip: MWI NOTIFY contents not ordered properly
+   Reported by: Ross Beer
+     * [fe305ccf01] gtjoseph -- res_pjsip_mwi_body_generator: Re-order the
+       body items
+
+    Category: Resources/res_pjsip_outbound_publish
+
+   ASTERISK-25217: [patch]res_pjsip_outbound_publish.c needs a similar
+   treatment for module unloading as res_pjsip_outbound_registration.c
+   Reported by: Richard Mudgett
+     * [485fd27f7c] Joshua Colp -- res_pjsip_outbound_publish: Use a
+       serializer shutdown group for unload.
+
+    Category: Resources/res_pjsip_outbound_registration
+
+   ASTERISK-25964: Outbound registrations created via ARI/push configuration
+   do not clean up outbound registrations currently in flight
+   Reported by: Matt Jordan
+     * [3f6ef63099] gtjoseph -- res_pjsip_outbound_registration: Clean up
+       state when registration is deleted
+   ASTERISK-25990: PJSIP TLS registration should respect client_uri scheme
+   when generating Contact URI
+   Reported by: Sebastian Damm
+     * [a94a12bbf7] Sebastian Damm -- res_pjsip_outbound_registration:
+       generate correct Contact URI for TLS
+
+    Category: Resources/res_pjsip_pubsub
+
+   ASTERISK-26164: XMPP no longer triggers NOTIFY to device via chan_pjsip
+   Reported by: Ross Beer
+     * [403c794684] Alexei Gradinari -- core: Entity ID is not set or invalid
+   ASTERISK-26166: res_pjsip_pubsub: Crash when decrementing reference count
+   of message
+   Reported by: Ross Beer
+     * [5997ec7c9e] Alexei Gradinari -- res_pjsip_pubsub: fixed a bug when
+       pjsip_tx_data_dec_ref is called twice.
+   ASTERISK-26099: res_pjsip_pubsub: Crash when sending request due to server
+   timeout
+   Reported by: Ross Beer
+     * [43a78100c0] gtjoseph -- configure: Fix HAVE_PJSIP_EVSUB_GRP_LOCK not
+       set with external pjproject
+     * [6a568bcc66] gtjoseph -- res_pjsip_pubsub: Address SEGV when
+       attempting to terminate a subscription
+
+    Category: Resources/res_pjsip_registrar
+
+   ASTERISK-25929: res_pjsip_registrar: AOR_CONTACT_ADDED events not raised
+   Reported by: Joshua Colp
+     * [f436b9ab11] Mark Michelson -- res_pjsip_registrar: Fix bad
+       memory-ness with user_agent.
+   ASTERISK-25885: res_pjsip: Race condition between adding contact and
+   automatic expiration
+   Reported by: Joshua Colp
+     * [fe7e48db03] gtjoseph -- res_pjsip contact: Lock expiration/addition
+       of contacts
+
+    Category: Resources/res_pjsip_sdp_rtp
+
+   ASTERISK-26541: res_pjsip_sdp_rtp: Restrict number of formats to maximum
+   Reported by: Joshua Colp
+     * [5f188bb7a8] Joshua Colp -- res_pjsip_sdp_rtp: Limit number of formats
+       to defined maximum.
+   ASTERISK-26423: res_pjsip_sdp_rtp: Asymmetric RTP codec can cause audio
+   loss and wonkiness
+   Reported by: Andreas Wetzel
+     * [e0bc17edff] Joshua Colp -- pjsip: Fix a few media bugs with reinvites
+       and asymmetric payloads.
+   ASTERISK-26309: [patch] res_pjsip: Allow IPv4/IPv6 (Dual Stack)
+   installations.
+   Reported by: Alexander Traud
+     * [f534f67f52] Joshua Colp -- res_pjsip_sdp_rtp: Fix address family of
+       explicit media_address.
+     * [bb982480d8] Joshua Colp -- pjsip: Support dual stack automatically.
+     * [b59d3b48d0] Alexander Traud -- sip_to_pjsip: Migrate IPv4/IPv6 (Dual
+       Stack) configurations.
+     * [be38c95def] Alexander Traud -- pjproject_bundled: Allow IPv4/IPv6
+       (Dual Stack) configurations.
+   ASTERISK-26228: res_pjsip_sdp_rtp: G729A does not include annexb=no
+   attribute.
+   Reported by: Ali Ghavidel
+     * [43f400ef95] Jason Parker -- res_format_attr_g729: Add annexb=no
+       format parameter to SDPs
+   ASTERISK-26119: [patch] fix: memory leaks, resource leaks, out of bounds
+   and bugs
+   Reported by: Alexei Gradinari
+     * [5ee205d8bb] Richard Mudgett -- ast_expr2: Fix off-nominal memory
+       leak.
+     * [5134a8043a] Alexei Gradinari -- fix: memory leaks, resource leaks,
+       out of bounds and bugs
+   ASTERISK-25854: No audio after HOLD/RESUME - incorrect a=recvonly in SDP
+   from Asterisk
+   Reported by: Robert McGilvray
+     * [c61dca6419] Mark Michelson -- res_pjsip: Handle deferred SDP
+       hold/unhold properly.
+
+    Category: Resources/res_pjsip_session
+
+   ASTERISK-26127: res_pjsip_session: Crash due to race condition between
+   res_pjsip_session unload and timer
+   Reported by: Joshua Colp
+     * [ba0d9e7f7a] Joshua Colp -- res_pjsip_session: Handle race condition
+       at shutdown with timer.
+
+    Category: Resources/res_realtime
+
+   ASTERISK-26172: res_sorcery_realtime: fix bug when successful sql UPDATE
+   is treated as failed if there is no affected rows.
+   Reported by: Alexei Gradinari
+     * [b4a9fa2c9e] Alexei Gradinari -- res_sorcery_realtime: fix bug when
+       successful UPDATE is treated as failed
+   ASTERISK-25914: PJSIP: failed registration with wrong codec name on
+   allow/disallow
+   Reported by: Alexei Gradinari
+     * [64ecd41c8f] Alexei Gradinari -- Codecs: strip codec name while
+       parsing allow/disallow options
+
+    Category: Resources/res_rtp_asterisk
+
+   ASTERISK-26280: DNS lookups can block channel media paths
+   Reported by: Mark Michelson
+     * [a119bab6a6] Mark Michelson -- res_rtp_asterisk: Cache local RTCP
+       address.
+   ASTERISK-26207: [patch] sRTP: Count a roll-over of the sequence number
+   even on lost packets.
+   Reported by: Alexander Traud
+     * [e404f51b42] Alexander Traud -- res_rtp_asterisk: Count a roll-over of
+       the sequence number even on lost packets.
+   ASTERISK-25659: res_rtp_asterisk: ECDH not negotiated causing DTLS failure
+   occurred on RTP instance
+   Reported by: Edwin Vandamme
+     * [332beb27d8] Eugene Voityuk,Alexander Traud -- res_rtp_asterisk:
+       Enable Forward Secrecy (PFS) for DTLS.
+   ASTERISK-26140: res_rtp_asterisk: gcc 6 caught a self-comparison
+   Reported by: George Joseph
+     * [48db4c2159] gtjoseph -- res_rtp_asterisk: Fix a self-comparison
+       identified by gcc 6
+   ASTERISK-26129: res_rtp_asterisk: Memory leak of CERT bio in DTLS
+   implementation
+   Reported by: Torrey Searle
+     * [dfcd466bf0] Torrey Searle -- res_rtp_asterisk: fix memory leak in
+       dtls
+   ASTERISK-26130: [patch] WebRTC: Should use latest DTLS version.
+   Reported by: Alexander Traud
+     * [ef97911a1c] Alexander Traud -- res_rtp_asterisk: Use latest DTLS
+       version available by underlying platform.
+   ASTERISK-26092: [Segfault] in res_rtp_asterisk.c:4268 after Remotely
+   bridged channels
+   Reported by: Niklas Larsson
+     * [715ef071a1] Mark Michelson -- chan_pjsip: Lock channel when checking
+       for RTP changes.
+   ASTERISK-25642: res_rtp_asterisk: SRTCP broken with DTLS - bad video is
+   one of the consequences
+   Reported by: Stefan EngstrAP:m
+     * [0cfab30b28] Jacek Konieczny -- res_rtp_asterisk: Use separate SRTP
+       session for RTCP with DTLS
+
+    Category: Resources/res_rtp_multicast
+
+   ASTERISK-26439: chan_rtp: Crash when originating
+   Reported by: Kayode
+     * [644fad7477] Moises Silva -- chan_rtp: Set a sane default rtp engine
+       for unicast.
+
+    Category: Resources/res_srtp
+
+   ASTERISK-24436: Missing header in res/res_srtp.c when compiling against
+   libsrtp-1.5.0
+   Reported by: Patrick Laimbock
+     * [c6ee4a0f44] Alexander Traud -- res_srtp: Instead of libSRTP use
+       OpenSSL as random source.
+   ASTERISK-25642: res_rtp_asterisk: SRTCP broken with DTLS - bad video is
+   one of the consequences
+   Reported by: Stefan EngstrAP:m
+     * [0cfab30b28] Jacek Konieczny -- res_rtp_asterisk: Use separate SRTP
+       session for RTCP with DTLS
+
+    Category: Resources/res_stasis
+
+   ASTERISK-25947: Protocol transfers to stasis applications are missing the
+   StasisStart with the replace_channel object.
+   Reported by: Richard Mudgett
+     * [a036c35903] Richard Mudgett -- res_stasis: Handle re-enter stasis
+       bridge with swap channel.
+     * [9942d50aa5] Richard Mudgett -- bridge: Hold off more than one
+       imparting channel at a time.
+   ASTERISK-24649: Pushing of channel into bridge fails; Stasis fails to get
+   app name
+   Reported by: John Bigelow
+     * [a036c35903] Richard Mudgett -- res_stasis: Handle re-enter stasis
+       bridge with swap channel.
+     * [9942d50aa5] Richard Mudgett -- bridge: Hold off more than one
+       imparting channel at a time.
+   ASTERISK-24782: StasisEnd event not present for channel that was swapped
+   out for another after completing attended transfer
+   Reported by: John Bigelow
+     * [a036c35903] Richard Mudgett -- res_stasis: Handle re-enter stasis
+       bridge with swap channel.
+     * [9942d50aa5] Richard Mudgett -- bridge: Hold off more than one
+       imparting channel at a time.
+   ASTERISK-25882: ARI: Crash can occur due to race condition when attempting
+   to operate on a hung up channel (Part 2)
+   Reported by: Richard Mudgett
+     * [ecf4102d02] Richard Mudgett -- res_stasis: Add control ref to
+       playback and recording structs.
+     * [a179aba65e] Richard Mudgett -- res_stasis: Fix crash on a hanging up
+       channel.
+
+    Category: Resources/res_stasis_playback
+
+   ASTERISK-26083: ARI: Announcer channels staying around after playback to a
+   bridge is finished
+   Reported by: Per Jensen
+     * [cfebe3b94a] Mark Michelson -- ARI: Ensure announcer channels are
+       destroyed.
+
+    Category: Resources/res_xmpp
+
+   ASTERISK-24425: [patch] jabber/xmpp to use TLS instead of SSLv3, security
+   fix POODLE (CVE-2014-3566)
+   Reported by: abelbeck
+     * [b1fe070d0b] Alexander Traud -- sip.conf: tlsclientmethod is using
+       sslv23 as default.
+   ASTERISK-26164: XMPP no longer triggers NOTIFY to device via chan_pjsip
+   Reported by: Ross Beer
+     * [403c794684] Alexei Gradinari -- core: Entity ID is not set or invalid
+
+    Category: Tests/General
+
+   ASTERISK-26211: Unit tests: AST_TEST_DEFINE should be used in conditional
+   code.
+   Reported by: Corey Farrell
+     * [c8e41d14a1] Corey Farrell -- Unit tests: Use AST_TEST_DEFINE in
+       conditional code only.
+   ASTERISK-26139: test_res_pjsip_scheduler: Compile failure if pjproject
+   isn't installed in a system location
+   Reported by: George Joseph
+     * [77da168e58] gtjoseph -- test_res_pjsip_scheduler: Add 'depends' on
+       pjproject in MODULEINFO
+
+    Category: Tests/testsuite
+
+   ASTERISK-25961: tests/channels/SIP/sip_tls_call: Sporadic crash when
+   running test
+   Reported by: Joshua Colp
+     * [949bf6b282] Joshua Colp -- chan_sip: Give more time for TCP/TLS
+       threads to stop.
+
+    Category: Third-Party/pjproject
+
+   ASTERISK-26510: pjproject_bundled uses the --strip-components option of
+   tar which isn't supported in older versions
+   Reported by: George Joseph
+     * [61a5c3460e] gtjoseph -- pjproject_bundled: Remove usage of tar's
+       --strip-components option
+   ASTERISK-26477: pjproject: SEGV during SSL operations
+   Reported by: George Joseph
+     * [546ec4b038] gtjoseph -- pjproject_bundled: Add patch to address SSL
+       crash
+   ASTERISK-26279: pjproject-bundled: Fails to compile on Debian 6
+   Reported by: George Joseph
+     * [fb82fdb013] gtjoseph -- pjproject_bundled: Disable srtp use by
+       pjmedia
+
+    Category: Utilities/astcanary
+
+   ASTERISK-26352: Astcanary dies when doing "core restart"
+   Reported by: Walter Doekes
+     * [9372d32100] Walter Doekes -- asterisk.c: Non-root users also get the
+       astcanary after core restart.
+   ASTERISK-19867: asterisk fails to lower its priority when astcanary dies
+   Reported by: Xavier Hienne
+     * [e96448e991] Walter Doekes -- asterisk.c: When astcanary dies on
+       linux, reset priority on all threads.
+
+    Category: pjproject/pjsip
+
+   ASTERISK-26344: Asterisk 13.11.0 + PJSIP crash
+   Reported by: Ian Gilmour
+     * [d7f457e4c1] Richard Mudgett -- bundled pjproject: Crashes while
+       resolving DNS names.
+   ASTERISK-26477: pjproject: SEGV during SSL operations
+   Reported by: George Joseph
+     * [546ec4b038] gtjoseph -- pjproject_bundled: Add patch to address SSL
+       crash
+   ASTERISK-26349: 13.11.1 res_pjsip/pjsip_distributor.c: Request 'REGISTER'
+   failed
+   Reported by: Dmitry Melekhov
+     * [7580a736bb] Joshua Colp -- res_pjsip: Only invoke unidentified
+       endpoint logic when unidentified.
+   ASTERISK-26199: PJSIP: tx_data_destroy called twice
+   Reported by: Scott Griepentrog
+     * [5997ec7c9e] Alexei Gradinari -- res_pjsip_pubsub: fixed a bug when
+       pjsip_tx_data_dec_ref is called twice.
+   ASTERISK-26089: Invalid security events during boot using PJSIP Realtime
+   Reported by: Scott Griepentrog
+     * [993b769524] Richard Mudgett -- pjsip_distributor.c: Ignore messages
+       until fully booted.
+   ASTERISK-25993: pjproject: Allow bundling to not require everything it
+   does
+   Reported by: Joshua Colp
+     * [2a7130b8b0] gtjoseph -- pjproject_bundled: Check for python-dev and
+       TEST_FRAMEWORK
+   ASTERISK-25968: pjproject_bundled: Configure and make need to be re-tested
+   Reported by: George Joseph
+     * [f39089f17c] gtjoseph -- pjproject_bundled: Various fixes discovered
+       during testing of OSes
+   ASTERISK-25970: Segfault in pjsip_url_compare
+   Reported by: Dmitriy Serov
+     * [719ece5659] gtjoseph -- pjproject_bundled: Disable
+       PJSIP_UNESCAPE_IN_PLACE
+   ASTERISK-25910: pjproject: Via headers are not parsed when "received"
+   contains an IPv6 address
+   Reported by: George Joseph
+     * [0c414eaf35] gtjoseph -- pjproject: Add patch to fix Via IPv6 parsing
+
+  Improvement
+
+    Category: Applications/app_confbridge
+
+   ASTERISK-26289: Announcer channels in ConfBridges cause inefficiencies
+   Reported by: Mark Michelson
+     * [63feffa126] Mark Michelson -- ConfBridge: Make some announcements
+       asynchronous.
+     * [b8b5d52b5e] Mark Michelson -- ConfBridge: Rework announcer channel
+       methodology
+     * [0cdeb2bfb0] Mark Michelson -- ConfBridge: Rework announcer channel
+       methodology
+
+    Category: Applications/app_dial
+
+   ASTERISK-26059: [patch]core: New channel variable FORWARDERNAME
+   Reported by: Alexei Gradinari
+     * [2de58c6d01] Alexei Gradinari -- core/dial: New channel variable
+       FORWARDERNAME
+
+    Category: Applications/app_queue
+
+   ASTERISK-26558: app_queue: add variable to know if the call is not
+   answered after a queue
+   Reported by: scgm11
+     * [71dc333565] Joshua Colp -- app_queue: Add mention of 'ABANDON'
+       variable to CHANGES.
+     * [7fd5031c1c] Sebastian Gutierrez -- app_queue: new variable set when
+       abandoned
+
+    Category: Channels/chan_pjsip
+
+   ASTERISK-22131: Update the make dependencies script to pull, build, and
+   install the correct pjproject
+   Reported by: Matt Jordan
+     * [f5e9872016] Alexander Traud -- install_prereq: Checkout of libSRTP
+       1.5.x.
+   ASTERISK-25471: [patch]Add subscribe_context to res_pjsip
+   Reported by: JoshE
+     * [2c16a81dd5] Alexei Gradinari -- res_pjsip: Added "subscribe_context"
+       to endpoint
+   ASTERISK-25835: Authentication using 'Username' field from Digest
+   Reported by: Ross Beer
+     * [38bed4515d] gtjoseph -- res_pjsip: Add ability to identify by
+       Authorization username
+
+    Category: Channels/chan_sip/General
+
+   ASTERISK-26176: chan_sip: Add AccountCode to AMI PeerEntry
+   Reported by: scgm11
+     * [714412f6c4] Sebastian Gutierrez -- chan_sip: add missing account code
+
+    Category: Codecs/codec_opus
+
+   ASTERISK-26538: codec_opus: Add sample to
+   configs/samples/codecs.conf.sample
+   Reported by: Kevin Harwell
+     * [50fa868ab8] Kevin Harwell -- codecs.conf.sample: Add sample and
+       option descriptions for codec_opus
+
+    Category: Core/Bridging
+
+   ASTERISK-26059: [patch]core: New channel variable FORWARDERNAME
+   Reported by: Alexei Gradinari
+     * [2de58c6d01] Alexei Gradinari -- core/dial: New channel variable
+       FORWARDERNAME
+
+    Category: Core/BuildSystem
+
+   ASTERISK-26220: Add support for noreturn function attributes.
+   Reported by: Corey Farrell
+     * [7fdf7c3d4c] Corey Farrell -- Add conditional support for noreturn
+       functions.
+
+    Category: Core/Channels
+
+   ASTERISK-26059: [patch]core: New channel variable FORWARDERNAME
+   Reported by: Alexei Gradinari
+     * [2de58c6d01] Alexei Gradinari -- core/dial: New channel variable
+       FORWARDERNAME
+
+    Category: Core/General
+
+   ASTERISK-25063: [patch]add X.509 subject alternative name support to
+   Asterisk TLS support
+   Reported by: Maciej Szmigiero
+     * [7b96e8cc3d] Maciej Szmigiero -- Add X.509 subject alternative name
+       support to TLS certificate
+
+    Category: Core/Sorcery
+
+   ASTERISK-26088: Investigate heavy memory utilization by res_pjsip_pubsub
+   Reported by: Richard Mudgett
+     * [9c35f34301] Richard Mudgett -- res_pjsip_registrar.c: Eliminate rx
+       REGISTER request race condition.
+     * [557333ea4c] Richard Mudgett -- stasis: Add setting subscription
+       congestion levels.
+     * [110d772467] Richard Mudgett -- sorcery: Add setting object type
+       congestion levels.
+     * [610eee2a36] Richard Mudgett -- taskprocessors: Implement high/low
+       water mark alerts.
+     * [26e3492246] Richard Mudgett -- res_pjsip_session: Use distributor
+       serializer for incoming calls.
+     * [ceb1007ed7] Richard Mudgett -- res_pjsip_pubsub.c: Recreate
+       subscriptions using distributor serializer.
+     * [27bafc3a8b] Richard Mudgett -- res_pjsip_pubsub.c: Use distributor
+       serializer for incoming subscriptions.
+     * [16b08444da] Richard Mudgett -- pjsip_distributor.c: Consistently pick
+       a serializer for messages.
+     * [993b769524] Richard Mudgett -- pjsip_distributor.c: Ignore messages
+       until fully booted.
+
+    Category: Core/Stasis
+
+   ASTERISK-26088: Investigate heavy memory utilization by res_pjsip_pubsub
+   Reported by: Richard Mudgett
+     * [9c35f34301] Richard Mudgett -- res_pjsip_registrar.c: Eliminate rx
+       REGISTER request race condition.
+     * [557333ea4c] Richard Mudgett -- stasis: Add setting subscription
+       congestion levels.
+     * [110d772467] Richard Mudgett -- sorcery: Add setting object type
+       congestion levels.
+     * [610eee2a36] Richard Mudgett -- taskprocessors: Implement high/low
+       water mark alerts.
+     * [26e3492246] Richard Mudgett -- res_pjsip_session: Use distributor
+       serializer for incoming calls.
+     * [ceb1007ed7] Richard Mudgett -- res_pjsip_pubsub.c: Recreate
+       subscriptions using distributor serializer.
+     * [27bafc3a8b] Richard Mudgett -- res_pjsip_pubsub.c: Use distributor
+       serializer for incoming subscriptions.
+     * [16b08444da] Richard Mudgett -- pjsip_distributor.c: Consistently pick
+       a serializer for messages.
+     * [993b769524] Richard Mudgett -- pjsip_distributor.c: Ignore messages
+       until fully booted.
+
+    Category: Functions/func_odbc
+
+   ASTERISK-26010: [patch]func_odbc: single database connection should be
+   optional
+   Reported by: Alexei Gradinari
+     * [cd89501d48] Alexei Gradinari -- func_odbc: single database connection
+       should be optional
+
+    Category: Resources/res_ari
+
+   ASTERISK-26488: ARI: Add 'ari show app', 'ari show apps', and 'ari set
+   debug' CLI commands
+   Reported by: Matt Jordan
+     * [29692d4aa4] Matt Jordan -- res/stasis: Add CLI commands for
+       displaying/debugging ARI apps
+
+    Category: Resources/res_fax
+
+   ASTERISK-25980: [patch]res_fax: set FAXMODE variable to let dialplan know
+   what fax transport was used
+   Reported by: Alexei Gradinari
+     * [e8d4f40022] Richard Mudgett -- res_fax: Fix deadlock setting FAXMODE
+       channel variable.
+     * [06d4ac0355] Alexei Gradinari -- res_fax: add FAXMODE variable
+
+    Category: Resources/res_format_attr_opus
+
+   ASTERISK-26409: codec_opus: Update Asterisk to support the translation
+   codec.
+   Reported by: Kevin Harwell
+     * [5258c067ae] gtjoseph -- codec_opus: Add download ability to
+       menuselect
+     * [a5af8709c8] gtjoseph -- codec_opus: Replace res_format_attr_opus with
+       the one from codec_opus
+     * [44c0c51cf1] gtjoseph -- format_ogg_opus: New format
+
+    Category: Resources/res_hep
+
+   ASTERISK-26159: res_hep: enabled by default and information sent to
+   default address
+   Reported by: Ross Beer
+     * [99eff80e76] Matt Jordan -- hep.conf.sample: Default 'enabled' to 'no'
+
+    Category: Resources/res_musiconhold
+
+   ASTERISK-25444: [patch]Music On Hold Warning misleading
+   Reported by: Conrad de Wet
+     * [ff3eebf454] Walter Doekes -- musiconhold: Only warn if music class is
+       not found in memory and database.
+
+    Category: Resources/res_pjsip
+
+   ASTERISK-26088: Investigate heavy memory utilization by res_pjsip_pubsub
+   Reported by: Richard Mudgett
+     * [9c35f34301] Richard Mudgett -- res_pjsip_registrar.c: Eliminate rx
+       REGISTER request race condition.
+     * [557333ea4c] Richard Mudgett -- stasis: Add setting subscription
+       congestion levels.
+     * [110d772467] Richard Mudgett -- sorcery: Add setting object type
+       congestion levels.
+     * [610eee2a36] Richard Mudgett -- taskprocessors: Implement high/low
+       water mark alerts.
+     * [26e3492246] Richard Mudgett -- res_pjsip_session: Use distributor
+       serializer for incoming calls.
+     * [ceb1007ed7] Richard Mudgett -- res_pjsip_pubsub.c: Recreate
+       subscriptions using distributor serializer.
+     * [27bafc3a8b] Richard Mudgett -- res_pjsip_pubsub.c: Use distributor
+       serializer for incoming subscriptions.
+     * [16b08444da] Richard Mudgett -- pjsip_distributor.c: Consistently pick
+       a serializer for messages.
+     * [993b769524] Richard Mudgett -- pjsip_distributor.c: Ignore messages
+       until fully booted.
+   ASTERISK-26011: [patch]PJSIP: add "via_addr", "via_port", "call_id" to
+   contacts
+   Reported by: Alexei Gradinari
+     * [230686f4ec] Alexei Gradinari -- res_pjsip: add "via_addr",
+       "via_port", "call_id" to contact
+   ASTERISK-26055: [patch]res_pjsip: chatty verbose messages
+   Reported by: Alexei Gradinari
+     * [04c12561a7] Alexei Gradinari -- res_pjsip: chatty verbose messages
+   ASTERISK-25994: [patch]res_pjsip: module load priority
+   Reported by: Alexei Gradinari
+     * [72eb7c8301] Alexei Gradinari -- res_pjsip: module load priority
+   ASTERISK-25931: PJSIP: add "reg_server" to contacts.
+   Reported by: Alexei Gradinari
+     * [fe38d21c2a] Alexei Gradinari -- pjsip: Added "reg_server" to contacts
+       (fixed alembic)
+     * [3cb8934de0] Alexei Gradinari -- pjsip: Added "reg_server" to
+       contacts.
+   ASTERISK-25930: PJSIP: disable multi domain to improve realtime performace
+   Reported by: Alexei Gradinari
+     * [df3639700a] Alexei Gradinari -- res_pjsip: disable multi domain to
+       improve realtime performace
+
+    Category: Resources/res_pjsip_mwi_body_generator
+
+   ASTERISK-25865: Message-Account Missing From PJSIP MWI
+   Reported by: Ross Beer
+     * [16c7d8e74a] gtjoseph -- res_pjsip_mwi: Allow subscribe to vm access
+       extension as an alias
+     * [d8f0bc3572] gtjoseph -- res_pjsip_mwi: Add voicemail extension and
+       mwi_subscribe_replaces_unsolicited
+
+    Category: Resources/res_pjsip_pubsub
+
+   ASTERISK-26088: Investigate heavy memory utilization by res_pjsip_pubsub
+   Reported by: Richard Mudgett
+     * [9c35f34301] Richard Mudgett -- res_pjsip_registrar.c: Eliminate rx
+       REGISTER request race condition.
+     * [557333ea4c] Richard Mudgett -- stasis: Add setting subscription
+       congestion levels.
+     * [110d772467] Richard Mudgett -- sorcery: Add setting object type
+       congestion levels.
+     * [610eee2a36] Richard Mudgett -- taskprocessors: Implement high/low
+       water mark alerts.
+     * [26e3492246] Richard Mudgett -- res_pjsip_session: Use distributor
+       serializer for incoming calls.
+     * [ceb1007ed7] Richard Mudgett -- res_pjsip_pubsub.c: Recreate
+       subscriptions using distributor serializer.
+     * [27bafc3a8b] Richard Mudgett -- res_pjsip_pubsub.c: Use distributor
+       serializer for incoming subscriptions.
+     * [16b08444da] Richard Mudgett -- pjsip_distributor.c: Consistently pick
+       a serializer for messages.
+     * [993b769524] Richard Mudgett -- pjsip_distributor.c: Ignore messages
+       until fully booted.
+
+    Category: Resources/res_pjsip_registrar
+
+   ASTERISK-26088: Investigate heavy memory utilization by res_pjsip_pubsub
+   Reported by: Richard Mudgett
+     * [9c35f34301] Richard Mudgett -- res_pjsip_registrar.c: Eliminate rx
+       REGISTER request race condition.
+     * [557333ea4c] Richard Mudgett -- stasis: Add setting subscription
+       congestion levels.
+     * [110d772467] Richard Mudgett -- sorcery: Add setting object type
+       congestion levels.
+     * [610eee2a36] Richard Mudgett -- taskprocessors: Implement high/low
+       water mark alerts.
+     * [26e3492246] Richard Mudgett -- res_pjsip_session: Use distributor
+       serializer for incoming calls.
+     * [ceb1007ed7] Richard Mudgett -- res_pjsip_pubsub.c: Recreate
+       subscriptions using distributor serializer.
+     * [27bafc3a8b] Richard Mudgett -- res_pjsip_pubsub.c: Use distributor
+       serializer for incoming subscriptions.
+     * [16b08444da] Richard Mudgett -- pjsip_distributor.c: Consistently pick
+       a serializer for messages.
+     * [993b769524] Richard Mudgett -- pjsip_distributor.c: Ignore messages
+       until fully booted.
+   ASTERISK-26011: [patch]PJSIP: add "via_addr", "via_port", "call_id" to
+   contacts
+   Reported by: Alexei Gradinari
+     * [230686f4ec] Alexei Gradinari -- res_pjsip: add "via_addr",
+       "via_port", "call_id" to contact
+
+    Category: Resources/res_rtp_asterisk
+
+   ASTERISK-26418: res_rtp_asterisk: Speed up ICE resolution by blacklisting
+   host subnets that are not involved in RTP
+   Reported by: Michael Walton
+     * [3c62b60e56] Michael Walton -- res_rtp_asterisk: Add ice_blacklist
+       option
+
+     ----------------------------------------------------------------------
+
+                                  Open Issues
+
+                                 [Back to Top]
+
+   This is a list of all open issues from the issue tracker that were
+   referenced by changes that went into this release.
+
+  Bug
+
+    Category: Channels/chan_pjsip
+
+   ASTERISK-26396: chan_pjsip: HANGUPCAUSE return the wrong code when dialed
+   channel answer.
+   Reported by: Aaron An
+     * [a0a17a8c6f] Aaron An -- channels/chan_pjsip: fix HANGUPCAUSE function
+       bug.
+
+    Category: Core/Jitterbuffer
+
+   ASTERISK-25270: chan_sip: rtptimeout doesn't work at all when using
+   JitterBuffers of any kind
+   Reported by: Florian Loyau
+     * [cb30963d22] Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always
+       updated"
+     * [93332cb1d0] Evgeniy Tsybra -- chan_sip: Fix lastrtprx always updated
+
+    Category: Core/RTP
+
+   ASTERISK-25270: chan_sip: rtptimeout doesn't work at all when using
+   JitterBuffers of any kind
+   Reported by: Florian Loyau
+     * [cb30963d22] Kevin Harwell -- Revert "chan_sip: Fix lastrtprx always
+       updated"
+     * [93332cb1d0] Evgeniy Tsybra -- chan_sip: Fix lastrtprx always updated
+
+    Category: Resources/res_pjsip
+
+   ASTERISK-26319: [patch] res_pjsip: qualify/unqualify added/deleted
+   realtime endpoints
+   Reported by: Alexei Gradinari
+     * [308a65fe6c] Alexei Gradinari -- res_pjsip: qualify/unqualify
+       added/deleted realtime endpoints
+
+    Category: Resources/res_pjsip_session
+
+   ASTERISK-26291: res_pjsip_session: segfault on already disconnected
+   session
+   Reported by: Alexei Gradinari
+     * [9bca895469] Alexei Gradinari -- res_pjsip_session: segfault on
+       already disconnected session
+
+    Category: pjproject/pjsip
+
+   ASTERISK-24601: [patch]Missing RFC4235 tags and attributes in PJSIP NOTIFY
+   event: dialog XML body
+   Reported by: Marco Paland
+     * [5f768d2a9c] Alexei Gradinari -- res_pjsip_dialog_info: Add missing
+       "direction" attribute in NOTIFY event
+
+  Improvement
+
+    Category: Applications/app_voicemail/IMAP
+
+   ASTERISK-26229: [patch] app_voicemail: Add taskprocessor alert level
+   options.
+   Reported by: Alexei Gradinari
+     * [ea71bd6e3e] Alexei Gradinari -- app_voicemail: Add taskprocessor
+       alert level options.
+
+    Category: Core/Channels
+
+   ASTERISK-26419: audiohooks: Remove redundant codec translations when using
+   audiohooks
+   Reported by: Michael Walton
+     * [430f6e5388] Michael Walton -- audiohooks: Remove redundant codec
+       translations when using audiohooks
+
+    Category: Core/General
+
+   ASTERISK-26419: audiohooks: Remove redundant codec translations when using
+   audiohooks
+   Reported by: Michael Walton
+     * [430f6e5388] Michael Walton -- audiohooks: Remove redundant codec
+       translations when using audiohooks
+
+    Category: Resources/res_pjsip_mwi
+
+   ASTERISK-26230: [patch] res_pjsip_mwi: unsolicited mwi could block PJSIP
+   taskprocessor on startup
+   Reported by: Alexei Gradinari
+     * [a06a1af0eb] Alexei Gradinari -- res_pjsip_mwi: fix unsolicited mwi
+       blocks PJSIP stack
+
+     ----------------------------------------------------------------------
+
+                      Commits Not Associated with an Issue
+
+                                 [Back to Top]
+
+   This is a list of all changes that went into this release that did not
+   reference a JIRA issue.
+
+   +------------------------------------------------------------------------+
+   | Revision   | Author      | Summary                                     |
+   |------------+-------------+---------------------------------------------|
+   | 907160ee21 | Kevin       | app_talkdectect: Now core supported, enable |
+   |            | Harwell     | for cert                                    |
+   |------------+-------------+---------------------------------------------|
+   | 0cd0495732 | Kevin       | Disable extended support modules            |
+   |            | Harwell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 854196eea9 | Kevin       | .version: Update for certified/13.13        |
+   |            | Harwell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | fdde690e0f | Kevin       | Update for 13.13.0                          |
+   |            | Harwell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | f93e55d124 | Kevin       | Update for 13.13.0-rc2                      |
+   |            | Harwell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | e246b36a3c | gtjoseph    | build: Backport addition of librt check to  |
+   |            |             | configure.ac                                |
+   |------------+-------------+---------------------------------------------|
+   | 855f05e525 | Kevin       | Update for 13.13.0                          |
+   |            | Harwell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 751d43e8e4 | Joshua Colp | Update for 13.13.0-rc1                      |
+   |------------+-------------+---------------------------------------------|
+   | cb624b10ae | Mark        | Bump ARI version to 1.10.0                  |
+   |            | Michelson   |                                             |
+   |------------+-------------+---------------------------------------------|
+   | bde3d022a3 | Mark        | manager: update minor version               |
+   |            | Michelson   |                                             |
+   |------------+-------------+---------------------------------------------|
+   | c92dcc76da | gtjoseph    | file.c/__ast_file_read_dirs: Fix issues on  |
+   |            |             | filesystems without d_type                  |
+   |------------+-------------+---------------------------------------------|
+   | 0790aa528a | Matt Jordan | pjproject: Use a much higher limit for      |
+   |            |             | PJ_ICE_MAX_CHECKS                           |
+   |------------+-------------+---------------------------------------------|
+   | 993a6f96c7 | Matt Jordan | apps/app_echo: Only relay a single video    |
+   |            |             | source change frame                         |
+   |------------+-------------+---------------------------------------------|
+   | 404a62eeee | gtjoseph    | Revert "Revert "channel: Use frame deferral |
+   |            |             | API for safe sleep.""                       |
+   |------------+-------------+---------------------------------------------|
+   | 09d8febc91 | gtjoseph    | Revert "Revert "autoservice: Use frame      |
+   |            |             | deferral API""                              |
+   |------------+-------------+---------------------------------------------|
+   | ffad2b44df | gtjoseph    | Revert "Revert "AGI: Only defer frames when |
+   |            |             | in an interception routine.""               |
+   |------------+-------------+---------------------------------------------|
+   | 2fefb6187f | gtjoseph    | Revert "Revert "Add API for channel frame   |
+   |            |             | deferral.""                                 |
+   |------------+-------------+---------------------------------------------|
+   | 412d43fa21 | Richard     | res_pjsip.c: Rework endpt_send_request()    |
+   |            | Mudgett     | req_wrapper code.                           |
+   |------------+-------------+---------------------------------------------|
+   | 2e7fc56d3c | Richard     | res_pjsip: Fix tdata leaks in off nominal   |
+   |            | Mudgett     | paths.                                      |
+   |------------+-------------+---------------------------------------------|
+   | da68b185b3 | Richard     | res_pjsip_registrar_expire.c: Remove extra  |
+   |            | Mudgett     | linefeed in debug message.                  |
+   |------------+-------------+---------------------------------------------|
+   | 6b5a7ced13 | gtjoseph    | Revert "Add API for channel frame           |
+   |            |             | deferral."                                  |
+   |------------+-------------+---------------------------------------------|
+   | 6be5d8de0d | gtjoseph    | Revert "AGI: Only defer frames when in an   |
+   |            |             | interception routine."                      |
+   |------------+-------------+---------------------------------------------|
+   | 1df434e2b4 | gtjoseph    | Revert "autoservice: Use frame deferral     |
+   |            |             | API"                                        |
+   |------------+-------------+---------------------------------------------|
+   | 58c88cfbaa | gtjoseph    | Revert "channel: Use frame deferral API for |
+   |            |             | safe sleep."                                |
+   |------------+-------------+---------------------------------------------|
+   | a562fbe618 | gtjoseph    | build: Fix default values for some          |
+   |            |             | SANITIZER options                           |
+   |------------+-------------+---------------------------------------------|
+   | e043d1a55c | Mark        | res_pjsip_session: Do not call session      |
+   |            | Michelson   | supplements when it's too late.             |
+   |------------+-------------+---------------------------------------------|
+   | 44f7e25239 | Mark        | channel: Use frame deferral API for safe    |
+   |            | Michelson   | sleep.                                      |
+   |------------+-------------+---------------------------------------------|
+   | 0ee249075a | Alexander   | chan_ooh323: reset rrq count on gk          |
+   |            | Anikin      | registration                                |
+   |------------+-------------+---------------------------------------------|
+   | 59c23e1768 | Michael     | automon: restore mixing of the both         |
+   |            | Kuron       | channels after recording stops              |
+   |------------+-------------+---------------------------------------------|
+   | e79acaeb75 | Matt Jordan | res_http_websocket: Increase the buffer     |
+   |            |             | size for non-LOW_MEMORY systems             |
+   |------------+-------------+---------------------------------------------|
+   | 7a83196985 | Matt Jordan | res_stasis: Set a video source mode on      |
+   |            |             | Stasis created bridges                      |
+   |------------+-------------+---------------------------------------------|
+   | eceab15f33 | Alexander   | chan_ooh323: Fix infinite loop on read      |
+   |            | Anikin      | second part of H.225 packet                 |
+   |------------+-------------+---------------------------------------------|
+   | a9992da4aa | gtjoseph    | pjproject_bundled: Fix issue with           |
+   |            |             | libasteriskpj needing libresample           |
+   |------------+-------------+---------------------------------------------|
+   | a36a7d0cf4 | gtjoseph    | pjproject_bundled: Fix compile of pjsua so  |
+   |            |             | it handles audio                            |
+   |------------+-------------+---------------------------------------------|
+   | 6b1c55dc9b | gtjoseph    | pjproject_bundled: Fix issue where          |
+   |            |             | "/version.mak" wasn't found                 |
+   |------------+-------------+---------------------------------------------|
+   | 3a2092b722 | gtjoseph    | test_astobj2_thrash: Fix multithreaded      |
+   |            |             | issues                                      |
+   |------------+-------------+---------------------------------------------|
+   |            | Pascal      | typo: s/paranthesis/parenthesis/ in a       |
+   | 640203802e | Cadotte     | comment                                     |
+   |            | Michaud     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 9b3557e054 | gtjoseph    | pjproject_bundled: Fixed various build      |
+   |            |             | issues                                      |
+   |------------+-------------+---------------------------------------------|
+   | 74d9385273 | gtjoseph    | utils.c: Fix ast_set_default_eid for        |
+   |            |             | multiple platforms                          |
+   |------------+-------------+---------------------------------------------|
+   | e4bb9f9a37 | Richard     | aoc.c: Whitespace cleanup                   |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | bcac905bd3 | Richard     | app_queue.c: Fix clearing of pause reason   |
+   |            | Mudgett     | string.                                     |
+   |------------+-------------+---------------------------------------------|
+   | ee4ae2b648 | Richard     | app_minivm.c: Fix malformed ast_json_pack() |
+   |            | Mudgett     | call.                                       |
+   |------------+-------------+---------------------------------------------|
+   | 86c15db6a1 | Torrey      | res_fax: Fix a tight race condition causing |
+   |            | Searle      | fax to crash in audio fallback              |
+   |------------+-------------+---------------------------------------------|
+   |            | Rodrigo     | Add text of cdr directory into README.md    |
+   | 29b7a5b00f | RamArez     | for ast-db-manage                           |
+   |            | Norambuena  |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 349c34f72a | Torrey      | res_rtp_asterisk: Fix infinite DTMF issue   |
+   |            | Searle      | when switching to P2P bridge                |
+   |------------+-------------+---------------------------------------------|
+   | fa2885b3ff | Badalyan    | cel_odbc: Fix memory leak on module unload  |
+   |            | Vyacheslav  |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 0dc0356e39 | gtjoseph    | pjproject_bundled: Add MALLOC_DEBUG         |
+   |            |             | capability                                  |
+   |------------+-------------+---------------------------------------------|
+   | dd873bcada | Corey       | astobj2: Add backtrace to log_bad_ao2.      |
+   |            | Farrell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | f0a2e628d6 | gtjoseph    | download_externals: Fix issue with          |
+   |            |             | re-install                                  |
+   |------------+-------------+---------------------------------------------|
+   | 0ab443007b | gtjoseph    | build_tools: Add ability to download        |
+   |            |             | variants to download_externals              |
+   |------------+-------------+---------------------------------------------|
+   | 610eb4c189 | Corey       | logger: Fix default console settings.       |
+   |            | Farrell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 36092ee3a0 | Tzafrir     | sd_notify (systemd status notifications)    |
+   |            | Cohen       | support                                     |
+   |------------+-------------+---------------------------------------------|
+   | 01884a7af6 | Timo        | Fix showing of swap details when sysinfo()  |
+   |            | TerACURs    | is available                                |
+   |------------+-------------+---------------------------------------------|
+   | 4d64b176eb | gtjoseph    | pjproject_bundled: Prevent SERVFAIL from    |
+   |            |             | marking name server bad                     |
+   |------------+-------------+---------------------------------------------|
+   | 7ed5dc2c58 | Walter      | contrib: Let safe_asterisk script continue  |
+   |            | Doekes      | without /dev/tty9.                          |
+   |------------+-------------+---------------------------------------------|
+   | 23d6ec7417 | Richard     | res_pjsip_messaging.c: Misc cleanups and    |
+   |            | Mudgett     | fixes.                                      |
+   |------------+-------------+---------------------------------------------|
+   | 5f19657710 | Joshua Colp | res_pjsip: Allow global headers to be       |
+   |            |             | overridden.                                 |
+   |------------+-------------+---------------------------------------------|
+   | 117a7741c8 | gtjoseph    | build: Add download capability for external |
+   |            |             | packages                                    |
+   |------------+-------------+---------------------------------------------|
+   | 03fc438f6e | Richard     | res_pjsip_registrar.c: Reduce stack usage   |
+   |            | Mudgett     | in find_aor_name().                         |
+   |------------+-------------+---------------------------------------------|
+   | b5e753227d | Richard     | pjsip_configuration.c: Ignore repeated      |
+   |            | Mudgett     | identify by methods.                        |
+   |------------+-------------+---------------------------------------------|
+   | 9b7501b6ad | Richard     | config_global.c: Comments and a default     |
+   |            | Mudgett     | expression adjustment.                      |
+   |------------+-------------+---------------------------------------------|
+   | 3314e1cec2 | Richard     | sip_to_pjsip.py: Map canreinvite as         |
+   |            | Mudgett     | directmedia alias.                          |
+   |------------+-------------+---------------------------------------------|
+   | 6372f40ba0 | Richard     | sip_to_pjsip.py: Fix typo converting        |
+   |            | Mudgett     | outboundproxy registration.                 |
+   |------------+-------------+---------------------------------------------|
+   | 11eb1afd2d | Richard     | sip_to_pjsip.py: Fix comment typo and tabs. |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 0f9b144c1a | Richard     | Sample configs: Eliminate false multiline   |
+   |            | Mudgett     | comment block starts.                       |
+   |------------+-------------+---------------------------------------------|
+   | 5cd583d7a2 | Richard     | res_pjsip: Cache global config options.     |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 50b2aa506f | Richard     | res_fax.c: Add chan locked precondition     |
+   |            | Mudgett     | comments.                                   |
+   |------------+-------------+---------------------------------------------|
+   | 038cbc0215 | Richard     | ast_framehook_detach() must be called with  |
+   |            | Mudgett     | the channel locked.                         |
+   |------------+-------------+---------------------------------------------|
+   | 88e9d05ef7 | Richard     | ast_framehook_attach() must be called with  |
+   |            | Mudgett     | the channel locked.                         |
+   |------------+-------------+---------------------------------------------|
+   | c9e83f6d0b | gtjoseph    | res_rtp_multicast: Fix SEGV in              |
+   |            |             | ast_multicast_rtp_create_options            |
+   |------------+-------------+---------------------------------------------|
+   | cb8fd610e2 | Corey       | Fix checks for allocation debugging.        |
+   |            | Farrell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | d5d7cbfcfb | Joshua Colp | Revert "ConfBridge: Rework announcer        |
+   |            |             | channel methodology"                        |
+   |------------+-------------+---------------------------------------------|
+   | e54dcf4fd5 | David M.    | res_odbc_transaction: add dep on            |
+   |            | Lee         | generic_odbc                                |
+   |------------+-------------+---------------------------------------------|
+   | b494b9f88c | Alexei      | compilation failed with                     |
+   |            | Gradinari   | -Werror=maybe-uninitialized                 |
+   |------------+-------------+---------------------------------------------|
+   | 329507fe20 | gtjoseph    | res_pjsip: Add contact_user to endpoint     |
+   |------------+-------------+---------------------------------------------|
+   | 6f448f32fe | Torrey      | res_ari: Add http prefix to generated docs  |
+   |            | Searle      |                                             |
+   |------------+-------------+---------------------------------------------|
+   | f4e28b3a09 | Corey       | Refactor usage pattern of xmldoc info tag.  |
+   |            | Farrell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | a8d9a53bae | Richard     | res_sorcery_config.c: Cleanup ao2 container |
+   |            | Mudgett     | usage idioms.                               |
+   |------------+-------------+---------------------------------------------|
+   | 74a91b9ee5 | Richard     | sorcery.c: Minor optimizations.             |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 29beb2890c | Richard     | sorcery.c: Tweak some container declaration |
+   |            | Mudgett     | formatting.                                 |
+   |------------+-------------+---------------------------------------------|
+   | f59bd47ed3 | Matt Jordan | app_dial: Improve documentation             |
+   |------------+-------------+---------------------------------------------|
+   | 4facaac408 | Matt Jordan | manager: Add <see-also> tags to relate      |
+   |            |             | interrelated events/actions together        |
+   |------------+-------------+---------------------------------------------|
+   | 232d4fe24f | Matt Jordan | manager: Add <see-also> tags to relate      |
+   |            |             | Bridge related events,actions, and apps     |
+   |------------+-------------+---------------------------------------------|
+   | 63c0b2f7c9 | Matt Jordan | manager: Add <see-also> tags to relate AoC  |
+   |            |             | events and actions                          |
+   |------------+-------------+---------------------------------------------|
+   | 0422667d6c | Matt Jordan | manager: Add <see-also> tags to relate      |
+   |            |             | UserEvent actions/apps/events               |
+   |------------+-------------+---------------------------------------------|
+   | f9e734974b | Matt Jordan | res_agi: Improve documentation              |
+   |------------+-------------+---------------------------------------------|
+   | 781bb410d0 | Matt Jordan | manager: Add <see-also> links between       |
+   |            |             | related events                              |
+   |------------+-------------+---------------------------------------------|
+   | cfd6852d39 | Matt Jordan | func_channel: Reorganize documentation      |
+   |------------+-------------+---------------------------------------------|
+   | 1fc5c90014 | Richard     | res_pjsip res_pjsip_mwi: Misc fixes and     |
+   |            | Mudgett     | cleanups.                                   |
+   |------------+-------------+---------------------------------------------|
+   | 73052e5732 | Richard     | location.c: Misc fixes and cleanups.        |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 9d4bd3d763 | Richard     | taskprocessor.c: Tweak high water checks.   |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | e1248c3075 | Richard     | res_pjsip: Make aor named lock a mutex.     |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 6e40334d89 | Richard     | pjsip_distributor.c: Add missing allocation |
+   |            | Mudgett     | failure check.                              |
+   |------------+-------------+---------------------------------------------|
+   | 9dc8cfabd5 | Joshua Colp | astconfigparser: Really handle case where   |
+   |            |             | line is simply a comment.                   |
+   |------------+-------------+---------------------------------------------|
+   | ad3e65433c | gtjoseph    | asterisk.c: Add auto generation and         |
+   |            |             | persistence of UUID                         |
+   |------------+-------------+---------------------------------------------|
+   | efc4034d72 | Kevin       | rest-api: Code out of sync with the model   |
+   |            | Harwell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | f6821fbaec | Mark        | Remove SILK payload mappings from Asterisk  |
+   |            | Michelson   | core.                                       |
+   |------------+-------------+---------------------------------------------|
+   | 1f95c011c7 | gtjoseph    | menuselect: Add an opaque "member_data"     |
+   |            |             | string to the acceptable xml                |
+   |------------+-------------+---------------------------------------------|
+   | df42f64d62 | David M.    | Replace strdupa with more portable          |
+   |            | Lee         | ast_strdupa                                 |
+   |------------+-------------+---------------------------------------------|
+   | 56a07fbab9 | gtjoseph    | menuselect: Various menuselect enhancements |
+   |------------+-------------+---------------------------------------------|
+   | 7f9369c1b6 | Joshua Colp | astconfigparser: Handle case where line is  |
+   |            |             | simply a comment.                           |
+   |------------+-------------+---------------------------------------------|
+   | f00525a6f6 | Alexei      | pjproject: fixed a few bugs                 |
+   |            | Gradinari   |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 8902a51d59 | David M.    | Portably sscanf tv_usec                     |
+   |            | Lee         |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 852e763571 | Kevin       | rtp_engine: Failed assertion and wrong name |
+   |            | Harwell     | given for codec                             |
+   |------------+-------------+---------------------------------------------|
+   | e8c34680ca | Richard     | dsp.c: Add fax and DTMF detection unit      |
+   |            | Mudgett     | tests.                                      |
+   |------------+-------------+---------------------------------------------|
+   | c1f240b818 | Richard     | dsp.c: Added descriptive comments to        |
+   |            | Mudgett     | Goertzel calculations.                      |
+   |------------+-------------+---------------------------------------------|
+   | 003a52fd62 | Richard     | dsp.c: Fix incorrect format reference typo. |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 4c0a0cbe02 | Richard     | dsp.c: Correct DTMF twist dsp.conf          |
+   |            | Mudgett     | documentation.                              |
+   |------------+-------------+---------------------------------------------|
+   | 87433c2566 | Joshua Colp | astconfigparser.py: Update with realtime    |
+   |            |             | fixes.                                      |
+   |------------+-------------+---------------------------------------------|
+   | 33716106e0 | Richard     | res_pjsip: Whitespace and comment cleanup.  |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 76d4983c15 | Corey       | features.c: Remove unneeded adsi.h include. |
+   |            | Farrell     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 28501051b4 | Mark        | Update support for SILK format.             |
+   |            | Michelson   |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 8cef8f35e7 | Kevin       | translate: explicit format destination not  |
+   |            | Harwell     | properly set                                |
+   |------------+-------------+---------------------------------------------|
+   | afbd10b0c5 | Richard     | stasis_endpoint.c: Fix                      |
+   |            | Mudgett     | contactstatus_to_json().                    |
+   |------------+-------------+---------------------------------------------|
+   | fea201f7e6 | Richard     | pjsip_options.c: Fix container operation.   |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 02877b4b4f | Richard     | pjsip_configuration.c: Misc cleanups.       |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 1dfd3fc995 | Matt Jordan | res/res_pjsip_session: Check for presence   |
+   |            |             | of an active negotiator                     |
+   |------------+-------------+---------------------------------------------|
+   | 9dd0aeeb44 | Matt Jordan | res/res_pjsip_pubsub: Add additional debug  |
+   |            |             | statements                                  |
+   |------------+-------------+---------------------------------------------|
+   | 1ec4f8dd00 | Matt Jordan | res/res_corosync: Raise a Stasis message on |
+   |            |             | node join/leave events                      |
+   |------------+-------------+---------------------------------------------|
+   | 640fbbbe28 | Richard     | features: Fix channel datastore access.     |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 1952434df5 | Richard     | res_pjsip_session.c: Remove unused          |
+   |            | Mudgett     | parameter from handle_incoming().           |
+   |------------+-------------+---------------------------------------------|
+   | 28928ba5c4 | Richard     | res_pjsip: Add missing NULL checks when     |
+   |            | Mudgett     | using pjsip_inv_end_session().              |
+   |------------+-------------+---------------------------------------------|
+   | 78960975f2 | Matt Jordan | pjproject/patches/config_site: Increase the |
+   |            |             | max number of ICE candidates                |
+   |------------+-------------+---------------------------------------------|
+   | 9d5b0934d9 | Matt Jordan | configs/basic-pbx/modules.conf: Remove      |
+   |            |             | 'bad' modules                               |
+   |------------+-------------+---------------------------------------------|
+   | c982da0641 | Richard     | res_pjproject.c: Replace inlined            |
+   |            | Mudgett     | DEBUG_ATLEAST() with macro.                 |
+   |------------+-------------+---------------------------------------------|
+   | d53a36ff33 | Richard     | res_pjsip_transport_management.c: Misc      |
+   |            | Mudgett     | cleanups to survive shutdown.               |
+   |------------+-------------+---------------------------------------------|
+   | 03953d8034 | Richard     | res_pjsip.c: Add check that timer actually  |
+   |            | Mudgett     | got scheduled.                              |
+   |------------+-------------+---------------------------------------------|
+   | 32ab98116e | Richard     | res_rtp_multicast.c: Fix warning message    |
+   |            | Mudgett     | typo.                                       |
+   |------------+-------------+---------------------------------------------|
+   | 0429c53368 | Richard     | res_pjsip_session.c: Reorganize             |
+   |            | Mudgett     | ast_sip_session_terminate().                |
+   |------------+-------------+---------------------------------------------|
+   | 5823f279f3 | Richard     | chan_rtp: Backport changes from master.     |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | dde58df318 | Richard     | chan_rtp.c: Copy file from                  |
+   |            | Mudgett     | chan_multicast_rtp.c                        |
+   |------------+-------------+---------------------------------------------|
+   | a99ddc6a0d | gtjoseph    | build: Fix ast_sockaddr initialization to   |
+   |            |             | be more portable                            |
+   |------------+-------------+---------------------------------------------|
+   | 9c5a0b814b | Timo        | Fix #include poll.h and sys/cdefs.h         |
+   |            | TerACURs    |                                             |
+   |------------+-------------+---------------------------------------------|
+   | cda3385409 | Joshua Colp | alembic: Fix migration.                     |
+   |------------+-------------+---------------------------------------------|
+   | b2ce0e354b | Richard     | pjsip_distributor.c: Use correct rdata info |
+   |            | Mudgett     | access method (Part 2).                     |
+   |------------+-------------+---------------------------------------------|
+   | e8abfdcdc5 | gtjoseph    | pjproject_bundled: Move to pjproject 2.5    |
+   |------------+-------------+---------------------------------------------|
+   | 03d5b3ce5c | Richard     | pjsip_distributor.c: Use correct rdata info |
+   |            | Mudgett     | access method.                              |
+   |------------+-------------+---------------------------------------------|
+   | 361a16f316 | Matt Jordan | configs/samples/pjsip.conf.sample: Fix typo |
+   |------------+-------------+---------------------------------------------|
+   | f91a7dc993 | Matt Jordan | res/res_hep_pjsip: Fix reported local IP    |
+   |            |             | address when bound to 'any'                 |
+   |------------+-------------+---------------------------------------------|
+   | 9de5cd209e | Sean Bright | res_ari: Correct Location headers returned  |
+   |            |             | by some ARI resources                       |
+   |------------+-------------+---------------------------------------------|
+   | a73d79c22f | Tzafrir     | basic-cfg: asterisk.conf: remove            |
+   |            | Cohen       | [directories]                               |
+   |------------+-------------+---------------------------------------------|
+   | 1c56de9453 | Tzafrir     | basic-cfg: asterisk.conf: defaults of       |
+   |            | Cohen       | options                                     |
+   |------------+-------------+---------------------------------------------|
+   | d7af591c59 | Tzafrir     | basic-cfg: asterisk.conf: debug level 5     |
+   |            | Cohen       | spams                                       |
+   |------------+-------------+---------------------------------------------|
+   | 9b7db18fc1 | Tzafrir     | basic-cfg: asterisk.conf: don't set         |
+   |            | Cohen       | languages                                   |
+   |------------+-------------+---------------------------------------------|
+   | e2df15bae9 | gtjoseph    | pjsip_distributor: Add missing newline to   |
+   |            |             | NOTICE                                      |
+   |------------+-------------+---------------------------------------------|
+   | 37214b0bdf | Matt Jordan | configure: Fix errors with                  |
+   |            |             | AST_UNDEFINED_SANITIZER/AST_LEAK_SANITIZER  |
+   |------------+-------------+---------------------------------------------|
+   | 49b25a0956 | Kevin       | res_pjsip_outbound_publish: state potential |
+   |            | Harwell     | dropped on reloads/realtime fetches         |
+   |------------+-------------+---------------------------------------------|
+   | 1b5c91b7be | Kevin       | res_pjsip_outbound_publish: Potential crash |
+   |            | Harwell     | due to off nominal path                     |
+   |------------+-------------+---------------------------------------------|
+   | 10de553c9d | Kevin       | res_pjsip_outbound_publishing: After        |
+   |            | Harwell     | unloading the library won't load again      |
+   |------------+-------------+---------------------------------------------|
+   | 1a833b9739 | Kevin       | res_pjsip_outbound_publish: Ref leak in off |
+   |            | Harwell     | nominal callback paths                      |
+   |------------+-------------+---------------------------------------------|
+   | 4752ef02e0 | Kevin       | res_pjsip_outbound_publish: Won't unload if |
+   |            | Harwell     | condition wait times out                    |
+   |------------+-------------+---------------------------------------------|
+   | a2f19d82a8 | Diederik de | configs/basic-pbx/asterisk.conf: contains   |
+   |            | Groot       | incorrect path separator                    |
+   |------------+-------------+---------------------------------------------|
+   | 7992923c70 | Richard     | res_pjsip: Start body generator users after |
+   |            | Mudgett     | suppliers.                                  |
+   |------------+-------------+---------------------------------------------|
+   | 5dc0e082b2 | Richard     | res_pjsip_pubsub.c: Add useful information  |
+   |            | Mudgett     | to some messages.                           |
+   |------------+-------------+---------------------------------------------|
+   | f9e416f053 | Richard     | res_pjsip_pubsub.c: Fix body generator      |
+   |            | Mudgett     | registration race.                          |
+   |------------+-------------+---------------------------------------------|
+   | b1b2019046 | Richard     | res_pjsip_pubsub.h: Fix doxygen             |
+   |            | Mudgett     | association.                                |
+   |------------+-------------+---------------------------------------------|
+   | b7f07fdff5 | Richard     | res_pjsip_outbound_publish.c: Remove        |
+   |            | Mudgett     | redundant flag check.                       |
+   |------------+-------------+---------------------------------------------|
+   | ebf0724a83 | Richard     | test_message.c: Wait longer in case         |
+   |            | Mudgett     | dialplan also processes the test message.   |
+   |------------+-------------+---------------------------------------------|
+   | ba63aa7c9e | Richard     | Manager: Short circuit AMI message          |
+   |            | Mudgett     | processing.                                 |
+   |------------+-------------+---------------------------------------------|
+   | d5ee6acf28 | Richard     | manager.c: Eliminate most RAII_VAR usage.   |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 7303e3dc96 | Richard     | manager_channels.c: Fix allocation failure  |
+   |            | Mudgett     | crash.                                      |
+   |------------+-------------+---------------------------------------------|
+   | 1e93f3d723 | Richard     | Bridge system: Fix memory leaks and double  |
+   |            | Mudgett     | frees on impart failure.                    |
+   |------------+-------------+---------------------------------------------|
+   | 5e388d4188 | Richard     | bridge_softmix.c: Fix crash if channel      |
+   |            | Mudgett     | fails to join mixing tech.                  |
+   |------------+-------------+---------------------------------------------|
+   | ded3794fc6 | Joshua Colp | app_talkdetect: Make the module core        |
+   |            |             | supported.                                  |
+   |------------+-------------+---------------------------------------------|
+   | 49bfdc9ac0 | Joshua Colp | res_pjsip_transport_management: Allow       |
+   |            |             | unload to occur.                            |
+   |------------+-------------+---------------------------------------------|
+   | f4693d1897 | Richard     | bridge_channel.c: Ignore role setup failure |
+   |            | Mudgett     | in channel push.                            |
+   |------------+-------------+---------------------------------------------|
+   | 724acb6ce7 | Richard     | stasis_bridge.c: Update stasis bridge push  |
+   |            | Mudgett     | diagnostic messages.                        |
+   |------------+-------------+---------------------------------------------|
+   | 5f78801859 | Mark        | transport management: Register thread with  |
+   |            | Michelson   | PJProject.                                  |
+   |------------+-------------+---------------------------------------------|
+   | 9740277713 | gtjoseph    | res_pjsip: Add serialized scheduler         |
+   |            |             | (res_pjsip/pjsip_scheduler.c)               |
+   |------------+-------------+---------------------------------------------|
+   | f6e080c6a4 | Richard     | bridge_softmix.c: Fix crash if could not    |
+   |            | Mudgett     | allocate the dsp.                           |
+   |------------+-------------+---------------------------------------------|
+   | 772ff3048f | gtjoseph    | lock: Add named lock capability             |
+   |------------+-------------+---------------------------------------------|
+   | 82638fb0c7 | Richard     | pbx.c: Minor code rearangements.            |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | 2ef8a954b3 | Richard     | pbx: Update doxygen for extension state     |
+   |            | Mudgett     | watchers.                                   |
+   |------------+-------------+---------------------------------------------|
+   | 901e8d78c4 | Joshua Colp | res_pjsip_registrar_expire: Fix race        |
+   |            |             | condition at shutdown.                      |
+   |------------+-------------+---------------------------------------------|
+   | 8207372e66 | Joshua Colp | res_pjsip: Fix configuration setting of     |
+   |            |             | "regcontext".                               |
+   |------------+-------------+---------------------------------------------|
+   | cb56ef8069 | Joshua Colp | res_http_websocket: Make core supported.    |
+   |------------+-------------+---------------------------------------------|
+   | f6f4cf459f | gtjoseph    | stringfields: Refactor to allow fields to   |
+   |            |             | be added to the end of structures           |
+   |------------+-------------+---------------------------------------------|
+   | fe448ac8a7 | gtjoseph    | res_pjsip_mwi: Fix segv caused by           |
+   |            |             | 16c7d8e74a9af13f98c3c22aa9c43ce39965f6b7    |
+   |------------+-------------+---------------------------------------------|
+   | 9d4318f798 | gtjoseph    | install_prereq: Fix check_installed_debs    |
+   |            |             | remove subversion                           |
+   |------------+-------------+---------------------------------------------|
+   | 566601837e | gtjoseph    | utils.c: Fix typo in handle_show_locks      |
+   |------------+-------------+---------------------------------------------|
+   | 5f73c2ef0a | Richard     | res_stasis.c: Protect channel datastore     |
+   |            | Mudgett     | list from stasis end.                       |
+   |------------+-------------+---------------------------------------------|
+   | 74d63f56ee | Richard     | res_ari: Cannot get control also means      |
+   |            | Mudgett     | channel is unavailable.                     |
+   |------------+-------------+---------------------------------------------|
+   | cf49b44090 | Richard     | res_stasis_recording.c: Cleanup             |
+   |            | Mudgett     | stasis_app_recording_find_by_name().        |
+   |------------+-------------+---------------------------------------------|
+   | 7f53f1d89e | Richard     | core_unreal.c: Add clarification comment    |
+   |            | Mudgett     | about channel ref.                          |
+   |------------+-------------+---------------------------------------------|
+   | 8dc8d6ceb8 | gtjoseph    | res_rtp_asterisk: Fix placement of txcount  |
+   |            |             | increment                                   |
+   |------------+-------------+---------------------------------------------|
+   | c7eb18d865 | gtjoseph    | chan_pjsip: Add 'pjsip show channelstats'   |
+   |------------+-------------+---------------------------------------------|
+   | 1583559a06 | gtjoseph    | res_pjsip/pjsip_options: Fix From           |
+   |            |             | generation on outgoing OPTIONS              |
+   |------------+-------------+---------------------------------------------|
+   | 1bce690ccb | gtjoseph    | res_rtp_asterisk: Fix packet stats on       |
+   |            |             | bridged connection                          |
+   |------------+-------------+---------------------------------------------|
+   | 05fc3a96d1 | Richard     | res_parking: Cleanup                        |
+   |            | Mudgett     | find_channel_parking_lot_name() usage.      |
+   |------------+-------------+---------------------------------------------|
+   | a4189763ab | Richard     | res_parking: Misc fixes.                    |
+   |            | Mudgett     |                                             |
+   |------------+-------------+---------------------------------------------|
+   | d963a33749 | gtjoseph    | pjproject-bundled: Cleanups for reported    |
+   |            |             | issues                                      |
+   |------------+-------------+---------------------------------------------|
+   | 51deadee38 | gtjoseph    | progdocs: Exclude ./third-party from        |
+   |            |             | documentation generation                    |
+   +------------------------------------------------------------------------+
+
+     ----------------------------------------------------------------------
+
+                                Diffstat Results
+
+                                 [Back to Top]
+
+   This is a summary of the changes to the source code that went into this
+   release that was generated using the diffstat utility.
+
+ .lastclean                                                                                      |    1
+ asterisk-certified-13.8-cert3-summary.html                                                      |   47
+ asterisk-certified-13.8-cert3-summary.txt                                                       |  156
+ autoconf/acx_pthread.m4                                                                         |  243
+ b/.version                                                                                      |    2
+ b/CHANGES                                                                                       |  304
+ b/ChangeLog                                                                                     |34469 +++++-----
+ b/Makefile                                                                                      |  117
+ b/Makefile.moddir_rules                                                                         |   14
+ b/Makefile.rules                                                                                |    4
+ b/UPGRADE.txt                                                                                   |   11
+ b/addons/cdr_mysql.c                                                                            |   11
+ b/addons/chan_ooh323.c                                                                          |   48
+ b/addons/ooh323c/src/Makefile.in                                                                |    2
+ b/addons/ooh323c/src/ooCalls.c                                                                  |    3
+ b/addons/ooh323c/src/ooGkClient.c                                                               |    1
+ b/addons/ooh323c/src/oochannels.c                                                               |   43
+ b/addons/ooh323c/src/ooq931.c                                                                   |    5
+ b/addons/res_config_mysql.c                                                                     |  364
+ b/apps/app_confbridge.c                                                                         |   15
+ b/apps/app_dial.c                                                                               |  195
+ b/apps/app_echo.c                                                                               |   18
+ b/apps/app_fax.c                                                                                |   14
+ b/apps/app_followme.c                                                                           |   43
+ b/apps/app_macro.c                                                                              |   36
+ b/apps/app_minivm.c                                                                             |    8
+ b/apps/app_mp3.c                                                                                |   52
+ b/apps/app_queue.c                                                                              |   87
+ b/apps/app_skel.c                                                                               |    2
+ b/apps/app_userevent.c                                                                          |    4
+ b/apps/app_voicemail.c                                                                          |  383
+ b/apps/confbridge/conf_chan_announce.c                                                          |    1
+ b/apps/confbridge/conf_config_parser.c                                                          |   19
+ b/apps/confbridge/include/confbridge.h                                                          |    1
+ b/asterisk-13.13.0-summary.html                                                                 |  304
+ b/asterisk-13.13.0-summary.txt                                                                  |  767
+ b/autoconf/ast_ext_lib.m4                                                                       |    2
+ b/autoconf/ast_prog_ld.m4                                                                       |    2
+ b/autoconf/ax_pthread.m4                                                                        |  485
+ b/autoconf/libcurl.m4                                                                           |   49
+ b/bridges/bridge_builtin_features.c                                                             |    2
+ b/bridges/bridge_softmix.c                                                                      |   60
+ b/build_tools/download_externals                                                                |  224
+ b/build_tools/list_valid_installed_externals                                                    |   55
+ b/build_tools/make_version                                                                      |    4
+ b/build_tools/menuselect-deps.in                                                                |    2
+ b/cdr/cdr_custom.c                                                                              |    2
+ b/cdr/cdr_syslog.c                                                                              |    2
+ b/cel/cel_custom.c                                                                              |    2
+ b/cel/cel_odbc.c                                                                                |    1
+ b/channels/chan_dahdi.c                                                                         |   82
+ b/channels/chan_iax2.c                                                                          |   19
+ b/channels/chan_pjsip.c                                                                         |  318
+ b/channels/chan_rtp.c                                                                           |    2
+ b/channels/chan_sip.c                                                                           |  351
+ b/channels/chan_unistim.c                                                                       |   13
+ b/channels/pjsip/cli_commands.c                                                                 |  467
+ b/channels/pjsip/dialplan_functions.c                                                           |  131
+ b/channels/pjsip/include/cli_functions.h                                                        |   45
+ b/channels/pjsip/include/dialplan_functions.h                                                   |   12
+ b/channels/sip/config_parser.c                                                                  |    7
+ b/channels/sip/dialplan_functions.c                                                             |   82
+ b/channels/sip/include/sip.h                                                                    |    9
+ b/channels/sip/reqresp_parser.c                                                                 |   23
+ b/codecs/codecs.xml                                                                             |   32
+ b/configs/basic-pbx/asterisk.conf                                                               |   25
+ b/configs/basic-pbx/modules.conf                                                                |    4
+ b/configs/basic-pbx/pjsip.conf                                                                  |    3
+ b/configs/samples/alsa.conf.sample                                                              |    4
+ b/configs/samples/asterisk.conf.sample                                                          |   17
+ b/configs/samples/ccss.conf.sample                                                              |   16
+ b/configs/samples/cdr_mysql.conf.sample                                                         |    5
+ b/configs/samples/chan_dahdi.conf.sample                                                        |    4
+ b/configs/samples/codecs.conf.sample                                                            |   54
+ b/configs/samples/confbridge.conf.sample                                                        |    2
+ b/configs/samples/console.conf.sample                                                           |    4
+ b/configs/samples/dsp.conf.sample                                                               |   28
+ b/configs/samples/func_odbc.conf.sample                                                         |   14
+ b/configs/samples/hep.conf.sample                                                               |    6
+ b/configs/samples/manager.conf.sample                                                           |    4
+ b/configs/samples/mgcp.conf.sample                                                              |    6
+ b/configs/samples/minivm.conf.sample                                                            |   14
+ b/configs/samples/misdn.conf.sample                                                             |    4
+ b/configs/samples/oss.conf.sample                                                               |    4
+ b/configs/samples/pjsip.conf.sample                                                             |  134
+ b/configs/samples/queues.conf.sample                                                            |    4
+ b/configs/samples/res_odbc.conf.sample                                                          |   13
+ b/configs/samples/res_parking.conf.sample                                                       |   42
+ b/configs/samples/res_snmp.conf.sample                                                          |    2
+ b/configs/samples/rtp.conf.sample                                                               |   12
+ b/configs/samples/sip.conf.sample                                                               |   58
+ b/configs/samples/skinny.conf.sample                                                            |   20
+ b/configs/samples/unistim.conf.sample                                                           |    4
+ b/configs/samples/voicemail.conf.sample                                                         |   10
+ b/configs/samples/vpb.conf.sample                                                               |    2
+ b/configure                                                                                     | 2433
+ b/configure.ac                                                                                  |  127
+ b/contrib/ast-db-manage/README.md                                                               |    1
+ b/contrib/ast-db-manage/cdr/env.py                                                              |    1
+ b/contrib/ast-db-manage/config/env.py                                                           |    1
+ b/contrib/ast-db-manage/config/versions/10aedae86a32_add_outgoing_enum_va.py                    |   10
+ b/contrib/ast-db-manage/config/versions/136885b81223_add_regcontext_to_pj.py                    |    3
+ b/contrib/ast-db-manage/config/versions/154177371065_add_default_from_user.py                   |    3
+ b/contrib/ast-db-manage/config/versions/1758e8bbf6b_increase_useragent_column_size.py           |    6
+ b/contrib/ast-db-manage/config/versions/189a235b3fd7_add_keep_alive_interval.py                 |    3
+ b/contrib/ast-db-manage/config/versions/1c688d9a003c_pjsip_voicemail_extension.py               |   28
+ b/contrib/ast-db-manage/config/versions/1d50859ed02e_create_accountcode.py                      |    3
+ b/contrib/ast-db-manage/config/versions/21e526ad3040_add_pjsip_debug_option.py                  |    3
+ b/contrib/ast-db-manage/config/versions/23530d604b96_add_rpid_immediate.py                      |    3
+ b/contrib/ast-db-manage/config/versions/26d7f3bf0fa5_add_bind_rtp_to_media_address_to_pjsip.py  |    3
+ b/contrib/ast-db-manage/config/versions/26f10cadc157_add_pjsip_timeout_options.py               |    5
+ b/contrib/ast-db-manage/config/versions/28b8e71e541f_add_g726_non_standard.py                   |    3
+ b/contrib/ast-db-manage/config/versions/28ce1e718f05_add_fatal_response_interval.py             |    3
+ b/contrib/ast-db-manage/config/versions/2d078ec071b7_increaes_contact_column_size.py            |    6
+ b/contrib/ast-db-manage/config/versions/2fc7930b41b3_add_pjsip_endpoint_options_for_12_1.py     |   38
+ b/contrib/ast-db-manage/config/versions/31cd4f4891ec_add_auto_dtmf_mode.py                      |   10
+ b/contrib/ast-db-manage/config/versions/371a3bf4143e_add_user_eq_phone_option_to_pjsip.py       |    3
+ b/contrib/ast-db-manage/config/versions/3772f8f828da_update_identify_by.py                      |   44
+ b/contrib/ast-db-manage/config/versions/3855ee4e5f85_add_missing_pjsip_options.py               |    6
+ b/contrib/ast-db-manage/config/versions/3bcc0b5bc2c9_add_allow_reload_to_ps_transports.py       |    3
+ b/contrib/ast-db-manage/config/versions/423f34ad36e2_fix_pjsip_qualify_ti.py                    |   12
+ b/contrib/ast-db-manage/config/versions/4468b4a91372_add_pjsip_asymmetric_rtp_codec.py          |   31
+ b/contrib/ast-db-manage/config/versions/45e3f47c6c44_add_pjsip_endpoint_identifier_order.py     |    3
+ b/contrib/ast-db-manage/config/versions/461d7d691209_add_pjsip_qualify_timeout.py               |    6
+ b/contrib/ast-db-manage/config/versions/498357a710ae_add_rtp_keepalive.py                       |    3
+ b/contrib/ast-db-manage/config/versions/4a6c67fa9b7a_add_fax_detect_timeout_option.py           |    4
+ b/contrib/ast-db-manage/config/versions/4c573e7135bd_fix_tos_field_types.py                     |   54
+ b/contrib/ast-db-manage/config/versions/4e2493ef32e6_add_contact_user_to_endpoint.py            |    4
+ b/contrib/ast-db-manage/config/versions/5139253c0423_make_q_member_uniqueid_autoinc.py          |   25
+ b/contrib/ast-db-manage/config/versions/51f8cb66540e_add_further_dtls_options.py                |    5
+ b/contrib/ast-db-manage/config/versions/5813202e92be_add_contact_expiration_check_interval_.py  |   20
+ b/contrib/ast-db-manage/config/versions/5950038a6ead_fix_pjsip_verifiy_typo.py                  |    6
+ b/contrib/ast-db-manage/config/versions/65eb22eb195_add_unidentified_request_options_to_.py     |   27
+ b/contrib/ast-db-manage/config/versions/6d8c104e6184_res_pjsip_add_contact_via_addr_and_.py     |   25
+ b/contrib/ast-db-manage/config/versions/81b01a191a46_pjsip_add_contact_reg_server.py            |   23
+ b/contrib/ast-db-manage/config/versions/837aa67461fb_add_pjsip_endpoint_ip_access_control_.py   |   32
+ b/contrib/ast-db-manage/config/versions/837aa67461fb_ps_contacts_add_authenticate_qualify.py    |   32
+ b/contrib/ast-db-manage/config/versions/8d478ab86e29_pjsip_add_disable_multi_domain.py          |    4
+ b/contrib/ast-db-manage/config/versions/9deac0ae4717_pjsip_add_subscribe_context.py             |   21
+ b/contrib/ast-db-manage/config/versions/a541e0b5e89_add_pjsip_max_initial_qualify_time.py       |    3
+ b/contrib/ast-db-manage/config/versions/a6ef36f1309_ps_globals_add_ignore_uri_user_options.py   |   32
+ b/contrib/ast-db-manage/config/versions/c7a44a5a0851_pjsip_add_global_mwi_options.py            |   35
+ b/contrib/ast-db-manage/config/versions/dbc44d5a908_add_missing_columns_to_sys_and_reg.py       |    8
+ b/contrib/ast-db-manage/config/versions/e96a0b8071c_increase_pjsip_column_size.py               |   30
+ b/contrib/ast-db-manage/config/versions/eb88a14f2a_add_media_encryption_optimistic_to_pjsip.py  |    3
+ b/contrib/ast-db-manage/config/versions/ef7efc2d3964_ps_contacts_add_endpoint_and_modify_.py    |   33
+ b/contrib/ast-db-manage/env.py                                                                  |  140
+ b/contrib/ast-db-manage/voicemail/env.py                                                        |    1
+ b/contrib/realtime/mssql/mssql_config.sql                                                       |  238
+ b/contrib/realtime/mysql/mysql_config.sql                                                       |  128
+ b/contrib/realtime/oracle/oracle_config.sql                                                     |  238
+ b/contrib/realtime/postgresql/postgresql_config.sql                                             |  134
+ b/contrib/scripts/install_prereq                                                                |   49
+ b/contrib/scripts/safe_asterisk                                                                 |   13
+ b/contrib/scripts/sip_to_pjsip/astconfigparser.py                                               |   27
+ b/contrib/scripts/sip_to_pjsip/sip_to_pjsip.py                                                  |  499
+ b/doc/appdocsxml.dtd                                                                            |    2
+ b/doc/appdocsxml.xslt                                                                           |   25
+ b/doc/asterisk-ng-doxygen.in                                                                    |    3
+ b/funcs/func_aes.c                                                                              |    2
+ b/funcs/func_cdr.c                                                                              |   10
+ b/funcs/func_channel.c                                                                          |  214
+ b/funcs/func_curl.c                                                                             |    2
+ b/funcs/func_odbc.c                                                                             |  499
+ b/include/asterisk.h                                                                            |   16
+ b/include/asterisk/_private.h                                                                   |    3
+ b/include/asterisk/ari.h                                                                        |    3
+ b/include/asterisk/astobj2.h                                                                    |  134
+ b/include/asterisk/autoconfig.h.in                                                              |   59
+ b/include/asterisk/bridge.h                                                                     |    9
+ b/include/asterisk/bridge_technology.h                                                          |    3
+ b/include/asterisk/channel.h                                                                    |   67
+ b/include/asterisk/channel_internal.h                                                           |    2
+ b/include/asterisk/chanvars.h                                                                   |    2
+ b/include/asterisk/cli.h                                                                        |   12
+ b/include/asterisk/compat.h                                                                     |    2
+ b/include/asterisk/compiler.h                                                                   |    6
+ b/include/asterisk/config.h                                                                     |   83
+ b/include/asterisk/config_options.h                                                             |   22
+ b/include/asterisk/event_defs.h                                                                 |   13
+ b/include/asterisk/features.h                                                                   |    9
+ b/include/asterisk/file.h                                                                       |   28
+ b/include/asterisk/format_cache.h                                                               |    8
+ b/include/asterisk/hashtab.h                                                                    |   14
+ b/include/asterisk/heap.h                                                                       |    4
+ b/include/asterisk/http.h                                                                       |    1
+ b/include/asterisk/io.h                                                                         |   10
+ b/include/asterisk/json.h                                                                       |   35
+ b/include/asterisk/lock.h                                                                       |    2
+ b/include/asterisk/manager.h                                                                    |    2
+ b/include/asterisk/module.h                                                                     |    7
+ b/include/asterisk/options.h                                                                    |    2
+ b/include/asterisk/opus.h                                                                       |   51
+ b/include/asterisk/parking.h                                                                    |   11
+ b/include/asterisk/pbx.h                                                                        |   58
+ b/include/asterisk/poll-compat.h                                                                |    2
+ b/include/asterisk/res_fax.h                                                                    |   22
+ b/include/asterisk/res_hep.h                                                                    |   22
+ b/include/asterisk/res_odbc.h                                                                   |    5
+ b/include/asterisk/res_pjsip.h                                                                  |  376
+ b/include/asterisk/res_pjsip_body_generator_types.h                                             |    2
+ b/include/asterisk/res_pjsip_pubsub.h                                                           |   24
+ b/include/asterisk/rtp_engine.h                                                                 |   17
+ b/include/asterisk/sorcery.h                                                                    |   24
+ b/include/asterisk/stasis.h                                                                     |   24
+ b/include/asterisk/stasis_app.h                                                                 |   29
+ b/include/asterisk/stasis_bridges.h                                                             |    4
+ b/include/asterisk/stasis_system.h                                                              |    6
+ b/include/asterisk/stringfields.h                                                               |  295
+ b/include/asterisk/strings.h                                                                    |   38
+ b/include/asterisk/taskprocessor.h                                                              |   32
+ b/include/asterisk/tcptls.h                                                                     |    1
+ b/include/asterisk/utils.h                                                                      |   19
+ b/include/asterisk/vector.h                                                                     |   62
+ b/main/Makefile                                                                                 |   27
+ b/main/aoc.c                                                                                    |   64
+ b/main/ast_expr2.c                                                                              |   12
+ b/main/ast_expr2.y                                                                              |   12
+ b/main/asterisk.c                                                                               |  535
+ b/main/asterisk.exports.in                                                                      |    2
+ b/main/astfd.c                                                                                  |    2
+ b/main/astobj2.c                                                                                |   29
+ b/main/astobj2_container.c                                                                      |   36
+ b/main/astobj2_hash.c                                                                           |    8
+ b/main/astobj2_rbtree.c                                                                         |    6
+ b/main/autoservice.c                                                                            |   66
+ b/main/bridge.c                                                                                 |   57
+ b/main/bridge_basic.c                                                                           |    2
+ b/main/bridge_channel.c                                                                         |   20
+ b/main/cdr.c                                                                                    |   19
+ b/main/cel.c                                                                                    |  112
+ b/main/channel.c                                                                                |  214
+ b/main/channel_internal_api.c                                                                   |   29
+ b/main/chanvars.c                                                                               |    4
+ b/main/cli.c                                                                                    |   70
+ b/main/codec.c                                                                                  |   70
+ b/main/codec_builtin.c                                                                          |   96
+ b/main/config.c                                                                                 |  161
+ b/main/config_options.c                                                                         |    9
+ b/main/core_unreal.c                                                                            |   12
+ b/main/dial.c                                                                                   |   14
+ b/main/dsp.c                                                                                    |  496
+ b/main/editline/Makefile.in                                                                     |    2
+ b/main/features.c                                                                               |   22
+ b/main/features_config.c                                                                        |    2
+ b/main/file.c                                                                                   |  137
+ b/main/format_cache.c                                                                           |   20
+ b/main/format_cap.c                                                                             |    6
+ b/main/frame.c                                                                                  |    5
+ b/main/hashtab.c                                                                                |   40
+ b/main/heap.c                                                                                   |   14
+ b/main/http.c                                                                                   |    4
+ b/main/io.c                                                                                     |   10
+ b/main/json.c                                                                                   |  146
+ b/main/loader.c                                                                                 |   14
+ b/main/lock.c                                                                                   |   52
+ b/main/logger.c                                                                                 |    7
+ b/main/manager.c                                                                                |  301
+ b/main/manager_bridges.c                                                                        |   98
+ b/main/manager_channels.c                                                                       |   91
+ b/main/message.c                                                                                |   16
+ b/main/named_locks.c                                                                            |    4
+ b/main/netsock.c                                                                                |    2
+ b/main/pbx.c                                                                                    |  378
+ b/main/pbx_functions.c                                                                          |   19
+ b/main/presencestate.c                                                                          |    3
+ b/main/rtp_engine.c                                                                             |  136
+ b/main/say.c                                                                                    |    4
+ b/main/sdp_srtp.c                                                                               |    2
+ b/main/sorcery.c                                                                                |  141
+ b/main/stasis.c                                                                                 |    1
+ b/main/stasis_bridges.c                                                                         |   35
+ b/main/stasis_endpoints.c                                                                       |   47
+ b/main/stasis_message.c                                                                         |   35
+ b/main/stasis_system.c                                                                          |    6
+ b/main/stringfields.c                                                                           |  508
+ b/main/strings.c                                                                                |  131
+ b/main/taskprocessor.c                                                                          |   37
+ b/main/tcptls.c                                                                                 |   67
+ b/main/threadpool.c                                                                             |   10
+ b/main/translate.c                                                                              |    2
+ b/main/utils.c                                                                                  |  634
+ b/makeopts.in                                                                                   |   16
+ b/menuselect/aclocal.m4                                                                         |  281
+ b/menuselect/configure                                                                          |  197
+ b/menuselect/configure.ac                                                                       |    9
+ b/menuselect/menuselect.c                                                                       |   24
+ b/menuselect/menuselect.h                                                                       |   17
+ b/menuselect/menuselect_curses.c                                                                |   61
+ b/menuselect/menuselect_gtk.c                                                                   |   11
+ b/menuselect/menuselect_newt.c                                                                  |    2
+ b/pbx/pbx_dundi.c                                                                               |    3
+ b/res/ael/pval.c                                                                                |   70
+ b/res/ari/ari_model_validators.c                                                                |  463
+ b/res/ari/ari_model_validators.h                                                                |   65
+ b/res/ari/ari_websockets.c                                                                      |    2
+ b/res/ari/resource_bridges.c                                                                    |   86
+ b/res/ari/resource_bridges.h                                                                    |   28
+ b/res/ari/resource_channels.c                                                                   |   56
+ b/res/ari/resource_channels.h                                                                   |    4
+ b/res/parking/parking_applications.c                                                            |   85
+ b/res/parking/parking_bridge.c                                                                  |   17
+ b/res/parking/parking_bridge_features.c                                                         |   21
+ b/res/parking/parking_manager.c                                                                 |    8
+ b/res/parking/res_parking.h                                                                     |    5
+ b/res/res.xml                                                                                   |   13
+ b/res/res_agi.c                                                                                 |  422
+ b/res/res_ari.c                                                                                 |   19
+ b/res/res_ari_applications.c                                                                    |    6
+ b/res/res_ari_asterisk.c                                                                        |   26
+ b/res/res_ari_bridges.c                                                                         |  162
+ b/res/res_ari_channels.c                                                                        |   50
+ b/res/res_ari_device_states.c                                                                   |    4
+ b/res/res_ari_endpoints.c                                                                       |   10
+ b/res/res_ari_events.c                                                                          |    6
+ b/res/res_ari_mailboxes.c                                                                       |    4
+ b/res/res_ari_playbacks.c                                                                       |    6
+ b/res/res_ari_recordings.c                                                                      |   18
+ b/res/res_ari_sounds.c                                                                          |    4
+ b/res/res_config_odbc.c                                                                         |  175
+ b/res/res_corosync.c                                                                            |  279
+ b/res/res_fax.c                                                                                 |  191
+ b/res/res_format_attr_g729.c                                                                    |   76
+ b/res/res_format_attr_opus.c                                                                    |  350
+ b/res/res_format_attr_silk.c                                                                    |   64
+ b/res/res_format_attr_siren14.c                                                                 |   94
+ b/res/res_format_attr_siren7.c                                                                  |   94
+ b/res/res_hep.c                                                                                 |   49
+ b/res/res_hep.exports.in                                                                        |    2
+ b/res/res_hep_pjsip.c                                                                           |   68
+ b/res/res_hep_rtcp.c                                                                            |   37
+ b/res/res_http_websocket.c                                                                      |   21
+ b/res/res_musiconhold.c                                                                         |   29
+ b/res/res_odbc.c                                                                                |   19
+ b/res/res_odbc_transaction.c                                                                    |    2
+ b/res/res_parking.c                                                                             |  100
+ b/res/res_phoneprov.c                                                                           |    5
+ b/res/res_pjproject.c                                                                           |    7
+ b/res/res_pjsip.c                                                                               |  501
+ b/res/res_pjsip/config_global.c                                                                 |  252
+ b/res/res_pjsip/config_transport.c                                                              |    7
+ b/res/res_pjsip/include/res_pjsip_private.h                                                     |   33
+ b/res/res_pjsip/location.c                                                                      |  192
+ b/res/res_pjsip/pjsip_cli.c                                                                     |    2
+ b/res/res_pjsip/pjsip_configuration.c                                                           |  643
+ b/res/res_pjsip/pjsip_distributor.c                                                             |  492
+ b/res/res_pjsip/pjsip_global_headers.c                                                          |    8
+ b/res/res_pjsip/pjsip_message_ip_updater.c                                                      |  303
+ b/res/res_pjsip/pjsip_options.c                                                                 |  445
+ b/res/res_pjsip/pjsip_scheduler.c                                                               |  495
+ b/res/res_pjsip_authenticator_digest.c                                                          |   23
+ b/res/res_pjsip_caller_id.c                                                                     |   34
+ b/res/res_pjsip_config_wizard.c                                                                 |    4
+ b/res/res_pjsip_dialog_info_body_generator.c                                                    |    3
+ b/res/res_pjsip_diversion.c                                                                     |   27
+ b/res/res_pjsip_dtmf_info.c                                                                     |    7
+ b/res/res_pjsip_empty_info.c                                                                    |   89
+ b/res/res_pjsip_endpoint_identifier_ip.c                                                        |    2
+ b/res/res_pjsip_endpoint_identifier_user.c                                                      |  121
+ b/res/res_pjsip_exten_state.c                                                                   |   18
+ b/res/res_pjsip_header_funcs.c                                                                  |    9
+ b/res/res_pjsip_messaging.c                                                                     |  151
+ b/res/res_pjsip_mwi.c                                                                           |  392
+ b/res/res_pjsip_mwi_body_generator.c                                                            |    5
+ b/res/res_pjsip_one_touch_record_info.c                                                         |    9
+ b/res/res_pjsip_outbound_authenticator_digest.c                                                 |   13
+ b/res/res_pjsip_outbound_publish.c                                                              |  346
+ b/res/res_pjsip_outbound_registration.c                                                         |   28
+ b/res/res_pjsip_path.c                                                                          |   22
+ b/res/res_pjsip_publish_asterisk.c                                                              |   15
+ b/res/res_pjsip_pubsub.c                                                                        |   98
+ b/res/res_pjsip_pubsub.exports.in                                                               |   40
+ b/res/res_pjsip_refer.c                                                                         |   17
+ b/res/res_pjsip_registrar.c                                                                     |  179
+ b/res/res_pjsip_registrar_expire.c                                                              |  322
+ b/res/res_pjsip_sdp_rtp.c                                                                       |   56
+ b/res/res_pjsip_session.c                                                                       |  342
+ b/res/res_pjsip_t38.c                                                                           |   27
+ b/res/res_pjsip_transport_management.c                                                          |  102
+ b/res/res_rtp_asterisk.c                                                                        |  229
+ b/res/res_sorcery_astdb.c                                                                       |  141
+ b/res/res_sorcery_config.c                                                                      |   53
+ b/res/res_sorcery_memory.c                                                                      |    8
+ b/res/res_sorcery_memory_cache.c                                                                |    3
+ b/res/res_sorcery_realtime.c                                                                    |  111
+ b/res/res_srtp.c                                                                                |    8
+ b/res/res_stasis.c                                                                              |   57
+ b/res/res_stasis_playback.c                                                                     |    2
+ b/res/res_stasis_recording.c                                                                    |   20
+ b/res/res_xmpp.c                                                                                |    8
+ b/res/stasis/app.c                                                                              |  107
+ b/res/stasis/app.h                                                                              |   26
+ b/res/stasis/cli.c                                                                              |  216
+ b/res/stasis/cli.h                                                                              |   43
+ b/res/stasis/control.c                                                                          |   36
+ b/res/stasis/control.h                                                                          |   10
+ b/res/stasis/stasis_bridge.c                                                                    |    7
+ b/res/stasis_recording/stored.c                                                                 |  217
+ b/rest-api-templates/api.wiki.mustache                                                          |    4
+ b/rest-api-templates/swagger_model.py                                                           |    4
+ b/rest-api/api-docs/applications.json                                                           |    2
+ b/rest-api/api-docs/asterisk.json                                                               |    2
+ b/rest-api/api-docs/bridges.json                                                                |   84
+ b/rest-api/api-docs/channels.json                                                               |   27
+ b/rest-api/api-docs/deviceStates.json                                                           |    2
+ b/rest-api/api-docs/endpoints.json                                                              |    2
+ b/rest-api/api-docs/events.json                                                                 |   22
+ b/rest-api/api-docs/mailboxes.json                                                              |    2
+ b/rest-api/api-docs/playbacks.json                                                              |    2
+ b/rest-api/api-docs/recordings.json                                                             |    2
+ b/rest-api/api-docs/sounds.json                                                                 |    2
+ b/rest-api/resources.json                                                                       |    2
+ b/tests/test_ari.c                                                                              |    8
+ b/tests/test_astobj2_thrash.c                                                                   |   11
+ b/tests/test_cel.c                                                                              |    2
+ b/tests/test_channel_feature_hooks.c                                                            |   15
+ b/tests/test_config.c                                                                           |  137
+ b/tests/test_file.c                                                                             |  197
+ b/tests/test_json.c                                                                             |   34
+ b/tests/test_message.c                                                                          |    8
+ b/tests/test_res_pjsip_scheduler.c                                                              |  401
+ b/tests/test_res_stasis.c                                                                       |    6
+ b/tests/test_sorcery_astdb.c                                                                    |    4
+ b/tests/test_sorcery_realtime.c                                                                 |  221
+ b/tests/test_stringfields.c                                                                     |  205
+ b/tests/test_strings.c                                                                          |   64
+ b/third-party/Makefile.rules                                                                    |   19
+ b/third-party/configure.m4                                                                      |    7
+ b/third-party/pjproject/.gitignore                                                              |    1
+ b/third-party/pjproject/Makefile                                                                |  180
+ b/third-party/pjproject/Makefile.rules                                                          |   38
+ b/third-party/pjproject/apply_patches                                                           |   10
+ b/third-party/pjproject/configure.m4                                                            |   89
+ b/third-party/pjproject/patches/0000-remove-third-party.patch                                   |  142
+ b/third-party/pjproject/patches/0001-r5397-pjsip_generic_array_max_count.patch                  |   58
+ b/third-party/pjproject/patches/0001-r5400-pjsip_tx_data_dec_ref.patch                          |   24
+ b/third-party/pjproject/patches/0002-Fix-1946-Avoid-deinitialization-of-uninitialized-cli.patch |   56
+ b/third-party/pjproject/patches/0002-r5435-add-pjsip_inv_session-ref_cnt.patch                  |  212
+ b/third-party/pjproject/patches/0003-r5403-pjsip_IPV6_V6ONLY.patch                              |   13
+ b/third-party/pjproject/patches/0004-resolver.c-Prevent-SERVFAIL-from-marking-name-server.patch |   48
+ b/third-party/pjproject/patches/0005-Re-1969-Fix-crash-on-using-an-already-destroyed-SSL-.patch |  164
+ b/third-party/pjproject/patches/0006-r5471-svn-backport-Various-fixes-for-DNS-IPv6.patch        |  134
+ b/third-party/pjproject/patches/0006-r5473-svn-backport-Fix-pending-query.patch                 |   28
+ b/third-party/pjproject/patches/0006-r5475-svn-backport-Remove-DNS-cache-entry.patch            |   70
+ b/third-party/pjproject/patches/0006-r5477-svn-backport-Fix-DNS-write-on-freed-memory.patch     |   33
+ b/third-party/pjproject/patches/asterisk_malloc_debug.c                                         |   72
+ b/third-party/pjproject/patches/asterisk_malloc_debug.h                                         |   78
+ b/third-party/pjproject/patches/config_site.h                                                   |   16
+ contrib/ast-db-manage/cdr/env.py                                                                |   74
+ contrib/ast-db-manage/config/env.py                                                             |   75
+ contrib/ast-db-manage/voicemail/env.py                                                          |   74
+ res/res_pjsip_multihomed.c                                                                      |  222
+ third-party/pjproject/patches/0001-evsub-Add-APIs-to-add-decrement-an-event-subscriptio.patch   |   73
+ third-party/pjproject/patches/0001-sip_transport_tcp-tls-Set-factory-on-transports-crea.patch   |   48
+ 454 files changed, 43085 insertions(+), 24871 deletions(-)