[asterisk-commits] dlee: branch dlee/ari-url-shuffle r392110 - in /team/dlee/ari-url-shuffle: ./...
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Mon Jun 17 16:29:58 CDT 2013
Author: dlee
Date: Mon Jun 17 16:29:55 2013
New Revision: 392110
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=392110
Log:
Merged revisions 391776-392076 from http://svn.asterisk.org/svn/asterisk/trunk
Added:
team/dlee/ari-url-shuffle/include/asterisk/stasis_internal.h
- copied unchanged from r392076, trunk/include/asterisk/stasis_internal.h
team/dlee/ari-url-shuffle/tests/test_cdr.c
- copied unchanged from r392076, trunk/tests/test_cdr.c
Modified:
team/dlee/ari-url-shuffle/ (props changed)
team/dlee/ari-url-shuffle/CHANGES
team/dlee/ari-url-shuffle/UPGRADE.txt
team/dlee/ari-url-shuffle/addons/cdr_mysql.c
team/dlee/ari-url-shuffle/addons/chan_ooh323.c
team/dlee/ari-url-shuffle/apps/app_authenticate.c
team/dlee/ari-url-shuffle/apps/app_cdr.c
team/dlee/ari-url-shuffle/apps/app_dial.c
team/dlee/ari-url-shuffle/apps/app_disa.c
team/dlee/ari-url-shuffle/apps/app_dumpchan.c
team/dlee/ari-url-shuffle/apps/app_followme.c
team/dlee/ari-url-shuffle/apps/app_forkcdr.c
team/dlee/ari-url-shuffle/apps/app_mixmonitor.c
team/dlee/ari-url-shuffle/apps/app_osplookup.c
team/dlee/ari-url-shuffle/apps/app_queue.c
team/dlee/ari-url-shuffle/cdr/cdr_adaptive_odbc.c
team/dlee/ari-url-shuffle/cdr/cdr_csv.c
team/dlee/ari-url-shuffle/cdr/cdr_custom.c
team/dlee/ari-url-shuffle/cdr/cdr_manager.c
team/dlee/ari-url-shuffle/cdr/cdr_odbc.c
team/dlee/ari-url-shuffle/cdr/cdr_pgsql.c
team/dlee/ari-url-shuffle/cdr/cdr_radius.c
team/dlee/ari-url-shuffle/cdr/cdr_syslog.c
team/dlee/ari-url-shuffle/cdr/cdr_tds.c
team/dlee/ari-url-shuffle/cel/cel_manager.c
team/dlee/ari-url-shuffle/cel/cel_radius.c
team/dlee/ari-url-shuffle/cel/cel_tds.c
team/dlee/ari-url-shuffle/channels/chan_agent.c
team/dlee/ari-url-shuffle/channels/chan_dahdi.c
team/dlee/ari-url-shuffle/channels/chan_h323.c
team/dlee/ari-url-shuffle/channels/chan_iax2.c
team/dlee/ari-url-shuffle/channels/chan_mgcp.c
team/dlee/ari-url-shuffle/channels/chan_misdn.c
team/dlee/ari-url-shuffle/channels/chan_sip.c
team/dlee/ari-url-shuffle/channels/chan_skinny.c
team/dlee/ari-url-shuffle/channels/chan_unistim.c
team/dlee/ari-url-shuffle/channels/chan_vpb.cc
team/dlee/ari-url-shuffle/funcs/func_callerid.c
team/dlee/ari-url-shuffle/funcs/func_cdr.c
team/dlee/ari-url-shuffle/funcs/func_channel.c
team/dlee/ari-url-shuffle/include/asterisk/app.h
team/dlee/ari-url-shuffle/include/asterisk/bridging.h
team/dlee/ari-url-shuffle/include/asterisk/cdr.h
team/dlee/ari-url-shuffle/include/asterisk/cel.h
team/dlee/ari-url-shuffle/include/asterisk/channel.h
team/dlee/ari-url-shuffle/include/asterisk/channel_internal.h
team/dlee/ari-url-shuffle/include/asterisk/stasis_channels.h
team/dlee/ari-url-shuffle/include/asterisk/test.h
team/dlee/ari-url-shuffle/include/asterisk/time.h
team/dlee/ari-url-shuffle/main/app.c
team/dlee/ari-url-shuffle/main/asterisk.c
team/dlee/ari-url-shuffle/main/bridging.c
team/dlee/ari-url-shuffle/main/bridging_basic.c
team/dlee/ari-url-shuffle/main/cdr.c
team/dlee/ari-url-shuffle/main/cel.c
team/dlee/ari-url-shuffle/main/channel.c
team/dlee/ari-url-shuffle/main/channel_internal_api.c
team/dlee/ari-url-shuffle/main/cli.c
team/dlee/ari-url-shuffle/main/dial.c
team/dlee/ari-url-shuffle/main/features.c
team/dlee/ari-url-shuffle/main/manager.c
team/dlee/ari-url-shuffle/main/manager_channels.c
team/dlee/ari-url-shuffle/main/pbx.c
team/dlee/ari-url-shuffle/main/stasis.c
team/dlee/ari-url-shuffle/main/stasis_cache.c
team/dlee/ari-url-shuffle/main/stasis_channels.c
team/dlee/ari-url-shuffle/main/test.c
team/dlee/ari-url-shuffle/main/utils.c
team/dlee/ari-url-shuffle/res/res_agi.c
team/dlee/ari-url-shuffle/res/res_config_sqlite.c
team/dlee/ari-url-shuffle/res/res_monitor.c
team/dlee/ari-url-shuffle/res/res_sip_registrar.c
team/dlee/ari-url-shuffle/res/res_stasis_answer.c
Propchange: team/dlee/ari-url-shuffle/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.
Propchange: team/dlee/ari-url-shuffle/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Jun 17 16:29:55 2013
@@ -1,1 +1,1 @@
-/trunk:1-391764
+/trunk:1-392109
Modified: team/dlee/ari-url-shuffle/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-url-shuffle/CHANGES?view=diff&rev=392110&r1=392109&r2=392110
==============================================================================
--- team/dlee/ari-url-shuffle/CHANGES (original)
+++ team/dlee/ari-url-shuffle/CHANGES Mon Jun 17 16:29:55 2013
@@ -11,6 +11,130 @@
--- Functionality changes from Asterisk 11 to Asterisk 12 --------------------
------------------------------------------------------------------------------
+Applications
+------------------
+
+AgentMonitorOutgoing
+------------------
+ * The 'c' option has been removed. It is not possible to modify the name of a
+ channel involved in a CDR.
+
+ForkCDR
+------------------
+ * ForkCDR no longer automatically resets the forked CDR. See the 'r' option
+ for more information.
+
+ * Variables are no longer purged from the original CDR. See the 'v' option for
+ more information.
+
+ * The 'A' option has been removed. The Answer time on a CDR is never updated
+ once set.
+
+ * The 'd' option has been removed. The disposition on a CDR is a function of
+ the state of the channel and cannot be altered.
+
+ * The 'D' option has been removed. Who the Party B is on a CDR is a function
+ of the state of the respective channels, and cannot be altered.
+
+ * The 'r' option has been changed. Previously, ForkCDR always reset the CDR
+ such that the start time and, if applicable, the answer time was updated.
+ Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
+ 'r' option now triggers the Reset, setting the start time (and answer time
+ if applicable) to the current time.
+
+ * The 's' option has been removed. A variable can be set on the original CDR
+ if desired using the CDR function, and removed from a forked CDR using the
+ same function.
+
+ * The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
+ longer applies in the CDR engine.
+
+ * The 'v' option now prevents the copy of the variables from the original CDR
+ to the forked CDR. Previously the variables were always copied but were
+ removed from the original. Removing variables from a CDR can have unintended
+ side effects - this option allows the user to prevent propagation of
+ variables from the original to the forked without modifying the original.
+
+MeetMe
+-------------------
+* Added the 'n' option to MeetMe to prevent application of the DENOISE function
+ to a channel joining a conference. Some channel drivers that vary the number
+ of audio samples in a voice frame will experience significant quality problems
+ if a denoiser is attached to the channel; this option gives them the ability
+ to remove the denoiser without having to unload func_speex.
+
+NoCDR
+------------------
+ * The NoCDR application is deprecated. Please use the CDR_PROP function to
+ disable CDRs.
+ * While the NoCDR application will prevent CDRs for a channel from being
+ propagated to registered CDR backends, it will not prevent that data from
+ being collected. Hence, a subsequent call to ResetCDR or the CDR_PROP
+ function that enables CDRs on a channel will restore those records that have
+ not yet been finalized.
+
+Queue
+-------------------
+ * Add queue available hint. exten => 8501,hint,Queue:markq_avail
+ Note: the suffix '_avail' after the queuename.
+ Reports 'InUse' for no logged in agents or no free agents.
+ Reports 'Idle' when an agent is free.
+
+ * 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.
+
+ResetCDR
+------------------
+ * The 'e' option has been deprecated. Use the CDR_PROP function to re-enable
+ CDRs when they were previously disabled on a channel.
+ * 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.
+
+SetAMAFlags
+------------------
+ * This application is deprecated in favor of the CHANNEL function.
+
+UserEvent
+------------------
+ * UserEvent will now handle duplicate keys by overwriting the previous value
+ assigned to the key. UserEvent invocations will also be distributed to any
+ interested res_stasis applications.
+
+
+Core
+------------------
+ * Redirecting reasons can now be set to arbitrary strings. This means
+ that the REDIRECTING dialplan function can be used to set the redirecting
+ reason to any string. It also allows for custom strings to be read as the
+ redirecting reason from SIP Diversion headers.
+
+ * For DTMF blind and attended transfers, the channel variable TRANSFER_CONTEXT
+ must be on the channel initiating the transfer to have any effect.
+
+ * 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.
+
+ * 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.
AMI (Asterisk Manager Interface)
------------------
@@ -72,6 +196,9 @@
event, the various ChanVariable fields will contain a suffix 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
@@ -118,6 +245,124 @@
* The manager event AsyncAGI has been split into AsyncAGIStart, AsyncAGIExec,
and AsyncAGIEnd.
+CDR (Call Detail Records)
+------------------
+ * Significant changes have been made to the behavior of CDRs. For a full
+ definition of CDR behavior in Asterisk 12, please read the specification
+ on the Asterisk wiki (wiki.asterisk.org).
+
+ * 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 multi-party bridges or bridge operations during
+ transfer scenarios.
+
+ * When a CDR is dispatched, user defined CDR variables from both parties are
+ included in the resulting CDR. If both parties have the same variable, only
+ the Party A value is provided.
+
+Features
+-------------------
+ * 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 automixmonitor to the BRIDGE_FEATURES channel variable.
+
+ * Parking has been pulled from core and placed into a separate module called
+ res_parking. See Parking changes below for more details.
+
+ * 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.
+
+Logging
+-------------------
+ * 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.
+
+ * Added the 'queue_log_realtime_use_gmt' option to have timestamps in GMT
+ for realtime queue log entries.
+
+Parking
+-------------------
+ * Parking is now implemented as a module instead of as core functionality.
+ The preferred way to configure parking is now through res_parking.conf while
+ configuration through features.conf is not currently supported.
+
+ * res_parking uses the configuration framework. If an invalid configuration is
+ supplied, res_parking will fail to load or fail to reload. Previously parking
+ lots that were misconfigured would generally be accepted with certain
+ configuration problems leading to individual disabled parking lots.
+
+ * Parked calls are now placed in bridges. This is a largely architectural change,
+ but it could have some implications in allowing for new parked call retrieval
+ methods and the contents of parking lots will be visible though certain bridge
+ commands.
+
+ * The order of arguments for the new parking applications are different from the
+ old ones to be more intuitive. Timeout and return context/exten/priority are now
+ implemented as options. parking_lot_name is now the first parameter. See the
+ application documentation for Park, ParkedCall, and ParkAndAnnounce for more
+ in-depth information as well as syntax.
+
+ * Extensions are no longer automatically created in the dialplan to park calls,
+ pickup parked calls, etc by default.
+
+ * adsipark is no longer supported under the new parking model
+
+ * The PARKINGSLOT channel variable has been deprecated in favor of PARKING_SPACE
+ to match the naming scheme of the new system.
+
+ * PARKING_SPACE and PARKEDLOT channel variables will now be set for a parked
+ channel even when comebactoorigin=yes
+
+ * New CLI command 'parking show' allows you to inspect the currently in use
+ parking lots. 'parking show <parkinglot>' will also show the parked calls
+ in that specific parking lot.
+
+ * The CLI command 'parkedcalls' is now deprecated in favor of
+ 'parking show <parkinglot>'.
+
+ * The AMI command 'ParkedCalls' will now accept a 'ParkingLot' argument which
+ can be used to get a list of parked calls only for a specific parking lot.
+
+ * The ParkAndAnnounce application is now provided through res_parking instead
+ of through the separate app_parkandannounce module.
+
+ * ParkAndAnnounce will no longer go to the next position in dialplan on timeout
+ by default. Instead, it will follow the timeout rules of the parking lot. The
+ old behavior can be reproduced by using the 'c' option.
+
+ * Added a channel variable PARKER_FLAT which stores the name of the extension
+ that would be used to come back to if comebacktoorigin was set to use. This can
+ be useful when comebacktoorigin is off if you still want to use the extensions
+ in the park-dial context that are generated to redial the parker on timeout.
+
+Realtime
+------------------
+ * 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.
+
+Sorcery
+------------------
+ * All future modules which utilize Sorcery for object persistence must have a
+ column named "id" within their schema when using the Sorcery realtime module.
+ This column must be able to contain a string of up to 128 characters in length.
+
+Security Events Framework
+-------------------------
+ * Security Event timestamps now use ISO 8601 formatted date/time instead of the
+ "seconds-microseconds" format that it was using previously.
+
+
Channel Drivers
------------------
* When a channel driver is configured to enable jiterbuffers, they are now
@@ -126,6 +371,14 @@
function, then the existing jitterbuffer will be used and the one set by
the channel driver will not be applied.
+chan_agent
+------------------
+ * The updatecdr option has been removed. Altering the names of channels on a
+ CDR is not supported - the name of the channel is the name of the channel,
+ and pretending otherwise helps no one.
+ * The AGENTUPDATECDR channel variable has also been removed, for the same
+ reason as the updatecdr option.
+
chan_local
------------------
* The /b option is removed.
@@ -146,153 +399,44 @@
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.
-Features
--------------------
- * 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 automixmonitor to the BRIDGE_FEATURES channel variable.
-
- * Parking has been pulled from core and placed into a separate module called
- res_parking. See Parking changes below for more details.
-
- * 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.
Functions
+------------------
+
+JITTERBUFFER
------------------
* JITTERBUFFER now accepts an argument of 'disabled' which can be used
to remove jitterbuffers previously set on a channel with JITTERBUFFER.
The value of this setting is ignored when disabled is used for the argument.
-Logging
--------------------
- * 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.
-
- * Added the 'queue_log_realtime_use_gmt' option to have timestamps in GMT
- for realtime queue log entries.
-
-MeetMe
--------------------
-* Added the 'n' option to MeetMe to prevent application of the DENOISE function
- to a channel joining a conference. Some channel drivers that vary the number
- of audio samples in a voice frame will experience significant quality problems
- if a denoiser is attached to the channel; this option gives them the ability
- to remove the denoiser without having to unload func_speex.
-
-Parking
--------------------
- * Parking is now implemented as a module instead of as core functionality.
- The preferred way to configure parking is now through res_parking.conf while
- configuration through features.conf is not currently supported.
-
- * res_parking uses the configuration framework. If an invalid configuration is
- supplied, res_parking will fail to load or fail to reload. Previously parking
- lots that were misconfigured would generally be accepted with certain
- configuration problems leading to individual disabled parking lots.
-
- * Parked calls are now placed in bridges. This is a largely architectural change,
- but it could have some implications in allowing for new parked call retrieval
- methods and the contents of parking lots will be visible though certain bridge
- commands.
-
- * The order of arguments for the new parking applications are different from the
- old ones to be more intuitive. Timeout and return context/exten/priority are now
- implemented as options. parking_lot_name is now the first parameter. See the
- application documentation for Park, ParkedCall, and ParkAndAnnounce for more
- in-depth information as well as syntax.
-
- * Extensions are no longer automatically created in the dialplan to park calls,
- pickup parked calls, etc by default.
-
- * adsipark is no longer supported under the new parking model
-
- * The PARKINGSLOT channel variable has been deprecated in favor of PARKING_SPACE
- to match the naming scheme of the new system.
-
- * PARKING_SPACE and PARKEDLOT channel variables will now be set for a parked
- channel even when comebactoorigin=yes
-
- * New CLI command 'parking show' allows you to inspect the currently in use
- parking lots. 'parking show <parkinglot>' will also show the parked calls
- in that specific parking lot.
-
- * The CLI command 'parkedcalls' is now deprecated in favor of
- 'parking show <parkinglot>'.
-
- * The AMI command 'ParkedCalls' will now accept a 'ParkingLot' argument which
- can be used to get a list of parked calls only for a specific parking lot.
-
- * The ParkAndAnnounce application is now provided through res_parking instead
- of through the separate app_parkandannounce module.
-
- * ParkAndAnnounce will no longer go to the next position in dialplan on timeout
- by default. Instead, it will follow the timeout rules of the parking lot. The
- old behavior can be reproduced by using the 'c' option.
-
- * Added a channel variable PARKER_FLAT which stores the name of the extension
- that would be used to come back to if comebacktoorigin was set to use. This can
- be useful when comebacktoorigin is off if you still want to use the extensions
- in the park-dial context that are generated to redial the parker on timeout.
-
-Queue
--------------------
- * Add queue available hint. exten => 8501,hint,Queue:markq_avail
- Note: the suffix '_avail' after the queuename.
- Reports 'InUse' for no logged in agents or no free agents.
- Reports 'Idle' when an agent is free.
-
- * 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.
-
-Core
-------------------
- * Redirecting reasons can now be set to arbitrary strings. This means
- that the REDIRECTING dialplan function can be used to set the redirecting
- reason to any string. It also allows for custom strings to be read as the
- redirecting reason from SIP Diversion headers.
-
- * For DTMF blind and attended transfers, the channel variable TRANSFER_CONTEXT
- must be on the channel initiating the transfer to have any effect.
-
- * 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.
-
- * 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.
-
-Realtime
-------------------
- * 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.
+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.
+
+CDR_PROP
+------------------
+ * A new function CDR_PROP has been added. This function lets you set properties
+ on a channel's active CDRs. This function is write-only. Properties accept
+ boolean values to set/clear them on the channel's CDRs. Valid properties
+ include:
+ * 'party_a' - make this channel the preferred Party A in any CDR between two
+ channels. If two channels have this property set, the creation time of the
+ channel is used to determine who is Party A. Note that dialed channels are
+ never Party A in a CDR.
+ * 'disable' - disable CDRs on this channel. This is analogous to the NoCDR
+ application when set to True, and analogous to the 'e' option in ResetCDR
+ when set to False.
+
+
+Resources
+------------------
RTP
------------------
@@ -308,22 +452,6 @@
If no resources exist or all are unavailable the device state is considered
to be unavailable.
-Security Events Framework
--------------------------
- * Security Event timestamps now use ISO 8601 formatted date/time instead of the
- "seconds-microseconds" format that it was using previously.
-
-Sorcery
-------------------
- * All future modules which utilize Sorcery for object persistence must have a
- column named "id" within their schema when using the Sorcery realtime module.
- This column must be able to contain a string of up to 128 characters in length.
-
-app_userevent
-------------------
- * UserEvent will now handle duplicate keys by overwriting the previous value
- assigned to the key. UserEvent invocations will also be distributed to any
- interested res_stasis applications.
------------------------------------------------------------------------------
--- Functionality changes from Asterisk 10 to Asterisk 11 --------------------
Modified: team/dlee/ari-url-shuffle/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-url-shuffle/UPGRADE.txt?view=diff&rev=392110&r1=392109&r2=392110
==============================================================================
--- team/dlee/ari-url-shuffle/UPGRADE.txt (original)
+++ team/dlee/ari-url-shuffle/UPGRADE.txt Mon Jun 17 16:29:55 2013
@@ -20,6 +20,49 @@
=== UPGRADE-11.txt -- Upgrade info for 10 to 11
===
===========================================================
+
+AgentMonitorOutgoing
+ - The 'c' option has been removed. It is not possible to modify the name of a
+ channel involved in a CDR.
+
+NoCDR:
+ - This application is deprecated. Please use the CDR_PROP function instead.
+
+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.
+
+ForkCDR:
+ - ForkCDR no longer automatically resets the forked CDR. See the 'r' option
+ for more information.
+ - Variables are no longer purged from the original CDR. See the 'v' option for
+ more information.
+ - The 'A' option has been removed. The Answer time on a CDR is never updated
+ once set.
+ - The 'd' option has been removed. The disposition on a CDR is a function of
+ the state of the channel and cannot be altered.
+ - The 'D' option has been removed. Who the Party B is on a CDR is a function
+ of the state of the respective channels, and cannot be altered.
+ - The 'r' option has been changed. Previously, ForkCDR always reset the CDR
+ such that the start time and, if applicable, the answer time was updated.
+ Now, by default, ForkCDR simply forks the CDR, maintaining any times. The
+ 'r' option now triggers the Reset, setting the start time (and answer time
+ if applicable) to the current time.
+ - The 's' option has been removed. A variable can be set on the original CDR
+ if desired using the CDR function, and removed from a forked CDR using the
+ same function.
+ - The 'T' option has been removed. The concept of DONT_TOUCH and LOCKED no
+ longer applies in the CDR engine.
+ - The 'v' option now prevents the copy of the variables from the original CDR
+ to the forked CDR. Previously the variables were always copied but were
+ removed from the original. Removing variables from a CDR can have unintended
+ side effects - this option allows the user to prevent propagation of
+ variables from the original to the forked without modifying the original.
AMI:
- The SIP SIPqualifypeer action now sends a response indicating it will qualify
@@ -72,6 +115,16 @@
- Now recognizes 'W' to pause sending DTMF for one second in addition to
the previously existing 'w' that paused sending DTMF for half a second.
+SetAMAFlags
+ - This application is deprecated in favor of the CHANNEL function.
+
+chan_agent:
+ - The updatecdr option has been removed. Altering the names of channels on a
+ CDR is not supported - the name of the channel is the name of the channel,
+ and pretending otherwise helps no one.
+ - The AGENTUPDATECDR channel variable has also been removed, for the same
+ reason as the updatecdr option.
+
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'
@@ -79,7 +132,7 @@
- The default for inband_on_proceeding has changed to no.
chan_local:
- - The /b option is removed.
+ - The /b option has been removed.
Dialplan:
- All channel and global variable names are evaluated in a case-sensitive manner.
Modified: team/dlee/ari-url-shuffle/addons/cdr_mysql.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-url-shuffle/addons/cdr_mysql.c?view=diff&rev=392110&r1=392109&r2=392110
==============================================================================
--- team/dlee/ari-url-shuffle/addons/cdr_mysql.c (original)
+++ team/dlee/ari-url-shuffle/addons/cdr_mysql.c Mon Jun 17 16:29:55 2013
@@ -251,7 +251,7 @@
char timestr[128];
ast_localtime(&tv, &tm, ast_str_strlen(cdrzone) ? ast_str_buffer(cdrzone) : NULL);
ast_strftime(timestr, sizeof(timestr), "%Y-%m-%d %T", &tm);
- ast_cdr_setvar(cdr, "calldate", timestr, 0);
+ value = ast_strdupa(timestr);
cdrname = "calldate";
} else {
cdrname = "start";
@@ -277,9 +277,11 @@
strstr(entry->type, "real") ||
strstr(entry->type, "numeric") ||
strstr(entry->type, "fixed"))) {
- ast_cdr_getvar(cdr, cdrname, &value, workspace, sizeof(workspace), 0, 1);
+ ast_cdr_format_var(cdr, cdrname, &value, workspace, sizeof(workspace), 1);
+ } else if (!strcmp(cdrname, "calldate")) {
+ /* Skip calldate - the value has already been dup'd */
} else {
- ast_cdr_getvar(cdr, cdrname, &value, workspace, sizeof(workspace), 0, 0);
+ ast_cdr_format_var(cdr, cdrname, &value, workspace, sizeof(workspace), 0);
}
if (value) {
Modified: team/dlee/ari-url-shuffle/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-url-shuffle/addons/chan_ooh323.c?view=diff&rev=392110&r1=392109&r2=392110
==============================================================================
--- team/dlee/ari-url-shuffle/addons/chan_ooh323.c (original)
+++ team/dlee/ari-url-shuffle/addons/chan_ooh323.c Mon Jun 17 16:29:55 2013
@@ -2376,7 +2376,7 @@
ast_parse_allow_disallow(&user->prefs,
user->cap, tcodecs, 1);
} else if (!strcasecmp(v->name, "amaflags")) {
- user->amaflags = ast_cdr_amaflags2int(v->value);
+ user->amaflags = ast_channel_string2amaflag(v->value);
} else if (!strcasecmp(v->name, "ip") || !strcasecmp(v->name, "host")) {
struct ast_sockaddr p;
if (!ast_parse_arg(v->value, PARSE_ADDR, &p)) {
@@ -2560,7 +2560,7 @@
ast_parse_allow_disallow(&peer->prefs, peer->cap,
tcodecs, 1);
} else if (!strcasecmp(v->name, "amaflags")) {
- peer->amaflags = ast_cdr_amaflags2int(v->value);
+ peer->amaflags = ast_channel_string2amaflag(v->value);
} else if (!strcasecmp(v->name, "roundtrip")) {
sscanf(v->value, "%d,%d", &peer->rtdrcount, &peer->rtdrinterval);
} else if (!strcasecmp(v->name, "dtmfmode")) {
@@ -2917,7 +2917,7 @@
"'lowdelay', 'throughput', 'reliability', "
"'mincost', or 'none'\n", v->lineno);
} else if (!strcasecmp(v->name, "amaflags")) {
- gAMAFLAGS = ast_cdr_amaflags2int(v->value);
+ gAMAFLAGS = ast_channel_string2amaflag(v->value);
} else if (!strcasecmp(v->name, "accountcode")) {
ast_copy_string(gAccountcode, v->value, sizeof(gAccountcode));
} else if (!strcasecmp(v->name, "disallow")) {
@@ -3117,7 +3117,7 @@
}
ast_cli(a->fd, "%-15.15s%s\n", "AccountCode: ", peer->accountcode);
- ast_cli(a->fd, "%-15.15s%s\n", "AMA flags: ", ast_cdr_flags2str(peer->amaflags));
+ ast_cli(a->fd, "%-15.15s%s\n", "AMA flags: ", ast_channel_amaflags2string(peer->amaflags));
ast_cli(a->fd, "%-15.15s%s\n", "IP:Port: ", ip_port);
ast_cli(a->fd, "%-15.15s%d\n", "OutgoingLimit: ", peer->outgoinglimit);
ast_cli(a->fd, "%-15.15s%d\n", "rtptimeout: ", peer->rtptimeout);
@@ -3276,7 +3276,7 @@
}
ast_cli(a->fd, "%-15.15s%s\n", "AccountCode: ", user->accountcode);
- ast_cli(a->fd, "%-15.15s%s\n", "AMA flags: ", ast_cdr_flags2str(user->amaflags));
+ ast_cli(a->fd, "%-15.15s%s\n", "AMA flags: ", ast_channel_amaflags2string(user->amaflags));
ast_cli(a->fd, "%-15.15s%s\n", "Context: ", user->context);
ast_cli(a->fd, "%-15.15s%d\n", "IncomingLimit: ", user->incominglimit);
ast_cli(a->fd, "%-15.15s%d\n", "InUse: ", user->inUse);
@@ -3524,7 +3524,7 @@
ast_cli(a->fd, "%-20s%ld\n", "Call counter: ", callnumber);
ast_cli(a->fd, "%-20s%s\n", "AccountCode: ", gAccountcode);
- ast_cli(a->fd, "%-20s%s\n", "AMA flags: ", ast_cdr_flags2str(gAMAFLAGS));
+ ast_cli(a->fd, "%-20s%s\n", "AMA flags: ", ast_channel_amaflags2string(gAMAFLAGS));
pAlias = gAliasList;
if(pAlias) {
Modified: team/dlee/ari-url-shuffle/apps/app_authenticate.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-url-shuffle/apps/app_authenticate.c?view=diff&rev=392110&r1=392109&r2=392110
==============================================================================
--- team/dlee/ari-url-shuffle/apps/app_authenticate.c (original)
+++ team/dlee/ari-url-shuffle/apps/app_authenticate.c Mon Jun 17 16:29:55 2013
@@ -213,9 +213,9 @@
continue;
ast_md5_hash(md5passwd, passwd);
if (!strcmp(md5passwd, md5secret)) {
- if (ast_test_flag(&flags,OPT_ACCOUNT)) {
+ if (ast_test_flag(&flags, OPT_ACCOUNT)) {
ast_channel_lock(chan);
- ast_cdr_setaccount(chan, buf);
+ ast_channel_accountcode_set(chan, buf);
ast_channel_unlock(chan);
}
break;
@@ -224,7 +224,7 @@
if (!strcmp(passwd, buf)) {
if (ast_test_flag(&flags, OPT_ACCOUNT)) {
ast_channel_lock(chan);
- ast_cdr_setaccount(chan, buf);
+ ast_channel_accountcode_set(chan, buf);
ast_channel_unlock(chan);
}
break;
@@ -250,7 +250,7 @@
if ((retries < 3) && !res) {
if (ast_test_flag(&flags,OPT_ACCOUNT) && !ast_test_flag(&flags,OPT_MULTIPLE)) {
ast_channel_lock(chan);
- ast_cdr_setaccount(chan, passwd);
+ ast_channel_accountcode_set(chan, passwd);
ast_channel_unlock(chan);
}
if (!(res = ast_streamfile(chan, "auth-thankyou", ast_channel_language(chan))))
Modified: team/dlee/ari-url-shuffle/apps/app_cdr.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-url-shuffle/apps/app_cdr.c?view=diff&rev=392110&r1=392109&r2=392110
==============================================================================
--- team/dlee/ari-url-shuffle/apps/app_cdr.c (original)
+++ team/dlee/ari-url-shuffle/apps/app_cdr.c Mon Jun 17 16:29:55 2013
@@ -35,25 +35,114 @@
#include "asterisk/channel.h"
#include "asterisk/module.h"
+#include "asterisk/app.h"
/*** DOCUMENTATION
<application name="NoCDR" language="en_US">
<synopsis>
- Tell Asterisk to not maintain a CDR for the current call
+ Tell Asterisk to not maintain a CDR for this channel.
</synopsis>
<syntax />
<description>
- <para>This application will tell Asterisk not to maintain a CDR for the current call.</para>
+ <para>This application will tell Asterisk not to maintain a CDR for
+ the current channel. This does <emphasis>NOT</emphasis> mean that
+ information is not tracked; rather, if the channel is hung up no
+ CDRs will be created for that channel.</para>
+ <para>If a subsequent call to ResetCDR occurs, all non-finalized
+ CDRs created for the channel will be enabled.</para>
+ <note><para>This application is deprecated. Please use the CDR_PROP
+ function to disable CDRs on a channel.</para></note>
</description>
+ <see-also>
+ <ref type="application">ResetCDR</ref>
+ <ref type="function">CDR_PROP</ref>
+ </see-also>
+ </application>
+ <application name="ResetCDR" language="en_US">
+ <synopsis>
+ Resets the Call Data Record.
+ </synopsis>
+ <syntax>
+ <parameter name="options">
+ <optionlist>
+ <option name="v">
+ <para>Save the CDR variables during the reset.</para>
+ </option>
+ <option name="e">
+ <para>Enable the CDRs for this channel only (negate
+ effects of NoCDR).</para>
+ </option>
+ </optionlist>
+ </parameter>
+ </syntax>
+ <description>
+ <para>This application causes the Call Data Record to be reset.
+ Depending on the flags passed in, this can have several effects.
+ With no options, a reset does the following:</para>
+ <para>1. The <literal>start</literal> time is set to the current time.</para>
+ <para>2. If the channel is answered, the <literal>answer</literal> time is set to the
+ current time.</para>
+ <para>3. All variables are wiped from the CDR. Note that this step
+ can be prevented with the <literal>v</literal> option.</para>
+ <para>On the other hand, if the <literal>e</literal> option is
[... 10348 lines stripped ...]
More information about the asterisk-commits
mailing list