Re: [OpenSIPS-Users] too many parameters for command

2020-12-04 Thread Vlad Patrascu

Hi Elaine,

Unfortunately the documentation is actually misleading and the function 
accepts only one extra argument for passing to python.


Regards,

--
Vlad Patrascu
OpenSIPS Developer
http://www.opensips-solutions.com

On 04.12.2020 11:30, Elaine Huang wrote:

Hi,

I wrote a python function that takes 3 parameters (excluding msg):


class MyClass:
  …
  my_f(self, msg, param1, param2, param3):
    …
  …


While the python module readme suggests it can accept extra args (more 
than 1), opensips fail to start with error: too many parameters for 
command 


my config code:
python_exec("my_f", param1, param2, param3)


It can start if I change it to:
python_exec("my_f", param1)


Any idea why?


OpenSIPS version: 3.1



Kind Regards,
Elaine


___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users
___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


[OpenSIPS-Users] too many parameters for command

2020-12-04 Thread Elaine Huang
Hi,

I wrote a python function that takes 3 parameters (excluding msg):


class MyClass:
  …
  my_f(self, msg, param1, param2, param3):
…
  …


While the python module readme suggests it can accept extra args (more than
1), opensips fail to start with error: too many parameters for command


my config code:
python_exec("my_f", param1, param2, param3)


It can start if I change it to:
python_exec("my_f", param1)


Any idea why?


OpenSIPS version: 3.1



Kind Regards,
Elaine
___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


Re: [OpenSIPS-Users] problem with drouting 3.1 and opensips-cp 3.0

2020-12-04 Thread johan
the problem  was that the DB was not up to date.

Lesson : use opensips-cli to install db.

On 1/12/2020 19:38, johan wrote:
> Hi, when I do reload of dialplan, the web interface returns success.
>
> When I do relaod of dynarmic routing gateway f.e., then nothing is
> returned.
>
>
> when I look in error.log of apache2 :
>
> [Tue Dec 01 13:36:30.042517 2020] [php7:notice] [pid 1370] [client
> 10.253.100.10:49664] PHP Notice:  Undefined offset: 1 in
> /var/www/html/opensips-cp/web/tools/system/drouting/template/gateways.main.php
> on line 208, referer: http://10.254.100.131/cp/menu.php
> [Tue Dec 01 13:36:30.042609 2020] [php7:notice] [pid 1370] [client
> 10.253.100.10:49664] PHP Notice:  Undefined offset: 2 in
> /var/www/html/opensips-cp/web/tools/system/drouting/template/gateways.main.php
> on line 208, referer: http://10.254.100.131/cp/menu.php
> [Tue Dec 01 13:36:31.571793 2020] [php7:warn] [pid 1370] [client
> 10.253.100.10:49664] PHP Warning:  Creating default object from empty
> value in
> /var/www/html/opensips-cp/config/tools/system/drouting/local.inc.php on
> line 24, referer:
> http://10.254.100.131/cp/tools/system/drouting/gateways.php
>
> do I need to be worried about this or what is going on ?
>
>
>


0xD7D896F7DDA70EC3.asc
Description: application/pgp-keys
___
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users


Re: [OpenSIPS-Users] lua_exec in timer route - OpenSIPS 3.1

2020-12-04 Thread Mark Allen
Interestingly - TIMER already seems to use some form of dummy message to
avoid problems. If I add the line...

