Hello Daniel<br><br>Thanks for pointing out to the SIP traces. I found out that it if the request is to be sent to a destination using a port other than 5060, it is required to add the $uac_req(ouri) parameter too:<br><br>
$uac_req(ouri)="sip:" + $var(asterisk_ip) + ":" + $var(asterisk_port);<br>....<br><br>$uac_req(ouri)="sip:" + $var(asterisk2_ip) + ":" + $var(asterisk2_port);<br><br><br>Thanks!<br>
<br clear="all">Alejandro Rios Peņa<br><a href="mailto:alerios@debian.org" target="_blank"></a><br><font size="1"><br>DISCLAIMER: The opinions expressed are my own, and not necessarily those of my employer.</font><br><a href="http://www.avatar.com.co" target="_blank"><br>
</a><br>
<br><br><div class="gmail_quote">2011/4/8 Daniel-Constantin Mierla <span dir="ltr"><<a href="mailto:miconda@gmail.com">miconda@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Hello,<div><div></div><div class="h5"><br>
<br>
On 4/8/11 12:28 AM, Alejandro Rios P. wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
Hi all,<br>
<br>
I am testing the scenario described here: <a href="http://kb.asipto.com/asterisk:realtime:kamailio-3.1.x-asterisk-1.6.2-astdb" target="_blank">http://kb.asipto.com/asterisk:realtime:kamailio-3.1.x-asterisk-1.6.2-astdb</a><br>
<br>
It works great with one instance of Asterisk, but now that I'm testing with two Asterisk instances to load balance, and I see a problem regarding the registration forwarding to the second Asterisk.<br>
<br>
I tried adding a second "uac_req_send()" bellow the first one, but Kamailio only sends the first request and the REGISTER never gets to the second Asterisk:<br>
<br>
# Forward REGISTER to Asterisk<br>
route[REGFWD] {<br>
if(!is_method("REGISTER"))<br>
{<br>
return;<br>
}<br>
$var(rip) = $sel(cfg_get.asterisk.bindip);<br>
$uac_req(method)="REGISTER";<br>
$uac_req(ruri)="sip:" + $var(rip) + ":" + $sel(cfg_get.asterisk.bindport);<br>
$uac_req(furi)="sip:" + $au+ "@" + $var(rip);<br>
$uac_req(turi)="sip:" + $au+ "@" + $var(rip);<br>
$uac_req(hdrs)="Contact:<sip:" + $au+ "@"<br>
+ $sel(cfg_get.kamailio.bindip)<br>
+ ":" + $sel(cfg_get.kamailio.bindport) + ">\r\n";<br>
if($sel(contact.expires) != $null)<br>
$uac_req(hdrs)= $uac_req(hdrs) + "Expires:" + $sel(contact.expires) + "\r\n";<br>
else<br>
$uac_req(hdrs)= $uac_req(hdrs) + "Expires:" + $hdr(Expires) + "\r\n";<br>
uac_req_send();<br>
<br>
$uac_req(all) = null;<br>
<br>
$var(rip2) = $sel(cfg_get.asterisk2.bindip);<br>
$uac_req(method)="REGISTER";<br>
$uac_req(ruri)="sip:" + $var(rip2) + ":" + $sel(cfg_get.asterisk2.bindport);<br>
$uac_req(furi)="sip:" + $au+ "@" + $var(rip2);<br>
$uac_req(turi)="sip:" + $au+ "@" + $var(rip2);<br>
$uac_req(hdrs)="Contact:<sip:" + $au+ "@"<br>
+ $sel(cfg_get.kamailio.bindip)<br>
+ ":" + $sel(cfg_get.kamailio.bindport) + ">\r\n";<br>
if($sel(contact.expires) != $null)<br>
$uac_req(hdrs)= $uac_req(hdrs) + "Expires:" + $sel(contact.expires) + "\r\n";<br>
else<br>
$uac_req(hdrs)= $uac_req(hdrs) + "Expires:" + $hdr(Expires) + "\r\n";<br>
uac_req_send();<br>
<br>
}<br>
<br>
I also tried appending another branch and sending the second uac_req_send() from there, but it is not being sent.<br>
<br>
How can I use uac_req_send() several times for the same request or in parallel?<br>
</blockquote></div></div>
it should work one after the other. append_branch() does not affect uac_req_send() at all, this is a separate request built from scratch.<br>
<br>
Do you get any error message in the syslog? Can you watch the traffic on all interfaces 'ngrep -d any -qt -W byline port 5060' ?<br>
<br>
I see you assign '$uac_req(all) = null;', it should be '$uac_req(all) = $null;' - but I guess it was a copy&paste thing.<br>
<br>
Cheers,<br>
Daniel<br><font color="#888888">
<br>
-- <br>
Daniel-Constantin Mierla<br>
<a href="http://www.asipto.com" target="_blank">http://www.asipto.com</a><br>
<br>
</font></blockquote></div><br>