Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Along with AgentRequest, this application has been modified to be a replacement for chan_agent. The act of a channel calling the AgentLogin application places the channel into a pool of agents that can be requested by the AgentRequest application. Note that this application, as well as all other agent related functionality, is now provided by the app_agent_pool module. See chan_agent and AgentRequest for more information.
  • This application no longer performs agent authentication. If authentication is desired, the dialplan needs to perform this function using the Authenticate or VMAuthenticate application or through an AGI script before running AgentLogin.
  • If this application is called and the agent is already logged in, the dialplan will continue exection with the AGENT_STATUS channel variable set to ALREADY_LOGGED_IN.
  • The agents.conf schema has changed. Rather than specifying agents on a single line in comma delineated fashion, each agent is defined in a separate context. This allows agents to use the power of context templates in their definition.
  • A number of parameters from agents.conf have been removed. This includes:
    • maxloginretries
    • autologoffunavail
    • updatecdr
    • goodbye
    • group
    • recordformat
    • urlprefix
    • savecallsin
    These options were obsoleted by the move from a channel driver model to the bridging/application model provided by app_agent_pool.

...

  • The channel variable CPLAYBACKSTATUS may now return the value REMOTESTOPPED. This occurs when playback is stopped by a remote interface, such as AMI. See the AMI action ControlPlayback for more information.

Directory

...

  •  The app_parkandannounce module has been removed. The application ParkAndAnnounce is now provided by the res_parking module. See the res_parking changes for more information.

...

  • Masquerades as an operation inside Asterisk have been effectively hidden by the migration to the Bridging API. As such, many 'quirks' of Asterisk no longer occur. This includes renaming of channels, "<ZOMBIE>" channels, dropping of frame/audio hooks, and other internal implementation details that users had to deal with. This fundamental change has large implications throughout the changes documented for this version.
  • Multiple parties in a bridge may now be transferred. If a participant in a multi-party bridge initiates a blind transfer, a Local channel will be used to execute the dialplan location that the transferer sent the parties to. If a participant in a multi-party bridge initiates an attended transfer, several options are possible. If the attended transfer results in a transfer to an application, a Local channel is used. If the attended transfer results in a transfer to another channel, the resulting channels will be merged into a single bridge.
  • The channel variable ATTENDED_TRANSFER_COMPLETE_SOUND is no longer channel driver specific. If the channel variable is set on the transferrer channel, the sound will be played to the target of an attended transfer.
  • The channel variable BRIDGEPEER becomes a comma separated list of peers in a multi-party bridge. The BRIDGEPEER value can have a maximum of 10 peers listed. Any more peers in the bridge will not be included in the list. {{BRIDGEPEER}} is not valid in holding bridges like parking since those channels do not talk to each other even though they are in a bridge.
  •  The channel variable BRIDGEPVTCALLID is only valid for two party bridges and will contain a value if the BRIDGEPEER's channel driver supports it.
  •  A channel variable ATTENDEDTRANSFER is now set which indicates which channel was responsible for an attended transfer in a similar fashion to BLINDTRANSFER.
  •  Modules using the Configuration Framework or Sorcery must have XML configuration documentation. This configuration documentation is included with the rest of Asterisk's XML documentation, and is accessible via CLI commands. See the CLI changes for more information.

 AMI (Asterisk Manager Interface)

  • Major changes were made to both the syntax as well as the semantics of the AMI protocol. In particular, AMI events have been substantially improved in this version of Asterisk. For more information, please see the AMI specification.
  • AMI events that reference a particular channel or bridge will now always contain a standard set of fields. When multiple channels or bridges are referenced in an event, fields for at least some subset of the channels and bridges in the event will be prefixed with a descriptive name to avoid name collisions. See the AMI event documentation for more information.
  • The CLI command manager show commands no longer truncates command names longer than 15 characters and no longer shows authorization requirement for commands. manager show command now displays the privileges needed for using a given manager command instead.
  • The SIPshowpeer action will now include a SubscribeContext field for a peer in its response if the peer has a subscribe context set.
  • The SIPqualifypeer action now acknowledges the request once it has established that the request is against a known peer. It also issues a new event, SIPQualifyPeerDone, once the qualify action has been completed.
  • The PlayDTMF action now supports an optional Duration parameter. This specifies the duration of the digit to be played, in milliseconds.
  • Added VoicemailRefresh action to allow an external entity to trigger mailbox updates when changes occur instead of requiring the use of pollmailboxes.

