[Asterisk-Users] Anyone experience with early dial?

Holger Schurig hs4233 at mail.mn-solutions.de
Fri Jul 16 06:36:07 MST 2004


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.





More information about the asterisk-users mailing list