mirror of https://github.com/asterisk/asterisk
				
				
				
			
			You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							400 lines
						
					
					
						
							19 KiB
						
					
					
				
			
		
		
	
	
							400 lines
						
					
					
						
							19 KiB
						
					
					
				| ===========================================================
 | |
| ===
 | |
| === Information for upgrading between Asterisk versions
 | |
| ===
 | |
| === These files document all the changes that MUST be taken
 | |
| === into account when upgrading between the Asterisk
 | |
| === versions listed below. These changes may require that
 | |
| === you modify your configuration files, dialplan or (in
 | |
| === some cases) source code if you have your own Asterisk
 | |
| === modules or patches. These files also include advance
 | |
| === notice of any functionality that has been marked as
 | |
| === 'deprecated' and may be removed in a future release,
 | |
| === along with the suggested replacement functionality.
 | |
| ===
 | |
| === UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
 | |
| === UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
 | |
| === UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
 | |
| === UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8
 | |
| === UPGRADE-10.txt  -- Upgrade info for 1.8 to 10
 | |
| === UPGRADE-11.txt  -- Upgrade info for 10 to 11
 | |
| === UPGRADE-12.txt  -- Upgrade info for 11 to 12
 | |
| ===========================================================
 | |
| 
 | |
| General Asterisk Changes:
 | |
|  - The asterisk command line -I option and the asterisk.conf internal_timing
 | |
|    option are removed and always enabled if any timing module is loaded.
 | |
| 
 | |
|  - The per console verbose level feature as previously implemented caused a
 | |
|    large performance penalty.  The fix required some minor incompatibilities
 | |
|    if the new rasterisk is used to connect to an earlier version.  If the new
 | |
|    rasterisk connects to an older Asterisk version then the root console verbose
 | |
|    level is always affected by the "core set verbose" command of the remote
 | |
|    console even though it may appear to only affect the current console.  If
 | |
|    an older version of rasterisk connects to the new version then the
 | |
|    "core set verbose" command will have no effect.
 | |
| 
 | |
|  - The asterisk compatibility options in asterisk.conf have been removed.
 | |
|    These options enabled certain backwards compatibility features for
 | |
|    pbx_realtime, res_agi, and app_set that made their behaviour similar to
 | |
|    Asterisk 1.4. Users who used these backwards compatibility settings should
 | |
|    update their dialplans to use ',' instead of '|' as a delimiter, and should
 | |
|    use the Set dialplan application instead of the MSet dialplan application.
 | |
| 
 | |
| Build System:
 | |
|  - Sample config files have been moved from configs/ to a subfolder of that
 | |
|    directory, 'samples'.
 | |
| 
 | |
|  - The menuselect utility has been pulled into the Asterisk repository. As a
 | |
|    result, the libxml2 development library is now a required dependency for
 | |
|    Asterisk.
 | |
| 
 | |
|  - Added a new Compiler Flag, REF_DEBUG. When enabled, reference counted
 | |
|    objects will emit additional debug information to the refs log file located
 | |
|    in the standard Asterisk log file directory. This log file is useful in
 | |
|    tracking down object leaks and other reference counting issues. Prior to
 | |
|    this version, this option was only available by modifying the source code
 | |
|    directly. This change also includes a new script, refcounter.py, in the
 | |
|    contrib folder that will process the refs log file.
 | |
| 
 | |
| Applications:
 | |
| 
 | |
| ConfBridge:
 | |
|  - The sound_place_into_conference sound used in Confbridge is now deprecated
 | |
|    and is no longer functional since it has been broken since its inception
 | |
|    and the fix involved using a different method to achieve the same goal. The
 | |
|    new method to achieve this functionality is by using sound_begin to play
 | |
|    a sound to the conference when waitmarked users are moved into the conference.
 | |
| 
 | |
|  - Added 'Admin' header to ConfbridgeJoin, ConfbridgeLeave, ConfbridgeMute,
 | |
|    ConfbridgeUnmute, and ConfbridgeTalking AMI events.
 | |
| 
 | |
| ControlPlayback:
 | |
|  - The ControlPlayback and 'control stream file' AGI command will no longer
 | |
|    implicitly answer the channel. If you do not answer the channel prior to
 | |
|    using either this application or AGI command, you must send Progress
 | |
|    first.
 | |
| 
 | |
| Queue:
 | |
|  - Queue rules provided in queuerules.conf can no longer be named "general".
 | |
| 
 | |
