UPGRADE.txt 40 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841
  1. ===========================================================
  2. ===
  3. === Information for upgrading between Asterisk versions
  4. ===
  5. === These files document all the changes that MUST be taken
  6. === into account when upgrading between the Asterisk
  7. === versions listed below. These changes may require that
  8. === you modify your configuration files, dialplan or (in
  9. === some cases) source code if you have your own Asterisk
  10. === modules or patches. These files also include advance
  11. === notice of any functionality that has been marked as
  12. === 'deprecated' and may be removed in a future release,
  13. === along with the suggested replacement functionality.
  14. ===
  15. === UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
  16. === UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
  17. === UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
  18. === UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8
  19. === UPGRADE-10.txt -- Upgrade info for 1.8 to 10
  20. === UPGRADE-11.txt -- Upgrade info for 10 to 11
  21. ===
  22. ===========================================================
  23. From 12.7.0 to 12.8.0:
  24. Core:
  25. - The core of Asterisk uses a message bus called "Stasis" to distribute
  26. information to internal components. For performance reasons, the message
  27. distribution was modified to make use of a thread pool instead of a
  28. dedicated thread per consumer in certain cases. The initial settings for
  29. the thread pool can now be configured using 'stasis.conf'. A sample
  30. configuration file is provided in the samples directory.
  31. From 12.6.0 to 12.7.0:
  32. PJSIP:
  33. - Added the CLI command 'pjsip list ciphers' so a user can know what
  34. OpenSSL names are available on their system for the pjsip.conf cipher
  35. option.
  36. - Added the pjsip.conf system type disable_tcp_switch option. The option
  37. allows the user to disable switching from UDP to TCP transports described
  38. by RFC 3261 section 18.1.1.
  39. From 12.6.0 to 12.6.1:
  40. - Due to the POODLE vulnerability (see
  41. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566), the
  42. default TLS method for TLS clients will no longer allow SSLv3. As
  43. SSLv2 was already deprecated, it is no longer allowed by default as
  44. well. TLS servers no longer allow SSLv2 or SSLv3 connections. This
  45. affects the chan_sip channel driver, AMI, and the Asterisk HTTP server.
  46. - The res_jabber resource module no longer uses SSLv3 to connect to an
  47. XMPP server. It will now only use TLSv1 or later methods.
  48. From 12.5.0 to 12.6.0:
  49. ConfBridge:
  50. - Added 'Admin' header to ConfbridgeJoin, ConfbridgeLeave, ConfbridgeMute,
  51. ConfbridgeUnmute, and ConfbridgeTalking AMI events.
  52. ControlPlayback:
  53. - The ControlPlayback and 'control stream file' AGI command will no longer
  54. implicitly answer the channel. If you do not answer the channel prior to
  55. using either this application or AGI command, you must send Progress
  56. first.
  57. From 12.4.0 to 12.5.0:
  58. ARI:
  59. - The ARI version has been changed from 1.4.0 to 1.5.0. This is to reflect
  60. the backwards compatible changes listed in the CHANGES file.
  61. AMI:
  62. - The AMI version has been changed from 2.4.0 to 2.5.0. This is to reflect
  63. the backwards compatible changes listed in the CHANGES file.
  64. From 12.3.2 to 12.4.0:
  65. - The safe_asterisk script was previously not installed on top of an existing
  66. version. This caused bug-fixes in that script not to be deployed. If your
  67. safe_asterisk script is customized, be sure to keep your changes. Custom
  68. values for variables should be created in *.sh file(s) inside
  69. ASTETCDIR/startup.d/. See ASTERISK-21965.
  70. - Changed a log message in safe_asterisk and the $NOTIFY mail subject. If
  71. you use tools to parse either of them, update your parse functions
  72. accordingly. The changed strings are:
  73. - "Exited on signal $EXITSIGNAL" => "Asterisk exited on signal $EXITSIGNAL."
  74. - "Asterisk Died" => "Asterisk on $MACHINE died (sig $EXITSIGNAL)"
  75. AMI:
  76. - The AMI version has been changed from 2.3.0 to 2.4.0. This is to reflect
  77. the backwards compatible changes listed in the CHANGES file.
  78. ARI:
  79. - Added a compatibility option 'websocket_write_timeout'. When a websocket
  80. connection exists where Asterisk writes a substantial amount of data to
  81. the connected client, and the connected client is slow to process the
  82. received data, the socket may be disconnected. In such cases, it may be
  83. necessary to adjust this value.
  84. Default is 100 ms.
  85. - The ARI version has been changed from 1.3.0 to 1.4.0. This is to reflect
  86. the backwards compatible changes listed in the CHANGES file.
  87. chan_dahdi:
  88. - Added the inband_on_setup_ack compatibility option to chan_dahdi.conf to
  89. deal with switches that don't send an inband progress indication in the
  90. SETUP ACKNOWLEDGE message.
  91. chan_pjsip:
  92. - Added a compatibility option 'websocket_write_timeout'. When a websocket
  93. connection exists where Asterisk writes a substantial amount of data to
  94. the connected client, and the connected client is slow to process the
  95. received data, the socket may be disconnected. In such cases, it may be
  96. necessary to adjust this value.
  97. Default is 100 ms.
  98. - Added a 'force_avp' option to chan_pjsip which will force the usage of
  99. 'RTP/AVP', 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' as the media transport type
  100. in SDP offers depending on settings, even when DTLS is used for media
  101. encryption.
  102. - Added a 'media_use_received_transport' option to chan_pjsip which will
  103. cause the SDP answer to use the media transport as received in the SDP
  104. offer.
  105. chan_sip:
  106. - Added a compatibility option 'websocket_write_timeout'. When a websocket
  107. connection exists where Asterisk writes a substantial amount of data to
  108. the connected client, and the connected client is slow to process the
  109. received data, the socket may be disconnected. In such cases, it may be
  110. necessary to adjust this value.
  111. Default is 100 ms.
  112. - Added a 'force_avp' option for chan_sip. When enabled this option will
  113. cause the media transport in the offer or answer SDP to be 'RTP/AVP',
  114. 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' even if a DTLS stream has been
  115. configured. This option can be set to improve interoperability with WebRTC
  116. clients that don't use the RFC defined transport for DTLS.
  117. - The 'dtlsverify' option in chan_sip now has additional values besides
  118. 'yes' and 'no'. If 'yes' is specified both the certificate and fingerprint
  119. will be verified. If 'no' is specified then neither the certificate or
  120. fingerprint is verified. If 'certificate' is specified then only the
  121. certificate is verified. If 'fingerprint' is specified then only the
  122. fingerprint is verified.
  123. - A 'dtlsfingerprint' option has been added to chan_sip which allows the
  124. hash to be specified for the DTLS fingerprint placed in SDP. Supported
  125. values are 'sha-1' and 'sha-256' with 'sha-256' being the default.
  126. HTTP:
  127. - Added support for persistent HTTP connections. To enable persistent
  128. HTTP connections configure the keep alive time between HTTP requests. The
  129. keep alive time between HTTP requests is configured in http.conf with the
  130. session_keep_alive parameter.
  131. From 12.3.0 to 12.3.1:
  132. - MixMonitor AMI actions now require users to have authorization classes.
  133. * MixMonitor - system
  134. * MixMonitorMute - call or system
  135. * StopMixMonitor - call or system
  136. - Added http.conf session_inactivity timer option to close HTTP connections
  137. that aren't doing anything.
  138. - Removed the undocumented manager.conf block-sockets option. It interferes with
  139. TCP/TLS inactivity timeouts.
  140. From 12.2.0 to 12.3.0:
  141. - The asterisk command line -I option and the asterisk.conf internal_timing
  142. option are removed and always enabled if any timing module is loaded.
  143. AMI:
  144. - The AMI version has been changed from 2.2.0 to 2.3.0. This is to reflect
  145. the backwards compatible changes listed in the CHANGES file.
  146. ARI:
  147. - The ARI version has been changed from 1.2.0 to 1.3.0. This is to reflect
  148. the backwards compatible changes listed in the CHANGES file.
  149. Build Options:
  150. - Added a new Compiler Flag, REF_DEBUG. When enabled, reference counted
  151. objects will emit additional debug information to the refs log file located
  152. in the standard Asterisk log file directory. This log file is useful in
  153. tracking down object leaks and other reference counting issues. Prior to
  154. this version, this option was only available by modifying the source code
  155. directly. This change also includes a new script, refcounter.py, in the
  156. contrib folder that will process the refs log file.
  157. chan_sip:
  158. - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
  159. From 12.1.0 to 12.2.0:
  160. AMI:
  161. - The AMI version has been changed from 2.1.0 to 2.2.0. This is to reflect
  162. the backwards compatible changes listed in the CHANGES file.
  163. ARI:
  164. - The ARI version has been changed from 1.1.0 to 1.2.0. This is to reflect
  165. the backwards compatible changes listed in the CHANGES file.
  166. - A bug fix in bridge creation has caused a behavioural change in how
  167. subscriptions are created for bridges. A bridge created through ARI, does
  168. not, by itself, have a subscription created for any particular Stasis
  169. application. When a channel in a Stasis application joins a bridge, an
  170. implicit event subscription is created for that bridge as well. Previously,
  171. when a channel left such a bridge, the subscription was leaked; this allowed
  172. for later bridge events to continue to be pushed to the subscribed
  173. applications. That leak has been fixed; as a result, bridge events that were
  174. delivered after a channel left the bridge are no longer delivered. An
  175. application must subscribe to a bridge through the applications resource if
  176. it wishes to receive all events related to a bridge.
  177. ConfBridge:
  178. - The sound_place_into_conference sound used in Confbridge is now deprecated
  179. and is no longer functional since it has been broken since its inception
  180. and the fix involved using a different method to achieve the same goal. The
  181. new method to achieve this functionality is by using sound_begin to play
  182. a sound to the conference when waitmarked users are moved into the
  183. conference.
  184. IAX2:
  185. - When communicating with a peer on an Asterisk 1.4 or earlier system, the
  186. chan_iax2 parameter 'connectedline' must be set to "no" in iax.conf. This
  187. prevents an incompatible connected line frame from an Astersik 1.8 or later
  188. system from causing a hangup in an Asterisk 1.4 or earlier system. Note that
  189. this particular incompatibility has always existed between 1.4 and 1.8 and
  190. later versions; this upgrade note is simply informing users of its existance.
  191. ODBC:
  192. - A compatibility setting, allow_empty_string_in_nontext, has been added to
  193. res_odbc.conf. When enabled (default behavior), empty column values are
  194. stored as empty strings during realtime updates. Disabling this option
  195. causes empty column values to be stored as NULLs for non-text columns.
  196. Disable it for PostgreSQL backends in order to avoid errors caused by
  197. updating integer columns with an empty string instead of NULL
  198. (sippeers, sipregs, ..).
  199. PJSIP:
  200. - The PJSIP registrar now stores the contents of the User-Agent header of
  201. incoming REGISTER requests for each contact that is registered. If using
  202. realtime for PJSIP contacts, this means that the schema has been updated to
  203. add a user_agent column. An alembic revision has been added to facilitate
  204. this update.
  205. - PJSIP endpoints now have a "message_context" option that can be used to
  206. determine where to route incoming MESSAGE requests from the endpoint.
  207. Realtime Configuration:
  208. - PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from
  209. yes/no enumerators to string values. 'cos_audio' and 'cos_video' have been
  210. changed from yes/no enumerators to integer values. PJSIP transport column
  211. 'tos' has been changed from a yes/no enumerator to a string value. 'cos' has
  212. been changed from a yes/no enumerator to an integer value.
  213. - The 'queues' and 'queue_members' realtime tables have been added to the
  214. config Alembic scripts.
  215. - A new set of Alembic scripts has been added for CDR tables. This will create
  216. a 'cdr' table with the default schema that Asterisk expects.
  217. From 12.0.0 to 12.1.0:
  218. - The per console verbose level feature as previously implemented caused a
  219. large performance penalty. The fix required some minor incompatibilities
  220. if the new rasterisk is used to connect to an earlier version. If the new
  221. rasterisk connects to an older Asterisk version then the root console verbose
  222. level is always affected by the "core set verbose" command of the remote
  223. console even though it may appear to only affect the current console. If
  224. an older version of rasterisk connects to the new version then the
  225. "core set verbose" command will have no effect.
  226. ARI:
  227. - The ARI version has been changed from 1.0.0 to 1.1.0. This is to reflect
  228. the backwards compatible changes listed below.
  229. - Added a new ARI resource 'mailboxes' which allows the creation and
  230. modification of mailboxes managed by external MWI. Modules res_mwi_external
  231. and res_stasis_mailbox must be enabled to use this resource.
  232. - Added new events for externally initiated transfers. The event
  233. BridgeBlindTransfer is now raised when a channel initiates a blind transfer
  234. of a bridge in the ARI controlled application to the dialplan; the
  235. BridgeAttendedTransfer event is raised when a channel initiates an
  236. attended transfer of a bridge in the ARI controlled application to the
  237. dialplan.
  238. - Channel variables may now be specified as a body parameter to the
  239. POST /channels operation. The 'variables' key in the JSON is interpreted
  240. as a sequence of key/value pairs that will be added to the created channel
  241. as channel variables. Other parameters in the JSON body are treated as
  242. query parameters of the same name.
  243. - Subscribing to the same device state twice now responds with success
  244. instead of returning error on the second attempt.
  245. AMI:
  246. - The AMI version has been changed from 2.0.0 to 2.1.0. This is to reflect
  247. the backwards compatible changes listed below.
  248. - The DialStatus field in the DialEnd event can now have additional values.
  249. This includes ABORT, CONTINUE, and GOTO.
  250. - The res_mwi_external_ami module can, if loaded, provide additional AMI
  251. actions and events that convey MWI state within Asterisk. This includes
  252. the MWIGet, MWIUpdate, and MWIDelete actions, as well as the MWIGet and
  253. MWIGetComplete events that occur in response to an MWIGet action.
  254. - AMI now contains a new class authorization, 'security'. This is used with
  255. the following new events: FailedACL, InvalidAccountID, SessionLimit,
  256. MemoryLimit, LoadAverageLimit, RequestNotAllowed, AuthMethodNotAllowed,
  257. RequestBadFormat, SuccessfulAuth, UnexpectedAddress, ChallengeResponseFailed,
  258. InvalidPassword, ChallengeSent, and InvalidTransport.
  259. - Bridge related events now have two additional fields: BridgeName and
  260. BridgeCreator. BridgeName is a descriptive name for the bridge;
  261. BridgeCreator is the name of the entity that created the bridge. This
  262. affects the following events: ConfbridgeStart, ConfbridgeEnd,
  263. ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
  264. ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
  265. AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
  266. CDRs:
  267. - The "endbeforehexten" setting now defaults to "yes", instead of "no".
  268. When set to "no", yhis setting will cause a new CDR to be generated when a
  269. channel enters into hangup logic (either the 'h' extension or a hangup
  270. handler subroutine). In general, this is not the preferred default: this
  271. causes extra CDRs to be generated for a channel in many common dialplans.
  272. CLI commands:
  273. - "core show settings" now lists the current console verbosity in addition
  274. to the root console verbosity.
  275. - "core set verbose" has not been able to support the by module verbose
  276. logging levels since verbose logging levels were made per console. That
  277. syntax is now removed and a silence option added in its place.
  278. Configuration Files:
  279. - The 'verbose' setting in logger.conf still takes an optional argument,
  280. specifying the verbosity level for each logging destination. However,
  281. the default is now to once again follow the current root console level.
  282. As a result, using the AMI Command action with "core set verbose" could
  283. again set the root console verbose level and affect the verbose level
  284. logged.
  285. - res_fax now returns the correct rates for V.27ter (4800 or 9600 bit/s).
  286. Because of this the default settings would not load, so the minrate (minimum
  287. transmission rate) option in res_fax.conf was changed to default to 4800
  288. since that is the minimum rate for v.27 which is included in the default
  289. modem options.
  290. Realtime Configuration:
  291. - WARNING: The database migration script that adds the 'extensions' table for
  292. realtime had to be modified due to an error when installing for MySQL. The
  293. 'extensions' table's 'id' column was changed to be a primary key. This could
  294. potentially cause a migration problem. If so, it may be necessary to
  295. manually alter the affected table/column to bring it back in line with the
  296. migration scripts.
  297. - New columns have been added to realtime tables for 'support_path' on
  298. ps_registrations and ps_aors and for 'path' on ps_contacts for the new
  299. SIP Path support in chan_pjsip.
  300. - The following new tables have been added for pjsip realtime: 'ps_systems',
  301. 'ps_globals', 'ps_tranports', 'ps_registrations'.
  302. - The following columns were added to the 'ps_aors' realtime table:
  303. 'maximum_expiration', 'outbound_proxy', and 'support_path'.
  304. - The following columns were added to the 'ps_contacts' realtime table:
  305. 'outbound_proxy' and 'path'.
  306. - New columns have been added to the ps_endpoints realtime table for the
  307. 'media_address', 'redirect_method' and 'set_var' options. Also the
  308. 'mwi_fromuser' column was renamed to 'mwi_from_user'.
  309. - A new column was added to the 'ps_globals' realtime table for the 'debug'
  310. option.
  311. From 11 to 12:
  312. There are many significant architectural changes in Asterisk 12. It is
  313. recommended that you not only read through this document for important
  314. changes that affect an upgrade, but that you also read through the CHANGES
  315. document in depth to better understand the new options available to you.
  316. Additional information on the architectural changes made in Asterisk can be
  317. found on the Asterisk wiki (https://wiki.asterisk.org)
  318. Of particular note, the following systems in Asterisk underwent significant
  319. changes. Documentation for the changes and a specification for their
  320. behavior in Asterisk 12 is also available on the Asterisk wiki.
  321. - AMI: Many events were changed, and the semantics of channels and bridges
  322. were defined. In particular, how channels and bridges behave under
  323. transfer scenarios and situations involving multiple parties has
  324. changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ
  325. for more information.
  326. - CDR: CDR logic was extracted from the many locations it existed in across
  327. Asterisk and implemented as a consumer of Stasis message bus events.
  328. As a result, consistency of records has improved significantly and the
  329. behavior of CDRs in transfer scenarios has been defined in the CDR
  330. specification. However, significant behavioral changes in CDRs resulted
  331. from the transition. The most significant change is the addition of
  332. CDR entries when a channel who is the Party A in a CDR leaves a bridge.
  333. See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.
  334. - CEL: Much like CDRs, CEL was removed from the many locations it existed in
  335. across Asterisk and implemented as a consumer of Stasis message bus
  336. events. It now closely follows the Bridging API model of channels and
  337. bridges, and has a much closer consistency of conveyed events as AMI.
  338. For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.
  339. Build System:
  340. - Removed the CHANNEL_TRACE development mode build option. Certain aspects of
  341. the CHANNEL_TRACE build option were incompatible with the new bridging
  342. architecture.
  343. - Asterisk now depends on libjansson, libuuid and optionally (but recommended)
  344. libxslt and uriparser.
  345. - The new SIP stack and channel driver uses a particular version of PJSIP.
  346. Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
  347. configuring and installing PJSIP for use with Asterisk.
  348. AgentLogin and chan_agent:
  349. - Along with AgentRequest, this application has been modified to be a
  350. replacement for chan_agent. The chan_agent module and the Agent channel
  351. driver have been removed from Asterisk, as the concept of a channel driver
  352. proxying in front of another channel driver was incompatible with the new
  353. architecture (and has had numerous problems through past versions of
  354. Asterisk). The act of a channel calling the AgentLogin application places the
  355. channel into a pool of agents that can be requested by the AgentRequest
  356. application. Note that this application, as well as all other agent related
  357. functionality, is now provided by the app_agent_pool module.
  358. - This application no longer performs agent authentication. If authentication
  359. is desired, the dialplan needs to perform this function using the
  360. Authenticate or VMAuthenticate application or through an AGI script before
  361. running AgentLogin.
  362. - The agents.conf schema has changed. Rather than specifying agents on a
  363. single line in comma delineated fashion, each agent is defined in a separate
  364. context. This allows agents to use the power of context templates in their
  365. definition.
  366. - A number of parameters from agents.conf have been removed. This includes
  367. maxloginretries, autologoffunavail, updatecdr, goodbye, group, recordformat,
  368. urlprefix, and savecallsin. These options were obsoleted by the move from
  369. a channel driver model to the bridging/application model provided by
  370. app_agent_pool.
  371. - The AGENTUPDATECDR channel variable has also been removed, for the same
  372. reason as the updatecdr option.
  373. - The endcall and enddtmf configuration options are removed. Use the
  374. dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
  375. channel before calling AgentLogin.
  376. AgentMonitorOutgoing
  377. - This application has been removed. It was a holdover from when
  378. AgentCallbackLogin was removed.
  379. Answer
  380. - It is no longer possible to bypass updating the CDR when answering a
  381. channel. CDRs are based on the channel state and will be updated when
  382. the channel is Answered.
  383. ControlPlayback
  384. - The channel variable CPLAYBACKSTATUS may now return the value
  385. 'REMOTESTOPPED' when playback is stopped by an external entity.
  386. DISA
  387. - This application now has a dependency on the app_cdr module. It uses this
  388. module to hide the CDR created prior to execution of the DISA application.
  389. DumpChan:
  390. - The output of DumpChan no longer includes the DirectBridge or IndirectBridge
  391. fields. Instead, if a channel is in a bridge, it includes a BridgeID field
  392. containing the unique ID of the bridge that the channel happens to be in.
  393. ForkCDR:
  394. - Nearly every parameter in ForkCDR has been updated and changed to reflect
  395. the changes in CDRs. Please see the documentation for the ForkCDR
  396. application, as well as the CDR specification on the Asterisk wiki.
  397. NoCDR:
  398. - The NoCDR application has been deprecated. Please use the CDR_PROP function
  399. to disable CDRs on a channel.
  400. ParkAndAnnounce:
  401. - The app_parkandannounce module has been removed. The application
  402. ParkAndAnnounce is now provided by the res_parking module. See the
  403. Parking changes for more information.
  404. ResetCDR:
  405. - The 'w' and 'a' options have been removed. Dispatching CDRs to registered
  406. backends occurs on an as-needed basis in order to preserve linkedid
  407. propagation and other needed behavior.
  408. - The 'e' option is deprecated. Please use the CDR_PROP function to enable
  409. CDRs on a channel that they were previously disabled on.
  410. - The ResetCDR application is no longer a part of core Asterisk, and instead
  411. is now delivered as part of app_cdr.
  412. Queues:
  413. - Queue strategy rrmemory now has a predictable order similar to strategy
  414. rrordered. Members will be called in the order that they are added to the
  415. queue.
  416. - Removed the queues.conf check_state_unknown option. It is no longer
  417. necessary.
  418. - It is now possible to play the Queue prompts to the first user waiting in a
  419. call queue. Note that this may impact the ability for agents to talk with
  420. users, as a prompt may still be playing when an agent connects to the user.
  421. This ability is disabled by default but can be enabled on an individual
  422. queue using the 'announce-to-first-user' option.
  423. - The configuration options eventwhencalled and eventmemberstatus have been
  424. removed. As a result, the AMI events QueueMemberStatus, AgentCalled,
  425. AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
  426. sent. The "Variable" fields will also no longer exist on the Agent* events.
  427. These events can be filtered out from a connected AMI client using the
  428. eventfilter setting in manager.conf.
  429. - The queue log now differentiates between blind and attended transfers. A
  430. blind transfer will result in a BLINDTRANSFER message with the destination
  431. context and extension. An attended transfer will result in an
  432. ATTENDEDTRANSFER message. This message will indicate the method by which
  433. the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
  434. for running an application on a bridge or channel, or "LINK" for linking
  435. two bridges together with local channels. The queue log will also now detect
  436. externally initiated blind and attended transfers and record the transfer
  437. status accordingly.
  438. - When performing queue pause/unpause on an interface without specifying an
  439. individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
  440. least one member of any queue exists for that interface.
  441. SetAMAFlags
  442. - This application is deprecated in favor of CHANNEL(amaflags).
  443. VoiceMail:
  444. - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
  445. system as mailbox@context. The rest of the system cannot add @default
  446. to mailbox identifiers for app_voicemail that do not specify a context
  447. any longer. It is a mailbox identifier format that should only be
  448. interpreted by app_voicemail.
  449. - The voicemail.conf configuration file now has an 'alias' configuration
  450. parameter for use with the Directory application. The voicemail realtime
  451. database table schema has also been updated with an 'alias' column. Systems
  452. using voicemail with realtime should update their schemas accordingly.
  453. Channel Drivers:
  454. - When a channel driver is configured to enable jiterbuffers, they are now
  455. applied unconditionally when a channel joins a bridge. If a jitterbuffer
  456. is already set for that channel when it enters, such as by the JITTERBUFFER
  457. function, then the existing jitterbuffer will be used and the one set by
  458. the channel driver will not be applied.
  459. chan_bridge
  460. - chan_bridge is removed and its functionality is incorporated into ConfBridge
  461. itself.
  462. chan_dahdi:
  463. - Analog port dialing and deferred DTMF dialing for PRI now distinguishes
  464. between 'w' and 'W'. The 'w' pauses dialing for half a second. The 'W'
  465. pauses dialing for one second.
  466. - The default for inband_on_proceeding has changed to no.
  467. - The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
  468. A range of channels can be specified to be destroyed. Note that this command
  469. should only be used if you understand the risks it entails.
  470. - The script specified by the chan_dahdi.conf mwimonitornotify option now gets
  471. the exact configured mailbox name. For app_voicemail mailboxes this is
  472. mailbox@context.
  473. - Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
  474. chan_local:
  475. - The /b option has been removed.
  476. - chan_local moved into the system core and is no longer a loadable module.
  477. chan_sip:
  478. - The 'callevents' parameter has been removed. Hold AMI events are now raised
  479. in the core, and can be filtered out using the 'eventfilter' parameter
  480. in manager.conf.
  481. - Dynamic realtime tables for SIP Users can now include a 'path' field. This
  482. will store the path information for that peer when it registers. Realtime
  483. tables can also use the 'supportpath' field to enable Path header support.
  484. - LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
  485. objectIdentifier. This maps to the supportpath option in sip.conf.
  486. Core:
  487. - Masquerades as an operation inside Asterisk have been effectively hidden
  488. by the migration to the Bridging API. As such, many 'quirks' of Asterisk
  489. no longer occur. This includes renaming of channels, "<ZOMBIE>" channels,
  490. dropping of frame/audio hooks, and other internal implementation details
  491. that users had to deal with. This fundamental change has large implications
  492. throughout the changes documented for this version. For more information
  493. about the new core architecture of Asterisk, please see the Asterisk wiki.
  494. - The following channel variables have changed behavior which is described in
  495. the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
  496. ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
  497. AMI (Asterisk Manager Interface):
  498. - Version 1.4 - The details of what happens to a channel when a masquerade
  499. happens (transfers, parking, etc) have changed.
  500. - The Masquerade event now includes the Uniqueid's of the clone and original
  501. channels.
  502. - Channels no longer swap Uniqueid's as a result of the masquerade.
  503. - Instead of a shell game of renames, there's now a single rename, appending
  504. <ZOMBIE> to the name of the original channel.
  505. - *Major* changes were made to both the syntax as well as the semantics of the
  506. AMI protocol. In particular, AMI events have been substantially modified
  507. and improved in this version of Asterisk. The major event changes are listed
  508. below.
  509. - NewPeerAccount has been removed. NewAccountCode is raised instead.
  510. - Reload events have been consolidated and standardized.
  511. - ModuleLoadReport has been removed.
  512. - FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes
  513. app_fax and res_fax events.
  514. - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.
  515. - JabberEvent has been removed.
  516. - Hold is now in the core and will now raise Hold and Unhold events.
  517. - Join is now QueueCallerJoin.
  518. - Leave is now QueueCallerLeave.
  519. - Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.
  520. - ChannelUpdate has been removed.
  521. - Local channel optimization is now conveyed via LocalOptimizationBegin and
  522. LocalOptimizationEnd.
  523. - BridgeAction and BridgeExec have been removed.
  524. - BlindTransfer and AttendedTransfer events were added.
  525. - Dial is now DialBegin and DialEnd.
  526. - DTMF is now DTMFBegin and DTMFEnd.
  527. - Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and
  528. BridgeDestroy
  529. - MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop
  530. - AGIExec is now AGIExecStart and AGIExecEnd
  531. - AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd
  532. - The 'MCID' AMI event now publishes a channel snapshot when available and
  533. its non-channel-snapshot parameters now use either the "MCallerID" or
  534. 'MConnectedID' prefixes with Subaddr*, Name*, and Num* suffixes instead
  535. of 'CallerID' and 'ConnectedID' to avoid confusion with similarly named
  536. parameters in the channel snapshot.
  537. - The 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
  538. renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
  539. - All AMI events now contain a 'SystemName' field, if available.
  540. - Local channel information in events is now prefixed with 'LocalOne' and
  541. 'LocalTwo'. This replaces the suffix of '1' and '2' for the two halves of
  542. the Local channel. This affects the 'LocalBridge', 'LocalOptimizationBegin',
  543. and 'LocalOptimizationEnd' events.
  544. - The 'RTCPSent'/'RTCPReceived' events have been significantly modified from
  545. previous versions. They now report all SR/RR packets sent/received, and
  546. have been restructured to better reflect the data sent in a SR/RR. In
  547. particular, the event structure now supports multiple report blocks.
  548. - The deprecated use of | (pipe) as a separator in the channelvars setting in
  549. manager.conf has been removed.
  550. - The SIP SIPqualifypeer action now sends a response indicating it will qualify
  551. a peer once a peer has been found to qualify. Once the qualify has been
  552. completed it will now issue a SIPqualifypeerdone event.
  553. - The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
  554. in a future release. Please use the common 'Exten' field instead.
  555. - The AMI events 'ParkedCall', 'ParkedCallTimeOut', 'ParkedCallGiveUp', and
  556. 'UnParkedCall' have changed significantly in the new res_parking module.
  557. - The 'Channel' and 'From' headers are gone. For the channel that was parked
  558. or is coming out of parking, a 'Parkee' channel snapshot is issued and it
  559. has a number of fields associated with it. The old 'Channel' header relayed
  560. the same data as the new 'ParkeeChannel' header.
  561. - The 'From' field was ambiguous and changed meaning depending on the event.
  562. for most of these, it was the name of the channel that parked the call
  563. (the 'Parker'). There is no longer a header that provides this channel name,
  564. however the 'ParkerDialString' will contain a dialstring to redial the
  565. device that parked the call.
  566. - On UnParkedCall events, the 'From' header would instead represent the
  567. channel responsible for retrieving the parkee. It receives a channel
  568. snapshot labeled 'Retriever'. The 'from' field is is replaced with
  569. 'RetrieverChannel'.
  570. - Lastly, the 'Exten' field has been replaced with 'ParkingSpace'.
  571. - The AMI event 'Parkinglot' (response to 'Parkinglots' command) in a similar
  572. fashion has changed the field names 'StartExten' and 'StopExten' to
  573. 'StartSpace' and 'StopSpace' respectively.
  574. - The AMI 'Status' response event to the AMI Status action replaces the
  575. 'BridgedChannel' and 'BridgedUniqueid' headers with the 'BridgeID' header to
  576. indicate what bridge the channel is currently in.
  577. CDR (Call Detail Records)
  578. - Significant changes have been made to the behavior of CDRs. The CDR engine
  579. was effectively rewritten and built on the Stasis message bus. For a full
  580. definition of CDR behavior in Asterisk 12, please read the specification
  581. on the Asterisk wiki (wiki.asterisk.org).
  582. - CDRs will now be created between all participants in a bridge. For each
  583. pair of channels in a bridge, a CDR is created to represent the path of
  584. communication between those two endpoints. This lets an end user choose who
  585. to bill for what during bridge operations with multiple parties.
  586. - The duration, billsec, start, answer, and end times now reflect the times
  587. associated with the current CDR for the channel, as opposed to a cumulative
  588. measurement of all CDRs for that channel.
  589. - CDR backends can no longer be unloaded while billing data is in flight. This
  590. helps to prevent loss of billing data during restarts and shutdowns.
  591. CEL:
  592. - The Uniqueid field for a channel is now a stable identifier, and will not
  593. change due to transfers, parking, etc.
  594. - CEL has undergone significant rework in Asterisk 12, and is now built on the
  595. Stasis message bus. Please see the specification for CEL on the Asterisk
  596. wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
  597. information. A summary of the affected events is below:
  598. - BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
  599. CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
  600. events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.
  601. - BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and
  602. additional information in the extra string field.
  603. Dialplan Functions:
  604. - Certain dialplan functions have been marked as 'dangerous', and may only be
  605. executed from the dialplan. Execution from extenal sources (AMI's GetVar and
  606. SetVar actions; etc.) may be inhibited by setting live_dangerously in the
  607. [options] section of asterisk.conf to no. SHELL(), channel locking, and
  608. direct file read/write functions are marked as dangerous. DB_DELETE() and
  609. REALTIME_DESTROY() are marked as dangerous for reads, but can now safely
  610. accept writes (which ignore the provided value).
  611. - The default value for live_dangerously was changed from yes (in Asterisk 11
  612. and earlier) to no (in Asterisk 12 and greater).
  613. Dialplan:
  614. - All channel and global variable names are evaluated in a case-sensitive
  615. manner. In previous versions of Asterisk, variables created and evaluated in
  616. the dialplan were evaluated case-insensitively, but built-in variables and
  617. variable evaluation done internally within Asterisk was done
  618. case-sensitively.
  619. - Asterisk has always had code to ignore dash '-' characters that are not
  620. part of a character set in the dialplan extensions. The code now
  621. consistently ignores these characters when matching dialplan extensions.
  622. - BRIDGE_FEATURES channel variable is now casesensitive for feature letter
  623. codes. Uppercase variants apply them to the calling party while lowercase
  624. variants apply them to the called party.
  625. Features:
  626. - The features.conf [applicationmap] <FeatureName> ActivatedBy option is
  627. no longer honored. The feature is always activated by the channel that has
  628. DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set
  629. different values of DYNAMIC_FEATURES on the channels
  630. - Executing a dynamic feature on the bridge peer in a multi-party bridge will
  631. execute it on all peers of the activating channel.
  632. - There is no longer an explicit 'features reload' CLI command. Features can
  633. still be reloaded using 'module reload features'.
  634. - It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in
  635. features.c for atxferdropcall=no to work properly. This option now just
  636. works.
  637. Parking:
  638. - Parking has been extracted from the Asterisk core as a loadable module,
  639. res_parking.
  640. - Configuration is found in res_parking.conf. It is no longer supported in
  641. features.conf
  642. - The arguments for the Park, ParkedCall, and ParkAndAnnounce applications
  643. have been modified significantly. See the application documents for
  644. specific details.
  645. - Numerous changes to Parking related applications, AMI and CLI commands and
  646. internal inter-workings have been made. Please read the CHANGES file for
  647. the detailed list.
  648. Security Events Framework:
  649. - Security Event timestamps now use ISO 8601 formatted date/time instead of
  650. the "seconds-microseconds" format that it was using previously.
  651. AGENT:
  652. - The password option has been disabled, as the AgentLogin application no
  653. longer provides authentication.
  654. AUDIOHOOK_INHERIT:
  655. - Due to changes in the Asterisk core, this function is no longer needed to
  656. preserve a MixMonitor on a channel during transfer operations and dialplan
  657. execution. It is effectively obsolete.
  658. CDR: (function)
  659. - The 'amaflags' and 'accountcode' attributes for the CDR function are
  660. deprecated. Use the CHANNEL function instead to access these attributes.
  661. - The 'l' option has been removed. When reading a CDR attribute, the most
  662. recent record is always used. When writing a CDR attribute, all non-finalized
  663. CDRs are updated.
  664. - The 'r' option has been removed, for the same reason as the 'l' option.
  665. - The 's' option has been removed, as LOCKED semantics no longer exist in the
  666. CDR engine.
  667. VMCOUNT:
  668. - Mailboxes defined by app_voicemail MUST be referenced by the rest of the
  669. system as mailbox@context. The rest of the system cannot add @default
  670. to mailbox identifiers for app_voicemail that do not specify a context
  671. any longer. It is a mailbox identifier format that should only be
  672. interpreted by app_voicemail.
  673. res_rtp_asterisk:
  674. - ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
  675. them, an Asterisk-specific version of PJSIP needs to be installed.
  676. Tarballs are available from https://github.com/asterisk/pjproject/tags/.
  677. ===========================================================
  678. ===========================================================