Skip to content

MGCP: When Call actor receives CANCEL on inbound call before MS has send respond to CRCX, Connect tries to remove all endpoints #2180

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

Closed
gvagenas opened this issue Jun 1, 2017 · 2 comments

Comments

@gvagenas
Copy link
Contributor

gvagenas commented Jun 1, 2017

... using DLCX mobicents/bridge/$ and DLCX mobicents/ivr/$
It should wait for response from MS to get the endpoint and then use the specific endpoint for DLCX

@hrosa
Copy link
Contributor

hrosa commented Jun 1, 2017

Here's relevant portion from a pcap
screen shot 2017-06-01 at 14 21 32

  • INVITE comes in and RestComm sends CRCX to the Media Server, to create bridge and IVR endpoints.
  • User Agent CANCELs the call. At this point, RestComm has not yet received the MGCP response to the CRCX request. So resources were created at MS side but RestComm is still not aware of their IDs.
  • RestComm sends DLCX to the media server with wildcard. This is not allowed!

My suggestion is that RestComm Call actor should enter a CANCELING state where it waits for the pending response from Media Server, before proceeding with resource cleanup.

This issue is serious and can cripple the system, because ghost resources will be left unchecked on Media Server side, consuming memory and CPU.

@gvagenas
Copy link
Contributor Author

It's very hard to reproduce the issue with live test calls, since the CANCEL must arrive 10-15ms after INVITE.
Its impossible to reproduce on the testsuite.

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

No branches or pull requests

3 participants