Dear Community,
I wrote before about my random issues with calls disconnection.
We found some issue in our VMWare environment that much packets was lost.
We resolved the issue by moving to other VMWare host however the issue is
still present.
Currently it is random and some calls do not disconnect due to no BYE
forwarded by kamailio to other side.
Here is the pcap of such call :
https://www.dropbox.com/s/7bktz3p4im6ztld/bad-dialog-call.zip?dl=1
We use dialog module and dispatcher.
dlg_manage(); is only executed in this block :
# - flags
# FLT_ - per transaction (message) flags
# FLB_ - per branch flags
#!define FLT_ACC 1
#!define FLT_ACCMISSED 2
#!define FLT_ACCFAILED 3
#!define FLT_DLG 4
.
.
.
# account only INVITEs
if (is_method("INVITE")) {
setflag(FLT_DLG); # create dialog << i added it
setflag(FLT_ACCMISSED); # do accounting even if failed << i added it
setflag(FLT_ACC); # do accounting
#route(LIMIT_CALLS);
dlg_manage();
sip_trace();
}
I really have no idea i am unable to find differences between the bad and
good call.
The SIP packets looking good but the BYE is not processed.
Please help me out how to debug it?
I was thinking of adding a log for checking if request is BYE and if it is
check if it match a dialog using is_known_dlg() method.
Please let me know if you see what is wrong.
Just to mention kamailio is listening on private IP with advertise to
public IP.
Best regards!