Woof! On Fri, 23 May 2008 17:13:59 -0400, Brian West <brian@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!