aboutsummaryrefslogtreecommitdiffstats
path: root/channels
diff options
context:
space:
mode:
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_dahdi.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/channels/chan_dahdi.c b/channels/chan_dahdi.c
index 2477100d5..8a43bacad 100644
--- a/channels/chan_dahdi.c
+++ b/channels/chan_dahdi.c
@@ -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;
}