| SetMusicOnHold:
 | |
|  - The SetMusicOnHold dialplan application was deprecated and has been removed.
 | |
|    Users of the application should use the CHANNEL function's musicclass
 | |
|    setting instead.
 | |
| 
 | |
| WaitMusicOnHold:
 | |
|  - The WaitMusicOnHold dialplan application was deprecated and has been
 | |
|    removed. Users of the application should use MusicOnHold with a duration
 | |
|    parameter instead.
 | |
| 
 | |
| CDR Backends:
 | |
|  - The cdr_sqlite module was deprecated and has been removed. Users of this
 | |
|    module should use the cdr_sqlite3_custom module instead.
 | |
| 
 | |
| Channel Drivers:
 | |
| 
 | |
| chan_dahdi:
 | |
|  - SS7 support now requires libss7 v2.0 or later.
 | |
| 
 | |
|  - Added the inband_on_setup_ack compatibility option to chan_dahdi.conf to
 | |
|    deal with switches that don't send an inband progress indication in the
 | |
|    SETUP ACKNOWLEDGE message.
 | |
|    Default is now no.
 | |
| 
 | |
| chan_gtalk
 | |
|  - This module was deprecated and has been removed. Users of chan_gtalk
 | |
|    should use chan_motif.
 | |
| 
 | |
| chan_h323
 | |
|  - This module was deprecated and has been removed. Users of chan_h323
 | |
|    should use chan_ooh323.
 | |
| 
 | |
| chan_jingle
 | |
|  - This module was deprecated and has been removed. Users of chan_jingle
 | |
|    should use chan_motif.
 | |
| 
 | |
| chan_pjsip:
 | |
|  - Added a 'force_avp' option to chan_pjsip which will force the usage of
 | |
|    'RTP/AVP', 'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' as the media transport type
 | |
|    in SDP offers depending on settings, even when DTLS is used for media
 | |
|    encryption.
 | |
| 
 | |
|  - Added a 'media_use_received_transport' option to chan_pjsip which will
 | |
|    cause the SDP answer to use the media transport as received in the SDP
 | |
|    offer.
 | |
| 
 | |
| chan_sip:
 | |
|  - Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
 | |
|    interoperability.
 | |
| 
 | |
|  - The SIPPEER dialplan function no longer supports using a colon as a
 | |
|    delimiter for parameters. The parameters for the function should be
 | |
|    delimited using a comma.
 | |
| 
 | |
|  - The SIPCHANINFO dialplan function was deprecated and has been removed. Users
 | |
|    of the function should use the CHANNEL function instead.
 | |
| 
 | |
|  - Added a 'force_avp' option for chan_sip. When enabled this option will
 | |
|    cause the media transport in the offer or answer SDP to be 'RTP/AVP',
 | |
|    'RTP/AVPF', 'RTP/SAVP', or 'RTP/SAVPF' even if a DTLS stream has been
 | |
|    configured. This option can be set to improve interoperability with WebRTC
 | |
|    clients that don't use the RFC defined transport for DTLS.
 | |
| 
 | |
|  - The 'dtlsverify' option in chan_sip now has additional values besides
 | |
|    'yes' and 'no'. If 'yes' is specified both the certificate and fingerprint
 | |
|    will be verified. If 'no' is specified then neither the certificate or
 | |
|    fingerprint is verified. If 'certificate' is specified then only the
 | |
|    certificate is verified. If 'fingerprint' is specified then only the
 | |
|    fingerprint is verified.
 | |
| 
 | |
|  - A 'dtlsfingerprint' option has been added to chan_sip which allows the
 | |
|    hash to be specified for the DTLS fingerprint placed in SDP. Supported
 | |
|    values are 'sha-1' and 'sha-256' with 'sha-256' being the default.
 | |
| 
 | |
|  - The 'progressinband=never' option is now more zealous in the persecution of
 | |
|    progress messages coming from Asterisk. Channels bridged with a SIP channel
 | |
|    that has 'progressinband=never' set will not be able to forward their
 | |
|    progress indications through to the SIP device. chan_sip will now turn such
 | |
|    progress indications into a 180 Ringing (if a 180 has not yet been
 | |
|    transmitted) if 'progressinband=never'.
 | |
| 
 | |
|   - The codec preference order in an SDP during an offer is slightly different
 | |
|     than previous releases. Prior to Asterisk 13, the preference order of
 | |
|     codecs used to be:
 | |
|     (1) Our preferred codec
 | |
