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@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@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@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@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(a)nextcommunications.com
-----Original Message-----
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com]
Sent: Tuesday, November 18, 2008 6:14 AM
To: Sebastian sastre
Cc: users(a)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