timer_route[checkNodeCache, 5] {
xlog("TIMER_ROUTE");
xlog("Message info: $fU, $tU, $td, $rm");

...what is logged is...

Message info: , , , DUMMY

...so LUA will be passed a (very simple) message it seems



On Thu, 3 Dec 2020 at 15:57, Mark Allen  wrote:

> LOL! Yes, I did understand, but it is an important distinction.
>
> On Thu, 3 Dec 2020 at 15:53, Ben Newlin  wrote:
>
>> It seems like you read that as I intended, but I want to clarify I meant
>> to say I *wouldn’t* feel safe assuming that this would work long term.
>>
>>
>>
>> Ben Newlin
>>
>>
>>
>> *From: *Users  on behalf of Mark Allen
>> 
>> *Date: *Thursday, December 3, 2020 at 10:40 AM
>> *To: *OpenSIPS users mailling list 
>> *Subject: *Re: [OpenSIPS-Users] lua_exec in timer route - OpenSIPS 3.1
>>
>> > a memory leak or segfault after continued use
>>
>>
>>
>> Yes - it would be useful to know if this could result in problems down
>> the road. Not sure how else I can run a timed job if I can't use the TIMER
>> route though.
>>
>>
>>
>> On Thu, 3 Dec 2020 at 15:17, Ben Newlin  wrote:
>>
>> Mark,
>>
>>
>>
>> My concern was less about you using the message object in LUA as it was
>> with how robust OpenSIPS’ handling is if a message if expected to be there
>> and memory is allocated and passed but there is no actual message due to
>> this “trick”. Without digging into the actual code, I would feel safe
>> assuming that this wouldn’t result in a memory leak or segfault after
>> continued use.
>>
>>
>>
>> Ben Newlin
>>
>>
>>
>> *From: *Users  on behalf of Mark Allen
>> 
>> *Date: *Thursday, December 3, 2020 at 10:04 AM
>> *To: *OpenSIPS users mailling list 
>> *Subject: *Re: [OpenSIPS-Users] lua_exec in timer route - OpenSIPS 3.1
>>
>> Thanks, Johan and Ben.
>>
>>
>>
>> Johan:
>>
>> I tried your suggested approach and (much to my surprise) it worked both
>> for lua_exec and cache_remove_chunk. Thanks for that.
>>
>>
>>
>> Ben:
>>
>> I understand what you are saying for LUA. However, I think that if it's
>> made clear that you do not have access to (or should not use) the message,
>> the results should be predictable. It seems to work for me.
>>
>>
>>
>> My LUA function is reading in external data and doesn't make use of the
>> message at all. Perhaps there might be a way to provide an empty message to
>> LUA if it's invoked in TIMER  routes to avoid possible problems? LUA and
>> Python offer powerful extendablity to OpenSIPS, so it seems to me to be a
>> bit of a shame to limit their use at startup or in timers if all that's
>> needed is a tweak - or even just a warning in the documentation.
>>
>>
>>
>> As for the "cache_remove_chunk" - it's less clear why TIMER couldn't run
>> this in a straightforward way as it's not dependent on the current message
>> as far as I understand it.
>>
>>
>>
>>
>>
>> If anybody wants to try doing this - here's an example that worked for me
>> in OpenSIPS 3.1...
>>
>>
>>
>> timer_route[refreshNodes, 30] {
>> route(remove_chunk);
>> route(cache_reload);
>>
>> }
>>
>>
>>
>>
>>
>>
>>
>> route[remove_chunk] {
>> cache_remove_chunk("validNodes", "*");
>> }
>>
>> route[cache_reload] {
>> lua_exec("getValidNodes");
>> for ($var(node) in $(avp(validNodes)[*])) {
>> cache_store("local:validNodes", "$var(node)", "true");
>> }
>> }
>>
>>
>>
>>
>>
>>
>>
>> On Thu, 3 Dec 2020 at 14:20, Ben Newlin  wrote:
>>
>> I wouldn’t recommend trying to bypass the restriction in this way. Both
>> the lua and python exec modules were designed to operate on a SIP message,
>> which is why they can only be called from routes that process messages.
>> Calling it from time_route where there is no message, even if you could get
>> it to work, could have unexpected and unpleasant results.
>>
>>
>>
>> From LUA module doc for lua_exec: “Calls a Lua function with passing it
>> the current SIP message” [1].
>>
>>
>>
>> [1] https://opensips.org/docs/modules/3.1.x/lua.html#idp5933680
>>
>>
>>
>> Ben Newlin
>>
>>
>>
>> *From: *Users  on behalf of Johan De
>> Clercq 
>> *Date: *Thursday, December 3, 2020 at 6:55 AM
>> *To: *OpenSIPS users mailling list 
>> *Subject: *Re: [OpenSIPS-Users] lua_exec in timer route - OpenSIPS 3.1
>>
>> what you can try, is to call another route in the time route.
>>
>> And then in that route, you execute the lua script.
>>
>> maybe (just a myabe) that will work.
>>
>>
>>
>> wkr,
>>
>>
>>
>> Op do 3 dec. 2020 om 12:23 schreef Mark Allen :
>>
>> Hi Johan
>>
>>
>>
>> In the documentation for 3.1 lua module - TIMER_ROUTE is not one of the
>> routes available to lua_exec. If I include it in a TIMER route, OpenSIPS
>> fails to start with syntax error and the log error is:
>>
>>
>>
>> CRITICAL:core:yyerror: parse error in
>> /etc/opensips/opensips.cfg:265:19-20: Command  cannot be used in
>> the block#012
>>
>>
>>
>>