Hi All,
I need some expert help to trouble shoot a problem I have seen, S-CSCF send BYE to tear down a call. I have make some progress to trace the problem to impurecord.c in ims_usrloc_scscf module, _c->first_dialog_data !=0 while try to delete
an expired contact. I need some help to find out why _c->first_dialog_data is not 0 for an expired contact.
To reproduce the problem, I began with the following for user1. Contact id 4098, 4114, and 4115 would expire and a call was using id 4116. When the time to delete contact, somehow scscf mistakenly think id 4098 still has a dialog, but the
dialog was with id 4116 which was NOT expired. Therefore, S-CSCF send BYE to tear down the call, so end user see call drop. Please note, if id 4098 never make calls before, first call was working fine. But once a call was make, you will see this problem for
next call. it seem S-CSCF did not clean up the dialog_data from last call properly and some data still hanging with the contact caused this problem. any insight how to fix or avoid this would be appreciated.
id contact params path received user_agent expires callid
2192
sip:user2@192.168.164.136:62837;rinstance=bca96a7c77f53916;transport=UDP NULL <sip:term@pcscf.ims.mnc001.mcc001.3gppnetwork.org;lr> Zoiper rv2.10.3.2 2019-12-12
15:50:10 UPIM_gl22a13wlo47aeHRQ..
4098
sip:user1@192.168.164.9:61946;rinstance=7ab86c5e85643767;transport=UDP NULL <sip:term@pcscf.ims.mnc001.mcc001.3gppnetwork.org;lr> Zoiper rv2.10.3.2 2019-12-12 15:49:21
ocl7UYxJLo8TnMw2p2-6NQ..
4114
sip:user1@192.168.164.9:61946;rinstance=65afabdb886de0a7;transport=UDP NULL <sip:term@pcscf.ims.mnc001.mcc001.3gppnetwork.org;lr> Zoiper rv2.10.3.2 2019-12-12 15:50:11
GZrZHDyL3ojhDlLDPpJnvQ..
4115
sip:user1@192.168.164.9:61946;rinstance=074e2e926212237b;transport=UDP NULL <sip:term@pcscf.ims.mnc001.mcc001.3gppnetwork.org;lr> Zoiper rv2.10.3.2 2019-12-12 15:50:13
DCKsqvUjZ1dAfJLfJ3nOhA..
4116
sip:user1@192.168.164.9:61946;rinstance=38cc0c6188509aea;transport=UDP NULL <sip:term@pcscf.ims.mnc001.mcc001.3gppnetwork.org;lr> Zoiper rv2.10.3.2 2019-12-12 15:50:15
gF3fphqyrSbQwaN0eW4JLw..
13(18) DEBUG: ims_usrloc_scscf [udomain.c:384]: mem_timer_udomain(): *** mem_timer_udomain - checking IMPUs - FINISHED ***
13(18) DEBUG: ims_usrloc_scscf [udomain.c:406]: mem_timer_udomain(): deleting contact [sip:user1@ims.mnc001.mcc001.3gppnetwork.org]
13(18) DEBUG: ims_usrloc_scscf [impurecord.c:598]: delete_scontact(): Deleting contact: [sip:user1@192.168.164.9:61946;rinstance=074e2e926212237b;transport=UDP]
13(18) DEBUG: ims_usrloc_scscf [usrloc_db.c:370]: db_delete_ucontact(): Deleting ucontact [sip:user1@192.168.164.9:61946;rinstance=074e2e926212237b;transport=UDP]
13(18) DEBUG: ims_usrloc_scscf [impurecord.c:310]: mem_delete_ucontact(): Checking if dialog_data is there and needs to be torn down
13(18) DEBUG: ims_usrloc_scscf [impurecord.c:312]: mem_delete_ucontact():
first dialog is 0!
13(18) DEBUG: ims_usrloc_scscf [udomain.c:406]: mem_timer_udomain(): deleting contact [sip:user1@ims.mnc001.mcc001.3gppnetwork.org]
13(18) DEBUG: ims_usrloc_scscf [impurecord.c:598]: delete_scontact(): Deleting contact: [sip:user1@192.168.164.9:61946;rinstance=7ab86c5e85643767;transport=UDP]
13(18) DEBUG: ims_usrloc_scscf [usrloc_db.c:370]: db_delete_ucontact(): Deleting ucontact [sip:user1@192.168.164.9:61946;rinstance=7ab86c5e85643767;transport=UDP]
13(18) DEBUG: ims_usrloc_scscf [impurecord.c:310]: mem_delete_ucontact(): Checking if dialog_data is there and needs to be torn down
13(18) DEBUG: ims_usrloc_scscf [impurecord.c:314]: mem_delete_ucontact():
first dialog is not 0
13(18) DEBUG: ims_usrloc_scscf [impurecord.c:317]: mem_delete_ucontact(): Going to tear down dialog with info h_entry [1081] h_id [2579]
13(18) DEBUG: ims_dialog [dlg_hash.c:887]: lookup_dlg(): ref dlg 0x7f803f803108 with 1 -> 3
13(18) DEBUG: ims_dialog [dlg_hash.c:889]: lookup_dlg(): dialog id=2579 found on entry 1081
13(18) DEBUG: ims_dialog [dlg_hash.c:1066]: unref_dlg(): unref dlg 0x7f803f803108 with 1 -> 2
13(18) DEBUG: ims_dialog [dlg_req_within.c:379]: dlg_terminate(): terminating confirmed dialog
Thanks,
--Charles