Hi all!! I notest that openser has a function avp_subst(). Does ser has a function with the same purpose? I saw the function subst() in the textops but you can only substitute something directly in the message,right?.
Regards,
Hi, avp_subst exists in ser (avp module).
BTW, is there another better solution for doing the same? tks
From: "Nuno Ribeiro" nribeiro82@gmail.com To: "serusers@iptel.org" serusers@iptel.org Subject: [Serusers] avp_subst for SER Date: Tue, 11 Jul 2006 17:17:52 +0100
Hi all!! I notest that openser has a function avp_subst(). Does ser has a function with the same purpose? I saw the function subst() in the textops but you can only substitute something directly in the message,right?.
Regards,
-- Nuno Ribeiro
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Note that this is true for SER HEAD (0.10.x). 0.9.x does not have avp_subst. In SER HEAD, a lot of new (and very powerful) avp manipulation functions were added. They are created for utilizing the new selector (@something.part[x]) and the extension of $avp adressing of av pairs.
BTW, the lingo is quite technical, I feel... The @ selectors are basically pre-defined variables that can be used to address (pretty much any) parts of the SIP message and manipulate them. Avpairs (attribute-value pairs) are basically variables (string or integer) that have a variable name and a variable content. By using $variable_name you are referring to a variable with a value. This value can be collected from the SIP message, it can be manipulated and it can be put into the reply (or the message to forward). The tricky part is to understand the scope of these variables (main route, onbranch, onreply, onfailure) and what you can actually do with a message in each. g-)
Luis Silva wrote:
Hi, avp_subst exists in ser (avp module).
BTW, is there another better solution for doing the same? tks
From: "Nuno Ribeiro" nribeiro82@gmail.com To: "serusers@iptel.org" serusers@iptel.org Subject: [Serusers] avp_subst for SER Date: Tue, 11 Jul 2006 17:17:52 +0100
Hi all!! I notest that openser has a function avp_subst(). Does ser has a function with the same purpose? I saw the function subst() in the textops but you can only substitute something directly in the message,right?.
Regards,
-- Nuno Ribeiro
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Ok, I'll add few words of mine understanding.
There is one major difference between select (@) and AVP($). The select is READ-ONLY "function", the AVP could be used as variable ('coz is read/write).
The select helps to get direct access to some parts of request within the script (like @to, @cseg.method, @msg.["P-anyheader-youwant"]), but generally could be seen as function returning a string with certain number of parameters.
Each module can extend the syntax the select framework understands registering it's own select table. Look on TLS module or db_ops as good samples.
The AVPs are sorted into classes and tracks: GENERAL class (same for both FROM and TO track) DOMAIN class USER class with one interesting feature, that the AVP accesse by the track prefix only is searched in the USER class, if not found in DOMAIN class and then in GLOBAL class, so you can define GLOBAL value, which is overrided by DOMAIN (if desired) and by USER AVPs.
Small example could make it more understandable: # idea in script syntax lookup_domain("$td","@ruri"); #load domain attrs with to track based on R-URI lookup_user("$tu","@ruri"); #load user attrs with to track based on R-URI if (!registerd("$t.uid") && ($t.voicemail)) {t_forward_to("","$voicemail"; drop;}
You can set (admin in domain_attrs and user_attrs) when forwarding to the voicemail is desired or not.
if (... ($t.voicemail)) checks if the AVP exists (in user, domain or global class) and if yes, it's value is used as destination for forwarded request.
The user and domain classes are hold together with other data in tm module, so they are set the same way it were within the on_failure, on_reply route blocks. All changes done in onbranch route are disposed.
Michal
On Mon, Jul 17, 2006 at 11:41:18AM +0200, Greger V. Teigre wrote:
Note that this is true for SER HEAD (0.10.x). 0.9.x does not have avp_subst. In SER HEAD, a lot of new (and very powerful) avp manipulation functions were added. They are created for utilizing the new selector (@something.part[x]) and the extension of $avp adressing of av pairs.
BTW, the lingo is quite technical, I feel... The @ selectors are basically pre-defined variables that can be used to address (pretty much any) parts of the SIP message and manipulate them. Avpairs (attribute-value pairs) are basically variables (string or integer) that have a variable name and a variable content. By using $variable_name you are referring to a variable with a value. This value can be collected from the SIP message, it can be manipulated and it can be put into the reply (or the message to forward). The tricky part is to understand the scope of these variables (main route, onbranch, onreply, onfailure) and what you can actually do with a message in each. g-)
Luis Silva wrote:
Hi, avp_subst exists in ser (avp module).
BTW, is there another better solution for doing the same? tks
From: "Nuno Ribeiro" nribeiro82@gmail.com To: "serusers@iptel.org" serusers@iptel.org Subject: [Serusers] avp_subst for SER Date: Tue, 11 Jul 2006 17:17:52 +0100
Hi all!! I notest that openser has a function avp_subst(). Does ser has a function with the same purpose? I saw the function subst() in the textops but you can only substitute something directly in the message,right?.
Regards,
-- Nuno Ribeiro
Thanks a lot, Michal! :-) g-)
Michal Matyska wrote:
Ok, I'll add few words of mine understanding.
There is one major difference between select (@) and AVP($). The select is READ-ONLY "function", the AVP could be used as variable ('coz is read/write).
The select helps to get direct access to some parts of request within the script (like @to, @cseg.method, @msg.["P-anyheader-youwant"]), but generally could be seen as function returning a string with certain number of parameters.
Each module can extend the syntax the select framework understands registering it's own select table. Look on TLS module or db_ops as good samples.
The AVPs are sorted into classes and tracks: GENERAL class (same for both FROM and TO track) DOMAIN class USER class with one interesting feature, that the AVP accesse by the track prefix only is searched in the USER class, if not found in DOMAIN class and then in GLOBAL class, so you can define GLOBAL value, which is overrided by DOMAIN (if desired) and by USER AVPs.
Small example could make it more understandable: # idea in script syntax lookup_domain("$td","@ruri"); #load domain attrs with to track based on R-URI lookup_user("$tu","@ruri"); #load user attrs with to track based on R-URI if (!registerd("$t.uid") && ($t.voicemail)) {t_forward_to("","$voicemail"; drop;}
You can set (admin in domain_attrs and user_attrs) when forwarding to the voicemail is desired or not.
if (... ($t.voicemail)) checks if the AVP exists (in user, domain or global class) and if yes, it's value is used as destination for forwarded request.
The user and domain classes are hold together with other data in tm module, so they are set the same way it were within the on_failure, on_reply route blocks. All changes done in onbranch route are disposed.
Michal
On Mon, Jul 17, 2006 at 11:41:18AM +0200, Greger V. Teigre wrote:
Note that this is true for SER HEAD (0.10.x). 0.9.x does not have avp_subst. In SER HEAD, a lot of new (and very powerful) avp manipulation functions were added. They are created for utilizing the new selector (@something.part[x]) and the extension of $avp adressing of av pairs.
BTW, the lingo is quite technical, I feel... The @ selectors are basically pre-defined variables that can be used to address (pretty much any) parts of the SIP message and manipulate them. Avpairs (attribute-value pairs) are basically variables (string or integer) that have a variable name and a variable content. By using $variable_name you are referring to a variable with a value. This value can be collected from the SIP message, it can be manipulated and it can be put into the reply (or the message to forward). The tricky part is to understand the scope of these variables (main route, onbranch, onreply, onfailure) and what you can actually do with a message in each. g-)
Luis Silva wrote:
Hi, avp_subst exists in ser (avp module).
BTW, is there another better solution for doing the same? tks
From: "Nuno Ribeiro" nribeiro82@gmail.com To: "serusers@iptel.org" serusers@iptel.org Subject: [Serusers] avp_subst for SER Date: Tue, 11 Jul 2006 17:17:52 +0100
Hi all!! I notest that openser has a function avp_subst(). Does ser has a function with the same purpose? I saw the function subst() in the textops but you can only substitute something directly in the message,right?.
Regards,
-- Nuno Ribeiro
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Hi, Tks a lot.
BTW, I had some problems using the %avp = @hf_value.something; in the onreplyroute
From: "Greger V. Teigre" greger@teigre.com To: Luis Silva lfs12@hotmail.com CC: nribeiro82@gmail.com, serusers@iptel.org Subject: Re: [Serusers] avp_subst for SER + some general rantings about av pairs and lingo... Date: Mon, 17 Jul 2006 11:41:18 +0200
Note that this is true for SER HEAD (0.10.x). 0.9.x does not have avp_subst. In SER HEAD, a lot of new (and very powerful) avp manipulation functions were added. They are created for utilizing the new selector (@something.part[x]) and the extension of $avp adressing of av pairs.
BTW, the lingo is quite technical, I feel... The @ selectors are basically pre-defined variables that can be used to address (pretty much any) parts of the SIP message and manipulate them. Avpairs (attribute-value pairs) are basically variables (string or integer) that have a variable name and a variable content. By using $variable_name you are referring to a variable with a value. This value can be collected from the SIP message, it can be manipulated and it can be put into the reply (or the message to forward). The tricky part is to understand the scope of these variables (main route, onbranch, onreply, onfailure) and what you can actually do with a message in each. g-)
Luis Silva wrote:
Hi, avp_subst exists in ser (avp module).
BTW, is there another better solution for doing the same? tks
From: "Nuno Ribeiro" nribeiro82@gmail.com To: "serusers@iptel.org" serusers@iptel.org Subject: [Serusers] avp_subst for SER Date: Tue, 11 Jul 2006 17:17:52 +0100
Hi all!! I notest that openser has a function avp_subst(). Does ser has a function with the same purpose? I saw the function subst() in the textops but you can only substitute something directly in the message,right?.
Regards,
-- Nuno Ribeiro
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers
Serusers mailing list Serusers@lists.iptel.org http://lists.iptel.org/mailman/listinfo/serusers