support both regular and Feature Group D dialing syntax on EM_WINK trunks (issue...
authorKevin P. Fleming <kpfleming@digium.com>
Thu, 29 Sep 2005 03:25:25 +0000 (03:25 +0000)
committerKevin P. Fleming <kpfleming@digium.com>
Thu, 29 Sep 2005 03:25:25 +0000 (03:25 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6690 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_zap.c

index 84c2e43..a1642da 100755 (executable)
@@ -5280,6 +5280,18 @@ static void *ss_thread(void *data)
                                res = my_getsigstr(chan, dtmfbuf + 1, "#", 3000);
                                if ((res < 1) && (p->dsp)) ast_dsp_digitreset(p->dsp);
                                break;
+                       case SIG_EMWINK:
+                               /* if we received a '*', we are actually receiving Feature Group D
+                                  dial syntax, so use that mode; otherwise, fall through to normal
+                                  mode
+                               */
+                               if (res == '*') {
+                                       res = my_getsigstr(chan, dtmfbuf + 1, "*", 3000);
+                                       if (res > 0)
+                                               res = my_getsigstr(chan, dtmfbuf + strlen(dtmfbuf), "*", 3000);
+                                       if ((res < 1) && (p->dsp)) ast_dsp_digitreset(p->dsp);
+                                       break;
+                               }
                        default:
                                /* If we got the first digit, get the rest */
                                len = 1;