<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">That is the reply route.<div class=""><br class=""></div><div class="">Start testing and adding logging.</div><div class=""><br class=""></div><div class="">The case with multiple 200 OK is something we have tested many times. The proxy should NOT try to do anything in that case, just</div><div class="">forward the multiple 200 OK to the caller and let the UA decide what to do. The UA needs to ACK both, and if it can’t somehow</div><div class="">handle multiple calls, send a BYE to one of them.</div><div class=""><br class=""></div><div class="">/O<br class=""><div><br class=""><blockquote type="cite" class=""><div class="">On 20 Apr 2020, at 15:55, Ivan Ribakov <<a href="mailto:i.ribakov@zaleos.net" class="">i.ribakov@zaleos.net</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Just thought of a follow up question - is it possible to find out which of the branches Kamailio chose as the winner? According to RFC multiple 200 OK could arrive before CANCEL is sent. Do I need to look for an outgoing ACK to know for sure which branch was chosen for sure or is there a way I could “catch” a winning branch through some sort of custom branch route (thinking along the lines of “t_on_branch_success”)?<div class=""><br class=""></div><div class="">Thanks,</div><div class="">Ivan<br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On 20 Apr 2020, at 15:28, Ivan Ribakov <<a href="mailto:i.ribakov@zaleos.net" class="">i.ribakov@zaleos.net</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class=""><meta http-equiv="Content-Type" content="text/html; charset=utf-8" class=""><div style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Thanks for pointing me to the specific section, Giovanni! I was searching RFC for the “fork” and “merge” keywords so I never got even close to this part of RFC.<div class=""><br class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On 20 Apr 2020, at 13:27, Giovanni Maruzzelli <<a href="mailto:gmaruzz@gmail.com" class="">gmaruzz@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div dir="ltr" class="">( and is implemented in automatic: when receive the 200 OK for a branch (the winning one), Kamailio sends CANCEL to the other branches )<br class=""><br class=""></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 20, 2020 at 12:48 PM Giovanni Maruzzelli <<a href="mailto:gmaruzz@gmail.com" class="">gmaruzz@gmail.com</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr" class=""><div class="">Maybe is not very explicit, but I believe section 16.7(10) of RFC 3261 deal with it (sends CANCEL to branches)</div><div class="">-giovanni<br class=""><br class=""></div></div><br class=""><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Apr 20, 2020 at 11:48 AM Ivan Ribakov <<a href="mailto:i.ribakov@zaleos.net" target="_blank" class="">i.ribakov@zaleos.net</a>> wrote:<br class=""></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div class=""><div class="">As far as I understand, RFC3261 is not providing any instructions on how to deal with forked INVITES specifically. It just says that forking can result in multiple dialogs that are part of the same original call. I couldn’t find any prescriptions on how/when to deal with these multiple dialogs specifically which makes me think it depends on the application. Once again, please correct me if I’m wrong.</div><div class=""><br class=""></div><div class="">So, in the same way as RFC3261 is not talking about forked INVITE priorities or parallelism, but Kamailio (TM module) is providing a mechanism for forking in parallel/serial modes (advanced feature that is not part of RFC3261, but is built on top of it), I’m wondering whether Kamailio (TM module) is providing any advanced features for dealing with forked INVITE responses.</div><div class=""><br class=""></div><div class="">Thanks,</div><div class="">Ivan</div><div class=""><br class=""></div><div class=""><div class=""><div class=""><br class=""><blockquote type="cite" class=""><div class="">On 20 Apr 2020, at 11:13, Olle E. Johansson <<a href="mailto:oej@edvina.net" target="_blank" class="">oej@edvina.net</a>> wrote:</div><br class=""><div class=""><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none" class=""><br class=""><br class=""><blockquote type="cite" class=""><div class="">On 20 Apr 2020, at 10:31, Ivan Ribakov <<a href="mailto:i.ribakov@zaleos.net" target="_blank" class="">i.ribakov@zaleos.net</a>> wrote:</div><br class=""><div class=""><div class="">Hi all,<div class=""><br class=""></div><div class="">What I’m trying to achieve is to have Kamailio fork an INVITE to multiple endpoints in parallel but only maintain the branch that responds first (first to respond with 200 OK I guess).</div><div class=""><br class=""></div><div class="">I’ve read the TM module documentation on forking (<a href="https://www.kamailio.org/docs/modules/stable/modules/tm.html#tm.serial_forking" target="_blank" class="">https://www.kamailio.org/docs/modules/stable/modules/tm.html#tm.serial_forking</a>) and as far as I understood a combination of “seturi()” + “append_branch()” + “t_relay()” command calls will allow me to send multiple forked INVITEs in parallel. </div><div class=""><br class=""></div><div class="">What I couldn't find information about in the documentation (please point me to it in case I missed it) is what controls (if any) do I have over forked requests. Do I need to keep track of the branches myself and cancel others when first succeeds or does Kamailio have some kind of setting for implementing such behaviour?</div></div></div></blockquote><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none" class="">It’s all implemented according to the RFC 3261 where you can read all the cool details!</div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none" class=""><br class=""></div><div style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none" class="">/O</div><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none" class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline" class="">_______________________________________________</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none" class=""><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline" class="">Kamailio (SER) - Users Mailing List</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none" class=""><a href="mailto:sr-users@lists.kamailio.org" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank" class="">sr-users@lists.kamailio.org</a><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none" class=""><a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank" class="">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a></div></blockquote></div><br class=""></div></div></div>_______________________________________________<br class="">
Kamailio (SER) - Users Mailing List<br class="">
<a href="mailto:sr-users@lists.kamailio.org" target="_blank" class="">sr-users@lists.kamailio.org</a><br class="">
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank" class="">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br class="">
</blockquote></div><br clear="all" class=""><br class="">-- <br class=""><div dir="ltr" class="">Sincerely,<br class=""><br class="">Giovanni Maruzzelli<br class="">OpenTelecom.IT<br class="">cell: +39 347 266 56 18<br class=""><br class=""></div>
</blockquote></div><br clear="all" class=""><br class="">-- <br class=""><div dir="ltr" class="gmail_signature">Sincerely,<br class=""><br class="">Giovanni Maruzzelli<br class="">OpenTelecom.IT<br class="">cell: +39 347 266 56 18<br class=""><br class=""></div>
_______________________________________________<br class="">Kamailio (SER) - Users Mailing List<br class=""><a href="mailto:sr-users@lists.kamailio.org" class="">sr-users@lists.kamailio.org</a><br class=""><a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" class="">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br class=""></div></blockquote></div><br class=""></div></div></div></div></blockquote></div><br class=""></div></div>_______________________________________________<br class="">Kamailio (SER) - Users Mailing List<br class=""><a href="mailto:sr-users@lists.kamailio.org" class="">sr-users@lists.kamailio.org</a><br class="">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users<br class=""></div></blockquote></div><br class=""></div></body></html>