Hello,

I added some functions and variables to make these operations easier. The older version required to update the r-ruri branch and use append_branch(), with keeping backup or uri branch attributes in order to restore it.

Now you have to fill the $sbranch(attribute) variable and then use either sbranch_push_ruri() or sbranch_append()

First function is overwriting the r-uri branch, perhaps what you are looking for. See some examples at:

  - http://kamailio.org/docs/modules/4.3.x/modules/pv.html#pv.f.sbranch_set_ruri

Let me know if works fine, as I didn't have time for extensive testing.

Cheers,
Daniel


On 17/04/15 16:23, Yuriy Gorlichenko wrote:
Hello. I thry to integrate redis for location module and first at all that I do - dublicate location to redis.

First At all I create analog of lookup procedure that use location but from redis. I take values from location and create branches by mannualy. All works good but branch route create dublicate of first branch. We talk about it already and I cnow that branch route creates first original Request and then create branches. So my question is how to disable creation of original URI?

My cfg part of creation branches is:
First of all I create massive of needed endpoints and then create branches as bellow.

I create it with different сucles  "while" because websockets not blocked when creates dublicate INVITE, but some UDP endpoints can not take call because answer to kamailio 482 reply and CANCELs call. 

It works fine when I logged on with wesocket device and UNP at one time. But when I logget with 2 UDP devices only this algorithm not worked.

Thanks for help.



$var(k)=0;
xlog("L_INFO", "request URI is $ru");
while ($var(k)<= $var(j)){
if ($(avp(device_contact)[$var(k)])=~"device"){
xlog("L_INFO", "This is a classic UDP call to endpoint");
if ($(avp(device_received)[$var(k)])==""){
xlog("L_INFO", "Received string is EMPTY");
$du="sip:"+$(avp(device_contact[$var(k)]){s.select,1,@});
}
else
{
xlog("L_INFO", "Received string is {$avp(device_received)[$var(k)]}");
$du=$(avp(device_received)[$var(k)]);
}
$var(UDP_contact)="sip:"+$(avp(device_contact[$var(k)]){s.select,1,@});
append_branch("sip:$tU@$(du{s.select,1,:})","0.3");
xlog("L_INFO","Classic Destination URI is {$(avp(device_contact[$var(k)]){s.select,1,@})} for {$tU}}. Destination is {$du}\n");
}
$var(k) = $var(k) + 1;
}



$var(k)=0;
xlog("L_INFO", "request URI is $ru");
while ($var(k)<=$var(j)){
if ($(avp(device_contact)[$var(k)])=~"transport=ws"){
xlog("L_INFO", "This is a classic UDP call to endpoint");
xlog("L_INFO", "Received string is {$avp(device_received)[$var(k)]}");
$du=$(avp(device_received)[$var(k)]);
append_branch("sip:$tU@$(du{s.select,1,:})","0.7");
xlog("L_INFO","Classic Destination URI is {$(avp(device_contact[$var(k)]){s.select,1,@})} for {$tU}}. Destination is {$du}\n");
}
$var(k) = $var(k) + 1;


_______________________________________________
SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list
sr-users@lists.sip-router.org
http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

-- 
Daniel-Constantin Mierla
http://twitter.com/#!/miconda - http://www.linkedin.com/in/miconda
Kamailio World Conference, May 27-29, 2015
Berlin, Germany - http://www.kamailioworld.com