[OpenSER-Users] OpenSER 1.2.2 and 302 Moved, funny log issue?

Bogdan-Andrei Iancu bogdan at voice-system.ro
Thu Feb 28 13:12:42 CET 2008


Hi Andreas,

Andreas Granig wrote:
> Hi,
>
> Puh, it's been a while since I wrote that, so let me think :)
> As far as I remember, the idea was to extract the first branch and 
> push it into R-URI, then jump somewhere into the route sections where 
> quite some R-URI manipulation and checking is done (and most of the 
> functions can only operate on r-uri, so...)... after that, the ruri is 
> again appended as branch before sending it out. Only problem is that 
> you can only use one destination.
>
> Bogdan, what exactly do you mean by "if it does append_branch 
> somewhere later, it will just duplicate a branch"?
I mean get_redirects() function adds (internally) a new branch (from the 
contact of the 3xx reply). And you take its value (via $ds), do whatever 
you do with it, and add it again from script (append_branch) -> you have 
2 branches...

This in my opinion on this piece of script, but there is also the chance 
I'm missing something here...I haven't tried it ;)

Regards,
Bogdan
>
> Cheers,
> Andreas
>
> Bogdan-Andrei Iancu wrote:
>> Hi Zahid,
>>
>> To be honest, I do not see the purpose of this:
>>
>>         # get last URI from destination-set and set it as R-URI
>>         avp_delete("$avp(s:tmp)/g");
>>         $avp(s:tmp) = $ds;
>>         avp_subst("$avp(s:tmp)", "/.*(sip:.+@[^:;>]+).*$/\1/");
>>         avp_pushto("$ru", "$avp(s:tmp)");
>>
>> This code fetches the first branch (by using the $ds pv and the 
>> regexp) and push it as RURI; but if there is no following 
>> append_branch(), it has 0 effect. And if it does append_branch 
>> somewhere later, it will just duplicate a branch....
>>
>> Maybe Andreas (here CCed) can give you some details on this.....
>>
>> Regards,
>> Bogdan
>>
>>
>> Zahid Mehmood wrote:
>>> Hi,
>>>     If get_redirect() is already pushing the contacts as branches,  
>>> then what is the purpose /  benefit / drawback of doing something 
>>> like  this:
>>>
>>> taken from sipwise online config:
>>>
>>>          if(!get_redirects("1:1"))
>>>          {
>>>
>>>              xlog("L_ERROR", "Failed to fetch contact '$ct' from  
>>> 301/302 - M=$rm RURI=$ru F=$fu T=$tu IP=$si ID=$ci\n");
>>>              acc_db_request("480", "acc");
>>>              t_reply("480", "Temporarily Unavailable");
>>>              exit;
>>>          }
>>>          # get last URI from destination-set and set it as R-URI
>>>          avp_delete("$avp(s:tmp)/g");
>>>          $avp(s:tmp) = $ds;
>>>          avp_subst("$avp(s:tmp)", "/.*(sip:.+@[^:;>]+).*$/\1/");
>>>          avp_pushto("$ru", "$avp(s:tmp)");
>>>
>>>
>>> I'd greatly appreciate your answers as they will help me better  
>>> understand the use of branches/destination set.
>>>
>>> Thanks.
>>>
>>>   
>>
>





More information about the Users mailing list