[Freeswitch-users] Delayed DTMF events during gentones
Andy Spitzer
woof at pingtel.com
Fri May 23 17:45:41 EDT 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