[-]
[+]
|
Changed |
asterisk.changes
|
|
[-]
[+]
|
Changed |
asterisk.spec
^
|
|
[-]
[+]
|
Deleted |
asterisk-1.8.22.0.tar.xz/asterisk-1.8.22.0-summary.html
^
|
@@ -1,314 +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">
-<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Release Summary - asterisk-1.8.22.0</title></head>
-<body>
-<h1 align="center"><a name="top">Release Summary</a></h1>
-<h3 align="center">asterisk-1.8.22.0</h3>
-<h3 align="center">Date: 2013-05-17</h3>
-<h3 align="center"><asteriskteam@digium.com></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="#issues">Closed 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><br/><p>This release includes only bug fixes. The changes included were made only to address problems that have been identified in this release series. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous release series 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-1.8.21.0.</p>
-<hr/>
-<a name="contributors"><h2 align="center">Contributors</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><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 closed by commits that went into this release.</p>
-<table width="100%" border="0">
-<tr>
-<td width="33%"><h3>Coders</h3></td>
-<td width="33%"><h3>Testers</h3></td>
-<td width="33%"><h3>Reporters</h3></td>
-</tr>
-<tr valign="top">
-<td>
-6 mjordan<br/>
-5 bebuild<br/>
-5 rmudgett<br/>
-5 wdoekes<br/>
-4 kmoore<br/>
-3 dlee<br/>
-2 elguero<br/>
-2 kharwell<br/>
-2 mmichelson<br/>
-2 tzafrir<br/>
-1 avalentin<br/>
-1 coriley<br/>
-1 Dmitriy Serov<br/>
-1 eelcob<br/>
-1 file<br/>
-1 ianc<br/>
-1 igorg<br/>
-1 kmoore, wdoekes<br/>
-1 nbansal<br/>
-1 Pavel Troller<br/>
-1 qwell<br/>
-1 russell<br/>
-1 seanbright<br/>
-1 serginuez<br/>
-</td>
-<td>
-2 kmoore<br/>
-1 andrea<br/>
-1 Daniel Bohling<br/>
-1 jbigelow<br/>
-1 Pavel Troller<br/>
-1 wdoekes<br/>
-</td>
-<td>
-2 mjordan<br/>
-2 wdoekes<br/>
-1 /dev/null<br/>
-1 aepshteyn<br/>
-1 avalentin<br/>
-1 coriley<br/>
-1 dbohling<br/>
-1 Demon<br/>
-1 eelcob<br/>
-1 ianc<br/>
-1 jbigelow<br/>
-1 johan<br/>
-1 mmichelson<br/>
-1 nbansal<br/>
-1 patrol-cz<br/>
-1 pgoergler<br/>
-1 rmudgett<br/>
-1 serginuez<br/>
-1 shmagin<br/>
-1 sickpig<br/>
-1 tomaso<br/>
-1 tsearle<br/>
-</td>
-</tr>
-</table>
-<hr/>
-<a name="issues"><h2 align="center">Closed Issues</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p>
-<h3>Category: Addons/res_config_mysql</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21035">ASTERISK-21035</a>: [patch] - features.conf in static realtime requires distinct cat_metric for each parking lot <br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382942">382942</a><br/>
-Reporter: aepshteyn<br/>
-Coders: elguero<br/>
-<br/>
-<h3>Category: Applications/app_db</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21070">ASTERISK-21070</a>: DBdeltree throws spurious error under almost all cases<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=381364">381364</a><br/>
-Reporter: ianc<br/>
-Coders: ianc<br/>
-<br/>
-<h3>Category: Applications/app_parkandannounce</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20113">ASTERISK-20113</a>: ParkAndAnnounce doesn't return to n+1 when no return_context defined<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=381916">381916</a><br/>
-Reporter: serginuez<br/>
-Coders: serginuez<br/>
-<br/>
-<h3>Category: Applications/app_playback</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20800">ASTERISK-20800</a>: 'module reload app_playback.so' won't load say.conf if it didn't exist during module's first load<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=381216">381216</a><br/>
-Reporter: pgoergler<br/>
-Coders: kharwell<br/>
-<br/>
-<h3>Category: Applications/app_queue</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19960">ASTERISK-19960</a>: Incorrect data in queue_log, event TRANSFER, field data1<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=381770">381770</a><br/>
-Reporter: shmagin<br/>
-Coders: kharwell<br/>
-<br/>
-<h3>Category: Channels/chan_dahdi</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21248">ASTERISK-21248</a>: CALLERID(dnid-num-plan) does not get any value set.<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383796">383796</a><br/>
-Reporter: rmudgett<br/>
-Coders: rmudgett<br/>
-<br/>
-<h3>Category: Channels/chan_iax2</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21128">ASTERISK-21128</a>: Locking inversion when attempting to set caller ID while holding iaxsl lock causes deadlock<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382233">382233</a><br/>
-Reporter: patrol-cz<br/>
-Testers: Pavel Troller<br/>
-Coders: mjordan, Pavel Troller<br/>
-<br/>
-<h3>Category: Channels/chan_jingle</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19341">ASTERISK-19341</a>: Missing initialization on bind_addr<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=381975">381975</a><br/>
-Reporter: avalentin<br/>
-Coders: avalentin<br/>
-<br/>
-<h3>Category: Channels/chan_sip/General</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20787">ASTERISK-20787</a>: Asterisk should inspect Min-SE header in an INVITE even if there is no Session-Expires present<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=380696">380696</a><br/>
-Reporter: mmichelson<br/>
-Coders: dlee<br/>
-<br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21013">ASTERISK-21013</a>: Security Vulnerability: sip username disclosure<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383981">383981</a><br/>
-Reporter: wdoekes<br/>
-Testers: wdoekes, kmoore<br/>
-Coders: kmoore, wdoekes<br/>
-<br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21201">ASTERISK-21201</a>: [patch] In Manager Interface, SIP registry event does not show username on Status: Registered<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382847">382847</a><br/>
-Reporter: Demon<br/>
-Coders: Dmitriy Serov<br/>
-<br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21232">ASTERISK-21232</a>: Asterisk sends AUDIO REINVITE when session timer expires in T38 call<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383124">383124</a><br/>
-Reporter: nbansal<br/>
-Coders: nbansal<br/>
-<br/>
-<h3>Category: Channels/chan_sip/Interoperability</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20638">ASTERISK-20638</a>: SIP dialog matching is incorrect when multiple provisional responses are received with pedantic SIP checking<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382171">382171</a><br/>
-Reporter: eelcob<br/>
-Coders: eelcob<br/>
-<br/>
-<h3>Category: Channels/chan_sip/SRTP</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21323">ASTERISK-21323</a>: Asterisk 11 svn branch and srtp - white noise only<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=384048">384048</a><br/>
-Reporter: sickpig<br/>
-Testers: kmoore, andrea, jbigelow<br/>
-Coders: kmoore<br/>
-<br/>
-<h3>Category: Channels/chan_unistim</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21119">ASTERISK-21119</a>: Asterisk system locks up with chan_unistim<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382409">382409</a><br/>
-Reporter: dbohling<br/>
-Testers: Daniel Bohling<br/>
-Coders: igorg<br/>
-<br/>
-<h3>Category: Contrib/General</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21173">ASTERISK-21173</a>: [patch] example sippeers sql hasn't been adapted for ipv6 and causes chan_sip to generate a warning message<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382939">382939</a><br/>
-Reporter: tsearle<br/>
-Coders: elguero<br/>
-<br/>
-<h3>Category: Core/BuildSystem</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20749">ASTERISK-20749</a>: Cannot enable res_timing_kqueue via "make menuselect"<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=381847">381847</a><br/>
-Reporter: /dev/null<br/>
-Coders: mjordan<br/>
-<br/>
-<h3>Category: Core/HTTP</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20967">ASTERISK-20967</a>: Security Vulnerability: DoS attack possible due to fix for CVE-2012-5976<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383976">383976</a><br/>
-Reporter: mjordan<br/>
-Coders: mmichelson<br/>
-<br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20967">ASTERISK-20967</a>: Security Vulnerability: DoS attack possible due to fix for CVE-2012-5976<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=384118">384118</a><br/>
-Reporter: mjordan<br/>
-Coders: wdoekes<br/>
-<br/>
-<h3>Category: Core/ManagerInterface</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20397">ASTERISK-20397</a>: "manager show user <user>" shows the "all" permission despite it not being set<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=381939">381939</a><br/>
-Reporter: johan<br/>
-Coders: mjordan<br/>
-<br/>
-<h3>Category: Functions/func_callerid</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21248">ASTERISK-21248</a>: CALLERID(dnid-num-plan) does not get any value set.<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383796">383796</a><br/>
-Reporter: rmudgett<br/>
-Coders: rmudgett<br/>
-<br/>
-<h3>Category: General</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19451">ASTERISK-19451</a>: va_start/va_copy and va_end do not always match up<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382021">382021</a><br/>
-Reporter: wdoekes<br/>
-Coders: wdoekes<br/>
-<br/>
-<h3>Category: PBX/pbx_spool</h3><br/>
-<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21176">ASTERISK-21176</a>: Call files on OS X, using KQueue, do not get processed (load 100%)<br/>
-Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383120">383120</a><br/>
-Reporter: coriley<br/>
-Coders: coriley<br/>
-<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><br/><p>This is a list of all changes that went into this release that did not directly close an issue from the issue tracker. The commits may have been marked as being related to an issue. If that is the case, the issue numbers are listed here, as well.</p>
-<table width="100%" border="1">
-<tr><td><b>Revision</b></td><td><b>Author</b></td><td><b>Summary</b></td><td><b>Issues Referenced</b></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=380572">380572</a></td><td>rmudgett</td><td>chan_dahdi: Fix "dahdi show channels group" for groups greater than 31.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=380611">380611</a></td><td>rmudgett</td><td>Make CHECK_BLOCKING() debug message more useful.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=380853">380853</a></td><td>rmudgett</td><td>Separate option_types[] from the struct definition.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=380973">380973</a></td><td>dlee</td><td>Fixed failing test from r380696.</td>
-<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20787">ASTERISK-20787</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=381281">381281</a></td><td>mmichelson</td><td>Do not allow native RTP bridging if packetization of media streams differs.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=381466">381466</a></td><td>rmudgett</td><td>End stuck DTMF if AST_SOFTHANGUP_ASYNCGOTO because it isn't a real hangup.</td>
-<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-20492">ASTERISK-20492</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=381668">381668</a></td><td>wdoekes</td><td>Remove "registertrying" and add "rtp_engine" from/to sip.conf.sample</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382087">382087</a></td><td>tzafrir</td><td>Remove unneeded linux-gnueabi*</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382107">382107</a></td><td>wdoekes</td><td>Correct RPID parsing for unquoted display-name.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382110">382110</a></td><td>tzafrir</td><td>Consider linux-gnuspe as linux-gnu</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382153">382153</a></td><td>file</td><td>Fix the configure script over here as well.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=382513">382513</a></td><td>kmoore</td><td>Correct app_page documentation</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383061">383061</a></td><td>qwell</td><td>Fix whitespace in AST_EXT_LIB_CHECK macro.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383340">383340</a></td><td>dlee</td><td>Removed codecs/g722/*.i on make clean</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383460">383460</a></td><td>wdoekes</td><td>Have func_curl log a warning when a curl request fails.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383667">383667</a></td><td>seanbright</td><td>Properly delimit post data in res_config_curl.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383835">383835</a></td><td>russell</td><td>Fix multi-station answer race condition.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383839">383839</a></td><td>mjordan</td><td>Resolve deadlock between pending CDR and batch CDR locks</td>
-<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-21162">ASTERISK-21162</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=383863">383863</a></td><td>mjordan</td><td>Resolve deadlock between SIP registration and channel based functions</td>
-<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-21068">ASTERISK-21068</a>, <a href="https://issues.asterisk.org/jira/browse/ASTERISK-20550">ASTERISK-20550</a>, <a href="https://issues.asterisk.org/jira/browse/ASTERISK-21314">ASTERISK-21314</a>, <a href="https://issues.asterisk.org/jira/browse/ASTERISK-21296">ASTERISK-21296</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=384162">384162</a></td><td>kmoore</td><td>Address uninitialized conditional that valgrind found</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388166">388166</a></td><td>bebuild</td><td>Create 1.8.22.0-rc2</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388169">388169</a></td><td>bebuild</td><td>Remove old summaries, update version</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388176">388176</a></td><td>bebuild</td><td>Importing release summary for 1.8.22.0-rc2 release.</td>
-<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388195">388195</a></td><td>bebuild</td><td>Merge blockers for 1.8.22.0-rc2</td>
-<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-21356">ASTERISK-21356</a>, <a href="https://issues.asterisk.org/jira/browse/ASTERISK-21389">ASTERISK-21389</a>, <a href="https://issues.asterisk.org/jira/browse/ASTERISK-21394">ASTERISK-21394</a>, <a href="https://issues.asterisk.org/jira/browse/ASTERISK-21429">ASTERISK-21429</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388197">388197</a></td><td>bebuild</td><td>Importing release summary for 1.8.22.0-rc2 release.</td>
-<td></td></tr></table>
-<hr/>
-<a name="diffstat"><h2 align="center">Diffstat Results</h2></a>
-<center><a href="#top">[Back to Top]</a></center><br/><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>
-.version | 2
-UPGRADE.txt | 11
-addons/res_config_mysql.c | 29 --
-apps/app_db.c | 8
-apps/app_meetme.c | 23 +
-apps/app_page.c | 4
-apps/app_parkandannounce.c | 2
-apps/app_playback.c | 2
-asterisk-1.8.22.0-rc1-summary.html | 299 ------------------------
-asterisk-1.8.22.0-rc1-summary.txt | 385 -------------------------------
-asterisk-1.8.22.0-rc2-summary.html | 65 +++++
-asterisk-1.8.22.0-rc2-summary.txt | 101 ++++++++
-autoconf/ast_ext_lib.m4 | 4
-channels/chan_dahdi.c | 7
-channels/chan_iax2.c | 4
-channels/chan_jingle.c | 1
-channels/chan_sip.c | 211 +++++++++++-----
-channels/chan_unistim.c | 1
-channels/sig_pri.c | 8
-channels/sip/include/sip.h | 1
-codecs/Makefile | 2
-configs/sip.conf.sample | 3
-configure.ac | 6
-contrib/realtime/mysql/sippeers.sql | 14 -
-contrib/realtime/postgresql/realtime.sql | 2
-funcs/func_curl.c | 15 +
-include/asterisk/autoconfig.h.in | 5
-include/asterisk/channel.h | 4
-main/Makefile | 2
-main/cdr.c | 24 +
-main/channel.c | 15 +
-main/devicestate.c | 13 -
-main/dial.c | 13 -
-main/features.c | 36 +-
-main/http.c | 32 ++
-main/manager.c | 39 ++-
-main/rtp_engine.c | 13 +
-main/tcptls.c | 5
-pbx/pbx_spool.c | 19 +
-res/res_config_curl.c | 7
-res/res_jabber.c | 5
-res/res_rtp_asterisk.c | 2
-res/res_timing_pthread.c | 121 ++++-----
-43 files changed, 658 insertions(+), 907 deletions(-)
-</pre><br/>
-<hr/>
-</body>
-</html>
|
[-]
[+]
|
Deleted |
asterisk-1.8.22.0.tar.xz/asterisk-1.8.22.0-summary.txt
^
|
@@ -1,411 +0,0 @@
- Release Summary
-
- asterisk-1.8.22.0
-
- Date: 2013-05-17
-
- <asteriskteam@digium.com>
-
- ----------------------------------------------------------------------
-
- Table of Contents
-
- 1. Summary
- 2. Contributors
- 3. Closed Issues
- 4. Other Changes
- 5. Diffstat
-
- ----------------------------------------------------------------------
-
- Summary
-
- [Back to Top]
-
- This release includes only bug fixes. The changes included were made only
- to address problems that have been identified in this release series.
- Users should be able to safely upgrade to this version if this release
- series is already in use. Users considering upgrading from a previous
- release series 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-1.8.21.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 closed by commits that went into this
- release.
-
- Coders Testers Reporters
- 6 mjordan 2 kmoore 2 mjordan
- 5 bebuild 1 andrea 2 wdoekes
- 5 rmudgett 1 Daniel Bohling 1 /dev/null
- 5 wdoekes 1 jbigelow 1 aepshteyn
- 4 kmoore 1 Pavel Troller 1 avalentin
- 3 dlee 1 wdoekes 1 coriley
- 2 elguero 1 dbohling
- 2 kharwell 1 Demon
- 2 mmichelson 1 eelcob
- 2 tzafrir 1 ianc
- 1 avalentin 1 jbigelow
- 1 coriley 1 johan
- 1 Dmitriy Serov 1 mmichelson
- 1 eelcob 1 nbansal
- 1 file 1 patrol-cz
- 1 ianc 1 pgoergler
- 1 igorg 1 rmudgett
- 1 kmoore, wdoekes 1 serginuez
- 1 nbansal 1 shmagin
- 1 Pavel Troller 1 sickpig
- 1 qwell 1 tomaso
- 1 russell 1 tsearle
- 1 seanbright
- 1 serginuez
-
- ----------------------------------------------------------------------
-
- 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.
-
- Category: Addons/res_config_mysql
-
- ASTERISK-21035: [patch] - features.conf in static realtime requires
- distinct cat_metric for each parking lot
- Revision: 382942
- Reporter: aepshteyn
- Coders: elguero
-
- Category: Applications/app_db
-
- ASTERISK-21070: DBdeltree throws spurious error under almost all cases
- Revision: 381364
- Reporter: ianc
- Coders: ianc
-
- Category: Applications/app_parkandannounce
-
- ASTERISK-20113: ParkAndAnnounce doesn't return to n+1 when no
- return_context defined
- Revision: 381916
- Reporter: serginuez
- Coders: serginuez
-
- Category: Applications/app_playback
-
- ASTERISK-20800: 'module reload app_playback.so' won't load say.conf if it
- didn't exist during module's first load
- Revision: 381216
- Reporter: pgoergler
- Coders: kharwell
-
- Category: Applications/app_queue
-
- ASTERISK-19960: Incorrect data in queue_log, event TRANSFER, field data1
- Revision: 381770
- Reporter: shmagin
- Coders: kharwell
-
- Category: Channels/chan_dahdi
-
- ASTERISK-21248: CALLERID(dnid-num-plan) does not get any value set.
- Revision: 383796
- Reporter: rmudgett
- Coders: rmudgett
-
- Category: Channels/chan_iax2
-
- ASTERISK-21128: Locking inversion when attempting to set caller ID while
- holding iaxsl lock causes deadlock
- Revision: 382233
- Reporter: patrol-cz
- Testers: Pavel Troller
- Coders: mjordan, Pavel Troller
-
- Category: Channels/chan_jingle
-
- ASTERISK-19341: Missing initialization on bind_addr
- Revision: 381975
- Reporter: avalentin
- Coders: avalentin
-
- Category: Channels/chan_sip/General
-
- ASTERISK-20787: Asterisk should inspect Min-SE header in an INVITE even if
- there is no Session-Expires present
- Revision: 380696
- Reporter: mmichelson
- Coders: dlee
-
- ASTERISK-21013: Security Vulnerability: sip username disclosure
- Revision: 383981
- Reporter: wdoekes
- Testers: wdoekes, kmoore
- Coders: kmoore, wdoekes
-
- ASTERISK-21201: [patch] In Manager Interface, SIP registry event does not
- show username on Status: Registered
- Revision: 382847
- Reporter: Demon
- Coders: Dmitriy Serov
-
- ASTERISK-21232: Asterisk sends AUDIO REINVITE when session timer expires
- in T38 call
- Revision: 383124
- Reporter: nbansal
- Coders: nbansal
-
- Category: Channels/chan_sip/Interoperability
-
- ASTERISK-20638: SIP dialog matching is incorrect when multiple provisional
- responses are received with pedantic SIP checking
- Revision: 382171
- Reporter: eelcob
- Coders: eelcob
-
- Category: Channels/chan_sip/SRTP
-
- ASTERISK-21323: Asterisk 11 svn branch and srtp - white noise only
- Revision: 384048
- Reporter: sickpig
- Testers: kmoore, andrea, jbigelow
- Coders: kmoore
-
- Category: Channels/chan_unistim
-
- ASTERISK-21119: Asterisk system locks up with chan_unistim
- Revision: 382409
- Reporter: dbohling
- Testers: Daniel Bohling
- Coders: igorg
-
- Category: Contrib/General
-
- ASTERISK-21173: [patch] example sippeers sql hasn't been adapted for ipv6
- and causes chan_sip to generate a warning message
- Revision: 382939
- Reporter: tsearle
- Coders: elguero
-
- Category: Core/BuildSystem
-
- ASTERISK-20749: Cannot enable res_timing_kqueue via "make menuselect"
- Revision: 381847
- Reporter: /dev/null
- Coders: mjordan
-
- Category: Core/HTTP
-
- ASTERISK-20967: Security Vulnerability: DoS attack possible due to fix for
- CVE-2012-5976
- Revision: 383976
- Reporter: mjordan
- Coders: mmichelson
-
- ASTERISK-20967: Security Vulnerability: DoS attack possible due to fix for
- CVE-2012-5976
- Revision: 384118
- Reporter: mjordan
- Coders: wdoekes
-
- Category: Core/ManagerInterface
-
- ASTERISK-20397: "manager show user " shows the "all" permission despite it
- not being set
- Revision: 381939
- Reporter: johan
- Coders: mjordan
-
- Category: Functions/func_callerid
-
- ASTERISK-21248: CALLERID(dnid-num-plan) does not get any value set.
- Revision: 383796
- Reporter: rmudgett
- Coders: rmudgett
-
- Category: General
-
- ASTERISK-19451: va_start/va_copy and va_end do not always match up
- Revision: 382021
- Reporter: wdoekes
- Coders: wdoekes
-
- Category: PBX/pbx_spool
-
- ASTERISK-21176: Call files on OS X, using KQueue, do not get processed
- (load 100%)
- Revision: 383120
- Reporter: coriley
- Coders: coriley
-
- ----------------------------------------------------------------------
-
- Commits Not Associated with an Issue
-
- [Back to Top]
-
- This is a list of all changes that went into this release that did not
- directly close an issue from the issue tracker. The commits may have been
- marked as being related to an issue. If that is the case, the issue
- numbers are listed here, as well.
-
- +------------------------------------------------------------------------+
- | Revision | Author | Summary | Issues |
- | | | | Referenced |
- |----------+------------+------------------------------+-----------------|
- | | | chan_dahdi: Fix "dahdi show | |
- | 380572 | rmudgett | channels group" for groups | |
- | | | greater than 31. | |
- |----------+------------+------------------------------+-----------------|
- | 380611 | rmudgett | Make CHECK_BLOCKING() debug | |
- | | | message more useful. | |
- |----------+------------+------------------------------+-----------------|
- | 380853 | rmudgett | Separate option_types[] from | |
- | | | the struct definition. | |
- |----------+------------+------------------------------+-----------------|
- | 380973 | dlee | Fixed failing test from | ASTERISK-20787 |
- | | | r380696. | |
- |----------+------------+------------------------------+-----------------|
- | | | Do not allow native RTP | |
- | 381281 | mmichelson | bridging if packetization of | |
- | | | media streams differs. | |
- |----------+------------+------------------------------+-----------------|
- | | | End stuck DTMF if | |
- | 381466 | rmudgett | AST_SOFTHANGUP_ASYNCGOTO | ASTERISK-20492 |
- | | | because it isn't a real | |
- | | | hangup. | |
- |----------+------------+------------------------------+-----------------|
- | | | Remove "registertrying" and | |
- | 381668 | wdoekes | add "rtp_engine" from/to | |
- | | | sip.conf.sample | |
- |----------+------------+------------------------------+-----------------|
- | 382087 | tzafrir | Remove unneeded | |
- | | | linux-gnueabi* | |
- |----------+------------+------------------------------+-----------------|
- | 382107 | wdoekes | Correct RPID parsing for | |
- | | | unquoted display-name. | |
- |----------+------------+------------------------------+-----------------|
- | 382110 | tzafrir | Consider linux-gnuspe as | |
- | | | linux-gnu | |
- |----------+------------+------------------------------+-----------------|
- | 382153 | file | Fix the configure script | |
- | | | over here as well. | |
- |----------+------------+------------------------------+-----------------|
- | 382513 | kmoore | Correct app_page | |
- | | | documentation | |
- |----------+------------+------------------------------+-----------------|
- | 383061 | qwell | Fix whitespace in | |
- | | | AST_EXT_LIB_CHECK macro. | |
- |----------+------------+------------------------------+-----------------|
- | 383340 | dlee | Removed codecs/g722/*.i on | |
- | | | make clean | |
- |----------+------------+------------------------------+-----------------|
- | 383460 | wdoekes | Have func_curl log a warning | |
- | | | when a curl request fails. | |
- |----------+------------+------------------------------+-----------------|
- | 383667 | seanbright | Properly delimit post data | |
- | | | in res_config_curl. | |
- |----------+------------+------------------------------+-----------------|
- | 383835 | russell | Fix multi-station answer | |
- | | | race condition. | |
- |----------+------------+------------------------------+-----------------|
- | | | Resolve deadlock between | |
- | 383839 | mjordan | pending CDR and batch CDR | ASTERISK-21162 |
- | | | locks | |
- |----------+------------+------------------------------+-----------------|
- | | | Resolve deadlock between SIP | ASTERISK-21068, |
- | 383863 | mjordan | registration and channel | ASTERISK-20550, |
- | | | based functions | ASTERISK-21314, |
- | | | | ASTERISK-21296 |
- |----------+------------+------------------------------+-----------------|
- | | | Address uninitialized | |
- | 384162 | kmoore | conditional that valgrind | |
- | | | found | |
- |----------+------------+------------------------------+-----------------|
- | 388166 | bebuild | Create 1.8.22.0-rc2 | |
- |----------+------------+------------------------------+-----------------|
- | 388169 | bebuild | Remove old summaries, update | |
- | | | version | |
- |----------+------------+------------------------------+-----------------|
- | 388176 | bebuild | Importing release summary | |
- | | | for 1.8.22.0-rc2 release. | |
- |----------+------------+------------------------------+-----------------|
- | | | | ASTERISK-21356, |
- | 388195 | bebuild | Merge blockers for | ASTERISK-21389, |
- | | | 1.8.22.0-rc2 | ASTERISK-21394, |
- | | | | ASTERISK-21429 |
- |----------+------------+------------------------------+-----------------|
- | 388197 | bebuild | Importing release summary | |
- | | | for 1.8.22.0-rc2 release. | |
- +------------------------------------------------------------------------+
-
- ----------------------------------------------------------------------
-
- 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.
-
- .version | 2
- UPGRADE.txt | 11
- addons/res_config_mysql.c | 29 --
- apps/app_db.c | 8
- apps/app_meetme.c | 23 +
- apps/app_page.c | 4
- apps/app_parkandannounce.c | 2
- apps/app_playback.c | 2
- asterisk-1.8.22.0-rc1-summary.html | 299 ------------------------
- asterisk-1.8.22.0-rc1-summary.txt | 385 -------------------------------
- asterisk-1.8.22.0-rc2-summary.html | 65 +++++
- asterisk-1.8.22.0-rc2-summary.txt | 101 ++++++++
- autoconf/ast_ext_lib.m4 | 4
- channels/chan_dahdi.c | 7
- channels/chan_iax2.c | 4
- channels/chan_jingle.c | 1
- channels/chan_sip.c | 211 +++++++++++-----
- channels/chan_unistim.c | 1
- channels/sig_pri.c | 8
- channels/sip/include/sip.h | 1
- codecs/Makefile | 2
- configs/sip.conf.sample | 3
- configure.ac | 6
- contrib/realtime/mysql/sippeers.sql | 14 -
- contrib/realtime/postgresql/realtime.sql | 2
- funcs/func_curl.c | 15 +
- include/asterisk/autoconfig.h.in | 5
- include/asterisk/channel.h | 4
- main/Makefile | 2
- main/cdr.c | 24 +
- main/channel.c | 15 +
- main/devicestate.c | 13 -
- main/dial.c | 13 -
- main/features.c | 36 +-
- main/http.c | 32 ++
- main/manager.c | 39 ++-
- main/rtp_engine.c | 13 +
- main/tcptls.c | 5
- pbx/pbx_spool.c | 19 +
- res/res_config_curl.c | 7
- res/res_jabber.c | 5
- res/res_rtp_asterisk.c | 2
- res/res_timing_pthread.c | 121 ++++-----
- 43 files changed, 658 insertions(+), 907 deletions(-)
-
- ----------------------------------------------------------------------
|
|
Deleted |
asterisk-1.8.22.0.tar.xz/sounds/asterisk-core-sounds-en-gsm-1.4.23.tar.gz
^
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/.version
^
|
@@ -1 +1 @@
-1.8.22.0
+1.8.23.0
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/CHANGES
^
|
@@ -9,6 +9,15 @@
======================================================================
------------------------------------------------------------------------------
+--- Functionality changes since Asterisk 1.8.19.1 ----------------------------
+------------------------------------------------------------------------------
+
+App_queue
+---------
+ * App_queue will now play periodic announcements for the caller that
+ holds the first position in the queue while waiting for answer.
+
+------------------------------------------------------------------------------
--- Functionality changes since Asterisk 1.8.12.0 ----------------------------
------------------------------------------------------------------------------
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/ChangeLog
^
|
@@ -1,3 +1,702 @@
+2013-07-15 Asterisk Development Team <asteriskteam@digium.com>
+
+ * Asterisk 1.8.23.0 Released.
+
+2013-07-12 Asterisk Development Team <asteriskteam@digium.com>
+
+ * Asterisk 1.8.23.0-rc2 Released.
+
+ * Properly lock and safely handle a transfer failure in IAX2
+
+ When touching the bridgecallno, we need to lock it - otherwise a
+ race condition can occur. This patch does the proper locking
+ of the bridgecallno before modifying its state.
+
+2013-06-10 Asterisk Development Team <asteriskteam@digium.com>
+
+ * Asterisk 1.8.23.0-rc1 Released.
+
+2013-06-10 14:15 +0000 [r391215] Matthew Jordan <mjordan@digium.com>
+
+ * UPGRADE.txt, apps/app_queue.c, configs/queues.conf.sample: Add
+ announce-to-first-user option for app_queue In r386792, the
+ ability to play prompts to the first caller in a call queue was
+ added. While this is arguably a bug fix for those who expect the
+ first caller to continue receiving prompts while the agent is
+ dialed, it has the side effect of preventing the first caller
+ from hearing the agent immediately upon bridging. This may not be
+ a problem for those who really want this option, but for those
+ who didn't care whether or not the first caller in queue heard
+ their position, it was an issue. This patch disables the ability
+ for the first caller in the queue to hear prompts and adds a new
+ option, announce-to-first-user, to queues.conf. Those who the
+ behavior can enable it by setting this value to True. Note that
+ if we ever implement the ability to have the prompts be stopped
+ upon bridging, this option can be removed. (closes issue
+ ASTERISK-21782) Reported by: Remi Quezada
+
+2013-06-10 09:30 +0000 [r391062-391143] Alec L Davis <sivad.a@paradise.net.nz>
+
+ * channels/chan_iax2.c: chan_iax2: nativebridge refactor, missed
+ unlock bridgecallno
+
+ * channels/chan_iax2.c: fix bad edit after conflict resolution
+
+ * channels/chan_iax2.c: IAX2: refactor nativebridge transfer remove
+ triple checking of iaxs[fr->callno]->transferring reduce
+ indentation. Reported by: alecdavis Tested by: alecdavis
+ alecdavis (license 585) Review
+ https://reviewboard.asterisk.org/r/2602/
+
+ * channels/chan_iax2.c: IAX2: fix race condition with nativebridge
+ transfers. 1). When touching the bridgecallno, we need to lock
+ it. 2). stop_stuff() which calls iax2_destroy_helper() Assumes
+ the lock on the pvt is already held, when iax2_destroy_helper()
+ is called. Thus we need to lock the bridgecallno pvt before we
+ call stop_stuff(iaxs[fr->callno]->bridgecallno); 3). When
+ evaluating the state of 'callno->transferring' of the current
+ leg, we can't change it to READY unless the bridgecallno is
+ locked. Why, if we are interrupted by the other call leg before
+ 'transferring = TRANSFER_RELEASED', the interrupt will find that
+ it is READY and that the bridgecallno is also READY so Releases
+ the legs. (closes issue ASTERISK-21409) Reported by: alecdavis
+ Tested by: alecdavis alecdavis (license 585) Review
+ https://reviewboard.asterisk.org/r/2594/
+
+2013-05-31 08:10 +0000 [r390181] Alexandr Anikin <may@telecom-service.ru>
+
+ * addons/chan_ooh323.c: reject call attempts when gatekeeper is
+ configured but not registered (closes issue ASTERISK-21800)
+ Reported by: Dmitry Melekhov Patches: ASTERISK-21800-1.patch
+ Tested by: Dmitry Melekhov
+
+2013-05-29 20:10 +0000 [r390044] Richard Mudgett <rmudgett@digium.com>
+
+ * main/channel.c: Fix segfault when dealing with chan_agent
+ channels. Check the returned bridged pointer for NULL to avoid a
+ crash. It looks like chan_agent is returning a NULL pointer when
+ it probably should be returning a pointer to the channel the
+ Agent channel is pretending to be. (closes issue ASTERISK-21793)
+ Reported by: Rodrigo P. Telles Patches:
+ jira_asterisk_21793_v1.8.patch (license #5621) patch uploaded by
+ rmudgett Tested by: Rodrigo P. Telles
+
+2013-05-28 17:35 +0000 [r389895] Jonathan Rose <jrose@digium.com>
+
+ * main/slinfactory.c: Fix a memory copying bug in slinfactory which
+ was causing mixmonitor issues. Reported by: Michael Walton Tested
+ by: Jonathan Rose Patches: slinfactory.c.ASTERISK-21799.patch
+ uploaded by Michael Walton (license 6502) (closes issue
+ ASTERISK-21799)
+
+2013-05-24 11:42 +0000 [r389676] Matthew Jordan <mjordan@digium.com>
+
+ * main/logger.c: Print all logger messages on shutdown When
+ Asterisk shuts down and shuts down the loggin gsubsystem, any
+ messages currently in flight will not get logged. This patch
+ prevents the loop writing messages from breaking out prematurely,
+ such that all of the messages are logged. (closes issue
+ ASTERISK-21716) Reported by: Corey Farrell patches:
+ logger-process-all-messages.patch uploaded by Corey Farrell
+ (license 5909)
+
+2013-05-20 17:43 +0000 [r389244] Jason Parker <jparker@digium.com>
+
+ * /: Add doxygen.log to svn:ignore property.
+
+2013-05-15 15:54 +0000 [r388838] kharwell <kharwell@localhost>:
+
+ * main/lock.c: Fix for segfault in __ast_rwlock_destroy with
+ DEBUG_THREADS If DEBUG_THREADS is enabled __ast_rwlock_destroy
+ causes a segfault while trying to access a possible NULL t->track
+ object. A NULL check has been added before trying to access the
+ memory. (closes issue ASTERISK-21724) Reported by: Corey Farrell
+ Fixed by: Corey Farrell Patches: ast_rwlock_destroy-segv.patch
+ uploaded by Corey Farrell (license 5909)
+
+2013-05-15 12:37 +0000 [r388768] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_srtp.c, configure, include/asterisk/autoconfig.h.in,
+ configure.ac: Use srtp_shutdown when available This allows the
+ SRTP library to be shut down properly when the functionality is
+ offered by libsrtp. Review:
+ https://reviewboard.asterisk.org/r/2538/ (closes issue
+ ASTERISK-21719)
+
+2013-05-13 20:34 +0000 [r388596] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_srtp.c: Revert r388529 for now Adding the cleanup
+ function needs some deeper thought since it apparently doesn't
+ exist for all variants of libsrtp.
+
+2013-05-13 18:16 +0000 [r388532] Jonathan Rose <jrose@digium.com>
+
+ * main/pbx.c: pbx: Fix lack of cleanup on macrolock and
+ context_table (closes issue ASTERISK-21723) Reported by: Corey
+ Farrell Patches: core-pbx-cleanup.patch uploaded by Correy
+ Farrell (license 5909)
+
+2013-05-13 18:05 +0000 [r388529] Kinsey Moore <kmoore@digium.com>
+
+ * res/res_srtp.c: Close libsrtp properly Ensure that libsrtp is
+ shutdown properly when res_srtp is unloaded. (closes issue
+ ASTERISK-21719) Reported by: Corey Farrell Patches:
+ res_srtp-library-shutdown.patch uploaded by Corey Farrell
+
+2013-05-13 14:24 +0000 [r388477] Richard Mudgett <rmudgett@digium.com>
+
+ * main/manager.c: Fix SendText AMI action to never return non-zero.
+ AMI actions must never return non-zero unless they intend to
+ close the AMI connection. (Which is almost never.) (closes issue
+ ASTERISK-21779) Reported by: Paul Goldbaum
+
+2013-05-10 22:09 +0000 [r388423-388425] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/misdn/isdn_msg_parser.c: Allow mISDN to send PROGRESS
+ messsage. * Made isdn_msg_parser.c build a progress message with
+ the mandatory progress indicator IE. (The mISDNuser NT state
+ machine rejected sending the incomplete message.) Note: The
+ associated mISDN and mISDNuser patches respectively are viewable
+ here: http://svnview.digium.com/svn/thirdparty?view=rev&rev=200
+ http://svnview.digium.com/svn/thirdparty?view=rev&rev=201 (closes
+ issue AST-1153) Reported by: Guenther Kelleter Patches:
+ progress-chan_misdn.diff (license #6372) patch uploaded by
+ Guenther Kelleter progress-misdn.diff (license #6372) mISDN patch
+ uploaded by Guenther Kelleter progress-misdnuser.diff (license
+ #6372) mISDNuser patch uploaded by Guenther Kelleter
+
+ * utils: Add version.c to list of ignored files in the utils
+ directory.
+
+2013-05-10 20:28 +0000 [r388376] Mark Michelson <mmichelson@digium.com>
+
+ * pbx/pbx_dundi.c: Fix memory leak in pbx_dundi pbx_dundi added an
+ io context without removing it. This caused a memory leak when
+ the module was unloaded. (closes ASTERISK-21718) Reported by
+ Corey Farrell Patches: pbx_dundi-ast_io_remove.patch uploaded by
+ Corey Farrell (License #5909)
+
+2013-05-09 03:58 +0000 [r388111] Michael L. Young <elgueromexicano@gmail.com>
+
+ * res/res_rtp_asterisk.c: Fix The Payload Being Set On CN Packets
+ And Do Not Set Marker Bit When we send out a CN packet (for
+ instance, in the case of using rtpkeepalives), we are not setting
+ the payload code properly. Also, we are setting the marker bit
+ when we shouldn't be according to RFC 3389, section 4. AST_RTP_CN
+ is not defined by AST_FORMAT codes. Therefore, we should be using
+ ast_rtp_codecs_payload_code() rather than
+ ast_rtp_codecs_payload_lookup(). 11 and trunk already use the
+ appropriate function. * In 1.8, use ast_rtp_codecs_payload_code()
+ * Remove the setting of the marker bit * Fix the debug message by
+ incrementing the seqno after the debug message is set in order to
+ display the correct seqno that was sent out (closes issue
+ ASTERISK-21246) Reported by: Peter Katzmann Tested by: Peter
+ Katzmann, Michael L. Young Patches:
+ asterisk-21246-rtp-cng-payload-error_1.8_v2.diff uploaded by
+ Michael L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/2500/
+
+2013-05-08 07:17 +0000 [r387875] Alec L Davis <sivad.a@paradise.net.nz>
+
+ * channels/chan_sip.c: chan_sip: NOTIFYs for BLF start queuing up
+ and fail to be sent out after retries fail RFC6665 4.2.2: ...
+ after a failed State NOTIFY transaction remove the subscription
+ The problem is that the State Notify requests rely on the 200OK
+ reponse for pacing control and to not confuse the notify
+ susbsystem. The issue is, the pendinginvite isn't cleared if a
+ response isn't received, thus further notify's are never sent.
+ The solution, follow RFC 6665 4.2.2's 'SHOULD' and remove the
+ subscription after failure. (closes issue ASTERISK-21677)
+ Reported by: Dan Martens Tested by: Dan Martens, David Brillert,
+ alecdavis alecdavis (license 585) Review
+ https://reviewboard.asterisk.org/r/2475/
+
+2013-05-06 15:52 +0000 [r387688] Russell Bryant <russell@russellbryant.com>
+
+ * apps/app_meetme.c: Make SLA reload more paranoid. Reload support
+ was originally not included for SLA. It was added later, but in a
+ fairly non-traditional way. It basically sets a flag indicating
+ that a reload is pending, and then waits for a time where it
+ thinks everything SLA related is idle and unused, and *then*
+ executes the reload. It does this because the reload process is
+ destructive. It starts by throwing everything away and starting
+ over. There are a number of problems with this approach. One of
+ them is that the check to see if anything in use was incomplete.
+ This patch makes it more complete and thus less likely for a
+ crash to occur during reload processing. However, this approach
+ still has problems so some much more significant reworking of
+ this code will need to come in as a next step. Patch credit and
+ testing by CoreDial, LLC.
+
+2013-05-02 17:11 +0000 [r387421] Matthew Jordan <mjordan@digium.com>
+
+ * utils/Makefile: Update utils Makefile to handle r387294 Alec's
+ patch that added the Asterisk version to 'core show locks'
+ angered the items in utils, as they exist somewhat outside of the
+ Asterisk build system. Some day, this Makefile should get nuked
+ from high orbit, but for now, include version.c in its list of
+ stuff to pile in.
+
+2013-05-02 07:53 +0000 [r387294-387344] Alec L Davis <sivad.a@paradise.net.nz>
+
+ * channels/sip/include/sip.h, channels/chan_sip.c: chan_sip:
+ Session-Expires: Set timer to correctly expire at (~2/3) of the
+ interval when not the refresher RFC 4028 Section 10 if the side
+ not performing refreshes does not receive a session refresh
+ request before the session expiration, it SHOULD send a BYE to
+ terminate the session, slightly before the session expiration.
+ The minimum of 32 seconds and one third of the session interval
+ is RECOMMENDED. Prior to this asterisk would refresh at 1/2 the
+ Session-Expires interval, or if the remote device was the
+ refresher, asterisk would timeout at interval end. Now, when not
+ refresher, timeout as per RFC noted above. (closes issue
+ ASTERISK-21742) Reported by: alecdavis Tested by: alecdavis
+ alecdavis (license 585) Review
+ https://reviewboard.asterisk.org/r/2488/
+
+ * channels/chan_sip.c: chan_sip: Honor Session-Expires in 200OK
+ response when it's a RE-INVITE when asterisk is the refresher.
+ RFC 4028 Section 7.2 "UACs MUST be prepared to receive a
+ Session-Expires header field in a response, even if none were
+ present in the request." What changed After ASTERISK-20787,
+ inbound calls to asterisk with no Session-Expires in the INVITE
+ are now are offered a Session-Expires (1800 asterisk default) in
+ the response, with asterisk as the refresher. Symptom: After 900
+ seconds (asterisk default refresher period 1800), asterisk
+ RE-INVITEs the device, the device may respond with a much lower
+ Session-Expires (180 in our case) value that it is now using.
+ Asterisk ignores this response, as it's deemed both an INBOUND
+ CALL, and a RE-INVITE. After 180 seconds the device times out and
+ sends BYE (hangs up), asterisk is still working with the
+ refresher period of 1800 as it ignored the 'Session Expires: 180'
+ in the previous 200OK response. Fix: handle_response_invite()
+ when 200OK, remove check for outbound and reinvite. (closes issue
+ ASTERISK-21664) Reported by: alecdavis Tested by: alecdavis
+ alecdavis (license 585) Review
+ https://reviewboard.asterisk.org/r/2463/
+
+ * channels/chan_dahdi.c: chan_dahdi: fix lower bound check with -ve
+ integer conversion from a float Lower bound of a 16bit signed int
+ is -32768 not -32767 (closes issue ASTERISK-21744) Reported by:
+ alecdavis Tested by: alecdavis alecdavis (license 585)
+
+ * main/utils.c: Add Asterisk Version to core show locks Assist with
+ reporting 'core show locks' when submitting bug reports. Example
+ below: =========================== == SVN-branch-1.8-... ==
+ Currently Held Locks =========================== (closes issue
+ ASTERISK-21743) Reported by: alecdavis Tested by: alecdavis
+ alecdavis (license 585)
+
+2013-05-01 21:15 +0000 [r387036-387213] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_rtp_asterisk.c: Clear the DTMF sending digit tracking on
+ off nominal paths In certain situations, when the RTP engine goes
+ to send a DTMF end digit it may be in a situation where the
+ remote address is no longer available, or the digit that was
+ supposed to be sent is invalid. In such cases, we need to clear
+ the RTP counters appropriately. Otherwise, when the RTP source is
+ set again, we'll continue to think that we're in the middle of
+ sending a DTMF digit, which can confuse the remote party
+ (signficantly). (closes issue ASTERISK-21522) Reported by: Corey
+ Farrell patches: rtp_dtmf_process_end.patch uploaded by Corey
+ Farrell (License 5909)
+
+ * channels/chan_sip.c: Prevent crash in 'sip show peers' when the
+ number of peers on a system is large When you have lots of SIP
+ peers (according to the issue reporter, around 3500), the 'sip
+ show peers' CLI command or AMI action can crash due to a poorly
+ placed string duplication that occurs on the stack. This patch
+ refactors the command to not allocate the string on the stack,
+ and handles the formatting of a single peer in a separate
+ function call. (closes issue ASTERISK-21466) Reported by:
+ Guillaume Knispel patches:
+ fix_sip_show_peers_stack_overflow_asterisk_11.3.0-v2.patch
+ uploaded by gknispel (License 6492)
+
+ * main/features.c: Fix CDR not being created during an externally
+ initiated blind transfer Way back when in the dark days of
+ Asterisk 1.8.9, blind transferring a call in a context that
+ included the 'h' extension would inadvertently execute the hangup
+ code logic on the transferred channel. This was a "bad thing".
+ The fix was to properly check for the softhangup flags on the
+ channel and only execute the 'h' extension logic (and, in later
+ versions, hangup handler logic) if the channel was well and truly
+ dead (Jim). Unfortunately, CDRs are fickle. Setting the
+ softhangup flag when we detected that the channel was leaving the
+ bridge (but not to die) caused some crucial snippet of CDR code,
+ lying in ambush in the middle of the bridging code, to not get
+ executed. This had the effect of blowing away one of the CDRs
+ that is typically created during a blind transfer. While we live
+ and die by the adage "don't touch CDRs in release branches", this
+ was our bad. The attached patch restores the CDR behavior, and
+ still manages to not run the 'h' extension during a blind
+ transfer (at least not when it's supposed to). Thanks to Steve
+ Davies for diagnosing this and providing a fix. Review:
+ https://reviewboard.asterisk.org/r/2476 (closes issue
+ ASTERISK-21394) Reported by: Ishfaq Malik Tested by: Ishfaq
+ Malik, mjordan patches: fix_missing_blindXfer_cdr2 uploaded by
+ one47 (License 5012)
+
+2013-04-30 13:45 +0000 [r386929] Sean Bright <sean@malleable.com>
+
+ * include/asterisk/utils.h: Use the proper lower bound when doing
+ saturation arithmetic. 16 bit signed integers have a range of
+ [-32768, 32768). The existing code was using the interval
+ (-32768, 32768) instead. This patch fixes that. Review:
+ https://reviewboard.asterisk.org/r/2479/
+
+2013-04-29 23:34 +0000 [r386877] Rusty Newton <rnewton@digium.com>
+
+ * sounds/Makefile: Modifying sounds/Makefile to pull down 1.4.24
+ core sounds 1.4.24 core sounds includes a full set of Italian
+ prompts for core sounds and a fix for the missing voicemail
+ prompts in the Russian language. (closes issue ASTERISK-19431)
+ (closes issue ASTERISK-19721)
+
+2013-04-29 08:36 +0000 [r386792] Olle Johansson <oej@edvina.net>
+
+ * CHANGES, apps/app_queue.c: Play periodic prompst for first call
+ in a call queue Review: https://reviewboard.asterisk.org/r/2263/
+
+2013-04-26 21:26 +0000 [r386641-386672] Matthew Jordan <mjordan@digium.com>
+
+ * main/config.c: Clean up memory leak in config file on off nominal
+ paths when glob is allowed If a system allows for its usage,
+ Asterisk will use glob to help parse Asterisk .conf files. The
+ config file loading routine was leaking the memory allocated by
+ the glob() routine when the config file was in an unmodified or
+ invalid state. This patch properly calls globfree in those off
+ nominal paths. (closes issue ASTERISK-21412) Reported by: Corey
+ Farrell patches: config_glob_leak.patch uploaded by Corey Farrell
+ (license 5909)
+
+ * main/features.c: Clean up resources in features on exit This
+ patch cleans up two things features: * It properly unregisters
+ the CLI commands that features registered * It cancels and
+ performs a pthread_join on the created parking thread. This not
+ only properly joins a non-detached thread, but also prevents
+ disposing of the parking lots prior to the parking thread
+ completely exiting. (closes issue ASTERISK-21407) Reported by:
+ Corey Farrell patches: features_shutdown-r2.patch uploaded by
+ Corey Farrell (License 5909)
+
+2013-04-25 02:43 +0000 [r386483] Michael L. Young <elgueromexicano@gmail.com>
+
+ * channels/chan_sip.c: Change Case On Forcerport For Consistency *
+ Change "ForcerPort" to "Forcerport" to match everywhere else it
+ is displayed
+
+2013-04-22 16:10 +0000 [r386256] Richard Mudgett <rmudgett@digium.com>
+
+ * main/channel.c: Fix crash when AMI redirect action redirects two
+ channels out of a bridge. The two party bridging loops were
+ changing the bridge peer pointers without the channel locks held.
+ Thus when ast_channel_massquerade() tested and used the pointer
+ there is a small window of opportunity for the pointers to become
+ NULL even though the masquerade code has the channels locked.
+ (closes issue ASTERISK-21356) Reported by: William luke Patches:
+ jira_asterisk_21356_v11.patch (license #5621) patch uploaded by
+ rmudgett Tested by: William luke
+
+2013-04-19 15:59 +0000 [r386109] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_timing_pthread.c: Prevent res_timing_pthread from
+ blocking callers There were several reports of deadlock when
+ using res_timing_pthread. Backtraces indicated that one thread
+ was blocked waiting for the write to the pipe to complete and
+ this thread held the container lock for the timers. Therefore any
+ thread that wanted to create a new timer or read an existing
+ timer would block waiting for either the timer lock or the
+ container lock and deadlock ensued. This patch changes the way
+ the pipe is used to eliminate this source of deadlocks: 1) The
+ pipe is placed in non-blocking mode so that it would never block
+ even if the following changes someone fail... 2) Instead of
+ writing bytes into the pipe for each "tick" that's fired the pipe
+ now has two states--signaled and unsignaled. If signaled, the
+ pipe is hot and any pollers of the read side filedescriptor will
+ be woken up. If unsigned the pipe is idle. This eliminates even
+ the chance of filling up the pipe and reduces the potential
+ overhead of calling unnecessary writes. 3) Since we're tracking
+ the signaled / unsignaled state, we can eliminate the exta poll
+ system call for every firing because we know that there is data
+ to be read. (closes issue ASTERISK-21389) Reported by: Matt
+ Jordan Tested by: Shaun Ruffell, Matt Jordan, Tony Lewis patches:
+ 0001-res_timing_pthread-Reduce-probability-of-deadlocking.patch
+ uploaded by sruffell (License 5417) (closes issue ASTERISK-19754)
+ Reported by: Nikola Ciprich (closes issue ASTERISK-20577)
+ Reported by: Kien Kennedy (closes issue ASTERISK-17436) Reported
+ by: Henry Fernandes (closes issue ASTERISK-17467) Reported by:
+ isrl (closes issue ASTERISK-17458) Reported by: isrl Review:
+ https://reviewboard.asterisk.org/r/2441/
+
+2013-04-19 05:18 +0000 [r386049] David M. Lee <dlee@digium.com>
+
+ * main/cli.c: cli.c: Properly initialize debug_modules and
+ verbose_modules. This avoids some lock errors on the core set
+ {debug,verbose} commands.
+
+2013-04-16 23:11 +0000 [r385916] Alec L Davis <sivad.a@paradise.net.nz>
+
+ * main/devicestate.c, res/res_jabber.c: Distributed Device State
+ broken at sites using res_xmpp or res_jabber where Secuity
+ Advisory AST-2012-015 is inplace res_jabber/res_xmpp were not
+ adding AST_EVENT_IE_CACHABLE to the event as each message came
+ in, then devstate_change_collector_cb() was unable to find
+ AST_EVENT_IE_CACHABLE in the event, so defaulted incorrectly to
+ AST_DEVSTATE_NOT_CACHABLE. (issue ASTERISK-20175) (closes issue
+ ASTERISK-21429) (closes issue ASTERISK-21069) (closes issue
+ ASTERISK-21164) Reported by: alecdavis Tested by: alecdavis
+ alecdavis (license 585) Review
+ https://reviewboard.asterisk.org/r/2452/
+
+2013-04-15 17:07 +0000 [r385745] Jason Parker <jparker@digium.com>
+
+ * Makefile: Don't unnecessarily rebuild things on every run of
+ 'make'. Review: https://reviewboard.asterisk.org/r/2449/
+
+2013-04-15 14:38 +0000 [r385683] David M. Lee <dlee@digium.com>
+
+ * BSDmakefile, contrib/realtime/mysql/voicemail_data.sql,
+ build_tools/sha1sum-sh, res/res_mutestream.c,
+ configs/res_curl.conf.sample, tests/test_func_file.c,
+ include/asterisk/select.h, res/res_rtp_multicast.c,
+ include/asterisk/bridging_technology.h, tests/test_locale.c,
+ include/asterisk/bridging_features.h, doc/Makefile,
+ tests/test_poll.c, res/res_timing_kqueue.c,
+ contrib/realtime/mysql/musiconhold.sql,
+ contrib/realtime/mysql/queue_log.sql, channels/sig_ss7.c,
+ channels/sig_ss7.h, channels/chan_multicast_rtp.c,
+ tests/test_expr.c, apps/app_saycounted.c,
+ contrib/realtime/mysql/voicemail_messages.sql: Fix the
+ svn:keywords property on several files. Normally I think keyword
+ expansion is silly, but the one time it would have been good, it
+ didn't work because the property had quotes in it. This patch
+ fixes obviously busted svn:keywords properties.
+
+2013-04-14 02:58 +0000 [r385633-385636] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_rtp_multicast.c: Calculate the timestamp for outbound RTP
+ if we don't have timing information This patch calculates the
+ timestamp for outbound RTP when we don't have timing information.
+ This uses the same approach in res_rtp_asterisk. Thanks to both
+ Pietro and Tzafrir for providing patches. (closes issue
+ ASTERISK-19883) Reported by: Giacomo Trovato Tested by: Pietro
+ Bertera, Tzafrir Cohen patches: rtp-timestamp-1.8.patch uploaded
+ by tzafrir (License 5035) rtp-timestamp.patch uploaded by
+ pbertera (License 5943)
+
+ * channels/chan_alsa.c: Don't attempt to create a voice frame on a
+ read error Prior to this patch, a read error in snd_pcm_readi
+ would still be treated as a nominal result when constructing a
+ voice frame from the expected data. Since the value returned is
+ negative, as opposed to the number of samples read, this could
+ result in a crash. With this patch, we now return a null frame
+ when a read error is detected. Note that the patch on
+ ASTERISK-21329 was modified slightly for this commit, in that we
+ bail immediately on detecting the read error, rather than
+ bypassing the construction of the voice frame. (closes issue
+ ASTERISK-21329) Reported by: Keiichiro Kawasaki patches:
+ chan_alsa.diff uploaded by kawasaki (License 6489)
+
+2013-04-12 22:34 +0000 [r385551-385593] Michael L. Young <elgueromexicano@gmail.com>
+
+ * apps/app_queue.c: Fix Manager Segfault When app_queue Is Unloaded
+ When app_queue is unloaded, some manager commands are not being
+ unregistered which result in a segfault. This patch corrects
+ this. (closes issue ASTERISK-21397) Reported by: Peter Katzmann,
+ Corey Farrell Tested by: Corey Farrell Patches:
+ asterisk-21397-missing-unreg-manager-cmd_1.8.diff Michael L.
+ Young (license 5026)
+ asterisk-21397-missing-unreg-manager-cmd_11.diff Michael L. Young
+ (license 5026) Review: https://reviewboard.asterisk.org/r/2444/
+
+ * apps/app_voicemail.c: Fix app_voicemail Segfault And A Few Memory
+ Leaks The original report was that app_voicemail would crash.
+ This was caused by ast_config_load() returning
+ CONFIG_STATUS_FILEINVALID but no checks being performed for that
+ return status. After adding the initial patch to fix this issue,
+ Jaco Kroon (jkroon) added some fixes to memory leaks he had
+ discovered. During review, Walter Doekes (wdoekes) suggested
+ adding a helper function in order to determine if we had a valid
+ configuration or not. This patch does the following: * Creates a
+ helper function to check if the configuration is valid * Adds
+ calls to the new helper function where appropiate * Fixes memory
+ leaks where the code returned without running
+ ast_config_destroy() on the configuration that was loaded (closes
+ issue ASTERISK-21302) Reported by: Jaco Kroon Tested by: Jaco
+ Kroon, Michael L. Young Patches:
+ asterisk-11.3.0-app_voicemail-ast_config-fixes.patch Jaco Kroon
+ (license 5671) asterisk-21302-valid_cfg_and_mem_leaks_v3-1.8.diff
+ Michael L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/2443/
+
+2013-04-12 08:46 +0000 [r385402-385429] Alec L Davis <sivad.a@paradise.net.nz>
+
+ * channels/chan_iax2.c: IAX2 defer_full_frames fail to get sent
+ Ensure iax2_process_thread is signalled when a deferred frame is
+ queued to it. (issue ASTERISK-18827) Reported by: alecdavis
+ Tested by: alecdavis alecdavis (license 585) Review
+ https://reviewboard.asterisk.org/r/2426/
+
+ * channels/chan_iax2.c: IAX2, prevent network thread starting
+ before all helper threads are ready On startup, it's possible for
+ a frame to arrive before the processing threads were ready. In
+ iax2_process_thread() the first pass through falls into
+ ast_cond_wait, should a frame arrive before we are at
+ ast_cond_wait, the signal will be ignored. The result
+ iax2_process_thread stays at ast_cond_wait forever, with deferred
+ frames being queued. Fix: When creating initial idle
+ iax2_process_threads, wait for init_cond to be signalled after
+ each thread is started. (issue ASTERISK-18827) Reported by:
+ alecdavis Tested by: alecdavis alecdavis (license 585) Review
+ https://reviewboard.asterisk.org/r/2427/
+
+2013-04-10 14:22 +0000 [r385170-385190] Matthew Jordan <mjordan@digium.com>
+
+ * res/res_config_ldap.c: Use LDAP memory management functions
+ instead of Asterisk's When MALLOC_DEBUG is enabled with
+ res_config_ldap, issues (munmap_chunk: invalid pointer errors)
+ can occur as the memory is being allocated with Asterisk's
+ wrappers around malloc/calloc/free/strdup, as opposed to the LDAP
+ library's wrappers. This patch uses the LDAP library's wrappers
+ where appropriate, so that compiling with MALLOC_DEBUG doesn't
+ cause more problems than it solves. Note that the patch listed
+ below was modified slightly for this commit to account for some
+ additional memory allocation/deallocations. (closes issue
+ ASTERISK-17386) Reported by: John Covert Tested by: Andrew Latham
+ patches: issue18789-1.8-r316873.patch uploaded by seanbright
+ (License 5060)
+
+ * channels/chan_sip.c: Fix crash in chan_sip when a core initiated
+ op occurs at the same time as a BYE When a BYE request is
+ processed in chan_sip, the current SIP dialog is detached from
+ its associated Asterisk channel structure. The tech_pvt pointer
+ in the channel object is set to NULL, and the dialog persists for
+ an RFC mandated period of time to handle re-transmits. While this
+ process occurs, the channel is locked (which is good).
+ Unfortunately, operations that are initiated externally have no
+ way of knowing that the channel they've just obtained (which is
+ still valid) and that they are attempting to lock is about to
+ have its tech_pvt pointer removed. By the time they obtain the
+ channel lock and call the channel technology callback, the
+ tech_pvt is NULL. This patch adds a few checks to some channel
+ callbacks that make sure the tech_pvt isn't NULL before using it.
+ Prime offenders were the DTMF digit callbacks, which would crash
+ if AMI initiated a DTMF on the channel at the same time as a BYE
+ was received from the UA. This patch also adds checks on
+ sip_transfer (as AMI can also cause a callback into this
+ function), as well as sip_indicate (as lots of things can queue
+ an indication onto a channel). Review:
+ https://reviewboard.asterisk.org/r/2434/ (closes issue
+ ASTERISK-20225) Reported by: Jeff Hoppe
+
+2013-04-08 23:34 +0000 [r385047] Rusty Newton <rnewton@digium.com>
+
+ * configs/extconfig.conf.sample: Modified the list of keys for the
+ driver backends for sake of sample clarity Added a line showing
+ the mapping of "mysql" to res_config_mysql available in add-ons.
+ We used "mysql" as an example driver key in the sample, but
+ didn't show what module it mapped too. Also added a subtitle
+ above the list of keys for driver backends.
+
+2013-04-08 19:55 +0000 [r385008] Michael L. Young <elgueromexicano@gmail.com>
+
+ * UPGRADE.txt, channels/chan_sip.c: Fix For Not Overriding The
+ Default Settings In chan_sip The initial report was that the
+ "nat" setting in the [general] section was not having any effect
+ in overriding the default setting. Upon confirming that this was
+ happening and looking into what was causing this, it was
+ discovered that other default settings would not be overriden as
+ well. This patch works similar to what occurs in build_peer(). We
+ create a temporary ast_flags structure and using a mask, we
+ override the default settings with whatever is set in the
+ [general] section. In the bug report, the reporter who helped to
+ test this patch noted that the directmedia settings were being
+ overriden properly as well as the nat settings. (closes issue
+ ASTERISK-21225) Reported by: Alexandre Vezina Tested by:
+ Alexandre Vezina, Michael L. Young Patches:
+ asterisk-21225-handle-options-default-prob_1.8_v4.diff.diff
+ Michael L. Young (license 5026) Review:
+ https://reviewboard.asterisk.org/r/2386/
+
+2013-04-04 19:31 +0000 [r384779] Michael L. Young <elgueromexicano@gmail.com>
+
+ * contrib/realtime/postgresql/realtime.sql,
+ contrib/realtime/mysql/sippeers.sql, channels/chan_sip.c:
+ Backport Appropiate NAT Setting Cleanup In ASTERISK-20904, the
+ focus was around the changes to NAT that took place in Asterisk
+ 11. Since the report stated that 1.8 was fine, we didn't take a
+ look at 1.8 at the time. While working on ASTERISK-21225, I could
+ see that 1.8 would benefit from having some of those changes
+ applied to it. This patch does the following: * The important
+ part of this patch is that it sets the peer's flags earlier in
+ build_peer so that the code properly uses the peer's flags based
+ on the peer's configuration. * constify req parameter in
+ check_via() * update realtime schemas under the contrib directory
+ to handle properly the NAT settings available in 1.8 as well as
+ to handle the changes made in 11 to make upgrading easier when
+ installing newer versions of Asterisk (closes issue
+ ASTERISK-21243) Reported by: Michael L. Young Patches:
+ asterisk-20904-changes_for_1.8.diff Michael L. Young (license
+ 5026) Review: https://reviewboard.asterisk.org/r/2422/
+
+2013-04-03 20:13 +0000 [r384685] Richard Mudgett <rmudgett@digium.com>
+
+ * channels/sig_pri.c, channels/sig_pri.h, channels/chan_dahdi.c,
+ configs/chan_dahdi.conf.sample: chan_dahdi: Add
+ inband_on_proceeding compatibility option. The new
+ inband_on_proceeding option causes Asterisk to assume inband
+ audio may be present when a PROCEEDING message is received. Q.931
+ Section 5.1.2 says the network cannot assume that the CPE side
+ has attached to the B channel at this time without explicitly
+ sending the progress indicator ie informing the CPE side to
+ attach to the B channel for audio. However, some non-compliant
+ ISDN switches send a PROCEEDING without the progress indicator ie
+ indicating inband audio is available and assume that the CPE
+ device has connected the media path for listening to ringback and
+ other messages. ASTERISK-17834 which causes this issue was
+ dealing with a non-compliant network switch. (closes issue
+ ASTERISK-21151) Reported by: Gianluca Merlo Tested by: rmudgett
+
+2013-04-03 17:05 +0000 [r384640] Matthew Jordan <mjordan@digium.com>
+
+ * funcs/func_channel.c: Update documentation for CHANNEL function
+ Document that you can read/write the 'accountcode' and 'amaflags'
+ on a channel.
+
+2013-04-02 17:33 +0000 [r384544] David M. Lee <dlee@digium.com>
+
+ * Makefile: Fixed spurious rebuilds of func_version.
+ func_version.so was being rebuilt every time, because build.h was
+ changing every build, because of the cleantest dependency that
+ was added in r384410 to fix parallel make bugs. Now build.h will
+ only be created if it does not exist, which was the original
+ behavior of the Makefile.
+
+2013-04-01 13:18 +0000 [r384410] David M. Lee <dlee@digium.com>
+
+ * Makefile: Fix parallel make problems. Occasionally, make -j would
+ fail due to missing includes, or other unusual errors. This was
+ due to the 'cleantest' target, which was designed to force a make
+ clean when some change in the code would cause the typical
+ depedency checking to fail. Several targets in the main Makefile
+ did not depend upon cleantest, hence would run in parallel to it.
+ By adding the dependency, make -j runs happily now. Review:
+ https://reviewboard.asterisk.org/r/2418/
+
+2013-03-29 16:23 +0000 [r384325] Jonathan Rose <jrose@digium.com>
+
+ * apps/app_voicemail.c: app_voicemail: Add blank argument to
+ externnotify if no context argument At least one call to
+ run_externnotify provides a NULL context parameter and because
+ the snprintf statement doesn't account for a NULL context
+ parameter, it simply writes '(null)' to the arguments string
+ instead. This patch makes it write two quotes back to back for
+ that argument instead in the event of a NULL context. (closes
+ issue ASTERISK-18207) Reported by: Barry L. Kline Patches:
+ modified from patch-20130306 uploaded by Karsten Wemheuer
+ (License 5930)
+
2013-05-17 Asterisk Development Team <asteriskteam@digium.com>
* Asterisk 1.8.22.0 Released.
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/Makefile
^
|
@@ -289,7 +289,7 @@
@echo " + $(mK) install +"
@echo " +-------------------------------------------+"
-_all: cleantest makeopts $(SUBDIRS) doc/core-en_US.xml
+_all: .lastclean makeopts $(SUBDIRS) doc/core-en_US.xml
makeopts: configure
@echo "****"
@@ -350,30 +350,30 @@
$(OTHER_SUBDIRS):
+@_ASTCFLAGS="$(OTHER_SUBDIR_CFLAGS) $(_ASTCFLAGS)" ASTCFLAGS="$(ASTCFLAGS)" _ASTLDFLAGS="$(_ASTLDFLAGS)" ASTLDFLAGS="$(ASTLDFLAGS)" $(SUBMAKE) --no-builtin-rules -C $@ SUBDIR=$@ all
-defaults.h: makeopts
+defaults.h: makeopts .lastclean
@build_tools/make_defaults_h > $@.tmp
@cmp -s $@.tmp $@ || mv $@.tmp $@
@rm -f $@.tmp
-main/version.c: FORCE
+main/version.c: FORCE .lastclean
@build_tools/make_version_c > $@.tmp
@cmp -s $@.tmp $@ || mv $@.tmp $@
@rm -f $@.tmp
-include/asterisk/version.h: FORCE
+include/asterisk/version.h: FORCE .lastclean
@build_tools/make_version_h > $@.tmp
@cmp -s $@.tmp $@ || mv $@.tmp $@
@rm -f $@.tmp
-include/asterisk/buildopts.h: menuselect.makeopts
+include/asterisk/buildopts.h: menuselect.makeopts .lastclean
@build_tools/make_buildopts_h > $@.tmp
@cmp -s $@.tmp $@ || mv $@.tmp $@
@rm -f $@.tmp
-include/asterisk/build.h:
- @build_tools/make_build_h > $@.tmp
- @cmp -s $@.tmp $@ || mv $@.tmp $@
- @rm -f $@.tmp
+# build.h must depend on .lastclean, or parallel make may wipe it out after it's
+# been created.
+include/asterisk/build.h: .lastclean
+ @build_tools/make_build_h > $@
$(SUBDIRS_CLEAN):
+@$(SUBMAKE) -C $(@:-clean=) clean
@@ -420,7 +420,7 @@
done
$(MAKE) -C sounds install
-doc/core-en_US.xml: $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
+doc/core-en_US.xml: .lastclean $(foreach dir,$(MOD_SUBDIRS),$(shell $(GREP) -l "language=\"en_US\"" $(dir)/*.c $(dir)/*.cc 2>/dev/null))
@printf "Building Documentation For: "
@echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" > $@
@echo "<!DOCTYPE docs SYSTEM \"appdocsxml.dtd\">" >> $@
@@ -761,8 +761,8 @@
# .cleancount is the global clean count, and .lastclean is the
# last clean count we had
-cleantest:
- @cmp -s .cleancount .lastclean || $(MAKE) clean
+.lastclean: .cleancount
+ @$(MAKE) clean
$(SUBDIRS_UNINSTALL):
+@$(SUBMAKE) -C $(@:-uninstall=) uninstall
@@ -875,7 +875,6 @@
.PHONY: distclean
.PHONY: all
.PHONY: prereqs
-.PHONY: cleantest
.PHONY: uninstall
.PHONY: _uninstall
.PHONY: uninstall-all
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/UPGRADE.txt
^
|
@@ -18,6 +18,16 @@
===
===========================================================
+from 1.8.22.0 to 1.8.23.0:
+* The default settings for chan_sip are now overriden properly by the general
+ settings in sip.conf. Please look over your settings upon upgrading.
+
+* It is now possible to play the Queue prompts to the first user waiting in a call queue.
+ Note that this may impact the ability for agents to talk with users, as a prompt may
+ still be playing when an agent connects to the user. This ability is disabled by
+ default but can be enabled on an individual queue using the 'announce-to-first-user'
+ option.
+
from 1.8.21.0 to 1.8.22.0:
* Added the 'n' option to MeetMe to prevent application of the DENOISE function
to a channel joining a conference. Some channel drivers that vary the number
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/addons/chan_ooh323.c
^
|
@@ -286,6 +286,8 @@
int onCallCleared(ooCallData *call);
void onModeChanged(ooCallData *call, int t38mode);
+extern OOH323EndPoint gH323ep;
+
static char gLogFile[256] = DEFAULT_LOGFILE;
static int gPort = 1720;
static char gIP[20];
@@ -629,6 +631,7 @@
ooh323_destroy(p);
ast_mutex_unlock(&iflock);
ast_log(LOG_ERROR, "Destination format is not supported\n");
+ *cause = AST_CAUSE_INVALID_NUMBER_FORMAT;
return NULL;
}
@@ -672,6 +675,10 @@
ooh323_destroy(p);
ast_mutex_unlock(&iflock);
return NULL;
+ } else if (gH323ep.gkClient && gH323ep.gkClient->state != GkClientRegistered) {
+ ast_log(LOG_ERROR, "Gatekeeper client is configured but not registered\n");
+ *cause = AST_CAUSE_NORMAL_TEMPORARY_FAILURE;
+ return NULL;
}
p->g729onlyA = g729onlyA;
p->dtmfmode = gDTMFMode;
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/apps/app_meetme.c
^
|
@@ -36,7 +36,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 383835 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 387688 $")
#include <dahdi/user.h>
@@ -6156,8 +6156,8 @@
ast_mutex_lock(&sla.lock);
- if (!AST_LIST_EMPTY(&sla.event_q) || !AST_LIST_EMPTY(&sla.ringing_trunks)
- || !AST_LIST_EMPTY(&sla.ringing_stations)) {
+ if (!AST_LIST_EMPTY(&sla.event_q) || !AST_LIST_EMPTY(&sla.ringing_trunks)
+ || !AST_LIST_EMPTY(&sla.ringing_stations) || !AST_LIST_EMPTY(&sla.failed_stations)) {
ast_mutex_unlock(&sla.lock);
return;
}
@@ -6175,8 +6175,9 @@
AST_RWLIST_RDLOCK(&sla_trunks);
AST_RWLIST_TRAVERSE(&sla_trunks, trunk, entry) {
- if (trunk->ref_count)
+ if (trunk->ref_count || trunk->chan || trunk->active_stations || trunk->hold_stations) {
break;
+ }
}
AST_RWLIST_UNLOCK(&sla_trunks);
if (trunk) {
@@ -6432,7 +6433,7 @@
return 0;
}
- AST_RWLIST_RDLOCK(&sla_stations);
+ AST_RWLIST_WRLOCK(&sla_stations);
station = sla_find_station(station_name);
if (station)
ast_atomic_fetchadd_int((int *) &station->ref_count, 1);
@@ -6644,7 +6645,7 @@
}
}
- AST_RWLIST_RDLOCK(&sla_trunks);
+ AST_RWLIST_WRLOCK(&sla_trunks);
trunk = sla_find_trunk(args.trunk_name);
if (trunk)
ast_atomic_fetchadd_int((int *) &trunk->ref_count, 1);
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/apps/app_queue.c
^
|
@@ -63,7 +63,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 378663 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 391215 $")
#include <sys/time.h>
#include <sys/signal.h>
@@ -1126,6 +1126,7 @@
unsigned int dead:1;
unsigned int eventwhencalled:2;
unsigned int ringinuse:1;
+ unsigned int announce_to_first_user:1; /*!< Whether or not we announce to the first user in a queue */
unsigned int setinterfacevar:1;
unsigned int setqueuevar:1;
unsigned int setqueueentryvar:1;
@@ -1730,6 +1731,7 @@
q->roundingseconds = 0; /* Default - don't announce seconds */
q->servicelevel = 0;
q->ringinuse = 1;
+ q->announce_to_first_user = 0;
q->setinterfacevar = 0;
q->setqueuevar = 0;
q->setqueueentryvar = 0;
@@ -1992,6 +1994,8 @@
ast_string_field_set(q, sound_reporthold, val);
} else if (!strcasecmp(param, "announce-frequency")) {
q->announcefrequency = atoi(val);
+ } else if (!strcasecmp(param, "announce-to-first-user")) {
+ q->announce_to_first_user = ast_true(val);
} else if (!strcasecmp(param, "min-announce-frequency")) {
q->minannouncefrequency = atoi(val);
ast_debug(1, "%s=%s for queue '%s'\n", param, val, q->name);
@@ -3607,7 +3611,7 @@
*
* \todo eventually all call forward logic should be intergerated into and replaced by ast_call_forward()
*/
-static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callattempt *outgoing, int *to, char *digit, int prebusies, int caller_disconnect, int forwardsallowed)
+static struct callattempt *wait_for_answer(struct queue_ent *qe, struct callattempt *outgoing, int *to, char *digit, int prebusies, int caller_disconnect, int forwardsallowed, int ringing)
{
const char *queue = qe->parent->name;
struct callattempt *o, *start = NULL, *prev = NULL;
@@ -4087,6 +4091,16 @@
}
}
+ /* Make a position announcement, if enabled */
+ if (qe->parent->announcefrequency && qe->parent->announce_to_first_user) {
+ say_position(qe, ringing);
+ }
+
+ /* Make a periodic announcement, if enabled */
+ if (qe->parent->periodicannouncefrequency && qe->parent->announce_to_first_user) {
+ say_periodic_announcement(qe, ringing);
+ }
+
if (!*to) {
for (o = start; o; o = o->call_next) {
rna(orig, qe, o->interface, o->member->membername, 1);
@@ -4833,7 +4847,7 @@
ring_one(qe, outgoing, &numbusies);
lpeer = wait_for_answer(qe, outgoing, &to, &digit, numbusies,
ast_test_flag(&(bridge_config.features_caller), AST_FEATURE_DISCONNECT),
- forwardsallowed);
+ forwardsallowed, ringing);
/* The ast_channel_datastore_remove() function could fail here if the
* datastore was moved to another channel during a masquerade. If this is
* the case, don't free the datastore here because later, when the channel
@@ -8429,6 +8443,7 @@
MEMBER(call_queue, dead, AST_DATA_BOOLEAN) \
MEMBER(call_queue, eventwhencalled, AST_DATA_BOOLEAN) \
MEMBER(call_queue, ringinuse, AST_DATA_BOOLEAN) \
+ MEMBER(call_queue, announce_to_first_user, AST_DATA_BOOLEAN) \
MEMBER(call_queue, setinterfacevar, AST_DATA_BOOLEAN) \
MEMBER(call_queue, setqueuevar, AST_DATA_BOOLEAN) \
MEMBER(call_queue, setqueueentryvar, AST_DATA_BOOLEAN) \
@@ -8692,6 +8707,8 @@
res |= ast_manager_unregister("QueuePause");
res |= ast_manager_unregister("QueueLog");
res |= ast_manager_unregister("QueuePenalty");
+ res |= ast_manager_unregister("QueueReload");
+ res |= ast_manager_unregister("QueueReset");
res |= ast_unregister_application(app_aqm);
res |= ast_unregister_application(app_rqm);
res |= ast_unregister_application(app_pqm);
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/apps/app_saycounted.c
^
|
@@ -114,7 +114,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 336716 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385683 $")
#include "asterisk/logger.h"
#include "asterisk/module.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/apps/app_voicemail.c
^
|
@@ -91,7 +91,7 @@
#endif
#endif
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 376262 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385551 $")
#include "asterisk/paths.h" /* use ast_config_AST_SPOOL_DIR */
#include <sys/time.h>
@@ -1507,6 +1507,14 @@
return res;
}
+/*!
+ * \brief Check if configuration file is valid
+ */
+static inline int valid_config(const struct ast_config *cfg)
+{
+ return cfg && cfg != CONFIG_STATUS_FILEINVALID;
+}
+
/*!
* \brief The handler for the change password option.
* \param vmu The voicemail user to work with.
@@ -1543,7 +1551,7 @@
}
/* Fall-through */
case OPT_PWLOC_VOICEMAILCONF:
- if ((cfg = ast_config_load(VOICEMAIL_CONFIG, config_flags)) && cfg != CONFIG_STATUS_FILEINVALID) {
+ if ((cfg = ast_config_load(VOICEMAIL_CONFIG, config_flags)) && valid_config(cfg)) {
while ((category = ast_category_browse(cfg, category))) {
if (!strcasecmp(category, vmu->context)) {
if (!(tmp = ast_variable_retrieve(cfg, category, vmu->mailbox))) {
@@ -1572,14 +1580,17 @@
reset_user_pw(vmu->context, vmu->mailbox, newpassword);
ast_copy_string(vmu->password, newpassword, sizeof(vmu->password));
ast_config_text_file_save(VOICEMAIL_CONFIG, cfg, "AppVoicemail");
+ ast_config_destroy(cfg);
break;
}
+
+ ast_config_destroy(cfg);
}
/* Fall-through */
case OPT_PWLOC_USERSCONF:
/* check users.conf and update the password stored for the mailbox */
/* if no vmsecret entry exists create one. */
- if ((cfg = ast_config_load("users.conf", config_flags)) && cfg != CONFIG_STATUS_FILEINVALID) {
+ if ((cfg = ast_config_load("users.conf", config_flags)) && valid_config(cfg)) {
ast_debug(4, "we are looking for %s\n", vmu->mailbox);
for (category = ast_category_browse(cfg, NULL); category; category = ast_category_browse(cfg, category)) {
ast_debug(4, "users.conf: %s\n", category);
@@ -1613,6 +1624,8 @@
ast_copy_string(vmu->password, newpassword, sizeof(vmu->password));
ast_config_text_file_save("users.conf", cfg, "AppVoicemail");
}
+
+ ast_config_destroy(cfg);
}
}
}
@@ -3846,7 +3859,7 @@
res = -1;
break;
}
- if (cfg && cfg != CONFIG_STATUS_FILEINVALID) {
+ if (valid_config(cfg)) {
if (!(idata.context = ast_variable_retrieve(cfg, "message", "context"))) {
idata.context = "";
}
@@ -3899,7 +3912,7 @@
if (obj) {
ast_odbc_release_obj(obj);
}
- if (cfg)
+ if (valid_config(cfg))
ast_config_destroy(cfg);
if (fdm != MAP_FAILED)
munmap(fdm, fdlen);
@@ -4378,7 +4391,7 @@
if (strlen(fromfile) < sizeof(fromfile) - 5) {
strcat(fromfile, ".txt");
}
- if (!(msg_cfg = ast_config_load(fromfile, config_flags))) {
+ if (!(msg_cfg = ast_config_load(fromfile, config_flags)) || !(valid_config(msg_cfg))) {
if (option_debug > 0) {
ast_log(LOG_DEBUG, "Config load for message text file '%s' failed\n", fromfile);
}
@@ -4753,7 +4766,7 @@
if (strlen(fromfile) < sizeof(fromfile) - 5) {
strcat(fromfile, ".txt");
}
- if ((msg_cfg = ast_config_load(fromfile, config_flags))) {
+ if ((msg_cfg = ast_config_load(fromfile, config_flags)) && valid_config(msg_cfg)) {
if ((v = ast_variable_retrieve(msg_cfg, "message", "callerid"))) {
ast_copy_string(origcallerid, v, sizeof(origcallerid));
}
@@ -5566,7 +5579,10 @@
if (inboxcount2(ext_context, &urgentvoicemails, &newvoicemails, &oldvoicemails)) {
ast_log(AST_LOG_ERROR, "Problem in calculating number of voicemail messages available for extension %s\n", extension);
} else {
- snprintf(arguments, sizeof(arguments), "%s %s %s %d %d %d &", externnotify, context, extension, newvoicemails, oldvoicemails, urgentvoicemails);
+ snprintf(arguments, sizeof(arguments), "%s %s %s %d %d %d &",
+ externnotify, S_OR(context, "\"\""),
+ extension, newvoicemails,
+ oldvoicemails, urgentvoicemails);
ast_debug(1, "Executing %s\n", arguments);
ast_safe_system(arguments);
}
@@ -6901,7 +6917,7 @@
strncat(backup, "-bak", sizeof(backup) - strlen(backup) - 1);
strncat(backup_textfile, "-bak.txt", sizeof(backup_textfile) - strlen(backup_textfile) - 1);
- if ((msg_cfg = ast_config_load(textfile, config_flags)) && msg_cfg != CONFIG_STATUS_FILEINVALID && (duration_str = ast_variable_retrieve(msg_cfg, "message", "duration"))) {
+ if ((msg_cfg = ast_config_load(textfile, config_flags)) && valid_config(msg_cfg) && (duration_str = ast_variable_retrieve(msg_cfg, "message", "duration"))) {
*duration = atoi(duration_str);
} else {
*duration = 0;
@@ -6934,7 +6950,7 @@
*duration = 0;
/* if we can't read the message metadata, stop now */
- if (!msg_cfg) {
+ if (!valid_config(msg_cfg)) {
cmd = 0;
break;
}
@@ -7018,7 +7034,7 @@
}
}
- if (msg_cfg)
+ if (valid_config(msg_cfg))
ast_config_destroy(msg_cfg);
if (prepend_duration)
*duration = prepend_duration;
@@ -7714,7 +7730,7 @@
snprintf(filename, sizeof(filename), "%s.txt", vms->fn);
RETRIEVE(vms->curdir, vms->curmsg, vmu->mailbox, vmu->context);
msg_cfg = ast_config_load(filename, config_flags);
- if (!msg_cfg || msg_cfg == CONFIG_STATUS_FILEINVALID) {
+ if (!valid_config(msg_cfg)) {
ast_log(LOG_WARNING, "No message attribute file?!! (%s)\n", filename);
return 0;
}
@@ -7792,7 +7808,7 @@
}
}
- if (!msg_cfg) {
+ if (!valid_config(msg_cfg)) {
ast_log(AST_LOG_WARNING, "No message attribute file?!! (%s)\n", filename);
return 0;
}
@@ -12570,7 +12586,7 @@
struct ast_flags config_flags = { 0 };
pwconf = ast_config_load(secretfn, config_flags);
- if (pwconf) {
+ if (valid_config(pwconf)) {
const char *val = ast_variable_retrieve(pwconf, "general", "password");
if (val) {
ast_copy_string(password, val, passwordlen);
@@ -13055,7 +13071,7 @@
fputs("00000002 => 9999,Mrs. Test\n", file);
fclose(file);
- if (!(cfg = ast_config_load(config_filename, config_flags))) {
+ if (!(cfg = ast_config_load(config_filename, config_flags)) || !valid_config(cfg)) {
res = AST_TEST_FAIL;
goto cleanup;
}
@@ -13276,7 +13292,7 @@
RETRIEVE(vms->curdir, vms->curmsg, vmu->mailbox, vmu->context);
msg_cfg = ast_config_load(filename, config_flags);
DISPOSE(vms->curdir, vms->curmsg);
- if (!msg_cfg || msg_cfg == CONFIG_STATUS_FILEINVALID) {
+ if (!valid_config(msg_cfg)) {
ast_log(AST_LOG_WARNING, "No message attribute file?!! (%s)\n", filename);
return 0;
}
@@ -13436,9 +13452,9 @@
break;
}
-#ifndef IMAP_STORAGE
ast_config_destroy(msg_cfg);
+#ifndef IMAP_STORAGE
if (!res) {
make_file(vms->fn, sizeof(vms->fn), vms->curdir, msg);
vms->heard[msg] = 1;
|
[-]
[+]
|
Added |
asterisk-1.8.23.0.tar.xz/asterisk-1.8.23.0-summary.html
^
|
@@ -0,0 +1,522 @@
+<!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">
+<head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Release Summary - asterisk-1.8.23.0</title></head>
+<body>
+<h1 align="center"><a name="top">Release Summary</a></h1>
+<h3 align="center">asterisk-1.8.23.0</h3>
+<h3 align="center">Date: 2013-07-15</h3>
+<h3 align="center"><asteriskteam@digium.com></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="#issues">Closed 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><br/><p>This release includes only bug fixes. The changes included were made only to address problems that have been identified in this release series. Users should be able to safely upgrade to this version if this release series is already in use. Users considering upgrading from a previous release series 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-1.8.22.0.</p>
+<hr/>
+<a name="contributors"><h2 align="center">Contributors</h2></a>
+<center><a href="#top">[Back to Top]</a></center><br/><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 closed by commits that went into this release.</p>
+<table width="100%" border="0">
+<tr>
+<td width="33%"><h3>Coders</h3></td>
+<td width="33%"><h3>Testers</h3></td>
+<td width="33%"><h3>Reporters</h3></td>
+</tr>
+<tr valign="top">
+<td>
+14 alecdavis<br/>
+6 Corey Farrell<br/>
+6 elguero<br/>
+6 sruffell<br/>
+5 rmudgett<br/>
+4 dlee<br/>
+4 mjordan<br/>
+3 bebuild<br/>
+3 newtonr<br/>
+2 kmoore<br/>
+2 qwell<br/>
+2 seanbright<br/>
+1 Correy Farrell<br/>
+1 gknispel<br/>
+1 Guenther Kelleter<br/>
+1 Karsten Wemheuer<br/>
+1 kawasaki<br/>
+1 may<br/>
+1 Michael Walton<br/>
+1 mmichelson<br/>
+1 oej<br/>
+1 one47<br/>
+1 pbertera<br/>
+1 russell<br/>
+1 tzafrir<br/>
+</td>
+<td>
+9 alecdavis<br/>
+7 mjordan<br/>
+6 sruffell<br/>
+6 Tony Lewis<br/>
+3 elguero<br/>
+1 Alexandre Vezina<br/>
+1 Andrew Latham<br/>
+1 Corey Farrell<br/>
+1 Dan Martens<br/>
+1 David Brillert<br/>
+1 Dmitry Melekhov<br/>
+1 Ishfaq Malik<br/>
+1 Jaco Kroon<br/>
+1 jrose<br/>
+1 Peter Katzmann<br/>
+1 Pietro Bertera<br/>
+1 rmudgett<br/>
+1 Rodrigo P. Telles<br/>
+1 Tzafrir Cohen<br/>
+1 William luke<br/>
+</td>
+<td>
+8 coreyfarrell<br/>
+6 alecdavis<br/>
+2 isrl<br/>
+2 pk16208<br/>
+1 avezina@ubikvoip.com<br/>
+1 blkline<br/>
+1 dlmarten<br/>
+1 elguero<br/>
+1 floradio<br/>
+1 giacomo<br/>
+1 gian<br/>
+1 gkelleter<br/>
+1 gknispel<br/>
+1 greenlightcrm<br/>
+1 ishmalik<br/>
+1 jcovert<br/>
+1 jhoppebugs<br/>
+1 jkroon<br/>
+1 kawasaki<br/>
+1 kiennd<br/>
+1 mike@farsouthnet.com<br/>
+1 mjordan<br/>
+1 mpaland<br/>
+1 nikola.ciprich<br/>
+1 pgoldbaum<br/>
+1 remiq<br/>
+1 rnewton<br/>
+1 slesru<br/>
+1 telles<br/>
+1 usinternet<br/>
+1 volga629<br/>
+</td>
+</tr>
+</table>
+<hr/>
+<a name="issues"><h2 align="center">Closed Issues</h2></a>
+<center><a href="#top">[Back to Top]</a></center><br/><p>This is a list of all issues from the issue tracker that were closed by changes that went into this release.</p>
+<h3>Category: Addons/chan_ooh323</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21800">ASTERISK-21800</a>: ooh323 channels stuck if no gatekeer or ooh323 reload<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=390181">390181</a><br/>
+Reporter: slesru<br/>
+Testers: Dmitry Melekhov<br/>
+Coders: may<br/>
+<br/>
+<h3>Category: Applications/app_mixmonitor</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21799">ASTERISK-21799</a>: [patch] Dropouts/distortion in MixMonitor recording when recording RTP with ptime of 60ms<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=389895">389895</a><br/>
+Reporter: mike@farsouthnet.com<br/>
+Testers: jrose<br/>
+Coders: Michael Walton<br/>
+<br/>
+<h3>Category: Applications/app_page</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19883">ASTERISK-19883</a>: [patch] - RTP packet with Timestamp=0 on Multicast paging<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385636">385636</a><br/>
+Reporter: giacomo<br/>
+Testers: Pietro Bertera, Tzafrir Cohen<br/>
+Coders: tzafrir, pbertera<br/>
+<br/>
+<h3>Category: Applications/app_queue</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21397">ASTERISK-21397</a>: [patch] manager crash on unloading app_queue<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385593">385593</a><br/>
+Reporter: pk16208<br/>
+Testers: Corey Farrell<br/>
+Coders: elguero<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21782">ASTERISK-21782</a>: Delayed audio to agent when answering a queue call<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=391215">391215</a><br/>
+Reporter: remiq<br/>
+Coders: mjordan<br/>
+<br/>
+<h3>Category: Applications/app_voicemail</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-18207">ASTERISK-18207</a>: externnotify script called with (null) context parameter during pollmessages run, essentially stopping it from running.<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=384325">384325</a><br/>
+Reporter: blkline<br/>
+Coders: Karsten Wemheuer<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19431">ASTERISK-19431</a>: Asterisk Russian language support missing voicemail prompts<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386877">386877</a><br/>
+Reporter: volga629<br/>
+Coders: newtonr<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21302">ASTERISK-21302</a>: [patch] app_voicemail crashes on config error and there are some potential memory leaks<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385551">385551</a><br/>
+Reporter: jkroon<br/>
+Testers: Jaco Kroon, elguero<br/>
+Coders: elguero<br/>
+<br/>
+<h3>Category: CDR/General</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21394">ASTERISK-21394</a>: [patch] - Fundamental changes to CDR within single asterisk family (1.8) during externally initiated blind transfers with an h extension present<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=387036">387036</a><br/>
+Reporter: ishmalik<br/>
+Testers: Ishfaq Malik, mjordan<br/>
+Coders: one47<br/>
+<br/>
+<h3>Category: Channels/chan_agent</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21793">ASTERISK-21793</a>: Segmentation fault when dealing with Agent channels<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=390044">390044</a><br/>
+Reporter: telles<br/>
+Testers: Rodrigo P. Telles<br/>
+Coders: rmudgett<br/>
+<br/>
+<h3>Category: Channels/chan_alsa</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21329">ASTERISK-21329</a>: chan_alsa: patch for crash when audio device in unexpected state<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385633">385633</a><br/>
+Reporter: kawasaki<br/>
+Coders: kawasaki<br/>
+<br/>
+<h3>Category: Channels/chan_dahdi</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21151">ASTERISK-21151</a>: 'Squelching' early media in DAHDI (sig_pri)<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=384685">384685</a><br/>
+Reporter: gian<br/>
+Testers: rmudgett<br/>
+Coders: rmudgett<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21744">ASTERISK-21744</a>: [patch] - fix lower bound check with -ve integer conversion from a float <br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=387297">387297</a><br/>
+Reporter: alecdavis<br/>
+Testers: alecdavis<br/>
+Coders: alecdavis<br/>
+<br/>
+<h3>Category: Channels/chan_iax2</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21409">ASTERISK-21409</a>: [patch] - Race condition with IAX2 transfer, 2 releases happen on same call legs. locks up with many threads blocked by iax2_destroy_helper<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=391062">391062</a><br/>
+Reporter: alecdavis<br/>
+Testers: alecdavis<br/>
+Coders: alecdavis<br/>
+<br/>
+<h3>Category: Channels/chan_sip/General</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-17436">ASTERISK-17436</a>: random deadlocks - SIP messages not being processed<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386109">386109</a><br/>
+Reporter: usinternet<br/>
+Testers: sruffell, mjordan, Tony Lewis<br/>
+Coders: sruffell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19754">ASTERISK-19754</a>: Deadlock in chan_sip / pthread_timing<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386109">386109</a><br/>
+Reporter: nikola.ciprich<br/>
+Testers: sruffell, mjordan, Tony Lewis<br/>
+Coders: sruffell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20225">ASTERISK-20225</a>: Segmentation Fault on manager_play_dtmf sip_senddigit_end<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385170">385170</a><br/>
+Reporter: jhoppebugs<br/>
+Coders: mjordan<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21225">ASTERISK-21225</a>: [patch] Setting nat=force_rport in [general] sip.conf will never work<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385008">385008</a><br/>
+Reporter: avezina@ubikvoip.com<br/>
+Testers: Alexandre Vezina, elguero<br/>
+Coders: elguero<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21243">ASTERISK-21243</a>: [patch] Backport Appropiate NAT Setting Cleanups To 1.8<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=384779">384779</a><br/>
+Reporter: elguero<br/>
+Coders: elguero<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21246">ASTERISK-21246</a>: [patch] use of rtpkeepalive uses CN packet with marker bit set, plus a ULAW payload instead of CN<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388111">388111</a><br/>
+Reporter: pk16208<br/>
+Testers: Peter Katzmann, elguero<br/>
+Coders: elguero<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21389">ASTERISK-21389</a>: res_timing_pthread fails to return from write, causing timer dependent operations to block indefinitely<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386109">386109</a><br/>
+Reporter: mjordan<br/>
+Testers: sruffell, mjordan, Tony Lewis<br/>
+Coders: sruffell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21466">ASTERISK-21466</a>: [patch] [crash] command (sip show peers) crashes Asterisk with ~3500 registered peers<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=387133">387133</a><br/>
+Reporter: gknispel<br/>
+Coders: gknispel<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21677">ASTERISK-21677</a>: NOTIFYs for BLF start queuing up and fail to be sent out<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=387875">387875</a><br/>
+Reporter: dlmarten<br/>
+Testers: Dan Martens, David Brillert, alecdavis<br/>
+Coders: alecdavis<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21742">ASTERISK-21742</a>: SIP Session-Expires: Set timer to correctly expire at (~2/3) of the expiry interval when not the refresher. <br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=387344">387344</a><br/>
+Reporter: alecdavis<br/>
+Testers: alecdavis<br/>
+Coders: alecdavis<br/>
+<br/>
+<h3>Category: Channels/chan_sip/Interoperability</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21664">ASTERISK-21664</a>: Asterisk terminates calls if Session-Expires isn't present on INVITE<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=387312">387312</a><br/>
+Reporter: alecdavis<br/>
+Testers: alecdavis<br/>
+Coders: alecdavis<br/>
+<br/>
+<h3>Category: Core/Bridging</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21356">ASTERISK-21356</a>: Segfault during bridge channel proxy inspection in a masquerade caused by an AMI Redirect of two channels <br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386256">386256</a><br/>
+Reporter: greenlightcrm<br/>
+Testers: William luke<br/>
+Coders: rmudgett<br/>
+<br/>
+<h3>Category: Core/Channels</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21356">ASTERISK-21356</a>: Segfault during bridge channel proxy inspection in a masquerade caused by an AMI Redirect of two channels <br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386256">386256</a><br/>
+Reporter: greenlightcrm<br/>
+Testers: William luke<br/>
+Coders: rmudgett<br/>
+<br/>
+<h3>Category: Core/Configuration</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21412">ASTERISK-21412</a>: [patch] config.c/config_text_file_load() leaks globbuf<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386672">386672</a><br/>
+Reporter: coreyfarrell<br/>
+Coders: Corey Farrell<br/>
+<br/>
+<h3>Category: Core/General</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21407">ASTERISK-21407</a>: [patch] features_shutdown doesn't finish cleanup<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386641">386641</a><br/>
+Reporter: coreyfarrell<br/>
+Coders: Corey Farrell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21716">ASTERISK-21716</a>: [patch] logger thread sometimes exits with messages still queued<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=389676">389676</a><br/>
+Reporter: coreyfarrell<br/>
+Coders: Corey Farrell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21724">ASTERISK-21724</a>: [patch] __ast_rwlock_destroy can segfault with DEBUG_THREADS<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388838">388838</a><br/>
+Reporter: coreyfarrell<br/>
+Coders: Corey Farrell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21743">ASTERISK-21743</a>: [patch] - Core show Locks, Include Asterisk version.<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=387294">387294</a><br/>
+Reporter: alecdavis<br/>
+Testers: alecdavis<br/>
+Coders: alecdavis<br/>
+<br/>
+<h3>Category: Core/ManagerInterface</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21397">ASTERISK-21397</a>: [patch] manager crash on unloading app_queue<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385593">385593</a><br/>
+Reporter: pk16208<br/>
+Testers: Corey Farrell<br/>
+Coders: elguero<br/>
+<br/>
+<h3>Category: Core/PBX</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21723">ASTERISK-21723</a>: [patch] pbx cleanup is incomplete<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388532">388532</a><br/>
+Reporter: coreyfarrell<br/>
+Coders: Correy Farrell<br/>
+<br/>
+<h3>Category: Resources/res_config_ldap</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-17386">ASTERISK-17386</a>: [patch] res_config_ldap with malloc_debug produces munmap_chunk(): invalid pointer:<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385190">385190</a><br/>
+Reporter: jcovert<br/>
+Testers: Andrew Latham<br/>
+Coders: seanbright<br/>
+<br/>
+<h3>Category: Resources/res_jabber</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21429">ASTERISK-21429</a>: Distributed Device State using JABBER/XMPP not working since Secuity Advisory AST-2012-015 <br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385916">385916</a><br/>
+Reporter: alecdavis<br/>
+Testers: alecdavis<br/>
+Coders: alecdavis<br/>
+<br/>
+<h3>Category: Resources/res_musiconhold</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-17467">ASTERISK-17467</a>: external moh is blocked when using dahdi timer<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386109">386109</a><br/>
+Reporter: isrl<br/>
+Testers: sruffell, mjordan, Tony Lewis<br/>
+Coders: sruffell<br/>
+<br/>
+<h3>Category: Resources/res_rtp_asterisk</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21246">ASTERISK-21246</a>: [patch] use of rtpkeepalive uses CN packet with marker bit set, plus a ULAW payload instead of CN<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388111">388111</a><br/>
+Reporter: pk16208<br/>
+Testers: Peter Katzmann, elguero<br/>
+Coders: elguero<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21522">ASTERISK-21522</a>: [patch] DTMF end is not always processed, causes one-way audio<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=387213">387213</a><br/>
+Reporter: coreyfarrell<br/>
+Coders: Corey Farrell<br/>
+<br/>
+<h3>Category: Resources/res_srtp</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21719">ASTERISK-21719</a>: [patch] res_srtp doesn't cleanup srtp library<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388529">388529</a><br/>
+Reporter: coreyfarrell<br/>
+Coders: Corey Farrell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21719">ASTERISK-21719</a>: [patch] res_srtp doesn't cleanup srtp library<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388768">388768</a><br/>
+Reporter: coreyfarrell<br/>
+Coders: kmoore<br/>
+<br/>
+<h3>Category: Resources/res_timing_pthread</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-17436">ASTERISK-17436</a>: random deadlocks - SIP messages not being processed<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386109">386109</a><br/>
+Reporter: usinternet<br/>
+Testers: sruffell, mjordan, Tony Lewis<br/>
+Coders: sruffell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-17458">ASTERISK-17458</a>: Deadlocks when using pthread timer<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386109">386109</a><br/>
+Reporter: isrl<br/>
+Testers: sruffell, mjordan, Tony Lewis<br/>
+Coders: sruffell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19754">ASTERISK-19754</a>: Deadlock in chan_sip / pthread_timing<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386109">386109</a><br/>
+Reporter: nikola.ciprich<br/>
+Testers: sruffell, mjordan, Tony Lewis<br/>
+Coders: sruffell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-20577">ASTERISK-20577</a>: Asterisk deadlocks waiting for timer in res_timing_pthread while running AGI script<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386109">386109</a><br/>
+Reporter: kiennd<br/>
+Testers: sruffell, mjordan, Tony Lewis<br/>
+Coders: sruffell<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21389">ASTERISK-21389</a>: res_timing_pthread fails to return from write, causing timer dependent operations to block indefinitely<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386109">386109</a><br/>
+Reporter: mjordan<br/>
+Testers: sruffell, mjordan, Tony Lewis<br/>
+Coders: sruffell<br/>
+<br/>
+<h3>Category: Resources/res_xmpp</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21069">ASTERISK-21069</a>: xmpp distributed device states aggregation update fails<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385916">385916</a><br/>
+Reporter: mpaland<br/>
+Testers: alecdavis<br/>
+Coders: alecdavis<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21164">ASTERISK-21164</a>: Need clarification on distributed device state behavior and whether this behavior is a possible regression<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385916">385916</a><br/>
+Reporter: rnewton<br/>
+Testers: alecdavis<br/>
+Coders: alecdavis<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-21429">ASTERISK-21429</a>: Distributed Device State using JABBER/XMPP not working since Secuity Advisory AST-2012-015 <br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385916">385916</a><br/>
+Reporter: alecdavis<br/>
+Testers: alecdavis<br/>
+Coders: alecdavis<br/>
+<br/>
+<h3>Category: Sounds</h3><br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19431">ASTERISK-19431</a>: Asterisk Russian language support missing voicemail prompts<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386877">386877</a><br/>
+Reporter: volga629<br/>
+Coders: newtonr<br/>
+<br/>
+<a href="https://issues.asterisk.org/jira/browse/ASTERISK-19721">ASTERISK-19721</a>: Asterisk core sounds, italian version<br/>
+Revision: <a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386877">386877</a><br/>
+Reporter: floradio<br/>
+Coders: newtonr<br/>
+<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><br/><p>This is a list of all changes that went into this release that did not directly close an issue from the issue tracker. The commits may have been marked as being related to an issue. If that is the case, the issue numbers are listed here, as well.</p>
+<table width="100%" border="1">
+<tr><td><b>Revision</b></td><td><b>Author</b></td><td><b>Summary</b></td><td><b>Issues Referenced</b></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=384410">384410</a></td><td>dlee</td><td>Fix parallel make problems.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=384544">384544</a></td><td>dlee</td><td>Fixed spurious rebuilds of func_version.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=384640">384640</a></td><td>mjordan</td><td>Update documentation for CHANNEL function</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385047">385047</a></td><td>newtonr</td><td>Modified the list of keys for the driver backends for sake of sample clarity</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385402">385402</a></td><td>alecdavis</td><td>IAX2, prevent network thread starting before all helper threads are ready</td>
+<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-18827">ASTERISK-18827</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385429">385429</a></td><td>alecdavis</td><td>IAX2 defer_full_frames fail to get sent</td>
+<td><a href="https://issues.asterisk.org/jira/browse/ASTERISK-18827">ASTERISK-18827</a></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385683">385683</a></td><td>dlee</td><td>Fix the svn:keywords property on several files.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=385745">385745</a></td><td>qwell</td><td>Don't unnecessarily rebuild things on every run of 'make'.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386049">386049</a></td><td>dlee</td><td>cli.c: Properly initialize debug_modules and verbose_modules.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386483">386483</a></td><td>elguero</td><td>Change Case On Forcerport For Consistency</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386792">386792</a></td><td>oej</td><td>Play periodic prompst for first call in a call queue</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=386929">386929</a></td><td>seanbright</td><td>Use the proper lower bound when doing saturation arithmetic.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=387421">387421</a></td><td>mjordan</td><td>Update utils Makefile to handle r387294</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=387688">387688</a></td><td>russell</td><td>Make SLA reload more paranoid.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388376">388376</a></td><td>mmichelson</td><td>Fix memory leak in pbx_dundi</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388423">388423</a></td><td>rmudgett</td><td>Add version.c to list of ignored files in the utils directory.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=388596">388596</a></td><td>kmoore</td><td>Revert r388529 for now</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=389244">389244</a></td><td>qwell</td><td>Add doxygen.log to svn:ignore property.</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=391065">391065</a></td><td>alecdavis</td><td>IAX2: refactor nativebridge transfer</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=391107">391107</a></td><td>alecdavis</td><td>fix bad edit after conflict resolution</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=391143">391143</a></td><td>alecdavis</td><td>chan_iax2: nativebridge refactor, missed unlock bridgecallno</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=394179">394179</a></td><td>bebuild</td><td>Create the tag for 1.8.23.0-rc2</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=394182">394182</a></td><td>bebuild</td><td>Merge r391333 for 1.8.23.0-rc2</td>
+<td></td></tr><tr><td><a href="http://svn.digium.com/view/asterisk/branches/1.8?view=revision&revision=394184">394184</a></td><td>bebuild</td><td>Importing release summary for 1.8.23.0-rc2 release.</td>
+<td></td></tr></table>
+<hr/>
+<a name="diffstat"><h2 align="center">Diffstat Results</h2></a>
+<center><a href="#top">[Back to Top]</a></center><br/><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>
+.version | 2
+CHANGES | 9
+ChangeLog | 10
+Makefile | 25 -
+UPGRADE.txt | 10
+addons/chan_ooh323.c | 7
+apps/app_meetme.c | 11
+apps/app_queue.c | 21 -
+apps/app_voicemail.c | 48 +-
+asterisk-1.8.23.0-rc1-summary.html | 512 --------------------------
+asterisk-1.8.23.0-rc1-summary.txt | 603 -------------------------------
+asterisk-1.8.23.0-rc2-summary.html | 60 +++
+asterisk-1.8.23.0-rc2-summary.txt | 90 ++++
+channels/chan_alsa.c | 7
+channels/chan_dahdi.c | 40 +-
+channels/chan_iax2.c | 139 ++++---
+channels/chan_sip.c | 394 ++++++++++++--------
+channels/misdn/isdn_msg_parser.c | 2
+channels/sig_pri.c | 4
+channels/sig_pri.h | 2
+channels/sip/include/sip.h | 1
+configs/chan_dahdi.conf.sample | 12
+configs/extconfig.conf.sample | 6
+configs/queues.conf.sample | 7
+configure.ac | 3
+contrib/realtime/mysql/sippeers.sql | 2
+contrib/realtime/postgresql/realtime.sql | 2
+funcs/func_channel.c | 14
+include/asterisk/autoconfig.h.in | 3
+include/asterisk/utils.h | 12
+main/channel.c | 23 -
+main/cli.c | 4
+main/config.c | 6
+main/devicestate.c | 13
+main/features.c | 27 -
+main/lock.c | 2
+main/logger.c | 4
+main/manager.c | 2
+main/pbx.c | 5
+main/slinfactory.c | 8
+main/utils.c | 6
+pbx/pbx_dundi.c | 3
+res/res_config_ldap.c | 20 -
+res/res_jabber.c | 5
+res/res_mutestream.c | 2
+res/res_rtp_asterisk.c | 19
+res/res_rtp_multicast.c | 42 ++
+res/res_srtp.c | 3
+res/res_timing_pthread.c | 121 ++----
+sounds/Makefile | 5
+utils/Makefile | 6
+51 files changed, 883 insertions(+), 1501 deletions(-)
+</pre><br/>
+<hr/>
+</body>
+</html>
|
[-]
[+]
|
Added |
asterisk-1.8.23.0.tar.xz/asterisk-1.8.23.0-summary.txt
^
|
@@ -0,0 +1,618 @@
+ Release Summary
+
+ asterisk-1.8.23.0
+
+ Date: 2013-07-15
+
+ <asteriskteam@digium.com>
+
+ ----------------------------------------------------------------------
+
+ Table of Contents
+
+ 1. Summary
+ 2. Contributors
+ 3. Closed Issues
+ 4. Other Changes
+ 5. Diffstat
+
+ ----------------------------------------------------------------------
+
+ Summary
+
+ [Back to Top]
+
+ This release includes only bug fixes. The changes included were made only
+ to address problems that have been identified in this release series.
+ Users should be able to safely upgrade to this version if this release
+ series is already in use. Users considering upgrading from a previous
+ release series 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-1.8.22.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 closed by commits that went into this
+ release.
+
+ Coders Testers Reporters
+ 14 alecdavis 9 alecdavis 8 coreyfarrell
+ 6 Corey Farrell 7 mjordan 6 alecdavis
+ 6 elguero 6 sruffell 2 isrl
+ 6 sruffell 6 Tony Lewis 2 pk16208
+ 5 rmudgett 3 elguero 1 avezina@ubikvoip.com
+ 4 dlee 1 Alexandre Vezina 1 blkline
+ 4 mjordan 1 Andrew Latham 1 dlmarten
+ 3 bebuild 1 Corey Farrell 1 elguero
+ 3 newtonr 1 Dan Martens 1 floradio
+ 2 kmoore 1 David Brillert 1 giacomo
+ 2 qwell 1 Dmitry Melekhov 1 gian
+ 2 seanbright 1 Ishfaq Malik 1 gkelleter
+ 1 Correy Farrell 1 Jaco Kroon 1 gknispel
+ 1 gknispel 1 jrose 1 greenlightcrm
+ 1 Guenther Kelleter 1 Peter Katzmann 1 ishmalik
+ 1 Karsten Wemheuer 1 Pietro Bertera 1 jcovert
+ 1 kawasaki 1 rmudgett 1 jhoppebugs
+ 1 may 1 Rodrigo P. Telles 1 jkroon
+ 1 Michael Walton 1 Tzafrir Cohen 1 kawasaki
+ 1 mmichelson 1 William luke 1 kiennd
+ 1 oej 1 mike@farsouthnet.com
+ 1 one47 1 mjordan
+ 1 pbertera 1 mpaland
+ 1 russell 1 nikola.ciprich
+ 1 tzafrir 1 pgoldbaum
+ 1 remiq
+ 1 rnewton
+ 1 slesru
+ 1 telles
+ 1 usinternet
+ 1 volga629
+
+ ----------------------------------------------------------------------
+
+ 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.
+
+ Category: Addons/chan_ooh323
+
+ ASTERISK-21800: ooh323 channels stuck if no gatekeer or ooh323 reload
+ Revision: 390181
+ Reporter: slesru
+ Testers: Dmitry Melekhov
+ Coders: may
+
+ Category: Applications/app_mixmonitor
+
+ ASTERISK-21799: [patch] Dropouts/distortion in MixMonitor recording when
+ recording RTP with ptime of 60ms
+ Revision: 389895
+ Reporter: mike@farsouthnet.com
+ Testers: jrose
+ Coders: Michael Walton
+
+ Category: Applications/app_page
+
+ ASTERISK-19883: [patch] - RTP packet with Timestamp=0 on Multicast paging
+ Revision: 385636
+ Reporter: giacomo
+ Testers: Pietro Bertera, Tzafrir Cohen
+ Coders: tzafrir, pbertera
+
+ Category: Applications/app_queue
+
+ ASTERISK-21397: [patch] manager crash on unloading app_queue
+ Revision: 385593
+ Reporter: pk16208
+ Testers: Corey Farrell
+ Coders: elguero
+
+ ASTERISK-21782: Delayed audio to agent when answering a queue call
+ Revision: 391215
+ Reporter: remiq
+ Coders: mjordan
+
+ Category: Applications/app_voicemail
+
+ ASTERISK-18207: externnotify script called with (null) context parameter
+ during pollmessages run, essentially stopping it from running.
+ Revision: 384325
+ Reporter: blkline
+ Coders: Karsten Wemheuer
+
+ ASTERISK-19431: Asterisk Russian language support missing voicemail
+ prompts
+ Revision: 386877
+ Reporter: volga629
+ Coders: newtonr
+
+ ASTERISK-21302: [patch] app_voicemail crashes on config error and there
+ are some potential memory leaks
+ Revision: 385551
+ Reporter: jkroon
+ Testers: Jaco Kroon, elguero
+ Coders: elguero
+
+ Category: CDR/General
+
+ ASTERISK-21394: [patch] - Fundamental changes to CDR within single
+ asterisk family (1.8) during externally initiated blind transfers with an
+ h extension present
+ Revision: 387036
+ Reporter: ishmalik
+ Testers: Ishfaq Malik, mjordan
+ Coders: one47
+
+ Category: Channels/chan_agent
+
+ ASTERISK-21793: Segmentation fault when dealing with Agent channels
+ Revision: 390044
+ Reporter: telles
+ Testers: Rodrigo P. Telles
+ Coders: rmudgett
+
+ Category: Channels/chan_alsa
+
+ ASTERISK-21329: chan_alsa: patch for crash when audio device in unexpected
+ state
+ Revision: 385633
+ Reporter: kawasaki
+ Coders: kawasaki
+
+ Category: Channels/chan_dahdi
+
+ ASTERISK-21151: 'Squelching' early media in DAHDI (sig_pri)
+ Revision: 384685
+ Reporter: gian
+ Testers: rmudgett
+ Coders: rmudgett
+
+ ASTERISK-21744: [patch] - fix lower bound check with -ve integer
+ conversion from a float
+ Revision: 387297
+ Reporter: alecdavis
+ Testers: alecdavis
+ Coders: alecdavis
+
+ Category: Channels/chan_iax2
+
+ ASTERISK-21409: [patch] - Race condition with IAX2 transfer, 2 releases
+ happen on same call legs. locks up with many threads blocked by
+ iax2_destroy_helper
+ Revision: 391062
+ Reporter: alecdavis
+ Testers: alecdavis
+ Coders: alecdavis
+
+ Category: Channels/chan_sip/General
+
+ ASTERISK-17436: random deadlocks - SIP messages not being processed
+ Revision: 386109
+ Reporter: usinternet
+ Testers: sruffell, mjordan, Tony Lewis
+ Coders: sruffell
+
+ ASTERISK-19754: Deadlock in chan_sip / pthread_timing
+ Revision: 386109
+ Reporter: nikola.ciprich
+ Testers: sruffell, mjordan, Tony Lewis
+ Coders: sruffell
+
+ ASTERISK-20225: Segmentation Fault on manager_play_dtmf sip_senddigit_end
+ Revision: 385170
+ Reporter: jhoppebugs
+ Coders: mjordan
+
+ ASTERISK-21225: [patch] Setting nat=force_rport in [general] sip.conf will
+ never work
+ Revision: 385008
+ Reporter: avezina@ubikvoip.com
+ Testers: Alexandre Vezina, elguero
+ Coders: elguero
+
+ ASTERISK-21243: [patch] Backport Appropiate NAT Setting Cleanups To 1.8
+ Revision: 384779
+ Reporter: elguero
+ Coders: elguero
+
+ ASTERISK-21246: [patch] use of rtpkeepalive uses CN packet with marker bit
+ set, plus a ULAW payload instead of CN
+ Revision: 388111
+ Reporter: pk16208
+ Testers: Peter Katzmann, elguero
+ Coders: elguero
+
+ ASTERISK-21389: res_timing_pthread fails to return from write, causing
+ timer dependent operations to block indefinitely
+ Revision: 386109
+ Reporter: mjordan
+ Testers: sruffell, mjordan, Tony Lewis
+ Coders: sruffell
+
+ ASTERISK-21466: [patch] [crash] command (sip show peers) crashes Asterisk
+ with ~3500 registered peers
+ Revision: 387133
+ Reporter: gknispel
+ Coders: gknispel
+
+ ASTERISK-21677: NOTIFYs for BLF start queuing up and fail to be sent out
+ Revision: 387875
+ Reporter: dlmarten
+ Testers: Dan Martens, David Brillert, alecdavis
+ Coders: alecdavis
+
+ ASTERISK-21742: SIP Session-Expires: Set timer to correctly expire at
+ (~2/3) of the expiry interval when not the refresher.
+ Revision: 387344
+ Reporter: alecdavis
+ Testers: alecdavis
+ Coders: alecdavis
+
+ Category: Channels/chan_sip/Interoperability
+
+ ASTERISK-21664: Asterisk terminates calls if Session-Expires isn't present
+ on INVITE
+ Revision: 387312
+ Reporter: alecdavis
+ Testers: alecdavis
+ Coders: alecdavis
+
+ Category: Core/Bridging
+
+ ASTERISK-21356: Segfault during bridge channel proxy inspection in a
+ masquerade caused by an AMI Redirect of two channels
+ Revision: 386256
+ Reporter: greenlightcrm
+ Testers: William luke
+ Coders: rmudgett
+
+ Category: Core/Channels
+
+ ASTERISK-21356: Segfault during bridge channel proxy inspection in a
+ masquerade caused by an AMI Redirect of two channels
+ Revision: 386256
+ Reporter: greenlightcrm
+ Testers: William luke
+ Coders: rmudgett
+
+ Category: Core/Configuration
+
+ ASTERISK-21412: [patch] config.c/config_text_file_load() leaks globbuf
+ Revision: 386672
+ Reporter: coreyfarrell
+ Coders: Corey Farrell
+
+ Category: Core/General
+
+ ASTERISK-21407: [patch] features_shutdown doesn't finish cleanup
+ Revision: 386641
+ Reporter: coreyfarrell
+ Coders: Corey Farrell
+
+ ASTERISK-21716: [patch] logger thread sometimes exits with messages still
+ queued
+ Revision: 389676
+ Reporter: coreyfarrell
+ Coders: Corey Farrell
+
+ ASTERISK-21724: [patch] __ast_rwlock_destroy can segfault with
+ DEBUG_THREADS
+ Revision: 388838
+ Reporter: coreyfarrell
+ Coders: Corey Farrell
+
+ ASTERISK-21743: [patch] - Core show Locks, Include Asterisk version.
+ Revision: 387294
+ Reporter: alecdavis
+ Testers: alecdavis
+ Coders: alecdavis
+
+ Category: Core/ManagerInterface
+
+ ASTERISK-21397: [patch] manager crash on unloading app_queue
+ Revision: 385593
+ Reporter: pk16208
+ Testers: Corey Farrell
+ Coders: elguero
+
+ Category: Core/PBX
+
+ ASTERISK-21723: [patch] pbx cleanup is incomplete
+ Revision: 388532
+ Reporter: coreyfarrell
+ Coders: Correy Farrell
+
+ Category: Resources/res_config_ldap
+
+ ASTERISK-17386: [patch] res_config_ldap with malloc_debug produces
+ munmap_chunk(): invalid pointer:
+ Revision: 385190
+ Reporter: jcovert
+ Testers: Andrew Latham
+ Coders: seanbright
+
+ Category: Resources/res_jabber
+
+ ASTERISK-21429: Distributed Device State using JABBER/XMPP not working
+ since Secuity Advisory AST-2012-015
+ Revision: 385916
+ Reporter: alecdavis
+ Testers: alecdavis
+ Coders: alecdavis
+
+ Category: Resources/res_musiconhold
+
+ ASTERISK-17467: external moh is blocked when using dahdi timer
+ Revision: 386109
+ Reporter: isrl
+ Testers: sruffell, mjordan, Tony Lewis
+ Coders: sruffell
+
+ Category: Resources/res_rtp_asterisk
+
+ ASTERISK-21246: [patch] use of rtpkeepalive uses CN packet with marker bit
+ set, plus a ULAW payload instead of CN
+ Revision: 388111
+ Reporter: pk16208
+ Testers: Peter Katzmann, elguero
+ Coders: elguero
+
+ ASTERISK-21522: [patch] DTMF end is not always processed, causes one-way
+ audio
+ Revision: 387213
+ Reporter: coreyfarrell
+ Coders: Corey Farrell
+
+ Category: Resources/res_srtp
+
+ ASTERISK-21719: [patch] res_srtp doesn't cleanup srtp library
+ Revision: 388529
+ Reporter: coreyfarrell
+ Coders: Corey Farrell
+
+ ASTERISK-21719: [patch] res_srtp doesn't cleanup srtp library
+ Revision: 388768
+ Reporter: coreyfarrell
+ Coders: kmoore
+
+ Category: Resources/res_timing_pthread
+
+ ASTERISK-17436: random deadlocks - SIP messages not being processed
+ Revision: 386109
+ Reporter: usinternet
+ Testers: sruffell, mjordan, Tony Lewis
+ Coders: sruffell
+
+ ASTERISK-17458: Deadlocks when using pthread timer
+ Revision: 386109
+ Reporter: isrl
+ Testers: sruffell, mjordan, Tony Lewis
+ Coders: sruffell
+
+ ASTERISK-19754: Deadlock in chan_sip / pthread_timing
+ Revision: 386109
+ Reporter: nikola.ciprich
+ Testers: sruffell, mjordan, Tony Lewis
+ Coders: sruffell
+
+ ASTERISK-20577: Asterisk deadlocks waiting for timer in res_timing_pthread
+ while running AGI script
+ Revision: 386109
+ Reporter: kiennd
+ Testers: sruffell, mjordan, Tony Lewis
+ Coders: sruffell
+
+ ASTERISK-21389: res_timing_pthread fails to return from write, causing
+ timer dependent operations to block indefinitely
+ Revision: 386109
+ Reporter: mjordan
+ Testers: sruffell, mjordan, Tony Lewis
+ Coders: sruffell
+
+ Category: Resources/res_xmpp
+
+ ASTERISK-21069: xmpp distributed device states aggregation update fails
+ Revision: 385916
+ Reporter: mpaland
+ Testers: alecdavis
+ Coders: alecdavis
+
+ ASTERISK-21164: Need clarification on distributed device state behavior
+ and whether this behavior is a possible regression
+ Revision: 385916
+ Reporter: rnewton
+ Testers: alecdavis
+ Coders: alecdavis
+
+ ASTERISK-21429: Distributed Device State using JABBER/XMPP not working
+ since Secuity Advisory AST-2012-015
+ Revision: 385916
+ Reporter: alecdavis
+ Testers: alecdavis
+ Coders: alecdavis
+
+ Category: Sounds
+
+ ASTERISK-19431: Asterisk Russian language support missing voicemail
+ prompts
+ Revision: 386877
+ Reporter: volga629
+ Coders: newtonr
+
+ ASTERISK-19721: Asterisk core sounds, italian version
+ Revision: 386877
+ Reporter: floradio
+ Coders: newtonr
+
+ ----------------------------------------------------------------------
+
+ Commits Not Associated with an Issue
+
+ [Back to Top]
+
+ This is a list of all changes that went into this release that did not
+ directly close an issue from the issue tracker. The commits may have been
+ marked as being related to an issue. If that is the case, the issue
+ numbers are listed here, as well.
+
+ +------------------------------------------------------------------------+
+ | Revision | Author | Summary | Issues Referenced |
+ |----------+------------+----------------------------+-------------------|
+ | 384410 | dlee | Fix parallel make | |
+ | | | problems. | |
+ |----------+------------+----------------------------+-------------------|
+ | 384544 | dlee | Fixed spurious rebuilds of | |
+ | | | func_version. | |
+ |----------+------------+----------------------------+-------------------|
+ | 384640 | mjordan | Update documentation for | |
+ | | | CHANNEL function | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Modified the list of keys | |
+ | 385047 | newtonr | for the driver backends | |
+ | | | for sake of sample clarity | |
+ |----------+------------+----------------------------+-------------------|
+ | | | IAX2, prevent network | |
+ | 385402 | alecdavis | thread starting before all | ASTERISK-18827 |
+ | | | helper threads are ready | |
+ |----------+------------+----------------------------+-------------------|
+ | 385429 | alecdavis | IAX2 defer_full_frames | ASTERISK-18827 |
+ | | | fail to get sent | |
+ |----------+------------+----------------------------+-------------------|
+ | 385683 | dlee | Fix the svn:keywords | |
+ | | | property on several files. | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Don't unnecessarily | |
+ | 385745 | qwell | rebuild things on every | |
+ | | | run of 'make'. | |
+ |----------+------------+----------------------------+-------------------|
+ | | | cli.c: Properly initialize | |
+ | 386049 | dlee | debug_modules and | |
+ | | | verbose_modules. | |
+ |----------+------------+----------------------------+-------------------|
+ | 386483 | elguero | Change Case On Forcerport | |
+ | | | For Consistency | |
+ |----------+------------+----------------------------+-------------------|
+ | 386792 | oej | Play periodic prompst for | |
+ | | | first call in a call queue | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Use the proper lower bound | |
+ | 386929 | seanbright | when doing saturation | |
+ | | | arithmetic. | |
+ |----------+------------+----------------------------+-------------------|
+ | 387421 | mjordan | Update utils Makefile to | |
+ | | | handle r387294 | |
+ |----------+------------+----------------------------+-------------------|
+ | 387688 | russell | Make SLA reload more | |
+ | | | paranoid. | |
+ |----------+------------+----------------------------+-------------------|
+ | 388376 | mmichelson | Fix memory leak in | |
+ | | | pbx_dundi | |
+ |----------+------------+----------------------------+-------------------|
+ | | | Add version.c to list of | |
+ | 388423 | rmudgett | ignored files in the utils | |
+ | | | directory. | |
+ |----------+------------+----------------------------+-------------------|
+ | 388596 | kmoore | Revert r388529 for now | |
+ |----------+------------+----------------------------+-------------------|
+ | 389244 | qwell | Add doxygen.log to | |
+ | | | svn:ignore property. | |
+ |----------+------------+----------------------------+-------------------|
+ | 391065 | alecdavis | IAX2: refactor | |
+ | | | nativebridge transfer | |
+ |----------+------------+----------------------------+-------------------|
+ | 391107 | alecdavis | fix bad edit after | |
+ | | | conflict resolution | |
+ |----------+------------+----------------------------+-------------------|
+ | | | chan_iax2: nativebridge | |
+ | 391143 | alecdavis | refactor, missed unlock | |
+ | | | bridgecallno | |
+ |----------+------------+----------------------------+-------------------|
+ | 394179 | bebuild | Create the tag for | |
+ | | | 1.8.23.0-rc2 | |
+ |----------+------------+----------------------------+-------------------|
+ | 394182 | bebuild | Merge r391333 for | |
+ | | | 1.8.23.0-rc2 | |
+ |----------+------------+----------------------------+-------------------|
+ | 394184 | bebuild | Importing release summary | |
+ | | | for 1.8.23.0-rc2 release. | |
+ +------------------------------------------------------------------------+
+
+ ----------------------------------------------------------------------
+
+ 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.
+
+ .version | 2
+ CHANGES | 9
+ ChangeLog | 10
+ Makefile | 25 -
+ UPGRADE.txt | 10
+ addons/chan_ooh323.c | 7
+ apps/app_meetme.c | 11
+ apps/app_queue.c | 21 -
+ apps/app_voicemail.c | 48 +-
+ asterisk-1.8.23.0-rc1-summary.html | 512 --------------------------
+ asterisk-1.8.23.0-rc1-summary.txt | 603 -------------------------------
+ asterisk-1.8.23.0-rc2-summary.html | 60 +++
+ asterisk-1.8.23.0-rc2-summary.txt | 90 ++++
+ channels/chan_alsa.c | 7
+ channels/chan_dahdi.c | 40 +-
+ channels/chan_iax2.c | 139 ++++---
+ channels/chan_sip.c | 394 ++++++++++++--------
+ channels/misdn/isdn_msg_parser.c | 2
+ channels/sig_pri.c | 4
+ channels/sig_pri.h | 2
+ channels/sip/include/sip.h | 1
+ configs/chan_dahdi.conf.sample | 12
+ configs/extconfig.conf.sample | 6
+ configs/queues.conf.sample | 7
+ configure.ac | 3
+ contrib/realtime/mysql/sippeers.sql | 2
+ contrib/realtime/postgresql/realtime.sql | 2
+ funcs/func_channel.c | 14
+ include/asterisk/autoconfig.h.in | 3
+ include/asterisk/utils.h | 12
+ main/channel.c | 23 -
+ main/cli.c | 4
+ main/config.c | 6
+ main/devicestate.c | 13
+ main/features.c | 27 -
+ main/lock.c | 2
+ main/logger.c | 4
+ main/manager.c | 2
+ main/pbx.c | 5
+ main/slinfactory.c | 8
+ main/utils.c | 6
+ pbx/pbx_dundi.c | 3
+ res/res_config_ldap.c | 20 -
+ res/res_jabber.c | 5
+ res/res_mutestream.c | 2
+ res/res_rtp_asterisk.c | 19
+ res/res_rtp_multicast.c | 42 ++
+ res/res_srtp.c | 3
+ res/res_timing_pthread.c | 121 ++----
+ sounds/Makefile | 5
+ utils/Makefile | 6
+ 51 files changed, 883 insertions(+), 1501 deletions(-)
+
+ ----------------------------------------------------------------------
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/channels/chan_alsa.c
^
|
@@ -34,7 +34,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 370642 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385633 $")
#include <fcntl.h>
#include <sys/ioctl.h>
@@ -482,6 +482,13 @@
} else if (r >= 0) {
off -= r;
}
+
+ /* Return NULL frame on error */
+ if (r < 0) {
+ ast_mutex_unlock(&alsalock);
+ return &f;
+ }
+
/* Update positions */
readpos += r;
left -= r;
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/channels/chan_dahdi.c
^
|
@@ -49,7 +49,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 380572 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 387297 $")
#if defined(__NetBSD__) || defined(__FreeBSD__)
#include <pthread.h>
@@ -1365,6 +1365,7 @@
.localdialplan = PRI_NATIONAL_ISDN + 1,
.nodetype = PRI_CPE,
.qsigchannelmapping = DAHDI_CHAN_MAPPING_PHYSICAL,
+ .inband_on_proceeding = 1,
#if defined(HAVE_PRI_CCSS)
.cc_ptmp_recall_mode = 1,/* specificRecall */
@@ -5014,9 +5015,12 @@
if (drc) {
k = drc_sample(k, drc);
}
- k = (float)k*linear_gain;
- if (k > 32767) k = 32767;
- if (k < -32767) k = -32767;
+ k = (float)k * linear_gain;
+ if (k > 32767) {
+ k = 32767;
+ } else if (k < -32768) {
+ k = -32768;
+ }
g->txgain[j] = AST_LIN2A(k);
} else {
g->txgain[j] = j;
@@ -5030,9 +5034,12 @@
if (drc) {
k = drc_sample(k, drc);
}
- k = (float)k*linear_gain;
- if (k > 32767) k = 32767;
- if (k < -32767) k = -32767;
+ k = (float)k * linear_gain;
+ if (k > 32767) {
+ k = 32767;
+ } else if (k < -32768) {
+ k = -32768;
+ }
g->txgain[j] = AST_LIN2MU(k);
} else {
@@ -5057,9 +5064,12 @@
if (drc) {
k = drc_sample(k, drc);
}
- k = (float)k*linear_gain;
- if (k > 32767) k = 32767;
- if (k < -32767) k = -32767;
+ k = (float)k * linear_gain;
+ if (k > 32767) {
+ k = 32767;
+ } else if (k < -32768) {
+ k = -32768;
+ }
g->rxgain[j] = AST_LIN2A(k);
} else {
g->rxgain[j] = j;
@@ -5073,9 +5083,12 @@
if (drc) {
k = drc_sample(k, drc);
}
- k = (float)k*linear_gain;
- if (k > 32767) k = 32767;
- if (k < -32767) k = -32767;
+ k = (float)k * linear_gain;
+ if (k > 32767) {
+ k = 32767;
+ } else if (k < -32768) {
+ k = -32768;
+ }
g->rxgain[j] = AST_LIN2MU(k);
} else {
g->rxgain[j] = j;
@@ -12680,6 +12693,7 @@
pris[span].pri.layer1_ignored = 0;
}
pris[span].pri.append_msn_to_user_tag = conf->pri.pri.append_msn_to_user_tag;
+ pris[span].pri.inband_on_proceeding = conf->pri.pri.inband_on_proceeding;
ast_copy_string(pris[span].pri.initial_user_tag, conf->chan.cid_tag, sizeof(pris[span].pri.initial_user_tag));
ast_copy_string(pris[span].pri.msn_list, conf->pri.pri.msn_list, sizeof(pris[span].pri.msn_list));
#if defined(HAVE_PRI_MWI)
@@ -17677,6 +17691,8 @@
#endif /* defined(HAVE_PRI_MWI) */
} else if (!strcasecmp(v->name, "append_msn_to_cid_tag")) {
confp->pri.pri.append_msn_to_user_tag = ast_true(v->value);
+ } else if (!strcasecmp(v->name, "inband_on_proceeding")) {
+ confp->pri.pri.inband_on_proceeding = ast_true(v->value);
} else if (!strcasecmp(v->name, "layer1_presence")) {
if (!strcasecmp(v->value, "required")) {
confp->pri.pri.layer1_ignored = 0;
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/channels/chan_iax2.c
^
|
@@ -38,7 +38,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 382233 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 394182 $")
#include <sys/mman.h>
#include <dirent.h>
@@ -9608,6 +9608,9 @@
if (!cur_pkt_buf)
AST_LIST_INSERT_TAIL(&to_here->full_frames, pkt_buf, entry);
+
+ to_here->iostate = IAX_IOSTATE_READY;
+ ast_cond_signal(&to_here->cond);
ast_mutex_unlock(&to_here->lock);
}
@@ -11366,65 +11369,99 @@
}
break;
case IAX_COMMAND_TXREJ:
- iaxs[fr->callno]->transferring = 0;
- ast_verb(3, "Channel '%s' unable to transfer\n", iaxs[fr->callno]->owner ? iaxs[fr->callno]->owner->name : "<Unknown>");
- memset(&iaxs[fr->callno]->transfer, 0, sizeof(iaxs[fr->callno]->transfer));
if (iaxs[fr->callno]->bridgecallno) {
- if (iaxs[iaxs[fr->callno]->bridgecallno]->transferring) {
- iaxs[iaxs[fr->callno]->bridgecallno]->transferring = 0;
- send_command(iaxs[iaxs[fr->callno]->bridgecallno], AST_FRAME_IAX, IAX_COMMAND_TXREJ, 0, NULL, 0, -1);
+ while (ast_mutex_trylock(&iaxsl[iaxs[fr->callno]->bridgecallno])) {
+ DEADLOCK_AVOIDANCE(&iaxsl[fr->callno]);
}
+ if (!iaxs[fr->callno]) {
+ break;
+ }
+ }
+
+ iaxs[fr->callno]->transferring = TRANSFER_NONE;
+ ast_verb(3, "Channel '%s' unable to transfer\n", iaxs[fr->callno]->owner ? iaxs[fr->callno]->owner->name : "<Unknown>");
+ memset(&iaxs[fr->callno]->transfer, 0, sizeof(iaxs[fr->callno]->transfer));
+
+ if (!iaxs[fr->callno]->bridgecallno) {
+ break;
+ }
+
+ if (iaxs[iaxs[fr->callno]->bridgecallno]->transferring) {
+ iaxs[iaxs[fr->callno]->bridgecallno]->transferring = TRANSFER_NONE;
+ send_command(iaxs[iaxs[fr->callno]->bridgecallno], AST_FRAME_IAX, IAX_COMMAND_TXREJ, 0, NULL, 0, -1);
}
+ ast_mutex_unlock(&iaxsl[iaxs[fr->callno]->bridgecallno]);
break;
case IAX_COMMAND_TXREADY:
- if ((iaxs[fr->callno]->transferring == TRANSFER_BEGIN) ||
- (iaxs[fr->callno]->transferring == TRANSFER_MBEGIN)) {
- if (iaxs[fr->callno]->transferring == TRANSFER_MBEGIN)
- iaxs[fr->callno]->transferring = TRANSFER_MREADY;
- else
- iaxs[fr->callno]->transferring = TRANSFER_READY;
- ast_verb(3, "Channel '%s' ready to transfer\n", iaxs[fr->callno]->owner ? iaxs[fr->callno]->owner->name : "<Unknown>");
+ if (iaxs[fr->callno]->bridgecallno) {
+ while (ast_mutex_trylock(&iaxsl[iaxs[fr->callno]->bridgecallno])) {
+ DEADLOCK_AVOIDANCE(&iaxsl[fr->callno]);
+ }
+ if (!iaxs[fr->callno]) {
+ break;
+ }
+ }
+
+ if (iaxs[fr->callno]->transferring == TRANSFER_BEGIN) {
+ iaxs[fr->callno]->transferring = TRANSFER_READY;
+ } else if (iaxs[fr->callno]->transferring == TRANSFER_MBEGIN) {
+ iaxs[fr->callno]->transferring = TRANSFER_MREADY;
+ } else {
if (iaxs[fr->callno]->bridgecallno) {
- if ((iaxs[iaxs[fr->callno]->bridgecallno]->transferring == TRANSFER_READY) ||
- (iaxs[iaxs[fr->callno]->bridgecallno]->transferring == TRANSFER_MREADY)) {
- /* They're both ready, now release them. */
- if (iaxs[fr->callno]->transferring == TRANSFER_MREADY) {
- ast_verb(3, "Attempting media bridge of %s and %s\n", iaxs[fr->callno]->owner ? iaxs[fr->callno]->owner->name : "<Unknown>",
- iaxs[iaxs[fr->callno]->bridgecallno]->owner ? iaxs[iaxs[fr->callno]->bridgecallno]->owner->name : "<Unknown>");
+ ast_mutex_unlock(&iaxsl[iaxs[fr->callno]->bridgecallno]);
+ }
+ break;
+ }
+ ast_verb(3, "Channel '%s' ready to transfer\n", iaxs[fr->callno]->owner ? iaxs[fr->callno]->owner->name : "<Unknown>");
- iaxs[iaxs[fr->callno]->bridgecallno]->transferring = TRANSFER_MEDIA;
- iaxs[fr->callno]->transferring = TRANSFER_MEDIA;
+ if (!iaxs[fr->callno]->bridgecallno) {
+ break;
+ }
- memset(&ied0, 0, sizeof(ied0));
- memset(&ied1, 0, sizeof(ied1));
- iax_ie_append_short(&ied0, IAX_IE_CALLNO, iaxs[iaxs[fr->callno]->bridgecallno]->peercallno);
- iax_ie_append_short(&ied1, IAX_IE_CALLNO, iaxs[fr->callno]->peercallno);
- send_command(iaxs[fr->callno], AST_FRAME_IAX, IAX_COMMAND_TXMEDIA, 0, ied0.buf, ied0.pos, -1);
- send_command(iaxs[iaxs[fr->callno]->bridgecallno], AST_FRAME_IAX, IAX_COMMAND_TXMEDIA, 0, ied1.buf, ied1.pos, -1);
- } else {
- ast_verb(3, "Releasing %s and %s\n", iaxs[fr->callno]->owner ? iaxs[fr->callno]->owner->name : "<Unknown>",
- iaxs[iaxs[fr->callno]->bridgecallno]->owner ? iaxs[iaxs[fr->callno]->bridgecallno]->owner->name : "<Unknown>");
+ if (!(iaxs[iaxs[fr->callno]->bridgecallno]->transferring == TRANSFER_READY) &&
+ !(iaxs[iaxs[fr->callno]->bridgecallno]->transferring == TRANSFER_MREADY)) {
+ ast_mutex_unlock(&iaxsl[iaxs[fr->callno]->bridgecallno]);
+ break;
+ }
- iaxs[iaxs[fr->callno]->bridgecallno]->transferring = TRANSFER_RELEASED;
- iaxs[fr->callno]->transferring = TRANSFER_RELEASED;
- ast_set_flag64(iaxs[iaxs[fr->callno]->bridgecallno], IAX_ALREADYGONE);
- ast_set_flag64(iaxs[fr->callno], IAX_ALREADYGONE);
-
- /* Stop doing lag & ping requests */
- stop_stuff(fr->callno);
- stop_stuff(iaxs[fr->callno]->bridgecallno);
+ /* Both sides are ready */
- memset(&ied0, 0, sizeof(ied0));
- memset(&ied1, 0, sizeof(ied1));
- iax_ie_append_short(&ied0, IAX_IE_CALLNO, iaxs[iaxs[fr->callno]->bridgecallno]->peercallno);
- iax_ie_append_short(&ied1, IAX_IE_CALLNO, iaxs[fr->callno]->peercallno);
- send_command(iaxs[fr->callno], AST_FRAME_IAX, IAX_COMMAND_TXREL, 0, ied0.buf, ied0.pos, -1);
- send_command(iaxs[iaxs[fr->callno]->bridgecallno], AST_FRAME_IAX, IAX_COMMAND_TXREL, 0, ied1.buf, ied1.pos, -1);
- }
+ /* XXX what isn't checked here is that both sides match transfer types. */
- }
- }
+ if (iaxs[fr->callno]->transferring == TRANSFER_MREADY) {
+ ast_verb(3, "Attempting media bridge of %s and %s\n", iaxs[fr->callno]->owner ? iaxs[fr->callno]->owner->name : "<Unknown>",
+ iaxs[iaxs[fr->callno]->bridgecallno]->owner ? iaxs[iaxs[fr->callno]->bridgecallno]->owner->name : "<Unknown>");
+
+ iaxs[iaxs[fr->callno]->bridgecallno]->transferring = TRANSFER_MEDIA;
+ iaxs[fr->callno]->transferring = TRANSFER_MEDIA;
+
+ memset(&ied0, 0, sizeof(ied0));
+ memset(&ied1, 0, sizeof(ied1));
+ iax_ie_append_short(&ied0, IAX_IE_CALLNO, iaxs[iaxs[fr->callno]->bridgecallno]->peercallno);
+ iax_ie_append_short(&ied1, IAX_IE_CALLNO, iaxs[fr->callno]->peercallno);
+ send_command(iaxs[fr->callno], AST_FRAME_IAX, IAX_COMMAND_TXMEDIA, 0, ied0.buf, ied0.pos, -1);
+ send_command(iaxs[iaxs[fr->callno]->bridgecallno], AST_FRAME_IAX, IAX_COMMAND_TXMEDIA, 0, ied1.buf, ied1.pos, -1);
+ } else {
+ ast_verb(3, "Releasing %s and %s\n", iaxs[fr->callno]->owner ? iaxs[fr->callno]->owner->name : "<Unknown>",
+ iaxs[iaxs[fr->callno]->bridgecallno]->owner ? iaxs[iaxs[fr->callno]->bridgecallno]->owner->name : "<Unknown>");
+
+ iaxs[iaxs[fr->callno]->bridgecallno]->transferring = TRANSFER_RELEASED;
+ iaxs[fr->callno]->transferring = TRANSFER_RELEASED;
+ ast_set_flag64(iaxs[iaxs[fr->callno]->bridgecallno], IAX_ALREADYGONE);
+ ast_set_flag64(iaxs[fr->callno], IAX_ALREADYGONE);
+
+ /* Stop doing lag & ping requests */
+ stop_stuff(fr->callno);
+ stop_stuff(iaxs[fr->callno]->bridgecallno);
+
+ memset(&ied0, 0, sizeof(ied0));
+ memset(&ied1, 0, sizeof(ied1));
+ iax_ie_append_short(&ied0, IAX_IE_CALLNO, iaxs[iaxs[fr->callno]->bridgecallno]->peercallno);
+ iax_ie_append_short(&ied1, IAX_IE_CALLNO, iaxs[fr->callno]->peercallno);
+ send_command(iaxs[fr->callno], AST_FRAME_IAX, IAX_COMMAND_TXREL, 0, ied0.buf, ied0.pos, -1);
+ send_command(iaxs[iaxs[fr->callno]->bridgecallno], AST_FRAME_IAX, IAX_COMMAND_TXREL, 0, ied1.buf, ied1.pos, -1);
}
+ ast_mutex_unlock(&iaxsl[iaxs[fr->callno]->bridgecallno]);
break;
case IAX_COMMAND_TXREQ:
try_transfer(iaxs[fr->callno], &ies);
@@ -12231,16 +12268,26 @@
ast_cond_init(&thread->cond, NULL);
ast_mutex_init(&thread->init_lock);
ast_cond_init(&thread->init_cond, NULL);
+
+ ast_mutex_lock(&thread->init_lock);
+
if (ast_pthread_create_background(&thread->threadid, NULL, iax2_process_thread, thread)) {
ast_log(LOG_WARNING, "Failed to create new thread!\n");
ast_mutex_destroy(&thread->lock);
ast_cond_destroy(&thread->cond);
+ ast_mutex_unlock(&thread->init_lock);
ast_mutex_destroy(&thread->init_lock);
ast_cond_destroy(&thread->init_cond);
ast_free(thread);
thread = NULL;
continue;
}
+ /* Wait for the thread to be ready */
+ ast_cond_wait(&thread->init_cond, &thread->init_lock);
+
+ /* Done with init_lock */
+ ast_mutex_unlock(&thread->init_lock);
+
AST_LIST_LOCK(&idle_list);
AST_LIST_INSERT_TAIL(&idle_list, thread, list);
AST_LIST_UNLOCK(&idle_list);
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/channels/chan_multicast_rtp.c
^
|
@@ -33,7 +33,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385683 $")
#include <fcntl.h>
#include <sys/signal.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/channels/chan_sip.c
^
|
@@ -209,7 +209,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 384162 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 387875 $")
#include <signal.h>
#include <sys/signal.h>
@@ -1211,6 +1211,8 @@
(head) = (element)->next; \
} while (0)
+struct show_peers_context;
+
/*---------------------------- Forward declarations of functions in chan_sip.c */
/* Note: This is added to help splitting up chan_sip.c into several files
in coming releases. */
@@ -1377,6 +1379,7 @@
static int peer_status(struct sip_peer *peer, char *status, int statuslen);
static char *sip_show_sched(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
static char * _sip_show_peers(int fd, int *total, struct mansession *s, const struct message *m, int argc, const char *argv[]);
+static struct sip_peer *_sip_show_peers_one(int fd, struct mansession *s, struct show_peers_context *cont, struct sip_peer *peer);
static char *sip_show_peers(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
static char *sip_show_objects(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a);
static void print_group(int fd, ast_group_t group, int crlf);
@@ -1491,7 +1494,7 @@
static int get_also_info(struct sip_pvt *p, struct sip_request *oreq);
static int parse_ok_contact(struct sip_pvt *pvt, struct sip_request *req);
static int set_address_from_contact(struct sip_pvt *pvt);
-static void check_via(struct sip_pvt *p, struct sip_request *req);
+static void check_via(struct sip_pvt *p, const struct sip_request *req);
static int get_rpid(struct sip_pvt *p, struct sip_request *oreq);
static int get_rdnis(struct sip_pvt *p, struct sip_request *oreq, char **name, char **number, int *reason);
static enum sip_get_dest_result get_destination(struct sip_pvt *p, struct sip_request *oreq, int *cc_recall_core_id);
@@ -6876,6 +6879,11 @@
int res = 0;
struct sip_pvt *p = ast->tech_pvt;
+ if (!p) {
+ ast_debug(1, "Asked to answer channel %s without tech pvt; ignoring\n",
+ ast->name);
+ return res;
+ }
sip_pvt_lock(p);
if (ast->_state != AST_STATE_UP) {
try_suggested_sip_codec(p);
@@ -7045,6 +7053,12 @@
struct sip_pvt *p = ast->tech_pvt;
int res = 0;
+ if (!p) {
+ ast_debug(1, "Asked to begin DTMF digit on channel %s with no pvt; ignoring\n",
+ ast->name);
+ return res;
+ }
+
sip_pvt_lock(p);
switch (ast_test_flag(&p->flags[0], SIP_DTMF)) {
case SIP_DTMF_INBAND:
@@ -7069,6 +7083,12 @@
struct sip_pvt *p = ast->tech_pvt;
int res = 0;
+ if (!p) {
+ ast_debug(1, "Asked to end DTMF digit on channel %s with no pvt; ignoring\n",
+ ast->name);
+ return res;
+ }
+
sip_pvt_lock(p);
switch (ast_test_flag(&p->flags[0], SIP_DTMF)) {
case SIP_DTMF_INFO:
@@ -7094,6 +7114,12 @@
struct sip_pvt *p = ast->tech_pvt;
int res;
+ if (!p) {
+ ast_debug(1, "Asked to transfer channel %s with no pvt; ignoring\n",
+ ast->name);
+ return -1;
+ }
+
if (dest == NULL) /* functions below do not take a NULL */
dest = "";
sip_pvt_lock(p);
@@ -7242,6 +7268,12 @@
struct sip_pvt *p = ast->tech_pvt;
int res = 0;
+ if (!p) {
+ ast_debug(1, "Asked to indicate condition on channel %s with no pvt; ignoring\n",
+ ast->name);
+ return res;
+ }
+
sip_pvt_lock(p);
switch(condition) {
case AST_CONTROL_RINGING:
@@ -13341,7 +13373,20 @@
p->pendinginvite = p->ocseq; /* Remember that we have a pending NOTIFY in order not to confuse the NOTIFY subsystem */
- return send_request(p, &req, XMIT_RELIABLE, p->ocseq);
+ /* Send as XMIT_CRITICAL as we may never receive a 200 OK Response which clears p->pendinginvite.
+ *
+ * extensionstate_update() uses p->pendinginvite for queuing control.
+ * Updates stall if pendinginvite <> 0.
+ *
+ * The most appropriate solution is to remove the subscription when the NOTIFY transaction fails.
+ * The client will re-subscribe after restarting or maxexpiry timeout.
+ */
+
+ /* RFC6665 4.2.2. Sending State Information to Subscribers
+ * If the NOTIFY request fails due to expiration of SIP Timer F (transaction timeout),
+ * the notifier SHOULD remove the subscription.
+ */
+ return send_request(p, &req, XMIT_CRITICAL, p->ocseq);
}
/*! \brief Notify user of messages waiting in voicemail (RFC3842)
@@ -16448,7 +16493,7 @@
}
/*! \brief check Via: header for hostname, port and rport request/answer */
-static void check_via(struct sip_pvt *p, struct sip_request *req)
+static void check_via(struct sip_pvt *p, const struct sip_request *req)
{
char via[512];
char *c, *maddr;
@@ -17152,7 +17197,7 @@
return CLI_SHOWUSAGE;
}
- ast_cli(a->fd, FORMAT, "Username", "Secret", "Accountcode", "Def.Context", "ACL", "ForcerPort");
+ ast_cli(a->fd, FORMAT, "Username", "Secret", "Accountcode", "Def.Context", "ACL", "Forcerport");
user_iter = ao2_iterator_init(peers, 0);
while ((user = ao2_t_iterator_next(&user_iter, "iterate thru peers table"))) {
@@ -17288,44 +17333,56 @@
return strcmp((*ap)->name, (*bp)->name);
}
+/* the last argument is left-aligned, so we don't need a size anyways */
+#define PEERS_FORMAT2 "%-25.25s %-39.39s %-3.3s %-10.10s %-3.3s %-8s %-10s %s\n"
+
+/*! \brief Used in the sip_show_peers functions to pass parameters */
+struct show_peers_context {
+ regex_t regexbuf;
+ int havepattern;
+ char idtext[256];
+ int realtimepeers;
+ int peers_mon_online;
+ int peers_mon_offline;
+ int peers_unmon_offline;
+ int peers_unmon_online;
+};
/*! \brief Execute sip show peers command */
static char *_sip_show_peers(int fd, int *total, struct mansession *s, const struct message *m, int argc, const char *argv[])
{
- regex_t regexbuf;
- int havepattern = FALSE;
+ struct show_peers_context cont = {
+ .havepattern = FALSE,
+ .idtext = "",
+
+ .peers_mon_online = 0,
+ .peers_mon_offline = 0,
+ .peers_unmon_online = 0,
+ .peers_unmon_offline = 0,
+ };
struct sip_peer *peer;
struct ao2_iterator* it_peers;
-/* the last argument is left-aligned, so we don't need a size anyways */
-#define FORMAT2 "%-25.25s %-39.39s %-3.3s %-10.10s %-3.3s %-8s %-10s %s\n"
-
- char name[256];
int total_peers = 0;
- int peers_mon_online = 0;
- int peers_mon_offline = 0;
- int peers_unmon_offline = 0;
- int peers_unmon_online = 0;
const char *id;
- char idtext[256] = "";
- int realtimepeers;
struct sip_peer **peerarray;
int k;
- realtimepeers = ast_check_realtime("sippeers");
+ cont.realtimepeers = ast_check_realtime("sippeers");
if (s) { /* Manager - get ActionID */
id = astman_get_header(m, "ActionID");
- if (!ast_strlen_zero(id))
- snprintf(idtext, sizeof(idtext), "ActionID: %s\r\n", id);
+ if (!ast_strlen_zero(id)) {
+ snprintf(cont.idtext, sizeof(cont.idtext), "ActionID: %s\r\n", id);
+ }
}
switch (argc) {
case 5:
if (!strcasecmp(argv[3], "like")) {
- if (regcomp(®exbuf, argv[4], REG_EXTENDED | REG_NOSUB))
+ if (regcomp(&cont.regexbuf, argv[4], REG_EXTENDED | REG_NOSUB))
return CLI_SHOWUSAGE;
- havepattern = TRUE;
+ cont.havepattern = TRUE;
} else
return CLI_SHOWUSAGE;
case 3:
@@ -17336,7 +17393,7 @@
if (!s) {
/* Normal list */
- ast_cli(fd, FORMAT2, "Name/username", "Host", "Dyn", "Forcerport", "ACL", "Port", "Status", (realtimepeers ? "Realtime" : ""));
+ ast_cli(fd, PEERS_FORMAT2, "Name/username", "Host", "Dyn", "Forcerport", "ACL", "Port", "Status", (cont.realtimepeers ? "Realtime" : ""));
}
ao2_lock(peers);
@@ -17362,7 +17419,7 @@
continue;
}
- if (havepattern && regexec(®exbuf, peer->name, 0, NULL, 0)) {
+ if (cont.havepattern && regexec(&cont.regexbuf, peer->name, 0, NULL, 0)) {
ao2_unlock(peer);
unref_peer(peer, "toss iterator peer ptr before continue");
continue;
@@ -17375,116 +17432,120 @@
qsort(peerarray, total_peers, sizeof(struct sip_peer *), peercomparefunc);
- for(k=0; k < total_peers; k++) {
- char status[20] = "";
- char srch[2000];
- char pstatus;
+ for(k = 0; k < total_peers; k++) {
+ peerarray[k] = _sip_show_peers_one(fd, s, &cont, peerarray[k]);
+ }
- /*
- * tmp_port and tmp_host store copies of ast_sockaddr_stringify strings since the
- * string pointers for that function aren't valid between subsequent calls to
- * ast_sockaddr_stringify functions
- */
- char *tmp_port;
- char *tmp_host;
+ if (!s) {
+ ast_cli(fd, "%d sip peers [Monitored: %d online, %d offline Unmonitored: %d online, %d offline]\n",
+ total_peers, cont.peers_mon_online, cont.peers_mon_offline, cont.peers_unmon_online, cont.peers_unmon_offline);
+ }
- peer = peerarray[k];
+ if (cont.havepattern) {
+ regfree(&cont.regexbuf);
+ }
- tmp_port = ast_sockaddr_isnull(&peer->addr) ?
- "0" : ast_strdupa(ast_sockaddr_stringify_port(&peer->addr));
+ if (total) {
+ *total = total_peers;
+ }
- tmp_host = ast_sockaddr_isnull(&peer->addr) ?
- "(Unspecified)" : ast_strdupa(ast_sockaddr_stringify_addr(&peer->addr));
+ ast_free(peerarray);
- ao2_lock(peer);
- if (havepattern && regexec(®exbuf, peer->name, 0, NULL, 0)) {
- ao2_unlock(peer);
- peer = peerarray[k] = unref_peer(peer, "toss iterator peer ptr before continue");
- continue;
- }
+ return CLI_SUCCESS;
+}
- if (!ast_strlen_zero(peer->username) && !s)
- snprintf(name, sizeof(name), "%s/%s", peer->name, peer->username);
- else
- ast_copy_string(name, peer->name, sizeof(name));
+/*! \brief Emit informations for one peer during sip show peers command */
+static struct sip_peer *_sip_show_peers_one(int fd, struct mansession *s, struct show_peers_context *cont, struct sip_peer *peer)
+{
+ /* _sip_show_peers_one() is separated from _sip_show_peers() to properly free the ast_strdupa
+ * (this is executed in a loop in _sip_show_peers() )
+ */
- pstatus = peer_status(peer, status, sizeof(status));
- if (pstatus == 1)
- peers_mon_online++;
- else if (pstatus == 0)
- peers_mon_offline++;
- else {
- if (ast_sockaddr_isnull(&peer->addr) ||
- !ast_sockaddr_port(&peer->addr)) {
- peers_unmon_offline++;
- } else {
- peers_unmon_online++;
- }
- }
+ char name[256];
+ char status[20] = "";
+ char pstatus;
- snprintf(srch, sizeof(srch), FORMAT2, name,
- tmp_host,
- peer->host_dynamic ? " D " : " ", /* Dynamic or not? */
- ast_test_flag(&peer->flags[0], SIP_NAT_FORCE_RPORT) ? " N " : " ", /* NAT=yes? */
- peer->ha ? " A " : " ", /* permit/deny */
- tmp_port, status,
- realtimepeers ? (peer->is_realtime ? "Cached RT":"") : "");
-
- if (!s) {/* Normal CLI list */
- ast_cli(fd, FORMAT2, name,
- tmp_host,
- peer->host_dynamic ? " D " : " ", /* Dynamic or not? */
- ast_test_flag(&peer->flags[0], SIP_NAT_FORCE_RPORT) ? " N " : " ", /* NAT=yes? */
- peer->ha ? " A " : " ", /* permit/deny */
- tmp_port, status,
- realtimepeers ? (peer->is_realtime ? "Cached RT":"") : "");
- } else { /* Manager format */
- /* The names here need to be the same as other channels */
- astman_append(s,
- "Event: PeerEntry\r\n%s"
- "Channeltype: SIP\r\n"
- "ObjectName: %s\r\n"
- "ChanObjectType: peer\r\n" /* "peer" or "user" */
- "IPaddress: %s\r\n"
- "IPport: %s\r\n"
- "Dynamic: %s\r\n"
- "Forcerport: %s\r\n"
- "VideoSupport: %s\r\n"
- "TextSupport: %s\r\n"
- "ACL: %s\r\n"
- "Status: %s\r\n"
- "RealtimeDevice: %s\r\n\r\n",
- idtext,
- peer->name,
- ast_sockaddr_isnull(&peer->addr) ? "-none-" : tmp_host,
- ast_sockaddr_isnull(&peer->addr) ? "0" : tmp_port,
- peer->host_dynamic ? "yes" : "no", /* Dynamic or not? */
- ast_test_flag(&peer->flags[0], SIP_NAT_FORCE_RPORT) ? "yes" : "no", /* NAT=yes? */
- ast_test_flag(&peer->flags[1], SIP_PAGE2_VIDEOSUPPORT) ? "yes" : "no", /* VIDEOSUPPORT=yes? */
- ast_test_flag(&peer->flags[1], SIP_PAGE2_TEXTSUPPORT) ? "yes" : "no", /* TEXTSUPPORT=yes? */
- peer->ha ? "yes" : "no", /* permit/deny */
- status,
- realtimepeers ? (peer->is_realtime ? "yes":"no") : "no");
- }
+ /*
+ * tmp_port and tmp_host store copies of ast_sockaddr_stringify strings since the
+ * string pointers for that function aren't valid between subsequent calls to
+ * ast_sockaddr_stringify functions
+ */
+ char *tmp_port;
+ char *tmp_host;
+
+ tmp_port = ast_sockaddr_isnull(&peer->addr) ?
+ "0" : ast_strdupa(ast_sockaddr_stringify_port(&peer->addr));
+
+ tmp_host = ast_sockaddr_isnull(&peer->addr) ?
+ "(Unspecified)" : ast_strdupa(ast_sockaddr_stringify_addr(&peer->addr));
+
+ ao2_lock(peer);
+ if (cont->havepattern && regexec(&cont->regexbuf, peer->name, 0, NULL, 0)) {
ao2_unlock(peer);
- peer = peerarray[k] = unref_peer(peer, "toss iterator peer ptr");
+ return unref_peer(peer, "toss iterator peer ptr no match");
}
- if (!s)
- ast_cli(fd, "%d sip peers [Monitored: %d online, %d offline Unmonitored: %d online, %d offline]\n",
- total_peers, peers_mon_online, peers_mon_offline, peers_unmon_online, peers_unmon_offline);
-
- if (havepattern)
- regfree(®exbuf);
+ if (!ast_strlen_zero(peer->username) && !s) {
+ snprintf(name, sizeof(name), "%s/%s", peer->name, peer->username);
+ } else {
+ ast_copy_string(name, peer->name, sizeof(name));
+ }
- if (total)
- *total = total_peers;
+ pstatus = peer_status(peer, status, sizeof(status));
+ if (pstatus == 1) {
+ cont->peers_mon_online++;
+ } else if (pstatus == 0) {
+ cont->peers_mon_offline++;
+ } else {
+ if (ast_sockaddr_isnull(&peer->addr) ||
+ !ast_sockaddr_port(&peer->addr)) {
+ cont->peers_unmon_offline++;
+ } else {
+ cont->peers_unmon_online++;
+ }
+ }
- ast_free(peerarray);
+ if (!s) { /* Normal CLI list */
+ ast_cli(fd, PEERS_FORMAT2, name,
+ tmp_host,
+ peer->host_dynamic ? " D " : " ", /* Dynamic or not? */
+ ast_test_flag(&peer->flags[0], SIP_NAT_FORCE_RPORT) ? " N " : " ", /* NAT=yes? */
+ peer->ha ? " A " : " ", /* permit/deny */
+ tmp_port, status,
+ cont->realtimepeers ? (peer->is_realtime ? "Cached RT":"") : "");
+ } else { /* Manager format */
+ /* The names here need to be the same as other channels */
+ astman_append(s,
+ "Event: PeerEntry\r\n%s"
+ "Channeltype: SIP\r\n"
+ "ObjectName: %s\r\n"
+ "ChanObjectType: peer\r\n" /* "peer" or "user" */
+ "IPaddress: %s\r\n"
+ "IPport: %s\r\n"
+ "Dynamic: %s\r\n"
+ "Forcerport: %s\r\n"
+ "VideoSupport: %s\r\n"
+ "TextSupport: %s\r\n"
+ "ACL: %s\r\n"
+ "Status: %s\r\n"
+ "RealtimeDevice: %s\r\n",
+ cont->idtext,
+ peer->name,
+ ast_sockaddr_isnull(&peer->addr) ? "-none-" : tmp_host,
+ ast_sockaddr_isnull(&peer->addr) ? "0" : tmp_port,
+ peer->host_dynamic ? "yes" : "no", /* Dynamic or not? */
+ ast_test_flag(&peer->flags[0], SIP_NAT_FORCE_RPORT) ? "yes" : "no", /* NAT=yes? */
+ ast_test_flag(&peer->flags[1], SIP_PAGE2_VIDEOSUPPORT) ? "yes" : "no", /* VIDEOSUPPORT=yes? */
+ ast_test_flag(&peer->flags[1], SIP_PAGE2_TEXTSUPPORT) ? "yes" : "no", /* TEXTSUPPORT=yes? */
+ peer->ha ? "yes" : "no", /* permit/deny */
+ status,
+ cont->realtimepeers ? (peer->is_realtime ? "yes":"no") : "no");
+ }
+ ao2_unlock(peer);
- return CLI_SUCCESS;
-#undef FORMAT2
+ return unref_peer(peer, "toss iterator peer ptr");
}
+#undef PEERS_FORMAT2
static int peer_dump_func(void *userobj, void *arg, int flags)
{
@@ -19276,7 +19337,6 @@
if (cur->stimer->st_active == TRUE) {
ast_cli(a->fd, " S-Timer Interval: %d\n", cur->stimer->st_interval);
ast_cli(a->fd, " S-Timer Refresher: %s\n", strefresher2str(cur->stimer->st_ref));
- ast_cli(a->fd, " S-Timer Expirys: %d\n", cur->stimer->st_expirys);
ast_cli(a->fd, " S-Timer Sched Id: %d\n", cur->stimer->st_schedid);
ast_cli(a->fd, " S-Timer Peer Sts: %s\n", cur->stimer->st_active_peer_ua ? "Active" : "Inactive");
ast_cli(a->fd, " S-Timer Cached Min-SE: %d\n", cur->stimer->st_cached_min_se);
@@ -20922,7 +20982,7 @@
}
/* Check for Session-Timers related headers */
- if (st_get_mode(p, 0) != SESSION_TIMER_MODE_REFUSE && p->outgoing_call == TRUE && !reinvite) {
+ if (st_get_mode(p, 0) != SESSION_TIMER_MODE_REFUSE) {
p_hdrval = (char*)get_header(req, "Session-Expires");
if (!ast_strlen_zero(p_hdrval)) {
/* UAS supports Session-Timers */
@@ -23571,9 +23631,6 @@
}
restart_session_timer(p);
- if (p->stimer->st_expirys > 0) {
- p->stimer->st_expirys--;
- }
}
}
@@ -26077,7 +26134,10 @@
owner_chan_ref = sip_pvt_lock_full(p);
copy_socket_data(&p->socket, &req->socket);
- ast_sockaddr_copy(&p->recv, addr);
+
+ if (ast_sockaddr_isnull(&p->recv)) { /* This may already be set before getting here */
+ ast_sockaddr_copy(&p->recv, addr);
+ }
/* if we have an owner, then this request has been authenticated */
if (p->owner) {
@@ -26654,6 +26714,8 @@
/*! \brief Session-Timers: Start session timer */
static void start_session_timer(struct sip_pvt *p)
{
+ unsigned int timeout_ms;
+
if (!p->stimer) {
ast_log(LOG_WARNING, "Null stimer in start_session_timer - %s\n", p->callid);
return;
@@ -26666,14 +26728,31 @@
dialog_unref(p, "unref stimer->st_schedid from dialog"));
}
- p->stimer->st_schedid = ast_sched_add(sched, p->stimer->st_interval * 1000 / 2, proc_session_timer,
+ /*
+ * RFC 4028 Section 10
+ * If the side not performing refreshes does not receive a
+ * session refresh request before the session expiration, it SHOULD send
+ * a BYE to terminate the session, slightly before the session
+ * expiration. The minimum of 32 seconds and one third of the session
+ * interval is RECOMMENDED.
+ */
+
+ timeout_ms = (1000 * p->stimer->st_interval);
+ if (p->stimer->st_ref == SESSION_TIMER_REFRESHER_US) {
+ timeout_ms /= 2;
+ } else {
+ timeout_ms -= MIN(timeout_ms / 3, 32000);
+ }
+
+ p->stimer->st_schedid = ast_sched_add(sched, timeout_ms, proc_session_timer,
dialog_ref(p, "adding session timer ref"));
+
if (p->stimer->st_schedid < 0) {
dialog_unref(p, "removing session timer ref");
ast_log(LOG_ERROR, "ast_sched_add failed - %s\n", p->callid);
} else {
p->stimer->st_active = TRUE;
- ast_debug(2, "Session timer started: %d - %s\n", p->stimer->st_schedid, p->callid);
+ ast_debug(2, "Session timer started: %d - %s %ums\n", p->stimer->st_schedid, p->callid, timeout_ms);
}
}
@@ -26707,28 +26786,23 @@
transmit_reinvite_with_sdp(p, FALSE, TRUE);
}
} else {
- p->stimer->st_expirys++;
- if (p->stimer->st_expirys >= 2) {
- if (p->stimer->quit_flag) {
+ if (p->stimer->quit_flag) {
+ goto return_unref;
+ }
+ ast_log(LOG_WARNING, "Session-Timer expired - %s\n", p->callid);
+ sip_pvt_lock(p);
+ while (p->owner && ast_channel_trylock(p->owner)) {
+ sip_pvt_unlock(p);
+ usleep(1);
+ if (p->stimer && p->stimer->quit_flag) {
goto return_unref;
}
- ast_log(LOG_WARNING, "Session-Timer expired - %s\n", p->callid);
sip_pvt_lock(p);
- while (p->owner && ast_channel_trylock(p->owner)) {
- sip_pvt_unlock(p);
- usleep(1);
- if (p->stimer && p->stimer->quit_flag) {
- goto return_unref;
- }
- sip_pvt_lock(p);
- }
-
- ast_softhangup_nolock(p->owner, AST_SOFTHANGUP_DEV);
- ast_channel_unlock(p->owner);
- sip_pvt_unlock(p);
- } else {
- res = 1;
}
+
+ ast_softhangup_nolock(p->owner, AST_SOFTHANGUP_DEV);
+ ast_channel_unlock(p->owner);
+ sip_pvt_unlock(p);
}
return_unref:
@@ -27497,16 +27571,13 @@
}
} else if (!strcasecmp(v->name, "nat")) {
ast_set_flag(&mask[0], SIP_NAT_FORCE_RPORT);
- ast_set_flag(&flags[0], SIP_NAT_FORCE_RPORT); /* Default to "force_rport" */
- if (!strcasecmp(v->value, "no")) {
- ast_clear_flag(&flags[0], SIP_NAT_FORCE_RPORT);
- } else if (!strcasecmp(v->value, "yes")) {
- /* We've already defaulted to force_rport */
- ast_set_flag(&mask[1], SIP_PAGE2_SYMMETRICRTP);
+ ast_set_flag(&mask[1], SIP_PAGE2_SYMMETRICRTP);
+ if (!strcasecmp(v->value, "yes")) {
+ ast_set_flag(&flags[0], SIP_NAT_FORCE_RPORT);
ast_set_flag(&flags[1], SIP_PAGE2_SYMMETRICRTP);
+ } else if (!strcasecmp(v->value, "force_rport")) {
+ ast_set_flag(&flags[0], SIP_NAT_FORCE_RPORT);
} else if (!strcasecmp(v->value, "comedia")) {
- ast_clear_flag(&flags[0], SIP_NAT_FORCE_RPORT);
- ast_set_flag(&mask[1], SIP_PAGE2_SYMMETRICRTP);
ast_set_flag(&flags[1], SIP_PAGE2_SYMMETRICRTP);
}
} else if (!strcasecmp(v->name, "directmedia") || !strcasecmp(v->name, "canreinvite")) {
@@ -28147,7 +28218,7 @@
} else if (!strcasecmp(v->name, "host")) {
if (!strcasecmp(v->value, "dynamic")) {
/* They'll register with us */
- if ((!found && !realtime) || !peer->host_dynamic) {
+ if ((!found && !ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS)) || !peer->host_dynamic) {
/* Initialize stuff if this is a new peer, or if it used to
* not be dynamic before the reload. */
ast_sockaddr_setnull(&peer->addr);
@@ -28467,6 +28538,10 @@
set_socket_transport(&peer->socket, peer->default_outbound_transport);
}
+ ast_copy_flags(&peer->flags[0], &peerflags[0], mask[0].flags);
+ ast_copy_flags(&peer->flags[1], &peerflags[1], mask[1].flags);
+ ast_copy_flags(&peer->flags[2], &peerflags[2], mask[2].flags);
+
if (ast_str_strlen(fullcontact)) {
ast_string_field_set(peer, fullcontact, ast_str_buffer(fullcontact));
peer->rt_fromcontact = TRUE;
@@ -28560,9 +28635,6 @@
sip_poke_peer(peer, 0);
}
- ast_copy_flags(&peer->flags[0], &peerflags[0], mask[0].flags);
- ast_copy_flags(&peer->flags[1], &peerflags[1], mask[1].flags);
- ast_copy_flags(&peer->flags[2], &peerflags[2], mask[2].flags);
if (ast_test_flag(&peer->flags[1], SIP_PAGE2_ALLOWSUBSCRIBE)) {
sip_cfg.allowsubscribe = TRUE; /* No global ban any more */
}
@@ -28655,7 +28727,8 @@
struct sip_peer *peer;
char *cat, *stringp, *context, *oldregcontext;
char newcontexts[AST_MAX_CONTEXT], oldcontexts[AST_MAX_CONTEXT];
- struct ast_flags dummy[2];
+ struct ast_flags mask[3] = {{0}};
+ struct ast_flags setflags[3] = {{0}};
struct ast_flags config_flags = { reason == CHANNEL_MODULE_LOAD ? 0 : ast_test_flag(&global_flags[1], SIP_PAGE2_RTCACHEFRIENDS) ? 0 : CONFIG_FLAG_FILEUNCHANGED };
int auto_sip_domains = FALSE;
struct ast_sockaddr old_bindaddr = bindaddr;
@@ -28890,10 +28963,10 @@
/* Read the [general] config section of sip.conf (or from realtime config) */
for (v = ast_variable_browse(cfg, "general"); v; v = v->next) {
- if (handle_common_options(&global_flags[0], &dummy[0], v)) {
+ if (handle_common_options(&setflags[0], &mask[0], v)) {
continue;
}
- if (handle_t38_options(&global_flags[0], &dummy[0], v, &global_t38_maxdatagram)) {
+ if (handle_t38_options(&setflags[0], &mask[0], v, &global_t38_maxdatagram)) {
continue;
}
/* handle jb conf */
@@ -29377,6 +29450,11 @@
}
}
+ /* Override global defaults if setting found in general section */
+ ast_copy_flags(&global_flags[0], &setflags[0], mask[0].flags);
+ ast_copy_flags(&global_flags[1], &setflags[1], mask[1].flags);
+ ast_copy_flags(&global_flags[2], &setflags[2], mask[2].flags);
+
if (subscribe_network_change) {
network_change_event_subscribe();
} else {
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/channels/misdn/isdn_msg_parser.c
^
|
@@ -283,6 +283,8 @@
progress=(PROGRESS_t*)((msg->data+HEADER_LEN));
+ enc_ie_progress(&progress->PROGRESS, msg, 0, nt ? 1 : 5, 8, nt, bc);
+
if (bc->fac_out.Function != Fac_None) {
enc_ie_facility(&progress->FACILITY, msg, &bc->fac_out, nt);
}
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/channels/sig_pri.c
^
|
@@ -5678,9 +5678,11 @@
/* Bring voice path up */
pri_queue_control(pri, chanpos, AST_CONTROL_PROGRESS);
pri->pvts[chanpos]->progress = 1;
+ sig_pri_set_dialing(pri->pvts[chanpos], 0);
sig_pri_open_media(pri->pvts[chanpos]);
+ } else if (pri->inband_on_proceeding) {
+ sig_pri_set_dialing(pri->pvts[chanpos], 0);
}
- sig_pri_set_dialing(pri->pvts[chanpos], 0);
sig_pri_unlock_private(pri->pvts[chanpos]);
break;
case PRI_EVENT_FACILITY:
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/channels/sig_pri.h
^
|
@@ -393,6 +393,8 @@
* appended to the initial_user_tag[].
*/
unsigned int append_msn_to_user_tag:1;
+ /*! TRUE if a PROCEEDING message needs to unsquelch the received audio. */
+ unsigned int inband_on_proceeding:1;
int dialplan; /*!< Dialing plan */
int localdialplan; /*!< Local dialing plan */
char internationalprefix[10]; /*!< country access code ('00' for european dialplans) */
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/channels/sip/include/sip.h
^
|
@@ -905,7 +905,6 @@
int st_interval; /*!< Session-Timers negotiated session refresh interval */
enum st_refresher st_ref; /*!< Session-Timers cached refresher */
int st_schedid; /*!< Session-Timers ast_sched scheduler id */
- int st_expirys; /*!< Session-Timers number of expirys */
int st_active_peer_ua; /*!< Session-Timers on/off in peer UA */
int st_cached_min_se; /*!< Session-Timers cached Min-SE */
int st_cached_max_se; /*!< Session-Timers cached Session-Expires */
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/configs/chan_dahdi.conf.sample
^
|
@@ -169,6 +169,18 @@
;
;resetinterval = 3600
;
+; Assume inband audio may be present when a PROCEEDING message is received.
+; Q.931 Section 5.1.2 says the network cannot assume that the CPE side has
+; attached to the B channel at this time without explicitly sending the
+; progress indicator ie informing the CPE side to attach to the B channel
+; for audio. However, some non-compliant ISDN switches send a PROCEEDING
+; without the progress indicator ie indicating inband audio is available and
+; assume that the CPE device has connected the media path for listening to
+; ringback and other messages.
+; Default yes in current release branches for backward compatibility.
+;
+;inband_on_proceeding=yes
+;
; Overlap dialing mode (sending overlap digits)
; Cannot be changed on a reload.
;
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/configs/extconfig.conf.sample
^
|
@@ -53,13 +53,17 @@
; start at 1 and be sequential (i.e. if you have only priorities 1, 2,
; and 4, then 4 will be ignored, because there is no 3).
;
+;
+; Possible driver backends:
+;
; "odbc" is shown in the examples below, but is not the only valid realtime
-; engine. There is:
+; engine. Here are several of the possible options:
; odbc ... res_config_odbc
; sqlite ... res_config_sqlite
; pgsql ... res_config_pgsql
; curl ... res_config_curl
; ldap ... res_config_ldap
+; mysql ... res_config_mysql (available via add-ons in menuselect)
;
; Note: The res_config_pgsql and res_config_sqlite backends configure the
; database used in their respective configuration files and ignore the
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/configs/queues.conf.sample
^
|
@@ -293,6 +293,13 @@
;
;announce-position = yes
;
+; If enabled, play announcements to the first user waiting in the Queue. This may mean
+; that announcements are played when an agent attempts to connect to the waiting user,
+; which may delay the time before the agent and the user can communicate. Disabled by
+; default.
+;
+; announce-to-first-user = no
+;
; If you have specified "limit" or "more" for the announce-position option, then the following
; value is what is used to determine what announcement to play to waiting callers. If you have
; set the announce-position option to anything else, then this will have no bearing on queue operation
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/configure
^
|
@@ -742,6 +742,10 @@
OPENSSL_DIR
OPENSSL_INCLUDE
OPENSSL_LIB
+PBX_SRTP_SHUTDOWN
+SRTP_SHUTDOWN_DIR
+SRTP_SHUTDOWN_INCLUDE
+SRTP_SHUTDOWN_LIB
PBX_SRTP
SRTP_DIR
SRTP_INCLUDE
@@ -11187,6 +11191,18 @@
+SRTP_SHUTDOWN_DESCRIP="SRTP Library Shutdown Function"
+SRTP_SHUTDOWN_OPTION=srtp
+SRTP_SHUTDOWN_DIR=${SRTP_DIR}
+
+PBX_SRTP_SHUTDOWN=0
+
+
+
+
+
+
+
OPENSSL_DESCRIP="OpenSSL Secure Sockets Layer"
OPENSSL_OPTION="ssl"
PBX_OPENSSL=0
@@ -12103,9 +12119,9 @@
# if --with-TERMCAP=DIR has been specified, use it.
if test "x${TERMCAP_DIR}" != "x"; then
if test -d ${TERMCAP_DIR}/lib; then
- pbxlibdir="-L${TERMCAP_DIR}/lib"
+ pbxlibdir="-L${TERMCAP_DIR}/lib"
else
- pbxlibdir="-L${TERMCAP_DIR}"
+ pbxlibdir="-L${TERMCAP_DIR}"
fi
fi
pbxfuncname="tgetent"
@@ -12207,9 +12223,9 @@
# if --with-TINFO=DIR has been specified, use it.
if test "x${TINFO_DIR}" != "x"; then
if test -d ${TINFO_DIR}/lib; then
- pbxlibdir="-L${TINFO_DIR}/lib"
+ pbxlibdir="-L${TINFO_DIR}/lib"
else
- pbxlibdir="-L${TINFO_DIR}"
+ pbxlibdir="-L${TINFO_DIR}"
fi
fi
pbxfuncname="tgetent"
@@ -12311,9 +12327,9 @@
# if --with-CURSES=DIR has been specified, use it.
if test "x${CURSES_DIR}" != "x"; then
if test -d ${CURSES_DIR}/lib; then
- pbxlibdir="-L${CURSES_DIR}/lib"
+ pbxlibdir="-L${CURSES_DIR}/lib"
else
- pbxlibdir="-L${CURSES_DIR}"
+ pbxlibdir="-L${CURSES_DIR}"
fi
fi
pbxfuncname="initscr"
@@ -12415,9 +12431,9 @@
# if --with-NCURSES=DIR has been specified, use it.
if test "x${NCURSES_DIR}" != "x"; then
if test -d ${NCURSES_DIR}/lib; then
- pbxlibdir="-L${NCURSES_DIR}/lib"
+ pbxlibdir="-L${NCURSES_DIR}/lib"
else
- pbxlibdir="-L${NCURSES_DIR}"
+ pbxlibdir="-L${NCURSES_DIR}"
fi
fi
pbxfuncname="initscr"
@@ -17571,9 +17587,9 @@
# if --with-ALSA=DIR has been specified, use it.
if test "x${ALSA_DIR}" != "x"; then
if test -d ${ALSA_DIR}/lib; then
- pbxlibdir="-L${ALSA_DIR}/lib"
+ pbxlibdir="-L${ALSA_DIR}/lib"
else
- pbxlibdir="-L${ALSA_DIR}"
+ pbxlibdir="-L${ALSA_DIR}"
fi
fi
pbxfuncname="snd_spcm_init"
@@ -17676,9 +17692,9 @@
# if --with-BFD=DIR has been specified, use it.
if test "x${BFD_DIR}" != "x"; then
if test -d ${BFD_DIR}/lib; then
- pbxlibdir="-L${BFD_DIR}/lib"
+ pbxlibdir="-L${BFD_DIR}/lib"
else
- pbxlibdir="-L${BFD_DIR}"
+ pbxlibdir="-L${BFD_DIR}"
fi
fi
pbxfuncname="bfd_openr"
@@ -17783,9 +17799,9 @@
# if --with-BFD=DIR has been specified, use it.
if test "x${BFD_DIR}" != "x"; then
if test -d ${BFD_DIR}/lib; then
- pbxlibdir="-L${BFD_DIR}/lib"
+ pbxlibdir="-L${BFD_DIR}/lib"
else
- pbxlibdir="-L${BFD_DIR}"
+ pbxlibdir="-L${BFD_DIR}"
fi
fi
pbxfuncname="bfd_check_format"
@@ -17890,9 +17906,9 @@
# if --with-CAP=DIR has been specified, use it.
if test "x${CAP_DIR}" != "x"; then
if test -d ${CAP_DIR}/lib; then
- pbxlibdir="-L${CAP_DIR}/lib"
+ pbxlibdir="-L${CAP_DIR}/lib"
else
- pbxlibdir="-L${CAP_DIR}"
+ pbxlibdir="-L${CAP_DIR}"
fi
fi
pbxfuncname="cap_from_text"
@@ -18525,9 +18541,9 @@
# if --with-ICONV=DIR has been specified, use it.
if test "x${ICONV_DIR}" != "x"; then
if test -d ${ICONV_DIR}/lib; then
- pbxlibdir="-L${ICONV_DIR}/lib"
+ pbxlibdir="-L${ICONV_DIR}/lib"
else
- pbxlibdir="-L${ICONV_DIR}"
+ pbxlibdir="-L${ICONV_DIR}"
fi
fi
pbxfuncname="iconv_open"
@@ -18630,9 +18646,9 @@
# if --with-ICONV=DIR has been specified, use it.
if test "x${ICONV_DIR}" != "x"; then
if test -d ${ICONV_DIR}/lib; then
- pbxlibdir="-L${ICONV_DIR}/lib"
+ pbxlibdir="-L${ICONV_DIR}/lib"
else
- pbxlibdir="-L${ICONV_DIR}"
+ pbxlibdir="-L${ICONV_DIR}"
fi
fi
pbxfuncname="libiconv_open"
@@ -18735,9 +18751,9 @@
# if --with-ICONV=DIR has been specified, use it.
if test "x${ICONV_DIR}" != "x"; then
if test -d ${ICONV_DIR}/lib; then
- pbxlibdir="-L${ICONV_DIR}/lib"
+ pbxlibdir="-L${ICONV_DIR}/lib"
else
- pbxlibdir="-L${ICONV_DIR}"
+ pbxlibdir="-L${ICONV_DIR}"
fi
fi
pbxfuncname="iconv_close"
@@ -18841,9 +18857,9 @@
# if --with-ICAL=DIR has been specified, use it.
if test "x${ICAL_DIR}" != "x"; then
if test -d ${ICAL_DIR}/lib; then
- pbxlibdir="-L${ICAL_DIR}/lib"
+ pbxlibdir="-L${ICAL_DIR}/lib"
else
- pbxlibdir="-L${ICAL_DIR}"
+ pbxlibdir="-L${ICAL_DIR}"
fi
fi
pbxfuncname="icaltimezone_get_utc_timezone"
@@ -18946,9 +18962,9 @@
# if --with-IKSEMEL=DIR has been specified, use it.
if test "x${IKSEMEL_DIR}" != "x"; then
if test -d ${IKSEMEL_DIR}/lib; then
- pbxlibdir="-L${IKSEMEL_DIR}/lib"
+ pbxlibdir="-L${IKSEMEL_DIR}/lib"
else
- pbxlibdir="-L${IKSEMEL_DIR}"
+ pbxlibdir="-L${IKSEMEL_DIR}"
fi
fi
pbxfuncname="iks_start_sasl"
@@ -19679,9 +19695,9 @@
# if --with-IODBC=DIR has been specified, use it.
if test "x${IODBC_DIR}" != "x"; then
if test -d ${IODBC_DIR}/lib; then
- pbxlibdir="-L${IODBC_DIR}/lib"
+ pbxlibdir="-L${IODBC_DIR}/lib"
else
- pbxlibdir="-L${IODBC_DIR}"
+ pbxlibdir="-L${IODBC_DIR}"
fi
fi
pbxfuncname="SQLConnect"
@@ -19784,9 +19800,9 @@
# if --with-INOTIFY=DIR has been specified, use it.
if test "x${INOTIFY_DIR}" != "x"; then
if test -d ${INOTIFY_DIR}/lib; then
- pbxlibdir="-L${INOTIFY_DIR}/lib"
+ pbxlibdir="-L${INOTIFY_DIR}/lib"
else
- pbxlibdir="-L${INOTIFY_DIR}"
+ pbxlibdir="-L${INOTIFY_DIR}"
fi
fi
pbxfuncname="inotify_init"
@@ -19889,9 +19905,9 @@
# if --with-JACK=DIR has been specified, use it.
if test "x${JACK_DIR}" != "x"; then
if test -d ${JACK_DIR}/lib; then
- pbxlibdir="-L${JACK_DIR}/lib"
+ pbxlibdir="-L${JACK_DIR}/lib"
else
- pbxlibdir="-L${JACK_DIR}"
+ pbxlibdir="-L${JACK_DIR}"
fi
fi
pbxfuncname="jack_activate"
@@ -19995,9 +20011,9 @@
# if --with-KQUEUE=DIR has been specified, use it.
if test "x${KQUEUE_DIR}" != "x"; then
if test -d ${KQUEUE_DIR}/lib; then
- pbxlibdir="-L${KQUEUE_DIR}/lib"
+ pbxlibdir="-L${KQUEUE_DIR}/lib"
else
- pbxlibdir="-L${KQUEUE_DIR}"
+ pbxlibdir="-L${KQUEUE_DIR}"
fi
fi
pbxfuncname="kqueue"
@@ -20114,9 +20130,9 @@
# if --with-LTDL=DIR has been specified, use it.
if test "x${LTDL_DIR}" != "x"; then
if test -d ${LTDL_DIR}/lib; then
- pbxlibdir="-L${LTDL_DIR}/lib"
+ pbxlibdir="-L${LTDL_DIR}/lib"
else
- pbxlibdir="-L${LTDL_DIR}"
+ pbxlibdir="-L${LTDL_DIR}"
fi
fi
pbxfuncname="lt_dlinit"
@@ -20219,9 +20235,9 @@
# if --with-LDAP=DIR has been specified, use it.
if test "x${LDAP_DIR}" != "x"; then
if test -d ${LDAP_DIR}/lib; then
- pbxlibdir="-L${LDAP_DIR}/lib"
+ pbxlibdir="-L${LDAP_DIR}/lib"
else
- pbxlibdir="-L${LDAP_DIR}"
+ pbxlibdir="-L${LDAP_DIR}"
fi
fi
pbxfuncname="ldap_initialize"
@@ -20324,9 +20340,9 @@
# if --with-MISDN=DIR has been specified, use it.
if test "x${MISDN_DIR}" != "x"; then
if test -d ${MISDN_DIR}/lib; then
- pbxlibdir="-L${MISDN_DIR}/lib"
+ pbxlibdir="-L${MISDN_DIR}/lib"
else
- pbxlibdir="-L${MISDN_DIR}"
+ pbxlibdir="-L${MISDN_DIR}"
fi
fi
pbxfuncname="mISDN_open"
@@ -20430,9 +20446,9 @@
# if --with-ISDNNET=DIR has been specified, use it.
if test "x${ISDNNET_DIR}" != "x"; then
if test -d ${ISDNNET_DIR}/lib; then
- pbxlibdir="-L${ISDNNET_DIR}/lib"
+ pbxlibdir="-L${ISDNNET_DIR}/lib"
else
- pbxlibdir="-L${ISDNNET_DIR}"
+ pbxlibdir="-L${ISDNNET_DIR}"
fi
fi
pbxfuncname="init_manager"
@@ -20534,9 +20550,9 @@
# if --with-SUPPSERV=DIR has been specified, use it.
if test "x${SUPPSERV_DIR}" != "x"; then
if test -d ${SUPPSERV_DIR}/lib; then
- pbxlibdir="-L${SUPPSERV_DIR}/lib"
+ pbxlibdir="-L${SUPPSERV_DIR}/lib"
else
- pbxlibdir="-L${SUPPSERV_DIR}"
+ pbxlibdir="-L${SUPPSERV_DIR}"
fi
fi
pbxfuncname="encodeFac"
@@ -20901,9 +20917,9 @@
# if --with-NBS=DIR has been specified, use it.
if test "x${NBS_DIR}" != "x"; then
if test -d ${NBS_DIR}/lib; then
- pbxlibdir="-L${NBS_DIR}/lib"
+ pbxlibdir="-L${NBS_DIR}/lib"
else
- pbxlibdir="-L${NBS_DIR}"
+ pbxlibdir="-L${NBS_DIR}"
fi
fi
pbxfuncname="nbs_connect"
@@ -21465,9 +21481,9 @@
# if --with-NEWT=DIR has been specified, use it.
if test "x${NEWT_DIR}" != "x"; then
if test -d ${NEWT_DIR}/lib; then
- pbxlibdir="-L${NEWT_DIR}/lib"
+ pbxlibdir="-L${NEWT_DIR}/lib"
else
- pbxlibdir="-L${NEWT_DIR}"
+ pbxlibdir="-L${NEWT_DIR}"
fi
fi
pbxfuncname="newtBell"
@@ -21570,9 +21586,9 @@
# if --with-UNIXODBC=DIR has been specified, use it.
if test "x${UNIXODBC_DIR}" != "x"; then
if test -d ${UNIXODBC_DIR}/lib; then
- pbxlibdir="-L${UNIXODBC_DIR}/lib"
+ pbxlibdir="-L${UNIXODBC_DIR}/lib"
else
- pbxlibdir="-L${UNIXODBC_DIR}"
+ pbxlibdir="-L${UNIXODBC_DIR}"
fi
fi
pbxfuncname="SQLConnect"
@@ -21675,9 +21691,9 @@
# if --with-OGG=DIR has been specified, use it.
if test "x${OGG_DIR}" != "x"; then
if test -d ${OGG_DIR}/lib; then
- pbxlibdir="-L${OGG_DIR}/lib"
+ pbxlibdir="-L${OGG_DIR}/lib"
else
- pbxlibdir="-L${OGG_DIR}"
+ pbxlibdir="-L${OGG_DIR}"
fi
fi
pbxfuncname="ogg_sync_init"
@@ -21781,9 +21797,9 @@
# if --with-BKTR=DIR has been specified, use it.
if test "x${BKTR_DIR}" != "x"; then
if test -d ${BKTR_DIR}/lib; then
- pbxlibdir="-L${BKTR_DIR}/lib"
+ pbxlibdir="-L${BKTR_DIR}/lib"
else
- pbxlibdir="-L${BKTR_DIR}"
+ pbxlibdir="-L${BKTR_DIR}"
fi
fi
pbxfuncname="backtrace"
@@ -21886,9 +21902,9 @@
# if --with-BKTR=DIR has been specified, use it.
if test "x${BKTR_DIR}" != "x"; then
if test -d ${BKTR_DIR}/lib; then
- pbxlibdir="-L${BKTR_DIR}/lib"
+ pbxlibdir="-L${BKTR_DIR}/lib"
else
- pbxlibdir="-L${BKTR_DIR}"
+ pbxlibdir="-L${BKTR_DIR}"
fi
fi
pbxfuncname="backtrace"
@@ -21991,9 +22007,9 @@
# if --with-BLUETOOTH=DIR has been specified, use it.
if test "x${BLUETOOTH_DIR}" != "x"; then
if test -d ${BLUETOOTH_DIR}/lib; then
- pbxlibdir="-L${BLUETOOTH_DIR}/lib"
+ pbxlibdir="-L${BLUETOOTH_DIR}/lib"
else
- pbxlibdir="-L${BLUETOOTH_DIR}"
+ pbxlibdir="-L${BLUETOOTH_DIR}"
fi
fi
pbxfuncname="ba2str"
@@ -22097,9 +22113,9 @@
# if --with-OSS=DIR has been specified, use it.
if test "x${OSS_DIR}" != "x"; then
if test -d ${OSS_DIR}/lib; then
- pbxlibdir="-L${OSS_DIR}/lib"
+ pbxlibdir="-L${OSS_DIR}/lib"
else
- pbxlibdir="-L${OSS_DIR}"
+ pbxlibdir="-L${OSS_DIR}"
fi
fi
pbxfuncname=""
@@ -22201,9 +22217,9 @@
# if --with-OSS=DIR has been specified, use it.
if test "x${OSS_DIR}" != "x"; then
if test -d ${OSS_DIR}/lib; then
- pbxlibdir="-L${OSS_DIR}/lib"
+ pbxlibdir="-L${OSS_DIR}/lib"
else
- pbxlibdir="-L${OSS_DIR}"
+ pbxlibdir="-L${OSS_DIR}"
fi
fi
pbxfuncname=""
@@ -22305,9 +22321,9 @@
# if --with-OSS=DIR has been specified, use it.
if test "x${OSS_DIR}" != "x"; then
if test -d ${OSS_DIR}/lib; then
- pbxlibdir="-L${OSS_DIR}/lib"
+ pbxlibdir="-L${OSS_DIR}/lib"
else
- pbxlibdir="-L${OSS_DIR}"
+ pbxlibdir="-L${OSS_DIR}"
fi
fi
pbxfuncname="oss_ioctl_mixer"
@@ -22739,9 +22755,9 @@
# if --with-POPT=DIR has been specified, use it.
if test "x${POPT_DIR}" != "x"; then
if test -d ${POPT_DIR}/lib; then
- pbxlibdir="-L${POPT_DIR}/lib"
+ pbxlibdir="-L${POPT_DIR}/lib"
else
- pbxlibdir="-L${POPT_DIR}"
+ pbxlibdir="-L${POPT_DIR}"
fi
fi
pbxfuncname="poptStrerror"
@@ -22844,9 +22860,9 @@
# if --with-PORTAUDIO=DIR has been specified, use it.
if test "x${PORTAUDIO_DIR}" != "x"; then
if test -d ${PORTAUDIO_DIR}/lib; then
- pbxlibdir="-L${PORTAUDIO_DIR}/lib"
+ pbxlibdir="-L${PORTAUDIO_DIR}/lib"
else
- pbxlibdir="-L${PORTAUDIO_DIR}"
+ pbxlibdir="-L${PORTAUDIO_DIR}"
fi
fi
pbxfuncname="Pa_GetDeviceCount"
@@ -22949,9 +22965,9 @@
# if --with-PRI=DIR has been specified, use it.
if test "x${PRI_DIR}" != "x"; then
if test -d ${PRI_DIR}/lib; then
- pbxlibdir="-L${PRI_DIR}/lib"
+ pbxlibdir="-L${PRI_DIR}/lib"
else
- pbxlibdir="-L${PRI_DIR}"
+ pbxlibdir="-L${PRI_DIR}"
fi
fi
pbxfuncname="pri_connected_line_update"
@@ -23053,9 +23069,9 @@
# if --with-PRI_L2_PERSISTENCE=DIR has been specified, use it.
if test "x${PRI_L2_PERSISTENCE_DIR}" != "x"; then
if test -d ${PRI_L2_PERSISTENCE_DIR}/lib; then
- pbxlibdir="-L${PRI_L2_PERSISTENCE_DIR}/lib"
+ pbxlibdir="-L${PRI_L2_PERSISTENCE_DIR}/lib"
else
- pbxlibdir="-L${PRI_L2_PERSISTENCE_DIR}"
+ pbxlibdir="-L${PRI_L2_PERSISTENCE_DIR}"
fi
fi
pbxfuncname="pri_persistent_layer2_option"
@@ -23157,9 +23173,9 @@
# if --with-PRI_MWI=DIR has been specified, use it.
if test "x${PRI_MWI_DIR}" != "x"; then
if test -d ${PRI_MWI_DIR}/lib; then
- pbxlibdir="-L${PRI_MWI_DIR}/lib"
+ pbxlibdir="-L${PRI_MWI_DIR}/lib"
else
- pbxlibdir="-L${PRI_MWI_DIR}"
+ pbxlibdir="-L${PRI_MWI_DIR}"
fi
fi
pbxfuncname="pri_mwi_indicate"
@@ -23261,9 +23277,9 @@
# if --with-PRI_MCID=DIR has been specified, use it.
if test "x${PRI_MCID_DIR}" != "x"; then
if test -d ${PRI_MCID_DIR}/lib; then
- pbxlibdir="-L${PRI_MCID_DIR}/lib"
+ pbxlibdir="-L${PRI_MCID_DIR}/lib"
else
- pbxlibdir="-L${PRI_MCID_DIR}"
+ pbxlibdir="-L${PRI_MCID_DIR}"
fi
fi
pbxfuncname="pri_mcid_enable"
@@ -23365,9 +23381,9 @@
# if --with-PRI_CALL_WAITING=DIR has been specified, use it.
if test "x${PRI_CALL_WAITING_DIR}" != "x"; then
if test -d ${PRI_CALL_WAITING_DIR}/lib; then
- pbxlibdir="-L${PRI_CALL_WAITING_DIR}/lib"
+ pbxlibdir="-L${PRI_CALL_WAITING_DIR}/lib"
else
- pbxlibdir="-L${PRI_CALL_WAITING_DIR}"
+ pbxlibdir="-L${PRI_CALL_WAITING_DIR}"
fi
fi
pbxfuncname="pri_connect_ack_enable"
@@ -23469,9 +23485,9 @@
# if --with-PRI_AOC_EVENTS=DIR has been specified, use it.
if test "x${PRI_AOC_EVENTS_DIR}" != "x"; then
if test -d ${PRI_AOC_EVENTS_DIR}/lib; then
- pbxlibdir="-L${PRI_AOC_EVENTS_DIR}/lib"
+ pbxlibdir="-L${PRI_AOC_EVENTS_DIR}/lib"
else
- pbxlibdir="-L${PRI_AOC_EVENTS_DIR}"
+ pbxlibdir="-L${PRI_AOC_EVENTS_DIR}"
fi
fi
pbxfuncname="pri_aoc_events_enable"
@@ -23573,9 +23589,9 @@
# if --with-PRI_TRANSFER=DIR has been specified, use it.
if test "x${PRI_TRANSFER_DIR}" != "x"; then
if test -d ${PRI_TRANSFER_DIR}/lib; then
- pbxlibdir="-L${PRI_TRANSFER_DIR}/lib"
+ pbxlibdir="-L${PRI_TRANSFER_DIR}/lib"
else
- pbxlibdir="-L${PRI_TRANSFER_DIR}"
+ pbxlibdir="-L${PRI_TRANSFER_DIR}"
fi
fi
pbxfuncname="pri_transfer_enable"
@@ -23677,9 +23693,9 @@
# if --with-PRI_CCSS=DIR has been specified, use it.
if test "x${PRI_CCSS_DIR}" != "x"; then
if test -d ${PRI_CCSS_DIR}/lib; then
- pbxlibdir="-L${PRI_CCSS_DIR}/lib"
+ pbxlibdir="-L${PRI_CCSS_DIR}/lib"
else
- pbxlibdir="-L${PRI_CCSS_DIR}"
+ pbxlibdir="-L${PRI_CCSS_DIR}"
fi
fi
pbxfuncname="pri_cc_enable"
@@ -23781,9 +23797,9 @@
# if --with-PRI_HANGUP_FIX=DIR has been specified, use it.
if test "x${PRI_HANGUP_FIX_DIR}" != "x"; then
if test -d ${PRI_HANGUP_FIX_DIR}/lib; then
- pbxlibdir="-L${PRI_HANGUP_FIX_DIR}/lib"
+ pbxlibdir="-L${PRI_HANGUP_FIX_DIR}/lib"
else
- pbxlibdir="-L${PRI_HANGUP_FIX_DIR}"
+ pbxlibdir="-L${PRI_HANGUP_FIX_DIR}"
fi
fi
pbxfuncname="pri_hangup_fix_enable"
@@ -23885,9 +23901,9 @@
# if --with-PRI_SUBADDR=DIR has been specified, use it.
if test "x${PRI_SUBADDR_DIR}" != "x"; then
if test -d ${PRI_SUBADDR_DIR}/lib; then
- pbxlibdir="-L${PRI_SUBADDR_DIR}/lib"
+ pbxlibdir="-L${PRI_SUBADDR_DIR}/lib"
else
- pbxlibdir="-L${PRI_SUBADDR_DIR}"
+ pbxlibdir="-L${PRI_SUBADDR_DIR}"
fi
fi
pbxfuncname="pri_sr_set_called_subaddress"
@@ -23989,9 +24005,9 @@
# if --with-PRI_CALL_HOLD=DIR has been specified, use it.
if test "x${PRI_CALL_HOLD_DIR}" != "x"; then
if test -d ${PRI_CALL_HOLD_DIR}/lib; then
- pbxlibdir="-L${PRI_CALL_HOLD_DIR}/lib"
+ pbxlibdir="-L${PRI_CALL_HOLD_DIR}/lib"
else
- pbxlibdir="-L${PRI_CALL_HOLD_DIR}"
+ pbxlibdir="-L${PRI_CALL_HOLD_DIR}"
fi
fi
pbxfuncname="pri_hold_enable"
@@ -24093,9 +24109,9 @@
# if --with-PRI_CALL_REROUTING=DIR has been specified, use it.
if test "x${PRI_CALL_REROUTING_DIR}" != "x"; then
if test -d ${PRI_CALL_REROUTING_DIR}/lib; then
- pbxlibdir="-L${PRI_CALL_REROUTING_DIR}/lib"
+ pbxlibdir="-L${PRI_CALL_REROUTING_DIR}/lib"
else
- pbxlibdir="-L${PRI_CALL_REROUTING_DIR}"
+ pbxlibdir="-L${PRI_CALL_REROUTING_DIR}"
fi
fi
pbxfuncname="pri_reroute_enable"
@@ -24197,9 +24213,9 @@
# if --with-PRI_SETUP_KEYPAD=DIR has been specified, use it.
if test "x${PRI_SETUP_KEYPAD_DIR}" != "x"; then
if test -d ${PRI_SETUP_KEYPAD_DIR}/lib; then
- pbxlibdir="-L${PRI_SETUP_KEYPAD_DIR}/lib"
+ pbxlibdir="-L${PRI_SETUP_KEYPAD_DIR}/lib"
else
- pbxlibdir="-L${PRI_SETUP_KEYPAD_DIR}"
+ pbxlibdir="-L${PRI_SETUP_KEYPAD_DIR}"
fi
fi
pbxfuncname="pri_sr_set_keypad_digits"
@@ -24305,9 +24321,9 @@
# if --with-PRI_PROG_W_CAUSE=DIR has been specified, use it.
if test "x${PRI_PROG_W_CAUSE_DIR}" != "x"; then
if test -d ${PRI_PROG_W_CAUSE_DIR}/lib; then
- pbxlibdir="-L${PRI_PROG_W_CAUSE_DIR}/lib"
+ pbxlibdir="-L${PRI_PROG_W_CAUSE_DIR}/lib"
else
- pbxlibdir="-L${PRI_PROG_W_CAUSE_DIR}"
+ pbxlibdir="-L${PRI_PROG_W_CAUSE_DIR}"
fi
fi
pbxfuncname="pri_progress_with_cause"
@@ -24409,9 +24425,9 @@
# if --with-PRI_INBANDDISCONNECT=DIR has been specified, use it.
if test "x${PRI_INBANDDISCONNECT_DIR}" != "x"; then
if test -d ${PRI_INBANDDISCONNECT_DIR}/lib; then
- pbxlibdir="-L${PRI_INBANDDISCONNECT_DIR}/lib"
+ pbxlibdir="-L${PRI_INBANDDISCONNECT_DIR}/lib"
else
- pbxlibdir="-L${PRI_INBANDDISCONNECT_DIR}"
+ pbxlibdir="-L${PRI_INBANDDISCONNECT_DIR}"
fi
fi
pbxfuncname="pri_set_inbanddisconnect"
@@ -24513,9 +24529,9 @@
# if --with-PRI_SERVICE_MESSAGES=DIR has been specified, use it.
if test "x${PRI_SERVICE_MESSAGES_DIR}" != "x"; then
if test -d ${PRI_SERVICE_MESSAGES_DIR}/lib; then
- pbxlibdir="-L${PRI_SERVICE_MESSAGES_DIR}/lib"
+ pbxlibdir="-L${PRI_SERVICE_MESSAGES_DIR}/lib"
else
- pbxlibdir="-L${PRI_SERVICE_MESSAGES_DIR}"
+ pbxlibdir="-L${PRI_SERVICE_MESSAGES_DIR}"
fi
fi
pbxfuncname="pri_maintenance_service"
@@ -24617,9 +24633,9 @@
# if --with-PRI_REVERSE_CHARGE=DIR has been specified, use it.
if test "x${PRI_REVERSE_CHARGE_DIR}" != "x"; then
if test -d ${PRI_REVERSE_CHARGE_DIR}/lib; then
- pbxlibdir="-L${PRI_REVERSE_CHARGE_DIR}/lib"
+ pbxlibdir="-L${PRI_REVERSE_CHARGE_DIR}/lib"
else
- pbxlibdir="-L${PRI_REVERSE_CHARGE_DIR}"
+ pbxlibdir="-L${PRI_REVERSE_CHARGE_DIR}"
fi
fi
pbxfuncname="pri_sr_set_reversecharge"
@@ -24723,9 +24739,9 @@
# if --with-RESAMPLE=DIR has been specified, use it.
if test "x${RESAMPLE_DIR}" != "x"; then
if test -d ${RESAMPLE_DIR}/lib; then
- pbxlibdir="-L${RESAMPLE_DIR}/lib"
+ pbxlibdir="-L${RESAMPLE_DIR}/lib"
else
- pbxlibdir="-L${RESAMPLE_DIR}"
+ pbxlibdir="-L${RESAMPLE_DIR}"
fi
fi
pbxfuncname="resample_open"
@@ -24890,9 +24906,9 @@
# if --with-SPANDSP=DIR has been specified, use it.
if test "x${SPANDSP_DIR}" != "x"; then
if test -d ${SPANDSP_DIR}/lib; then
- pbxlibdir="-L${SPANDSP_DIR}/lib"
+ pbxlibdir="-L${SPANDSP_DIR}/lib"
else
- pbxlibdir="-L${SPANDSP_DIR}"
+ pbxlibdir="-L${SPANDSP_DIR}"
fi
fi
pbxfuncname="span_set_message_handler"
@@ -24999,9 +25015,9 @@
# if --with-SPANDSP=DIR has been specified, use it.
if test "x${SPANDSP_DIR}" != "x"; then
if test -d ${SPANDSP_DIR}/lib; then
- pbxlibdir="-L${SPANDSP_DIR}/lib"
+ pbxlibdir="-L${SPANDSP_DIR}/lib"
else
- pbxlibdir="-L${SPANDSP_DIR}"
+ pbxlibdir="-L${SPANDSP_DIR}"
fi
fi
pbxfuncname="t38_terminal_init"
@@ -25106,9 +25122,9 @@
# if --with-SS7=DIR has been specified, use it.
if test "x${SS7_DIR}" != "x"; then
if test -d ${SS7_DIR}/lib; then
- pbxlibdir="-L${SS7_DIR}/lib"
+ pbxlibdir="-L${SS7_DIR}/lib"
else
- pbxlibdir="-L${SS7_DIR}"
+ pbxlibdir="-L${SS7_DIR}"
fi
fi
pbxfuncname="ss7_set_adjpc"
@@ -25211,9 +25227,9 @@
# if --with-OPENR2=DIR has been specified, use it.
if test "x${OPENR2_DIR}" != "x"; then
if test -d ${OPENR2_DIR}/lib; then
- pbxlibdir="-L${OPENR2_DIR}/lib"
+ pbxlibdir="-L${OPENR2_DIR}/lib"
else
- pbxlibdir="-L${OPENR2_DIR}"
+ pbxlibdir="-L${OPENR2_DIR}"
fi
fi
pbxfuncname="openr2_chan_new"
@@ -26056,9 +26072,9 @@
# if --with-LUA=DIR has been specified, use it.
if test "x${LUA_DIR}" != "x"; then
if test -d ${LUA_DIR}/lib; then
- pbxlibdir="-L${LUA_DIR}/lib"
+ pbxlibdir="-L${LUA_DIR}/lib"
else
- pbxlibdir="-L${LUA_DIR}"
+ pbxlibdir="-L${LUA_DIR}"
fi
fi
pbxfuncname="luaL_newstate"
@@ -26169,9 +26185,9 @@
# if --with-LUA=DIR has been specified, use it.
if test "x${LUA_DIR}" != "x"; then
if test -d ${LUA_DIR}/lib; then
- pbxlibdir="-L${LUA_DIR}/lib"
+ pbxlibdir="-L${LUA_DIR}/lib"
else
- pbxlibdir="-L${LUA_DIR}"
+ pbxlibdir="-L${LUA_DIR}"
fi
fi
pbxfuncname="luaL_register"
@@ -26274,9 +26290,9 @@
# if --with-RADIUS=DIR has been specified, use it.
if test "x${RADIUS_DIR}" != "x"; then
if test -d ${RADIUS_DIR}/lib; then
- pbxlibdir="-L${RADIUS_DIR}/lib"
+ pbxlibdir="-L${RADIUS_DIR}/lib"
else
- pbxlibdir="-L${RADIUS_DIR}"
+ pbxlibdir="-L${RADIUS_DIR}"
fi
fi
pbxfuncname="rc_read_config"
@@ -26388,9 +26404,9 @@
# if --with-OPENAIS=DIR has been specified, use it.
if test "x${OPENAIS_DIR}" != "x"; then
if test -d ${OPENAIS_DIR}/lib; then
- pbxlibdir="-L${OPENAIS_DIR}/lib"
+ pbxlibdir="-L${OPENAIS_DIR}/lib"
else
- pbxlibdir="-L${OPENAIS_DIR}"
+ pbxlibdir="-L${OPENAIS_DIR}"
fi
fi
pbxfuncname="saClmInitialize"
@@ -26508,9 +26524,9 @@
# if --with-SPEEX=DIR has been specified, use it.
if test "x${SPEEX_DIR}" != "x"; then
if test -d ${SPEEX_DIR}/lib; then
- pbxlibdir="-L${SPEEX_DIR}/lib"
+ pbxlibdir="-L${SPEEX_DIR}/lib"
else
- pbxlibdir="-L${SPEEX_DIR}"
+ pbxlibdir="-L${SPEEX_DIR}"
fi
fi
pbxfuncname="speex_encode"
@@ -26614,9 +26630,9 @@
# if --with-SPEEX_PREPROCESS=DIR has been specified, use it.
if test "x${SPEEX_PREPROCESS_DIR}" != "x"; then
if test -d ${SPEEX_PREPROCESS_DIR}/lib; then
- pbxlibdir="-L${SPEEX_PREPROCESS_DIR}/lib"
+ pbxlibdir="-L${SPEEX_PREPROCESS_DIR}/lib"
else
- pbxlibdir="-L${SPEEX_PREPROCESS_DIR}"
+ pbxlibdir="-L${SPEEX_PREPROCESS_DIR}"
fi
fi
pbxfuncname="speex_preprocess_ctl"
@@ -26722,9 +26738,9 @@
# if --with-SPEEXDSP=DIR has been specified, use it.
if test "x${SPEEXDSP_DIR}" != "x"; then
if test -d ${SPEEXDSP_DIR}/lib; then
- pbxlibdir="-L${SPEEXDSP_DIR}/lib"
+ pbxlibdir="-L${SPEEXDSP_DIR}/lib"
else
- pbxlibdir="-L${SPEEXDSP_DIR}"
+ pbxlibdir="-L${SPEEXDSP_DIR}"
fi
fi
pbxfuncname="speex_preprocess_ctl"
@@ -26832,9 +26848,9 @@
# if --with-SQLITE=DIR has been specified, use it.
if test "x${SQLITE_DIR}" != "x"; then
if test -d ${SQLITE_DIR}/lib; then
- pbxlibdir="-L${SQLITE_DIR}/lib"
+ pbxlibdir="-L${SQLITE_DIR}/lib"
else
- pbxlibdir="-L${SQLITE_DIR}"
+ pbxlibdir="-L${SQLITE_DIR}"
fi
fi
pbxfuncname="sqlite_exec"
@@ -26937,9 +26953,9 @@
# if --with-SQLITE3=DIR has been specified, use it.
if test "x${SQLITE3_DIR}" != "x"; then
if test -d ${SQLITE3_DIR}/lib; then
- pbxlibdir="-L${SQLITE3_DIR}/lib"
+ pbxlibdir="-L${SQLITE3_DIR}/lib"
else
- pbxlibdir="-L${SQLITE3_DIR}"
+ pbxlibdir="-L${SQLITE3_DIR}"
fi
fi
pbxfuncname="sqlite3_open"
@@ -27042,9 +27058,9 @@
# if --with-CRYPTO=DIR has been specified, use it.
if test "x${CRYPTO_DIR}" != "x"; then
if test -d ${CRYPTO_DIR}/lib; then
- pbxlibdir="-L${CRYPTO_DIR}/lib"
+ pbxlibdir="-L${CRYPTO_DIR}/lib"
else
- pbxlibdir="-L${CRYPTO_DIR}"
+ pbxlibdir="-L${CRYPTO_DIR}"
fi
fi
pbxfuncname="AES_encrypt"
@@ -27149,9 +27165,9 @@
# if --with-OPENSSL=DIR has been specified, use it.
if test "x${OPENSSL_DIR}" != "x"; then
if test -d ${OPENSSL_DIR}/lib; then
- pbxlibdir="-L${OPENSSL_DIR}/lib"
+ pbxlibdir="-L${OPENSSL_DIR}/lib"
else
- pbxlibdir="-L${OPENSSL_DIR}"
+ pbxlibdir="-L${OPENSSL_DIR}"
fi
fi
pbxfuncname="SSL_connect"
@@ -27386,9 +27402,9 @@
# if --with-SRTP=DIR has been specified, use it.
if test "x${SRTP_DIR}" != "x"; then
if test -d ${SRTP_DIR}/lib; then
- pbxlibdir="-L${SRTP_DIR}/lib"
+ pbxlibdir="-L${SRTP_DIR}/lib"
else
- pbxlibdir="-L${SRTP_DIR}"
+ pbxlibdir="-L${SRTP_DIR}"
fi
fi
pbxfuncname="srtp_init"
@@ -27548,6 +27564,111 @@
fi
+if test "x${PBX_SRTP_SHUTDOWN}" != "x1" -a "${USE_SRTP_SHUTDOWN}" != "no"; then
+ pbxlibdir=""
+ # if --with-SRTP_SHUTDOWN=DIR has been specified, use it.
+ if test "x${SRTP_SHUTDOWN_DIR}" != "x"; then
+ if test -d ${SRTP_SHUTDOWN_DIR}/lib; then
+ pbxlibdir="-L${SRTP_SHUTDOWN_DIR}/lib"
+ else
+ pbxlibdir="-L${SRTP_SHUTDOWN_DIR}"
+ fi
+ fi
+ pbxfuncname="srtp_shutdown"
+ if test "x${pbxfuncname}" = "x" ; then # empty lib, assume only headers
+ AST_SRTP_SHUTDOWN_FOUND=yes
+ else
+ ast_ext_lib_check_save_CFLAGS="${CFLAGS}"
+ CFLAGS="${CFLAGS} "
+ as_ac_Lib=`$as_echo "ac_cv_lib_srtp_${pbxfuncname}" | $as_tr_sh`
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${pbxfuncname} in -lsrtp" >&5
+$as_echo_n "checking for ${pbxfuncname} in -lsrtp... " >&6; }
+if eval \${$as_ac_Lib+:} false; then :
+ $as_echo_n "(cached) " >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsrtp ${pbxlibdir} $LIBS"
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h. */
+
+/* Override any GCC internal prototype to avoid an error.
+ Use char because int might match the return type of a GCC
+ builtin and then its argument prototype would still apply. */
+#ifdef __cplusplus
+extern "C"
+#endif
+char ${pbxfuncname} ();
+int
+main ()
+{
+return ${pbxfuncname} ();
+ ;
+ return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"; then :
+ eval "$as_ac_Lib=yes"
+else
+ eval "$as_ac_Lib=no"
+fi
+rm -f core conftest.err conftest.$ac_objext \
+ conftest$ac_exeext conftest.$ac_ext
+LIBS=$ac_check_lib_save_LIBS
+fi
+eval ac_res=\$$as_ac_Lib
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
+ AST_SRTP_SHUTDOWN_FOUND=yes
+else
+ AST_SRTP_SHUTDOWN_FOUND=no
+fi
+
+ CFLAGS="${ast_ext_lib_check_save_CFLAGS}"
+ fi
+
+ # now check for the header.
+ if test "${AST_SRTP_SHUTDOWN_FOUND}" = "yes"; then
+ SRTP_SHUTDOWN_LIB="${pbxlibdir} -lsrtp "
+ # if --with-SRTP_SHUTDOWN=DIR has been specified, use it.
+ if test "x${SRTP_SHUTDOWN_DIR}" != "x"; then
+ SRTP_SHUTDOWN_INCLUDE="-I${SRTP_SHUTDOWN_DIR}/include"
+ fi
+ SRTP_SHUTDOWN_INCLUDE="${SRTP_SHUTDOWN_INCLUDE} "
+ if test "xsrtp/srtp.h" = "x" ; then # no header, assume found
+ SRTP_SHUTDOWN_HEADER_FOUND="1"
+ else # check for the header
+ ast_ext_lib_check_saved_CPPFLAGS="${CPPFLAGS}"
+ CPPFLAGS="${CPPFLAGS} ${SRTP_SHUTDOWN_INCLUDE}"
+ ac_fn_c_check_header_mongrel "$LINENO" "srtp/srtp.h" "ac_cv_header_srtp_srtp_h" "$ac_includes_default"
+if test "x$ac_cv_header_srtp_srtp_h" = xyes; then :
+ SRTP_SHUTDOWN_HEADER_FOUND=1
+else
+ SRTP_SHUTDOWN_HEADER_FOUND=0
+fi
+
+
+ CPPFLAGS="${ast_ext_lib_check_saved_CPPFLAGS}"
+ fi
+ if test "x${SRTP_SHUTDOWN_HEADER_FOUND}" = "x0" ; then
+ SRTP_SHUTDOWN_LIB=""
+ SRTP_SHUTDOWN_INCLUDE=""
+ else
+ if test "x${pbxfuncname}" = "x" ; then # only checking headers -> no library
+ SRTP_SHUTDOWN_LIB=""
+ fi
+ PBX_SRTP_SHUTDOWN=1
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_SRTP_SHUTDOWN 1
+_ACEOF
+
+ fi
+ fi
+fi
+
+
+
+
if test "x${PBX_GMIME}" != "x1" -a "${USE_GMIME}" != "no"; then
PBX_GMIME=0
if test -n "$ac_tool_prefix"; then
@@ -27720,9 +27841,9 @@
# if --with-HOARD=DIR has been specified, use it.
if test "x${HOARD_DIR}" != "x"; then
if test -d ${HOARD_DIR}/lib; then
- pbxlibdir="-L${HOARD_DIR}/lib"
+ pbxlibdir="-L${HOARD_DIR}/lib"
else
- pbxlibdir="-L${HOARD_DIR}"
+ pbxlibdir="-L${HOARD_DIR}"
fi
fi
pbxfuncname="malloc"
@@ -27825,9 +27946,9 @@
# if --with-FREETDS=DIR has been specified, use it.
if test "x${FREETDS_DIR}" != "x"; then
if test -d ${FREETDS_DIR}/lib; then
- pbxlibdir="-L${FREETDS_DIR}/lib"
+ pbxlibdir="-L${FREETDS_DIR}/lib"
else
- pbxlibdir="-L${FREETDS_DIR}"
+ pbxlibdir="-L${FREETDS_DIR}"
fi
fi
pbxfuncname="dbinit"
@@ -27977,9 +28098,9 @@
# if --with-TONEZONE=DIR has been specified, use it.
if test "x${TONEZONE_DIR}" != "x"; then
if test -d ${TONEZONE_DIR}/lib; then
- pbxlibdir="-L${TONEZONE_DIR}/lib"
+ pbxlibdir="-L${TONEZONE_DIR}/lib"
else
- pbxlibdir="-L${TONEZONE_DIR}"
+ pbxlibdir="-L${TONEZONE_DIR}"
fi
fi
pbxfuncname="tone_zone_find"
@@ -28084,9 +28205,9 @@
# if --with-VORBIS=DIR has been specified, use it.
if test "x${VORBIS_DIR}" != "x"; then
if test -d ${VORBIS_DIR}/lib; then
- pbxlibdir="-L${VORBIS_DIR}/lib"
+ pbxlibdir="-L${VORBIS_DIR}/lib"
else
- pbxlibdir="-L${VORBIS_DIR}"
+ pbxlibdir="-L${VORBIS_DIR}"
fi
fi
pbxfuncname="vorbis_info_init"
@@ -28189,9 +28310,9 @@
# if --with-VORBIS=DIR has been specified, use it.
if test "x${VORBIS_DIR}" != "x"; then
if test -d ${VORBIS_DIR}/lib; then
- pbxlibdir="-L${VORBIS_DIR}/lib"
+ pbxlibdir="-L${VORBIS_DIR}/lib"
else
- pbxlibdir="-L${VORBIS_DIR}"
+ pbxlibdir="-L${VORBIS_DIR}"
fi
fi
pbxfuncname="vorbis_info_init"
@@ -28410,9 +28531,9 @@
# if --with-ZLIB=DIR has been specified, use it.
if test "x${ZLIB_DIR}" != "x"; then
if test -d ${ZLIB_DIR}/lib; then
- pbxlibdir="-L${ZLIB_DIR}/lib"
+ pbxlibdir="-L${ZLIB_DIR}/lib"
else
- pbxlibdir="-L${ZLIB_DIR}"
+ pbxlibdir="-L${ZLIB_DIR}"
fi
fi
pbxfuncname="compress"
@@ -28827,9 +28948,9 @@
# if --with-SDL_IMAGE=DIR has been specified, use it.
if test "x${SDL_IMAGE_DIR}" != "x"; then
if test -d ${SDL_IMAGE_DIR}/lib; then
- pbxlibdir="-L${SDL_IMAGE_DIR}/lib"
+ pbxlibdir="-L${SDL_IMAGE_DIR}/lib"
else
- pbxlibdir="-L${SDL_IMAGE_DIR}"
+ pbxlibdir="-L${SDL_IMAGE_DIR}"
fi
fi
pbxfuncname="IMG_Load"
@@ -28931,9 +29052,9 @@
# if --with-FFMPEG=DIR has been specified, use it.
if test "x${FFMPEG_DIR}" != "x"; then
if test -d ${FFMPEG_DIR}/lib; then
- pbxlibdir="-L${FFMPEG_DIR}/lib"
+ pbxlibdir="-L${FFMPEG_DIR}/lib"
else
- pbxlibdir="-L${FFMPEG_DIR}"
+ pbxlibdir="-L${FFMPEG_DIR}"
fi
fi
pbxfuncname="sws_getContext"
@@ -29049,9 +29170,9 @@
# if --with-X11=DIR has been specified, use it.
if test "x${X11_DIR}" != "x"; then
if test -d ${X11_DIR}/lib; then
- pbxlibdir="-L${X11_DIR}/lib"
+ pbxlibdir="-L${X11_DIR}/lib"
else
- pbxlibdir="-L${X11_DIR}"
+ pbxlibdir="-L${X11_DIR}"
fi
fi
pbxfuncname="XOpenDisplay"
@@ -29157,9 +29278,9 @@
# if --with-X11=DIR has been specified, use it.
if test "x${X11_DIR}" != "x"; then
if test -d ${X11_DIR}/lib; then
- pbxlibdir="-L${X11_DIR}/lib"
+ pbxlibdir="-L${X11_DIR}/lib"
else
- pbxlibdir="-L${X11_DIR}"
+ pbxlibdir="-L${X11_DIR}"
fi
fi
pbxfuncname="XOpenDisplay"
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/configure.ac
^
|
@@ -20,7 +20,7 @@
AC_CONFIG_AUX_DIR(`pwd`)
AC_COPYRIGHT("Asterisk")
-AC_REVISION($Revision: 382110 $)
+AC_REVISION($Revision: 388768 $)
# preserve any CFLAGS or LDFLAGS that may be set
# NOTE: This must be done before calling any macros that end up
@@ -444,6 +444,7 @@
AST_EXT_LIB_SETUP([SQLITE], [SQLite], [sqlite])
AST_EXT_LIB_SETUP([SQLITE3], [SQLite], [sqlite3])
AST_EXT_LIB_SETUP([SRTP], [Secure RTP], [srtp])
+AST_EXT_LIB_SETUP_OPTIONAL([SRTP_SHUTDOWN], [SRTP Library Shutdown Function], [SRTP], [srtp])
AST_EXT_LIB_SETUP([OPENSSL], [OpenSSL Secure Sockets Layer], [ssl])
AST_EXT_LIB_SETUP([SUPPSERV], [mISDN Supplemental Services], [suppserv])
AST_EXT_LIB_SETUP([FREETDS], [FreeTDS], [tds])
@@ -2066,6 +2067,8 @@
CFLAGS="${saved_cflags}"
fi
+AST_EXT_LIB_CHECK([SRTP_SHUTDOWN], [srtp], [srtp_shutdown], [srtp/srtp.h])
+
AST_EXT_TOOL_CHECK([GMIME], [gmime-config], [], [], [#include <gmime/gmime.h>], [gboolean q = g_mime_check_version(0,0,0);])
if test "x${PBX_GMIME}" = "x0" -a "${PKGCONFIG}" != "No"; then
# Later versions of GMime use pkg-config
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/contrib/realtime/mysql/sippeers.sql
^
|
@@ -24,7 +24,7 @@
`transport` enum('udp','tcp','udp,tcp','tcp,udp') DEFAULT NULL,
`dtmfmode` enum('rfc2833','info','shortinfo','inband','auto') DEFAULT NULL,
`directmedia` enum('yes','no','nonat','update') DEFAULT NULL,
- `nat` enum('yes','no','never','route') DEFAULT NULL,
+ `nat` varchar(29) DEFAULT NULL,
`callgroup` varchar(40) DEFAULT NULL,
`pickupgroup` varchar(40) DEFAULT NULL,
`language` varchar(40) DEFAULT NULL,
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/contrib/realtime/postgresql/realtime.sql
^
|
@@ -48,7 +48,7 @@
"language" character varying(2),
mailbox character varying(50),
md5secret character varying(80),
-nat character varying(5) DEFAULT 'no' NOT NULL,
+nat character varying(29) DEFAULT '' NOT NULL,
permit character varying(95),
deny character varying(95),
mask character varying(95),
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/funcs/func_channel.c
^
|
@@ -30,7 +30,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 370642 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 384640 $")
#include <regex.h>
#include <ctype.h>
@@ -77,6 +77,20 @@
<parameter name="item" required="true">
<para>Standard items (provided by all channel technologies) are:</para>
<enumlist>
+ <enum name="amaflags">
+ <para>R/W the Automatic Message Accounting (AMA) flags on the channel.
+ When read from a channel, the integer value will always be returned.
+ When written to a channel, both the string format or integer value
+ is accepted.</para>
+ <enumlist>
+ <enum name="1"><para><literal>OMIT</literal></para></enum>
+ <enum name="2"><para><literal>BILLING</literal></para></enum>
+ <enum name="3"><para><literal>DOCUMENTATION</literal></para></enum>
+ </enumlist>
+ </enum>
+ <enum name="accountcode">
+ <para>R/W the channel's account code.</para>
+ </enum>
<enum name="audioreadformat">
<para>R/O format currently being read.</para>
</enum>
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/include/asterisk/autoconfig.h.in
^
|
@@ -739,6 +739,9 @@
/* Define to 1 if you have the Secure RTP library. */
#undef HAVE_SRTP
+/* Define to 1 if SRTP has the SRTP Library Shutdown Function feature. */
+#undef HAVE_SRTP_SHUTDOWN
+
/* Define to 1 if you have the ISDN SS7 library. */
#undef HAVE_SS7
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/include/asterisk/utils.h
^
|
@@ -307,8 +307,8 @@
res = (int) *input + *value;
if (res > 32767)
*input = 32767;
- else if (res < -32767)
- *input = -32767;
+ else if (res < -32768)
+ *input = -32768;
else
*input = (short) res;
}
@@ -320,8 +320,8 @@
res = (int) *input - *value;
if (res > 32767)
*input = 32767;
- else if (res < -32767)
- *input = -32767;
+ else if (res < -32768)
+ *input = -32768;
else
*input = (short) res;
}
@@ -333,8 +333,8 @@
res = (int) *input * *value;
if (res > 32767)
*input = 32767;
- else if (res < -32767)
- *input = -32767;
+ else if (res < -32768)
+ *input = -32768;
else
*input = (short) res;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/channel.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388195 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 390044 $")
#include "asterisk/_private.h"
@@ -6350,14 +6350,14 @@
linkedid = oldest_linkedid(linkedid, peer->uniqueid);
if (chan->_bridge) {
bridged = ast_bridged_channel(chan);
- if (bridged != peer) {
+ if (bridged && bridged != peer) {
linkedid = oldest_linkedid(linkedid, bridged->linkedid);
linkedid = oldest_linkedid(linkedid, bridged->uniqueid);
}
}
if (peer->_bridge) {
bridged = ast_bridged_channel(peer);
- if (bridged != chan) {
+ if (bridged && bridged != chan) {
linkedid = oldest_linkedid(linkedid, bridged->linkedid);
linkedid = oldest_linkedid(linkedid, bridged->uniqueid);
}
@@ -6370,13 +6370,13 @@
ast_channel_change_linkedid(peer, linkedid);
if (chan->_bridge) {
bridged = ast_bridged_channel(chan);
- if (bridged != peer) {
+ if (bridged && bridged != peer) {
ast_channel_change_linkedid(bridged, linkedid);
}
}
if (peer->_bridge) {
bridged = ast_bridged_channel(peer);
- if (bridged != chan) {
+ if (bridged && bridged != chan) {
ast_channel_change_linkedid(bridged, linkedid);
}
}
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/cli.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 377073 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 386049 $")
#include "asterisk/_private.h"
#include "asterisk/paths.h" /* use ast_config_AST_MODULE_DIR */
@@ -93,9 +93,9 @@
AST_RWLIST_HEAD(module_level_list, module_level);
/*! list of module names and their debug levels */
-static struct module_level_list debug_modules;
+static struct module_level_list debug_modules = AST_RWLIST_HEAD_INIT_VALUE;
/*! list of module names and their verbose levels */
-static struct module_level_list verbose_modules;
+static struct module_level_list verbose_modules = AST_RWLIST_HEAD_INIT_VALUE;
AST_THREADSTORAGE(ast_cli_buf);
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/config.c
^
|
@@ -32,7 +32,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 378375 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 386672 $")
#include "asterisk/paths.h" /* use ast_config_AST_CONFIG_DIR */
#include "asterisk/network.h" /* we do some sockaddr manipulation here */
@@ -1493,6 +1493,9 @@
AST_LIST_UNLOCK(&cfmtime_head);
ast_free(comment_buffer);
ast_free(lline_buffer);
+#ifdef AST_INCLUDE_GLOB
+ globfree(&globbuf);
+#endif
return CONFIG_STATUS_FILEUNCHANGED;
}
}
@@ -1503,6 +1506,9 @@
if (cfg == NULL) {
ast_free(comment_buffer);
ast_free(lline_buffer);
+#ifdef AST_INCLUDE_GLOB
+ globfree(&globbuf);
+#endif
return NULL;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/devicestate.c
^
|
@@ -119,7 +119,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388195 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385916 $")
#include "asterisk/_private.h"
#include "asterisk/channel.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/features.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388195 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 387036 $")
#include "asterisk/_private.h"
@@ -8266,6 +8266,7 @@
/*! \internal \brief Clean up resources on Asterisk shutdown */
static void features_shutdown(void)
{
+ ast_cli_unregister_multiple(cli_features, ARRAY_LEN(cli_features));
ast_devstate_prov_del("Park");
ast_manager_unregister("Bridge");
ast_manager_unregister("Park");
@@ -8276,6 +8277,9 @@
ast_unregister_application(app_bridge);
pthread_cancel(parking_thread);
+ pthread_kill(parking_thread, SIGURG);
+ pthread_join(parking_thread, NULL);
+ ast_context_destroy(NULL, registrar);
ao2_ref(parkinglots, -1);
}
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/lock.c
^
|
@@ -27,7 +27,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 376586 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388838 $")
#include "asterisk/lock.h"
@@ -745,7 +745,7 @@
__ast_mutex_logger("%s line %d (%s): Error destroying rwlock %s: %s\n",
filename, lineno, func, rwlock_name, strerror(res));
}
- if (t->tracking) {
+ if (t->tracking && lt) {
ast_reentrancy_lock(lt);
lt->file[0] = filename;
lt->lineno[0] = lineno;
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/logger.c
^
|
@@ -31,7 +31,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 377771 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 389676 $")
/* When we include logger.h again it will trample on some stuff in syslog.h, but
* nothing we care about in here. */
@@ -1087,10 +1087,6 @@
/* Free the data since we are done */
ast_free(msg);
}
-
- /* If we should stop, then stop */
- if (close_logger_thread)
- break;
}
return NULL;
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/manager.c
^
|
@@ -47,7 +47,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 383165 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388477 $")
#include "asterisk/_private.h"
#include "asterisk/paths.h" /* use various ast_config_AST_* */
@@ -3465,7 +3465,7 @@
astman_send_error(s, m, "Failure");
}
- return res;
+ return 0;
}
/*! \brief action_redirect: The redirect manager command */
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/pbx.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 377806 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388532 $")
#include "asterisk/_private.h"
#include "asterisk/paths.h" /* use ast_config_AST_SYSTEM_NAME */
@@ -9383,6 +9383,7 @@
}
tmp->root = NULL;
ast_rwlock_destroy(&tmp->lock);
+ ast_mutex_destroy(&tmp->macrolock);
ast_free(tmp);
}
@@ -10978,6 +10979,10 @@
ao2_ref(statecbs, -1);
statecbs = NULL;
}
+ if (contexts_table) {
+ ast_hashtab_destroy(contexts_table, NULL);
+ }
+ pbx_builtin_clear_globals();
}
int ast_pbx_init(void)
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/slinfactory.c
^
|
@@ -30,7 +30,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 369001 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 389895 $")
#include "asterisk/frame.h"
#include "asterisk/slinfactory.h"
@@ -139,7 +139,7 @@
return x;
}
-int ast_slinfactory_read(struct ast_slinfactory *sf, short *buf, size_t samples)
+int ast_slinfactory_read(struct ast_slinfactory *sf, short *buf, size_t samples)
{
struct ast_frame *frame_ptr;
unsigned int sofar = 0, ineed, remain;
@@ -150,7 +150,7 @@
if (sf->holdlen) {
if (sf->holdlen <= ineed) {
- memcpy(offset, sf->hold, sf->holdlen * sizeof(*offset));
+ memcpy(offset, sf->offset, sf->holdlen * sizeof(*offset));
sofar += sf->holdlen;
offset += sf->holdlen;
sf->holdlen = 0;
@@ -164,10 +164,10 @@
}
continue;
}
-
+
if ((frame_ptr = AST_LIST_REMOVE_HEAD(&sf->queue, frame_list))) {
frame_data = frame_ptr->data.ptr;
-
+
if (frame_ptr->samples <= ineed) {
memcpy(offset, frame_data, frame_ptr->samples * sizeof(*offset));
sofar += frame_ptr->samples;
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/main/utils.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 378933 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 387294 $")
#include <ctype.h>
#include <sys/stat.h>
@@ -40,6 +40,7 @@
#endif
#include "asterisk/network.h"
+#include "asterisk/ast_version.h"
#define AST_API_MODULE /* ensure that inlinable API functions will be built in lock.h if required */
#include "asterisk/lock.h"
@@ -967,11 +968,12 @@
ast_str_append(&str, 0, "\n"
"=======================================================================\n"
- "=== Currently Held Locks ==============================================\n"
+ "=== %s\n"
+ "=== Currently Held Locks\n"
"=======================================================================\n"
"===\n"
"=== <pending> <lock#> (<file>): <lock type> <line num> <function> <lock name> <lock addr> (times locked)\n"
- "===\n");
+ "===\n", ast_get_version());
if (!str)
return CLI_FAILURE;
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/pbx/pbx_dundi.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 376657 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388376 $")
#include "asterisk/network.h"
#include <sys/ioctl.h>
@@ -2162,7 +2162,7 @@
from the network, and queue them for delivery to the channels */
int res;
/* Establish I/O callback for socket read */
- ast_io_add(io, netsocket, socket_read, AST_IO_IN, NULL);
+ int *socket_read_id = ast_io_add(io, netsocket, socket_read, AST_IO_IN, NULL);
while (!dundi_shutdown) {
res = ast_sched_wait(sched);
@@ -2177,6 +2177,7 @@
check_password();
}
+ ast_io_remove(io, socket_read_id);
netthreadid = AST_PTHREADT_NULL;
return NULL;
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/res/res_config_ldap.c
^
|
@@ -44,7 +44,7 @@
#include <stdio.h>
#include <ldap.h>
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 328209 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385190 $")
#include "asterisk/channel.h"
#include "asterisk/logger.h"
@@ -1229,14 +1229,14 @@
}
mods_size = 2; /* one for the first param/value pair and one for the the terminating NULL */
- ldap_mods = ast_calloc(sizeof(LDAPMod *), mods_size);
- ldap_mods[0] = ast_calloc(1, sizeof(LDAPMod));
+ ldap_mods = ldap_memcalloc(sizeof(LDAPMod *), mods_size);
+ ldap_mods[0] = ldap_memcalloc(1, sizeof(LDAPMod));
ldap_mods[0]->mod_op = LDAP_MOD_REPLACE;
- ldap_mods[0]->mod_type = ast_strdup(newparam);
+ ldap_mods[0]->mod_type = ldap_strdup(newparam);
ldap_mods[0]->mod_values = ast_calloc(sizeof(char *), 2);
- ldap_mods[0]->mod_values[0] = ast_strdup(newval);
+ ldap_mods[0]->mod_values[0] = ldap_strdup(newval);
while ((newparam = va_arg(ap, const char *))) {
newparam = convert_attribute_name_to_ldap(table_config, newparam);
@@ -1246,7 +1246,7 @@
for (i = 0; i < mods_size - 1; i++) {
if (ldap_mods[i]&& !strcmp(ldap_mods[i]->mod_type, newparam)) {
/* We have the parameter allready, adding the value as a semicolon delimited value */
- ldap_mods[i]->mod_values[0] = ast_realloc(ldap_mods[i]->mod_values[0], sizeof(char) * (strlen(ldap_mods[i]->mod_values[0]) + strlen(newval) + 2));
+ ldap_mods[i]->mod_values[0] = ldap_memrealloc(ldap_mods[i]->mod_values[0], sizeof(char) * (strlen(ldap_mods[i]->mod_values[0]) + strlen(newval) + 2));
strcat(ldap_mods[i]->mod_values[0], ";");
strcat(ldap_mods[i]->mod_values[0], newval);
mod_exists = 1;
@@ -1257,12 +1257,12 @@
/* create new mod */
if (!mod_exists) {
mods_size++;
- ldap_mods = ast_realloc(ldap_mods, sizeof(LDAPMod *) * mods_size);
+ ldap_mods = ldap_memrealloc(ldap_mods, sizeof(LDAPMod *) * mods_size);
ldap_mods[mods_size - 1] = NULL;
- ldap_mods[mods_size - 2] = ast_calloc(1, sizeof(LDAPMod));
+ ldap_mods[mods_size - 2] = ldap_memcalloc(1, sizeof(LDAPMod));
- ldap_mods[mods_size - 2]->mod_type = ast_calloc(sizeof(char), strlen(newparam) + 1);
+ ldap_mods[mods_size - 2]->mod_type = ldap_memcalloc(sizeof(char), strlen(newparam) + 1);
strcpy(ldap_mods[mods_size - 2]->mod_type, newparam);
if (strlen(newval) == 0) {
@@ -1270,8 +1270,8 @@
} else {
ldap_mods[mods_size - 2]->mod_op = LDAP_MOD_REPLACE;
- ldap_mods[mods_size - 2]->mod_values = ast_calloc(sizeof(char *), 2);
- ldap_mods[mods_size - 2]->mod_values[0] = ast_calloc(sizeof(char), strlen(newval) + 1);
+ ldap_mods[mods_size - 2]->mod_values = ldap_memcalloc(sizeof(char *), 2);
+ ldap_mods[mods_size - 2]->mod_values[0] = ldap_memcalloc(sizeof(char), strlen(newval) + 1);
strcpy(ldap_mods[mods_size - 2]->mod_values[0], newval);
}
}
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/res/res_jabber.c
^
|
@@ -38,7 +38,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388195 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385916 $")
#include <ctype.h>
#include <iksemel.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/res/res_mutestream.c
^
|
@@ -35,7 +35,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 89545 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385683 $")
//#include <time.h>
//#include <string.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/res/res_rtp_asterisk.c
^
|
@@ -34,7 +34,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 384048 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388111 $")
#include <sys/time.h>
#include <signal.h>
@@ -749,7 +749,7 @@
{
struct ast_rtp *rtp = ast_rtp_instance_get_data(instance);
struct ast_sockaddr remote_address = { {0,} };
- int hdrlen = 12, res = 0, i = 0;
+ int hdrlen = 12, res = -1, i = 0;
char data[256];
unsigned int *rtpheader = (unsigned int*)data;
unsigned int measured_samples;
@@ -758,7 +758,7 @@
/* Make sure we know where the remote side is so we can send them the packet we construct */
if (ast_sockaddr_isnull(&remote_address)) {
- return -1;
+ goto cleanup;
}
/* Convert the given digit to the one we are going to send */
@@ -774,7 +774,7 @@
digit = digit - 'a' + 12;
} else {
ast_log(LOG_WARNING, "Don't know how to represent '%c'\n", digit);
- return -1;
+ goto cleanup;
}
rtp->dtmfmute = ast_tvadd(ast_tvnow(), ast_tv(0, 500000));
@@ -809,13 +809,15 @@
rtp->seqno++;
}
+ res = 0;
/* Oh and we can't forget to turn off the stuff that says we are sending DTMF */
rtp->lastts += rtp->send_duration;
+cleanup:
rtp->sending_digit = 0;
rtp->send_digit = 0;
- return 0;
+ return res;
}
static int ast_rtp_dtmf_end(struct ast_rtp_instance *instance, char digit)
@@ -2792,8 +2794,7 @@
{
unsigned int *rtpheader;
int hdrlen = 12;
- int res;
- struct ast_rtp_payload_type payload;
+ int res, payload = 0;
char data[256];
struct ast_rtp *rtp = ast_rtp_instance_get_data(instance);
struct ast_sockaddr remote_address = { {0,} };
@@ -2804,7 +2805,7 @@
return -1;
}
- payload = ast_rtp_codecs_payload_lookup(ast_rtp_instance_get_codecs(instance), AST_RTP_CN);
+ payload = ast_rtp_codecs_payload_code(ast_rtp_instance_get_codecs(instance), 0, AST_RTP_CN);
level = 127 - (level & 0x7f);
@@ -2812,7 +2813,7 @@
/* Get a pointer to the header */
rtpheader = (unsigned int *)data;
- rtpheader[0] = htonl((2 << 30) | (1 << 23) | (payload.code << 16) | (rtp->seqno++));
+ rtpheader[0] = htonl((2 << 30) | (payload << 16) | (rtp->seqno));
rtpheader[1] = htonl(rtp->lastts);
rtpheader[2] = htonl(rtp->ssrc);
data[12] = level;
@@ -2827,6 +2828,8 @@
AST_RTP_CN, rtp->seqno, rtp->lastdigitts, res - hdrlen);
}
+ rtp->seqno++;
+
return res;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/res/res_rtp_multicast.c
^
|
@@ -34,7 +34,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385683 $")
#include <sys/time.h>
#include <signal.h>
@@ -90,6 +90,8 @@
unsigned int ssrc;
/*! Sequence number, used when creating/sending the RTP packet */
uint16_t seqno;
+ unsigned int lastts;
+ struct timeval txcore;
};
/* Forward Declarations */
@@ -140,6 +142,30 @@
return 0;
}
+static int rtp_get_rate(format_t format)
+{
+ return (format == AST_FORMAT_G722) ? 8000 : ast_format_rate(format);
+}
+
+static unsigned int calc_txstamp(struct multicast_rtp *rtp, struct timeval *delivery)
+{
+ struct timeval t;
+ long ms;
+
+ if (ast_tvzero(rtp->txcore)) {
+ rtp->txcore = ast_tvnow();
+ rtp->txcore.tv_usec -= rtp->txcore.tv_usec % 20000;
+ }
+
+ t = (delivery && !ast_tvzero(*delivery)) ? *delivery : ast_tvnow();
+ if ((ms = ast_tvdiff_ms(t, rtp->txcore)) < 0) {
+ ms = 0;
+ }
+ rtp->txcore = t;
+
+ return (unsigned int) ms;
+}
+
/*! \brief Helper function which populates a control packet with useful information and sends it */
static int multicast_send_control_packet(struct ast_rtp_instance *instance, struct multicast_rtp *multicast, int command)
{
@@ -209,12 +235,15 @@
struct ast_frame *f = frame;
struct ast_sockaddr remote_address;
int hdrlen = 12, res = 0, codec;
+ int rate;
unsigned char *rtpheader;
+ unsigned int ms = calc_txstamp(multicast, &frame->delivery);
/* We only accept audio, nothing else */
if (frame->frametype != AST_FRAME_VOICE) {
return 0;
}
+ rate = rtp_get_rate(frame->subclass.codec) / 1000;
/* Grab the actual payload number for when we create the RTP packet */
if ((codec = ast_rtp_codecs_payload_code(ast_rtp_instance_get_codecs(instance), 1, frame->subclass.codec)) < 0) {
@@ -226,11 +255,20 @@
f = ast_frdup(frame);
}
+ /* Calucate last TS */
+ multicast->lastts = multicast->lastts + ms * rate;
+
/* Construct an RTP header for our packet */
rtpheader = (unsigned char *)(f->data.ptr - hdrlen);
put_unaligned_uint32(rtpheader, htonl((2 << 30) | (codec << 16) | (multicast->seqno)));
- put_unaligned_uint32(rtpheader + 4, htonl(f->ts * 8));
- put_unaligned_uint32(rtpheader + 8, htonl(multicast->ssrc));
+ put_unaligned_uint32(rtpheader + 4, htonl(multicast->lastts));
+
+ if (ast_test_flag(f, AST_FRFLAG_HAS_TIMING_INFO)) {
+ put_unaligned_uint32(rtpheader + 4, htonl(f->ts * 8));
+ }
+ else {
+ put_unaligned_uint32(rtpheader + 8, htonl(multicast->ssrc));
+ }
/* Increment sequence number and wrap to 0 if it overflows 16 bits. */
multicast->seqno = 0xFFFF & (multicast->seqno + 1);
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/res/res_srtp.c
^
|
@@ -37,7 +37,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 378591 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388768 $")
#include <srtp/srtp.h>
@@ -546,6 +546,9 @@
{
srtp_install_event_handler(NULL);
ast_rtp_engine_unregister_srtp();
+#ifdef HAVE_SRTP_SHUTDOWN
+ srtp_shutdown();
+#endif
g_initialized = 0;
}
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/res/res_timing_pthread.c
^
|
@@ -29,7 +29,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 388195 $");
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 386109 $");
#include <stdbool.h>
#include <math.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/sounds/Makefile
^
|
@@ -19,7 +19,7 @@
SOUNDS_DIR:=$(DESTDIR)$(ASTDATADIR)/sounds
SOUNDS_CACHE_DIR?=
MOH_DIR:=$(DESTDIR)$(ASTDATADIR)/moh
-CORE_SOUNDS_VERSION:=1.4.23
+CORE_SOUNDS_VERSION:=1.4.24
EXTRA_SOUNDS_VERSION:=1.4.13
MOH_VERSION:=2.03
SOUNDS_URL:=http://downloads.asterisk.org/pub/telephony/sounds/releases
@@ -28,6 +28,7 @@
MCS:=$(subst -FR-,-fr-,$(MCS))
MCS:=$(subst -ES-,-es-,$(MCS))
MCS:=$(subst -RU-,-ru-,$(MCS))
+MCS:=$(subst -IT-,-it-,$(MCS))
MCS:=$(subst -WAV,-wav,$(MCS))
MCS:=$(subst -ULAW,-ulaw,$(MCS))
MCS:=$(subst -ALAW,-alaw,$(MCS))
@@ -142,6 +143,8 @@
$(eval $(call sound_format_lang_rule,$(SOUNDS_DIR),core-sounds,fr,$(CORE_SOUNDS_VERSION)))
+$(eval $(call sound_format_lang_rule,$(SOUNDS_DIR),core-sounds,it,$(CORE_SOUNDS_VERSION)))
+
$(eval $(call sound_format_lang_rule,$(SOUNDS_DIR),core-sounds,ru,$(CORE_SOUNDS_VERSION)))
$(eval $(call sound_format_lang_rule,$(SOUNDS_DIR),extra-sounds,en,$(EXTRA_SOUNDS_VERSION)))
|
|
Added |
asterisk-1.8.23.0.tar.xz/sounds/asterisk-core-sounds-en-gsm-1.4.24.tar.gz
^
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/tests/test_expr.c
^
|
@@ -33,7 +33,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 332176 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385683 $")
#include "asterisk/utils.h"
#include "asterisk/module.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/tests/test_func_file.c
^
|
@@ -32,7 +32,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 332176 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385683 $")
#include "asterisk/utils.h"
#include "asterisk/app.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/tests/test_locale.c
^
|
@@ -32,7 +32,7 @@
#include "asterisk.h"
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 338555 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385683 $")
#include <sys/types.h>
#include <dirent.h>
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/tests/test_poll.c
^
|
@@ -39,7 +39,7 @@
#include <errno.h>
#include <unistd.h>
-ASTERISK_FILE_VERSION(__FILE__, "$Revision: 362680 $")
+ASTERISK_FILE_VERSION(__FILE__, "$Revision: 385683 $")
#include "asterisk/utils.h"
#include "asterisk/module.h"
|
[-]
[+]
|
Changed |
asterisk-1.8.23.0.tar.xz/utils/Makefile
^
|
@@ -149,6 +149,10 @@
aelparse: LIBS+=-lm
aelparse: aelparse.o aelbison.o pbx_ael.o hashtab.o lock.o ael_main.o ast_expr2f.o ast_expr2.o strcompat.o pval.o extconf.o
+version.c: $(ASTTOPDIR)/main/version.c
+ $(ECHO_PREFIX) echo " [CP] $(subst $(ASTTOPDIR)/,,$<) -> $@"
+ $(CMD_PREFIX) cp "$<" "$@"
+
astobj2.c: $(ASTTOPDIR)/main/astobj2.c
$(ECHO_PREFIX) echo " [CP] $(subst $(ASTTOPDIR)/,,$<) -> $@"
$(CMD_PREFIX) cp "$<" "$@"
@@ -174,7 +178,7 @@
$(CMD_PREFIX) cp "$<" "$@"
-refcounter: refcounter.o md5.o hashtab.o lock.o utils.o strings.o sha1.o strcompat.o threadstorage.o clicompat.o poll.o
+refcounter: refcounter.o md5.o hashtab.o lock.o utils.o strings.o sha1.o strcompat.o threadstorage.o clicompat.o poll.o version.o
refcounter.o: _ASTCFLAGS+=-O0
extconf.o: extconf.c
|