[asterisk-bugs] [Asterisk 0011583]: [patch] Allow disconnect feature before a call is bridged

Asterisk Bug Tracker noreply at bugs.digium.com
Thu Jan 29 09:33:51 CST 2009


A NOTE has been added to this issue. 
====================================================================== 
http://bugs.digium.com/view.php?id=11583 
====================================================================== 
Reported By:                sobomax
Assigned To:                murf
====================================================================== 
Project:                    Asterisk
Issue ID:                   11583
Category:                   Resources/NewFeature
Reproducibility:            always
Severity:                   feature
Priority:                   normal
Status:                     ready for testing
Target Version:             1.6.2
Asterisk Version:           1.6.1-beta1 
Regression:                 No 
SVN Branch (only for SVN checkouts, not tarball releases): N/A 
SVN Revision (number only!):  
Request Review:              
====================================================================== 
Date Submitted:             2007-12-17 14:29 CST
Last Modified:              2009-01-29 09:33 CST
====================================================================== 
Summary:                    [patch] Allow disconnect feature before a call is
bridged
Description: 
Asterisk has module called res_features.so which purpose is to detect user
configurable keypress sequences and fire up an appropriate actions. One of
the actions is a disconnect action that allows to terminate the call leg.
However the res_features main procedure is called within ast_bridge_call()
only and the ast_bridge_call() is executed only when call has been
successfully established.

The result of this issue is that for example if we re-define disconnect
action to be ## instead of default **, it doesn't work when the call has
not been asnwered yet.

But there is a situation when call has been initiated but has not answered
yet. This case is not served by the res_features and the call can be
interrupted with '*'-keypress and this default cannot be changed.

So the goal of the patch was to use the user configured feature code
during the call setup phase. The original ast_feature_interpret() function
does not well suit this purpose as it uses much call bridge specific data
and doesn't separate a detection of feature from a feature handler call. So
a new function ast_feature_detect() has been extracted off the
ast_feature_interpret() function but keeping the original logic intact
except some insignificant changes to locking.

Having created the ast_feature_detect() function the possibility to use
feature detection in almost any place of the asterisk code has been
appeared. So a call to this function has been added to wait_for_answer()
function of app_dial.so module. This code doesn't call the feature handler
however and uses old call leg disconnect logic to make the changes as small
and simple as possible to prevent unexpected problems. A disconnect feature
currently is the only one supported during call setup as other features as
call parking and call transfer doesn't make much sense during call setup.
However if need in some of the features would arise it is much easier to
implement as the infrastructure changes are already in place with this
patch.

======================================================================
Relationships       ID      Summary
----------------------------------------------------------------------
related to          0013315 Dial h option not operating as defined ...
====================================================================== 

---------------------------------------------------------------------- 
 (0099060) murf (administrator) - 2009-01-29 09:33
 http://bugs.digium.com/view.php?id=11583#c99060 
---------------------------------------------------------------------- 
I've uploaded yet another patch; merging the last one was somewhat
challenging. I tested the result, and seems to work. I added a little text
to CHANGES. Is it just the disconnect that works now in Dial? What other
features would make sense? There's been a lot of work going on in trunk, it
seems!

I need to make sure this doesn't clash with work on bridge config and
features that is ongoing. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2009-01-29 09:33 murf           Note Added: 0099060                          
======================================================================




More information about the asterisk-bugs mailing list