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
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;
}