mirror of
https://github.com/asterisk/asterisk.git
synced 2026-06-24 17:28:41 -07:00
Make sure digit events are not reported as "ERROR"
dahdievent_to_analogevent used a simple switch statement to convert DAHDI event numbers to "ANALOG_*" event numbers. However "digit" events (DAHDI_EVENT_PULSEDIGIT, DAHDI_EVENT_DTMFDOWN, DAHDI_EVENT_DTMFUP) are accompannied by the digit in the low word of the event number. This fix makes dahdievent_to_analogevent() return the event number as-is for such an event. This is also required to fix #15924 (in addition to r222108). git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@222237 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2457,6 +2457,17 @@ static enum analog_event dahdievent_to_analogevent(int event)
|
||||
res = ANALOG_EVENT_DTMFUP;
|
||||
break;
|
||||
default:
|
||||
switch(event & 0xFFFF0000) {
|
||||
case DAHDI_EVENT_PULSEDIGIT:
|
||||
case DAHDI_EVENT_DTMFDOWN:
|
||||
case DAHDI_EVENT_DTMFUP:
|
||||
/* The event includes a digit number in the low word.
|
||||
* Converting it to a 'enum analog_event' would remove
|
||||
* that information. Thus it is returned as-is.
|
||||
*/
|
||||
return event;
|
||||
}
|
||||
|
||||
res = ANALOG_EVENT_ERROR;
|
||||
break;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user