...

  • Added a new action ControlPlayback. The ControlPlayback action allows an AMI client to manipulate audio currently being played back on a channel. The supported operations depend on the application being used to send audio to the channel. When the audio playback was initiated using the ControlPlayback application or CONTROL STREAM FILE AGI command, the audio can be paused, stopped, restarted, reversed, or skipped forward. When initiated by other mechanisms (such as the Playback application), the audio can be stopped, reversed, or skipped forward.
  • Channel related events now contain a snapshot of channel state, adding new fields to many of these events.
  • The AMI event Newexten field Extension is deprecated, and may be removed in a future release. Please use the common Exten field instead.
  • The AMI event UserEvent from app_userevent now contains the channel state fields. The channel state fields will come before the body fields.
  • The AMI events ParkedCall, ParkedCallTimeOut, ParkedCallGiveUp, and UnParkedCall have changed significantly in the new res_parking  module.
    • The Channel and From headers are gone.
      • For the channel that was parked or is coming out of parking, a Parkee channel snapshot is issued and it has a number of fields associated with it. The old Channel header relayed the same data as the new ParkeeChannel header.
      • The From field was ambiguous and changed meaning depending on the event. For most of these, it was the name of the channel that parked the call (the Parker).
    • There is no longer a header that provides this channel name, however the ParkerDialString will contain a dialstring to redial the device that parked the call.
    • On UnParkedCall events, the From header would instead represent the channel responsible for retrieving the parkee. It receives a channel snapshot labeled Retriever. The From field is is replaced with RetrieverChannel.
    • Lastly, the Exten field has been replaced with ParkingSpace.
  • The AMI event Parkinglot (response to Parkinglots command) in a similar fashion has changed the field names StartExten and StopExten to StartSpace and StopSpace respectively.
  • The deprecated use of | (pipe) as a separator in the channelvars setting in manager.conf has been removed.
  • Channel Variables conveyed with a channel no longer contain the name of the channel as part of the key field, i.e., ChanVariable(SIP/foo): bar=baz is now ChanVariable: bar=baz. When multiple channels are present in a single AMI event, the various ChanVariable fields will contain a prefix that specifies which channel they correspond to.
  • The NewPeerAccount AMI event is no longer raised. The NewAccountCode AMI event always conveys the AMI event for a particular channel.
  • All Reload events have been consolidated into a single event type. This event will always contain a Module field specifying the name of the module and a Status field denoting the result of the reload. All modules now issue this event when being reloaded.
  • The ModuleLoadReport event has been removed. Most AMI connections would fail to receive this event due to being connected after modules have loaded. AMI connections that want to know when Asterisk is ready should listen for the FullyBooted event.
  • app_fax now sends the same send fax/receive fax events as res_fax. The FaxSent event is now the SendFAX event, and the FaxReceived event is now the ReceiveFAX event.
  • The MusicOnHold event is now two events: MusicOnHoldStart and MusicOnHoldStop. The sub type field has been removed.
  • The JabberEvent event has been removed. It is not AMI's purpose to be a carrier for another protocol.
  • The Bridge Manager action's Playtone header now accepts more fine-grained options. Channel1 and Channel2 may be specified in order to play a tone to the specific channel. Both may be specified to play a tone to both
  • channels. The old yes option is still accepted as a way of playing the tone to Channel2 only.
  • The AMI Status response event to the AMI Status action replaces the BridgedChannel and BridgedUniqueid headers with the BridgeID header to indicate what bridge the channel is currently in.
  • The AMI Hold event has been moved out of individual channel drivers, into core, and is now two events: Hold and Unhold. The status field has been removed.
  • The AMI events in app_queue have been made more consistent with each other. Events that reference channels (QueueCaller* and Agent*) will show information about each channel. The (infamous) Join and Leave AMI events have been changed to QueueCallerJoin and QueueCallerLeave.
  • The MCID AMI event now publishes a channel snapshot when available and its non-channel-snapshot parameters now use either the MCallerID or MConnectedID prefixes with Subaddr*, Name*, and Num* suffixes instead of CallerID and ConnectedID to avoid confusion with similarly named parameters in the channel snapshot.
  • The AMI events Agentlogin and Agentlogoff have been renamed AgentLogin and AgentLogoff respectively.
  • The Channel key used in the AlarmClear, Alarm, and DNDState has been renamed DAHDIChannel since it does not convey an Asterisk channel name.
  • ChannelUpdate events have been removed.
  • All AMI events now contain a SystemName field, if available.
  • Local channel optimization is now conveyed in two events: LocalOptimizationBegin and LocalOptimizationEnd. The Begin event is sent when the Local channel driver begins attempting to optimize itself out of the media path; the End event is sent after the channel halves have successfully optimized themselves out of the media path.
  • Local channel information in events is now prefixed with LocalOne and LocalTwo. This replaces the suffix of '1' and '2' for the two halves of the Local channel. This affects the LocalBridge, LocalOptimizationBeginand LocalOptimizationEnd events.
  • The option allowmultiplelogin can now be set or overriden in a particular account. When set in the general context, it will act as the default setting for defined accounts.
  • The BridgeAction event was removed. It technically added no value, as the Bridge Action already receives confirmation of the bridge through a successful completion Event.
  • The BridgeExec events were removed. These events duplicated the events that occur in the Bridging API, and are conveyed now through BridgeCreateBridgeEnter, and BridgeLeave events.
  • The RTCPSent/RTCPReceived events have been significantly modified from previous versions. They now report all SR/RR packets sent/received, and have been restructured to better reflect the data sent in a SR/RR. In particular, the event structure now supports multiple report blocks.
  • Added BlindTransfer and AttendedTransfer events. These events are raised when a blind transfer/attended transfer completes successfully. They contain information about the transfer that just completed, including the location of the transferred channel.
  • Added a 'security' class authorization for security events emitted by AMI. Note that these events are produced by the Asterisk Security Event framework.
  • The majority of Queue events have had the Location field renamed to the Interface field.

