<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>:) shooting from the hip is sometimes good!<div><br></div><div>Interesting about replicating to the Asterisk Servers, I currently do this, using the dispatcher table so it will replicate to both Asterisk servers;</div><div><span style="font-size: 12pt;"><br></span></div><div><span style="font-size: 12pt;">t_replicate("$ru");</span></div><div><div>       ds_next_domain();</div><div>        t_replicate("$ru");</div><div><br></div><div>I like the idea about populating the register on the way back with  the 200ok that is interesting and will look at that for sure.</div><div><br></div><div>Thank you for the suggestions!</div><div><br></div><div>Jon</div><br><div><hr id="stopSpelling">From: oej@edvina.net<br>Date: Wed, 27 Jul 2016 14:49:55 +0200<br>To: sr-users@lists.sip-router.org<br>Subject: Re: [SR-Users] Checking for 200ok Response to a REGISTER request       kamailio-Asterisk<br><br><div>(Shooting from the hip, but let’s brainstorm just for fun :-) )</div><div><br></div>I would consider not saving the incoming REGISTER in the Kamailio location database,<div>notfork it but replicate or forward twice to the ASterisk servers. Keep a counter - maybe in a hash table - </div><div>and when the first 200 ok come in, raise the counter and then drop it.</div><div><br></div><div>When the second response comes in, save to kamailio location database (yes, it works on a response) and</div><div>then forward the response to the client. Note that you may end up in trouble unless you are really sure</div><div>that all servers have exactly the same expiry time.</div><div><br></div><div>Whatever you do you will have a UA that retransmits unless you respond with some 1xx code and</div><div>a situation where you may timeout the UA before you time out on Asterisk - so trim the Kamailio</div><div>transmit timer to be very short, much shorter than the UA so you make sure that Kamailio times out</div><div>way ahead of your UA.</div><div><br></div><div>Now, you can have a timeout on htable so that you catch the situation where you don’t get any</div><div>response from Asterisk and do something about it - tell the UA to come back in a while</div><div>with a retry-after or something else.</div><div><br></div><div>I am pretty sure I am missing something here, but it may give you some ideas to test out.</div><div><br></div><div>Cheers,</div><div>/O</div><div><br></div><div><div><div><blockquote><div>On 27 Jul 2016, at 14:38, Jonathan Hunter <<a href="mailto:hunterj91@hotmail.com">hunterj91@hotmail.com</a>> wrote:</div><br class="ecxApple-interchange-newline"><div><div dir="ltr" style="font-family:Calibri;font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;">Hello,<div><br></div><div>Thanks for the response.</div><div><br></div><div>I appreciate your comments and agree, however the architecture cannot be changed currently so in the meantime its looking to apply a fix to allow for stability in the short term.</div><div><br></div><div>I have built/designed other platforms and registrations don't go anywhere near the Media servers,  so it is a case of working with what we have for the short term due to a number of reasons I wont go into. :)</div><div><br></div><div>Understand where your coming from however.</div><div><br></div><div>Jon</div><div><br></div><div><br><br><div><hr id="ecxstopSpelling">From:<span class="ecxApple-converted-space"> </span><a href="mailto:oej@edvina.net">oej@edvina.net</a><br>Date: Wed, 27 Jul 2016 14:17:14 +0200<br>To:<span class="ecxApple-converted-space"> </span><a href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><br>Subject: Re: [SR-Users] Checking for 200ok Response to a REGISTER request  kamailio-Asterisk<br><br><br><div><blockquote><div>On 27 Jul 2016, at 14:01, Jonathan Hunter <<a href="mailto:hunterj91@hotmail.com">hunterj91@hotmail.com</a>> wrote:</div><br class="ecxApple-interchange-newline"><div><div dir="ltr" style="font-family:Calibri;font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;"><div><div><br class="ecxApple-interchange-newline">Hi Guys,</div><div><br></div><div>So currently on our network we have a kamailio server which users register against, we then replicate the register messages to 2 Asterisk boxes sat behind it so that all entities are aware of the registration state of the users.</div><div><br></div><div>REGISTER--->KAMAILIO---->ASTERISK A</div><div>                    ---->ASTERISK B</div><div><br></div><div>With a REGISTER---200OK exchange between Kamailio and Asterisk.</div><div><br></div><div>We have an issue where at some points the Asterisk servers when under load dont respond with a 200 ok(something being investigated)  to the register messages sent to kamailio, so I am just working on some logic for the register message to be resent using the t_replicate and t_set_fr functions.</div><div><br></div><div>This works well should both Asterisk servers not respond, however, as I am using replicate and it is parallel forking, if say Asterisk A answers first and is available with a 200ok then that in turn cancels the register message branch being sent to Asterisk B(which I know is fine), however  there could be a scenario where Asterisk B doesnt respond, and we wont know about it to try and resend the Register message, as the branch is cancelled.</div><div><br></div><div>Hope that makes sense?</div><div><br></div><div>I am looking at checking that both the Asterisk servers have responded and sent a 200ok, which I can grab in an onreply route but Im just wondering if someone has done something similar or has any suggestions as it is tricky to achieve currently.</div><div><br></div><div>I have also thought about stateless working but I really need kamailio to keep retransmitting the register until it gets a response.</div><div><br></div><div>Many thanks</div></div></div></div></blockquote><br></div><div>In my view you are making a very complex solution. Why do you need to store the same registration in so many places? That’s </div><div>indicating a problem in the architecture.</div><div><br></div><div>/O</div><br><br>_______________________________________________ SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list<span class="ecxApple-converted-space"> </span><a href="mailto:sr-users@lists.sip-router.org">sr-users@lists.sip-router.org</a><span class="ecxApple-converted-space"> </span><a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a></div></div></div><span style="font-family:Calibri;font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline !important;">_______________________________________________</span><br style="font-family:Calibri;font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;"><span style="font-family:Calibri;font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;display:inline !important;">SIP Express Router (SER) and Kamailio (OpenSER) - sr-users mailing list</span><br style="font-family:Calibri;font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;"><a href="mailto:sr-users@lists.sip-router.org" style="font-family:Calibri;font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;">sr-users@lists.sip-router.org</a><br style="font-family:Calibri;font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;"><a href="http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users" style="font-family:Calibri;font-size:16px;font-style:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;" target="_blank">http://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users</a></div></blockquote></div><br></div></div><br>_______________________________________________
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</div></div>                                     </div></body>
</html>