[asterisk-bugs] [Asterisk 0014810]: [patch] channel-specific hangupcauses

Asterisk Bug Tracker noreply at bugs.digium.com
Tue Jun 16 15:35:31 CDT 2009


The following issue requires your FEEDBACK. 
====================================================================== 
https://issues.asterisk.org/view.php?id=14810 
====================================================================== 
Reported By:                fnordian
Assigned To:                
====================================================================== 
Project:                    Asterisk
Issue ID:                   14810
Category:                   Core/Channels
Reproducibility:            always
Severity:                   feature
Priority:                   normal
Status:                     feedback
Asterisk Version:           SVN 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases): 1.6.1 
SVN Revision (number only!): 185949 
Request Review:              
====================================================================== 
Date Submitted:             2009-04-02 06:05 CDT
Last Modified:              2009-06-16 15:35 CDT
====================================================================== 
Summary:                    [patch] channel-specific hangupcauses
Description: 
Hi,
regarding the discussion on asterisk-user
(http://lists.digium.com/pipermail/asterisk-users/2009-January/224721.html)
I want to suggest a solution for this problem.

At the moment, channels store their general asterisk hangupcause in the
channel which is hung up. Let's store some more channel-specific data about
the cause in there, too. The connected channel could then get the
information from the channel and make it available to the dialplan and it's
own hangup-routine.

My implementation uses two channel-variables to store the cause:
HANGUP_TECH and *_CAUSE, where *_CAUSE is compounded of the value of
HANGUP_TECH + '_CAUSE'. E.g. HANGUP_TECH=SIP, SIP_CAUSE=404 not found.

Currently app_dial takes care of propagating the hangupcause. In the case
of multiple channels with different causes, it chooses one of them using a
priority-scheme. This mechanism is enhanced by handling the HANGUP_TECH +
*_CAUSE variables to achieve that these are passed to the calling channel.

Please find my implementation attached as a patch. It's still proof of
concept but seems to work ;-)
====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-06-16 15:35 lmadsen        Status                   new => feedback     
======================================================================




More information about the asterisk-bugs mailing list