This change allows the disconnect feature (as in "one-touch" in features.c)
authorSteve Murphy <murf@digium.com>
Mon, 2 Feb 2009 17:37:15 +0000 (17:37 +0000)
committerSteve Murphy <murf@digium.com>
Mon, 2 Feb 2009 17:37:15 +0000 (17:37 +0000)
commitc61e8a7865ae0e7c134922677700a40678490d4d
treee5da1d35ac494e009b4ab58a4c7fde6185ae5923
parent326587ebe377b9083d5b587325ac3d0010706e2a
This change allows the disconnect feature (as in "one-touch" in features.c)
to be used within the dial app, before a call is bridged.

Many thanks to sobomax for submitting this patch.

Quoting from bug 11582:

  "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 is not well suited
   for 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. 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 don'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."

I have cleaned up the patch somewhat, and verified that the existing functionality is not
harmed, and that the new functionality works. Terry has committed his stuff, and there were
no conflicts (see 14274).

(closes issue #11583)
Reported by: sobomax
Patches:
      patch-apps__app_dial.c uploaded by sobomax (license 359)
      patch-include__asterisk__features.h uploaded by sobomax (license 359)
      patch-res__res_features.c uploaded by sobomax (license 359)
      enable-features-during-call-setup.diff uploaded by sobomax (license 359)
      11583.newdiff uploaded by murf (license 17)
      enable-features-during-call-setup-1.diff uploaded by sobomax (license 359)
      11583.latest-patch uploaded by murf (license 17)
Tested by: sobomax, murf

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@172890 65c4cc65-6c06-0410-ace0-fbb531ad65f3
CHANGES
apps/app_dial.c
include/asterisk/features.h
main/features.c