Summary:ASTERISK-12590: Dial h option not operating as defined when disconnect redefined in features.conf
Reporter:Philippe Lindheimer (p_lindheimer)Labels:
Date Opened:2008-08-15 15:00:18Date Closed:2008-10-05 17:24:49
Versions:Frequency of
Description:when making a call with the 'h' and 'H' set and disconnect redefined in features.conf, the called party can not hang up by pressing '*' they must hangup by pressing '**'

The above is a real bug. The bigger issue which I guess borders on a feature request is the inconsistency. Here is the scenario. You define the hangup code a '*' and you include 'H' in your dial options so the calling party can initiate a hangup. But you redefine the disconnect code to '**' because '*' is not a very useful disconnect code given the issue it can cause when calling outside IVRs.

While the phone is ringing, pressing a single '*' disconnects the call, as documented in the Dial() application. Once answered, '**' disconnects it. In my humble opinion, the Dial() application should be consistent and should use what is defined in features.conf - it is what users of the system would expect.

****** STEPS TO REPRODUCE ******

Set 'hH' as part of you Dial() options
set: disconnect=** in features.conf in it's appropriate location
dial another line, and have the answering phone try to disconnect the call with a single '*'


As reported, the current 'bug' is actually a nice feature, because the features.conf disconnect code defined as '**' appear to trump the Dial() application's 'h' option and give consistency. So the only thing remaining is to get the Dial() application to have the 'H' option use what is in features.conf.

I guess the only other thing I would add, due to crappy cell phone situations, it would be valuable to define different disconnect codes for caller and callee, since you may want to set the disconnect code to the default of '*' when calling out because of cell phone issues and similar, that can't get the double codes transmitted fast enough for Asterisk to recognize.
Comments:By: Mark Michelson (mmichelson) 2008-09-03 12:54:32

I agree with you. The single '*' as the hangup seems to be a relic of the days when there were no custom disconnect codes. In fact, there's a comment on the line in app_dial where the '*' is read that says

/* hmm it is not guaranteed to be '*' anymore. */

It seems as though someone acknowledged the fact that something wrong was going on here but that the proper fix was not put in place.

Furthermore, I am going to mark this issue related to issue ASTERISK-11067 since they're more or less about the same issue.

By: Max Börebäck (mboreback) 2008-09-23 13:11:24

I have tryed to analyse the behavior and have not found a way to see if the destination pressed ** or they just hang up the phone.

Is there a way?

By: Russell Bryant (russell) 2008-10-05 17:24:44

This is not something that we will change for Asterisk 1.4.  res_features stuff only works during a bridge.  This is an architectural issue.  However, redoing how these features work is certainly up for discussion for future versions of Asterisk 1.6.  You may want to take a look at some of the issues that are marked as related ...