I'm trying to use early-dial. Here, all hardware PBX have it. You dial numbers and, as soon as you have a matching dialplan entry, you get throught. I my Grandstream I enabled early-dial. And when I put exten=91,1,Milliwatt in my dialplan then it works as expected. Also, when I call other SIP or IAX phones it works. Hurray! But how can I get it working with external lines? In my test setup, I have a chan_capi (0.3.4a) based setup. Now we have the nice wiki and I found, at the end of http://www.voip-info.org/tiki-index.php?page=Asterisk+CAPI+readme that I could use exten=0,1,Dial,CAPI/829545:b When I do this and dial a 0, I hear the outside dialtone. Great. But when I now dial a normal number, it doesn't work. I have to dial an additional number, say 6. After this number, I still hear a dialtone. When I now continue dialling, the dial tone vanishes (as expected). So, to reach the local number 914115, I have to dial 0-6-914115. With a hardware PBX I have to dial 0-914115 And ideas? [general] nationalprefix=0 internationalprefix=00 rxgain=0.8 txgain=0.8 [interfaces] msn=829454 context=in-pstn incomingmsn=* controller=1 softdtmf=1 devices=2
Ok, this seems to be a bug in channel_sip. When I do put all debug message AND I dial 0-0914115, then I only see: $ grep DTMF /var/log/asterisk/messages Jul 16 13:13:19 VERBOSE[6150]: Receiving DTMF! Jul 16 13:13:19 VERBOSE[6150]: * DTMF received: '9' Jul 16 13:13:20 VERBOSE[6150]: Receiving DTMF! Jul 16 13:13:20 VERBOSE[6150]: * DTMF received: '1' Jul 16 13:13:20 VERBOSE[6150]: Receiving DTMF! Jul 16 13:13:20 VERBOSE[6150]: * DTMF received: '4' Jul 16 13:13:21 VERBOSE[6150]: Receiving DTMF! Jul 16 13:13:21 VERBOSE[6150]: * DTMF received: '1' Jul 16 13:13:21 VERBOSE[6150]: Receiving DTMF! Jul 16 13:13:21 VERBOSE[6150]: * DTMF received: '1' Jul 16 13:13:21 VERBOSE[6150]: Receiving DTMF! Jul 16 13:13:21 VERBOSE[6150]: * DTMF received: '5' So on "DTMF receiver: '0' is missing! When I change phone & sip.conf to dtmfmode=audio, dial the same number and grep again, then I see: $ grep DTMF /var/log/asterisk/messages Jul 16 15:26:20 VERBOSE[1024]: -- CAPI[contr1] supports DTMF Jul 16 15:26:36 DEBUG[9225]: Detected DTMF '0' Jul 16 15:26:38 DEBUG[9225]: Detected DTMF '9' Jul 16 15:26:39 DEBUG[9225]: Detected DTMF '1' Jul 16 15:26:40 DEBUG[9225]: Detected DTMF '5' Jul 16 15:26:40 DEBUG[9225]: Detected DTMF '1' Jul 16 15:26:41 DEBUG[9225]: Detected DTMF '1' Jul 16 15:26:42 DEBUG[9225]: Detected DTMF '5' Both "Receiving DTMF" and "Detected DTMF" are from channel_sip.c. Receiving DTMF: handle_request() near line 7276 Detected DTMF: sip_rtp_read() near line 2202 Now, the code around the handle_request looks like: } else if (!strcasecmp(cmd, "INFO")) { if (!ignore) { if (debug) ast_verbose("Receiving DTMF!\n"); receive_info(p, req); } else { /* if ignoring, transmit response */ transmit_response(p, "200 OK", req); } So I guess something set ignore to TRUE.