[Freeswitch-users] Delayed DTMF events during gentones

Andy Spitzer woof at pingtel.com
Fri May 23 14:45:41 PDT 2008


Woof!

On Fri, 23 May 2008 17:13:59 -0400, Brian West <brian at freeswitch.org> wrote:

> How are you calling the socket application for the outbound event
> socket connection?  If you put it in async you should get those events.

I've tried it various ways, but this is the one I'm currently using:

  <extension name="DIALTONE">
    <condition field="destination_number" expression="^DIALTONE$">
      <action application="socket" data="127.0.0.1:8084 async full"/>
    </condition>
  </extension>

Using nc on port 8084, I get the DTMF events in real time before I call gentones--and after it finishes--but during the tone the DTMF events appear to be queued and only delivered once the gentones completes.

For example (long responses truncated for clarity)

$ nc -v -l 127.0.0.1 8084
Connection from 127.0.0.1 port 8084 [tcp/*] accepted
connect

Channel-Username: 207
Channel-Dialplan: XML
Channel-Caller-ID-Name: 207
Channel-Caller-ID-Number: 207
...

myevents


Content-Type: command/reply
Reply-Text: +OK Events Enabled

sendmsg
call-command: execute
execute-app-name: answer

Content-Type: command/reply
Reply-Text: +OK

Content-Length: 3303
Content-Type: text/event-plain
Channel-State: CS_EXECUTE
Channel-State-Number: 4
Channel-Name: sofia/cdhcp151.pingtel.com/207%40cdhcp151.pingtel.com
Unique-ID: 85d100a8-46a6-4270-be3e-06159d5783c5
Call-Direction: inbound
...
Event-Name: CHANNEL_EXECUTE
...

Content-Length: 3281
Content-Type: text/event-plain

Channel-State: CS_EXECUTE
Channel-State-Number: 4
Channel-Name: sofia/cdhcp151.pingtel.com/207%40cdhcp151.pingtel.com
Unique-ID: 85d100a8-46a6-4270-be3e-06159d5783c5
...
Event-Name: CHANNEL_ANSWER
...

Content-Length: 3323
Content-Type: text/event-plain

Channel-State: CS_EXECUTE
Channel-State-Number: 4
Channel-Name: sofia/cdhcp151.pingtel.com/207%40cdhcp151.pingtel.com
Unique-ID: 85d100a8-46a6-4270-be3e-06159d5783c5
...
Event-Name: CHANNEL_EXECUTE_COMPLETE
...

(Now I press the digit "*")
Content-Length: 3288
Content-Type: text/event-plain

Channel-State: CS_EXECUTE
Channel-State-Number: 4
Channel-Name: sofia/cdhcp151.pingtel.com/207%40cdhcp151.pingtel.com
...
DTMF-Digit: *
DTMF-Duration: 2000
Event-Name: DTMF
...

(Now I start a 10 second tone, and press the digit "0" shortly after it starts)
sendmsg
call-command: execute
execute-app-name: gentones
execute-app-arg: %(10000, 0, 350, 440)

Content-Type: command/reply
Reply-Text: +OK

Content-Length: 3338
Content-Type: text/event-plain

Channel-State: CS_EXECUTE
Channel-State-Number: 4
Channel-Name: sofia/cdhcp151.pingtel.com/207%40cdhcp151.pingtel.com
Unique-ID: 85d100a8-46a6-4270-be3e-06159d5783c5
...
Application: gentones
Application-Data: %25(10000,%200,%20350,%20440)
Event-Name: CHANNEL_EXECUTE
...

(Nothing happens here for 10 seconds)

Content-Length: 3347
Content-Type: text/event-plain

Channel-State: CS_EXECUTE
Channel-State-Number: 4
Channel-Name: sofia/cdhcp151.pingtel.com/207%40cdhcp151.pingtel.com
Unique-ID: 85d100a8-46a6-4270-be3e-06159d5783c5
Application: gentones
Application-Data: %25(10000,%200,%20350,%20440)
Event-Name: CHANNEL_EXECUTE_COMPLETE
...
Event-Date-timestamp: 1211578728120470
...

(And now immediately after the gentones is complete, comes the report of the digit I pressed 9 seconds ago)
Content-Length: 3288
Content-Type: text/event-plain

Channel-State: CS_EXECUTE
Channel-State-Number: 4
Channel-Name: sofia/cdhcp151.pingtel.com/207%40cdhcp151.pingtel.com
Unique-ID: 85d100a8-46a6-4270-be3e-06159d5783c5
...
DTMF-Digit: 0
DTMF-Duration: 2000
Event-Name: DTMF
...
Event-Date-timestamp: 1211578728120470
...

--Woof!




More information about the FreeSWITCH-users mailing list