2008-11-19 12:42:19 +00:00
|
|
|
===========================================================
|
2008-11-21 20:42:37 +00:00
|
|
|
===
|
2010-06-03 18:53:24 +00:00
|
|
|
=== Information for upgrading between Asterisk versions
|
2008-02-08 16:49:19 +00:00
|
|
|
===
|
2008-11-21 20:42:37 +00:00
|
|
|
=== 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
|
2011-01-04 16:38:28 +00:00
|
|
|
=== modules or patches. These files also include advance
|
2008-11-21 20:42:37 +00:00
|
|
|
=== notice of any functionality that has been marked as
|
|
|
|
=== 'deprecated' and may be removed in a future release,
|
|
|
|
=== along with the suggested replacement functionality.
|
2008-02-08 16:49:19 +00:00
|
|
|
===
|
|
|
|
=== UPGRADE-1.2.txt -- Upgrade info for 1.0 to 1.2
|
|
|
|
=== UPGRADE-1.4.txt -- Upgrade info for 1.2 to 1.4
|
2008-11-19 12:42:19 +00:00
|
|
|
=== UPGRADE-1.6.txt -- Upgrade info for 1.4 to 1.6
|
2010-07-23 19:17:30 +00:00
|
|
|
=== UPGRADE-1.8.txt -- Upgrade info for 1.6 to 1.8
|
2013-08-30 18:35:21 +00:00
|
|
|
=== UPGRADE-10.txt -- Upgrade info for 1.8 to 10
|
|
|
|
=== UPGRADE-11.txt -- Upgrade info for 10 to 11
|
2008-11-21 20:42:37 +00:00
|
|
|
===
|
2008-11-19 12:42:19 +00:00
|
|
|
===========================================================
|
2014-04-04 19:02:57 +00:00
|
|
|
From 12.2.0 to 12.3.0:
|
|
|
|
|
|
|
|
- The asterisk command line -I option and the asterisk.conf internal_timing
|
|
|
|
option are removed and always enabled if any timing module is loaded.
|
|
|
|
|
2014-05-02 16:33:59 +00:00
|
|
|
chan_sip:
|
|
|
|
- Made set SIPREFERREDBYHDR as inheritable for better chan_pjsip
|
|
|
|
interoperability.
|
|
|
|
|
2014-02-17 15:21:59 +00:00
|
|
|
From 12.1.0 to 12.2.0:
|
2014-03-28 17:35:48 +00:00
|
|
|
|
|
|
|
AMI:
|
|
|
|
- The AMI version has been changed from 2.1.0 to 2.2.0. This is to reflect
|
|
|
|
the backwards compatible changes listed in the CHANGES file.
|
|
|
|
|
|
|
|
ARI:
|
|
|
|
- The ARI version has been changed from 1.1.0 to 1.2.0. This is to reflect
|
|
|
|
the backwards compatible changes listed in the CHANGES file.
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
2014-03-28 16:48:32 +00:00
|
|
|
IAX2:
|
|
|
|
- When communicating with a peer on an Asterisk 1.4 or earlier system, the
|
|
|
|
chan_iax2 parameter 'connectedline' must be set to "no" in iax.conf. This
|
|
|
|
prevents an incompatible connected line frame from an Astersik 1.8 or later
|
|
|
|
system from causing a hangup in an Asterisk 1.4 or earlier system. Note that
|
|
|
|
this particular incompatibility has always existed between 1.4 and 1.8 and
|
|
|
|
later versions; this upgrade note is simply informing users of its existance.
|
|
|
|
|
|
|
|
ODBC:
|
|
|
|
- A compatibility setting, allow_empty_string_in_nontext, has been added to
|
|
|
|
res_odbc.conf. When enabled (default behavior), empty column values are
|
|
|
|
stored as empty strings during realtime updates. Disabling this option
|
|
|
|
causes empty column values to be stored as NULLs for non-text columns.
|
|
|
|
|
|
|
|
Disable it for PostgreSQL backends in order to avoid errors caused by
|
|
|
|
updating integer columns with an empty string instead of NULL
|
2014-04-07 14:50:04 +00:00
|
|
|
(sippeers, sipregs, ..).
|
2014-03-28 16:48:32 +00:00
|
|
|
|
2014-02-17 15:21:59 +00:00
|
|
|
PJSIP:
|
2014-03-28 17:35:48 +00:00
|
|
|
- The PJSIP registrar now stores the contents of the User-Agent header of
|
|
|
|
incoming REGISTER requests for each contact that is registered. If using
|
|
|
|
realtime for PJSIP contacts, this means that the schema has been updated to
|
|
|
|
add a user_agent column. An alembic revision has been added to facilitate
|
|
|
|
this update.
|
2014-03-25 17:30:56 +00:00
|
|
|
|
2014-03-28 17:35:48 +00:00
|
|
|
- PJSIP endpoints now have a "message_context" option that can be used to
|
|
|
|
determine where to route incoming MESSAGE requests from the endpoint.
|
2014-02-17 15:21:59 +00:00
|
|
|
|
2014-03-06 18:50:44 +00:00
|
|
|
Realtime Configuration:
|
2014-03-28 17:35:48 +00:00
|
|
|
- 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.
|
2014-03-06 18:50:44 +00:00
|
|
|
|
2014-02-06 20:06:57 +00:00
|
|
|
From 12.0.0 to 12.1.0:
|
CDRs: fix a variety of dial status problems, h/hangup handler creating CDRs
This patch fixes a number of small-ish problems that were noticed when
witnessing the records that the FreePBX dialplan produces:
(1) Mid-call events (as well as privacy options) have the ability to change the
overall state of the Dial operation after the called party answers. This
means that publishing the DialEnd event when the called party is premature;
we have to wait for the execution of these subroutines to complete before
we can signal the overall status of the DialEnd. This patch moves that
publication and adds handlers for the mid-call events.
(2) The AST_FLAG_OUTGOING channel flag is cleared if an after bridge goto
datastore is detected. This flag was preventing CDRs from being recorded
for all outbound channels that had a 'continue' option enabled on them by
the Dial application.
(3) The CDR engine now locks the 'Dial' application as being the CDR
application if it detects that the current CDR has entered that app. This
is similar to the logic that is done for Parking. In general, if we entered
into Dial, then we want that CDR to record the application as such - this
prevents pre-dial handlers, mid-call handlers, and other shenaniganry
from changing the application value.
(4) The CDR engine now checks for the AST_SOFTHANGUP_HANGUP_EXEC in more places
to determine if the channel is in hangup logic or dead. In either case, we
don't want to record changes in the channel.
(5) The default option for "endbeforehexten" has been changed to "yes". In
general, you don't want to see CDRs in the 'h' exten or in hangup logic.
Since the semantics of that option changed in 12, it made sense to update
the default value as well.
(6) Finally, because we now have the ability to synchronize on the messages
published to the CDR topic, on shutdown the CDR engine will now synchronize
to the messages currently in flight. This helps to ensure that all
in-flight CDRs are written before shutting down.
(closes issue ASTERISK-23164)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3154
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:40:24 +00:00
|
|
|
|
|
|
|
- The per console verbose level feature as previously implemented caused a
|
2014-01-14 18:03:06 +00:00
|
|
|
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.
|
|
|
|
|
2014-02-05 14:22:16 +00:00
|
|
|
ARI:
|
|
|
|
- The ARI version has been changed from 1.0.0 to 1.1.0. This is to reflect
|
|
|
|
the backwards compatible changes listed below.
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
2014-02-05 17:27:27 +00:00
|
|
|
- Subscribing to the same device state twice now responds with success
|
|
|
|
instead of returning error on the second attempt.
|
|
|
|
|
2014-02-05 14:22:16 +00:00
|
|
|
AMI:
|
|
|
|
- The AMI version has been changed from 2.0.0 to 2.1.0. This is to reflect
|
|
|
|
the backwards compatible changes listed below.
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
2014-02-06 20:06:57 +00:00
|
|
|
- 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
|
|
|
|
|
CDRs: fix a variety of dial status problems, h/hangup handler creating CDRs
This patch fixes a number of small-ish problems that were noticed when
witnessing the records that the FreePBX dialplan produces:
(1) Mid-call events (as well as privacy options) have the ability to change the
overall state of the Dial operation after the called party answers. This
means that publishing the DialEnd event when the called party is premature;
we have to wait for the execution of these subroutines to complete before
we can signal the overall status of the DialEnd. This patch moves that
publication and adds handlers for the mid-call events.
(2) The AST_FLAG_OUTGOING channel flag is cleared if an after bridge goto
datastore is detected. This flag was preventing CDRs from being recorded
for all outbound channels that had a 'continue' option enabled on them by
the Dial application.
(3) The CDR engine now locks the 'Dial' application as being the CDR
application if it detects that the current CDR has entered that app. This
is similar to the logic that is done for Parking. In general, if we entered
into Dial, then we want that CDR to record the application as such - this
prevents pre-dial handlers, mid-call handlers, and other shenaniganry
from changing the application value.
(4) The CDR engine now checks for the AST_SOFTHANGUP_HANGUP_EXEC in more places
to determine if the channel is in hangup logic or dead. In either case, we
don't want to record changes in the channel.
(5) The default option for "endbeforehexten" has been changed to "yes". In
general, you don't want to see CDRs in the 'h' exten or in hangup logic.
Since the semantics of that option changed in 12, it made sense to update
the default value as well.
(6) Finally, because we now have the ability to synchronize on the messages
published to the CDR topic, on shutdown the CDR engine will now synchronize
to the messages currently in flight. This helps to ensure that all
in-flight CDRs are written before shutting down.
(closes issue ASTERISK-23164)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3154
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:40:24 +00:00
|
|
|
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.
|
|
|
|
|
2014-01-14 18:03:06 +00:00
|
|
|
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.
|
|
|
|
|
|
|
|
Configuration Files:
|
|
|
|
- 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.
|
|
|
|
|
2014-01-16 19:06:57 +00:00
|
|
|
- res_fax now returns the correct rates for V.27ter (4800 or 9600 bit/s).
|
|
|
|
Because of this the default settings would not load, so the minrate (minimum
|
|
|
|
transmission rate) option in res_fax.conf was changed to default to 4800
|
|
|
|
since that is the minimum rate for v.27 which is included in the default
|
|
|
|
modem options.
|
|
|
|
|
2014-01-15 13:14:06 +00:00
|
|
|
Realtime Configuration:
|
2014-02-05 14:22:16 +00:00
|
|
|
- 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.
|
|
|
|
|
CDRs: fix a variety of dial status problems, h/hangup handler creating CDRs
This patch fixes a number of small-ish problems that were noticed when
witnessing the records that the FreePBX dialplan produces:
(1) Mid-call events (as well as privacy options) have the ability to change the
overall state of the Dial operation after the called party answers. This
means that publishing the DialEnd event when the called party is premature;
we have to wait for the execution of these subroutines to complete before
we can signal the overall status of the DialEnd. This patch moves that
publication and adds handlers for the mid-call events.
(2) The AST_FLAG_OUTGOING channel flag is cleared if an after bridge goto
datastore is detected. This flag was preventing CDRs from being recorded
for all outbound channels that had a 'continue' option enabled on them by
the Dial application.
(3) The CDR engine now locks the 'Dial' application as being the CDR
application if it detects that the current CDR has entered that app. This
is similar to the logic that is done for Parking. In general, if we entered
into Dial, then we want that CDR to record the application as such - this
prevents pre-dial handlers, mid-call handlers, and other shenaniganry
from changing the application value.
(4) The CDR engine now checks for the AST_SOFTHANGUP_HANGUP_EXEC in more places
to determine if the channel is in hangup logic or dead. In either case, we
don't want to record changes in the channel.
(5) The default option for "endbeforehexten" has been changed to "yes". In
general, you don't want to see CDRs in the 'h' exten or in hangup logic.
Since the semantics of that option changed in 12, it made sense to update
the default value as well.
(6) Finally, because we now have the ability to synchronize on the messages
published to the CDR topic, on shutdown the CDR engine will now synchronize
to the messages currently in flight. This helps to ensure that all
in-flight CDRs are written before shutting down.
(closes issue ASTERISK-23164)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3154
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:40:24 +00:00
|
|
|
- New columns have been added to realtime tables for 'support_path' on
|
2014-01-15 13:14:06 +00:00
|
|
|
ps_registrations and ps_aors and for 'path' on ps_contacts for the new
|
|
|
|
SIP Path support in chan_pjsip.
|
2014-02-05 14:22:16 +00:00
|
|
|
|
CDRs: fix a variety of dial status problems, h/hangup handler creating CDRs
This patch fixes a number of small-ish problems that were noticed when
witnessing the records that the FreePBX dialplan produces:
(1) Mid-call events (as well as privacy options) have the ability to change the
overall state of the Dial operation after the called party answers. This
means that publishing the DialEnd event when the called party is premature;
we have to wait for the execution of these subroutines to complete before
we can signal the overall status of the DialEnd. This patch moves that
publication and adds handlers for the mid-call events.
(2) The AST_FLAG_OUTGOING channel flag is cleared if an after bridge goto
datastore is detected. This flag was preventing CDRs from being recorded
for all outbound channels that had a 'continue' option enabled on them by
the Dial application.
(3) The CDR engine now locks the 'Dial' application as being the CDR
application if it detects that the current CDR has entered that app. This
is similar to the logic that is done for Parking. In general, if we entered
into Dial, then we want that CDR to record the application as such - this
prevents pre-dial handlers, mid-call handlers, and other shenaniganry
from changing the application value.
(4) The CDR engine now checks for the AST_SOFTHANGUP_HANGUP_EXEC in more places
to determine if the channel is in hangup logic or dead. In either case, we
don't want to record changes in the channel.
(5) The default option for "endbeforehexten" has been changed to "yes". In
general, you don't want to see CDRs in the 'h' exten or in hangup logic.
Since the semantics of that option changed in 12, it made sense to update
the default value as well.
(6) Finally, because we now have the ability to synchronize on the messages
published to the CDR topic, on shutdown the CDR engine will now synchronize
to the messages currently in flight. This helps to ensure that all
in-flight CDRs are written before shutting down.
(closes issue ASTERISK-23164)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3154
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:40:24 +00:00
|
|
|
- The following new tables have been added for pjsip realtime: 'ps_systems',
|
2014-01-31 22:17:50 +00:00
|
|
|
'ps_globals', 'ps_tranports', 'ps_registrations'.
|
2014-02-05 14:22:16 +00:00
|
|
|
|
CDRs: fix a variety of dial status problems, h/hangup handler creating CDRs
This patch fixes a number of small-ish problems that were noticed when
witnessing the records that the FreePBX dialplan produces:
(1) Mid-call events (as well as privacy options) have the ability to change the
overall state of the Dial operation after the called party answers. This
means that publishing the DialEnd event when the called party is premature;
we have to wait for the execution of these subroutines to complete before
we can signal the overall status of the DialEnd. This patch moves that
publication and adds handlers for the mid-call events.
(2) The AST_FLAG_OUTGOING channel flag is cleared if an after bridge goto
datastore is detected. This flag was preventing CDRs from being recorded
for all outbound channels that had a 'continue' option enabled on them by
the Dial application.
(3) The CDR engine now locks the 'Dial' application as being the CDR
application if it detects that the current CDR has entered that app. This
is similar to the logic that is done for Parking. In general, if we entered
into Dial, then we want that CDR to record the application as such - this
prevents pre-dial handlers, mid-call handlers, and other shenaniganry
from changing the application value.
(4) The CDR engine now checks for the AST_SOFTHANGUP_HANGUP_EXEC in more places
to determine if the channel is in hangup logic or dead. In either case, we
don't want to record changes in the channel.
(5) The default option for "endbeforehexten" has been changed to "yes". In
general, you don't want to see CDRs in the 'h' exten or in hangup logic.
Since the semantics of that option changed in 12, it made sense to update
the default value as well.
(6) Finally, because we now have the ability to synchronize on the messages
published to the CDR topic, on shutdown the CDR engine will now synchronize
to the messages currently in flight. This helps to ensure that all
in-flight CDRs are written before shutting down.
(closes issue ASTERISK-23164)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3154
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:40:24 +00:00
|
|
|
- The following columns were added to the 'ps_aors' realtime table:
|
2014-01-31 22:17:50 +00:00
|
|
|
'maximum_expiration', 'outbound_proxy', and 'support_path'.
|
2014-02-05 14:22:16 +00:00
|
|
|
|
CDRs: fix a variety of dial status problems, h/hangup handler creating CDRs
This patch fixes a number of small-ish problems that were noticed when
witnessing the records that the FreePBX dialplan produces:
(1) Mid-call events (as well as privacy options) have the ability to change the
overall state of the Dial operation after the called party answers. This
means that publishing the DialEnd event when the called party is premature;
we have to wait for the execution of these subroutines to complete before
we can signal the overall status of the DialEnd. This patch moves that
publication and adds handlers for the mid-call events.
(2) The AST_FLAG_OUTGOING channel flag is cleared if an after bridge goto
datastore is detected. This flag was preventing CDRs from being recorded
for all outbound channels that had a 'continue' option enabled on them by
the Dial application.
(3) The CDR engine now locks the 'Dial' application as being the CDR
application if it detects that the current CDR has entered that app. This
is similar to the logic that is done for Parking. In general, if we entered
into Dial, then we want that CDR to record the application as such - this
prevents pre-dial handlers, mid-call handlers, and other shenaniganry
from changing the application value.
(4) The CDR engine now checks for the AST_SOFTHANGUP_HANGUP_EXEC in more places
to determine if the channel is in hangup logic or dead. In either case, we
don't want to record changes in the channel.
(5) The default option for "endbeforehexten" has been changed to "yes". In
general, you don't want to see CDRs in the 'h' exten or in hangup logic.
Since the semantics of that option changed in 12, it made sense to update
the default value as well.
(6) Finally, because we now have the ability to synchronize on the messages
published to the CDR topic, on shutdown the CDR engine will now synchronize
to the messages currently in flight. This helps to ensure that all
in-flight CDRs are written before shutting down.
(closes issue ASTERISK-23164)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3154
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:40:24 +00:00
|
|
|
- The following columns were added to the 'ps_contacts' realtime table:
|
2014-01-31 22:17:50 +00:00
|
|
|
'outbound_proxy' and 'path'.
|
2014-02-05 14:22:16 +00:00
|
|
|
|
CDRs: fix a variety of dial status problems, h/hangup handler creating CDRs
This patch fixes a number of small-ish problems that were noticed when
witnessing the records that the FreePBX dialplan produces:
(1) Mid-call events (as well as privacy options) have the ability to change the
overall state of the Dial operation after the called party answers. This
means that publishing the DialEnd event when the called party is premature;
we have to wait for the execution of these subroutines to complete before
we can signal the overall status of the DialEnd. This patch moves that
publication and adds handlers for the mid-call events.
(2) The AST_FLAG_OUTGOING channel flag is cleared if an after bridge goto
datastore is detected. This flag was preventing CDRs from being recorded
for all outbound channels that had a 'continue' option enabled on them by
the Dial application.
(3) The CDR engine now locks the 'Dial' application as being the CDR
application if it detects that the current CDR has entered that app. This
is similar to the logic that is done for Parking. In general, if we entered
into Dial, then we want that CDR to record the application as such - this
prevents pre-dial handlers, mid-call handlers, and other shenaniganry
from changing the application value.
(4) The CDR engine now checks for the AST_SOFTHANGUP_HANGUP_EXEC in more places
to determine if the channel is in hangup logic or dead. In either case, we
don't want to record changes in the channel.
(5) The default option for "endbeforehexten" has been changed to "yes". In
general, you don't want to see CDRs in the 'h' exten or in hangup logic.
Since the semantics of that option changed in 12, it made sense to update
the default value as well.
(6) Finally, because we now have the ability to synchronize on the messages
published to the CDR topic, on shutdown the CDR engine will now synchronize
to the messages currently in flight. This helps to ensure that all
in-flight CDRs are written before shutting down.
(closes issue ASTERISK-23164)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3154
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:40:24 +00:00
|
|
|
- New columns have been added to the ps_endpoints realtime table for the
|
2014-01-31 22:17:50 +00:00
|
|
|
'media_address', 'redirect_method' and 'set_var' options. Also the
|
|
|
|
'mwi_fromuser' column was renamed to 'mwi_from_user'.
|
2014-02-05 14:22:16 +00:00
|
|
|
|
CDRs: fix a variety of dial status problems, h/hangup handler creating CDRs
This patch fixes a number of small-ish problems that were noticed when
witnessing the records that the FreePBX dialplan produces:
(1) Mid-call events (as well as privacy options) have the ability to change the
overall state of the Dial operation after the called party answers. This
means that publishing the DialEnd event when the called party is premature;
we have to wait for the execution of these subroutines to complete before
we can signal the overall status of the DialEnd. This patch moves that
publication and adds handlers for the mid-call events.
(2) The AST_FLAG_OUTGOING channel flag is cleared if an after bridge goto
datastore is detected. This flag was preventing CDRs from being recorded
for all outbound channels that had a 'continue' option enabled on them by
the Dial application.
(3) The CDR engine now locks the 'Dial' application as being the CDR
application if it detects that the current CDR has entered that app. This
is similar to the logic that is done for Parking. In general, if we entered
into Dial, then we want that CDR to record the application as such - this
prevents pre-dial handlers, mid-call handlers, and other shenaniganry
from changing the application value.
(4) The CDR engine now checks for the AST_SOFTHANGUP_HANGUP_EXEC in more places
to determine if the channel is in hangup logic or dead. In either case, we
don't want to record changes in the channel.
(5) The default option for "endbeforehexten" has been changed to "yes". In
general, you don't want to see CDRs in the 'h' exten or in hangup logic.
Since the semantics of that option changed in 12, it made sense to update
the default value as well.
(6) Finally, because we now have the ability to synchronize on the messages
published to the CDR topic, on shutdown the CDR engine will now synchronize
to the messages currently in flight. This helps to ensure that all
in-flight CDRs are written before shutting down.
(closes issue ASTERISK-23164)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/3154
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@407084 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2014-01-31 23:40:24 +00:00
|
|
|
- A new column was added to the 'ps_globals' realtime table for the 'debug'
|
2014-01-31 23:14:19 +00:00
|
|
|
option.
|
2014-01-15 13:14:06 +00:00
|
|
|
|
2014-01-14 18:03:06 +00:00
|
|
|
From 11 to 12:
|
2013-08-30 18:35:21 +00:00
|
|
|
There are many significant architectural changes in Asterisk 12. It is
|
|
|
|
recommended that you not only read through this document for important
|
|
|
|
changes that affect an upgrade, but that you also read through the CHANGES
|
|
|
|
document in depth to better understand the new options available to you.
|
|
|
|
|
|
|
|
Additional information on the architectural changes made in Asterisk can be
|
|
|
|
found on the Asterisk wiki (https://wiki.asterisk.org)
|
|
|
|
|
|
|
|
Of particular note, the following systems in Asterisk underwent significant
|
|
|
|
changes. Documentation for the changes and a specification for their
|
|
|
|
behavior in Asterisk 12 is also available on the Asterisk wiki.
|
|
|
|
- AMI: Many events were changed, and the semantics of channels and bridges
|
|
|
|
were defined. In particular, how channels and bridges behave under
|
|
|
|
transfer scenarios and situations involving multiple parties has
|
|
|
|
changed significantly. See https://wiki.asterisk.org/wiki/x/dAFRAQ
|
|
|
|
for more information.
|
|
|
|
- CDR: CDR logic was extracted from the many locations it existed in across
|
|
|
|
Asterisk and implemented as a consumer of Stasis message bus events.
|
|
|
|
As a result, consistency of records has improved significantly and the
|
|
|
|
behavior of CDRs in transfer scenarios has been defined in the CDR
|
|
|
|
specification. However, significant behavioral changes in CDRs resulted
|
|
|
|
from the transition. The most significant change is the addition of
|
|
|
|
CDR entries when a channel who is the Party A in a CDR leaves a bridge.
|
|
|
|
See https://wiki.asterisk.org/wiki/x/pwpRAQ for more information.
|
|
|
|
- CEL: Much like CDRs, CEL was removed from the many locations it existed in
|
|
|
|
across Asterisk and implemented as a consumer of Stasis message bus
|
|
|
|
events. It now closely follows the Bridging API model of channels and
|
|
|
|
bridges, and has a much closer consistency of conveyed events as AMI.
|
|
|
|
For the changes in events, see https://wiki.asterisk.org/wiki/x/4ICLAQ.
|
|
|
|
|
|
|
|
Build System:
|
|
|
|
- Removed the CHANNEL_TRACE development mode build option. Certain aspects of
|
|
|
|
the CHANNEL_TRACE build option were incompatible with the new bridging
|
|
|
|
architecture.
|
|
|
|
|
|
|
|
- Asterisk now depends on libjansson, libuuid and optionally (but recommended)
|
|
|
|
libxslt and uriparser.
|
|
|
|
|
|
|
|
- The new SIP stack and channel driver uses a particular version of PJSIP.
|
|
|
|
Please see https://wiki.asterisk.org/wiki/x/J4GLAQ for more information on
|
|
|
|
configuring and installing PJSIP for use with Asterisk.
|
|
|
|
|
|
|
|
AgentLogin and chan_agent:
|
|
|
|
- Along with AgentRequest, this application has been modified to be a
|
|
|
|
replacement for chan_agent. The chan_agent module and the Agent channel
|
|
|
|
driver have been removed from Asterisk, as the concept of a channel driver
|
|
|
|
proxying in front of another channel driver was incompatible with the new
|
|
|
|
architecture (and has had numerous problems through past versions of
|
|
|
|
Asterisk). 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.
|
|
|
|
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
- 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, and savecallsin. These options were obsoleted by the move from
|
|
|
|
a channel driver model to the bridging/application model provided by
|
|
|
|
app_agent_pool.
|
|
|
|
|
|
|
|
- The AGENTUPDATECDR channel variable has also been removed, for the same
|
|
|
|
reason as the updatecdr option.
|
|
|
|
|
|
|
|
- The endcall and enddtmf configuration options are removed. Use the
|
|
|
|
dialplan function CHANNEL(dtmf-features) to set DTMF features on the agent
|
|
|
|
channel before calling AgentLogin.
|
|
|
|
|
2013-06-17 03:00:38 +00:00
|
|
|
AgentMonitorOutgoing
|
2013-08-30 18:35:21 +00:00
|
|
|
- This application has been removed. It was a holdover from when
|
|
|
|
AgentCallbackLogin was removed.
|
|
|
|
|
app_cdr,app_forkcdr,func_cdr: Synchronize with engine when manipulating state
When doing the rework of the CDR engine that pushed all of the logic into cdr.c
and made it respond to changes in channel state over Stasis, we knew that
accessing the CDR engine from the dialplan would be "slightly"
non-deterministic. Dialplan threads would be accessing CDRs while Stasis
threads would be updating the state of said CDRs - whereas in the past,
everything happened on the dialplan threads. Tests have shown that "slightly"
is in reality "very".
This patch synchronizes things by making the dialplan applications/functions
that manipulate CDRs do so over Stasis. ForkCDR, NoCDR, ResetCDR, CDR, and
CDR_PROP now all use Stasis to send their requests over to the CDR engine,
and synchronize on the channel Stasis topic via a subscription so that they
return their values/control to the dialplan at the appropriate time.
While going through this, the following changes were also made:
* DISA, which can reset the CDR when a user successfully authenticates, now
just uses the ResetCDR app to do this. This prevents having to duplicate
the same Stasis synchronization logic in that application.
* Answer no longer disables CDRs. It actually didn't work anyway - calling
DISABLE on the channel's CDR doesn't stop the CDR from getting the Answer
time - it just kills all CDRs on that channel, which isn't what the caller
would intend.
(closes issue ASTERISK-22884)
(closes issue ASTERISK-22886)
Review: https://reviewboard.asterisk.org/r/3057/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404294 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 00:47:01 +00:00
|
|
|
Answer
|
|
|
|
- It is no longer possible to bypass updating the CDR when answering a
|
|
|
|
channel. CDRs are based on the channel state and will be updated when
|
|
|
|
the channel is Answered.
|
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
ControlPlayback
|
|
|
|
- The channel variable CPLAYBACKSTATUS may now return the value
|
|
|
|
'REMOTESTOPPED' when playback is stopped by an external entity.
|
|
|
|
|
app_cdr,app_forkcdr,func_cdr: Synchronize with engine when manipulating state
When doing the rework of the CDR engine that pushed all of the logic into cdr.c
and made it respond to changes in channel state over Stasis, we knew that
accessing the CDR engine from the dialplan would be "slightly"
non-deterministic. Dialplan threads would be accessing CDRs while Stasis
threads would be updating the state of said CDRs - whereas in the past,
everything happened on the dialplan threads. Tests have shown that "slightly"
is in reality "very".
This patch synchronizes things by making the dialplan applications/functions
that manipulate CDRs do so over Stasis. ForkCDR, NoCDR, ResetCDR, CDR, and
CDR_PROP now all use Stasis to send their requests over to the CDR engine,
and synchronize on the channel Stasis topic via a subscription so that they
return their values/control to the dialplan at the appropriate time.
While going through this, the following changes were also made:
* DISA, which can reset the CDR when a user successfully authenticates, now
just uses the ResetCDR app to do this. This prevents having to duplicate
the same Stasis synchronization logic in that application.
* Answer no longer disables CDRs. It actually didn't work anyway - calling
DISABLE on the channel's CDR doesn't stop the CDR from getting the Answer
time - it just kills all CDRs on that channel, which isn't what the caller
would intend.
(closes issue ASTERISK-22884)
(closes issue ASTERISK-22886)
Review: https://reviewboard.asterisk.org/r/3057/
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@404294 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-12-19 00:47:01 +00:00
|
|
|
DISA
|
|
|
|
- This application now has a dependency on the app_cdr module. It uses this
|
|
|
|
module to hide the CDR created prior to execution of the DISA application.
|
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
DumpChan:
|
|
|
|
- The output of DumpChan no longer includes the DirectBridge or IndirectBridge
|
|
|
|
fields. Instead, if a channel is in a bridge, it includes a BridgeID field
|
|
|
|
containing the unique ID of the bridge that the channel happens to be in.
|
|
|
|
|
|
|
|
ForkCDR:
|
|
|
|
- Nearly every parameter in ForkCDR has been updated and changed to reflect
|
|
|
|
the changes in CDRs. Please see the documentation for the ForkCDR
|
|
|
|
application, as well as the CDR specification on the Asterisk wiki.
|
2013-06-17 03:00:38 +00:00
|
|
|
|
|
|
|
NoCDR:
|
2013-08-30 18:35:21 +00:00
|
|
|
- The NoCDR application has been deprecated. Please use the CDR_PROP function
|
|
|
|
to disable CDRs on a channel.
|
|
|
|
|
|
|
|
ParkAndAnnounce:
|
|
|
|
- The app_parkandannounce module has been removed. The application
|
|
|
|
ParkAndAnnounce is now provided by the res_parking module. See the
|
|
|
|
Parking changes for more information.
|
2013-06-17 03:00:38 +00:00
|
|
|
|
|
|
|
ResetCDR:
|
|
|
|
- The 'w' and 'a' options have been removed. Dispatching CDRs to registered
|
|
|
|
backends occurs on an as-needed basis in order to preserve linkedid
|
|
|
|
propagation and other needed behavior.
|
|
|
|
- The 'e' option is deprecated. Please use the CDR_PROP function to enable
|
|
|
|
CDRs on a channel that they were previously disabled on.
|
|
|
|
- The ResetCDR application is no longer a part of core Asterisk, and instead
|
|
|
|
is now delivered as part of app_cdr.
|
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
Queues:
|
|
|
|
- Queue strategy rrmemory now has a predictable order similar to strategy
|
|
|
|
rrordered. Members will be called in the order that they are added to the
|
|
|
|
queue.
|
|
|
|
|
|
|
|
- Removed the queues.conf check_state_unknown option. It is no longer
|
|
|
|
necessary.
|
|
|
|
|
|
|
|
- It is now possible to play the Queue prompts to the first user waiting in a
|
|
|
|
call queue. Note that this may impact the ability for agents to talk with
|
|
|
|
users, as a prompt may still be playing when an agent connects to the user.
|
|
|
|
This ability is disabled by default but can be enabled on an individual
|
|
|
|
queue using the 'announce-to-first-user' option.
|
|
|
|
|
|
|
|
- The configuration options eventwhencalled and eventmemberstatus have been
|
|
|
|
removed. As a result, the AMI events QueueMemberStatus, AgentCalled,
|
|
|
|
AgentConnect, AgentComplete, AgentDump, and AgentRingNoAnswer will always be
|
|
|
|
sent. The "Variable" fields will also no longer exist on the Agent* events.
|
|
|
|
These events can be filtered out from a connected AMI client using the
|
|
|
|
eventfilter setting in manager.conf.
|
|
|
|
|
|
|
|
- The queue log now differentiates between blind and attended transfers. A
|
|
|
|
blind transfer will result in a BLINDTRANSFER message with the destination
|
|
|
|
context and extension. An attended transfer will result in an
|
|
|
|
ATTENDEDTRANSFER message. This message will indicate the method by which
|
|
|
|
the attended transfer was completed: "BRIDGE" for a bridge merge, "APP"
|
|
|
|
for running an application on a bridge or channel, or "LINK" for linking
|
|
|
|
two bridges together with local channels. The queue log will also now detect
|
|
|
|
externally initiated blind and attended transfers and record the transfer
|
|
|
|
status accordingly.
|
|
|
|
|
|
|
|
- When performing queue pause/unpause on an interface without specifying an
|
|
|
|
individual queue, the PAUSEALL/UNPAUSEALL event will only be logged if at
|
|
|
|
least one member of any queue exists for that interface.
|
|
|
|
|
|
|
|
SetAMAFlags
|
|
|
|
- This application is deprecated in favor of CHANNEL(amaflags).
|
|
|
|
|
|
|
|
VoiceMail:
|
2013-12-19 16:37:56 +00:00
|
|
|
- Mailboxes defined by app_voicemail MUST be referenced by the rest of the
|
|
|
|
system as mailbox@context. The rest of the system cannot add @default
|
|
|
|
to mailbox identifiers for app_voicemail that do not specify a context
|
|
|
|
any longer. It is a mailbox identifier format that should only be
|
|
|
|
interpreted by app_voicemail.
|
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
- The voicemail.conf configuration file now has an 'alias' configuration
|
|
|
|
parameter for use with the Directory application. The voicemail realtime
|
|
|
|
database table schema has also been updated with an 'alias' column. Systems
|
|
|
|
using voicemail with realtime should update their schemas accordingly.
|
|
|
|
|
|
|
|
Channel Drivers:
|
|
|
|
- When a channel driver is configured to enable jiterbuffers, they are now
|
|
|
|
applied unconditionally when a channel joins a bridge. If a jitterbuffer
|
|
|
|
is already set for that channel when it enters, such as by the JITTERBUFFER
|
|
|
|
function, then the existing jitterbuffer will be used and the one set by
|
|
|
|
the channel driver will not be applied.
|
|
|
|
|
|
|
|
chan_bridge
|
|
|
|
- chan_bridge is removed and its functionality is incorporated into ConfBridge
|
|
|
|
itself.
|
|
|
|
|
|
|
|
chan_dahdi:
|
|
|
|
- Analog port dialing and deferred DTMF dialing for PRI now distinguishes
|
|
|
|
between 'w' and 'W'. The 'w' pauses dialing for half a second. The 'W'
|
|
|
|
pauses dialing for one second.
|
|
|
|
|
|
|
|
- The default for inband_on_proceeding has changed to no.
|
|
|
|
|
|
|
|
- The CLI command 'dahdi destroy channel' is now 'dahdi destroy channels'.
|
|
|
|
A range of channels can be specified to be destroyed. Note that this command
|
|
|
|
should only be used if you understand the risks it entails.
|
|
|
|
|
2013-12-19 16:37:56 +00:00
|
|
|
- The script specified by the chan_dahdi.conf mwimonitornotify option now gets
|
|
|
|
the exact configured mailbox name. For app_voicemail mailboxes this is
|
|
|
|
mailbox@context.
|
|
|
|
|
|
|
|
- Added mwi_vm_boxes that also must be configured for ISDN MWI to be enabled.
|
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
chan_local:
|
|
|
|
- The /b option has been removed.
|
|
|
|
|
|
|
|
- chan_local moved into the system core and is no longer a loadable module.
|
|
|
|
|
|
|
|
chan_sip:
|
|
|
|
- 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.
|
|
|
|
|
|
|
|
- Dynamic realtime tables for SIP Users can now include a 'path' field. This
|
|
|
|
will store the path information for that peer when it registers. Realtime
|
|
|
|
tables can also use the 'supportpath' field to enable Path header support.
|
|
|
|
|
|
|
|
- LDAP realtime configurations for SIP Users now have the AstAccountPathSupport
|
|
|
|
objectIdentifier. This maps to the supportpath option in sip.conf.
|
|
|
|
|
|
|
|
Core:
|
|
|
|
- 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. For more information
|
|
|
|
about the new core architecture of Asterisk, please see the Asterisk wiki.
|
|
|
|
|
|
|
|
- The following channel variables have changed behavior which is described in
|
|
|
|
the CHANGES file: TRANSFER_CONTEXT, BRIDGEPEER, BRIDGEPVTCALLID,
|
|
|
|
ATTENDED_TRANSFER_COMPLETE_SOUND, DYNAMIC_FEATURENAME, and DYNAMIC_PEERNAME.
|
|
|
|
|
|
|
|
AMI (Asterisk Manager Interface):
|
2013-01-14 15:58:01 +00:00
|
|
|
- Version 1.4 - The details of what happens to a channel when a masquerade
|
|
|
|
happens (transfers, parking, etc) have changed.
|
|
|
|
- The Masquerade event now includes the Uniqueid's of the clone and original
|
|
|
|
channels.
|
|
|
|
- Channels no longer swap Uniqueid's as a result of the masquerade.
|
|
|
|
- Instead of a shell game of renames, there's now a single rename, appending
|
|
|
|
<ZOMBIE> to the name of the original channel.
|
2013-08-30 18:35:21 +00:00
|
|
|
|
|
|
|
- *Major* changes were made to both the syntax as well as the semantics of the
|
|
|
|
AMI protocol. In particular, AMI events have been substantially modified
|
|
|
|
and improved in this version of Asterisk. The major event changes are listed
|
|
|
|
below.
|
|
|
|
- NewPeerAccount has been removed. NewAccountCode is raised instead.
|
|
|
|
- Reload events have been consolidated and standardized.
|
|
|
|
- ModuleLoadReport has been removed.
|
|
|
|
- FaxSent is now SendFAX; FaxReceived is now ReceiveFAX. This standardizes
|
|
|
|
app_fax and res_fax events.
|
|
|
|
- MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop.
|
|
|
|
- JabberEvent has been removed.
|
|
|
|
- Hold is now in the core and will now raise Hold and Unhold events.
|
|
|
|
- Join is now QueueCallerJoin.
|
|
|
|
- Leave is now QueueCallerLeave.
|
|
|
|
- Agentlogin/Agentlogoff is now AgentLogin/AgentLogoff, respectively.
|
|
|
|
- ChannelUpdate has been removed.
|
|
|
|
- Local channel optimization is now conveyed via LocalOptimizationBegin and
|
|
|
|
LocalOptimizationEnd.
|
|
|
|
- BridgeAction and BridgeExec have been removed.
|
|
|
|
- BlindTransfer and AttendedTransfer events were added.
|
|
|
|
- Dial is now DialBegin and DialEnd.
|
|
|
|
- DTMF is now DTMFBegin and DTMFEnd.
|
|
|
|
- Bridge has been replaced with BridgeCreate, BridgeEnter, BridgeLeave, and
|
|
|
|
BridgeDestroy
|
|
|
|
- MusicOnHold has been replaced with MusicOnHoldStart and MusicOnHoldStop
|
|
|
|
- AGIExec is now AGIExecStart and AGIExecEnd
|
|
|
|
- AsyncAGI is now AsyncAGIStart, AsyncAGIExec, and AsyncAGIEnd
|
|
|
|
|
|
|
|
- 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 'Channel' key used in the 'AlarmClear', 'Alarm', and 'DNDState' has been
|
|
|
|
renamed "DAHDIChannel" since it does not convey an Asterisk channel name.
|
|
|
|
|
|
|
|
- All AMI events now contain a 'SystemName' field, if available.
|
|
|
|
|
|
|
|
- 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', 'LocalOptimizationBegin',
|
|
|
|
and 'LocalOptimizationEnd' 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.
|
|
|
|
|
|
|
|
- The deprecated use of | (pipe) as a separator in the channelvars setting in
|
|
|
|
manager.conf has been removed.
|
|
|
|
|
|
|
|
- The SIP SIPqualifypeer action now sends a response indicating it will qualify
|
|
|
|
a peer once a peer has been found to qualify. Once the qualify has been
|
|
|
|
completed it will now issue a SIPqualifypeerdone event.
|
|
|
|
|
|
|
|
- The AMI event 'Newexten' field 'Extension' is deprecated, and may be removed
|
|
|
|
in a future release. Please use the common 'Exten' field instead.
|
|
|
|
|
2013-07-04 18:46:56 +00:00
|
|
|
- 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'.
|
2013-01-14 15:58:01 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
- 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.
|
2012-09-28 18:27:02 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
- 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.
|
2012-09-28 18:27:02 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
CDR (Call Detail Records)
|
|
|
|
- Significant changes have been made to the behavior of CDRs. The CDR engine
|
|
|
|
was effectively rewritten and built on the Stasis message bus. For a full
|
|
|
|
definition of CDR behavior in Asterisk 12, please read the specification
|
|
|
|
on the Asterisk wiki (wiki.asterisk.org).
|
2012-09-28 18:27:02 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
- CDRs will now be created between all participants in a bridge. For each
|
|
|
|
pair of channels in a bridge, a CDR is created to represent the path of
|
|
|
|
communication between those two endpoints. This lets an end user choose who
|
|
|
|
to bill for what during bridge operations with multiple parties.
|
Replace chan_agent with app_agent_pool.
The ill conceived chan_agent is no more. It is now replaced by
app_agent_pool.
Agents login using the AgentLogin() application as before. The
AgentLogin() application no longer does any authentication.
Authentication is now the responsibility of the dialplan. (Besides, the
authentication done by chan_agent did not match what the voice prompts
asked for.)
Sample extensions.conf
[login]
; Sample agent 1001 login
; Set COLP for in between calls so the agent does not see the last caller COLP.
exten => 1001,1,Set(CONNECTEDLINE(all)="Agent Waiting" <1001>)
; Give the agent DTMF transfer and disconnect features when connected to a caller.
same => n,Set(CHANNEL(dtmf-features)=TX)
same => n,AgentLogin(1001)
same => n,NoOp(AGENT_STATUS is ${AGENT_STATUS})
same => n,Hangup()
[caller]
; Sample caller direct connect to agent 1001
exten => 800,1,AgentRequest(1001)
same => n,NoOp(AGENT_STATUS is ${AGENT_STATUS})
same => n,Hangup()
; Sample caller going through a Queue to agent 1001
exten => 900,1,Queue(agent_q)
same => n,Hangup()
Sample queues.conf
[agent_q]
member => Local/800@caller,,SuperAgent,Agent:1001
Under the hood operation overview:
1) Logged in agents wait for callers in an agents holding bridge.
2) Caller requests an agent using AgentRequest()
3) A basic bridge is created, the agent is notified, and caller joins the
basic bridge to wait for the agent.
4) The agent is either automatically connected to the caller or must ack
the call to connect.
5) The agent is moved from the agents holding bridge to the basic bridge.
6) The agent and caller talk.
7) The connection is ended by either party.
8) The agent goes back to the agents holding bridge.
To avoid some locking issues with the agent holding bridge, I needed to
make some changes to the after bridge callback support. The after bridge
callback is now a list of requested callbacks with the last to be added
the only active callback. The after bridge callback for failed callbacks
will always happen in the channel thread when the channel leaves the
bridging system or is destroyed.
(closes issue ASTERISK-21554)
Reported by: Matt Jordan
Review: https://reviewboard.asterisk.org/r/2657/
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@394417 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2013-07-15 23:20:55 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
- The duration, billsec, start, answer, and end times now reflect the times
|
|
|
|
associated with the current CDR for the channel, as opposed to a cumulative
|
|
|
|
measurement of all CDRs for that channel.
|
2013-06-17 03:00:38 +00:00
|
|
|
|
2013-10-27 19:40:43 +00:00
|
|
|
- CDR backends can no longer be unloaded while billing data is in flight. This
|
|
|
|
helps to prevent loss of billing data during restarts and shutdowns.
|
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
CEL:
|
|
|
|
- The Uniqueid field for a channel is now a stable identifier, and will not
|
|
|
|
change due to transfers, parking, etc.
|
2012-09-28 18:27:02 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
- CEL has undergone significant rework in Asterisk 12, and is now built on the
|
|
|
|
Stasis message bus. Please see the specification for CEL on the Asterisk
|
|
|
|
wiki at https://wiki.asterisk.org/wiki/x/4ICLAQ for more detailed
|
|
|
|
information. A summary of the affected events is below:
|
|
|
|
- BRIDGE_START, BRIDGE_END, BRIDGE_UPDATE, 3WAY_START, 3WAY_END, CONF_ENTER,
|
|
|
|
CONF_EXIT, CONF_START, and CONF_END events have all been removed. These
|
|
|
|
events have been replaced by BRIDGE_ENTER/BRIDGE_EXIT.
|
|
|
|
- BLINDTRANSFER/ATTENDEDTRANSFER events now report the peer as NULL and
|
|
|
|
additional information in the extra string field.
|
2013-05-21 18:00:22 +00:00
|
|
|
|
2013-12-16 18:31:27 +00:00
|
|
|
Dialplan Functions:
|
|
|
|
|
|
|
|
- Certain dialplan functions have been marked as 'dangerous', and may only be
|
|
|
|
executed from the dialplan. Execution from extenal sources (AMI's GetVar and
|
|
|
|
SetVar actions; etc.) may be inhibited by setting live_dangerously in the
|
|
|
|
[options] section of asterisk.conf to no. SHELL(), channel locking, and
|
|
|
|
direct file read/write functions are marked as dangerous. DB_DELETE() and
|
|
|
|
REALTIME_DESTROY() are marked as dangerous for reads, but can now safely
|
|
|
|
accept writes (which ignore the provided value).
|
2013-12-24 17:10:28 +00:00
|
|
|
- The default value for live_dangerously was changed from yes (in Asterisk 11
|
|
|
|
and earlier) to no (in Asterisk 12 and greater).
|
2013-12-16 18:31:27 +00:00
|
|
|
|
2012-10-29 21:27:09 +00:00
|
|
|
Dialplan:
|
2013-08-30 18:35:21 +00:00
|
|
|
- All channel and global variable names are evaluated in a case-sensitive
|
|
|
|
manner. In previous versions of Asterisk, variables created and evaluated in
|
|
|
|
the dialplan were evaluated case-insensitively, but built-in variables and
|
|
|
|
variable evaluation done internally within Asterisk was done
|
|
|
|
case-sensitively.
|
|
|
|
|
2012-11-28 00:13:10 +00:00
|
|
|
- Asterisk has always had code to ignore dash '-' characters that are not
|
|
|
|
part of a character set in the dialplan extensions. The code now
|
|
|
|
consistently ignores these characters when matching dialplan extensions.
|
2013-08-30 18:35:21 +00:00
|
|
|
|
|
|
|
- BRIDGE_FEATURES channel variable is now casesensitive for feature letter
|
|
|
|
codes. Uppercase variants apply them to the calling party while lowercase
|
|
|
|
variants apply them to the called party.
|
2012-10-29 21:27:09 +00:00
|
|
|
|
2013-05-21 18:00:22 +00:00
|
|
|
Features:
|
|
|
|
- The features.conf [applicationmap] <FeatureName> ActivatedBy option is
|
2013-06-06 22:46:54 +00:00
|
|
|
no longer honored. The feature is always activated by the channel that has
|
2013-08-30 18:35:21 +00:00
|
|
|
DYNAMIC_FEATURES defined on it when it enters the bridge. Use predial to set
|
2013-06-06 22:46:54 +00:00
|
|
|
different values of DYNAMIC_FEATURES on the channels
|
|
|
|
|
|
|
|
- Executing a dynamic feature on the bridge peer in a multi-party bridge will
|
|
|
|
execute it on all peers of the activating channel.
|
2013-05-21 18:00:22 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
- There is no longer an explicit 'features reload' CLI command. Features can
|
|
|
|
still be reloaded using 'module reload features'.
|
2013-08-02 02:32:44 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
- 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.
|
2013-08-02 02:32:44 +00:00
|
|
|
|
2013-05-21 18:00:22 +00:00
|
|
|
Parking:
|
2013-08-30 18:35:21 +00:00
|
|
|
- Parking has been extracted from the Asterisk core as a loadable module,
|
|
|
|
res_parking.
|
|
|
|
|
|
|
|
- Configuration is found in res_parking.conf. It is no longer supported in
|
2013-05-21 18:00:22 +00:00
|
|
|
features.conf
|
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
- The arguments for the Park, ParkedCall, and ParkAndAnnounce applications
|
|
|
|
have been modified significantly. See the application documents for
|
|
|
|
specific details.
|
2011-07-13 21:06:23 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
- Numerous changes to Parking related applications, AMI and CLI commands and
|
|
|
|
internal inter-workings have been made. Please read the CHANGES file for
|
|
|
|
the detailed list.
|
2012-07-23 21:02:52 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
Security Events Framework:
|
|
|
|
- Security Event timestamps now use ISO 8601 formatted date/time instead of
|
|
|
|
the "seconds-microseconds" format that it was using previously.
|
2010-11-02 15:14:12 +00:00
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
AGENT:
|
|
|
|
- The password option has been disabled, as the AgentLogin application no
|
|
|
|
longer provides authentication.
|
|
|
|
|
|
|
|
AUDIOHOOK_INHERIT:
|
|
|
|
- Due to changes in the Asterisk core, this function is no longer needed to
|
|
|
|
preserve a MixMonitor on a channel during transfer operations and dialplan
|
|
|
|
execution. It is effectively obsolete.
|
|
|
|
|
|
|
|
CDR: (function)
|
|
|
|
- The 'amaflags' and 'accountcode' attributes for the CDR function are
|
|
|
|
deprecated. Use the CHANNEL function instead to access these attributes.
|
|
|
|
|
|
|
|
- The 'l' option has been removed. When reading a CDR attribute, the most
|
|
|
|
recent record is always used. When writing a CDR attribute, all non-finalized
|
|
|
|
CDRs are updated.
|
|
|
|
|
|
|
|
- The 'r' option has been removed, for the same reason as the 'l' option.
|
|
|
|
|
|
|
|
- The 's' option has been removed, as LOCKED semantics no longer exist in the
|
|
|
|
CDR engine.
|
|
|
|
|
2013-12-19 16:37:56 +00:00
|
|
|
VMCOUNT:
|
|
|
|
- Mailboxes defined by app_voicemail MUST be referenced by the rest of the
|
|
|
|
system as mailbox@context. The rest of the system cannot add @default
|
|
|
|
to mailbox identifiers for app_voicemail that do not specify a context
|
|
|
|
any longer. It is a mailbox identifier format that should only be
|
|
|
|
interpreted by app_voicemail.
|
|
|
|
|
2013-08-30 18:35:21 +00:00
|
|
|
res_rtp_asterisk:
|
|
|
|
- ICE/STUN/TURN support in res_rtp_asterisk has been made optional. To enable
|
|
|
|
them, an Asterisk-specific version of PJSIP needs to be installed.
|
|
|
|
Tarballs are available from https://github.com/asterisk/pjproject/tags/.
|
2011-07-15 21:01:41 +00:00
|
|
|
|
2011-11-07 19:58:44 +00:00
|
|
|
|
2010-07-23 19:17:30 +00:00
|
|
|
===========================================================
|
|
|
|
===========================================================
|