Re: Telephony API Review

Hello,

I tried to address the CDMA related issues raised by Qualcomm, and
also other issues.
Also, I tried to bring the spec closer to MozTelephony.
Also, based on discussions with Tab Atkins, Domenic and others in [1]
I tried to apply using constructors and Promise's where it made sense.
Also, I tried to make the telephony service handling less visible in the API.

As a consequence, the spec became simpler, and perhaps more
consistent. Here is the result in a separate file. Please take a look,
especially Mozilla and Qualcomm - does this fill the needs?

https://rawgithub.com/sysapps/telephony/gh-pages/index3.html

Main changes:
- added use cases to the spec
- added a new scope for the API; so far it was meant only for dialers,
but now any page could get impersonal call related context
information, such as "is there a phone call going on", "there is
incoming call", "a call has been released", etc. This is useful for
media players, navigators, or any other app dealing with audio (and
video). The permission model needs to back this up with 2 levels of
permission.
- described different types of functionality in separate interfaces,
such as CallManager, ToneManager, EmergencyManager, ServiceManager and
CommandParser. The navigator.telephony object implements the first two
(so it is backwards compatible), the rest are used via separate
properties, e.g. one (having permission) can call
navigator.telephony.emergency.dial("911").
- use constructor for TelephonyCall, introduce an idle state (a big
compromise from my part :), move dial() into TelephonyCall
- explained GSM and CDMA conferencing differences from user
interaction point of view. Later this can be moved to a note.
- based on this, reworked the conferencing model. Now it is handled by
TelephonyCall objects and  CallManager methods, which is way simpler
than before. I wrote a lot of example code to test it, for me it
solved the conferencing differences, and it is forward compatible with
SIP / XMPP conferencing.
- removed dial options, those can be handled now from TelephonyCall
and ServiceManager if needed
- moved telephony service handling to an Appendix; it would be
possible to implement the API without caring about telephony services,
and e.g. implementing pop-up system dialogs for service selection when
that is needed.

In summary, I moved the spec as close to MozTelephony as it was
possible (while adding Promises and constructor usage), and I
addressed the CDMA specific issues.

Feedback would be most welcome.

Best regards,
Zoltan

[1] https://github.com/sysapps/telephony/issues/17

Received on Thursday, 20 February 2014 09:58:53 UTC