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