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.49k stars 1.4k forks source link

freeswitch webrtc webSocket disconnects and reconnects successfully, and the phone hangs up automatically after one minute #1558

Open 15908445448 opened 2 years ago

15908445448 commented 2 years ago

1:freeswitch webrtc webSocket disconnects and reconnects successfully, and the phone hangs up automatically after one minute;

2:freeswitch sends bye first, webrtc will delay receiving bye message for one minute, and then hang up;

3:Why can't the call continue after the webrtc disconnects and reconnects, is the old call connection unable to switch to the new connection?

4:After the webrtc disconnects and reconnects, how to keep the previous call from being hung up? How to solve this problem?

pedroCore commented 2 years ago

I'm using SIP.js i have this very same problem, it happens to like 5% of the calls a day, because it's like a probability issue, the socket goes down (I don't know why) right in the middle of an INVITE transaction, between the received 180 Ringing and the 200 OK (answering the call), then Freeswitch doesn't send the ACK which makes the client (SIP.js) to keep retransmitting the 200 OK over and over till the internal timer of the client hangups the call automatically, for me it happens at 32 seconds, but i think it depends on the timer configured.

Strangely enough I receive the CHANNEL_ANSWER in my realtime events, so FreeSwitch receives and processes the 200 OK, and even further, when the client hangups with a BYE, FreeSwitch sends a 200 OK.

I am using FreeSwitch v1.10.7.

And here is a trace from the console: fs-sip-trace-32s-drop.log

I will also refer that the websocket endpoint often fails and becomes unresponsive for a few seconds, this happens a lot.

AKON-SU commented 1 year ago

I have a similar situation, the frontend uses JSSIP 3.9.x ,Freeswitch version is V1.10.7 The call was hang up by caller, hang up reason is 'NORMAL_CLEARING', but different from normal hang up, there are 'Overriding SIP cause 480 with 408 from the other leg' in log in the message from freeswitch to esl ,there has 'hangupCause=RECOVERY_ON_TIMER_EXPIRE'

themsley-voiceflex commented 10 months ago

This can probably be closed, duplicate of #2283