[Freeswitch-users] Same peace of code works with Javascript and not LUA

Michael Collins msc at freeswitch.org
Fri Jul 15 21:54:36 MSD 2011


Okay, turn off the sip trace and turn on debug level logging:

sofia global siptrace off
console loglevel 7

Test call again, pastebin log please.
-MC

On Fri, Jul 15, 2011 at 10:05 AM, Boris Kovalenko <boris at tagnet.ru> wrote:

>  :) Nice joke
>
>
> Ok. Pastebin: http://pastebin.freeswitch.org/16818
>
> The extension is:
>     <extension name="ext_office_disa2">
>         <condition field="destination_number" expression="^(73435230022)$">
>             <action application="set"
> data="disa_msg_enterpin=$${base_dir}/sound
> s/ru/RU/elena/ivr/8000/ivr-please_enter_pin_followed_by_pound.wav"/>
>             <action application="set"
> data="disa_msg_wrongpin=$${base_dir}/sound
> s/ru/RU/elena/ivr/8000/ivr-pin_or_extension_is-invalid.wav"/>
>             <action application="set"
> data="disa_msg_enterext=$${base_dir}/sound
> s/ru/RU/elena/ivr/8000/ivr-enter_ext.wav"/>
>             <action application="lua" data="common/disa.lua"/>
>             <!-- <action application="javascript" data="common/disa2.js"/>
> -->
>         </condition>
>     </extension>
>
>
> LUA script:
> --[[
> ]]
>
> -- if you choose not to require a pin then then you may want to add a
> dialplan c
> ondition for a specific caller id
> local   pin = "111111"; -- make sure to change the PIN number.
>
> local   digitmaxlength = 0;
> local   initialTimeout = 7500;
> local   interdigitTimeout = 5000;
> local   absoluteTimeout = 30000;
>
> local   msg_enterpin;
> local   msg_wrongPin;
> local   msg_enterext;
>
> function disa()
>     if( not session:ready() ) then
>         return
>     end
>
>
>     msg_enterpin = session:getVariable("disa_msg_enterpin");
>     msg_wrongpin = session:getVariable("disa_msg_wrongpin");
>     msg_enterext = session:getVariable("disa_msg_enterext");
>
>     if( msg_enterpin == nil or msg_wrongpin == nil or msg_enterext == nil )
> then
>         freeswitch.consoleLog("ALERT", "DISA: Please set necessary
> variables");
>         return false;
>     end
>
>     session:answer();
>     session:sleep( 500 );
>
>     -- session:execute("start_dtmf", "");
>
>     if( string.len( pin ) > 0 ) then
>         digitmaxlength = 6;
>
>         session:flushDigits();
>         digits = session:playAndGetDigits(digitmaxlength, digitmaxlength,
> 1, int
> erdigitTimeout, "#", msg_enterpin, msg_wrongpin, "\\d+", absoluteTimeout);
>         freeswitch.consoleLog( "info", "DISA.lua pin: " .. digits .. "\n"
> );
>     end
>
>     if( digits == pin or string.len( pin ) == 0 ) then
>         local   ru_ring = session:getVariable("ru-ring");
>         local   originate_string;
>
>         originate_session       = nil;
>
>         session:setVariable("ringback", ru_ring);               -- set to
> ringto
> ne
>         session:setVariable("transfer_ringback", ru_ring);      -- set to
> ringto
> ne
>         session:setVariable("hangup_after_bridge", "true");
>         session:setVariable("v_numbering_plan", "RU");
>
>         digits = "";    -- clear dtmf digits to prepare for next dtmf
> request
>         digitmaxlength = 20;
>         session:flushDigits();
>         digits = session:playAndGetDigits(6, digitmaxlength, 1,
> interdigitTimeou
> t, "#", msg_enterext, "", "\\d+", absoluteTimeout);
>         if( string.len( digits ) == 0 ) then
>             return false;
>         end
>         freeswitch.consoleLog( "info", "DISA.lua Collected: " .. digits ..
> "\n"
> );
>         originate_string =
>             "{ignore_early_media=true" ..
>             ",origination_caller_id_number=" ..
> session:getVariable("caller_id_n
> umber") ..
>             ",originate_timeout=90" ..
>             -- ",uuid=" .. session:get_uuid() ..
>             "}" ..
>             "sofia/ipbx/" .. session:getVariable("v_ats_srcport") .. "#" ..
>             digits .. "@192.168.1.1:5060";
>
>         originate_session = freeswitch.Session( originate_string, session
> );
>
>         session:setAutoHangup( false );
>         originate_session:setAutoHangup( false );
>
>         if( originate_session:ready() ) then
>
>             freeswitch.bridge(session, originate_session);
>             -- originate_session:hangup();
>         end
>     end
> end
>
> local   digits = "";
>
> disa();
>
> if( session:ready() ) then
>     session:hangup();
> end
>
>
> The extension where originate is placed:
>     <extension name="ext_domestic_e164">
>         <condition field="destination_number" expression="^(7[0-9]{10})$">
>             <action application="log" data="NOTICE [top.ctx] -
> ext_domestic"/>
>             <action application="set" data="hangup_after_bridge=true"/>
>             <action application="set" data="continue_on_fail=false"/>
>             <action application="set"
> data="failure_causes=USER_BUSY,NO_ANSWER"/>
>             <action application="set" data="fail_on_single_reject=true"/>
>             <!-- Least Cost Routing scheme -->
>             <action application="lcr" data="$1 lcr_tagnet"/>
>             <action application="set" data="call_timeout=60"/>
>             <action application="set" data="bridge_answer_timeout=60"/>
>             <action application="bridge" data="${lcr_auto_route}"/>
>             <action application="hangup"/>
>         </condition>
>     </extension>
>
>  Try harder..
> On Jul 15, 2011 4:43 AM, "Boris Kovalenko" <boris at tagnet.ru> wrote:
> > Hello!
> >
> > I tried, no success.
> >
> >> after you create it
> >>
> >> session:setAutoHangup(0)
> >>
> >> or it will hangup when the script exits
> >>
> >> On Thu, Jul 14, 2011 at 1:11 PM, Boris Kovalenko<boris at tagnet.ru>
> wrote:
> >>> Hello!
> >>>
> >>> Here it is http://pastebin.freeswitch.org/16809
> >>> Hope somebody help
> >>>
> >>> get a console log w/ siptrace of that scenario and put it on pastebin.
> the
> >>> gang here will take a look.
> >>> -MC
> >>>
> >>> On Thu, Jul 14, 2011 at 10:39 AM, Boris Kovalenko<boris at tagnet.ru>
> wrote:
> >>>> And another problem found. If the remote party answers immediately all
> >>>> is ok. But if remote waits more then 8-10 seconds before answer - the
> >>>> call is dropped when answered. Can't understand where to look for a
> >>>> problem.
> >>>>> Hello!
> >>>>>
> >>>>> I found a problem. originate_session must not to be local.
> >>>>>> Hello!
> >>>>>>
> >>>>>> I'm trying to migrate DISA from Javascript to LUA. This peace of
> >>>>>> code works fine in Javascript:
> >>>>>>
> >>>>>> ostr = "{ignore_early_media=true" +
> >>>>>> ",origination_caller_id_number=" +
> >>>>>> session.getVariable("caller_id_number") +
> >>>>>> "}sofia/ipbx/50004#" + digits +
> >>>>>> "@192.168.1.1:5060";
> >>>>>> osession = new Session( ostr );
> >>>>>> bridge(session, osession);
> >>>>>> osession.hangup();
> >>>>>>
> >>>>>> With LUA not:
> >>>>>> originate_string =
> >>>>>> "{ignore_early_media=true" ..
> >>>>>> ",origination_caller_id_number=" ..
> >>>>>> session:getVariable("caller_id_number") ..
> >>>>>> "}" ..
> >>>>>> "sofia/ipbx/50004#" ..
> >>>>>> digits .. "@192.168.1.1:5060";
> >>>>>> originate_session = freeswitch.Session( originate_string );
> >>>>>> freeswitch.bridge(session, originate_session);
> >>>>>> originate_session:hangup();
> >>>>>>
> >>>>>> The call is droped when remote answers. There is an error in log:
> >>>>>> bridge: session not ready. I tried to use
> >>>>>> if( originate_session:ready() ) then
> >>>>>> freeswitch.bridge(session, originate_session);
> >>>>>> originate_session:hangup();
> >>>>>> end
> >>>>>>
> >>>>>> with no luck :(. Please, help me. What am I doing wrong?
> >>>>>>
> >>>>
> >>>> --
> >>>> Regards,
> >>>> Boris
> >>>>
> >>>>
> >>>>
> >>>> _______________________________________________
> >>>> Join us at ClueCon 2011, Aug 9-11, Chicago
> >>>> http://www.cluecon.com 877-7-4ACLUE
> >>>>
> >>>> FreeSWITCH-users mailing list
> >>>> FreeSWITCH-users at lists.freeswitch.org
> >>>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >>>> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >>>> http://www.freeswitch.org
> >>>
> >>>
> >>> _______________________________________________
> >>> Join us at ClueCon 2011, Aug 9-11, Chicago
> >>> http://www.cluecon.com 877-7-4ACLUE
> >>>
> >>> FreeSWITCH-users mailing list
> >>> FreeSWITCH-users at lists.freeswitch.org
> >>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >>> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >>> http://www.freeswitch.org
> >>>
> >>>
> >>> --
> >>> Regards,
> >>> Boris
> >>>
> >>>
> >>> _______________________________________________
> >>> Join us at ClueCon 2011, Aug 9-11, Chicago
> >>> http://www.cluecon.com 877-7-4ACLUE
> >>>
> >>> FreeSWITCH-users mailing list
> >>> FreeSWITCH-users at lists.freeswitch.org
> >>> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> >>> UNSUBSCRIBE:
> http://lists.freeswitch.org/mailman/options/freeswitch-users
> >>> http://www.freeswitch.org
> >>>
> >>>
> >>
> >>
> >
> >
> > --
> > Regards,
> > Boris
> >
> >
> >
> > _______________________________________________
> > Join us at ClueCon 2011, Aug 9-11, Chicago
> > http://www.cluecon.com 877-7-4ACLUE
> >
> > FreeSWITCH-users mailing list
> > FreeSWITCH-users at lists.freeswitch.org
> > http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> > UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> > http://www.freeswitch.org
>
>
> _______________________________________________
> Join us at ClueCon 2011, Aug 9-11, Chicagohttp://www.cluecon.com 877-7-4ACLUE
>
> FreeSWITCH-users mailing listFreeSWITCH-users at lists.freeswitch.orghttp://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-usershttp://www.freeswitch.org
>
>
>
> --
> Regards,
> Boris
>
>
>
> _______________________________________________
> Join us at ClueCon 2011, Aug 9-11, Chicago
> http://www.cluecon.com 877-7-4ACLUE
>
> FreeSWITCH-users mailing list
> FreeSWITCH-users at lists.freeswitch.org
> http://lists.freeswitch.org/mailman/listinfo/freeswitch-users
> UNSUBSCRIBE:http://lists.freeswitch.org/mailman/options/freeswitch-users
> http://www.freeswitch.org
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.freeswitch.org/pipermail/freeswitch-users/attachments/20110715/6dc0e312/attachment-0001.html 


More information about the FreeSWITCH-users mailing list