Skip to content
This repository has been archived by the owner on May 6, 2020. It is now read-only.

Releasing control of a call without Hangup #40

Open
bklang opened this issue Jun 16, 2012 · 6 comments
Open

Releasing control of a call without Hangup #40

bklang opened this issue Jun 16, 2012 · 6 comments
Milestone

Comments

@bklang
Copy link

bklang commented Jun 16, 2012

Should it be possible for a DCP to release control of a call without hanging it up? This is similar to issue #39.

Example use-case: a DCP is going offline but wants another PCP to be able to control the call. Can it release the call back to the Rayo server such that another PCP can gain control?

This may be a special case of #39 and may be merged there.

@benlangfeld
Copy link
Member

I think it is reasonable, at least for v1.0, to assume that once a PCP becomes a DCP, it is so for the duration of the call. If a DCP wishes to go offline, it should do one of the following:

  1. Forcibly hang up all calls.
  2. Drop offline and allow the service to disconnect all calls as a result.
  3. Redirect all calls away.
  4. Go DND in order to prevent further offers, and quiesce before going offline.

@bklang
Copy link
Author

bklang commented Jun 16, 2012

In the case of #2, does the spec address what happens when a DCP goes offline? Does the Rayo Server have the option of seeking another PCP to take the call? Perhaps we can add seeking another PCP as a "MAY" option for the server?

@benlangfeld
Copy link
Member

When a DCP goes offline, the call should be dropped as if it encountered an error. The spec should (does?) state this. I think seeking another PCP would be complex on the client side (new call vs old one).

@bklang
Copy link
Author

bklang commented Jun 16, 2012

This is the only reference I see to a CP going offline (in section 6.2.2 - Inbound Sessions):

Once the server has offered control, it MUST wait indefinitely for a response from a PCP. The server SHOULD monitor the availability of PCPs to whom offers have been sent. If they all cease to be PCPs (eg by going offline) then the call should be rejected in the same way as if there had not been any available PCPs to begin with.

@bklang
Copy link
Author

bklang commented Jun 16, 2012

Looks like this should be added to section 6.6 - Session Termination:

6.6 Session Termination

Session termination may occur by one of several methods:

An inbound call may be redirected by a PCP to some other target.
An inbound call may be rejected by a PCP.
An active call, whether inbound or outbound, may be hung up (gracefully ended) by a DCP.
An active call may be hung up (gracefully ended) by the remote party.
An outbound call may be rejected by the remote party.

@benlangfeld
Copy link
Member

Agreed approach is to specify that a DCP going offline should behave the same as an explicit hangup.

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

No branches or pull requests

2 participants