<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]--><style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#0563C1;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:#954F72;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;
        font-weight:normal;
        font-style:normal;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri",sans-serif;}
@page WordSection1
        {size:8.5in 11.0in;
        margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="#0563C1" vlink="#954F72">
<div class="WordSection1">
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Hi,<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">  I have two instances of Kamailio acting as edge proxies. One on the customer side and one on the agent side.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">  Like: customer -> proxy1 -> proxy2 -> agent.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">  Both customer and agent are registered to proxy1/proxy2 via TLS.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">  However when proxy1 forwards to proxy2, it is using UDP. How can I force it to use TLS?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">  Attached is the result of nslookup on the domain: translation.sms-test.cyracom.com.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Thanks<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">Pranathi<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><img width="612" height="478" id="Picture_x0020_1" src="cid:image001.jpg@01D27631.42773770"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif">From:</span></b><span style="font-size:11.0pt;font-family:"Calibri",sans-serif"> sr-users [mailto:sr-users-bounces@lists.sip-router.org]
<b>On Behalf Of </b>Ryan Wagoner<br>
<b>Sent:</b> Tuesday, January 24, 2017 8:26 AM<br>
<b>To:</b> sr-users@lists.sip-router.org<br>
<b>Subject:</b> [SR-Users] Asterisk Proxy Multiple Devices / BLF Issues<o:p></o:p></span></p>
<p class="MsoNormal"><o:p> </o:p></p>
<div>
<div>
<p class="MsoNormal">I'm following the latest Kamailio and Asterisk Realtime guide to offload registrations from my FreePBX / Asterisk setup and possibly load balance down the road. I'm running Kamailio 4.4.5 and Asterisk 11.6-cert15.  I realize FreePBX isn't
 realtime and will work around  that with a database view, etc.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I was excited to see Kamailio will handle multiple devices registering to the same device/extension and placing / receiving calls works. I did run into an issue when any device unregisters Kamailio always forwards the register with expires
 0 to Asterisk. To workaround this I modified the route[REGFWD] and added the if($hdr(Expires)==$null) chunk of code. I wanted to use caller->count, but ran into stale contact records with expires set to deleted. I then tried enumerating the contacts, but don't
 understand why ulc(caller->expires) is 10 when kamctl ul show shows expires deleted. The code below works, but I was hoping for an explanation of the expires = 10 or if there was a better way to handle this scenario.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Additionally I enabled presence (WITH_PRESENCE) but Kamailio responds 489 bad event for subscribe requests from devices registered to it. I was hoping it would proxy these to Asterisk for BLF support. If somebody could point me in the right
 direction it would be appreciated.<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<div>
<div>
<p class="MsoNormal"># Forward REGISTER to Asterisk<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">route[REGFWD] {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        if(!is_method("REGISTER"))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                return;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">        if($hdr(Expires)==$null)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                reg_fetch_contacts("location", "$sel(contact.uri)", "caller");<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">                $var(i) = 0;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                $var(j) = 0;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                while($var(i) < $(ulc(caller=>count)))<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        if($(ulc(caller=>expires)[$var(i)])!=10)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                $var(j) = $var(j) + 1;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">                        $var(i) = $var(i) + 1;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">                if($var(j)>=1)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                {<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                        return;<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        }<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">        $var(rip) = $sel(cfg_get.asterisk.bindip);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        $uac_req(method)="REGISTER";<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        $uac_req(ruri)="sip:" + $var(rip) + ":" + $sel(cfg_get.asterisk.bindport);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        $uac_req(furi)="sip:" + $au + "@" + $var(rip);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        $uac_req(turi)="sip:" + $au + "@" + $var(rip);<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        $uac_req(hdrs)="Contact: <sip:" + $au + "@"<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                + $sel(cfg_get.kamailio.bindip)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                                + ":" + $sel(cfg_get.kamailio.bindport) + ">\r\n";<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        if($sel(contact.expires) != $null)<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                $uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + $sel(contact.expires) + "\r\n";<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        else<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">                $uac_req(hdrs)= $uac_req(hdrs) + "Expires: " + $hdr(Expires) + "\r\n";<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">        uac_req_send();<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">}<o:p></o:p></p>
</div>
</div>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks,<o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Ryan<o:p></o:p></p>
</div>
</div>
</div>
</body>
</html>