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