[OpenSIPS-Users] Allow scripting variables in call to rtpproxy_offer/answer?

Razvan Crainea razvancrainea at opensips.org
Thu Feb 9 10:07:25 CET 2012


Hi, Jan!

I am glad you are interested in developing a small feature in OpenSIPS, 
but you should have opened this discussion on the devel list[1].
Your assumption is right, the rtpproxy_offer/answer functions don't 
accept variables as arguments.
In order to change that, you will have to modify the 
rtpproxy_offer/answer functions interface. Each module has to declare a 
"static cmd_export_t" structure, that contains information about the 
functions the module exports. For nathelper, this structure is declared 
in "modules/nathelper/nathelper.c", line ~430. Each function contains 
the name used in the script, the equivalent C function that handles the 
processing, the number of parameters it can take, a fixup function, plus 
some other information. This fixup function is the one that parses the 
string ("wz$avp(s:mode)" in your case), and builds a structure that can 
be evaluated when the function is called.
If you need an example of how this is done, you can take a look at the 
registrar module. You can find the export structure in 
"modules/registrar/reg_mod.c", line ~138. "save" and "lookup" are two 
functions that accept variables in the second argument (take a look at 
the "registrar_fixup" C function, that parses the 3 parameters). This 
approach is also used in textops module for the "add_body" function, or 
"append_hf", "insert_hf", in the exec module for all the functions and 
other places.
If you need any more help, please send a mail on the devel list.

[1] devel at lists.opensips.org

Regards,

--
Ra(zvan Crainea
OpenSIPS Developer
http://www.opensips-solutions.com


On 02/09/2012 12:26 AM, Jan Blom wrote:
>
> Hello,
>
> I am using OpenSIPS 1.6.4-2 and rtpproxy 1.2.1. I was trying to use an 
> avp as part of the argument to Nathelper's rtpproxy_offer() and 
> rtpproxy_answer() functions. Like:
>
> rtpproxy_offer("wz$avp(s:mode)");
>
> This doesn't work and results in the following log line:
>
> ERROR:nathelper:force_rtp_proxy_body: unknown option `$'
>
> I guess these functions are not prepared to handle variables as 
> arguments. I would like to fix this in the source, but would 
> appreciate some pointers on what to actually change. I guess there are 
> number of similar places that does this right.
>
> Thanks!
>
> Best regards,
>
> Jan Blom
>
>
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opensips.org/pipermail/users/attachments/20120209/2bf9fffc/attachment.htm>


More information about the Users mailing list