|     (2) Our configured codecs
 | |
|     (3) Any non-audio joint codecs
 | |
| 
 | |
|     One of the ways the new media format architecture in Asterisk 13 improves
 | |
|     performance is by reference counting formats, such that they can be reused
 | |
|     in many places without additional allocation. To not require a large
 | |
|     amount of locking, an instance of a format is immutable by convention.
 | |
|     This works well except for formats with attributes. Since a media format
 | |
|     with an attribute is a different object than the same format without an
 | |
|     attribute, we have to carry over the formats with attributes from an
 | |
|     inbound offer so that the correct attributes are offered in an outgoing
 | |
|     INVITE request. This requires some subtle tweaks to the preference order
 | |
|     to ensure that the media format with attributes is offered to a remote
 | |
|     peer, as opposed to the same media format (but without attributes) that
 | |
|     may be stored in the peer object.
 | |
| 
 | |
|     All of this means that our offer offer list will now be:
 | |
|     (1) Our preferred codec
 | |
|     (2) Any joint codecs offered by the inbound offer
 | |
|     (3) All other codecs that are not the preferred codec and not a joint
 | |
|         codec offered by the inbound offer
 | |
| 
 | |
| chan_unistim:
 | |
|  - The unistim.conf 'dateformat' has changed meaning of options values to conform
 | |
|    values used inside Unistim protocol
 | |
| 
 | |
|  - Added 'dtmf_duration' option with changing default operation to disable
 | |
|    receivied dtmf playback on unistim phone
 | |
| 
 | |
| Core:
 | |
| 
 | |
| Account Codes:
 | |
|  - accountcode behavior changed somewhat to add functional peeraccount
 | |
|    support.  The main change is that local channels now cross accountcode
 | |
|    and peeraccount across the special bridge between the ;1 and ;2 channels
 | |
|    just like channels between normal bridges.  See the CHANGES file for
 | |
|    more information.
 | |
| 
 | |
| ARI:
 | |
|  - The ARI version has been changed to 1.5.0. This is to reflect backwards
 | |
|    compatible changes made since 12.0.0 was released.
 | |
| 
 | |
|  - Added a new ARI resource 'mailboxes' which allows the creation and
 | |
|    modification of mailboxes managed by external MWI. Modules res_mwi_external
 | |
|    and res_stasis_mailbox must be enabled to use this resource.
 | |
| 
 | |
|  - Added new events for externally initiated transfers. The event
 | |
|    BridgeBlindTransfer is now raised when a channel initiates a blind transfer
 | |
|    of a bridge in the ARI controlled application to the dialplan; the
 | |
|    BridgeAttendedTransfer event is raised when a channel initiates an
 | |
|    attended transfer of a bridge in the ARI controlled application to the
 | |
|    dialplan.
 | |
| 
 | |
|  - Channel variables may now be specified as a body parameter to the
 | |
|    POST /channels operation. The 'variables' key in the JSON is interpreted
 | |
|    as a sequence of key/value pairs that will be added to the created channel
 | |
|    as channel variables. Other parameters in the JSON body are treated as
 | |
|    query parameters of the same name.
 | |
| 
 | |
|  - A bug fix in bridge creation has caused a behavioural change in how
 | |
|    subscriptions are created for bridges. A bridge created through ARI, does
 | |
|    not, by itself, have a subscription created for any particular Stasis
 | |
|    application. When a channel in a Stasis application joins a bridge, an
 | |
|    implicit event subscription is created for that bridge as well. Previously,
 | |
|    when a channel left such a bridge, the subscription was leaked; this allowed
 | |
|    for later bridge events to continue to be pushed to the subscribed
 | |
|    applications. That leak has been fixed; as a result, bridge events that were
 | |
|    delivered after a channel left the bridge are no longer delivered. An
 | |
|    application must subscribe to a bridge through the applications resource if
 | |
|    it wishes to receive all events related to a bridge.
 | |
| 
 | |
| AMI:
 | |
|  - The AMI version has been changed to 2.5.0. This is to reflect backwards
 | |
|    compatible changes made since 12.0.0 was released.
 | |
| 
 | |
|  - The DialStatus field in the DialEnd event can now have additional values.
 | |
|    This includes ABORT, CONTINUE, and GOTO.
 | |
| 
 | |
|  - The res_mwi_external_ami module can, if loaded, provide additional AMI
 | |
|    actions and events that convey MWI state within Asterisk. This includes
 | |
