-
Notifications
You must be signed in to change notification settings - Fork 12
Call waiting support on CDMA #204
Comments
I agree this should be solved in the Telephony API, rather than in telephony middleware. I also agree that it should be solved by changing the TelephonyCall object with a new, specific property, and signal that change on the object through an event. Then, based on the discussion I think there is a misunderstanding about the callschanged event. We need to update the spec to make it clear that it refers to the calls array being changed, i.e. new calls are added, or calls have been removed from the array/sequence. Then, the solution in the W3C Telephony API should not be too specific to CDMA, and should not be too specific to this one use case. I would rather use a more generic, parametrized API, which handles the specifics in parameters. Based on the last two arguments, I would be in favor of introducing a 'callchanged' or 'propertychanged' event on TelephonyCall, with two parameters, the name of the property changed, and the new value of the property. Or, and object parameter, with property/value list that have changed on the TelephonyCall object. This would solve the CDMA use case by firing propertychanged(cdmaCallWaiting, number), which means that TelephonyCall object has a 'cdmaCallWaiting' property when the protocol is CDMA, with the value 'number'. @marcoscaceres , @efullea : what's your opinion? |
Another way to approach GSM vs CDMA differences would be to use different objects for them, i.e. extending TelephonyCall to TelephonyCallGsm and TelephonyCallCdma, respectively, with possibly different states, property list, and behaviour. Similary, ConferenceCall would be extended to ConferenceGsm, and ConferenceCdma, respectively. |
@hsinyi: any update on this? I understand the solution you made in FxOS, but for standardization I would go with a slightly different approach: instead of mapping this out in the API, handle it in the API implementation. |
I also think it's a great idea that API implementation handles it. However we didn't do that in mozilla API because we didn't get a method to determine which call is active. Regarding accepting/rejecting a waiting call, it makes sense to me. About one of the two calls (after accepting a waiting call) being released by the remote party, how would you like to handle this? Simply make sure both are moved to 'disconnected' at the end? |
I guess the best effort method is to keep track of the user's choice (in TelephonyCall objects) and what has been told the RIL. So it's guesswork.
For the 'normal' course of actions with a single call, this gives just a hint, but probably won't help solving the waiting line case at all. There may be audio already in dialing phase (voicemail, etc), so the best an implementation could do is to consider it part of the call in CDMA (since the user is part of the signalling in a way :), i.e. set the 'active' state early. I have not tried this in practice, but if you do and you find it makes the situation manageable, we could make a recommendation note for implementations.
I am not sure I understand. If the active call is hung, that's normal case - update to disconnected. If the held call is hung, I expect the same - update to disconnected. |
@hsinyi: expanding a bit on the previous. The call waiting flow in CDMA [1]:
So what the implementation should do:
[1] http://www.3gpp2.org/public_html/specs/A.S0013-0_v1.0.pdf , section 3.4.4. |
@zolkis thanks for this. After more internal discussion with mozilla ril team, I agree that we should move on as your previous suggestion. Just one minor implementation issue: after the waiting call has been accepted, then no matter user hangs up either call, both calls are released eventually. |
Hi all,
Mozilla has been working on CDMA support recently. And we found that due to the very difference in CDMA network technology, we need to expose an additional attribute 'secondNumber' to TelephonyCall for well addressing CDMA call waiting.
For more background and mozilla's solution, please see [1] and [2].
[1] https://bugzilla.mozilla.org/show_bug.cgi?id=822210#c34
[2] https://bugzilla.mozilla.org/show_bug.cgi?id=822210#c40
The text was updated successfully, but these errors were encountered: