[asterisk-commits] dlee: branch dlee/ari-event-remodel r392003 - in /team/dlee/ari-event-remodel...

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Mon Jun 17 09:04:45 CDT 2013


Author: dlee
Date: Mon Jun 17 09:04:39 2013
New Revision: 392003

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=392003
Log:
Multiple revisions 391776-391777,391828,391855-391856,391902,391921,391947,391964,391982

........
  r391776 | kmoore | 2013-06-14 11:08:55 -0500 (Fri, 14 Jun 2013) | 6 lines
  
  Publish bridge snapshots more often
  
  Bridge snapshot events were missing some important transitions that
  were noticed in subsequent snapshots. Snapshots will now be published
  on all bridge reconfigurations.
........
  r391777 | kmoore | 2013-06-14 11:12:44 -0500 (Fri, 14 Jun 2013) | 5 lines
  
  Fix a crash in CEL bridge snapshot handling
  
  Properly search for bridge association structures so that they are
  found when expected and handle cases where they don't exist.
........
  r391828 | jrose | 2013-06-14 11:32:43 -0500 (Fri, 14 Jun 2013) | 14 lines
  
  app_mixmonitor: Fix crashes caused by unloading app_mixmonitor
  
  Unloading app_mixmonitor while active mixmonitors were running would
  cause a segfault. This patch fixes that by making it impossible to
  unload app_mixmonitor while mixmonitors are active.
  
  Review: https://reviewboard.asterisk.org/r/2624/
  ........
  
  Merged revisions 391778 from http://svn.asterisk.org/svn/asterisk/branches/1.8
  ........
  
  Merged revisions 391794 from http://svn.asterisk.org/svn/asterisk/branches/11
........
  r391855 | kmoore | 2013-06-14 13:46:00 -0500 (Fri, 14 Jun 2013) | 5 lines
  
  Fix two more possible crashes in CEL
  
  These are locations that should return valid snapshots, but need to be
  handled if not.
........
  r391856 | kmoore | 2013-06-14 13:50:21 -0500 (Fri, 14 Jun 2013) | 1 line
  
  Revert parts of r391855 that were not ready to go in to trunk
........
  r391902 | file | 2013-06-14 16:57:31 -0500 (Fri, 14 Jun 2013) | 7 lines
  
  Ensure that the number of added contacts never goes below 0.
  
  This can happen when a REGISTER request is removing a contact.
  
  (closes issue ASTERISK-21911)
  Reported by: mdavenport
........
  r391921 | mmichelson | 2013-06-14 18:26:50 -0500 (Fri, 14 Jun 2013) | 19 lines
  
  Fix regression in MWI stasis handling.
  
  In revision 389733, mwi state allocation was placed into its
  own function instead of performing the allocation in-line when
  required. The issue was that in ast_publish_mwi_state_full(),
  the local variable "uniqueid" was no longer being set, but it was
  still being used as the topic for MWI. This meant that all MWI
  publications ended up being published to the "" (empty string)
  mailbox topic. Thus MWI subscriptions for specific mailboxes were
  never notified of mailbox state changes.
  
  This change fixes the issue by removing the local uniqueid variable
  from ast_publish_mwi_state_full() and instead referencing the
  mwi_state->uniqueid field since it has been properly set.
  
  (closes issue ASTERISK-21913)
  Reported by Malcolm Davenport
........
  r391947 | mjordan | 2013-06-16 22:00:38 -0500 (Sun, 16 Jun 2013) | 29 lines
  
  Update Asterisk's CDRs for the new bridging framework
  
  This patch is the initial push to update Asterisk's CDR engine for the new
  bridging framework. This patch guts the existing CDR engine and builds the new
  on top of messages coming across Stasis. As changes in channel state and bridge
  state are detected, CDRs are built and dispatched accordingly. This
  fundamentally changes CDRs in a few ways.
  (1) CDRs are now *very* reflective of the actual state of channels and bridges.
      This means CDRs track well with what an actual channel is doing - which
      is useful in transfer scenarios (which were previously difficult to pin
      down). It does, however, mean that CDRs cannot be 'fooled'. Previous
      behavior in Asterisk allowed for CDR applications, channels, and other
      properties to be spoofed in parts of the code - this no longer works.
  (2) CDRs have defined behavior in multi-party scenarios. This behavior will not
      be what everyone wants, but it is a defined behavior and as such, it is
      predictable.
  (3) The CDR manipulation functions and applications have been overhauled. Major
      changes have been made to ResetCDR and ForkCDR in particular. Many of the
      options for these two applications no longer made any sense with the new
      framework and the (slightly) more immutable nature of CDRs.
  
  There are a plethora of other changes. For a full description of CDR behavior,
  see the CDR specification on the Asterisk wiki.
  
  (closes issue ASTERISK-21196)
  
  Review: https://reviewboard.asterisk.org/r/2486/
........
  r391964 | mjordan | 2013-06-16 22:31:19 -0500 (Sun, 16 Jun 2013) | 9 lines
  
  Make cdr_mysql compile again by not directly setting the run-time CDR object
  
  A stray ast_cdr_setvar was missed in cdr_mysql (silly addons). This has now
  been refactored to not set the property, as the property would have been set
  on a run-time object that was already dispatched to the backend. The module
  simply remembers the value it wanted to set and writes it to MySQL later
  in the processing.
........
  r391982 | file | 2013-06-17 07:28:34 -0500 (Mon, 17 Jun 2013) | 2 lines
  
  Fix build warning (which is transmogrified into an error) with my compiler due to uninitialized variable.
........

Merged revisions 391776-391777,391828,391855-391856,391902,391921,391947,391964,391982 from http://svn.asterisk.org/svn/asterisk/trunk

Added:
    team/dlee/ari-event-remodel/include/asterisk/stasis_internal.h
      - copied unchanged from r391982, trunk/include/asterisk/stasis_internal.h
    team/dlee/ari-event-remodel/tests/test_cdr.c
      - copied unchanged from r391982, trunk/tests/test_cdr.c
Modified:
    team/dlee/ari-event-remodel/   (props changed)
    team/dlee/ari-event-remodel/CHANGES
    team/dlee/ari-event-remodel/UPGRADE.txt
    team/dlee/ari-event-remodel/addons/cdr_mysql.c
    team/dlee/ari-event-remodel/addons/chan_ooh323.c
    team/dlee/ari-event-remodel/apps/app_authenticate.c
    team/dlee/ari-event-remodel/apps/app_cdr.c
    team/dlee/ari-event-remodel/apps/app_dial.c
    team/dlee/ari-event-remodel/apps/app_disa.c
    team/dlee/ari-event-remodel/apps/app_dumpchan.c
    team/dlee/ari-event-remodel/apps/app_followme.c
    team/dlee/ari-event-remodel/apps/app_forkcdr.c
    team/dlee/ari-event-remodel/apps/app_mixmonitor.c
    team/dlee/ari-event-remodel/apps/app_osplookup.c
    team/dlee/ari-event-remodel/apps/app_queue.c
    team/dlee/ari-event-remodel/cdr/cdr_adaptive_odbc.c
    team/dlee/ari-event-remodel/cdr/cdr_csv.c
    team/dlee/ari-event-remodel/cdr/cdr_custom.c
    team/dlee/ari-event-remodel/cdr/cdr_manager.c
    team/dlee/ari-event-remodel/cdr/cdr_odbc.c
    team/dlee/ari-event-remodel/cdr/cdr_pgsql.c
    team/dlee/ari-event-remodel/cdr/cdr_radius.c
    team/dlee/ari-event-remodel/cdr/cdr_syslog.c
    team/dlee/ari-event-remodel/cdr/cdr_tds.c
    team/dlee/ari-event-remodel/cel/cel_manager.c
    team/dlee/ari-event-remodel/cel/cel_radius.c
    team/dlee/ari-event-remodel/cel/cel_tds.c
    team/dlee/ari-event-remodel/channels/chan_agent.c
    team/dlee/ari-event-remodel/channels/chan_dahdi.c
    team/dlee/ari-event-remodel/channels/chan_h323.c
    team/dlee/ari-event-remodel/channels/chan_iax2.c
    team/dlee/ari-event-remodel/channels/chan_mgcp.c
    team/dlee/ari-event-remodel/channels/chan_sip.c
    team/dlee/ari-event-remodel/channels/chan_skinny.c
    team/dlee/ari-event-remodel/channels/chan_unistim.c
    team/dlee/ari-event-remodel/funcs/func_callerid.c
    team/dlee/ari-event-remodel/funcs/func_cdr.c
    team/dlee/ari-event-remodel/funcs/func_channel.c
    team/dlee/ari-event-remodel/include/asterisk/bridging.h
    team/dlee/ari-event-remodel/include/asterisk/cdr.h
    team/dlee/ari-event-remodel/include/asterisk/cel.h
    team/dlee/ari-event-remodel/include/asterisk/channel.h
    team/dlee/ari-event-remodel/include/asterisk/channel_internal.h
    team/dlee/ari-event-remodel/include/asterisk/stasis_channels.h
    team/dlee/ari-event-remodel/include/asterisk/test.h
    team/dlee/ari-event-remodel/include/asterisk/time.h
    team/dlee/ari-event-remodel/main/app.c
    team/dlee/ari-event-remodel/main/asterisk.c
    team/dlee/ari-event-remodel/main/bridging.c
    team/dlee/ari-event-remodel/main/bridging_basic.c
    team/dlee/ari-event-remodel/main/cdr.c
    team/dlee/ari-event-remodel/main/cel.c
    team/dlee/ari-event-remodel/main/channel.c
    team/dlee/ari-event-remodel/main/channel_internal_api.c
    team/dlee/ari-event-remodel/main/cli.c
    team/dlee/ari-event-remodel/main/dial.c
    team/dlee/ari-event-remodel/main/features.c
    team/dlee/ari-event-remodel/main/manager.c
    team/dlee/ari-event-remodel/main/manager_channels.c
    team/dlee/ari-event-remodel/main/pbx.c
    team/dlee/ari-event-remodel/main/stasis.c
    team/dlee/ari-event-remodel/main/stasis_cache.c
    team/dlee/ari-event-remodel/main/stasis_channels.c
    team/dlee/ari-event-remodel/main/test.c
    team/dlee/ari-event-remodel/main/utils.c
    team/dlee/ari-event-remodel/res/res_agi.c
    team/dlee/ari-event-remodel/res/res_config_sqlite.c
    team/dlee/ari-event-remodel/res/res_monitor.c
    team/dlee/ari-event-remodel/res/res_sip_registrar.c
    team/dlee/ari-event-remodel/res/res_stasis_answer.c