CDR (Call Detail Records)

...

  • Parking has been pulled from core and placed into a separate module called res_parking. Configuration for parking should now be performed in res_parking.conf. Configuration for parking in features.conf  is now unsupported.
  • Core attended transfers now have several new options. While performing an attended transfer, the transferer now has the following options:
    • *1 - cancel the attended transfer (configurable via atxferabort)
    • *2 - complete the attended transfer, dropping out of the call (configurable via atxfercomplete)
    • *3 - complete the attended transfer, but stay in the call. This will turn the call into a multi-party bridge (configurable via atxferthreeway)
    • *4 - swap to the other party. Once an attended transfer has begun, this options may be used multiple times (configurable via atxferswap)
  • For DTMF blind and attended transfers, the channel variable TRANSFER_CONTEXT must be on the channel initiating the transfer to have any effect.
  • The BRIDGE_FEATURES channel variable would previously only set features for the calling party and would set this feature regardless of whether the feature was in caps or in lowercase. Use of a caps feature for a letter will now apply the feature to the calling party while use of a lowercase letter will apply that feature to the called party.
  • Add support for automixmon to the BRIDGE_FEATURES channel variable.
  • The channel variable DYNAMIC_PEERNAME is redundant with BRIDGEPEER and is removed. The more useful DYNAMIC_WHO_ACTIVATED gives the channel name that activated the dynamic feature.
  • The channel variables DYNAMIC_FEATURENAME and DYNAMIC_WHO_ACTIVATED are set only on the channel executing the dynamic feature. Executing a dynamic feature on the bridge peer in a multi-party bridge will execute it on all peers of the activating channel.
  • You can now have the settings for a channel updated using the FEATURE() and FEATUREMAP() functions inherited to child channels by setting FEATURE(inherit)=yes.
  • automixmon now supports additional channel variables from automon including: TOUCH_MIXMONITOR_PREFIX, TOUCH_MIXMONITOR_MESSAGE_START, and TOUCH_MIXMONITOR_MESSAGE_STOP.
  • A new general features.conf  option recordingfailsound has been added which allows setting a failure sound for a user tries to invoke a recording feature such as automon or automixmon and it fails.
  • It is no longer necessary (or possible) to define the ATXFER_NULL_TECH in features.c for atxferdropcall=no to work properly. This option now just works.

...

  • Added support for RFC 3327 "Path" headers. This can be enabled in sip.conf using the supportpath setting, either on a global basis or on a peer basis. This setting enables Asterisk to route outgoing out-of-dialog requests via a set of proxies by using a pre-loaded route-set defined by the Path headers in the REGISTER request. See Realtime updates for more configuration information.
  • The SIP_CODEC family of variables may now specify more than one codec. Each codec must be separated by a comma. The first codec specified is the preferred codec for the offer. This allows a dialplan writer to specify both audio and video codecs, e.g., 

    No Format
    same => n,Set(SIP_CODEC=ulaw,h264)
  • The callevents parameter has been removed. Hold AMI events are now raised in the core, and can be filtered out using the eventfilter parameter in manager.conf.
  • Added ignore_requested_pref. When enabled, this will use the preferred codecs configured for a peer instead of the requested codec.
  •  The option register_retry_403 has been added to chan_sip to work around   servers that are known to erroneously send 403 in response to valid  REGISTER requests and allows Asterisk to continue attepmting to connect.  

...