Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Second SIP call to SIP Plugin Dangling DTLS Thread/SDP Error #696

Closed
shrhoads opened this issue Nov 30, 2016 · 4 comments
Closed

Second SIP call to SIP Plugin Dangling DTLS Thread/SDP Error #696

shrhoads opened this issue Nov 30, 2016 · 4 comments

Comments

@shrhoads
Copy link

shrhoads commented Nov 30, 2016

To reproduce:

Open two Chrome tabs at: https://janus.conf.meetecho.com/siptest.html
Use:
sip:v18.icoa.com sip:6010@v18.icoa.com 6010 6010 as login #1
sip:v18.icoa.com sip:6011@v18.icoa.com 6011 6011 as login #2

Dial dial 6011 from login #1, works normally
Second call fails with: DOMException: Failed to set local answer sdp: Failed to push down transport description: Offerer must use actpass value for setup attribute. (This appears in the #2 console)

The sdp offer has setup:passive instead of setup:actpass

In my logs it looks like there is some state that is not being cleaned up after Janus sip hangup. The logs are filled with

[WARN] [6791368214857040] Still waiting for the DTLS stack for component 1 in stream 1...

even though the hangup has been sent to the sip plugin.

@lminiero
Copy link
Member

Check the Admin API after the hangup and before trying again, to see if the WebRTC stuff is already there, and most importantly if the call was ever established. If it is, something was not cleaned up. Consider that you have to wait about a second before a retry after a hangup, as that's how long the "garbage collector" we have for the WebRTC stuff typically takes to kick in. Trying on the reference counters PR should avoid that limitation.

@shrhoads
Copy link
Author

I wait a long time usually between calls. Should the webrtc resources be freed? I'm not destroying the sip plugin or the session. Since the sip registration is ongoing between calls, I'm just calling once, doing hangup on both sides then calling again. I think there is some call state in the sip plugin that isn't reset between calls, but I don't know the code well enough to say for certain. I think this used to work.

@lminiero
Copy link
Member

The WebRTC stuff is not handled by the SIP plugin, but by the core. If anything's stuck in this case, it's likely there. To make sure stuff is cleared, also close the PeerConnection in your page, this will trigger a DTLS alert and as a result clean the WebRTC stuff in the core no matter the signalling.

@shrhoads
Copy link
Author

Ok, I will close this for now and reopen when I get more info.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants