Skip to content
Snippets Groups Projects
  • Richard Mudgett's avatar
    3078b7ad
    CDR: Fix deadlock setting some CDR values. · 3078b7ad
    Richard Mudgett authored
    Setting channel variables with the AMI Originate action caused a deadlock
    when you set CDR(amaflags) or CDR(accountcode).  This path has the channel
    locked when the CDR function is called.  The CDR function then
    synchronously passes the job to a stasis thread.  The stasis handling
    function then attempts to lock the channel.  Deadlock results.
    
    * Avoid deadlock by making the CDR function handle setting amaflags and
    accountcode directly on the channel rather than passing it off to the CDR
    processing code under a stasis thread to do it.
    
    * Made the CHANNEL function and the CDR function process amaflags the same
    way.
    
    * Fixed referencing the wrong message type in cdr_prop_write().
    
    ASTERISK-27460
    
    Change-Id: I5eacb47586bc0b8f8ff76a19bd92d1dc38b75e8f
    3078b7ad
    History
    CDR: Fix deadlock setting some CDR values.
    Richard Mudgett authored
    Setting channel variables with the AMI Originate action caused a deadlock
    when you set CDR(amaflags) or CDR(accountcode).  This path has the channel
    locked when the CDR function is called.  The CDR function then
    synchronously passes the job to a stasis thread.  The stasis handling
    function then attempts to lock the channel.  Deadlock results.
    
    * Avoid deadlock by making the CDR function handle setting amaflags and
    accountcode directly on the channel rather than passing it off to the CDR
    processing code under a stasis thread to do it.
    
    * Made the CHANNEL function and the CDR function process amaflags the same
    way.
    
    * Fixed referencing the wrong message type in cdr_prop_write().
    
    ASTERISK-27460
    
    Change-Id: I5eacb47586bc0b8f8ff76a19bd92d1dc38b75e8f