|    the MWIGet, MWIUpdate, and MWIDelete actions, as well as the MWIGet and
 | |
|    MWIGetComplete events that occur in response to an MWIGet action.
 | |
| 
 | |
|  - AMI now contains a new class authorization, 'security'. This is used with
 | |
|    the following new events: FailedACL, InvalidAccountID, SessionLimit,
 | |
|    MemoryLimit, LoadAverageLimit, RequestNotAllowed, AuthMethodNotAllowed,
 | |
|    RequestBadFormat, SuccessfulAuth, UnexpectedAddress, ChallengeResponseFailed,
 | |
|    InvalidPassword, ChallengeSent, and InvalidTransport.
 | |
| 
 | |
|  - Bridge related events now have two additional fields: BridgeName and
 | |
|    BridgeCreator. BridgeName is a descriptive name for the bridge;
 | |
|    BridgeCreator is the name of the entity that created the bridge. This
 | |
|    affects the following events: ConfbridgeStart, ConfbridgeEnd,
 | |
|    ConfbridgeJoin, ConfbridgeLeave, ConfbridgeRecord, ConfbridgeStopRecord,
 | |
|    ConfbridgeMute, ConfbridgeUnmute, ConfbridgeTalking, BlindTransfer,
 | |
|    AttendedTransfer, BridgeCreate, BridgeDestroy, BridgeEnter, BridgeLeave
 | |
| 
 | |
|  - MixMonitor AMI actions now require users to have authorization classes.
 | |
|    * MixMonitor - system
 | |
|    * MixMonitorMute - call or system
 | |
|    * StopMixMonitor - call or system
 | |
| 
 | |
|  - Removed the undocumented manager.conf block-sockets option.  It interferes with
 | |
|    TCP/TLS inactivity timeouts.
 | |
| 
 | |
|  - The response to the PresenceState AMI action has historically contained two
 | |
|    Message keys. The first of these is used as an informative message regarding
 | |
|    the success/failure of the action; the second contains a Presence state
 | |
|    specific message. Having two keys with the same unique name in an AMI
 | |
|    message is cumbersome for some client; hence, the Presence specific Message
 | |
|    has been deprecated. The message will now contain a PresenceMessage key
 | |
|    for the presence specific information; the Message key containing presence
 | |
|    information will be removed in the next major version of AMI.
 | |
| 
 | |
|  - The manager.conf 'eventfilter' now takes an "extended" regular expression
 | |
|    instead of a "basic" one.
 | |
| 
 | |
| CDRs:
 | |
|  - The "endbeforehexten" setting now defaults to "yes", instead of "no".
 | |
|    When set to "no", yhis setting will cause a new CDR to be generated when a
 | |
|    channel enters into hangup logic (either the 'h' extension or a hangup
 | |
|    handler subroutine). In general, this is not the preferred default: this
 | |
|    causes extra CDRs to be generated for a channel in many common dialplans.
 | |
| 
 | |
| CLI commands:
 | |
|  - "core show settings" now lists the current console verbosity in addition
 | |
|    to the root console verbosity.
 | |
| 
 | |
|  - "core set verbose" has not been able to support the by module verbose
 | |
|    logging levels since verbose logging levels were made per console.  That
 | |
|    syntax is now removed and a silence option added in its place.
 | |
| 
 | |
| Logging:
 | |
|  - The 'verbose' setting in logger.conf still takes an optional argument,
 | |
|    specifying the verbosity level for each logging destination.  However,
 | |
|    the default is now to once again follow the current root console level.
 | |
|    As a result, using the AMI Command action with "core set verbose" could
 | |
|    again set the root console verbose level and affect the verbose level
 | |
|    logged.
 | |
| 
 | |
| HTTP:
 | |
|  - Added http.conf session_inactivity timer option to close HTTP connections
 | |
|    that aren't doing anything.
 | |
| 
 | |
|  - Added support for persistent HTTP connections.  To enable persistent
 | |
|    HTTP connections configure the keep alive time between HTTP requests.  The
 | |
|    keep alive time between HTTP requests is configured in http.conf with the
 | |
|    session_keep_alive parameter.
 | |
| 
 | |
| Realtime Configuration:
 | |
|  - WARNING: The database migration script that adds the 'extensions' table for
 | |
|    realtime had to be modified due to an error when installing for MySQL.  The
 | |
|    'extensions' table's 'id' column was changed to be a primary key.  This could
 | |
|    potentially cause a migration problem.  If so, it may be necessary to
 | |
