[Freeswitch-users] Mod perl using $session->setVariable inline

Liam Farr liam at maxumdata.com
Wed Dec 10 20:56:33 MSK 2014


Heres an expanded example;



Extension runs the perl script as part of the public dialplan first;


<extension name="run-script" continue="true">

   <condition>

  <action application="perl" data="/etc/freeswitch/scripts/my-script.pl"/>

   </condition>

</extension>



Script sets some variables;


$my_value = "123";

$session->setVariable('some_var',$my_value);



Use that variable later in another extension in the public dialplan as a
condition selector;



<extension name="bridge-call" >

   <condition field="context" expression="public" />

   <condition field="${some_var}" expression="123" >

   <action application="set" data="call_direction=inbound"/>

   <action application="bridge" data="sofia/internal/${
destination_number}@1.2.3.4:5060" />

   </condition>

</extension>



However this will fail, because the perl script "$session->setVariable" run
earlier is not inline, so you cant make use of it in the condition
(<condition field="${some_var}" expression="123" >) in the second extension
that exists in a later part of the public dialplan. Hence I need a way to
set inline variables from my perl script.



Cheers


Liam Farr



On 11 December 2014 at 06:28, Michael Jerris <mike at jerris.com> wrote:

> If you are in a perl script using session->setVariable, how are you still
> in the dialplan?  This doesn't make sense to me.  There should be no need
> for an inline if you are already in the script.
>
> > On Dec 10, 2014, at 4:20 AM, Liam Farr <liam at maxumdata.com> wrote:
> >
> > Hi,
> >
> > I need to set a variable using a perl script inline.
> >
> > Normally I would use $session->setVariable('some_var',$my_value);
> >
> > However I cant find any options to execute this inline / as an inline
> action. (I need to evaluate the variable later in the hunting phase of the
> dialplan hence need it to be an inline action).
> >
> > Is there a way to do this?
> >
> > Or is there another way to achieve the same result, e.g. hacking
> $session->execute("set","some_var=$my_value") to run as an inline action?
> >
> > Any help would be much appreciated, I've scoured the wiki, confluence
> and git repo and come up empty.
> >
> > --
> > Kind Regards
> >
> >
> > Liam Farr
>
>
> _________________________________________________________________________
> Professional FreeSWITCH Consulting Services:
> consulting at freeswitch.org
> http://www.freeswitchsolutions.com
>
> Official FreeSWITCH Sites
> http://www.freeswitch.org
> http://confluence.freeswitch.org
> http://www.cluecon.com
>
> 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/20141211/72257774/attachment-0001.html 


Join us at ClueCon 2016 Aug 8-12, 2016
More information about the FreeSWITCH-users mailing list