Description

After updating from 5.3.6 to 5.3.7 Kamailio is no longer increments CSeq for ACK when used together with UAC module.

Usage scenario:

|EP1                   | Kamailio             | PBX
|    ->INVITE ->       |                      |
|    <- 407 -          |                      |
|    - ACK ->          |                      |
| -> INVITE SDP AUTH-> |                      |
|    <- 100 Trying -   |                      |
|                      | - INVITE SDP ->      |
|                      | <- 407 -             |
|                      | -> ACK ->            |
|                      | - INVITE SDP AUTH -> |
|                      | <- 100 Trying -      |
|                      | <- 200 OK -          |
|    <- 200 OK -       |                      |
|    - ACK ->          |                      |
|                      | - ACK ->             |
...

Kamailio is configured to use dialog module and calling "dlg_manage();"
UAC module is used to authenticate request on the PBX.
Because of the authentication against the PBX the CSeq is being incremented independently between Kamailio & PBX.
ACK that is send to the PBX after 200 OK usually is CSeq + 1 from EP1 ACK message.

After update, Cseq is no longer incremented in ACK which cause re-transmission of 200 OK by the PBX and eventually in 30 sec PBX drops the call because 200 is not being acknowledged.

Dialog configured as:
modparam("dialog", "dlg_flag", FLD_TRACKDLG)
modparam("dialog", "track_cseq_updates", 1)
modparam("dialog", "dlg_match_mode", 1)
modparam("dialog", "timeout_avp", "$avp(dlgtimeout)")
modparam("dialog", "default_timeout", 43200)

UAC configured as:
modparam("uac", "reg_db_url", DBURL)
modparam("uac", "reg_contact_addr", REG_CONTACT)
modparam("uac", "reg_timer_interval", 10)
modparam("uac", "restore_from_avp","$avp(original_uri_from)")
modparam("uac", "restore_to_avp","$avp(original_uri_to)")
modparam("uac", "restore_dlg", 1)
modparam("uac", "auth_username_avp","$avp(auser)")
modparam("uac", "auth_password_avp","$avp(apass)")
modparam("uac", "auth_realm_avp","$avp(arealm)")
modparam("uac", "restore_mode","manual")

Possible Solutions

After reverting this commit a973882 CSeq started to update properly.
"dialog: skip non-INVITE initial request for cseq update processing"


You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.