New-in-13_29394266.html 67 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Asterisk Project : New in 13</title>
  5. <link rel="stylesheet" href="styles/site.css" type="text/css" />
  6. <META http-equiv="Content-Type" content="text/html; charset=UTF-8">
  7. </head>
  8. <body class="theme-default aui-theme-default">
  9. <div id="page">
  10. <div id="main" class="aui-page-panel">
  11. <div id="main-header">
  12. <div id="breadcrumb-section">
  13. <ol id="breadcrumbs">
  14. <li class="first">
  15. <span><a href="index.html">Asterisk Project</a></span>
  16. </li>
  17. </ol>
  18. </div>
  19. <h1 id="title-heading" class="pagetitle">
  20. <span id="title-text">
  21. Asterisk Project : New in 13
  22. </span>
  23. </h1>
  24. </div>
  25. <div id="content" class="view">
  26. <div class="page-metadata">
  27. Created and last modified by <span class='author'> mjordan</span> on Aug 11, 2014
  28. </div>
  29. <div id="main-content" class="wiki-content group">
  30. <div class="sectionColumnWrapper"><div class="sectionMacro"><div class="sectionMacroRow"><div class="columnMacro" style="width:80%;min-width:80%;max-width:80%;"><h1 id="Newin13-Overview">Overview</h1><p>Asterisk 13 is the next <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+Versions" rel="nofollow">Long Term Support (LTS)</a> release of Asterisk. As such, the focus of development for this release of Asterisk was on improving the usability and features developed in the previous Standard release, <a href="https://wiki.asterisk.org/wiki/display/AST/New+in+12">Asterisk 12</a>. Beyond a general refinement of end user features, development focussed heavily on the Asterisk APIs - the Asterisk Manager Interface (AMI) and the Asterisk REST Interface (ARI) - and the PJSIP stack in Asterisk. Some highlights of the new features include:</p><ul><li><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+Security+Framework">Asterisk security events</a> are now provided via <span class="confluence-link"> </span><a href="New-in-13_29394266.html"><span class="confluence-link">AMI</span></a>, allowing end users to monitor their Asterisk system in real time for security related issues.</li><li>External control of Message Waiting Indicators (MWI) through both <a href="New-in-13_29394266.html">AMI</a> and <a href="New-in-13_29394266.html">ARI</a>.</li><li>Reception/transmission of out of call text messages using any supported channel driver/protocol stack through <a href="New-in-13_29394266.html">ARI</a>.</li><li><a href="New-in-13_29394266.html">Resource List Server</a> support in the PJSIP stack, providing subscriptions to lists of resources and batched delivery of <code>NOTIFY</code> requests.</li><li><a href="New-in-13_29394266.html">Inter-Asterisk</a> distributed device state and mailbox state using the PJSIP stack.</li></ul><p>And much more!</p><p>It is important to note that Asterisk 13 is built on the architecture developed during the previous Standard release, Asterisk 12. Users upgrading to Asterisk 13 should read about the new features documented in <a href="https://wiki.asterisk.org/wiki/display/AST/New+in+12">New in 12</a>, as well as the notes on <a href="https://wiki.asterisk.org/wiki/display/AST/Upgrading+to+Asterisk+12">upgrading to Asterisk 12</a>. In particular, users upgrading to Asterisk 13 from a release prior to Asterisk 12 should read the specifications on AMI, CDRs, and CEL, as these also apply to Asterisk 13:</p><ul><li><a href="https://wiki.asterisk.org/wiki/display/AST/AMI+v2+Specification">AMI v2 Specification</a></li><li><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CEL+Specification">Asterisk 12 CEL Specification</a></li><li><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+CDR+Specification">Asterisk 12 CDR Specification</a></li></ul><p>Finally, all users upgrading to Asterisk 13 should read the notes on <a href="Upgrading-to-Asterisk-13_29394271.html">upgrading to Asterisk 13</a>.</p><p> </p> <div class="aui-message success shadowed information-macro">
  31. <p class="title">Asterisk 12 was different</p>
  32. <span class="aui-icon icon-success">Icon</span>
  33. <div class="message-content">
  34. <p>Some of the new features listed below were released in point releases of Asterisk 12. Per the <a href="https://wiki.asterisk.org/wiki/display/AST/Software+Configuration+Management+Policies#SoftwareConfigurationManagementPolicies-NewFeatures" rel="nofollow">Software Configuration Management Policies</a> laid out for Asterisk 12, new features were periodically merged and released in that branch of Asterisk. This was done to help users of Asterisk migrating to the new platform develop features in preparation for Asterisk 13.</p><p>While some of the features listed below were released under an Asterisk 12 release, they are all listed here as &quot;new in 13&quot;, for two reasons:</p><ol><li>If you are upgrading from a previous LTS release (such as Asterisk 11), all of these features are new.</li><li>If you are upgrading from some version of Asterisk 12, some of the previously released features may be new (as they may not have been in your version of Asterisk 12).</li></ol>
  35. </div>
  36. </div>
  37. <h1 id="Newin13-Applications">Applications</h1><h2 id="Newin13-AgentRequest"><a href="Asterisk-13-Application_AgentRequest_29394502.html">AgentRequest</a></h2><ul><li>The application will now return a new <code>AGENT_STATUS</code> value of <code>NOT_CONNECTED</code> if the agent fails to connect with an incoming caller after being alerted to the presence of the incoming caller. The most likely reason this would happen is the agent did not acknowledge the call in time.</li></ul><h2 id="Newin13-ChanSpy"><a href="Asterisk-13-Application_ChanSpy_29394507.html">ChanSpy</a></h2><ul><li><a href="Asterisk-13-Application_ChanSpy_29394507.html">ChanSpy</a> now accepts a channel uniqueid or a fully specified channel name as the <code>chanprefix</code> parameter if the <code>'u'</code> option is specified.</li></ul><h2 id="Newin13-ConfBridge"><a href="Asterisk-13-Application_ConfBridge_29394402.html">ConfBridge</a></h2><ul><li><p>The <a href="Asterisk-13-Application_ConfBridge_29394402.html">ConfBridge</a> dialplan application now sets a channel variable, <code>CONFBRIGE_RESULT</code>, upon exiting. This variable can be used to determine how a channel exited the conference. Valid values upon exiting are:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th class="confluenceTh">Value</th><th class="confluenceTh">Reason</th></tr><tr><td class="confluenceTd"><pre>FAILED</pre></td><td class="confluenceTd">The channel encountered an error and could not enter the conference.</td></tr><tr><td colspan="1" class="confluenceTd"><pre>HANGUP</pre></td><td colspan="1" class="confluenceTd">The channel exited the conference by hanging up.</td></tr><tr><td colspan="1" class="confluenceTd"><pre>KICKED</pre></td><td colspan="1" class="confluenceTd">The channel was kicked from the conference.</td></tr><tr><td colspan="1" class="confluenceTd"><pre>ENDMARKED</pre></td><td colspan="1" class="confluenceTd">The channel left the conference as a result of the last marked user leaving.</td></tr><tr><td colspan="1" class="confluenceTd"><pre>DTMF</pre></td><td colspan="1" class="confluenceTd">The channel pressed a DTMF sequence to exit the conference.</td></tr></tbody></table></div></li><li>Added conference <a href="Asterisk-13-Configuration_app_confbridge_29394510.html">user option</a> <code>'announce_join_leave_review'</code>. This option implies <code>'announce_join_leave'</code> with the added effect that the user will be asked if they want to confirm or re-record the recording of their name when entering the conference.</li></ul><h2 id="Newin13-DAHDIBarge"><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Application_DAHDIBarge">DAHDIBarge</a></h2><ul><li>The module <code>app_dahdibarge</code> was deprecated and has been removed. Users of DAHDIBarge should use <a href="Asterisk-13-Application_ChanSpy_29394507.html">ChanSpy</a> instead.</li></ul><h2 id="Newin13-Directory"><a href="Asterisk-13-Application_Directory_29394537.html">Directory</a></h2><ul><li><p>At exit, the <a href="Asterisk-13-Application_Directory_29394537.html">Directory</a> application now sets a channel variable <code>DIRECTORY_RESULT</code> to one of the following based on the reason for exiting:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr style="margin-left: 60.0px;"><th class="confluenceTh">Value</th><th class="confluenceTh">Reason</th></tr><tr><td class="confluenceTd"><pre>OPERATOR</pre></td><td class="confluenceTd"><span>user requested operator by pressing '0' for operator</span></td></tr><tr><td colspan="1" class="confluenceTd"><pre>ASSISTANT</pre></td><td colspan="1" class="confluenceTd">user requested assistant by pressing '*' for assistant</td></tr><tr><td colspan="1" class="confluenceTd"><pre>TIMEOUT</pre></td><td colspan="1" class="confluenceTd">user pressed nothing and Directory stopped waiting</td></tr><tr><td colspan="1" class="confluenceTd"><pre>HANGUP</pre></td><td colspan="1" class="confluenceTd">user's channel hung up</td></tr><tr><td colspan="1" class="confluenceTd"><pre>SELECTED</pre></td><td colspan="1" class="confluenceTd">user selected a user from the directory and is routed</td></tr><tr><td colspan="1" class="confluenceTd"><pre>USEREXIT</pre></td><td colspan="1" class="confluenceTd"> user pressed '#' from the selection prompt to exit</td></tr><tr><td colspan="1" class="confluenceTd"><pre>FAILED</pre></td><td colspan="1" class="confluenceTd">directory failed in a way that wasn't accounted for. Dang.</td></tr></tbody></table></div></li></ul></div><div class="columnMacro"><div class="panel" style="border-width: 1px;"><div class="panelHeader" style="border-bottom-width: 1px;"><b>On this Page</b></div><div class="panelContent">
  38. <p><style type='text/css'>/*<![CDATA[*/
  39. div.rbtoc1407782281578 {padding: 0px;}
  40. div.rbtoc1407782281578 ul {list-style: disc;margin-left: 0px;}
  41. div.rbtoc1407782281578 li {margin-left: 0px;padding-left: 0px;}
  42. /*]]>*/</style><div class='toc-macro rbtoc1407782281578'>
  43. <ul class='toc-indentation'>
  44. <li><a href='#Newin13-Overview'>Overview</a></li>
  45. <li><a href='#Newin13-Applications'>Applications</a>
  46. <ul class='toc-indentation'>
  47. <li><a href='#Newin13-AgentRequest'>AgentRequest</a></li>
  48. <li><a href='#Newin13-ChanSpy'>ChanSpy</a></li>
  49. <li><a href='#Newin13-ConfBridge'>ConfBridge</a></li>
  50. <li><a href='#Newin13-DAHDIBarge'>DAHDIBarge</a></li>
  51. <li><a href='#Newin13-Directory'>Directory</a></li>
  52. <li><a href='#Newin13-MusicOnHold'>MusicOnHold</a></li>
  53. <li><a href='#Newin13-MixMonitor'>MixMonitor</a></li>
  54. <li><a href='#Newin13-Monitor'>Monitor</a></li>
  55. <li><a href='#Newin13-Page'>Page</a></li>
  56. <li><a href='#Newin13-PickupChan'>PickupChan</a></li>
  57. <li><a href='#Newin13-ReadFile'>ReadFile</a></li>
  58. <li><a href='#Newin13-Record'>Record</a></li>
  59. <li><a href='#Newin13-Say'>Say</a></li>
  60. <li><a href='#Newin13-SayCountPL'>SayCountPL</a></li>
  61. <li><a href='#Newin13-SetMusicOnHold'>SetMusicOnHold</a></li>
  62. <li><a href='#Newin13-VoiceMail'>VoiceMail</a></li>
  63. <li><a href='#Newin13-WaitMusicOnHold'>WaitMusicOnHold</a></li>
  64. </ul>
  65. </li>
  66. <li><a href='#Newin13-BuildSystem'>Build System</a></li>
  67. <li><a href='#Newin13-Core'>Core</a>
  68. <ul class='toc-indentation'>
  69. <li><a href='#Newin13-AccountCodes'>Account Codes</a></li>
  70. <li><a href='#Newin13-AMI'>AMI</a>
  71. <ul class='toc-indentation'>
  72. <li><a href='#Newin13-Actions'>Actions</a></li>
  73. <li><a href='#Newin13-Events'>Events</a></li>
  74. </ul>
  75. </li>
  76. <li><a href='#Newin13-ARI'>ARI</a></li>
  77. <li><a href='#Newin13-CEL'>CEL</a></li>
  78. <li><a href='#Newin13-CLI'>CLI</a></li>
  79. <li><a href='#Newin13-Features'>Features</a></li>
  80. <li><a href='#Newin13-HTTP'>HTTP</a></li>
  81. <li><a href='#Newin13-RealTime'>RealTime</a></li>
  82. <li><a href='#Newin13-TLS'>TLS</a></li>
  83. </ul>
  84. </li>
  85. <li><a href='#Newin13-CDRBackends'>CDR Backends</a>
  86. <ul class='toc-indentation'>
  87. <li><a href='#Newin13-cdr_sqlite'>cdr_sqlite</a></li>
  88. <li><a href='#Newin13-cdr_pgsql'>cdr_pgsql</a></li>
  89. </ul>
  90. </li>
  91. <li><a href='#Newin13-CELBackends'>CEL Backends</a>
  92. <ul class='toc-indentation'>
  93. <li><a href='#Newin13-cel_pgsql'>cel_pgsql</a></li>
  94. </ul>
  95. </li>
  96. <li><a href='#Newin13-ChannelDrivers'>Channel Drivers</a>
  97. <ul class='toc-indentation'>
  98. <li><a href='#Newin13-chan_dahdi'>chan_dahdi</a></li>
  99. <li><a href='#Newin13-chan_gtalk'>chan_gtalk</a></li>
  100. <li><a href='#Newin13-chan_h323'>chan_h323</a></li>
  101. <li><a href='#Newin13-chan_jingle'>chan_jingle</a></li>
  102. <li><a href='#Newin13-chan_sip'>chan_sip</a></li>
  103. </ul>
  104. </li>
  105. <li><a href='#Newin13-Functions'>Functions</a>
  106. <ul class='toc-indentation'>
  107. <li><a href='#Newin13-AST_SORCERY'>AST_SORCERY</a></li>
  108. <li><a href='#Newin13-AUDIOHOOK_INHERIT'>AUDIOHOOK_INHERIT</a></li>
  109. <li><a href='#Newin13-CONFBRIDGE'>CONFBRIDGE</a></li>
  110. <li><a href='#Newin13-JACK_HOOK'>JACK_HOOK</a></li>
  111. <li><a href='#Newin13-MIXMONITOR'>MIXMONITOR</a></li>
  112. <li><a href='#Newin13-PERIODIC_HOOK'>PERIODIC_HOOK</a></li>
  113. <li><a href='#Newin13-TALK_DETECTTALK_DETECT'>TALK_DETECT</a></li>
  114. </ul>
  115. </li>
  116. <li><a href='#Newin13-Resources'>Resources</a>
  117. <ul class='toc-indentation'>
  118. <li><a href='#Newin13-res_config_pgsql'>res_config_pgsql</a></li>
  119. <li><a href='#Newin13-res_hep'>res_hep</a></li>
  120. <li><a href='#Newin13-res_hep_pjsip'>res_hep_pjsip</a></li>
  121. <li><a href='#Newin13-res_hep_rtcp'>res_hep_rtcp</a></li>
  122. <li><a href='#Newin13-res_mwi_external'>res_mwi_external</a></li>
  123. <li><a href='#Newin13-res_parking'>res_parking</a></li>
  124. <li><a href='#Newin13-res_pjsip'>res_pjsip</a></li>
  125. <li><a href='#Newin13-res_pjsip_multihomed'>res_pjsip_multihomed</a></li>
  126. <li><a href='#Newin13-res_pjsip_outbound_publish'>res_pjsip_outbound_publish</a></li>
  127. <li><a href='#Newin13-res_pjsip_outbound_registration'>res_pjsip_outbound_registration</a></li>
  128. <li><a href='#Newin13-res_pjsip_pidf_digium_body_supplement'>res_pjsip_pidf_digium_body_supplement</a></li>
  129. <li><a href='#Newin13-res_pjsip_pubsubres_pjsip_pubsub'>res_pjsip_pubsub</a></li>
  130. <li><a href='#Newin13-res_pjsip_publish_asteriskres_pjsip_publish_asterisk'>res_pjsip_publish_asterisk</a></li>
  131. <li><a href='#Newin13-res_pjsip_send_to_voicemail'>res_pjsip_send_to_voicemail</a></li>
  132. </ul>
  133. </li>
  134. </ul>
  135. </div></p>
  136. </div></div></div></div></div></div><h2 id="Newin13-MusicOnHold"><a href="Asterisk-13-Application_MusicOnHold_29394804.html">MusicOnHold</a></h2><ul><li><span><a href="Asterisk-13-Application_MusicOnHold_29394804.html">MusicOnHold</a> streams (all modes other than &quot;files&quot;) now support wide band </span><span>audio.</span></li></ul><h2 id="Newin13-MixMonitor"><a href="Asterisk-13-Application_MixMonitor_29394449.html">MixMonitor</a></h2><ul><li>A new option, <code>B()</code>, has been added that will turn on a periodic beep while the call is being recorded.</li><li>New options to play a beep when starting a recording and stopping a recording have been added. The option <code>'p'</code> will play a beep to the channel that starts the recording. The option <code>'P'</code> will play a beep to the channel that stops the recording.</li></ul><h2 id="Newin13-Monitor"><a href="Asterisk-13-Application_Monitor_29394908.html">Monitor</a></h2><ul><li><p>A new option, <code>B()</code>, has been added that will turn on a periodic beep while the call is being recorded.</p></li></ul><h2 id="Newin13-Page"><a href="Asterisk-13-Application_Page_29394396.html">Page</a></h2><ul><li>Added options <code>'b'</code> and <code>'B'</code> to apply <a href="https://wiki.asterisk.org/wiki/display/AST/Pre-Dial+Handlers">pre-dial handlers</a> for outgoing calls and for the channel executing <a href="Asterisk-13-Application_Page_29394396.html">Page</a> respectively.</li></ul><h2 id="Newin13-PickupChan"><a href="Asterisk-13-Application_PickupChan_29394401.html">PickupChan</a></h2><ul><li><a href="Asterisk-13-Application_PickupChan_29394401.html">PickupChan</a> now accepts channel uniqueids of channels to pickup.</li></ul><h2 id="Newin13-ReadFile"><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Application_ReadFile">ReadFile</a></h2><ul><li>The module <code>app_readfile</code> was deprecated and has been removed. Users of ReadFile should use <code>func_env</code>'s <a href="Asterisk-13-Function_FILE_29394641.html">FILE</a> function instead.</li></ul><h2 id="Newin13-Record"><a href="Asterisk-13-Application_Record_29394555.html">Record</a></h2><ul><li>The <a href="Asterisk-13-Application_Record_29394555.html">Record</a> application now has an option <code>'o'</code> which allows <code>0</code> to act as an exit key. This will set the the <code>RECORD_STATUS</code> variable to <code>'OPERATOR'</code> instead of <code>'DTMF'</code>.</li></ul><h2 id="Newin13-Say">Say</h2><ul><li>If the channel variable <code>SAY_DTMF_INTERRUPT</code> is present on a channel and set to <code>'true'</code> (case insensitive), then any Say application (<a href="Asterisk-13-Application_SayNumber_29394717.html">SayNumber</a>, <a href="Asterisk-13-Application_SayDigits_29394716.html">SayDigits</a>, <a href="Asterisk-13-Application_SayAlpha_29394714.html">SayAlpha</a>, <a href="Asterisk-13-Application_SayAlphaCase_29394715.html">SayAlphaCase</a>, <a href="Asterisk-13-Application_SayUnixTime_29394475.html">SayUnixTime</a>, and <a href="Asterisk-13-Application_SayCountedNoun_29394486.html">SayCounted</a>) will anticipate DTMF. If DTMF is received, these applications will behave like the background application and jump to the received extension once a match is established or after a short period of inactivity.</li><li>The Say family of dialplan applications now support the Japanese language. The <code>language</code> parameter in <em><code>say.conf</code></em> now recognizes a setting of <code>ja</code>, which will enable Japanese language specific mechanisms for playing back numbers, dates, and other items.</li></ul><h2 id="Newin13-SayCountPL"><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Application_SayCountPL">SayCountPL</a></h2><ul><li>The module <code>app_saycountpl</code> was deprecated and has been removed. Users of <code>app_saycountpl</code> should use the Say family of applications.</li></ul><h2 id="Newin13-SetMusicOnHold"><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Application_SetMusicOnHold">SetMusicOnHold</a></h2><ul><li>The SetMusicOnHold dialplan application was deprecated and has been removed. Users of the application should use the <code><a href="Asterisk-13-Function_CHANNEL_29394648.html">CHANNEL</a></code> function's <code>musicclass</code> setting instead.</li></ul><h2 id="Newin13-VoiceMail"><a href="Asterisk-13-Application_VoiceMail_29394525.html">VoiceMail</a></h2><ul><li><a href="Asterisk-13-Application_VoiceMail_29394525.html">VoiceMail</a> and <a href="Asterisk-13-Application_VoiceMailMain_29394526.html">VoiceMailMain</a> now support the Japanese language. The <code>language</code> parameter in <em><code>voicemail.conf</code></em> now recognizes a setting of <code>ja</code>, which will enable prompts to be played back using a Japanese grammatical structure. Additional prompts are necessary for this functionality, including:<ul><li><strong>jb-arimasu</strong>: there is</li><li><strong>jb-arimasen</strong>: there is not</li><li><strong>jb-oshitekudasai</strong>: please press</li><li><strong>jb-ni</strong>: article ni</li><li><strong>jb-ga</strong>: article ga</li><li><strong>jb-wa</strong>: article wa</li><li><strong>jb-wo</strong>: article wo</li></ul></li><li><a href="Asterisk-13-Application_VoiceMail_29394525.html">VoiceMail</a> mailboxes configured in <em><code>voicemail.conf</code></em> can now have multiple e-mail address specified for a single mailbox. Each e-mail address is separated by the <code>|</code> character.</li></ul><h2 id="Newin13-WaitMusicOnHold"><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Application_WaitMusicOnHold">WaitMusicOnHold</a></h2><ul><li>The WaitMusicOnHold dialplan application was deprecated and has been removed. Users of the application should use <a href="Asterisk-13-Application_MusicOnHold_29394804.html">MusicOnHold</a> with a duration parameter instead.</li></ul><h1 id="Newin13-BuildSystem">Build System</h1><ul><li>The location of the sample configuration files delivered with Asterisk have been moved from <code>configs</code> to <code>configs/samples</code>. This allows for other sample configuration sets to be defined in the future. The action of <code>make samples</code> is exactly the same as previous versions of Asterisk.</li><li>The <code>menuselect</code> tool has been pulled into the Asterisk repository. Generally, this change is transparent to those using tarballs of Asterisk; to those working directly with the Asterisk repository, there is no accessing of the <code>menuselect</code> or <code>mxml</code> external repositories.</li><li>The <code>menuselect</code> tool no longer uses a bundled <code>mxml</code> library. Instead, it now uses <code>libxml2</code>. As a result, the <code>libxml2</code> development library is now a required dependency for Asterisk.</li></ul><h1 id="Newin13-Core">Core</h1><h2 id="Newin13-AccountCodes">Account Codes</h2><ul><li>Support for <code>peeraccount</code> was vastly improved in this version of Asterisk. Except for <a href="Asterisk-13-Application_Queue_29394417.html">Queue</a>, an <code>accountcode</code> is now consistently propagated to outgoing channels before dialing. A channel's <code>accountcode</code> can change from its original non-empty value on channel creation for the following specific reasons:<ol><li>The dialplan sets it using <a href="Asterisk-13-Function_CHANNEL_29394648.html"><code>CHANNEL(accountcode)</code></a>.</li><li>An originate method specifies an <code>accountcode</code> value.</li><li>The calling channel propagates its <code>peeraccount</code> or <code>accountcode</code> to the outgoing channel's <code>accountcode</code> before dialing.</li></ol>This change has two visible effects. One, <a href="https://wiki.asterisk.org/wiki/display/AST/Local+Channel">Local channels</a> now cross <code>accountcode</code> and <code>peeraccount</code> codes across the special bridge between the <code>;1</code> and <code>;2</code> channels just like channels between normal bridges. Two, the <a href="Asterisk-13-Function_CHANNEL_29394648.html"><code>CHANNEL(peeraccount)</code></a> value can now be set before <a href="Asterisk-13-Application_Dial_29394493.html">Dial</a> and <a href="Asterisk-13-Application_FollowMe_29394397.html">FollowMe</a> to set the <code>accountcode</code> on the outgoing channel(s).</li><li>For <a href="Asterisk-13-Application_Queue_29394417.html">Queue</a>, an outgoing channel's non-empty <code>accountcode</code> will not change unless explicitly set by <a href="Asterisk-13-Function_CHANNEL_29394648.html"><code>CHANNEL(accountcode)</code></a>. The change has three visible effects:<ol><li>As previously mentioned, <a href="https://wiki.asterisk.org/wiki/display/AST/Local+Channel">Local channels</a> now cross <code>accountcode</code> and <code>peeraccount</code> across the special bridge between the <code>;1</code> and <code>;2</code> channels just like channels between normal bridges.</li><li>The queue member will get an <code>accountcode</code> if it doesn't have one and one is available from the calling channel's <code>peeraccount</code>.</li><li><code>accountcode</code> propagation includes Local channel members where the <code>accountcodes</code> are propagated early enough to be available on the <code>;2</code> channel.</li></ol></li></ul><h2 id="Newin13-AMI">AMI</h2><ul><li><span class="confluence-anchor-link" id="Newin13-res_mwi_external_ami"></span>Added a new module that provides AMI control over MWI within Asterisk, <code>res_mwi_external_ami</code>. Note that this module depends on <code>res_mwi_external</code>; for more information on enabling this module, see <a href="New-in-13_29394266.html"><code>res_mwi_external</code></a>. This module provides the <a href="Asterisk-13-ManagerAction_MWIGet_29394871.html">MWIGet</a>/<a href="Asterisk-13-ManagerAction_MWIUpdate_29394873.html">MWIUpdate</a>/<a href="Asterisk-13-ManagerAction_MWIDelete_29394872.html">MWIDelete</a> actions, as well as the <a href="Asterisk-13-ManagerEvent_MWIGet_29394982.html">MWIGet</a>/<a href="Asterisk-13-ManagerEvent_MWIGetComplete_29394989.html">MWIGetComplete</a> events.</li></ul><h3 id="Newin13-Actions">Actions</h3><ul><li>Added <a href="Asterisk-13-ManagerAction_DialplanExtensionAdd_29394370.html">DialplanExtensionAdd</a> and <a href="Asterisk-13-ManagerAction_DialplanExtensionRemove_29394371.html">DialplanExtensionRemove</a> AMI actions. These actions are analogous to the <code>dialplan add extension</code> and <code>dialplan remove extension</code> CLI commands, respectively.</li><li>Added AMI action <a href="Asterisk-13-ManagerAction_LoggerRotate_29394765.html">LoggerRotate</a>, which reloads and rotates <a href="https://wiki.asterisk.org/wiki/display/AST/Logging">logger</a> in the same manner as the CLI command <code>logger rotate</code>.</li><li>Added AMI actions <a href="Asterisk-13-ManagerAction_FAXSessions_29394868.html">FAXSessions</a>, <a href="Asterisk-13-ManagerAction_FAXSession_29394869.html">FAXSession</a>, and <a href="Asterisk-13-ManagerAction_FAXStats_29394870.html">FAXStats</a>, which replicate the functionality of the CLI commands <code>fax show sessions</code>, <code>fax show session</code>, and <code>fax show stats</code> respectively.</li><li>Added AMI actions <a href="Asterisk-13-ManagerAction_PRIDebugSet_29394360.html">PRIDebugSet</a>, <a href="Asterisk-13-ManagerAction_PRIDebugFileSet_29394361.html">PRIDebugFileSet</a>, and <a href="Asterisk-13-ManagerAction_PRIDebugFileUnset_29394362.html">PRIDebugFileUnset</a>, which enable manager control over PRI debugging levels and file output.</li><li>The AMI action <a href="Asterisk-13-ManagerAction_PJSIPNotify_29394859.html">PJSIPNotify</a> may now send to a URI instead of only to a PJSIP endpoint as long as a default outbound endpoint is set. This also applies to the equivalent CLI command (<code>pjsip send notify</code>).</li><li>The AMI action <a href="Asterisk-13-ManagerAction_PJSIPShowEndpoint_29394882.html">PJSIPShowEndpoint</a> now includes <em>ContactStatusDetail</em> sections that give information on Asterisk's attempts to qualify the endpoint.</li><li>The <a href="Asterisk-13-ManagerAction_MixMonitor_29394452.html">MixMonitor</a> action now has a <em>Command</em> header that can be used to indicate a post-process command to run once recording finishes.</li><li>Added AMI actions <a href="Asterisk-13-ManagerAction_DeviceStateList_29394874.html">DeviceStateList</a>, <a href="Asterisk-13-ManagerAction_PresenceStateList_29394932.html">PresenceStateList</a>, and <a href="Asterisk-13-ManagerAction_ExtensionStateList_29394727.html">ExtensionStateList</a>. Each of these can be used to list the current device states, presence states, and extension states respectively. The DeviceStateList and PresenceStateList actions are provided by the <code>res_manager_device_state.so</code> and <code>res_manager_presence_state.so</code> modules, respectively.</li><li><a href="Asterisk-13-ManagerAction_Originate_29394750.html">Originate</a> now takes optional parameters: <em>ChannelId</em> and <em>OtherChannelId</em>, which can be used to set the channel uniqueid on creation.  The other id (specified by <em>OtherChannelId</em>) is only used when originating a <a href="https://wiki.asterisk.org/wiki/display/AST/Local+Channel">Local channel</a>, and is assigned to the second channel half of a Local channel.  If a Local channel is originated and <em>OtherChannelId</em> is not specified, Asterisk will default to appending a <code>;2</code> to the identifier provided by <em>ChannelId</em>.</li></ul><h3 id="Newin13-Events">Events</h3><ul><li>New <a href="Asterisk-13-ManagerEvent_DeviceStateChange_29394875.html">DeviceStateChanged</a> and <a href="Asterisk-13-ManagerEvent_PresenceStateChange_29394933.html">PresenceStateChanged</a> AMI events have been added. These events are emitted whenever a device state or presence state change occurs. The events are controlled by <code>res_manager_device_state.so</code> and <code>res_manager_presence_state.so</code>. If the high frequency of these events is problematic for you, do not load these modules.</li><li>New events have been added for the <a href="New-in-13_29394266.html"><code>TALK_DETECT</code></a> function. When the function is used on a channel, <a href="Asterisk-13-ManagerEvent_ChannelTalkingStart_29395040.html">ChannelTalkingStart</a>/ChannelTalkingStop events will be emitted to connected AMI clients indicating the start/stop of talking on the channel.</li><li>The <em>DialStatus</em> field in the <a href="Asterisk-13-ManagerEvent_DialEnd_29394966.html">DialEnd</a> event can now contain additional statuses that convey how the dial operation terminated. This includes <code>ABORT</code>, <code>CONTINUE</code>, and <code>GOTO</code>.</li></ul><ul><li><span class="confluence-anchor-link" id="Newin13-ami_security_events"></span>AMI will now emit security events. A new class authorization has been added in <em>manager.conf</em> for the security events, <code>security</code>. The new events are:</li></ul><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th style="margin-left: 30.0px;" class="confluenceTh">Event</th><th style="margin-left: 30.0px;" class="confluenceTh">Description</th></tr><tr><td class="confluenceTd"><a href="Asterisk-13-ManagerEvent_FailedACL_29395052.html">FailedACL</a></td><td class="confluenceTd">Raised when a request violates an ACL check.</td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_InvalidAccountID_29395062.html">InvalidAccountID</a></td><td colspan="1" class="confluenceTd">Raised when a request fails an authentication check due to an invalid account ID.</td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_SessionLimit_29394961.html">SessionLimit</a></td><td colspan="1" class="confluenceTd">Raised when a request fails due to exceeding the number of allowed concurrent sessions for a service.</td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_MemoryLimit_29394964.html">MemoryLimit</a></td><td colspan="1" class="confluenceTd"><p>Raised when a request fails due to an internal memory allocation failure.</p> <div class="aui-message success shadowed information-macro">
  137. <span class="aui-icon icon-success">Icon</span>
  138. <div class="message-content">
  139. <p>This event is a bit optimistic. While you may receive this event when Asterisk runs out of memory, it is highly likely that Asterisk is... out of memory. Making events is sometimes out of the question at that point.</p>
  140. </div>
  141. </div>
  142. </td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_LoadAverageLimit_29395032.html">LoadAverageLimit</a></td><td colspan="1" class="confluenceTd">Raised when a request fails because a configured load average limit has been reached.</td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_RequestNotAllowed_29395053.html">RequestNotAllowed</a></td><td colspan="1" class="confluenceTd">Raised when a request is not allowed by the service..</td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_AuthMethodNotAllowed_29395041.html">AuthMethodNotAllowed</a></td><td colspan="1" class="confluenceTd">Raised when a request used an authentication method not allowed by the service.</td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_RequestBadFormat_29394999.html">RequestBadFormat</a></td><td colspan="1" class="confluenceTd">Raised when a request is received with bad formatting.</td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_SuccessfulAuth_29395044.html">SuccessfulAuth</a></td><td colspan="1" class="confluenceTd">Raised when a request successfully authenticates.</td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_UnexpectedAddress_29395048.html">UnexpectedAddress</a></td><td colspan="1" class="confluenceTd">Raised when a request has a different source address then what is expected for a session already in progress with a service.</td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_ChallengeResponseFailed_29394997.html">ChallengeResponseFailed</a></td><td colspan="1" class="confluenceTd"><span>Raised when a request's attempt to authenticate</span><span> has been challenged, and the request failed the authentication challenge.</span></td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_InvalidPassword_29395034.html">InvalidPassword</a></td><td colspan="1" class="confluenceTd"><span>Raised when a request provides an invalid password </span><span>during an authentication attempt.</span></td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_ChallengeSent_29395042.html">ChallengeSent</a></td><td colspan="1" class="confluenceTd">Raised when an Asterisk service send an authentication challenge to a request.</td></tr><tr><td colspan="1" class="confluenceTd"><a href="Asterisk-13-ManagerEvent_InvalidTransport_29395051.html">InvalidTransport</a></td><td colspan="1" class="confluenceTd">Raised when a request attempts to use a transport not allowed by the Asterisk service.</td></tr></tbody></table></div><ul><li>Bridge related events now have two additional fields: <em>BridgeName</em> and <em>BridgeCreator</em>. <em>BridgeName</em> is a descriptive name for the bridge; <em>BridgeCreator</em> is the name of the entity that created the bridge. This affects the following events: <a href="Asterisk-13-ManagerEvent_ConfbridgeStart_29395010.html">ConfbridgeStart</a>, <a href="Asterisk-13-ManagerEvent_ConfbridgeEnd_29394976.html">ConfbridgeEnd</a>, <a href="Asterisk-13-ManagerEvent_ConfbridgeJoin_29394979.html">ConfbridgeJoin</a>, <a href="Asterisk-13-ManagerEvent_ConfbridgeLeave_29395031.html">ConfbridgeLeave</a>, <a href="Asterisk-13-ManagerEvent_ConfbridgeRecord_29395055.html">ConfbridgeRecord</a>, <a href="Asterisk-13-ManagerEvent_ConfbridgeStopRecord_29395020.html">ConfbridgeStopRecord</a>, <a href="Asterisk-13-ManagerEvent_ConfbridgeMute_29394956.html">ConfbridgeMute</a>, <a href="Asterisk-13-ManagerEvent_ConfbridgeUnmute_29395014.html">ConfbridgeUnmute</a>, <a href="Asterisk-13-ManagerEvent_ConfbridgeTalking_29395045.html">ConfbridgeTalking</a>, <a href="Asterisk-13-ManagerEvent_BlindTransfer_29395003.html">BlindTransfer</a>, <a href="Asterisk-13-ManagerEvent_AttendedTransfer_29395008.html">AttendedTransfer</a>, <a href="Asterisk-13-ManagerEvent_BridgeCreate_29394959.html">BridgeCreate</a>, <a href="Asterisk-13-ManagerEvent_BridgeDestroy_29394953.html">BridgeDestroy</a>, <a href="Asterisk-13-ManagerEvent_BridgeEnter_29394958.html">BridgeEnter</a>, and <a href="Asterisk-13-ManagerEvent_BridgeLeave_29395024.html">BridgeLeave</a>.</li></ul><h2 id="Newin13-ARI">ARI</h2><ul><li>Operations that create a resource can now provide the unique identifier as a parameter to the creation request. This includes:<ul><li><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Channels+REST+API#Asterisk13ChannelsRESTAPI-originate" rel="nofollow">Channels</a>:<ul><li>A <em>channelId</em> can now be provided when creating a channel, either in the request URI <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Channels+REST+API#Asterisk13ChannelsRESTAPI-originateWithId" rel="nofollow">(<code>POST channels/my-channel-id</code>)</a> or as a query parameter. A Local channel will suffix the second channel id with <code>;2</code> unless the <em>otherChannelId</em> is provided as a query parameter.</li><li>A <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Channels+REST+API#Asterisk13ChannelsRESTAPI-snoopChannel" rel="nofollow">snoop channel</a> can be started with a <em>snoopId</em>, in the request URI (<a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Channels+REST+API#Asterisk13ChannelsRESTAPI-snoopChannelWithId" rel="nofollow"><code>POST channels/my-channel-id/snoop/my-snoop-id</code></a>) or as a query parameter.</li></ul></li><li><a href="Asterisk-13-Bridges-REST-API_29394327.html">Bridges</a>: A <em>bridgeId</em> can now be provided when creating a bridge, either in the request URI (<a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Bridges+REST+API#Asterisk13BridgesRESTAPI-create_or_update_with_id" rel="nofollow"><code>POST bridges/my-bridge-id</code></a>) or as a query parameter.</li><li><a href="Asterisk-13-Playbacks-REST-API_29394317.html">Playbacks</a>: A <em>playbackId</em> can be provided when starting a playback, either in the request URI (<code><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Channels+REST+API#Asterisk13ChannelsRESTAPI-playWithId" rel="nofollow">POST channels/my-channel-id/play/my-playback-id</a></code> or <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Bridges+REST+API#Asterisk13BridgesRESTAPI-playWithId" rel="nofollow"><code>POST bridges/my-bridge-id/play/my-playback-id</code></a>) or as a query parameter.</li></ul></li><li><span style="line-height: 1.4285715;"><a href="Asterisk-13-Bridges-REST-API_29394327.html">Bridges</a>: the bridge type used when creating a bridge is now a comma separated list of bridge properties. Valid options are: <code>mixing</code>, <code>holding</code>, <code>dtmf_events</code>, and <code>proxy_media</code>.</span></li><li>The <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-LiveRecording" rel="nofollow">LiveRecording</a> object in recording events now contains a <em>target_uri</em> field which contains the URI of what is being recorded.</li><li><span style="line-height: 1.4285715;">Stored recordings now support a new operation, <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Recordings+REST+API#Asterisk13RecordingsRESTAPI-copyStored" rel="nofollow">copy</a>. This will take an existing stored recording and copy it to a new location in the <em>recordings</em> directory.</span></li><li><span style="line-height: 1.4285715;"><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-LiveRecording" rel="nofollow">LiveRecording</a> objects now have three additional fields that can be reported in a <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-RecordingFinished" rel="nofollow">RecordingFinished</a> ARI event:</span><ul><li><span style="line-height: 1.4285715;"><em>total_duration</em>: the duration of the recording.</span></li><li><span style="line-height: 1.4285715;"><em>talking_duration</em>: optional. The duration of talking detected in the recording. This is only available if <em>max_silence_seconds</em> was specified when the recording was started.</span></li><li><span style="line-height: 1.4285715;"><em>silence_duration</em>: optional. The duration of silence detected in the recording. This is only available if <em>max_silence_seconds</em> was specified when the recording was started.</span></li></ul><span style="line-height: 1.4285715;">Note that all duration values are reported in seconds.</span></li><li><span style="line-height: 1.4285715;"><span class="confluence-anchor-link" id="Newin13-ari_text_message"></span>Users of ARI can now send and receive out of call text messages. Messages can be sent using a <code>sendMessage</code> operation either directly to a <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Endpoints+REST+API#Asterisk13EndpointsRESTAPI-sendMessageToEndpoint" rel="nofollow">particular endpoint</a> or to the <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Endpoints+REST+API#Asterisk13EndpointsRESTAPI-sendMessage" rel="nofollow">endpoints resource</a> directly. In the latter case, the destination is derived from the URI scheme. Text messages are passed to ARI clients as <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-TextMessageReceived" rel="nofollow">TextMessageReceived</a> events. ARI clients can choose to receive text messages by <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Applications+REST+API#Asterisk13ApplicationsRESTAPI-subscribe" rel="nofollow">subscribing</a> to the particular endpoint technology or endpoints that they are interested in.</span></li><li><span style="line-height: 1.4285715;">The <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Applications+REST+API" rel="nofollow"><code>applications</code></a> resource now supports <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Applications+REST+API#Asterisk13ApplicationsRESTAPI-subscribe" rel="nofollow">subscriptions</a> to all endpoints of a particular channel technology. For example, subscribing to an <code>eventSource</code> of <code>endpoint:PJSIP</code> will subscribe to all <code>PJSIP</code> endpoints.</span></li><li><span style="line-height: 1.4285715;">New event models have been added for the <span class="confluence-link"> </span><a href="New-in-13_29394266.html"><span class="confluence-link"><code>TALK_DETECT</code></span> </a> function. When the function is used on a channel, <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-ChannelTalkingStarted" rel="nofollow">ChannelTalkingStarted</a>/<a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-ChannelTalkingFinished" rel="nofollow">ChannelTalkingFinished</a> events will be emitted to connected WebSockets subscribed to the channel, indicating the start/stop of talking on the channel.</span></li><li><span style="line-height: 1.4285715;">A new Playback URI <code>tone</code> has been added. Tones are specified either as an indication name, e.g., <code>tone:busy</code></span><span style="line-height: 1.4285715;"> </span><span style="line-height: 1.4285715;">, from <em>indications.conf</em> or as a tone pattern, e.g., <code>tone:240/250,0/250</code>.</span><span style="line-height: 1.4285715;"> Tones differ from normal playback URIs in that they must be stopped manually and will continue to occupy a channel's ARI control queue until they are stopped. They also can not be rewound or fast-forwarded.</span></li><li><span style="line-height: 1.4285715;"><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Events+REST+API#Asterisk13EventsRESTAPI-userEvent" rel="nofollow">User events</a> can now be generated from ARI. Events can be signalled with arbitrary JSON variables, and include one or more of <code>channel</code>, <code>bridge</code>, or <code>endpoint</code> snapshots.  An application must be specified which will receive the event message (other applications can subscribe to it). If a <code>channel</code> is specified, the message will also be delivered to connected AMI clients. Dialplan generated user event messages are still transmitted via the <code>channel</code>, and will only be received by a <a href="Asterisk-13-Application_Stasis_29394518.html">Stasis</a> application they are attached to or if something is subscribed to the <code>channel</code>.</span></li><li><span style="line-height: 1.4285715;">The <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-Bridge" rel="nofollow">Bridge</a> data model now contains the additional fields <em>name</em> and <em>creator</em>. The <em>name</em> field conveys a descriptive name for the bridge; the <em>creator</em> field conveys the name of the entity that created the bridge. This affects all responses to HTTP requests that return a <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-Bridge" rel="nofollow">Bridge</a> data model as well as all event derived data models that contain a <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-Bridge" rel="nofollow">Bridge</a> data model. The <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Bridges+REST+API#Asterisk13BridgesRESTAPI-create" rel="nofollow"><code>POST /bridges</code></a> operation may now optionally specify a <em>name</em> to give to the bridge being created.</span></li><li><span style="line-height: 1.4285715;"><span class="confluence-anchor-link" id="Newin13-res_ari_mailboxes"></span>Added a new ARI resource <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Mailboxes+REST+API" rel="nofollow">mailboxes</a> which allows the creation and modification of mailboxes managed by external MWI. Modules <a href="New-in-13_29394266.html"><code>res_mwi_external</code></a> and <code>res_stasis_mailbox</code> must be enabled to use this resource. For more information on external MWI control, see <code><a href="New-in-13_29394266.html">res_mwi_external</a></code>.</span></li><li><span style="line-height: 1.4285715;">Added new events for externally initiated transfers. The event <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-BridgeBlindTransfer" rel="nofollow">BridgeBlindTransfer</a> is now raised when a channel initiates a blind transfer of a bridge in the ARI controlled application to the dialplan; the <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+REST+Data+Models#Asterisk13RESTDataModels-BridgeAttendedTransfer" rel="nofollow">BridgeAttendedTransfer</a> event is raised when a channel initiates an attended transfer of a bridge in the ARI controlled application to the dialplan.</span></li><li><span style="line-height: 1.4285715;">Channel variables may now be specified as a body parameter to the <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Channels+REST+API#Asterisk13ChannelsRESTAPI-originate" rel="nofollow"><code>POST /channels</code></a> operation. The <code>variables</code> key in the JSON is interpreted as a sequence of key/value pairs that will be added to the created channel as channel variables. Other parameters in the JSON body are treated as query parameters of the same name.</span></li></ul><h2 id="Newin13-CEL">CEL</h2><ul><li>The <em>bridge_technology</em> extra field key has been added to <code>BRIDGE_ENTER</code> and <code>BRIDGE_EXIT</code> events.</li></ul><h2 id="Newin13-CLI">CLI</h2><ul><li><code>core show locks</code> output now includes Thread/LWP ID, if the platform supports this feature.</li><li>New <code>logger add channel</code> and <code>logger remove channel</code> CLI commands have been added to allow creation and deletion of dynamic logger channels without configuration changes. These dynamic logger channels will only exist until the next restart of asterisk.</li></ul><h2 id="Newin13-Features">Features</h2><ul><li>Channel variables are now substituted in arguments passed to applications run by using dynamic features.</li></ul><h2 id="Newin13-HTTP">HTTP</h2><ul><li>Asterisk's HTTP server now supports chunked Transfer-Encoding. This will be automatically handled by the HTTP server if a request is received with a Transfer-Encoding type of <code>chunked</code>.</li></ul><h2 id="Newin13-RealTime">RealTime</h2><ul><li>A new set of Alembic scripts has been added for CDR tables. This will create a <code>cdr</code> table with the default schema that Asterisk expects.</li><li>Numerous updates have been made to the database schemas for several tables. See the <a href="Upgrading-to-Asterisk-13_29394271.html">Upgrading to Asterisk 13</a> notes for more information.</li></ul><h2 id="Newin13-TLS">TLS</h2><ul><li>The TLS core in Asterisk now supports Perfect Forward Secrecy (PFS). Enabling PFS is attempted by default, and is dependent on the configuration of the module using TLS.<ul><li><p>Ephemeral ECDH (ECDHE) is enabled by default. To disable it, do not specify a ECDHE cipher suite in <em>sip.conf</em>, for example:</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
  143. <pre class="theme: Confluence; brush: java; gutter: false" style="font-size:12px;">tlscipher=AES128-SHA:DES-CBC3-SHA</pre>
  144. </div></div></li><li><p>Ephemeral DH (DHE) is disabled by default. To enable it, add DH parameters into the private key file, e.g., <em>sip.conf</em> <code>tlsprivatekey</code>. For example, the default <code>dh2048.pem</code> - see <a href="http://www.opensource.apple.com/source/OpenSSL098/OpenSSL098-35.1/src/apps/dh2048.pem?txt" style="line-height: 1.4285715;" class="external-link" rel="nofollow">http://www.opensource.apple.com/source/OpenSSL098/OpenSSL098-35.1/src/apps/dh2048.pem?txt</a></p></li><li><p>Because clients expect the server to prefer PFS, and because OpenSSL sorts its cipher suites by bit strength, see <code>openssl ciphers -v DEFAULT</code>. Consider re-ordering your cipher suites in the respective configuration file. For example:<br /><br /></p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
  145. <pre class="theme: Confluence; brush: java; gutter: false" style="font-size:12px;">tlscipher=AES128+kEECDH:AES128+kEDH:3DES+kEDH:AES128-SHA:DES-CBC3-SHA:-ADH:-AECDH</pre>
  146. </div></div><p>will use PFS when offered by the client. Clients which do not offer PFS fall-back to AES-128 (or even 3DES, as recommended by RFC 3261).</p></li></ul></li></ul><h1 id="Newin13-CDRBackends">CDR Backends</h1><h2 id="Newin13-cdr_sqlite">cdr_sqlite</h2><ul><li>This module was deprecated and has been removed. Users of <code>cdr_sqlite</code> should use <code>cdr_sqlite3_custom</code>.</li></ul><h2 id="Newin13-cdr_pgsql"><span style="color: rgb(133,120,102);">cdr_pgsql</span></h2><ul><li>Added the ability to support PostgreSQL <code>application_name</code> on connections. This allows PostgreSQL to display the configured name in the <code>pg_stat_activity</code> view and CSV log entries. This setting is configurable for <code>cdr_pgsql</code> via the <code>appname</code> configuration setting in <em>cdr_pgsql.conf</em>.</li></ul><h1 id="Newin13-CELBackends">CEL Backends</h1><h2 id="Newin13-cel_pgsql">cel_pgsql</h2><ul><li>Added the ability to support PostgreSQL <code>application_name</code> on connections. This allows PostgreSQL to display the configured name in the <code>pg_stat_activity</code> view and CSV log entries. This setting is configurable for <code>cel_pgsql</code> via the <code>appname</code> configuration setting in <em>cel_pgsql.conf</em>.</li></ul><h1 id="Newin13-ChannelDrivers">Channel Drivers</h1><h2 id="Newin13-chan_dahdi">chan_dahdi</h2><ul><li>SS7 support now requires <a href="http://downloads.asterisk.org/pub/telephony/libss7/libss7-2.0.0.tar.gz" class="external-link" rel="nofollow"><code>libss7</code> v2.0 or later</a>.</li><li>Added SS7 support for connected line and redirecting.</li><li>Most SS7 CLI commands have been reworked as well; additionally, new SS7 commands added. See the online CLI help for more information.</li><li>Several SS7 config option parameters have been added; see the description in <code>chan_dahdi.conf.sample</code>.</li></ul><h2 id="Newin13-chan_gtalk">chan_gtalk</h2><ul><li>This module was deprecated and has been removed. Users of <code>chan_gtalk</code> should use <code>chan_motif</code>.</li></ul><h2 id="Newin13-chan_h323"><span style="color: rgb(133,120,102);">chan_h323</span></h2><ul><li>This module was deprecated and has been removed. Users of <code>chan_h323</code> should use <code>chan_ooh323</code>.</li></ul><h2 id="Newin13-chan_jingle">chan_jingle</h2><ul><li>This module was deprecated and has been removed. Users of <code>chan_jingle</code> should use <code>chan_motif</code>.</li></ul><h2 id="Newin13-chan_sip">chan_sip</h2><ul><li>The <a href="Asterisk-13-Function_SIPPEER_29394333.html"><code>SIPPEER</code></a> dialplan function no longer supports using a colon as a delimiter for parameters. The parameters for the function should be delimited using a comma.</li><li>The <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+12+Function_SIPCHANINFO"><code>SIPCHANINFO</code></a> dialplan function was deprecated and has been removed. Users of the function should use the <a href="Asterisk-13-Function_CHANNEL_29394648.html"><code>CHANNEL</code></a> function instead.</li><li>SIP peers can now specify <code>trust_id_outbound</code> which affects RPID/PAI fields for prohibited <code>callingpres</code> information. Values are <code>legacy</code>, <code>no</code>, and <code>yes</code>. By default, <code>legacy</code> is used.<ul><li><code>trust_id_outbound=legacy</code> - behaviour remains the same as in previous versions of Asterisk. When dealing with prohibited <code>callingpres</code> and <code>sendrpid=pai/rpid</code>, RPID/PAI headers are appended to outbound SIP messages just as they are with allowed <code>callingpres</code> values, but data about the remote party's identity is anonymized. When <code>sendrpid=rpid</code>, only the remote party's domain is anonymized.</li><li><code>trust_id_outbound=no</code> - when dealing with prohibited <code>callingpres</code>, RPID/PAI headers are not sent.</li><li><code>trust_id_outbound=yes</code> - RPID/PAI headers are applied with the full remote party information intact even for prohibited <code>callingpres</code> information. In the case of PAI, a <code>Privacy: id</code> header will be appended for prohibited calling information to communicate that the private information should not be relayed to untrusted parties.</li></ul></li><li>TEL URI support for inbound INVITE requests has been added. <code>chan_sip</code> will now handle TEL schemes in the Request and From URIs. The phone-context in the Request URI will be stored in the <code>SIPURIPHONECONTEXT</code> channel variable on the inbound channel.</li></ul><h1 id="Newin13-Functions">Functions</h1><h2 id="Newin13-AST_SORCERY"><a href="Asterisk-13-Function_AST_SORCERY_29394680.html">AST_SORCERY</a></h2><ul><li>The <a href="Asterisk-13-Function_AST_SORCERY_29394680.html"><code>AST_SORCERY</code></a> function exposes sorcery-based configuration files like <a href="Asterisk-13-Configuration_res_pjsip_29394877.html"><em>pjsip.conf</em></a> to the dialplan.</li></ul><h2 id="Newin13-AUDIOHOOK_INHERIT"><a href="Asterisk-13-Function_AUDIOHOOK_INHERIT_29394681.html">AUDIOHOOK_INHERIT</a></h2><ul><li>The <a href="Asterisk-13-Function_AUDIOHOOK_INHERIT_29394681.html"><code>AUDIOHOOK_INHERIT</code></a> function has been deprecated. Audiohooks are now unconditionally inherited through masquerades. As a side benefit, more than one audiohook of a given type may persist through a masquerade now.</li></ul><h2 id="Newin13-CONFBRIDGE"><a href="Asterisk-13-Function_CONFBRIDGE_29394403.html">CONFBRIDGE</a></h2><ul><li>The <a href="Asterisk-13-Function_CONFBRIDGE_29394403.html">CONFBRIDGE</a> dialplan function is now capable of creating/modifying dynamic conference user menus.</li><li>The <a href="Asterisk-13-Function_CONFBRIDGE_29394403.html">CONFBRIDGE</a> dialplan function is now capable of removing dynamic conference menus, bridge settings, and user settings that have been applied by the <a href="Asterisk-13-Function_CONFBRIDGE_29394403.html">CONFBRIDGE</a> dialplan function.</li></ul><h2 id="Newin13-JACK_HOOK">JACK_HOOK</h2><ul><li>The <code>JACK_HOOK</code> function now supports audio with a sample rate higher than 8kHz.</li></ul><h2 id="Newin13-MIXMONITOR"><a href="Asterisk-13-Function_MIXMONITOR_29394454.html">MIXMONITOR</a></h2><ul><li>A new function, <a href="Asterisk-13-Function_MIXMONITOR_29394454.html"><code>MIXMONITOR</code></a>, has been added to allow access to individual instances of <a href="Asterisk-13-Application_MixMonitor_29394449.html">MixMonitor</a> on a channel.</li></ul><h2 id="Newin13-PERIODIC_HOOK"><a href="Asterisk-13-Function_PERIODIC_HOOK_29394624.html">PERIODIC_HOOK</a></h2><ul><li>A new function, <a href="Asterisk-13-Function_PERIODIC_HOOK_29394624.html">PERIODIC_HOOK</a>, has been added which allows for running a periodic dialplan hook on a channel.  Any audio generated by this hook will be injected into the call.</li></ul><h2 id="Newin13-TALK_DETECTTALK_DETECT"><span style="line-height: 1.5;"><span class="confluence-anchor-link" id="Newin13-TALK_DETECT"></span><a href="Asterisk-13-Function_TALK_DETECT_29394577.html">TALK_DETECT</a></span></h2><ul><li>A new function, <a href="Asterisk-13-Function_TALK_DETECT_29394577.html"><code>TALK_DETECT</code></a>, has been added. When set on a channel, this function causes events indicating the starting/stopping of talking on said channel to be emitted to both AMI and ARI clients.</li></ul><h1 id="Newin13-Resources">Resources</h1><h2 id="Newin13-res_config_pgsql">res_config_pgsql</h2><ul><li>Added the ability to support PostgreSQL <code>application_name</code> on connections. This allows PostgreSQL to display the configured name in the <code>pg_stat_activity</code> view and CSV log entries. This setting is configurable for <code>res_config_pgsql</code> via the <code>dbappname</code> configuration setting in <em>res_pgsql.conf</em>.</li></ul><h2 id="Newin13-res_hep">res_hep</h2><ul><li>A new module, <code>res_hep</code>, has been added that acts as a generic packet capture agent for the <a href="http://www.sipcapture.org/" class="external-link" rel="nofollow">Homer Encapsulation Protocol (HEP) version 3</a>. It can be configured via <em><code>hep.conf</code></em>. Other modules use <code>res_hep</code> to send message traffic to a <a href="https://code.google.com/p/homer/wiki/HEP" class="external-link" rel="nofollow">HEP capture server</a>.</li></ul><h2 id="Newin13-res_hep_pjsip">res_hep_pjsip</h2><ul><li>A new module, <code>res_hep_pjsip</code>, has been added that will forward PJSIP message traffic to a HEP capture server. See <code>res_hep</code> for more information.</li></ul><h2 id="Newin13-res_hep_rtcp">res_hep_rtcp</h2><ul><li>A new module, <code>res_hep_rtcp</code>, has been added that will forward RTCP call statistics to a HEP capture server. See <code>res_hep</code> for more information.</li></ul><p><span class="confluence-anchor-link" id="Newin13-res_mwi_external"></span></p><h2 id="Newin13-res_mwi_external">res_mwi_external</h2><ul><li>A new module, <code>res_mwi_external</code>, has been added to Asterisk. This module acts as a base framework that other modules can build on top of to allow an external system to control MWI within Asterisk. For implementations that make use of <code>res_mwi_external</code>, see the <a href="New-in-13_29394266.html"><code>res_mwi_external_ami</code> notes</a> under the AMI changes and <a href="New-in-13_29394266.html"><code>res_ari_mailboxes</code> notes</a> under the ARI changes. Note that <code>res_mwi_external</code> conflicts with other modules that may produce MWI themselves, such as <code>app_voicemail</code>. <code>res_mwi_external</code> and other modules that depend on it cannot be built or loaded with <code>app_voicemail</code> present.</li></ul><h2 id="Newin13-res_parking">res_parking</h2><ul><li>Manager action <a href="Asterisk-13-ManagerAction_Park_29394903.html">Park</a> now takes an additional argument <em>AnnounceChannel</em> which can be used to announce the parked call's location to an arbitrary channel in a bridge. If <em>Channel</em> and <em>TimeoutChannel</em> are the two parties in a two-party bridge, <em>TimeoutChannel</em> is treated as having parked <em>Channel</em> (in the same manner as the Park Call DTMF feature) and will receive announcements prior to being hung up.</li></ul><h2 id="Newin13-res_pjsip">res_pjsip</h2><ul><li>The <code>endpoint</code> configuration object now supports <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip#Asterisk13Configuration_res_pjsip-endpoint_accountcode" rel="nofollow"><code>accountcode</code></a>. Any channel created for an endpoint with this setting will have its <code>accountcode</code> set to the specified value.</li><li><code>transport</code> and <code>endpoint</code> <a href="https://wiki.asterisk.org/wiki/display/AST/IP+Quality+of+Service" rel="nofollow">ToS options</a> (<a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip#Asterisk13Configuration_res_pjsip-transport_tos" rel="nofollow"><code>tos</code></a>, <code><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip#Asterisk13Configuration_res_pjsip-endpoint_tos_audio" rel="nofollow">tos_audio</a></code>, and <code><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip#Asterisk13Configuration_res_pjsip-endpoint_tos_video" rel="nofollow">tos_video</a></code>) may now be set as the named set of ToS values ( <code>cs0</code> - <code>cs7</code>, <code>af11</code> - <code>af43</code>, <code>ef</code>).</li><li>Added the following new CLI commands:<ul><li><code>pjsip show contacts</code> - list all current PJSIP contacts.</li><li><code>pjsip show contact</code> - show specific information about a current PJSIP contact.</li><li><code>pjsip show channel</code> - show detailed information about a PJSIP channel.</li></ul></li><li>Path support has been added with the <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip#Asterisk13Configuration_res_pjsip-aor_support_path" rel="nofollow"><code>support_path</code></a> option in <code>registration</code> and <code>aor</code> sections. This functionality is provided by a new module, <code>res_pjsip_path.so</code>.</li><li>A <code><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip" rel="nofollow">debug</a></code> option has been added to the <code>globals</code> section that will allow sip messages to be logged.</li><li>A <code><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip#Asterisk13Configuration_res_pjsip-endpoint_set_var" rel="nofollow">set_var</a></code> option has been added to endpoints that will automatically set the desired variable(s) on a channel created for that endpoint.</li><li>DNS functionality will now automatically be enabled if the system configured nameservers can be retrieved. If the system configured nameservers can not be retrieved the functionality will resort to using basic system resolution. Functionality such as SRV records and fail-over will not be available if the basic system resolution is in use.</li><li>Several new tables and columns have been added to the realtime schema for the <code>res_pjsip</code> related modules. See the <a href="Upgrading-to-Asterisk-13_29394271.html">UPGRADE</a> notes for updating the database schema.</li></ul><h2 id="Newin13-res_pjsip_multihomed">res_pjsip_multihomed</h2><ul><li>A new module, <code>res_pjsip_multihomed</code> handles situations where the system Asterisk is running out has multiple interfaces. <code>res_pjsip_multihomed</code> determines which interface should be used during message sending.</li></ul><h2 id="Newin13-res_pjsip_outbound_publish">res_pjsip_outbound_publish</h2><ul><li>A new module, <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip_outbound_publish" rel="nofollow"><code>res_pjsip_outbound_publish</code></a> provides the mechanisms for sending <code>PUBLISH</code> requests for specific event packages to another SIP User Agent. See <a href="https://wiki.asterisk.org/wiki/display/AST/Exchanging+Device+and+Mailbox+State+Using+PJSIP">Exchanging Device and Mailbox State Using PJSIP</a> for examples on configuring this feature.</li></ul><h2 id="Newin13-res_pjsip_outbound_registration">res_pjsip_outbound_registration</h2><ul><li>A new CLI command has been added: <code>pjsip show registrations</code>, which lists all configured PJSIP registrations.</li></ul><h2 id="Newin13-res_pjsip_pidf_digium_body_supplement">res_pjsip_pidf_digium_body_supplement</h2><ul><li>A new module, <code>res_pjsip_pidf_digium_body_supplement</code> provides NOTIFY request body formatting for presence support in Digium phones.</li></ul><h2 id="Newin13-res_pjsip_pubsubres_pjsip_pubsub"><span class="confluence-anchor-link" id="Newin13-res_pjsip_pubsub"></span>res_pjsip_pubsub</h2><ul><li>Subscriptions can now be persisted via the <code>subscription_persistence</code> object in <em><a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip_pubsub" rel="nofollow"><code>pjsip.conf</code></a></em>. Note that it is up to the configuration in <em><code>sorcery.conf</code></em> to determine how the subscription is persisted.</li><li>The publish/subscribe core module has been updated to support RFC 4662 <a href="http://tools.ietf.org/html/rfc4662" class="external-link" rel="nofollow">Resource Lists</a>, allowing Asterisk to act as a Resource List Server (RLS). Resource lists are configured in <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip_pubsub" rel="nofollow"><code>pjsip.conf</code></a> under a new object type, <code>resource_list</code>. Resource lists can contain either <code>message-summary</code> or <code>presence</code> events, can be composed of specific resources that provide the event, or other resource lists.</li><li>Inbound publication support is provided by a new object, <code>inbound-publication</code>. This configures <code>res_pjsip_pubsub</code> to accept <code>PUBLISH</code> requests from a particular resource. Which events are accepted is constructed dynamically; see <code><a href="New-in-13_29394266.html">res_pjsip_publish_asterisk</a></code> for more information and <a href="https://wiki.asterisk.org/wiki/display/AST/Exchanging+Device+and+Mailbox+State+Using+PJSIP">Exchanging Device and Mailbox State Using PJSIP</a> for examples on configuring this feature.</li></ul><h2 id="Newin13-res_pjsip_publish_asteriskres_pjsip_publish_asterisk"><span class="confluence-anchor-link" id="Newin13-res_pjsip_publish_asterisk"></span>res_pjsip_publish_asterisk</h2><ul><li>A new module, <a href="https://wiki.asterisk.org/wiki/display/AST/Asterisk+13+Configuration_res_pjsip_publish_asterisk" rel="nofollow"><code>res_pjsip_publish_asterisk</code></a> adds support for <code>PUBLISH</code> requests of Asterisk information to other Asterisk servers. This module is intended only for Asterisk to Asterisk exchanges of information. Currently, this includes both mailbox state and device state information. See <a href="https://wiki.asterisk.org/wiki/display/AST/Exchanging+Device+and+Mailbox+State+Using+PJSIP">Exchanging Device and Mailbox State Using PJSIP</a> for examples on configuring this feature.</li></ul><h2 id="Newin13-res_pjsip_send_to_voicemail">res_pjsip_send_to_voicemail</h2><ul><li>A new module, <code>res_pjsip_send_to_voicemail</code> allows for REFER requests with particular headers to transfer a PJSIP channel directly to a particular extension that has VoiceMail. This is intended to be used with Digium phones that support this feature.</li></ul><p> </p>
  147. </div>
  148. </div> </div>
  149. <div id="footer">
  150. <section class="footer-body">
  151. <p>Document generated by Confluence on Aug 11, 2014 13:36</p>
  152. </section>
  153. </div>
  154. </div> </body>
  155. </html>