Hello,
maybe I do not fully understand the task. But my understanding of the dialog profiles is
that they actually use the dialog tracking functionality to maintain its internal state.
That means there should be no need to remove the dialog manually from the dialog profile
that tracks it.
If the user agent does not reply correctly to the CANCEL, maybe the user agent should be
fixed?
Cheers,
Henning
--
Henning Westerholt –
https://skalatan.de/blog/
Kamailio services –
https://gilawa.com
-----Original Message-----
From: Benoit Panizzon <benoit.panizzon(a)imp.ch>
Sent: Monday, December 19, 2022 4:43 PM
To: sr-users(a)lists.kamailio.org
Subject: [SR-Users] How to unset_dlg_profile in request_route or react more quickly to
CANCEL?
Hi List
Testing failure situations, I discovered unset_dlg_profile can not be used in
request_route:
I count the channels per customer in a dlg_profile to know when they are busy. Residential
POTS customer have 1 channel.
Now this situation (Trying to mimik POTS behavior)
Kamailio <=> CPE of 'John-Doe'
=> INVITE
set_dlg_profile of John-Doe is 0: Not busy set_dlg_profile of John-Doe +1 <= 100 trying
<= 180 ringing
== LINK to CPE DISRUPTED ==
X<= 200 OK (not reaching kamailio)
CPE is sending 200 a couple of times and fails.
Caller is still hearing ringing tone as it never got 200 OK.
The caller does not want to wait longer and hangs up =>X CANCEL (NOT reaching
CPE)
This is the moment, on which I would like to unset_dlg_profile of John-Doe to mark his
channel available again.
But the CPE is never going to acknowledge this CANCEL with 487.
Unfortunately: unset_dlg_profile(): dialog delete profile cannot be used in request
route
Only when kamailio has sent CANCEL a couple of times and the failure_route for this CANCEL
is triggered, I can remove the call from the dlg_profile of that customer within
failure_route.
If I am unlucky, in the meantime other calls get 'busy' instead of being re-routed
to the configured backup number of that customer.
Agreed, after a couple of seconds, the call goes to the failure route and the dialogue is
ending thus calls work as expected.
But wouldn't it be nice to be able to unset the dlg_profile upon receiving the CANCEL
instead on when the CANCEL transaction is successful?
Mit freundlichen Grüssen
-Benoît Panizzon-
--
I m p r o W a r e A G - Leiter Commerce Kunden
______________________________________________________
Zurlindenstrasse 29 Tel +41 61 826 93 00
CH-4133 Pratteln Fax +41 61 826 93 01
Schweiz Web
http://www.imp.ch
______________________________________________________
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions To unsubscribe send an email to
sr-users-leave(a)lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the sender!
Edit mailing list options or unsubscribe: