CHANGES 52 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909
  1. ======================================================================
  2. ===
  3. === This file documents the new and/or enhanced functionality added in
  4. === the Asterisk versions listed below. This file does NOT include
  5. === changes in behavior that would not be backwards compatible with
  6. === previous versions; for that information see the UPGRADE.txt file
  7. === and the other UPGRADE files for older releases.
  8. ===
  9. ======================================================================
  10. SIP changes
  11. -----------
  12. * Added a new option "prematuremedia" that defaults to "no". If you turn this
  13. option on, chan_sip will not automatically initiate early media if it receives
  14. audio from the incoming channel before there's been a progress indication.
  15. ----------------------------------------------------------------------------------
  16. --- Functionality changes from Asterisk 1.6.1.1 to Asterisk 1.6.1.2 -------------
  17. ----------------------------------------------------------------------------------
  18. SIP Changes
  19. -----------
  20. * Added a new 'ignoresdpversion' option to sip.conf. When this is enabled
  21. (either globally or for a specific peer), chan_sip will treat any SDP data
  22. it receives as new data and update the media stream accordingly. By
  23. default, Asterisk will only modify the media stream if the SDP session
  24. version received is different from the current SDP session version. This
  25. option is required to interoperate with devices that have non-standard SDP
  26. session version implementations (observed with Microsoft OCS). This option
  27. is disabled by default. In addition, this behavior is automatic when the SDP received
  28. is in response to a T.38 re-INVITE that Asterisk initiated. In this situation,
  29. since the call will fail if Asterisk does not process the incoming SDP, Asterisk
  30. will accept the SDP even if the SDP version number is not properly incremented,
  31. but will generate a warning in the log indicating that the SIP peer that sent
  32. the SDP should have the 'ignoresdpversion' option set.
  33. ------------------------------------------------------------------------------
  34. --- Functionality changes from Asterisk 1.6.0 to Asterisk 1.6.1 -------------
  35. ------------------------------------------------------------------------------
  36. Device State Handling
  37. ---------------------
  38. * The event infrastructure in Asterisk got another big update to help support
  39. distributed events. It currently supports distributed device state and
  40. distributed Voicemail MWI (Message Waiting Indication). A new module has
  41. been merged, res_ais, which facilitates communicating events between servers.
  42. It uses the SAForum AIS (Service Availability Forum Application Interface
  43. Specification) CLM (Cluster Management) and EVT (Event) services to maintain
  44. a cluster of Asterisk servers, and to share events between them. For more
  45. information on setting this up, see doc/distributed_devstate.txt.
  46. Dialplan Functions
  47. ------------------
  48. * Added a new dialplan function, AST_CONFIG(), which allows you to access
  49. variables from an Asterisk configuration file.
  50. * The JACK_HOOK function now has a c() option to supply a custom client name.
  51. * Added two new dialplan functions from libspeex for audio gain control and
  52. denoise, AGC() and DENOISE(). Both functions can be applied to the tx and
  53. rx directions of a channel from the dialplan.
  54. * The SMDI_MSG_RETRIEVE function now has the ability to search for SMDI messages
  55. based on other parameters. The default is still to search based on the
  56. forwarding station ID. However, there are new options that allow you to search
  57. based on the message desk terminal ID, or the message desk number.
  58. * TIMEOUT() has been modified to be accurate down to the millisecond.
  59. * ENUM*() functions now include the following new options:
  60. - 'u' returns the full URI and does not strip off the URI-scheme.
  61. - 's' triggers ISN specific rewriting
  62. - 'i' looks for branches into an Infrastructure ENUM tree
  63. - 'd' for a direct DNS lookup without any flipping of digits.
  64. * TXCIDNAME() has a new zone-suffix parameter (which defaults to 'e164.arpa')
  65. * CHANNEL() now has options for the maximum, minimum, and standard or normal
  66. deviation of jitter, rtt, and loss for a call using chan_sip.
  67. DAHDI channel driver (chan_dahdi) Changes
  68. ----------------------------------------
  69. * Channels can now be configured using named sections in chan_dahdi.conf, just
  70. like other channel drivers, including the use of templates.
  71. * The default for pridialplan has changed from 'national' to 'unknown'.
  72. PBX Changes
  73. -----------
  74. * It is now possible to specify a pattern match as a hint. Once a phone subscribes
  75. to something that matches the pattern a hint will be created using the contents
  76. and variables evaluated.
  77. * Dialplan matching has been extended to allow an extension to return to the
  78. PBX core to wait for more digits. This is done by using the new dialplan
  79. application called "Incomplete". This will permit a whole new level of
  80. extension control, by giving the administrator more control over early
  81. matches employing one of the short-circuit pattern match operators. Note
  82. that custom applications can trigger this same behavior by returning the
  83. special value AST_PBX_INCOMPLETE.
  84. The dial() application
  85. ----------------------
  86. * Dial has a new option: F(context^extension^pri), which permits a callee to
  87. continue in the dialplan, at the specified label, if the caller hangs up.
  88. * The Dial() application no longer copies the language used by the caller to the callee's
  89. channel. If you desire for the caller's channel's language to be used for file playback
  90. to the callee, then the file specified may be prepended with "${CHANNEL(language)}/" .
  91. The chanspy() application
  92. -------------------------
  93. * ChanSpy and ExtenSpy have a new option, 's' which suppresses speaking the
  94. technology name (e.g. SIP, IAX, etc) of the channel being spied on.
  95. * Chanspy has a new option, 'B', which can be used to "barge" on a call. This is
  96. like the pre-existing whisper mode, except that the spy can also talk to the
  97. participant on the bridged channel as well.
  98. * Chanspy has a new option, 'n', which will allow for the spied-on party's name
  99. to be spoken instead of the channel name or number. For more information on the
  100. use of this option, issue the command "core show application ChanSpy" from the
  101. Asterisk CLI.
  102. * Chanspy has a new option, 'd', which allows the spy to use DTMF to swap between
  103. spy modes. Use of this feature overrides the typical use of numeric DTMF. In other
  104. words, if using the 'd' option, it is not possible to enter a number to append to
  105. the first argument to Chanspy(). Pressing 4 will change to spy mode, pressing 5 will
  106. change to whisper mode, and pressing 6 will change to barge mode.
  107. Other Application Changes
  108. -------------------------
  109. * Directory now permits both first and last names to be matched at the same
  110. time. In addition, the number of digits to enter of the name can be set in
  111. the arguments to Directory; previously, you could enter only 3, regardless
  112. of how many names are in your company. For large companies, this should be
  113. quite helpful.
  114. * Voicemail now permits a mailbox setting to wrap around from first to last
  115. messages, if the "messagewrap" option is set to a true value.
  116. * Voicemail now permits an external script to be run, for password validation.
  117. The script should output "VALID" or "INVALID" on stdout, depending upon the
  118. wish to validate or invalidate the password given. Arguments are:
  119. "mailbox" "context" "oldpass" "newpass". See the sample voicemail.conf for
  120. more details
  121. * The voicemail externnotify script now accepts an additional (last) parameter
  122. containing the number of urgent messages in the INBOX.
  123. * The Jack application now has a c() option to supply a custom client name.
  124. * ExternalIVR now takes several options that affect the way it performs, as
  125. well as having several new commands. Please see doc/externalivr.txt for the
  126. complete documentation.
  127. * Added ability to communicate over a TCP socket instead of forking a child process for the
  128. ExternalIVR application.
  129. * ChanIsAvail has a new option, 'a', which will return all available channels instead
  130. of just the first one if you give the function more then one channel to check.
  131. * PrivacyManager now takes an option where you can specify a context where the
  132. given number will be matched. This way you have more control over who is allowed
  133. and it stops the people who blindly enter 10 digits.
  134. * ForkCDR has new options: 'a' updates the answer time on the new CDR; 'A' locks
  135. answer times, disposition, on orig CDR against updates; 'D' Copies the disposition
  136. from the orig CDR to the new CDR after reset; 'e' sets the 'end' time on the
  137. original CDR; 'R' prevents the new CDR from being reset; 's(var=val)' adds/changes
  138. the 'var' variable on the original CDR; 'T' forces ast_cdr_end(), ast_cdr_answer(),
  139. obey the LOCKED flag on cdr's in the chain, and also the ast_cdr_setvar() func.
  140. * SendImage() no longer hangs up the channel on error; instead, it sets the
  141. status variable SENDIMAGESTATUS to one of 'SUCCESS', 'FAILURE', or
  142. 'UNSUPPORTED'. This change makes SendImage() more consistent with other
  143. applications.
  144. * Park has a new option, 's', which silences the announcement of the parking space number.
  145. * A non-numeric, zero, or negative timeout specified to Dial() will now be interpreted as
  146. invalid input and will be assumed to mean that no timeout is desired.
  147. SIP Changes
  148. -----------
  149. * Added DNS manager support to registrations for peers referencing peer entries.
  150. DNS manager runs in the background which allows DNS lookups to be run asynchronously
  151. as well as periodically updating the IP address. These properties allow for
  152. better performance as well as recovery in the event of an IP change.
  153. * Performance improvements via using hash tables (astobj2) and doubly-linked lists to improve
  154. load/reload of large numbers of peers/users by ~40x (for large lists of peers.
  155. Initially, we saw 4x improvement in call setup/destruction, but at the time
  156. of merging, this gain has disappeared; further research will be done to try
  157. and restore this performance improvement. Astobj2 refcounting is now used
  158. for users, peers, and dialogs. Users are encouraged to assist in regression
  159. testing and problem reporting!
  160. * Added ability to specify registration expiry time on a per registration basis in
  161. the register line.
  162. * Added support for Realtime Text redundancy - T140 RED - in T.140 to
  163. prevent text loss due to lost packets.
  164. * Added t38pt_usertpsource option. See sip.conf.sample for details.
  165. * Added SIPnotify AMI command, for sending arbitrary SIP notify commands.
  166. * 'sip show peers' and 'sip show users' display their entries sorted in
  167. alphabetical order, as opposed to the order they were in, in the config
  168. file or database.
  169. * Videosupport now supports an additional option, "always", which always sets
  170. up video RTP ports, even on clients that don't support it. This helps with
  171. callfiles and certain transfers to ensure that if two video phones are
  172. connected, they will always share video feeds.
  173. IAX Changes
  174. -----------
  175. * Existing DNS manager lookups extended to check for SRV records.
  176. * IAX2 encryption support has been improved to support periodic key rotation
  177. within a call for enhanced security. The option "keyrotate" has been
  178. provided to disable this functionality to preserve backwards compatibility
  179. with older versions of IAX2 that do not support key rotation.
  180. CLI Changes
  181. -----------
  182. * New CLI command, "config reload <file.conf>" which reloads any module that
  183. references that particular configuration file. Also added "config list"
  184. which shows which configuration files are in use.
  185. * New CLI commands, "pri show version" and "ss7 show version" that will
  186. display which version of libpri and libss7 are being used, respectively.
  187. A new API call was added so trunk will now have to be compiled against
  188. a versions of libpri and libss7 that have them or it will not know that
  189. these libraries exist.
  190. * The commands "core show globals", "core set global" and "core set chanvar" has
  191. been deprecated in favor of the more semanticly correct "dialplan show globals",
  192. "dialplan set chanvar" and "dialplan set global".
  193. * New CLI command "dialplan show chanvar" to list all variables associated
  194. with a given channel.
  195. DNS manager changes
  196. -------------------
  197. * Addresses managed by DNS manager now can check to see if there is a DNS
  198. SRV record for a given domain and will use that hostname/port if present.
  199. AMI - The manager (TCP/TLS/HTTP)
  200. --------------------------------
  201. * The Status action now takes an optional list of variables to display
  202. along with channel status.
  203. ODBC Changes
  204. ------------
  205. * res_odbc no longer has a limit of 1023 total possible unshared connections,
  206. as some people were running into this limit. This limit has been increased
  207. to 4.2 billion.
  208. Queue changes
  209. -------------
  210. * The TRANSFER queue log entry now includes the caller's original position in
  211. the transferred-from queue.
  212. * A new configuration option, "timeoutpriority" has been added. Please see the section
  213. labeled "QUEUE TIMING OPTIONS" in configs/queues.conf.sample for a detailed explanation
  214. of the option as well as an explanation about timeout options in general
  215. Realtime changes
  216. ----------------
  217. * Several (ODBC, Postgres, MySQL, SQLite) realtime drivers have been given
  218. adaptive capabilities. What this means in practical terms is that if your
  219. realtime table lacks critical fields, Asterisk will now emit warnings to
  220. that effect. Also, some of the realtime drivers have the ability (if
  221. configured) to automatically add those columns to the table with the
  222. correct type and length.
  223. Miscellaneous
  224. -------------
  225. * The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND can now be set using
  226. the 'setvar' option to cause a given audio file to be played upon completion
  227. of an attended transfer. Currently it works for DAHDI, IAX2, SIP, and
  228. Skinny channels only.
  229. * You can now compile Asterisk against the Hoard Memory Allocator, see doc/hoard.txt
  230. for more information.
  231. * Config file variables may now be appended to, by using the '+=' append
  232. operator. This is most helpful when working with long SQL queries in
  233. func_odbc.conf, as the queries no longer need to be specified on a single
  234. line.
  235. ------------------------------------------------------------------------------
  236. --- Functionality changes from Asterisk 1.4.X to Asterisk 1.6.0 -------------
  237. ------------------------------------------------------------------------------
  238. AMI - The manager (TCP/TLS/HTTP)
  239. --------------------------------
  240. * Manager has undergone a lot of changes, all of them documented
  241. in doc/manager_1_1.txt
  242. * Manager version has changed to 1.1
  243. * Added a new action 'CoreShowChannels' to list currently defined channels
  244. and some information about them.
  245. * Added a new action 'SIPshowregistry' to list SIP registrations.
  246. * Added TLS support for the manager interface and HTTP server
  247. * Added the URI redirect option for the built-in HTTP server
  248. * The output of CallerID in Manager events is now more consistent.
  249. CallerIDNum is used for number and CallerIDName for name.
  250. * Enable https support for builtin web server.
  251. See configs/http.conf.sample for details.
  252. * Added a new action, GetConfigJSON, which can return the contents of an
  253. Asterisk configuration file in JSON format. This is intended to help
  254. improve the performance of AJAX applications using the manager interface
  255. over HTTP.
  256. * SIP and IAX manager events now use "ChannelType" in all cases where we
  257. indicate channel driver. Previously, we used a mixture of "Channel"
  258. and "ChannelDriver" headers.
  259. * Added a "Bridge" action which allows you to bridge any two channels that
  260. are currently active on the system.
  261. * Added a "ListAllVoicemailUsers" action that allows you to get a list of all
  262. the voicemail users setup.
  263. * Added 'DBDel' and 'DBDelTree' manager commands.
  264. * cdr_manager now reports events via the "cdr" level, separating it from
  265. the very verbose "call" level.
  266. * Manager users are now stored in memory. If you change the manager account
  267. list (delete or add accounts) you need to reload manager.
  268. * Added Masquerade manager event for when a masquerade happens between
  269. two channels.
  270. * Added "manager reload" command for the CLI
  271. * Lots of commands that only provided information are now allowed under the
  272. Reporting privilege, instead of only under Call or System.
  273. * The IAX* commands now require either System or Reporting privilege, to
  274. mirror the privileges of the SIP* commands.
  275. * Added ability to retrieve list of categories in a config file.
  276. * Added ability to retrieve the content of a particular category.
  277. * Added ability to empty a context.
  278. * Created new action to create a new file.
  279. * Updated delete action to allow deletion by line number with respect to category.
  280. * Added new action insert to add new variable to category at specified line.
  281. * Updated action newcat to allow new category to be inserted in file above another
  282. existing category.
  283. * Added new event "JitterBufStats" in the IAX2 channel
  284. * Originate now requires the Originate privilege and, if you want to call out
  285. to a subshell, it requires the System privilege, as well. This was done to
  286. enhance manager security.
  287. * Originate now accepts codec settings with "Codecs: alaw, ulaw, h264"
  288. * New command: Atxfer. See doc/manager_1_1.txt for more details or
  289. manager show command Atxfer from the CLI
  290. Dialplan functions
  291. ------------------
  292. * Added the DEVICE_STATE() dialplan function which allows retrieving any device
  293. state in the dialplan, as well as creating custom device states that are
  294. controllable from the dialplan.
  295. * Extend CALLERID() function with "pres" and "ton" parameters to
  296. fetch string representation of calling number presentation indicator
  297. and numeric representation of type of calling number value.
  298. * MailboxExists converted to dialplan function
  299. * A new option to Dial() for telling IP phones not to count the call
  300. as "missed" when dial times out and cancels.
  301. * Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan
  302. mutex. No deadlocks are possible, as LOCK() only allows a single lock to be
  303. held for any given channel. Also, locks are automatically freed when a
  304. channel is hung up.
  305. * Added HINT() dialplan function that allows retrieving hint information.
  306. Hints are mappings between extensions and devices for the sake of
  307. determining the state of an extension. This function can retrieve the list
  308. of devices or the name associated with a hint.
  309. * Added EXTENSION_STATE() dialplan function which allows retrieving the state
  310. of any extension.
  311. * Added SYSINFO() dialplan function which allows retrieval of system information
  312. * Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for
  313. the existence of a dialplan target.
  314. * Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to
  315. upper and lower case, respectively.
  316. * When bridging, Asterisk sets the BRIDGEPVTCALLID to the channel drivers unique
  317. ID for the call (not the Asterisk call ID or unique ID), provided that the
  318. channel driver supports this. For SIP, you get the SIP call-ID for the
  319. bridged channel which you can store in the CDR with a custom field.
  320. CLI Changes
  321. -----------
  322. * New CLI command "core show hint" (usage: core show hint <exten>)
  323. * New CLI command "core show settings"
  324. * Added 'core show channels count' CLI command.
  325. * Added the ability to set the core debug and verbose values on a per-file basis.
  326. * Added 'queue pause member' and 'queue unpause member' CLI commands
  327. * Ability to set process limits ("ulimit") without restarting Asterisk
  328. * Enhanced "agi debug" to print the channel name as a prefix to the debug
  329. output to make debugging on busy systems much easier.
  330. * New CLI commands "dialplan set extenpatternmatching true/false"
  331. * New CLI command: "core set chanvar" to set a channel variable from the CLI.
  332. * Added an easy way to execute Asterisk CLI commands at startup. Any commands
  333. listed in the startup_commands section of cli.conf will get executed.
  334. * Added a CLI command, "devstate change", which allows you to set custom device
  335. states from the func_devstate module that provides the DEVICE_STATE() function
  336. and handling of the "Custom:" devices.
  337. * New CLI command: "sip show sched" which shows all ast_sched entries for sip,
  338. sorted into the different possible callbacks, with the number of entries
  339. currently scheduled for each. Gives you a feel for how busy the sip channel
  340. driver is.
  341. SIP changes
  342. -----------
  343. * Added a new 'faxdetect=yes|no' configuration option to sip.conf. When this
  344. option is enabled, Asterisk will watch for a CNG tone in the incoming audio
  345. for a received call. If it is detected, the channel will jump to the
  346. 'fax' extension in the dialplan.
  347. * Improved NAT and STUN support.
  348. chan_sip now can use port numbers in bindaddr, externip and externhost
  349. options, as well as contact a STUN server to detect its external address
  350. for the SIP socket. See sip.conf.sample, 'NAT' section.
  351. * The default SIP useragent= identifier now includes the Asterisk version
  352. * A new option, match_auth_username in sip.conf changes the matching of incoming requests.
  353. If set, and the incoming request carries authentication info,
  354. the username to match in the users list is taken from the Digest header
  355. rather than from the From: field. This feature is considered experimental.
  356. * The "musiconhold" and "musicclass" settings in sip.conf are now removed,
  357. since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4
  358. * The "localmask" setting was removed in version 1.2 and the reminder about it
  359. being removed is now also removed.
  360. * A new option "busylevel" for setting a level of calls where asterisk reports
  361. a device as busy, to separate it from call-limit. This value is also added
  362. to the SIP_PEER dialplan function.
  363. * A new realtime family called "sipregs" is now supported to store SIP registration
  364. data. If this family is defined, "sippeers" will be used for configuration and
  365. "sipregs" for registrations. If it's not defined, "sippeers" will be used for
  366. registration data, as before.
  367. * The SIPPEER function have new options for port address, call and pickup groups
  368. * Added support for T.140 realtime text in SIP/RTP
  369. * The "checkmwi" option has been removed from sip.conf, as it is no longer
  370. required due to the restructuring of how MWI is handled. See the descriptions
  371. in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf
  372. for more information.
  373. * Added rtpdest option to CHANNEL() dialplan function.
  374. * Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place.
  375. * SIP now adds a header to the CANCEL if the call was answered by another phone
  376. in the same dial command, or if the new c option in dial() is used.
  377. * The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically
  378. states it is not needed. For phones, however, that do require it the "registertrying" option
  379. has been added so it can be enabled.
  380. * A new option called "callcounter" (global/peer/user level) enables call counters needed
  381. for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously
  382. used to enable this functionality).
  383. * New settings for timer T1 and timer B on a global level or per device. This makes it
  384. possible to force timeout faster on non-responsive SIP servers. These settings are
  385. considered advanced, so don't use them unless you have a problem.
  386. * Added a dial string option to be able to set the To: header in an INVITE to any
  387. SIP uri.
  388. * Added a new global and per-peer option, qualifyfreq, which allows you to configure
  389. the qualify frequency.
  390. * Added SIP Session Timers support (RFC 4028). This prevents stuck SIP sessions that
  391. were not properly torn down due to network or endpoint failures during an established
  392. SIP session.
  393. * Added experimental TCP and TLS support for SIP. See doc/siptls.txt and
  394. configs/sip.conf.sample for more information on how it is used.
  395. * Added a new configuration option "authfailureevents" that enables manager events when
  396. a peer can't authenticate properly.
  397. * Added DNS manager support to registrations for peers not referencing a peer entry.
  398. IAX2 changes
  399. ------------
  400. * Added the trunkmaxsize configuration option to chan_iax2.
  401. * Added the srvlookup option to iax.conf
  402. * Added support for OSP. The token is set and retrieved through the CHANNEL()
  403. dialplan function.
  404. XMPP Google Talk/Jingle changes
  405. -------------------------------
  406. * Added the bindaddr option to gtalk.conf.
  407. Skinny changes
  408. -------------
  409. * Added skinny show device, skinny show line, and skinny show settings CLI commands.
  410. * Proper codec support in chan_skinny.
  411. * Added settings for IP and Ethernet QoS requests
  412. MGCP changes
  413. ------------
  414. * Added separate settings for media QoS in mgcp.conf
  415. Console Channel Driver changes
  416. ------------------------------
  417. * Added experimental support for video send & receive to chan_oss.
  418. This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as
  419. a video source.
  420. Phone channel changes (chan_phone)
  421. ----------------------------------
  422. * Added G729 passthrough support to chan_phone for Sigma Designs boards.
  423. H.323 channel Changes
  424. ---------------------
  425. * H323 remote hold notification support added (by NOTIFY message
  426. and/or H.450 supplementary service)
  427. Local channel changes
  428. ---------------------
  429. * The device state functionality in the Local channel driver has been updated
  430. to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed
  431. to just UNKNOWN if the extension exists.
  432. * Added jitterbuffer support for chan_local. This allows you to use the
  433. generic jitterbuffer on incoming calls going to Asterisk applications.
  434. For example, this would allow you to use a jitterbuffer for an incoming
  435. SIP call to Voicemail by putting a Local channel in the middle. This
  436. feature is enabled by using the 'j' option in the Dial string to the Local
  437. channel in conjunction with the existing 'n' option for local channels.
  438. * A 'b' option has been added which causes chan_local to return the actual channel
  439. that is behind it when queried. This is useful for transfer scenarios as the
  440. actual channel will be transferred, not the Local channel.
  441. Agent channel changes
  442. ----------------------
  443. * The ackcall and endcall options are now supplemented with options acceptdtmf
  444. and enddtmf. These allow for the DTMF keypress to be configurable. The options
  445. default to their old hard-coded values ('#' and '*' respectively) so this should
  446. not break any existing agent installations.
  447. DAHDI channel driver (chan_dahdi) Changes
  448. ----------------------------------------
  449. * SS7 support (via libss7 library)
  450. * In India, some carriers transmit CID via dtmf. Some code has been added
  451. that will handle some situations. The cidstart=polarity_IN choice has been added for
  452. those carriers that transmit CID via dtmf after a polarity change.
  453. * CID matching information is now shown when doing 'dialplan show'.
  454. * Added dahdi show version CLI command.
  455. * Added setvar support to chan_dahdi.conf channel entries.
  456. * Added two new options: mwimonitor and mwimonitornotify. These options allow
  457. you to enable MWI monitoring on FXO lines. When the MWI state changes,
  458. the script specified in the mwimonitornotify option is executed. An internal
  459. event indicating the new state of the mailbox is also generated, so that
  460. the normal MWI facilities in Asterisk work as usual.
  461. * Added signalling type 'auto', which attempts to use the same signalling type
  462. for a channel as configured in DAHDI. This is primarily designed for analog
  463. ports, but will also work for digital ports that are configured for FXS or FXO
  464. signalling types. This mode is also the default now, so if your chan_dahdi.conf
  465. does not specify signalling for a channel (which is unlikely as the sample
  466. configuration file has always recommended specifying it for every channel) then
  467. the 'auto' mode will be used for that channel if possible.
  468. * Added a 'dahdi set dnd' command to allow CLI control of the Do-Not-Disturb
  469. state for a channel; also ensured that the DNDState Manager event is
  470. emitted no matter how the DND state is set or cleared.
  471. New Channel Drivers
  472. -------------------
  473. * Added a new channel driver, chan_unistim. See doc/unistim.txt and
  474. configs/unistim.conf.sample for details. This new channel driver allows
  475. you to use Nortel i2002, i2004, and i2050 phones with Asterisk.
  476. * Added a new channel driver, chan_console, which uses portaudio as a cross
  477. platform audio interface. It was written as a channel driver that would
  478. work with Mac CoreAudio, but portaudio supports a number of other audio
  479. interfaces, as well. Note that this channel driver requires v19 or higher
  480. of portaudio; older versions have a different API.
  481. DUNDi changes
  482. -------------
  483. * Added the ability to specify arguments to the Dial application when using
  484. the DUNDi switch in the dialplan.
  485. * Added the ability to set weights for responses dynamically. This can be
  486. done using a global variable or a dialplan function. Using the SHELL()
  487. function would allow you to have an external script set the weight for
  488. each response.
  489. * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT. These
  490. functions will allow you to initiate a DUNDi query from the dialplan,
  491. find out how many results there are, and access each one.
  492. ENUM changes
  493. ------------
  494. * Added two new dialplan functions, ENUMQUERY and ENUMRESULT. These
  495. functions will allow you to initiate an ENUM lookup from the dialplan,
  496. and Asterisk will cache the results. ENUMRESULT can be used to access
  497. the results without doing multiple DNS queries.
  498. Voicemail Changes
  499. -----------------
  500. * Added the ability to customize which sound files are used for some of the
  501. prompts within the Voicemail application by changing them in voicemail.conf
  502. * Added the ability for the "voicemail show users" CLI command to show users
  503. configured by the dynamic realtime configuration method.
  504. * MWI (Message Waiting Indication) handling has been significantly
  505. restructured internally to Asterisk. It is now totally event based
  506. instead of polling based. The voicemail application will notify other
  507. modules that have subscribed to MWI events when something in the mailbox
  508. changes.
  509. This also means that if any other entity outside of Asterisk is changing
  510. the contents of mailboxes, then the voicemail application still needs to
  511. poll for changes. Examples of situations that would require this option
  512. are web interfaces to voicemail or an email client in the case of using
  513. IMAP storage. So, two new options have been added to voicemail.conf
  514. to account for this: "pollmailboxes" and "pollfreq". See the sample
  515. configuration file for details.
  516. * Added "tw" language support
  517. * Added support for storage of greetings using an IMAP server
  518. * Added ability to customize forward, reverse, stop, and pause keys for message playback
  519. * SMDI is now enabled in voicemail using the smdienable option.
  520. * A "lockmode" option has been added to asterisk.conf to configure the file
  521. locking method used for voicemail, and potentially other things in the
  522. future. The default is the old behavior, lockfile. However, there is a
  523. new method, "flock", that uses a different method for situations where the
  524. lockfile will not work, such as on SMB/CIFS mounts.
  525. * Added the ability to backup deleted messages, to ease recovery in the case
  526. that a user accidentally deletes a message, and discovers that they need it.
  527. * Reworked the SMDI interface in Asterisk. The new way to access SMDI information
  528. is through the new functions, SMDI_MSG_RETRIEVE() and SMDI_MSG(). The file
  529. smdi.conf can now be configured with options to map SMDI station IDs to Asterisk
  530. voicemail boxes. The SMDI interface can also poll for MWI changes when some
  531. outside entity is modifying the state of the mailbox (such as IMAP storage or
  532. a web interface of some kind).
  533. * Added the support for marking messages as "urgent." There are two methods to accomplish
  534. this. One is to pass the 'U' option to VoiceMail(). Another way to mark a message as urgent
  535. is to specify "review=yes" in voicemail.conf. Doing this will cause allow the user to mark
  536. the message as urgent after he has recorded a voicemail by following the voice instructions.
  537. When listening to voicemails using VoiceMailMain urgent messages will be presented before other
  538. messages
  539. Queue changes
  540. -------------
  541. * Added the general option 'shared_lastcall' so that member's wrapuptime may be
  542. used across multiple queues.
  543. * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and
  544. setqueueentryvar options for each queue, see queues.conf.sample for details.
  545. * Added keepstats option to queues.conf which will keep queue
  546. statistics during a reload.
  547. * setinterfacevar option in queues.conf also now sets a variable
  548. called MEMBERNAME which contains the member's name.
  549. * Added 'Strategy' field to manager event QueueParams which represents
  550. the queue strategy in use.
  551. * Added option to run macro when a queue member is connected to a caller,
  552. see queues.conf.sample for details.
  553. * app_queue now has a 'loose' option which is almost exactly like 'strict' except it
  554. does not count paused queue members as unavailable.
  555. * Added min-announce-frequency option to queues.conf which allows you to control the
  556. minimum amount of time between queue announcements for use when the caller's queue
  557. position changes frequently.
  558. * Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the
  559. queue log.
  560. * Added ability for non-realtime queues to have realtime members
  561. * Added the "linear" strategy to queues.
  562. * Added the "wrandom" strategy to queues.
  563. * Added new channel variable QUEUE_MIN_PENALTY
  564. * QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining
  565. rules in queuerules.conf. See configs/queuerules.conf.sample for details
  566. * Added a new parameter for member definition, called state_interface. This may be
  567. used so that a member may be called via one interface but have a different interface's
  568. device state reported.
  569. * New configuration option: randomperiodicannounce. If a list of periodic announcements is
  570. specified by the periodic-announce option, then one will be chosen randomly when it is time
  571. to play a periodic announcment
  572. * New configuration options: announce-position now takes two more values in addition to "yes" and
  573. "no." Two new options, "limit" and "more," are allowed. These are tied to another option,
  574. announce-position-limit. By setting announce-position to "limit" callers will only have their
  575. position announced if their position is less than what is specified by announce-position-limit.
  576. If announce-position is set to "more" then callers beyond the position specified by announce-position-limit
  577. will be told that their are more than announce-position-limit callers waiting.
  578. * Two new queue log events have been added. An ADDMEMBER event will be logged
  579. when a realtime queue member is added and a REMOVEMEMBER event will be logged
  580. when a realtime queue member is removed. Since there is no calling channel associated
  581. with these events, the string "REALTIME" is placed where the channel's unique id
  582. is typically placed.
  583. MeetMe Changes
  584. --------------
  585. * The 'o' option to provide an optimization has been removed and its functionality
  586. has been enabled by default.
  587. * When a conference is created, the UNIQUEID of the channel that caused it to be
  588. created is stored. Then, every channel that joins the conference will have the
  589. MEETMEUNIQUEID channel variable set with this ID. This can be used to relate
  590. callers that come and go from long standing conferences.
  591. * Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin,
  592. except it does operations on a channel by name, instead of number in a conference.
  593. This is a very useful feature in combination with the 'X' option to ChanSpy.
  594. * Added 'C' option to Meetme which causes a caller to continue in the dialplan
  595. when kicked out.
  596. * Added new RealTime functionality to provide support for scheduled conferencing.
  597. This includes optional messages to the caller if they attempt to join before
  598. the schedule start time, or to allow the caller to join the conference early.
  599. Also included is optional support for limiting the number of callers per
  600. RealTime conference.
  601. * Added the S() and L() options to the MeetMe application. These are pretty
  602. much identical to the S() and L() options to Dial(). They let you set
  603. timeouts for the conference, as well as have warning sounds played to
  604. let the caller know how much time is left, and when it is running out.
  605. * Added the ability to do "meetme concise" with the "meetme" CLI command.
  606. This extends the concise capabilities of this CLI command to include
  607. listing all conferences, instead of an addition to the other sub commands
  608. for the "meetme" command.
  609. * Added the ability to specify the music on hold class used to play into the
  610. conference when there is only one member and the M option is used.
  611. * Added MEETME_INFO dialplan function which provides a way to query
  612. various properties of a Meetme conference.
  613. Other Dialplan Application Changes
  614. ----------------------------------
  615. * Argument support for Gosub application
  616. * From the to-do lists: straighten out the app timeout args:
  617. Wait() app now really does 0.3 seconds- was truncating arg to an int.
  618. WaitExten() same as Wait().
  619. Congestion() - Now takes floating pt. argument.
  620. Busy() - now takes floating pt. argument.
  621. Read() - timeout now can be floating pt.
  622. WaitForRing() now takes floating pt timeout arg.
  623. SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds.
  624. * Added 's' option to Page application.
  625. * Added 'E', 'V', and 'P' commands to ExternalIVR.
  626. * Added 'o' and 'X' options to Chanspy.
  627. * Added a new dialplan application, Bridge, which allows you to bridge the
  628. calling channel to any other active channel on the system.
  629. * Added the ability to specify a music on hold class to play instead of ringing
  630. for the SLATrunk application.
  631. * The Read application no longer exits the dialplan on error. Instead, it sets
  632. READSTATUS to ERROR, which you can catch and handle separately.
  633. * Added 'm' option to Directory, which lists out names, 8 at a time, instead
  634. of asking for verification of each name, one at a time.
  635. * Privacy() no longer uses privacy.conf, as all options are specifyable as
  636. direct options to the app.
  637. * AMD() has a new "maximum word length" option. "show application AMD" from the CLI
  638. for more details
  639. * GotoIfTime() now may branch based on a "false" condition, like other Goto-related applications
  640. * The ChannelRedirect application no longer exits the dialplan if the given channel
  641. does not exist. It will now set the CHANNELREDIRECT_STATUS variable to SUCCESS upon success
  642. or NOCHANNEL if the given channel was not found.
  643. * The silencethreshold setting that was previously configurable in multiple
  644. applications is now settable globally via dsp.conf.
  645. Music On Hold Changes
  646. ---------------------
  647. * A new option, "digit", has been added for music on hold classes in
  648. musiconhold.conf. If this is set for a music on hold class, a caller
  649. listening to music on hold can press this digit to switch to listening
  650. to this music on hold class.
  651. * Support for realtime music on hold has been added.
  652. * In conjunction with the realtime music on hold, a general section has
  653. been added to musiconhold.conf, its sole variable is cachertclasses. If this
  654. is set, then music on hold classes found in realtime will be cached in memory.
  655. AEL Changes
  656. -----------
  657. * AEL upgraded to use the Gosub with Arguments instead
  658. of Macro application, to hopefully reduce the problems
  659. seen with the artificially low stack ceiling that
  660. Macro bumps into. Macros can only call other Macros
  661. to a depth of 7. Tests run using gosub, show depths
  662. limited only by virtual memory. A small test demonstrated
  663. recursive call depths of 100,000 without problems.
  664. -- in addition to this, all apps that allowed a macro
  665. to be called, as in Dial, queues, etc, are now allowing
  666. a gosub call in similar fashion.
  667. * AEL now generates LOCAL(argname) declarations when it
  668. Set()'s the each arg name to the value of ${ARG1}, ${ARG2),
  669. etc. That makes the arguments local in scope. The user
  670. can define their own local variables in macros, now,
  671. by saying "local myvar=someval;" or using Set() in this
  672. fashion: Set(LOCAL(myvar)=someval); ("local" is now
  673. an AEL keyword).
  674. * utils/conf2ael introduced. Will convert an extensions.conf
  675. file into extensions.ael. Very crude and unfinished, but
  676. will be improved as time goes by. Should be useful for a
  677. first pass at conversion.
  678. * aelparse will now read extensions.conf to see if a referenced
  679. macro or context is there before issueing a warning.
  680. * AEL parser sets a local channel variable ~~EXTEN~~, to
  681. preserve the value of ${EXTEN} thru switch statements.
  682. * New operator in $[...] expressions: the ~~ operator serves
  683. as a concatenation operator. AT THE MOMENT, it is really only
  684. necessary and useful in AEL, especially in if() expressions.
  685. Operation: ${a} ~~ ${b| with force both a and b to strings, strip
  686. any enclosing double-quotes, and evaluate to the value of a
  687. concatenated with the value of b. For example if a is set to
  688. "xyz" and b has the value "abc", then ${a} ~~ ${b| would
  689. evaluate to xyzabc .
  690. Call Features (res_features) Changes
  691. ------------------------------------
  692. * Added the parkedcalltransfers option to features.conf
  693. * Added parkedcallparking option to control one touch parking w/ parking
  694. pickup
  695. * Added parkedcallhangup option to control disconnect feature w/ parking
  696. pickup
  697. * Added parkedcallrecording option to control one-touch record w/ parking
  698. pickup
  699. * Added BRIDGE_FEATURES variable to set available features for a channel
  700. * The built-in method for doing attended transfers has been updated to
  701. include some new options that allow you to have the transferee sent
  702. back to the person that did the transfer if the transfer is not successful.
  703. See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries"
  704. in features.conf.sample.
  705. * Added support for configuring named groups of custom call features in
  706. features.conf. This means that features can be written a single time, and
  707. then mapped into groups of features for different key mappings or easier
  708. access control.
  709. * Updated the ParkedCall application to allow you to not specify a parking
  710. extension. If you don't specify a parking space to pick up, it will grab
  711. the first one available.
  712. * Added cli command 'features reload' to reload call features from features.conf
  713. * Moved into core asterisk binary.
  714. Language Support Changes
  715. ------------------------
  716. * Brazilian Portuguese (pt-BR) in VM, and say.c was added
  717. * Added support for the Hungarian language for saying numbers, dates, and times.
  718. AGI Changes
  719. -----------
  720. * Added SPEECH commands for speech recognition. A complete listing can be found
  721. using agi show.
  722. * If app_stack is loaded, GOSUB is a native AGI command that may be used to
  723. invoke subroutines in the dialplan. Note that calling EXEC with Gosub
  724. does not behave as expected; the native command needs to be used, instead.
  725. Logger changes
  726. --------------
  727. * Added rotatestrategy option to logger.conf, along with two new options:
  728. "timestamp" which will use the time to name the logger files instead of
  729. sequence number; and "rotate", which rotates the names of the logfiles,
  730. similar to the way syslog rotates files.
  731. * Added exec_after_rotate option to logger.conf, which allows a system
  732. command to be run after rotation. This is primarily useful with
  733. rotatestrategry=rotate, to allow a limit on the number of logfiles kept
  734. and to ensure that the oldest log file gets deleted.
  735. * Added realtime support for the queue log
  736. Call Detail Records
  737. -------------------
  738. * The cdr_manager module has a [mappings] feature, like cdr_custom,
  739. to add fields to the manager event from the CDR variables.
  740. * Added cdr_adaptive_odbc, a new module that adapts to the structure of your
  741. backend database CDR table. Specifically, additional, non-standard
  742. columns are supported, merely by setting the corresponding CDR variable in
  743. your dialplan. In addition, you may alias any column to another name (for
  744. example, if you want the 'src' CDR variable to be column 'ANI' in the DB,
  745. simply "alias src => ANI" in the configuration file). Records may be
  746. posted to more than one backend, simply by specifying multiple categories
  747. in the configuration file. And finally, you may filter which CDRs get
  748. posted to each backend, by specifying a filter (which the record must
  749. match) for the particular category. Filters are additive (meaning all
  750. rules must match to post that CDR).
  751. * The Postgres CDR module now supports some features of the cdr_adaptive_odbc
  752. module. Specifically, you may add additional columns into the table and
  753. they will be set, if you set the corresponding CDR variable name. Also,
  754. if you omit columns in your database table, they will be silently skipped
  755. (but a record will still be inserted, based on what columns remain). Note
  756. that the other two features from cdr_adaptive_odbc (alias and filter) are
  757. not currently supported.
  758. * The ResetCDR application now has an 'e' option that re-enables a CDR if it
  759. has been disabled using the NoCDR application.
  760. Miscellaneous New Modules
  761. -------------------------
  762. * Added a new CDR module, cdr_sqlite3_custom.
  763. * Added a new realtime configuration module, res_config_sqlite
  764. * Added a new codec translation module, codec_resample, which re-samples
  765. signed linear audio between 8 kHz and 16 kHz to help support wideband
  766. codecs.
  767. * Added a new module, res_phoneprov, which allows auto-provisioning of phones
  768. based on configuration templates that use Asterisk dialplan function and
  769. variable substitution. It should be possible to create phone profiles and
  770. templates that work for the majority of phones provisioned over http. It
  771. is currently only intended to provision a single user account per phone.
  772. An example profile and set of templates for Polycom phones is provided.
  773. NOTE: Polycom firmware is not included, but should be placed in
  774. AST_DATA_DIR/phoneprov/configs to match up with the included templates.
  775. * Added a new module, app_jack, which provides interfaces to JACK, the Jack
  776. Audio Connection Kit (http://www.jackaudio.org/). Two interfaces are
  777. provided; there is a JACK() application, and a JACK_HOOK() function. Both
  778. interfaces create an input and output JACK port. The application makes
  779. these ports the endpoint of the call. The audio coming from the channel
  780. goes out the output port and whatever comes back in on the input port is
  781. what gets sent to the channel. The JACK_HOOK() function turns on a JACK
  782. audiohook on the channel. This lets you run the audio coming from a
  783. channel through JACK, and whatever comes back in is what gets forwarded
  784. on as the channel's audio. This is very useful for building custom
  785. vocoders or doing recording or analysis of the channel's audio in another
  786. application.
  787. * Added a new module, res_config_curl, which permits using a HTTP POST url
  788. to retrieve, create, update, and delete realtime information from a remote
  789. web server. Note that this module requires func_curl.so to be loaded for
  790. backend functionality.
  791. * Added a new module, res_config_ldap, which permits the use of an LDAP
  792. server for realtime data access.
  793. * Added support for writing and running your dialplan in lua using the pbx_lua
  794. module. See configs/extensions.lua.sample for examples of how to do this.
  795. Miscellaneous
  796. -------------
  797. * Ability to use libcap to set high ToS bits when non-root
  798. on Linux. If configure is unable to find libcap then you
  799. can use --with-cap to specify the path.
  800. * Added maxfiles option to options section of asterisk.conf which allows you to specify
  801. what Asterisk should set as the maximum number of open files when it loads.
  802. * Added the jittertargetextra configuration option.
  803. * Added support for setting the CoS for VLAN traffic (802.1p). See the sample
  804. configuration files for the IP channel drivers. The new option is "cos".
  805. This information is also documented in doc/qos.tex, or the IP Quality of Service
  806. section of asterisk.pdf.
  807. * When originating a call using AMI or pbx_spool that fails the reason for failure
  808. will now be available in the failed extension using the REASON dialplan variable.
  809. * Added support for reading the TOUCH_MONITOR_PREFIX channel variable.
  810. It allows you to configure a prefix for auto-monitor recordings.
  811. * A new extension pattern matching algorithm, based on a trie, is introduced
  812. here, that could noticeably speed up mid-sized to large dialplans.
  813. It is NOT used by default, as duplicating the behaviour of the old pattern
  814. matcher is still under development. A config file option, in extensions.conf,
  815. in the [general] section, called "extenpatternmatchingnew", is by default
  816. set to false; setting that to true will force the use of the new algorithm.
  817. Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can
  818. be used to switch the algorithms at run time.
  819. * A new option when starting a remote asterisk (rasterisk, asterisk -r) for
  820. specifying which socket to use to connect to the running Asterisk daemon
  821. (-s)
  822. * Performance enhancements to the sched facility, which is used in
  823. the channel drivers, etc. Added hashtabs and doubly-linked lists
  824. to speed up deletion; start at the beginning or end of list to
  825. speed up insertion.
  826. * Added Doubly-linked lists after the fashion of linkedlists.h. They are in
  827. dlinkedlists.h. Doubly-linked lists feature fast deletion times.
  828. Added regression tests to the tests/ dir, also.
  829. * Added a refcount trace feature to astobj2 for those trying to balance
  830. object creation, deletion; work, play; space and time. See the
  831. notes in astobj2.h. Also, see utils/refcounter as well, as a
  832. quick way to find unbalanced refcounts in what could be a sea
  833. of objects that were balanced.
  834. * Added logging to 'make update' command. See update.log
  835. * Added strictrtp option to rtp.conf. If enabled this will drop RTP packets that
  836. do not come from the remote party.
  837. * Added the 'n' option to the SpeechBackground application to tell it to not
  838. answer the channel if it has not already been answered.
  839. * Added a compiler flag, CHANNEL_TRACE, which permits channel tracing to be
  840. turned on, via the CHANNEL(trace) dialplan function. Could be useful for
  841. dialplan debugging.
  842. * iLBC source code no longer included (see UPGRADE.txt for details)
  843. * If compiled with DETECT_DEADLOCKS enabled and if you have glibc, then if
  844. deadlock is detected, a backtrace of the stack which led to the lock calls
  845. will be output to the CLI.
  846. * If compiled with DEBUG_THREADS enabled and if you have glibc, then issuing
  847. the "core show locks" CLI command will give lock information output as well
  848. as a backtrace of the stack which led to the lock calls.
  849. * users.conf now sports an optional alternateexts property, which permits
  850. allocation of additional extensions which will reach the specified user.
  851. * A new option for the configure script, --enable-internal-poll, has been added
  852. for use with systems which may have a buggy implementation of the poll system
  853. call. If you notice odd behavior such as the CLI being unresponsive on remote
  854. consoles, you may want to try using this option. This option is enabled by default
  855. on Darwin systems since it is known that the Darwin poll() implementation has
  856. odd issues.