Changes

Jump to: navigation, search

WebAPI/WebTelephony

2,078 bytes added, 11:18, 24 November 2014
Implementation Specifics: CDMA mpty call
== Implementation Specifics ==
=== Telephony call states (GSM) ===
The diagram below shows the current design of B2G telephony call states.
incoming.answer();
};
 
=== CDMA Multiparty Call Design ===
==== Call Waiting Scenario ====
When a CDMA call waiting notification is received on a device, there's only one connection with carrier. The API tries to reflect the behaviour - keep only one TelephonyCall object.
 
API design in detailed:
# The waiting call number is assigned to the only call's second number, i.e. navigator.telephony.calls[0].secondId, and navigator.telephony.oncallschanged is fired
# To accept the waiting call or to switch between two calls, simply call |navigator.telephony.calls[0].hold()|. As the only network connection remains "connected" the API follows the situation, so |.calls[0].state| remains "connected" even |hold()| succeeds.
# No specific API for rejecting the waiting call as there's no way for that. As a result, it relies on application's implementation to '''hide''' the UI of the waiting call when user wants to ignore the call.
 
Pros:
* Keep it as simple as the network itself
Cons:
* When user rejects the second call, the API and the backend TelephonyService have no idea. That also leads other components monitoring TelephonyService, e.g. BT, to some trouble. Currently, Mozilla BT webAPI has to expose a sort of hacky interface for Dialer app to call when user ignores the waiting call.
 
==== 3-way Call Scenario ====
With vendor support, it's likely to detect fine call state changes. To provide a possibility for customization, a heavy abstraction has been introduced. As a result, the CDMA 3-way call API is the same as the GSM conference call API.
 
Pros:
* WebAPI allows possible customization in ril to provide more call state changes.
** Note: in reference design, for instance, it's no way to know if a second call is successfully established or accepted by the remote party.
Cons:
* Over abstraction that requires much maintance effort on "fake" call state transition
* The API hides the CDMA behaviour and causes confusions
 
==== Discussions ====
To resolve the inconsistency in the CDMA multiparty call API: [[https://bugzilla.mozilla.org/show_bug.cgi?id=1036305|Bug 1036305]]
== Links ==
Confirm
978
edits

Navigation menu