[OpenSIPS-Users] var/avp persistence, onreply_route, and script context

Bobby Smith bobby.smith at gmail.com
Fri Aug 5 06:14:20 CEST 2011


Thanks for the suggestion -- unfortunately I saw this previously in a thread
and thought that'd be the key, but the results from cranking debug up the
same show it to be a different transaction on receiving the ACK and thus the
value is null. :(

I've played around with this just a little bit more and by modifying the
localcache key to be $fU_$ci (from user / callid pair, or some tag, or
something related to the initial request that's available in the script
context) I can get it to work how I want, but this really just doesn't seem
like the right way to do it.


On Fri, Aug 5, 2011 at 12:08 AM, Brett Nemeroff <brett at nemeroff.com> wrote:

> See if setting this param on helps.
>
> http://www.opensips.org/html/docs/modules/devel/tm.html#id293118
> -Brett
>
> On Aug 4, 2011, at 7:48 PM, Bobby Smith <bobby.smith at gmail.com> wrote:
>
> All,
>
> Here's why I'm trying to accomplish:
>
> route [subsequent_request] {
>    if (has_totag && is_method("ACK") {
>      if (MY_VAR = "cisco") {
>         lookup("location");
>         ... relay and exit
>      }
>      else {
>           ... relay and exit lr
>      }
>    }
> }
>
> onreply_route [foo] {
>      ....
>      if($ua =~ "Cisco-CP79") {
>           MY_VAR = "cisco"
>      }
> }
>
> The reasons are not really relevant (it's to get rid of a really poor UA
> implementation on older Cisco 79XX firmwares), but my intent is:
>
> 1) Set a transaction-visible-only value in onreply_route [foo]
> 2) Retrieve it on the ACK that completes the initial invite transaction.
>
> My problems:
>
> 1) if MY_VAR is an $avp, it returns null on retrieving it in the
> route[subsequent_request], even with the onreply flag for tm set.
> 2) if MY_VAR is a $var, it's process global and so, the next transaction
> that comes in could share the same state (race)
> 3) if MY_VAR is a flag, I can't retrieve it in the route [subsequent
> request]
> 4) if MY_VAR is a dlg_flag or a dlg_var, I can't retrieve it in the
> subsequent request even if invoking create_dialog as the first action in the
> routing script (if it's an initial invite).
> 5) The only thing I've been able to do is create a unique key via
> localcache (with $fU_useragent = myvalue) and fetch it, but this does not
> allow multiple UA's to register with the same fU
>
> My question is, is there any way to set a transaction state only value in
> an onreply hook, and retrieve it on the ACK?
>
> I know according to the RFC:
>
>       The reason for this separation is rooted in the importance <http://rfc-ref.org/RFC-TEXTS/3261/kw-importance.html> of
>       delivering all 200 (OK) responses to an INVITE <http://rfc-ref.org/RFC-TEXTS/3261/kw-invite.html> to the UAC <http://rfc-ref.org/RFC-TEXTS/3261/kw-uac.html>.  To
>       deliver them all to the UAC <http://rfc-ref.org/RFC-TEXTS/3261/kw-uac.html>, the UAS <http://rfc-ref.org/RFC-TEXTS/3261/kw-uas.html> alone takes responsibility
>
>       for retransmitting them (see Section 13.3.1.4), and the UAC <http://rfc-ref.org/RFC-TEXTS/3261/kw-uac.html> alone
>       takes responsibility for acknowledging them with ACK <http://rfc-ref.org/RFC-TEXTS/3261/kw-ack.html> (see Section
>       13.2.2.4).  Since this ACK <http://rfc-ref.org/RFC-TEXTS/3261/kw-ack.html> is retransmitted only by the UAC <http://rfc-ref.org/RFC-TEXTS/3261/kw-uac.html>, it is
>       effectively considered its own transaction <http://rfc-ref.org/RFC-TEXTS/3261/kw-transaction.html>.
>
>
>
> Is there a way to get this associated with the right dialog or something?
>  I've tried setting a dialog profile on initial invite, storing a value in
> the 200 OK onreply, and retrieving it as well in the ACK, but I get no
> dialog has been created (I guess because the dialog is early or something).
>
>
> Thanks for the ideas,
>
> BobbyS
>
> _______________________________________________
> Users mailing list
> Users at lists.opensips.org
> http://lists.opensips.org/cgi-bin/mailman/listinfo/users
>
>
> _______________________________________________
> 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/20110805/3f3c432f/attachment.htm>


More information about the Users mailing list