:) shooting from the hip is sometimes good!
Interesting about replicating to the Asterisk Servers, I currently do this, 
using the dispatcher table so it will replicate to both Asterisk servers;
t_replicate("$ru");       ds_next_domain();        t_replicate("$ru");
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.
Thank you for the suggestions!
Jon
From: o...@edvina.net
Date: Wed, 27 Jul 2016 14:49:55 +0200
To: sr-users@lists.sip-router.org
Subject: Re: [SR-Users] Checking for 200ok Response to a REGISTER request       
kamailio-Asterisk

(Shooting from the hip, but let’s brainstorm just for fun :-) )
I would consider not saving the incoming REGISTER in the Kamailio location 
database,notfork it but replicate or forward twice to the ASterisk servers. 
Keep a counter - maybe in a hash table - and when the first 200 ok come in, 
raise the counter and then drop it.
When the second response comes in, save to kamailio location database (yes, it 
works on a response) andthen forward the response to the client. Note that you 
may end up in trouble unless you are really surethat all servers have exactly 
the same expiry time.
Whatever you do you will have a UA that retransmits unless you respond with 
some 1xx code anda situation where you may timeout the UA before you time out 
on Asterisk - so trim the Kamailiotransmit timer to be very short, much shorter 
than the UA so you make sure that Kamailio times outway ahead of your UA.
Now, you can have a timeout on htable so that you catch the situation where you 
don’t get anyresponse from Asterisk and do something about it - tell the UA to 
come back in a whilewith a retry-after or something else.
I am pretty sure I am missing something here, but it may give you some ideas to 
test out.
Cheers,/O
On 27 Jul 2016, at 14:38, Jonathan Hunter <hunter...@hotmail.com> wrote:Hello,
Thanks for the response.
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.
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. :)
Understand where your coming from however.
Jon


From: o...@edvina.net
Date: Wed, 27 Jul 2016 14:17:14 +0200
To: sr-users@lists.sip-router.org
Subject: Re: [SR-Users] Checking for 200ok Response to a REGISTER request       
kamailio-Asterisk


On 27 Jul 2016, at 14:01, Jonathan Hunter <hunter...@hotmail.com> wrote:Hi Guys,
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.
REGISTER--->KAMAILIO---->ASTERISK A                    ---->ASTERISK B
With a REGISTER---200OK exchange between Kamailio and Asterisk.
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.
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.
Hope that makes sense?
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.
I have also thought about stateless working but I really need kamailio to keep 
retransmitting the register until it gets a response.
Many thanks
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 indicating a problem in the 
architecture.
/O

_______________________________________________ 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_______________________________________________SIP
 Express Router (SER) and Kamailio (OpenSER) - sr-users mailing 
listsr-us...@lists.sip-router.orghttp://lists.sip-router.org/cgi-bin/mailman/listinfo/sr-users

_______________________________________________
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                   
                  
_______________________________________________
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

Reply via email to