signalwire / freeswitch

FreeSWITCH is a Software Defined Telecom Stack enabling the digital transformation from proprietary telecom switches to a versatile software implementation that runs on any commodity hardware. From a Raspberry PI to a multi-core server, FreeSWITCH can unlock the telecommunications potential of any device.
https://freeswitch.com/#getting-started
Other
3.54k stars 1.41k forks source link

Client calls FS2 via FS1. If FS2 rejects, no info is given to the client. And the call stays open on FS1, missing BYE or NOTICE/REASON #2428

Open Outme1 opened 5 months ago

Outme1 commented 5 months ago

Describe the bug A client connects on FS1 and calls a conference on FS2. A channel gets created for Client -> FS1 and a CS_EXCHANGE_MEDIA channel gets created for FS1 -> FS2. This is the correct behaviour. If the client now hangup both channels will end correctly.

But if the channel from FS1 to FS2 gets rejected, there is no hint in the clients connection. So the channel "FS1->FS2" gets destroyed and the channel "Client -> FS1" stays active.

This means that the client has no connection to the conference, but there is no indication of this on the client side.

To Reproduce Steps to reproduce the behavior: Connect two FS together. Create a Conf on FS2. Register a User on FS1. Call the Conference. Let the ACL in FS2 empty, so the Call from FS1 gets rejected. The User should now be connected to FS1 but is not in the conference with no indication of this failure.

Expected behavior Either the call is ended with BYE. Or rejected with the reason CALL_REJECTED on the Clientside.

Package version or git hash