WebAPI/WebTelephony/Multi-SIM: Difference between revisions
< WebAPI | WebTelephony
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
<h2> Proposal: WebTelephony API for Multi-SIM </h2> | |||
<pre class="_fck_mw_lspace">interface nsIDOMTelephonyManager : nsIDOMEventTarget | |||
{ | |||
attribute boolean muted; | |||
attribute boolean speakerEnabled; | |||
readonly attribute jsval active; | |||
readonly attribute jsval calls; | |||
readonly attribute phoneState; /* Ringing, Offhook, Idel */ | |||
readonly attribute jsval phones; | |||
readonly attribute nsIDOMTelephony defaultPhone; | |||
[implicit_jscontext] attribute jsval onincoming; | |||
[implicit_jscontext] attribute jsval oncallschanged; | |||
}; | |||
</pre> | |||
<pre class="_fck_mw_lspace">interface nsIDOMTelephony: nsIDOMEventTarget | |||
{ | |||
nsIDOMTelephonyCall dial(in DOMString number); | |||
// The call that is "active", i.e. receives microphone input and tones | |||
// generated via startTone. | |||
readonly attribute jsval active; | |||
interface nsIDOMTelephonyCall: nsIDOMEventTarget | // Array of all calls that are currently connected. | ||
readonly attribute jsval calls; | |||
void startTone(in DOMString tone); | |||
void stopTone(); | |||
attribute nsIDOMEventListener onincoming; | |||
attribute nsIDOMEventListener oncallschanged; | |||
}; | |||
</pre> | |||
<pre class="_fck_mw_lspace">interface nsIDOMTelephonyCall: nsIDOMEventTarget | |||
{ | |||
readonly attribute DOMString number; | |||
// "dialing", "alerting", "busy", "connecting", "connected", "disconnecting", | |||
// "disconnected", "incoming", "holding", "held", "resuming" | |||
readonly attribute DOMString state; | |||
readonly attribute nsIDOMDOMError error; | |||
readonly attribute nsIDOMTelephony phone; | |||
// functions to mediate a call. | |||
void answer(); | |||
void hangUp(); | |||
void hold(); | |||
void resume(); | |||
attribute nsIDOMEventListener onstatechange; | |||
attribute nsIDOMEventListener ondialing; | |||
attribute nsIDOMEventListener onalerting; | |||
attribute nsIDOMEventListener onbusy; | |||
attribute nsIDOMEventListener onconnecting; | |||
attribute nsIDOMEventListener onconnected; | |||
attribute nsIDOMEventListener ondisconnecting; | |||
attribute nsIDOMEventListener ondisconnected; | |||
attribute nsIDOMEventListener onincoming; | |||
attribute nsIDOMEventListener onholding; | |||
attribute nsIDOMEventListener onheld; | |||
attribute nsIDOMEventListener onresuming; | |||
}; | |||
</pre> | |||
<h3> Use Case </h3> | <h3> Use Case </h3> | ||
<h4> Outgoing Call </h4> | <h4> Outgoing Call </h4> | ||
| Line 94: | Line 93: | ||
</pre> | </pre> | ||
<h2> Proposal: Architecture </h2> | <h2> Proposal: Architecture </h2> | ||
<p><img src="/images | <p><img src="/images/6/6e/B2GArch.png" _fck_mw_filename="B2GArch.png" alt="" /><br /> | ||
</p> | </p> | ||
Revision as of 10:12, 22 October 2012
Proposal: WebTelephony API for Multi-SIM
interface nsIDOMTelephonyManager : nsIDOMEventTarget
{
attribute boolean muted;
attribute boolean speakerEnabled;
readonly attribute jsval active;
readonly attribute jsval calls;
readonly attribute phoneState; /* Ringing, Offhook, Idel */
readonly attribute jsval phones;
readonly attribute nsIDOMTelephony defaultPhone;
[implicit_jscontext] attribute jsval onincoming;
[implicit_jscontext] attribute jsval oncallschanged;
};
interface nsIDOMTelephony: nsIDOMEventTarget
{
nsIDOMTelephonyCall dial(in DOMString number);
// The call that is "active", i.e. receives microphone input and tones
// generated via startTone.
readonly attribute jsval active;
// Array of all calls that are currently connected.
readonly attribute jsval calls;
void startTone(in DOMString tone);
void stopTone();
attribute nsIDOMEventListener onincoming;
attribute nsIDOMEventListener oncallschanged;
};
interface nsIDOMTelephonyCall: nsIDOMEventTarget
{
readonly attribute DOMString number;
// "dialing", "alerting", "busy", "connecting", "connected", "disconnecting",
// "disconnected", "incoming", "holding", "held", "resuming"
readonly attribute DOMString state;
readonly attribute nsIDOMDOMError error;
readonly attribute nsIDOMTelephony phone;
// functions to mediate a call.
void answer();
void hangUp();
void hold();
void resume();
attribute nsIDOMEventListener onstatechange;
attribute nsIDOMEventListener ondialing;
attribute nsIDOMEventListener onalerting;
attribute nsIDOMEventListener onbusy;
attribute nsIDOMEventListener onconnecting;
attribute nsIDOMEventListener onconnected;
attribute nsIDOMEventListener ondisconnecting;
attribute nsIDOMEventListener ondisconnected;
attribute nsIDOMEventListener onincoming;
attribute nsIDOMEventListener onholding;
attribute nsIDOMEventListener onheld;
attribute nsIDOMEventListener onresuming;
};
Use Case
Outgoing Call
- Current B2G
navigator.mozTelephony.dial(number)
- Multi-SIM
navigator.mozTelephonyManager.defaultPhone.dial() navigator.mozTelephonyManager.phones[index].dial()
Incoming Call
- Current B2G
Tel1 = navigator.mozTelephony;
- Multi-SIM
Tel1 = navigator.mozTelephonyManager.phones[index];
Once the telephony object is obtained, the following work remains the same.
Tel1.addEventListener('incoming');
Tel1.onincoming = function onincoming (evt) {
incoming = evt.call; };
incoming.answer();
Proposal: Architecture
<img src="/images/6/6e/B2GArch.png" _fck_mw_filename="B2GArch.png" alt="" />