Perhaps the DTMFs are coming inband. Try the start_dtmf dialplan app. -MC Sent from my iPhone On Mar 16, 2010, at 7:05 PM, Michael De Lorenzo <delorenzodesign@gmail.com
wrote:
So I'm making calls using VoiceNetwork, are you suggesting there's a problem there? Or on the line where the call is received (I've tried on a couple of different networks/providers)?
On Tue, Mar 16, 2010 at 9:34 PM, Aloysius Lloyd <lloyd.aloysius@gmail.com
wrote: You inbound DID Provider
On Tue, Mar 16, 2010 at 9:16 PM, Michael De Lorenzo <delorenzodesign@gmail.com
wrote: What do you mean about the provider? I'm not sure I understand that part. I'm trying to call a number and have the call's recipient type the digits in.
On Tue, Mar 16, 2010 at 9:07 PM, Aloysius Lloyd <lloyd.aloysius@gmail.com
wrote: here is the test script I used
session:answer(); digits = session:playAndGetDigits(1, 4, 1, 5000, "#", "enter- digits.wav", "", "\\d+");
Here is the console log
2010-03-17 01:04:50.374761 [DEBUG] switch_ivr_play_say.c:1444 done playing file 2010-03-17 01:04:50.874736 [DEBUG] switch_rtp.c:2417 RTP RECV DTMF 1:800 2010-03-17 01:04:51.104725 [DEBUG] switch_rtp.c:2417 RTP RECV DTMF 2:640 2010-03-17 01:04:51.414710 [DEBUG] switch_rtp.c:2417 RTP RECV DTMF 3:800 2010-03-17 01:04:51.774692 [DEBUG] switch_rtp.c:2417 RTP RECV DTMF 4:640 2010-03-17 01:04:51.774692 [DEBUG] switch_ivr_play_say.c:1737 Test Regex [1234][\d+]
You may have some issue with the provider. Check using a local extension.
On Tue, Mar 16, 2010 at 8:51 PM, Michael De Lorenzo <delorenzodesign@gmail.com
wrote: Ok, I updated the console log level, and there are no DTMF values being detected:
4268 -> 74.51.38.156 port 15150 codec: 0 ms: 20 2010-03-16 20:49:06.534030 [DEBUG] switch_rtp.c:1181 Starting timer [soft] 160 bytes per 20ms 2010-03-16 20:49:06.535030 [NOTICE] sofia_glue.c:3128 Pre-Answer sofia/external/19736327407! 2010-03-16 20:49:13.762610 [DEBUG] sofia.c:4139 Channel sofia/ external/19736327407 entering state [completing][200] 2010-03-16 20:49:13.762610 [DEBUG] sofia.c:4150 Remote SDP: v=0 o=root 21648 21649 IN IP4 74.51.38.156 s=session c=IN IP4 74.51.38.156 t=0 0 m=audio 15150 RTP/AVP 0 101 a=rtpmap:0 PCMU/8000 a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-16 a=silenceSupp:off - - - - a=ptime:20
2010-03-16 20:49:13.762610 [DEBUG] sofia.c:4139 Channel sofia/ external/19736327407 entering state [ready][200] 2010-03-16 20:49:13.763613 [NOTICE] sofia.c:4663 Channel [sofia/ external/19736327407] has been answered 2010-03-16 20:49:13.763613 [DEBUG] switch_ivr_originate.c:3107 Originate Resulted in Success: [sofia/external/19736327407] 2010-03-16 20:49:13.763613 [DEBUG] switch_cpp.cpp:497 (sofia/ external/19736327407) State Change CS_CONSUME_MEDIA -> CS_SOFT_EXECUTE 2010-03-16 20:49:13.763613 [DEBUG] switch_core_session.c:1018 Send signal sofia/external/19736327407 [BREAK] 2010-03-16 20:49:13.764618 [DEBUG] switch_ivr_play_say.c:1178 Codec Activated L16@8000hz 1 channels 20ms 2010-03-16 20:49:13.764618 [DEBUG] switch_core_state_machine.c:314 (sofia/external/19736327407) Running State Change CS_SOFT_EXECUTE 2010-03-16 20:49:13.764618 [DEBUG] switch_core_state_machine.c:354 (sofia/external/19736327407) State SOFT_EXECUTE 2010-03-16 20:49:13.764618 [DEBUG] mod_sofia.c:510 SOFIA SOFT_EXECUTE 2010-03-16 20:49:13.764618 [DEBUG] switch_core_state_machine.c:200 sofia/external/19736327407 Standard SOFT_EXECUTE 2010-03-16 20:49:13.764618 [DEBUG] switch_core_state_machine.c:354 (sofia/external/19736327407) State SOFT_EXECUTE going to sleep 2010-03-16 20:49:13.794735 [DEBUG] switch_rtp.c:2055 Correct ip/port confirmed. 2010-03-16 20:49:25.055402 [DEBUG] switch_ivr_play_say.c:1470 done playing file 2010-03-16 20:49:30.074803 [INFO] switch_cpp.cpp:1142 Digits received during call from playAndGetDigits: 2010-03-16 20:49:30.074803 [INFO] switch_cpp.cpp:1142 Did this check out? no
On Tue, Mar 16, 2010 at 8:37 PM, Aloysius Lloyd <lloyd.aloysius@gmail.com
wrote: set the console log level to 7. Then you can see the DTMF values in console log , while you are pressing the keys.
Lloyd
On Tue, Mar 16, 2010 at 8:23 PM, Michael De Lorenzo <delorenzodesign@gmail.com
wrote: So I tried Michael's suggestion of:
digits = session:playAndGetDigits(1, 4, 1, 5000, "#", get_digits_message, "", "\\d+");
but it still didn't detect that I had pressed any keys. What would cause this? Is there someplace I can check to see if anything at all is being detected?
On Tue, Mar 16, 2010 at 5:00 PM, Michael Collins <msc@freeswitch.org> wrote:
On Tue, Mar 16, 2010 at 1:21 PM, Michael De Lorenzo <delorenzodesign@gmail.com
wrote: I'm having some trouble getting consistent results with playAndGetDigits, sometimes the digits are record and other times they're not. It seemed to have something to do with how quickly the digits were pressed, but now that no longer seems to be the case.
I'm trying to have users press a confirmation code, in this case "1111" although I'd like to make it accept "1" or "11" or "111" or "1111" if possible.
Can anyone point me in the right direction?
session = freeswitch.Session("{ignore_early_media=true}sofia/ gateway/" .. provider .. "/1" .. number_to_call);
while(session:ready()) do session:answer(); session:setInputCallback("onInput","true");
--playbackMessage(check_message); digits = session:playAndGetDigits(4, 4, 1, 5000, "", get_digits_message, "", "[1]");
You are specifying a minimum of four and a maximum of four digits. Also, your regex will match any string that has a digit 1 in it, which may or may not be what you are looking for. Lastly, you haven't specified a terminator key (like "#") but you are giving the user only one try and waiting 5000ms for the entry. Try something like this:
digits = session:playAndGetDigits(1, 4, 1, 5000, "#", get_digits_message, "", "\\d+");
Let us know if that works. Oh, one other thing: you might want to add an invalid message because playAndGetDigits will handle invalid input for you. -MC
P.S. - This topic is covered in greater detail in Chapter 7 of the upcoming FreeSWITCH book. ;)
freeswitch.consoleLog("info", digits .. "\n"); freeswitch.consoleLog("info", "Did this check out? " .. (check_message == true and "yes" or "no" .. "\n"));
-- we got what we're looking for, so we can end this if(check_success) then freeswitch.consoleLog("info", "A positive response was received from this check.\n"); break; else -- not a positive response -- if we reached our max attempts, we're finished move on if(attempts == max_attempts) then freeswitch.consoleLog("info", "We've reached our maximum attempts for this number.\n"); break; end end 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
_______________________________________________ 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
_______________________________________________ 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
_______________________________________________ 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
_______________________________________________ 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
_______________________________________________ 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
_______________________________________________ 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
_______________________________________________ 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