[asterisk-bugs] [Asterisk 0011583]: [branch] Allow disconnect feature before a call is bridged
Asterisk Bug Tracker
noreply at bugs.digium.com
Thu Mar 19 14:40:08 CDT 2009
A NOTE has been added to this issue.
======================================================================
http://bugs.digium.com/view.php?id=11583
======================================================================
Reported By: sobomax
Assigned To: dvossel
======================================================================
Project: Asterisk
Issue ID: 11583
Category: Applications/app_dial
Reproducibility: always
Severity: minor
Priority: normal
Status: closed
Target Version: 1.6.2.0
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:
Resolution: fixed
Fixed in Version:
======================================================================
Date Submitted: 2007-12-17 14:29 CST
Last Modified: 2009-03-19 14:40 CDT
======================================================================
Summary: [branch] 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 ...
======================================================================
----------------------------------------------------------------------
(0101994) svnbot (reporter) - 2009-03-19 14:40
http://bugs.digium.com/view.php?id=11583#c101994
----------------------------------------------------------------------
Repository: asterisk
Revision: 183386
U branches/1.4/apps/app_dial.c
U branches/1.4/include/asterisk/features.h
U branches/1.4/res/res_features.c
------------------------------------------------------------------------
r183386 | dvossel | 2009-03-19 14:40:07 -0500 (Thu, 19 Mar 2009) | 6 lines
Cleaning up a few things in detect disconnect patch
Initialized ast_call_feature in detect_disconnect to avoid accessing
uninitialized memory. Cleaned up /param tags in features.h. No longer
send dynamic features in ast_feature_detect.
issue http://bugs.digium.com/view.php?id=11583
------------------------------------------------------------------------
http://svn.digium.com/view/asterisk?view=rev&revision=183386
Issue History
Date Modified Username Field Change
======================================================================
2009-03-19 14:40 svnbot Note Added: 0101994
======================================================================
More information about the asterisk-bugs
mailing list