What integer values are in response_timeout and interdigit_timeout? Just curious, because if they are too large then it will indeed block while waiting for events.
-MC
I have this code below in which I want to receive and extract dtmf events.
It seems all previous events are queued and received together at this point as the while loop is run. I don't know why it does this I only need the current events to be received.
Another issue happening at this point when I press any digit 0-9 on the phone it is not getting an incoming dtmf events
while @con.connected
#debug
puts "start loop"
#no digits
if dtmfbuffer.length == 0
e = @con.recvEventTimed(response_timeout)
# there are digits
elsif dtmfbuffer.length > 0
e = @con.recvEventTimed(interdigit_timeout)
end
if e
name = e.getHeader("Event-Name")
puts "#{name}"
break if name == "SERVER_DISCONNECTED"
if name == "DTMF"
digit = e.getHeader("DTMF-Digit")
duration = e.getHeader("DTMF-Duration")
dtmfbuffer << digit
puts "*** Dtmf #{digit} dur:#{duration} from #{@cli}"
end
end
if dtmfbuffer.length > 9
break
end
#debug
puts "end loop"
end
_______________________________________________
FreeSWITCH-users mailing list
FreeSWITCH-users@lists.freeswitch.org
http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
http://www.freeswitch.org