<div dir="ltr"><div>Hello,</div><div>I haven't worked on the dmq replication for dialogs, so not sure why that state is not replicated, but I think that would be the right solution if the lack of replication creates issues.</div><div><br></div><div>Cheers,</div><div>Daniel<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jul 1, 2019 at 12:34 PM Mathieu Bodjikian <<a href="mailto:mathieu.bodjikian@corp.ovh.com">mathieu.bodjikian@corp.ovh.com</a>> wrote:<br></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">
<div id="gmail-m_2174169544871888058divtagdefaultwrapper" style="font-size:12pt;color:rgb(0,0,0);font-family:Calibri,Helvetica,sans-serif" dir="ltr">
<p></p>
<div>Hello,<br>
<br>
We are using DMQ module to sync dialogs between 3 Kamailio boxes.<br>
<br>
We are using last Kamailio version (5.2.3).<br>
<br>
>From our understanding, the state DLG_STATE_CONFIRMED_NA is not synced over DMQ (<a href="https://github.com/kamailio/kamailio/blob/a84a3ea618f0e602a8892c37fce7f4e72ab7371c/src/modules/dialog/dlg_dmq.c#L464" target="_blank">https://github.com/kamailio/kamailio/blob/a84a3ea618f0e602a8892c37fce7f4e72ab7371c/src/modules/dialog/dlg_dmq.c#L464</a>)<br>
<br>
With containerized environement, the ACK's can go to any Kamailio instance, which lead to :<br>
<br>
On first box :<br>
-> INVITE received -> Dialog created + KDMQ sent (state DLG_STATE_UNCONFIRMED)<br>
-> 180 | 183 received -> Dialog updated + KDMQ sent (state DLG_STATE_EARLY)<br>
-> 200 received -> Dialog updated + KDMQ NOT sent (DLG_STATE_CONFIRMED_NA)<br>
<br>
On second box :<br>
-> ACK received :<br>
- next_state_dlg(): bogus event 6 in state 2 for dlg<br>
- dialog not updated<br>
- KDMQ with state DLG_STATE_CONFIRMED not sent<br>
<br>
<br>
On first box, after timeout :<br>
-> After timeout :<br>
- dialg with incorrect timeouts (since box2 didn't send dialog update)<br>
- tm sends BYE in both ways<br>
- bye_reply_cb(): inconsitent dlg timer data on dlg<br>
<br>
<br>
<br>
We see two solutions :<br>
- We add DLG_STATE_CONFIRMED_NA to states we sync on dlg_dmq_replicate_action<br>
<br>
- We manage to route the ACK on the same instance that received first INVITE (could be tricky)<br>
<br>
<br>
Which one is preferable ?<br>
<br>
<br>
Kind regards,<br>
Mathieu Bodjikian</div>
<br>
<p></p>
</div>
</div>
_______________________________________________<br>
Kamailio (SER) - Users Mailing List<br>
<a href="mailto:sr-users@lists.kamailio.org" target="_blank">sr-users@lists.kamailio.org</a><br>
<a href="https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users" rel="noreferrer" target="_blank">https://lists.kamailio.org/cgi-bin/mailman/listinfo/sr-users</a><br>
</blockquote></div><br clear="all"><br>-- <br><div dir="ltr" class="gmail_signature"><div dir="ltr"><div><div dir="ltr"><div>Daniel-Constantin Mierla - <a href="http://www.asipto.com" target="_blank">http://www.asipto.com</a></div><div><a href="http://twitter.com/#!/miconda" target="_blank">http://twitter.com/#!/miconda</a> - <a href="http://www.linkedin.com/in/miconda" target="_blank">http://www.linkedin.com/in/miconda</a></div></div></div></div></div>