|    manually alter the affected table/column to bring it back in line with the
 | |
|    migration scripts.
 | |
| 
 | |
|  - New columns have been added to realtime tables for 'support_path' on
 | |
|    ps_registrations and ps_aors and for 'path' on ps_contacts for the new
 | |
|    SIP Path support in chan_pjsip.
 | |
| 
 | |
|  - The following new tables have been added for pjsip realtime: 'ps_systems',
 | |
|    'ps_globals', 'ps_tranports', 'ps_registrations'.
 | |
| 
 | |
|  - The following columns were added to the 'ps_aors' realtime table:
 | |
|    'maximum_expiration', 'outbound_proxy', and 'support_path'.
 | |
| 
 | |
|  - The following columns were added to the 'ps_contacts' realtime table:
 | |
|    'outbound_proxy', 'user_agent', and 'path'.
 | |
| 
 | |
|  - New columns have been added to the ps_endpoints realtime table for the
 | |
|    'media_address', 'redirect_method' and 'set_var' options.  Also the
 | |
|    'mwi_fromuser' column was renamed to 'mwi_from_user'. A new column
 | |
|    'message_context' was added to let users configure how MESSAGE requests are
 | |
|    routed to the dialplan.
 | |
| 
 | |
|  - A new column was added to the 'ps_globals' realtime table for the 'debug'
 | |
|    option.
 | |
| 
 | |
|  - PJSIP endpoint columns 'tos_audio' and 'tos_video' have been changed from
 | |
|    yes/no enumerators to string values. 'cos_audio' and 'cos_video' have been
 | |
|    changed from yes/no enumerators to integer values. PJSIP transport column
 | |
|    'tos' has been changed from a yes/no enumerator to a string value. 'cos' has
 | |
|    been changed from a yes/no enumerator to an integer value.
 | |
| 
 | |
|  - The 'queues' and 'queue_members' realtime tables have been added to the
 | |
|    config Alembic scripts.
 | |
| 
 | |
|  - A new set of Alembic scripts has been added for CDR tables. This will create
 | |
|    a 'cdr' table with the default schema that Asterisk expects.
 | |
| 
 | |
|  - A new upgrade script has been added that adds a 'queue_rules' table for
 | |
|    app_queue. Users of app_queue can store queue rules in a database. It is
 | |
|    important to note that app_queue only looks for this table on module load or
 | |
|    module reload; for more information, see the CHANGES file.
 | |
| 
 | |
| Resources:
 | |
| 
 | |
| res_odbc:
 | |
| - The compatibility setting, allow_empty_string_in_nontext, has been removed.
 | |
|   Empty column values will be stored as empty strings during realtime updates.
 | |
| 
 | |
| res_jabber:
 | |
|  - This module was deprecated and has been removed. Users of this module should
 | |
|    use res_xmpp instead.
 | |
| 
 | |
| res_http_websocket:
 | |
|  - Added a compatibility option to ari.conf, sip.conf, and pjsip.conf
 | |
|    'websocket_write_timeout'. When a websocket connection exists where Asterisk
 | |
|    writes a substantial amount of data to the connected client, and the connected
 | |
|    client is slow to process the received data, the socket may be disconnected.
 | |
|    In such cases, it may be necessary to adjust this value.
 | |
|    Default is 100 ms.
 | |
| Scripts:
 | |
| 
 | |
| safe_asterisk:
 | |
|  - The safe_asterisk script was previously not installed on top of an existing
 | |
|    version. This caused bug-fixes in that script not to be deployed. If your
 | |
|    safe_asterisk script is customized, be sure to keep your changes. Custom
 | |
|    values for variables should be created in *.sh file(s) inside
 | |
|    ASTETCDIR/startup.d/. See ASTERISK-21965.
 | |
| 
 | |
|  - Changed a log message in safe_asterisk and the $NOTIFY mail subject. If
 | |
|    you use tools to parse either of them, update your parse functions
 | |
|    accordingly. The changed strings are:
 | |
|    - "Exited on signal $EXITSIGNAL" => "Asterisk exited on signal $EXITSIGNAL."
 | |
|    - "Asterisk Died" => "Asterisk on $MACHINE died (sig $EXITSIGNAL)"
 | |
| 
 | |
| Utilities:
 | |
|  - The refcounter program has been removed in favor of the refcounter.py script
 | |
|    in contrib/scripts.
 | |
| 
 | |
| ===========================================================
 | |
| ===========================================================
 |