diff options
Diffstat (limited to 'trunk/CHANGES')
-rw-r--r-- | trunk/CHANGES | 496 |
1 files changed, 496 insertions, 0 deletions
diff --git a/trunk/CHANGES b/trunk/CHANGES new file mode 100644 index 000000000..00757c4b1 --- /dev/null +++ b/trunk/CHANGES @@ -0,0 +1,496 @@ +------------------------------------------------------------------------------ +--- Functionality changes since Asterisk 1.4-beta was branched ---------------- +------------------------------------------------------------------------------- + +AMI - The manager (TCP/TLS/HTTP) +-------------------------------- + * Manager has undergone a lot of changes, all of them documented + in doc/manager_1_1.txt + * Manager version has changed to 1.1 + * Added a new action 'CoreShowChannels' to list currently defined channels + and some information about them. + * Added a new action 'SIPshowregistry' to list SIP registrations. + * Added TLS support for the manager interface and HTTP server + * Added the URI redirect option for the built-in HTTP server + * The output of CallerID in Manager events is now more consistent. + CallerIDNum is used for number and CallerIDName for name. + * Enable https support for builtin web server. + See configs/http.conf.sample for details. + * Added a new action, GetConfigJSON, which can return the contents of an + Asterisk configuration file in JSON format. This is intended to help + improve the performance of AJAX applications using the manager interface + over HTTP. + * SIP and IAX manager events now use "ChannelType" in all cases where we + indicate channel driver. Previously, we used a mixture of "Channel" + and "ChannelDriver" headers. + * Added a "Bridge" action which allows you to bridge any two channels that + are currently active on the system. + * Added a "ListAllVoicemailUsers" action that allows you to get a list of all + the voicemail users setup. + * Added 'DBDel' and 'DBDelTree' manager commands. + * cdr_manager now reports events via the "cdr" level, separating it from + the very verbose "call" level. + * Manager users are now stored in memory. If you change the manager account + list (delete or add accounts) you need to reload manager. + * Added Masquerade manager event for when a masquerade happens between + two channels. + * Added "manager reload" command for the CLI + * Lots of commands that only provided information are now allowed under the + Reporting privilege, instead of only under Call or System. + * The IAX* commands now require either System or Reporting privilege, to + mirror the privileges of the SIP* commands. + +Dialplan functions +------------------ + * Added the DEVICE_STATE() dialplan function which allows retrieving any device + state in the dialplan, as well as creating custom device states that are + controllable from the dialplan. + * Extend CALLERID() function with "pres" and "ton" parameters to + fetch string representation of calling number presentation indicator + and numeric representation of type of calling number value. + * MailboxExists converted to dialplan function + * A new option to Dial() for telling IP phones not to count the call + as "missed" when dial times out and cancels. + * Added LOCK(), TRYLOCK(), and UNLOCK(), which provide a single level dialplan + mutex. No deadlocks are possible, as LOCK() only allows a single lock to be + held for any given channel. Also, locks are automatically freed when a + channel is hung up. + * Added HINT() dialplan function that allows retrieving hint information. + Hints are mappings between extensions and devices for the sake of + determining the state of an extension. This function can retrieve the list + of devices or the name associated with a hint. + * Added EXTENSION_STATE() dialplan function which allows retrieving the state + of any extension. + * Added SYSINFO() dialplan function which allows retrieval of system information + * Added a new dialplan function, DIALPLAN_EXISTS(), which allows you to check for + the existence of a dialplan target. + * Added two new dialplan functions, TOUPPER and TOLOWER, which convert a string to + upper and lower case, respectively. + +CLI Changes +----------- + * New CLI command "core show hint" (usage: core show hint <exten>) + * New CLI command "core show settings" + * Added 'core show channels count' CLI command. + * Added the ability to set the core debug and verbose values on a per-file basis. + * Added 'queue pause member' and 'queue unpause member' CLI commands + * Ability to set process limits ("ulimit") without restarting Asterisk + * Enhanced "agi debug" to print the channel name as a prefix to the debug + output to make debugging on busy systems much easier. + * New CLI commands "dialplan set extenpatternmatching true/false" + * New CLI command: "core set chanvar" to set a channel variable from the CLI. + * Added an easy way to execute Asterisk CLI commands at startup. Any commands + listed in the startup_commands file in the Asterisk configuration directory + will get executed. + +SIP changes +----------- + * Improved NAT and STUN support. + chan_sip now can use port numbers in bindaddr, externip and externhost + options, as well as contact a STUN server to detect its external address + for the SIP socket. See sip.conf.sample, 'NAT' section. + * The default SIP useragent= identifier now includes the Asterisk version + * A new option, match_auth_username in sip.conf changes the matching of incoming requests. + If set, and the incoming request carries authentication info, + the username to match in the users list is taken from the Digest header + rather than from the From: field. This feature is considered experimental. + * The "musiconhold" and "musicclass" settings in sip.conf are now removed, + since they where replaced by "mohsuggest" and "mohinterpret" in version 1.4 + * The "localmask" setting was removed in version 1.2 and the reminder about it + being removed is now also removed. + * A new option "busylevel" for setting a level of calls where asterisk reports + a device as busy, to separate it from call-limit. This value is also added + to the SIP_PEER dialplan function. + * A new realtime family called "sipregs" is now supported to store SIP registration + data. If this family is defined, "sippeers" will be used for configuration and + "sipregs" for registrations. If it's not defined, "sippeers" will be used for + registration data, as before. + * The SIPPEER function have new options for port address, call and pickup groups + * Added support for T.140 realtime text in SIP/RTP + * The "checkmwi" option has been removed from sip.conf, as it is no longer + required due to the restructuring of how MWI is handled. See the descriptions + in this file of the "pollmailboxes" and "pollfreq" options to voicemail.conf + for more information. + * Added rtpdest option to CHANNEL() dialplan function. + * Added SIPREFERRINGCONTEXT and SIPREFERREDBYHDR variables which are set when a transfer takes place. + * SIP now adds a header to the CANCEL if the call was answered by another phone + in the same dial command, or if the new c option in dial() is used. + * The new default is that 100 Trying is not sent on REGISTER attempts as the RFC specifically + states it is not needed. For phones, however, that do require it the "registertrying" option + has been added so it can be enabled. + * A new option called "callcounter" (global/peer/user level) enables call counters needed + for better status reports needed for queues and SIP subscriptions. (Call-Limit was previously + used to enable this functionality). + * New settings for timer T1 and timer B on a global level or per device. This makes it + possible to force timeout faster on non-responsive SIP servers. These settings are + considered advanced, so don't use them unless you have a problem. + * Added a dial string option to be able to set the To: header in an INVITE to any + SIP uri. + * Added a new global and per-peer option, qualifyfreq, which allows you to configure + the qualify frequency. + * Added SIP Session Timers support (RFC 4028). This prevents stuck SIP sessions that + were not properly torn down due to network or endpoint failures during an established + SIP session. + * Added TCP and TLS support for SIP. See doc/siptls.txt and configs/sip.conf.sample for + more information on how it is used. + +IAX2 changes +------------ + * Added the trunkmaxsize configuration option to chan_iax2. + * Added the srvlookup option to iax.conf + * Added support for OSP. The token is set and retrieved through the CHANNEL() + dialplan function. + +XMPP Google Talk/Jingle changes +------------------------------- + * Added the bindaddr option to gtalk.conf. + +Skinny changes +------------- + * Added skinny show device, skinny show line, and skinny show settings CLI commands. + * Proper codec support in chan_skinny. + * Added settings for IP and Ethernet QoS requests + +MGCP changes +------------ + * Added separate settings for media QoS in mgcp.conf + +Console Channel Driver changes +------------------- + * Added experimental support for video send & receive to chan_oss. + This requires SDL and ffmpeg/avcodec, plus Video4Linux or X11 to act as + a video source. + +Phone channel changes (chan_phone) +---------------------------------- + * Added G729 passthrough support to chan_phone for Sigma Designs boards. + +H.323 channel Changes +--------------------- + * H323 remote hold notification support added (by NOTIFY message + and/or H.450 supplementary service) + +Local channel changes +--------------------- + * The device state functionality in the Local channel driver has been updated + to indicate INUSE or NOT_INUSE when a Local channel is being used as opposed + to just UNKNOWN if the extension exists. + * Added jitterbuffer support for chan_local. This allows you to use the + generic jitterbuffer on incoming calls going to Asterisk applications. + For example, this would allow you to use a jitterbuffer for an incoming + SIP call to Voicemail by putting a Local channel in the middle. This + feature is enabled by using the 'j' option in the Dial string to the Local + channel in conjunction with the existing 'n' option for local channels. + +Zaptel channel driver (chan_zap) Changes +---------------------------------------- + * SS7 support in chan_zap (via libss7 library) + * In India, some carriers transmit CID via dtmf. Some code has been added + that will handle some situations. The cidstart=polarity_IN choice has been added for + those carriers that transmit CID via dtmf after a polarity change. + * CID matching information is now shown when doing 'dialplan show'. + * Added zap show version CLI command to chan_zap. + * Added setvar support to zapata.conf channel entries. + * Added two new options: mwimonitor and mwimonitornotify. These options allow + you to enable MWI monitoring on FXO lines. When the MWI state changes, + the script specified in the mwimonitornotify option is executed. An internal + event indicating the new state of the mailbox is also generated, so that + the normal MWI facilities in Asterisk work as usual. + * Added signalling type 'auto', which attempts to use the same signalling type + for a channel as configured in Zaptel. This is primarily designed for analog + ports, but will also work for digital ports that are configured for FXS or FXO + signalling types. This mode is also the default now, so if your zapata.conf + does not specify signalling for a channel (which is unlikely as the sample + configuration file has always recommended specifying it for every channel) then + the 'auto' mode will be used for that channel if possible. + * Added a 'zap set dnd' command to allow CLI control of the Do-Not-Disturb + state for a channel; also ensured that the DNDState Manager event is + emitted no matter how the DND state is set or cleared. + +New Channel Drivers +------------------- + * Added a new channel driver, chan_unistim. See doc/unistim.txt and + configs/unistim.conf.sample for details. This new channel driver allows + you to use Nortel i2002, i2004, and i2050 phones with Asterisk. + * Added a new channel driver, chan_console, which uses portaudio as a cross + platform audio interface. It was written as a channel driver that would + work with Mac CoreAudio, but portaudio supports a number of other audio + interfaces, as well. Note that this channel driver requires v19 or higher + of portaudio; older versions have a different API. + +DUNDi changes +------------- + * Added the ability to specify arguments to the Dial application when using + the DUNDi switch in the dialplan. + * Added the ability to set weights for responses dynamically. This can be + done using a global variable or a dialplan function. Using the SHELL() + function would allow you to have an external script set the weight for + each response. + * Added two new dialplan functions, DUNDIQUERY and DUNDIRESULT. These + functions will allow you to initiate a DUNDi query from the dialplan, + find out how many results there are, and access each one. + +ENUM changes +------------ + * Added two new dialplan functions, ENUMQUERY and ENUMRESULT. These + functions will allow you to initiate an ENUM lookup from the dialplan, + and Asterisk will cache the results. ENUMRESULT can be used to access + the results without doing multiple DNS queries. + +Voicemail Changes +----------------- + * Added the ability to customize which sound files are used for some of the + prompts within the Voicemail application by changing them in voicemail.conf + * Added the ability for the "voicemail show users" CLI command to show users + configured by the dynamic realtime configuration method. + * MWI (Message Waiting Indication) handling has been significantly + restructured internally to Asterisk. It is now totally event based + instead of polling based. The voicemail application will notify other + modules that have subscribed to MWI events when something in the mailbox + changes. + This also means that if any other entity outside of Asterisk is changing + the contents of mailboxes, then the voicemail application still needs to + poll for changes. Examples of situations that would require this option + are web interfaces to voicemail or an email client in the case of using + IMAP storage. So, two new options have been added to voicemail.conf + to account for this: "pollmailboxes" and "pollfreq". See the sample + configuration file for details. + * Added "tw" language support + * Added support for storage of greetings using an IMAP server + * Added ability to customize forward, reverse, stop, and pause keys for message playback + * SMDI is now enabled in voicemail using the smdienable option. + * A "lockmode" option has been added to asterisk.conf to configure the file + locking method used for voicemail, and potentially other things in the + future. The default is the old behavior, lockfile. However, there is a + new method, "flock", that uses a different method for situations where the + lockfile will not work, such as on SMB/CIFS mounts. + * Added the ability to backup deleted messages, to ease recovery in the case + that a user accidentally deletes a message, and discovers that they need it. + +Queue changes +------------- + * Added the general option 'shared_lastcall' so that member's wrapuptime may be + used across multiple queues. + * Added QUEUE_VARIABLES function to set queue variables added setqueuevar and + setqueueentryvar options for each queue, see queues.conf.sample for details. + * Added keepstats option to queues.conf which will keep queue + statistics during a reload. + * setinterfacevar option in queues.conf also now sets a variable + called MEMBERNAME which contains the member's name. + * Added 'Strategy' field to manager event QueueParams which represents + the queue strategy in use. + * Added option to run macro when a queue member is connected to a caller, + see queues.conf.sample for details. + * app_queue now has a 'loose' option which is almost exactly like 'strict' except it + does not count paused queue members as unavailable. + * Added min-announce-frequency option to queues.conf which allows you to control the + minimum amount of time between queue announcements for use when the caller's queue + position changes frequently. + * Added additional information to EXITWITHTIMEOUT and EXITWITHKEY events in the + queue log. + * Added ability for non-realtime queues to have realtime members + * Added the "linear" strategy to queues. + * Added the "wrandom" strategy to queues. + * Added new channel variable QUEUE_MIN_PENALTY + * QUEUE_MAX_PENALTY and QUEUE_MIN_PENALTY may be adjusted in mid-call by defining + rules in queuerules.conf. See configs/queuerules.conf.sample for details + * Added a new parameter for member definition, called state_interface. This may be + used so that a member may be called via one interface but have a different interface's + device state reported. + +MeetMe Changes +-------------- + * The 'o' option to provide an optimization has been removed and its functionality + has been enabled by default. + * When a conference is created, the UNIQUEID of the channel that caused it to be + created is stored. Then, every channel that joins the conference will have the + MEETMEUNIQUEID channel variable set with this ID. This can be used to relate + callers that come and go from long standing conferences. + * Added a new application, MeetMeChannelAdmin, which is similar to MeetMeAdmin, + except it does operations on a channel by name, instead of number in a conference. + This is a very useful feature in combination with the 'X' option to ChanSpy. + * Added 'C' option to Meetme which causes a caller to continue in the dialplan + when kicked out. + * Added new RealTime functionality to provide support for scheduled conferencing. + This includes optional messages to the caller if they attempt to join before + the schedule start time, or to allow the caller to join the conference early. + Also included is optional support for limiting the number of callers per + RealTime conference. + * Added the S() and L() options to the MeetMe application. These are pretty + much identical to the S() and L() options to Dial(). They let you set + timeouts for the conference, as well as have warning sounds played to + let the caller know how much time is left, and when it is running out. + * Added the ability to do "meetme concise" with the "meetme" CLI command. + This extends the concise capabilities of this CLI command to include + listing all conferences, instead of an addition to the other sub commands + for the "meetme" command. + * Added the ability to specify the music on hold class used to play into the + conference when there is only one member and the M option is used. + +Other Dialplan Application Changes +---------------------------------- + * Argument support for Gosub application + * From the to-do lists: straighten out the app timeout args: + Wait() app now really does 0.3 seconds- was truncating arg to an int. + WaitExten() same as Wait(). + Congestion() - Now takes floating pt. argument. + Busy() - now takes floating pt. argument. + Read() - timeout now can be floating pt. + WaitForRing() now takes floating pt timeout arg. + SpeechBackground() -- clarified in the docstrings that the timeout is an integer seconds. + * Added 's' option to Page application. + * Added 'E' and 'V' commands to ExternalIVR. + * Added 'o' and 'X' options to Chanspy. + * Added a new dialplan application, Bridge, which allows you to bridge the + calling channel to any other active channel on the system. + * Added the ability to specify a music on hold class to play instead of ringing + for the SLATrunk application. + * The Read application no longer exits the dialplan on error. Instead, it sets + READSTATUS to ERROR, which you can catch and handle separately. + * Added 'm' option to Directory, which lists out names, 8 at a time, instead + of asking for verification of each name, one at a time. + * Privacy() no longer uses privacy.conf, as all options are specifyable as + direct options to the app. + * AMD() has a new "maximum word length" option. "show application AMD" from the CLI + for more details + +Music On Hold Changes +--------------------- + * A new option, "digit", has been added for music on hold classes in + musiconhold.conf. If this is set for a music on hold class, a caller + listening to music on hold can press this digit to switch to listening + to this music on hold class. + * Support for realtime music on hold has been added. + * In conjunction with the realtime music on hold, a general section has + been added to musiconhold.conf, its sole variable is cachertclasses. If this + is set, then music on hold classes found in realtime will be cached in memory. + +AEL Changes +----------- + * AEL upgraded to use the Gosub with Arguments instead + of Macro application, to hopefully reduce the problems + seen with the artificially low stack ceiling that + Macro bumps into. Macros can only call other Macros + to a depth of 7. Tests run using gosub, show depths + limited only by virtual memory. A small test demonstrated + recursive call depths of 100,000 without problems. + -- in addition to this, all apps that allowed a macro + to be called, as in Dial, queues, etc, are now allowing + a gosub call in similar fashion. + * AEL now generates LOCAL(argname) declarations when it + Set()'s the each arg name to the value of ${ARG1}, ${ARG2), + etc. That makes the arguments local in scope. The user + can define their own local variables in macros, now, + by saying "local myvar=someval;" or using Set() in this + fashion: Set(LOCAL(myvar)=someval); ("local" is now + an AEL keyword). + * utils/conf2ael introduced. Will convert an extensions.conf + file into extensions.ael. Very crude and unfinished, but + will be improved as time goes by. Should be useful for a + first pass at conversion. + * aelparse will now read extensions.conf to see if a referenced + macro or context is there before issueing a warning. + +Call Features (res_features) Changes +------------------------------------ + * Added the parkedcalltransfers option to features.conf + * The built-in method for doing attended transfers has been updated to + include some new options that allow you to have the transferee sent + back to the person that did the transfer if the transfer is not successful. + See the options "atxferdropcall", "atxferloopdelay", and "atxfercallbackretries" + in features.conf.sample. + * Added support for configuring named groups of custom call features in + features.conf. This means that features can be written a single time, and + then mapped into groups of features for different key mappings or easier + access control. + * Updated the ParkedCall application to allow you to not specify a parking + extension. If you don't specify a parking space to pick up, it will grab + the first one available. + +Language Support Changes +------------------------ + * Brazilian Portuguese (pt-BR) in VM, and say.c was added + * Added support for the Hungarian language for saying numbers, dates, and times. + +AGI Changes +----------- + * Added SPEECH commands for speech recognition. A complete listing can be found + using agi show. + +Logger changes +-------------- + * Added rotatestrategy option to logger.conf, along with two new options: + "timestamp" which will use the time to name the logger files instead of + sequence number; and "rotate", which rotates the names of the logfiles, + similar to the way syslog rotates files. + * Added exec_after_rotate option to logger.conf, which allows a system + command to be run after rotation. This is primarily useful with + rotatestrategry=rotate, to allow a limit on the number of logfiles kept + and to ensure that the oldest log file gets deleted. + * Added realtime support for the queue log + +Miscellaneous New Modules +------------------------- + * Added a new CDR module, cdr_sqlite3_custom. + * Added a new realtime configuration module, res_config_sqlite + * Added a new codec translation module, codec_resample, which re-samples + signed linear audio between 8 kHz and 16 kHz to help support wideband + codecs. + * Added a new module, res_phoneprov, which allows auto-provisioning of phones + based on configuration templates that use Asterisk dialplan function and + variable substitution. It should be possible to create phone profiles and + templates that work for the majority of phones provisioned over http. It + is currently only intended to provision a single user account per phone. + An example profile and set of templates for Polycom phones is provided. + NOTE: Polycom firmware is not included, but should be placed in + AST_DATA_DIR/phoneprov/configs to match up with the included templates. + * Added a new module, app_jack, which provides interfaces to JACK, the Jack + Audio Connection Kit (http://www.jackaudio.org/). Two interfaces are + provided; there is a JACK() application, and a JACK_HOOK() function. Both + interfaces create an input and output JACK port. The application makes + these ports the endpoint of the call. The audio coming from the channel + goes out the output port and whatever comes back in on the input port is + what gets sent to the channel. The JACK_HOOK() function turns on a JACK + audiohook on the channel. This lets you run the audio coming from a + channel through JACK, and whatever comes back in is what gets forwarded + on as the channel's audio. This is very useful for building custom + vocoders or doing recording or analysis of the channel's audio in another + application. + * Added a new module, res_config_curl, which permits using a HTTP POST url + to retrieve, create, update, and delete realtime information from a remote + web server. Note that this module requires func_curl.so to be loaded for + backend functionality. + +Miscellaneous +------------- + * Ability to use libcap to set high ToS bits when non-root + on Linux. If configure is unable to find libcap then you + can use --with-cap to specify the path. + * Added maxfiles option to options section of asterisk.conf which allows you to specify + what Asterisk should set as the maximum number of open files when it loads. + * Added the jittertargetextra configuration option. + * The cdr_manager module has a [mappings] feature, like cdr_custom, + to add fields to the manager event from the CDR variables. + * Added support for setting the CoS for VLAN traffic (802.1p). See the sample + configuration files for the IP channel drivers. The new option is "cos". + This information is also documented in doc/qos.tex, or the IP Quality of Service + section of asterisk.pdf. + * When originating a call using AMI or pbx_spool that fails the reason for failure + will now be available in the failed extension using the REASON dialplan variable. + * Added support for reading the TOUCH_MONITOR_PREFIX channel variable. + It allows you to configure a prefix for auto-monitor recordings. + * Added support for writing and running your dialplan in lua. See + configs/extensions.lua.sample for examples of how to do this. + * A new extension pattern matching algorithm, based on a trie, is introduced + here, that could noticeably speed up mid-sized to large dialplans. + It is NOT used by default, as duplicating the behaviour of the old pattern + matcher is still under development. A config file option, in extensions.conf, + in the [general] section, called "extenpatternmatchingnew", is by default + set to false; setting that to true will force the use of the new algorithm. + Also, the cli commands "dialplan set extenpatternmatchingnew true/false" can + be used to switch the algorithms at run time. + * A new option when starting a remote asterisk (rasterisk, asterisk -r) for + specifying which socket to use to connect to the running Asterisk daemon + (-s) + * Added logging to 'make update' command. See update.log + |