Hello,
I'm trying to build new contact header that will be sent from Kamailio as below :
load_gws(1, $rU, $fu);
append_to_reply("Contact:");
while (next_gw())
{
append_to_reply("$ru");
}
append_to_reply("\r\n");
sl_send_reply("300","Multiple Choices");
exit;
yet I'm getting two Contact headers as shown in below SIP message.
How can I remove second contact header (highlighted below in gray)
Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport= 42528;received=192.168.26.3
To: "9612"sip:9612@192.168.110.181;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d
From: "test"sip:test@192.168.110.181;tag=8571af74
Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY
CSeq: 2 INVITE
Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.2 6.8
Contact: sip:9612@192.168.26.8
Server: kamailio (4.1.8 (x86_64/linux))
Content-Length: 0
Thanks,
Ali
Hello,
the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either).
The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely.
Cheers, Daniel
On 04/06/15 13:59, Ali Taher wrote:
Hello,
I’m trying to build new contact header that will be sent from Kamailio as below :
load_gws(1, $rU, $fu);
append_to_reply("Contact:");
while (next_gw()) {
append_to_reply("$ru");
} append_to_reply("\r\n"); sl_send_reply("300","Multiple Choices"); exit;
yet I’m getting two Contact headers as shown in below SIP message.
How can I remove second contact header (highlighted below in gray)
Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport=42528;received=192.168.26.3
To: “9612"sip:9612@192.168.110.181;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d
From: "test"sip:test@192.168.110.181;tag=8571af74
Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY
CSeq: 2 INVITE
Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.26.8
Contact: sip:9612@192.168.26.8
Server: kamailio (4.1.8 (x86_64/linux))
Content-Length: 0
Thanks,
Ali
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
Hi Daniel,
I'm using this method because I'm having issue with append_branch where last gateway is listed first.
For example if gateways are ordered in LCR_rule_target as 1,2,3 , I'm having them in contact header as : 3,1,2,3
I'm using below code :
if (!load_gws(1, $rU, $fu)) {
sl_send_reply("502", "Unable To lOad GatEwAyS");
exit;}
while(next_gw()){
append_branch(); }
sl_send_reply("302","Moved Temporary");
exit;
}
Any hint regarding the above would be appreciated.
Regards,
Ali
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of Daniel-Constantin Mierla Sent: Thursday, June 04, 2015 4:41 PM To: Kamailio (SER) - Users Mailing List Subject: Re: [SR-Users] Kamailio second contact header
Hello,
the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either).
The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely.
Cheers, Daniel
On 04/06/15 13:59, Ali Taher wrote:
Hello,
I'm trying to build new contact header that will be sent from Kamailio as below :
load_gws(1, $rU, $fu);
append_to_reply("Contact:");
while (next_gw())
{
append_to_reply("$ru");
}
append_to_reply("\r\n");
sl_send_reply("300","Multiple Choices");
exit;
yet I'm getting two Contact headers as shown in below SIP message.
How can I remove second contact header (highlighted below in gray)
Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport= 42528;received=192.168.26.3
To: "9612" sip:9612@192.168.110.181 sip:9612@192.168.110.181;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d
From: "test" sip:test@192.168.110.181 sip:test@192.168.110.181;tag=8571af74
Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY
CSeq: 2 INVITE
Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.2 6.8
Contact: sip:9612@192.168.26.8
Server: kamailio (4.1.8 (x86_64/linux))
Content-Length: 0
Thanks,
Ali
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org mailto:sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Hello,
next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block:
$(branch(uri)[-1]) = $null;
Cheers, Daniel
On 04/06/15 16:01, Ali Taher wrote:
Hi Daniel,
I’m using this method because I’m having issue with append_branch where last gateway is listed first.
For example if gateways are ordered in LCR_rule_target as 1,2,3 , I’m having them in contact header as : 3,1,2,3
I’m using below code :
if (!load_gws(1, $rU, $fu)) {
sl_send_reply("502", "Unable To lOad GatEwAyS"); exit;} while(next_gw()){ append_branch(); } sl_send_reply("302","Moved Temporary"); exit; }
Any hint regarding the above would be appreciated.
Regards,
Ali
*From:*sr-users [mailto:sr-users-bounces@lists.sip-router.org] *On Behalf Of *Daniel-Constantin Mierla *Sent:* Thursday, June 04, 2015 4:41 PM *To:* Kamailio (SER) - Users Mailing List *Subject:* Re: [SR-Users] Kamailio second contact header
Hello,
the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either).
The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely.
Cheers, Daniel
On 04/06/15 13:59, Ali Taher wrote:
Hello, I’m trying to build new contact header that will be sent from Kamailio as below : load_gws(1, $rU, $fu); append_to_reply("Contact:"); while (next_gw()) { append_to_reply("$ru"); } append_to_reply("\r\n"); sl_send_reply("300","Multiple Choices"); exit; yet I’m getting two Contact headers as shown in below SIP message. How can I remove second contact header (highlighted below in gray) Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport=42528;received=192.168.26.3 To: “9612"<sip:9612@192.168.110.181> <sip:9612@192.168.110.181>;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d From: "test"<sip:test@192.168.110.181> <sip:test@192.168.110.181>;tag=8571af74 Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY CSeq: 2 INVITE Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.26.8 Contact: sip:9612@192.168.26.8 Server: kamailio (4.1.8 (x86_64/linux)) Content-Length: 0 Thanks, Ali _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org <mailto: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://twitter.com/#%21/miconda - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com
Hi Daniel,
If it is the case then the ordering shouldn't be 1,2,3,3 ? but I'm getting 3,1,2,3.
I tried to set $(branch(uri)[-1]) = $null; after the while block , but nothing changed :(
Thanks,
Ali
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: Thursday, June 04, 2015 5:28 PM To: Ali Taher; 'Kamailio (SER) - Users Mailing List' Subject: Re: [SR-Users] Kamailio second contact header
Hello,
next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block:
$(branch(uri)[-1]) = $null;
Cheers, Daniel
On 04/06/15 16:01, Ali Taher wrote:
Hi Daniel,
I'm using this method because I'm having issue with append_branch where last gateway is listed first.
For example if gateways are ordered in LCR_rule_target as 1,2,3 , I'm having them in contact header as : 3,1,2,3
I'm using below code :
if (!load_gws(1, $rU, $fu)) {
sl_send_reply("502", "Unable To lOad GatEwAyS");
exit;}
while(next_gw()){
append_branch(); }
sl_send_reply("302","Moved Temporary");
exit;
}
Any hint regarding the above would be appreciated.
Regards,
Ali
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of Daniel-Constantin Mierla Sent: Thursday, June 04, 2015 4:41 PM To: Kamailio (SER) - Users Mailing List Subject: Re: [SR-Users] Kamailio second contact header
Hello,
the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either).
The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely.
Cheers, Daniel
On 04/06/15 13:59, Ali Taher wrote:
Hello,
I'm trying to build new contact header that will be sent from Kamailio as below :
load_gws(1, $rU, $fu);
append_to_reply("Contact:");
while (next_gw())
{
append_to_reply("$ru");
}
append_to_reply("\r\n");
sl_send_reply("300","Multiple Choices");
exit;
yet I'm getting two Contact headers as shown in below SIP message.
How can I remove second contact header (highlighted below in gray)
Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport= 42528;received=192.168.26.3
To: "9612" sip:9612@192.168.110.181 sip:9612@192.168.110.181;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d
From: "test" sip:test@192.168.110.181 sip:test@192.168.110.181;tag=8571af74
Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY
CSeq: 2 INVITE
Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.2 6.8
Contact: sip:9612@192.168.26.8
Server: kamailio (4.1.8 (x86_64/linux))
Content-Length: 0
Thanks,
Ali
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org mailto:sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Hi,
I tried to not calling append_branch() when last successful next_gw() using below code :
$var(z)=0;
$var(a)=0;
if (!load_gws(1, $rU, $fu))
{
sl_send_reply("502", "Unable To lOad GatEwAyS");
exit; }
while(next_gw()) $var(z) = $var(z) +1;
xlog("L_INFO", "number of gateways : $var(z)\n");
load_gws(1, $rU, $fu);
while (next_gw()){
xlog("L_INFO", "gateway is : $ru\n");
$var(a)=$var(a)+1;
if($var(a)!=$var(z))append_branch();
}
In this case I'm getting in contact headers the following gateways : 3,1,2
Regards,
Ali
From: Ali Taher [mailto:ataher@vanrise.com] Sent: Thursday, June 04, 2015 5:44 PM To: miconda@gmail.com; 'Kamailio (SER) - Users Mailing List' Cc: 'Ali Taher~Vanrise Technical Support' Subject: RE: [SR-Users] Kamailio second contact header
Hi Daniel,
If it is the case then the ordering shouldn't be 1,2,3,3 ? but I'm getting 3,1,2,3.
I tried to set $(branch(uri)[-1]) = $null; after the while block , but nothing changed :(
Thanks,
Ali
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: Thursday, June 04, 2015 5:28 PM To: Ali Taher; 'Kamailio (SER) - Users Mailing List' Subject: Re: [SR-Users] Kamailio second contact header
Hello,
next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block:
$(branch(uri)[-1]) = $null;
Cheers, Daniel
On 04/06/15 16:01, Ali Taher wrote:
Hi Daniel,
I'm using this method because I'm having issue with append_branch where last gateway is listed first.
For example if gateways are ordered in LCR_rule_target as 1,2,3 , I'm having them in contact header as : 3,1,2,3
I'm using below code :
if (!load_gws(1, $rU, $fu)) {
sl_send_reply("502", "Unable To lOad GatEwAyS");
exit;}
while(next_gw()){
append_branch(); }
sl_send_reply("302","Moved Temporary");
exit;
}
Any hint regarding the above would be appreciated.
Regards,
Ali
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of Daniel-Constantin Mierla Sent: Thursday, June 04, 2015 4:41 PM To: Kamailio (SER) - Users Mailing List Subject: Re: [SR-Users] Kamailio second contact header
Hello,
the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either).
The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely.
Cheers, Daniel
On 04/06/15 13:59, Ali Taher wrote:
Hello,
I'm trying to build new contact header that will be sent from Kamailio as below :
load_gws(1, $rU, $fu);
append_to_reply("Contact:");
while (next_gw())
{
append_to_reply("$ru");
}
append_to_reply("\r\n");
sl_send_reply("300","Multiple Choices");
exit;
yet I'm getting two Contact headers as shown in below SIP message.
How can I remove second contact header (highlighted below in gray)
Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport= 42528;received=192.168.26.3
To: "9612" sip:9612@192.168.110.181 sip:9612@192.168.110.181;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d
From: "test" sip:test@192.168.110.181 sip:test@192.168.110.181;tag=8571af74
Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY
CSeq: 2 INVITE
Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.2 6.8
Contact: sip:9612@192.168.26.8
Server: kamailio (4.1.8 (x86_64/linux))
Content-Length: 0
Thanks,
Ali
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org mailto:sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Hello,
the last address from next_gw() becaomes the last r-uri and that is added as first contact. You will have to shift the URIs. Maybe the simplest way would be to disable adding r-uri as contact in 3xx via a mod param in sl module.
Also, if you use 4.3, might worth looking at rtjson module, you can build a json holding the destination addresses in the order you want and the push them to r-uri and branches.
Cheers, Daniel
On 04/06/15 17:00, Ali Taher wrote:
Hi,
I tried to not calling append_branch() when last successful next_gw() using below code :
$var(z)=0;
$var(a)=0;
if (!load_gws(1, $rU, $fu))
{ sl_send_reply("502", "Unable To lOad GatEwAyS"); exit; }
while(next_gw()) $var(z) = $var(z) +1;
xlog("L_INFO", "number of gateways : $var(z)\n");
load_gws(1, $rU, $fu);
while (next_gw()){ xlog("L_INFO", "gateway is : $ru\n"); $var(a)=$var(a)+1; if($var(a)!=$var(z))append_branch(); }
In this case I’m getting in contact headers the following gateways : 3,1,2
Regards,
Ali
*From:*Ali Taher [mailto:ataher@vanrise.com] *Sent:* Thursday, June 04, 2015 5:44 PM *To:* miconda@gmail.com; 'Kamailio (SER) - Users Mailing List' *Cc:* 'Ali Taher~Vanrise Technical Support' *Subject:* RE: [SR-Users] Kamailio second contact header
Hi Daniel,
If it is the case then the ordering shouldn’t be 1,2,3,3 ? but I’m getting 3,1,2,3.
I tried to set $(branch(uri)[-1]) = $null; after the while block , but nothing changed L
Thanks,
Ali
*From:*Daniel-Constantin Mierla [mailto:miconda@gmail.com] *Sent:* Thursday, June 04, 2015 5:28 PM *To:* Ali Taher; 'Kamailio (SER) - Users Mailing List' *Subject:* Re: [SR-Users] Kamailio second contact header
Hello,
next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block:
$(branch(uri)[-1]) = $null;
Cheers, Daniel
On 04/06/15 16:01, Ali Taher wrote:
Hi Daniel, I’m using this method because I’m having issue with append_branch where last gateway is listed first. For example if gateways are ordered in LCR_rule_target as 1,2,3 , I’m having them in contact header as : 3,1,2,3 I’m using below code : if (!load_gws(1, $rU, $fu)) { sl_send_reply("502", "Unable To lOad GatEwAyS"); exit;} while(next_gw()){ append_branch(); } sl_send_reply("302","Moved Temporary"); exit; } Any hint regarding the above would be appreciated. Regards, Ali *From:*sr-users [mailto:sr-users-bounces@lists.sip-router.org] *On Behalf Of *Daniel-Constantin Mierla *Sent:* Thursday, June 04, 2015 4:41 PM *To:* Kamailio (SER) - Users Mailing List *Subject:* Re: [SR-Users] Kamailio second contact header Hello, the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either). The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely. Cheers, Daniel On 04/06/15 13:59, Ali Taher wrote: Hello, I’m trying to build new contact header that will be sent from Kamailio as below : load_gws(1, $rU, $fu); append_to_reply("Contact:"); while (next_gw()) { append_to_reply("$ru"); } append_to_reply("\r\n"); sl_send_reply("300","Multiple Choices"); exit; yet I’m getting two Contact headers as shown in below SIP message. How can I remove second contact header (highlighted below in gray) Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport=42528;received=192.168.26.3 To: “9612"<sip:9612@192.168.110.181> <sip:9612@192.168.110.181>;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d From: "test"<sip:test@192.168.110.181> <sip:test@192.168.110.181>;tag=8571af74 Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY CSeq: 2 INVITE Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.26.8 Contact: sip:9612@192.168.26.8 Server: kamailio (4.1.8 (x86_64/linux)) Content-Length: 0 Thanks, Ali _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org <mailto: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://twitter.com/#%21/miconda> - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com
-- Daniel-Constantin Mierla http://twitter.com/#!/miconda http://twitter.com/#%21/miconda - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com
Hi Daniel,
I tried the following mod param : modparam("sl", "bind_tm", 0), which is the only boolean param in sl module , but unfortunately still the same
How could I shift the URIs ?
Thanks,
Ali
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: Friday, June 05, 2015 10:04 AM To: Ali Taher; 'Kamailio (SER) - Users Mailing List' Subject: Re: [SR-Users] Kamailio second contact header
Hello,
the last address from next_gw() becaomes the last r-uri and that is added as first contact. You will have to shift the URIs. Maybe the simplest way would be to disable adding r-uri as contact in 3xx via a mod param in sl module.
Also, if you use 4.3, might worth looking at rtjson module, you can build a json holding the destination addresses in the order you want and the push them to r-uri and branches.
Cheers, Daniel
On 04/06/15 17:00, Ali Taher wrote:
Hi,
I tried to not calling append_branch() when last successful next_gw() using below code :
$var(z)=0;
$var(a)=0;
if (!load_gws(1, $rU, $fu))
{
sl_send_reply("502", "Unable To lOad GatEwAyS");
exit; }
while(next_gw()) $var(z) = $var(z) +1;
xlog("L_INFO", "number of gateways : $var(z)\n");
load_gws(1, $rU, $fu);
while (next_gw()){
xlog("L_INFO", "gateway is : $ru\n");
$var(a)=$var(a)+1;
if($var(a)!=$var(z))append_branch();
}
In this case I'm getting in contact headers the following gateways : 3,1,2
Regards,
Ali
From: Ali Taher [mailto:ataher@vanrise.com] Sent: Thursday, June 04, 2015 5:44 PM To: miconda@gmail.com mailto:miconda@gmail.com ; 'Kamailio (SER) - Users Mailing List' Cc: 'Ali Taher~Vanrise Technical Support' Subject: RE: [SR-Users] Kamailio second contact header
Hi Daniel,
If it is the case then the ordering shouldn't be 1,2,3,3 ? but I'm getting 3,1,2,3.
I tried to set $(branch(uri)[-1]) = $null; after the while block , but nothing changed :(
Thanks,
Ali
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: Thursday, June 04, 2015 5:28 PM To: Ali Taher; 'Kamailio (SER) - Users Mailing List' Subject: Re: [SR-Users] Kamailio second contact header
Hello,
next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block:
$(branch(uri)[-1]) = $null;
Cheers, Daniel
On 04/06/15 16:01, Ali Taher wrote:
Hi Daniel,
I'm using this method because I'm having issue with append_branch where last gateway is listed first.
For example if gateways are ordered in LCR_rule_target as 1,2,3 , I'm having them in contact header as : 3,1,2,3
I'm using below code :
if (!load_gws(1, $rU, $fu)) {
sl_send_reply("502", "Unable To lOad GatEwAyS");
exit;}
while(next_gw()){
append_branch(); }
sl_send_reply("302","Moved Temporary");
exit;
}
Any hint regarding the above would be appreciated.
Regards,
Ali
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of Daniel-Constantin Mierla Sent: Thursday, June 04, 2015 4:41 PM To: Kamailio (SER) - Users Mailing List Subject: Re: [SR-Users] Kamailio second contact header
Hello,
the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either).
The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely.
Cheers, Daniel
On 04/06/15 13:59, Ali Taher wrote:
Hello,
I'm trying to build new contact header that will be sent from Kamailio as below :
load_gws(1, $rU, $fu);
append_to_reply("Contact:");
while (next_gw())
{
append_to_reply("$ru");
}
append_to_reply("\r\n");
sl_send_reply("300","Multiple Choices");
exit;
yet I'm getting two Contact headers as shown in below SIP message.
How can I remove second contact header (highlighted below in gray)
Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport= 42528;received=192.168.26.3
To: "9612" sip:9612@192.168.110.181 sip:9612@192.168.110.181;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d
From: "test" sip:test@192.168.110.181 sip:test@192.168.110.181;tag=8571af74
Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY
CSeq: 2 INVITE
Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.2 6.8
Contact: sip:9612@192.168.26.8
Server: kamailio (4.1.8 (x86_64/linux))
Content-Length: 0
Thanks,
Ali
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org mailto:sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Hello,
there is no parameter to disable adding new r-uri as a contact, I suggested to be added.
Meanwhile I looked at the code and there could be an option to get it work.
Append a branch after each next_gw() and before sending reply, do "revert_uri();" (ie., instead of dropping last branch do revert_uri()).
Cheers, Daniel
On 05/06/15 09:27, Ali Taher wrote:
Hi Daniel,
I tried the following mod param : modparam("sl", "bind_tm", 0), which is the only boolean param in sl module , but unfortunately still the same
How could I shift the URIs ?
Thanks,
Ali
*From:*Daniel-Constantin Mierla [mailto:miconda@gmail.com] *Sent:* Friday, June 05, 2015 10:04 AM *To:* Ali Taher; 'Kamailio (SER) - Users Mailing List' *Subject:* Re: [SR-Users] Kamailio second contact header
Hello,
the last address from next_gw() becaomes the last r-uri and that is added as first contact. You will have to shift the URIs. Maybe the simplest way would be to disable adding r-uri as contact in 3xx via a mod param in sl module.
Also, if you use 4.3, might worth looking at rtjson module, you can build a json holding the destination addresses in the order you want and the push them to r-uri and branches.
Cheers, Daniel
On 04/06/15 17:00, Ali Taher wrote:
Hi, I tried to not calling append_branch() when last successful next_gw() using below code : $var(z)=0; $var(a)=0; if (!load_gws(1, $rU, $fu)) { sl_send_reply("502", "Unable To lOad GatEwAyS"); exit; } while(next_gw()) $var(z) = $var(z) +1; xlog("L_INFO", "number of gateways : $var(z)\n"); load_gws(1, $rU, $fu); while (next_gw()){ xlog("L_INFO", "gateway is : $ru\n"); $var(a)=$var(a)+1; if($var(a)!=$var(z))append_branch(); } In this case I’m getting in contact headers the following gateways : 3,1,2 Regards, Ali *From:*Ali Taher [mailto:ataher@vanrise.com] *Sent:* Thursday, June 04, 2015 5:44 PM *To:* miconda@gmail.com <mailto:miconda@gmail.com>; 'Kamailio (SER) - Users Mailing List' *Cc:* 'Ali Taher~Vanrise Technical Support' *Subject:* RE: [SR-Users] Kamailio second contact header Hi Daniel, If it is the case then the ordering shouldn’t be 1,2,3,3 ? but I’m getting 3,1,2,3. I tried to set $(branch(uri)[-1]) = $null; after the while block , but nothing changed L Thanks, Ali *From:*Daniel-Constantin Mierla [mailto:miconda@gmail.com] *Sent:* Thursday, June 04, 2015 5:28 PM *To:* Ali Taher; 'Kamailio (SER) - Users Mailing List' *Subject:* Re: [SR-Users] Kamailio second contact header Hello, next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block: $(branch(uri)[-1]) = $null; Cheers, Daniel On 04/06/15 16:01, Ali Taher wrote: Hi Daniel, I’m using this method because I’m having issue with append_branch where last gateway is listed first. For example if gateways are ordered in LCR_rule_target as 1,2,3 , I’m having them in contact header as : 3,1,2,3 I’m using below code : if (!load_gws(1, $rU, $fu)) { sl_send_reply("502", "Unable To lOad GatEwAyS"); exit;} while(next_gw()){ append_branch(); } sl_send_reply("302","Moved Temporary"); exit; } Any hint regarding the above would be appreciated. Regards, Ali *From:*sr-users [mailto:sr-users-bounces@lists.sip-router.org] *On Behalf Of *Daniel-Constantin Mierla *Sent:* Thursday, June 04, 2015 4:41 PM *To:* Kamailio (SER) - Users Mailing List *Subject:* Re: [SR-Users] Kamailio second contact header Hello, the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either). The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely. Cheers, Daniel On 04/06/15 13:59, Ali Taher wrote: Hello, I’m trying to build new contact header that will be sent from Kamailio as below : load_gws(1, $rU, $fu); append_to_reply("Contact:"); while (next_gw()) { append_to_reply("$ru"); } append_to_reply("\r\n"); sl_send_reply("300","Multiple Choices"); exit; yet I’m getting two Contact headers as shown in below SIP message. How can I remove second contact header (highlighted below in gray) Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport=42528;received=192.168.26.3 To: “9612"<sip:9612@192.168.110.181> <sip:9612@192.168.110.181>;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d From: "test"<sip:test@192.168.110.181> <sip:test@192.168.110.181>;tag=8571af74 Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY CSeq: 2 INVITE Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.26.8 Contact: sip:9612@192.168.26.8 Server: kamailio (4.1.8 (x86_64/linux)) Content-Length: 0 Thanks, Ali _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org <mailto: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://twitter.com/#%21/miconda> - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com -- Daniel-Constantin Mierla http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda> - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com
-- Daniel-Constantin Mierla http://twitter.com/#!/miconda http://twitter.com/#%21/miconda - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com
Hi Daniel,
Below solution works very well.
Thanks :)
Ali
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: Friday, June 05, 2015 12:49 PM To: Ali Taher; 'Kamailio (SER) - Users Mailing List' Subject: Re: [SR-Users] Kamailio second contact header
Hello,
there is no parameter to disable adding new r-uri as a contact, I suggested to be added.
Meanwhile I looked at the code and there could be an option to get it work.
Append a branch after each next_gw() and before sending reply, do "revert_uri();" (ie., instead of dropping last branch do revert_uri()).
Cheers, Daniel
On 05/06/15 09:27, Ali Taher wrote:
Hi Daniel,
I tried the following mod param : modparam("sl", "bind_tm", 0), which is the only boolean param in sl module , but unfortunately still the same
How could I shift the URIs ?
Thanks,
Ali
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: Friday, June 05, 2015 10:04 AM To: Ali Taher; 'Kamailio (SER) - Users Mailing List' Subject: Re: [SR-Users] Kamailio second contact header
Hello,
the last address from next_gw() becaomes the last r-uri and that is added as first contact. You will have to shift the URIs. Maybe the simplest way would be to disable adding r-uri as contact in 3xx via a mod param in sl module.
Also, if you use 4.3, might worth looking at rtjson module, you can build a json holding the destination addresses in the order you want and the push them to r-uri and branches.
Cheers, Daniel
On 04/06/15 17:00, Ali Taher wrote:
Hi,
I tried to not calling append_branch() when last successful next_gw() using below code :
$var(z)=0;
$var(a)=0;
if (!load_gws(1, $rU, $fu))
{
sl_send_reply("502", "Unable To lOad GatEwAyS");
exit; }
while(next_gw()) $var(z) = $var(z) +1;
xlog("L_INFO", "number of gateways : $var(z)\n");
load_gws(1, $rU, $fu);
while (next_gw()){
xlog("L_INFO", "gateway is : $ru\n");
$var(a)=$var(a)+1;
if($var(a)!=$var(z))append_branch();
}
In this case I'm getting in contact headers the following gateways : 3,1,2
Regards,
Ali
From: Ali Taher [mailto:ataher@vanrise.com] Sent: Thursday, June 04, 2015 5:44 PM To: miconda@gmail.com mailto:miconda@gmail.com ; 'Kamailio (SER) - Users Mailing List' Cc: 'Ali Taher~Vanrise Technical Support' Subject: RE: [SR-Users] Kamailio second contact header
Hi Daniel,
If it is the case then the ordering shouldn't be 1,2,3,3 ? but I'm getting 3,1,2,3.
I tried to set $(branch(uri)[-1]) = $null; after the while block , but nothing changed :(
Thanks,
Ali
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: Thursday, June 04, 2015 5:28 PM To: Ali Taher; 'Kamailio (SER) - Users Mailing List' Subject: Re: [SR-Users] Kamailio second contact header
Hello,
next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block:
$(branch(uri)[-1]) = $null;
Cheers, Daniel
On 04/06/15 16:01, Ali Taher wrote:
Hi Daniel,
I'm using this method because I'm having issue with append_branch where last gateway is listed first.
For example if gateways are ordered in LCR_rule_target as 1,2,3 , I'm having them in contact header as : 3,1,2,3
I'm using below code :
if (!load_gws(1, $rU, $fu)) {
sl_send_reply("502", "Unable To lOad GatEwAyS");
exit;}
while(next_gw()){
append_branch(); }
sl_send_reply("302","Moved Temporary");
exit;
}
Any hint regarding the above would be appreciated.
Regards,
Ali
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of Daniel-Constantin Mierla Sent: Thursday, June 04, 2015 4:41 PM To: Kamailio (SER) - Users Mailing List Subject: Re: [SR-Users] Kamailio second contact header
Hello,
the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either).
The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely.
Cheers, Daniel
On 04/06/15 13:59, Ali Taher wrote:
Hello,
I'm trying to build new contact header that will be sent from Kamailio as below :
load_gws(1, $rU, $fu);
append_to_reply("Contact:");
while (next_gw())
{
append_to_reply("$ru");
}
append_to_reply("\r\n");
sl_send_reply("300","Multiple Choices");
exit;
yet I'm getting two Contact headers as shown in below SIP message.
How can I remove second contact header (highlighted below in gray)
Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport= 42528;received=192.168.26.3
To: "9612" sip:9612@192.168.110.181 sip:9612@192.168.110.181;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d
From: "test" sip:test@192.168.110.181 sip:test@192.168.110.181;tag=8571af74
Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY
CSeq: 2 INVITE
Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.2 6.8
Contact: sip:9612@192.168.26.8
Server: kamailio (4.1.8 (x86_64/linux))
Content-Length: 0
Thanks,
Ali
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org mailto:sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Hello,
On 04/06/15 16:43, Ali Taher wrote:
Hi Daniel,
If it is the case then the ordering shouldn’t be 1,2,3,3 ? but I’m getting 3,1,2,3.
I tried to set $(branch(uri)[-1]) = $null; after the while block , but nothing changed L
Are you still getting all branches? Isn't the last one removed? Can you print branches before and after assiging $null? you can use:
$var(i)=0; while($var(i)<$branch(count)) { xlog("branch uri[$var(i)]: $(branch(uri)[$var(i)])\n"); $var(i) = $var(i) + 1; }
Cheers, Daniel
Thanks,
Ali
*From:*Daniel-Constantin Mierla [mailto:miconda@gmail.com] *Sent:* Thursday, June 04, 2015 5:28 PM *To:* Ali Taher; 'Kamailio (SER) - Users Mailing List' *Subject:* Re: [SR-Users] Kamailio second contact header
Hello,
next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block:
$(branch(uri)[-1]) = $null;
Cheers, Daniel
On 04/06/15 16:01, Ali Taher wrote:
Hi Daniel, I’m using this method because I’m having issue with append_branch where last gateway is listed first. For example if gateways are ordered in LCR_rule_target as 1,2,3 , I’m having them in contact header as : 3,1,2,3 I’m using below code : if (!load_gws(1, $rU, $fu)) { sl_send_reply("502", "Unable To lOad GatEwAyS"); exit;} while(next_gw()){ append_branch(); } sl_send_reply("302","Moved Temporary"); exit; } Any hint regarding the above would be appreciated. Regards, Ali *From:*sr-users [mailto:sr-users-bounces@lists.sip-router.org] *On Behalf Of *Daniel-Constantin Mierla *Sent:* Thursday, June 04, 2015 4:41 PM *To:* Kamailio (SER) - Users Mailing List *Subject:* Re: [SR-Users] Kamailio second contact header Hello, the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either). The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely. Cheers, Daniel On 04/06/15 13:59, Ali Taher wrote: Hello, I’m trying to build new contact header that will be sent from Kamailio as below : load_gws(1, $rU, $fu); append_to_reply("Contact:"); while (next_gw()) { append_to_reply("$ru"); } append_to_reply("\r\n"); sl_send_reply("300","Multiple Choices"); exit; yet I’m getting two Contact headers as shown in below SIP message. How can I remove second contact header (highlighted below in gray) Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport=42528;received=192.168.26.3 To: “9612"<sip:9612@192.168.110.181> <sip:9612@192.168.110.181>;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d From: "test"<sip:test@192.168.110.181> <sip:test@192.168.110.181>;tag=8571af74 Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY CSeq: 2 INVITE Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.26.8 Contact: sip:9612@192.168.26.8 Server: kamailio (4.1.8 (x86_64/linux)) Content-Length: 0 Thanks, Ali _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org <mailto: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://twitter.com/#%21/miconda> - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com
-- Daniel-Constantin Mierla http://twitter.com/#!/miconda http://twitter.com/#%21/miconda - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com
Hi Daniel,
Here is the log I got :
2015-06-05T10:04:35.864338+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: Before assigning <null>
2015-06-05T10:04:35.864382+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[0]: sip:9612@C001
2015-06-05T10:04:35.864433+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[1]: sip:9612@192.168.26.1
2015-06-05T10:04:35.864452+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[2]: sip:9612@192.168.26.6
2015-06-05T10:04:35.864469+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[3]: sip:9612@192.168.26.8
2015-06-05T10:04:35.864498+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: After assigning <null>
2015-06-05T10:04:35.864513+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[0]: sip:9612@C001
2015-06-05T10:04:35.864531+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[1]: sip:9612@192.168.26.1
2015-06-05T10:04:35.864547+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[2]: sip:9612@192.168.26.6
2015-06-05T10:04:35.864564+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[3]: sip:9612@192.168.26.8
Noting that the order of gateways above is correct , but in contact field I'm getting : sip:9612@192.168.26.8 , sip:9612@C001 , sip:9612@192.168.26.1 , sip:9612@192.168.26.6 , sip:9612@192.168.26.8
Below is full code I'm using:
if (is_method("INVITE"))
{
if (!load_gws(1, $rU, $fu))
{
sl_send_reply("502", "Unable To lOad GatEwAyS");
exit;
}
while (next_gw())
{
append_branch();
}
xlog("L_INFO", "Before assigning $null");
$var(i)=0;
while($var(i)<$branch(count))
{
xlog("L_INFO", "branch uri[$var(i)]: $(branch(uri)[$var(i)])\n");
$var(i) = $var(i) + 1;
}
$(branch(uri)[-1]) = $null;
xlog("L_INFO", "After assigning $null");
$var(i)=0;
while($var(i)<$branch(count))
{
xlog("L_INFO", "branch uri[$var(i)]: $(branch(uri)[$var(i)])\n");
$var(i) = $var(i) + 1;
}
sl_send_reply("300","Multiple Choices");
exit;
}
Regards,
Ali
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: Friday, June 05, 2015 9:56 AM To: Ali Taher; 'Kamailio (SER) - Users Mailing List' Subject: Re: [SR-Users] Kamailio second contact header
Hello,
On 04/06/15 16:43, Ali Taher wrote:
Hi Daniel,
If it is the case then the ordering shouldn't be 1,2,3,3 ? but I'm getting 3,1,2,3.
I tried to set $(branch(uri)[-1]) = $null; after the while block , but nothing changed :(
Are you still getting all branches? Isn't the last one removed? Can you print branches before and after assiging $null? you can use:
$var(i)=0; while($var(i)<$branch(count)) { xlog("branch uri[$var(i)]: $(branch(uri)[$var(i)])\n"); $var(i) = $var(i) + 1; }
Cheers, Daniel
Thanks,
Ali
From: Daniel-Constantin Mierla [mailto:miconda@gmail.com] Sent: Thursday, June 04, 2015 5:28 PM To: Ali Taher; 'Kamailio (SER) - Users Mailing List' Subject: Re: [SR-Users] Kamailio second contact header
Hello,
next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block:
$(branch(uri)[-1]) = $null;
Cheers, Daniel
On 04/06/15 16:01, Ali Taher wrote:
Hi Daniel,
I'm using this method because I'm having issue with append_branch where last gateway is listed first.
For example if gateways are ordered in LCR_rule_target as 1,2,3 , I'm having them in contact header as : 3,1,2,3
I'm using below code :
if (!load_gws(1, $rU, $fu)) {
sl_send_reply("502", "Unable To lOad GatEwAyS");
exit;}
while(next_gw()){
append_branch(); }
sl_send_reply("302","Moved Temporary");
exit;
}
Any hint regarding the above would be appreciated.
Regards,
Ali
From: sr-users [mailto:sr-users-bounces@lists.sip-router.org] On Behalf Of Daniel-Constantin Mierla Sent: Thursday, June 04, 2015 4:41 PM To: Kamailio (SER) - Users Mailing List Subject: Re: [SR-Users] Kamailio second contact header
Hello,
the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either).
The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely.
Cheers, Daniel
On 04/06/15 13:59, Ali Taher wrote:
Hello,
I'm trying to build new contact header that will be sent from Kamailio as below :
load_gws(1, $rU, $fu);
append_to_reply("Contact:");
while (next_gw())
{
append_to_reply("$ru");
}
append_to_reply("\r\n");
sl_send_reply("300","Multiple Choices");
exit;
yet I'm getting two Contact headers as shown in below SIP message.
How can I remove second contact header (highlighted below in gray)
Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport= 42528;received=192.168.26.3
To: "9612" sip:9612@192.168.110.181 sip:9612@192.168.110.181;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d
From: "test" sip:test@192.168.110.181 sip:test@192.168.110.181;tag=8571af74
Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY
CSeq: 2 INVITE
Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.2 6.8
Contact: sip:9612@192.168.26.8
Server: kamailio (4.1.8 (x86_64/linux))
Content-Length: 0
Thanks,
Ali
_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org mailto:sr-users@lists.sip-router.org http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users
Hello,
can you try with latest master branch? I pushed some code to clean up dropping last branch.
If all ok, I will backport.
Cheers, Daniel
On 05/06/15 09:26, Ali Taher wrote:
Hi Daniel,
Here is the log I got :
2015-06-05T10:04:35.864338+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: Before assigning <null>
2015-06-05T10:04:35.864382+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[0]: sip:9612@C001
2015-06-05T10:04:35.864433+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[1]: sip:9612@192.168.26.1
2015-06-05T10:04:35.864452+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[2]: sip:9612@192.168.26.6
2015-06-05T10:04:35.864469+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[3]: sip:9612@192.168.26.8
2015-06-05T10:04:35.864498+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: After assigning <null>
2015-06-05T10:04:35.864513+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[0]: sip:9612@C001
2015-06-05T10:04:35.864531+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[1]: sip:9612@192.168.26.1
2015-06-05T10:04:35.864547+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[2]: sip:9612@192.168.26.6
2015-06-05T10:04:35.864564+03:00 ubuntu /usr/local/sbin/kamailio[25115]: INFO: <script>: branch uri[3]: sip:9612@192.168.26.8
Noting that the order of gateways above is correct , but in contact field I’m getting : sip:9612@192.168.26.8 , sip:9612@C001 , sip:9612@192.168.26.1 , sip:9612@192.168.26.6 , sip:9612@192.168.26.8
Below is full code I’m using:
if (is_method("INVITE"))
{
if (!load_gws(1, $rU, $fu))
{ sl_send_reply("502", "Unable To lOad GatEwAyS"); exit; }
while (next_gw())
{
append_branch();
}
xlog("L_INFO", "Before assigning $null");
$var(i)=0;
while($var(i)<$branch(count))
{
xlog("L_INFO", "branch uri[$var(i)]: $(branch(uri)[$var(i)])\n");
$var(i) = $var(i) + 1;
}
$(branch(uri)[-1]) = $null;
xlog("L_INFO", "After assigning $null");
$var(i)=0;
while($var(i)<$branch(count))
{
xlog("L_INFO", "branch uri[$var(i)]: $(branch(uri)[$var(i)])\n");
$var(i) = $var(i) + 1;
}
sl_send_reply("300","Multiple Choices");
exit;
}
Regards,
Ali
*From:*Daniel-Constantin Mierla [mailto:miconda@gmail.com] *Sent:* Friday, June 05, 2015 9:56 AM *To:* Ali Taher; 'Kamailio (SER) - Users Mailing List' *Subject:* Re: [SR-Users] Kamailio second contact header
Hello,
On 04/06/15 16:43, Ali Taher wrote:
Hi Daniel, If it is the case then the ordering shouldn’t be 1,2,3,3 ? but I’m getting 3,1,2,3. I tried to set $(branch(uri)[-1]) = $null; after the while block , but nothing changed L
Are you still getting all branches? Isn't the last one removed? Can you print branches before and after assiging $null? you can use:
$var(i)=0; while($var(i)<$branch(count)) { xlog("branch uri[$var(i)]: $(branch(uri)[$var(i)])\n"); $var(i) = $var(i) + 1; }
Cheers, Daniel
Thanks, Ali *From:*Daniel-Constantin Mierla [mailto:miconda@gmail.com] *Sent:* Thursday, June 04, 2015 5:28 PM *To:* Ali Taher; 'Kamailio (SER) - Users Mailing List' *Subject:* Re: [SR-Users] Kamailio second contact header Hello, next_gw() is also setting the r-uri, so for the last successful next_gw() you should not call anymore append_branch(). Try to remove the last branch after the while block: $(branch(uri)[-1]) = $null; Cheers, Daniel On 04/06/15 16:01, Ali Taher wrote: Hi Daniel, I’m using this method because I’m having issue with append_branch where last gateway is listed first. For example if gateways are ordered in LCR_rule_target as 1,2,3 , I’m having them in contact header as : 3,1,2,3 I’m using below code : if (!load_gws(1, $rU, $fu)) { sl_send_reply("502", "Unable To lOad GatEwAyS"); exit;} while(next_gw()){ append_branch(); } sl_send_reply("302","Moved Temporary"); exit; } Any hint regarding the above would be appreciated. Regards, Ali *From:*sr-users [mailto:sr-users-bounces@lists.sip-router.org] *On Behalf Of *Daniel-Constantin Mierla *Sent:* Thursday, June 04, 2015 4:41 PM *To:* Kamailio (SER) - Users Mailing List *Subject:* Re: [SR-Users] Kamailio second contact header Hello, the r-uri is added as a Contact address for 3xx replies -- I don't remember if this is some RFC requirement or just an implementation of the sl function for 3xx replies (well, I haven't implemented those function either). The active branches of the request are added as contact header to the reply. So you can practically use append_branch() as many times as you need and then do sl_send_reply("3xx", ...). You don't need to append headers to replies explicitely. Cheers, Daniel On 04/06/15 13:59, Ali Taher wrote: Hello, I’m trying to build new contact header that will be sent from Kamailio as below : load_gws(1, $rU, $fu); append_to_reply("Contact:"); while (next_gw()) { append_to_reply("$ru"); } append_to_reply("\r\n"); sl_send_reply("300","Multiple Choices"); exit; yet I’m getting two Contact headers as shown in below SIP message. How can I remove second contact header (highlighted below in gray) Via: SIP/2.0/UDP 192.168.26.3:42528;branch=z9hG4bK-d8754z-4c2cc56c3145b446-1---d8754z-;rport=42528;received=192.168.26.3 To: “9612"<sip:9612@192.168.110.181> <sip:9612@192.168.110.181>;tag=b27e1a1d33761e85846fc98f5f3a7e58.1a8d From: "test"<sip:test@192.168.110.181> <sip:test@192.168.110.181>;tag=8571af74 Call-ID: Y2MzOTNiOGRhMTc2NDkwZjIxNzZhYTAzZmM0OGE3NDY CSeq: 2 INVITE Contact: sip:9612@C001,sip:9612@192.168.26.1,sip:9612@192.168.26.6,sip:9612@192.168.26.8 Contact: sip:9612@192.168.26.8 Server: kamailio (4.1.8 (x86_64/linux)) Content-Length: 0 Thanks, Ali _______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list sr-users@lists.sip-router.org <mailto: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://twitter.com/#%21/miconda> - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com -- Daniel-Constantin Mierla http://twitter.com/#!/miconda <http://twitter.com/#%21/miconda> - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com
-- Daniel-Constantin Mierla http://twitter.com/#!/miconda http://twitter.com/#%21/miconda - http://www.linkedin.com/in/miconda Book: SIP Routing With Kamailio - http://www.asipto.com