[Kamailio-Users] [OpenSER-Users] Perl module and moduleFunction()
Daniel-Constantin Mierla
miconda at gmail.com
Thu Nov 20 10:15:24 CET 2008
On 11/18/08 19:32, Sebastian sastre wrote:
> Daniel,
>
> I want to be able to send a sip redirect to my gateways TCL Script from
> a perl script. The perl connects to our routing engine and receives an
> ip to terminate the call. This should in turn be sent to the originating
> gateway.
>
> This works perfectly.
> $ru="sip:xxxxxxxxx at yyy.yyy.yyy.yyy";
> sl_send_reply("302", "Redirect to SIP provider");
>
>
> But when I call a perl script and do
> perl_exec("Process_call");
>
> sub Process_call(){
> my $m = shift;
> $ru = "sip:fffffff at ddd.ddd.ddd.dddd";
> $m->rewrite_ruri($ru);
> $m->sl_send_reply("302", "Redirect");
>
the sl_send_reply needs fixups, I doubt it works properly with this form
-- it is the reason that option of calling module exported functions in
perl module is disabled and non-documented.
Moreover, functions executed in openser configuration file return only
integer values, with special meanings:
http://www.asipto.com/pub/kamailio-devel-guide/#c16return_values
So you cannot return the string value. AFAIK, you can sent an avp inside
the perl script and then use it in openser configuration file. Try doing
that, then assign the avp to R-URI and send reply from openser config.
Alternative is to use exec module.
Cheers,
Daniel
> }
> The redirect gets sent but with the old ruri.
>
>
> I have also tried returning the value of the function to the routing
> block.
>
> $ru = perl_exec("Process_call");
> ERROR:core:pv_set_ruri: str value required to set R-URI
>
>
> $ru = "." + perl_exec("Process_call");
> ERROR:core:do_assign: no value in right expression
>
>
> Sebastian
> Senior Network Engineer
>
>
> -----Original Message-----
> From: Daniel-Constantin Mierla [mailto:miconda at gmail.com]
> Sent: Tuesday, November 18, 2008 12:05 PM
> To: Sebastian sastre; kamailio
> Subject: Re: [Kamailio-Users] [OpenSER-Users] Perl module and
> moduleFunction()
>
> please cc always to mailing lists...
>
> On 11/18/08 18:30, Sebastian sastre wrote:
>
>> Daniel,
>>
>> Thanks a lot for the info. I was playing with the scripts yesterday to
>> find a workaround.
>>
>> When I call my perl script with perl_exec() if I rewrite the headers
>> with
>>
>> $m->rewrite_ruri("sip:A at B");
>>
>> They never get overwritten.
>>
>>
> rewrite_uri should set a new request URI, not headers. What do you
> expect to be overwritten?
>
> Daniel
>
>
>> Is there a way to access the $ru variable from the script?
>>
>> I also tried using the Avpops module but no luck.
>>
>> Thanks !!!
>>
>> Sebastian Sastre
>> Senior Network Engineer
>>
>>
>> NextCommunications, Inc.
>> 100 North Biscayne Blvd. Suite 900
>> Miami, FL. 33132. USA
>> Phone: +1-305-356-4558
>> Main: +1-305-356-454528
>> Fax: +1-305-374-4081
>> e-mail: sebas at nextcommunications.com
>>
>> -----Original Message-----
>> From: Daniel-Constantin Mierla [mailto:miconda at gmail.com]
>> Sent: Tuesday, November 18, 2008 6:14 AM
>> To: Sebastian sastre
>> Cc: users at lists.kamailio.org
>> Subject: Re: [Kamailio-Users] [OpenSER-Users] Perl module and
>> moduleFunction()
>>
>> Hello,
>> On 11/14/08 01:54, Sebastian sastre wrote:
>>
>>
>>> Hello,
>>>
>>>
>>>
>>> I am interested in knowing which flags I can set to have the
>>> sl_send_reply work from a perl script.
>>>
>>>
>>>
>> be careful, it is prety dangerous -- the undocumented parameter is
>> "unsafemodfnc", set it to 1.
>>
>> Cheers,
>> Daniel
>>
>>
>>
>
>
--
Daniel-Constantin Mierla
http://www.asipto.com
More information about the Users
mailing list