[SR-Users] [DMQ] Sync DLG_STATE_CONFIRMED_NA dialog state ?

Mathieu Bodjikian mathieu.bodjikian at corp.ovh.com
Mon Jul 1 12:32:57 CEST 2019


We are using DMQ module to sync dialogs between 3 Kamailio boxes.

We are using last Kamailio version (5.2.3).

>From our understanding, the state  DLG_STATE_CONFIRMED_NA is not synced over DMQ (https://github.com/kamailio/kamailio/blob/a84a3ea618f0e602a8892c37fce7f4e72ab7371c/src/modules/dialog/dlg_dmq.c#L464)

With containerized environement, the ACK's can go to any Kamailio instance, which lead to :

On first box :
    -> INVITE    received   -> Dialog created + KDMQ sent (state DLG_STATE_UNCONFIRMED)
    -> 180 | 183 received   -> Dialog updated + KDMQ sent (state DLG_STATE_EARLY)
    -> 200       received   -> Dialog updated + KDMQ NOT sent (DLG_STATE_CONFIRMED_NA)

On second box :
    -> ACK received :
        - next_state_dlg(): bogus event 6 in state 2 for dlg
        - dialog not updated
        - KDMQ with state DLG_STATE_CONFIRMED not sent

On first box, after timeout :
   -> After timeout :
        - dialg with incorrect timeouts (since box2 didn't send dialog update)
        - tm sends BYE in both ways
        - bye_reply_cb(): inconsitent dlg timer data on dlg

We see two solutions :
    - We add DLG_STATE_CONFIRMED_NA to states we sync on dlg_dmq_replicate_action

    - We manage to route the ACK on the same instance that received first INVITE (could be tricky)

Which one is preferable ?

Kind regards,
Mathieu Bodjikian

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.kamailio.org/pipermail/sr-users/attachments/20190701/7df1fa5d/attachment.html>

More information about the sr-users mailing list