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.paniz...@imp.ch> 
Sent: Monday, December 19, 2022 4:43 PM
To: sr-users@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-le...@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the 
sender!
Edit mailing list options or unsubscribe:
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to sr-users-le...@lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to the 
sender!
Edit mailing list options or unsubscribe:

Reply via email to