Hello,

    I am attempting to tear down a call with a BYE packet generated externally (kind of similar to Kamailio fifo dlg_end_dlg).

Let me describe what I am trying to do in more depth and then I will continue to tell you the problem I think I am experiencing.

[PSTN SIP Proxy] -> [CORE SIP Proxy] -> [REGISTRAR] -> [UAC]

So the above layout is the normal call flow / structure of calls (incoming when originating from pstn) (outgoing when originating from uac).

I then have an "external" host - I am attempting to generate a BYE to [CORE SIP Proxy] and have it go both directions [PSTN] + [UAC].

So far I am able to get the call to tear down in only a single direction (only kill call with PSTN) or (only kill call with UAC).

I have not been able to kill both legs of the call.

I have tried sending a single BYE and using some dlg_bye("all") magic.

- does not work, only kills one leg of the call.

I have tried sending a BYE message to SIP Proxy for each leg (two BYE).

- does not work, only kills one leg of the call.

If I alternate the later method's BYE packet and only send A or B and not both Leg A or B will be killed... I think I am running into a race condition where the dialog is destroyed before the 2nd BYE packet is processed.

My Question - what am I doing wrong - or what is the best method to tackle this task?

Thank you for all of your help and time in advance.

Sincerely,
Brandon Armstead