Propchange: team/dlee/ari-event-remodel/
------------------------------------------------------------------------------
Binary property 'branch-11-merged' - no diff available.

Propchange: team/dlee/ari-event-remodel/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Jun 17 09:04:39 2013
@@ -1,1 +1,1 @@
-/trunk:1-391767
+/trunk:1-392002

Modified: team/dlee/ari-event-remodel/CHANGES
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-event-remodel/CHANGES?view=diff&rev=392003&r1=392002&r2=392003
==============================================================================
--- team/dlee/ari-event-remodel/CHANGES (original)
+++ team/dlee/ari-event-remodel/CHANGES Mon Jun 17 09:04:39 2013
@@ -11,6 +11,94 @@
 --- 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.
+
+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.
+
+
+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.
 
 AMI (Asterisk Manager Interface)
 ------------------
@@ -72,6 +160,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 +209,109 @@
  * 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.
+
+ * 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.
+
+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.
+
+
 Channel Drivers
 ------------------
  * When a channel driver is configured to enable jiterbuffers, they are now
@@ -126,6 +320,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 +348,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
 ------------------

Modified: team/dlee/ari-event-remodel/UPGRADE.txt
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-event-remodel/UPGRADE.txt?view=diff&rev=392003&r1=392002&r2=392003
==============================================================================
--- team/dlee/ari-event-remodel/UPGRADE.txt (original)
+++ team/dlee/ari-event-remodel/UPGRADE.txt Mon Jun 17 09:04:39 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-event-remodel/addons/cdr_mysql.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-event-remodel/addons/cdr_mysql.c?view=diff&rev=392003&r1=392002&r2=392003
==============================================================================
--- team/dlee/ari-event-remodel/addons/cdr_mysql.c (original)
+++ team/dlee/ari-event-remodel/addons/cdr_mysql.c Mon Jun 17 09:04:39 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-event-remodel/addons/chan_ooh323.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-event-remodel/addons/chan_ooh323.c?view=diff&rev=392003&r1=392002&r2=392003
==============================================================================
--- team/dlee/ari-event-remodel/addons/chan_ooh323.c (original)
+++ team/dlee/ari-event-remodel/addons/chan_ooh323.c Mon Jun 17 09:04:39 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-event-remodel/apps/app_authenticate.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-event-remodel/apps/app_authenticate.c?view=diff&rev=392003&r1=392002&r2=392003
==============================================================================
--- team/dlee/ari-event-remodel/apps/app_authenticate.c (original)
+++ team/dlee/ari-event-remodel/apps/app_authenticate.c Mon Jun 17 09:04:39 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-event-remodel/apps/app_cdr.c
URL: http://svnview.digium.com/svn/asterisk/team/dlee/ari-event-remodel/apps/app_cdr.c?view=diff&rev=392003&r1=392002&r2=392003
==============================================================================
--- team/dlee/ari-event-remodel/apps/app_cdr.c (original)
+++ team/dlee/ari-event-remodel/apps/app_cdr.c Mon Jun 17 09:04:39 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

[... 10331 lines stripped ...]



More information about the asterisk-commits mailing list