Skip to end of metadata
Go to start of metadata
You are viewing an old version of this page. View the current version. Compare with Current  |   View Page History

<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[

Zend Framework: Zend_Service_OrangeApi Component Proposal

Proposed Component Name Zend_Service_OrangeApi
Developer Notes http://framework.zend.com/wiki/display/ZFDEV/Zend_Service_OrangeApi
Proposers Laurent ARTUSIO
Julien FILLIARD
Zend Liaison TBD
Revision 0.1 - 23 June 2010 : Draft. (wiki revision: 67)

Table of Contents

1. Overview

Orange API provides to web developers and integrators, a set of web services and solutions allowing to easily integrate telecom services into web sites and applications.
With the Zend_Service_OrangeApi components, the Zend Framework developer can access the following services :

  • send and receive text messages (Send SMS), and multimedia messages (send MMS).
  • get the location of Orange mobile phones, for any device
  • call-control service
  • conference management
  • interactive vocal services

In order to make such APIs easy to use for Zend developers, Orange supplies a core Zend component.

All API requests are authenticated with a unique API key. In order to get an API key, you need to register on the Orange API website http://api.orange.com.
Orange API are either free, or charged to your account, or revenue-making.

All API response are sent in xml with a common structure. Those xml responses contain a "status_code" and a "status_msg" to report how the call occcured. Those response also contain a specific "Call_id" which can be used for getting specific history calls.
If something failed, two kind of errors can be displayed:

  • A functionalException
  • A technicalException

2. References

3. Component Requirements, Constraints, and Acceptance Criteria

  • This component wraps Orange APis in a raw manner (i.e parameters names, methods names, returned values), and does not restrict in any way the original features of Orange Apis.
  • This component does not include parameters validity check, it will be done on the API server side.
  • This component tranforms server-side errors in thrown exceptions, with full error codes and error messages.
  • This component allow subclassing, for any useful purpose.

4. Dependencies on Other Framework Components

  • Zend_Http_Client_Adapter_Proxy
  • Zend_Rest_Client
  • Zend_Service_Exception

5. Theory of Operation

Every Orange API is accessed through a single class which inherits the common Zend_Service_OrangeApi_Client class.
Each API class is named after the original Orange API name.
Each API class instanciation is done by passing the mandatory Orange access key ("id" parameter) to the constructor.

6. Milestones / Tasks

  • Milestone 1: [DONE] Set a common architecture for all APIs
  • Milestone 2: [DONE] Working prototype checked into the incubator supporting use cases.
  • Milestone 4: [DONE] Initial documentation exists.

7. Class Index

  • Zend_Service_OrangeApi_ClientAbstract
  • Zend_Service_OrangeApi_Exception
  • Zend_Service_OrangeApi_Sms
  • Zend_Service_OrangeApi_Mms
  • Zend_Service_OrangeApi_Location
  • Zend_Service_OrangeApi_ClickToCall
  • Zend_Service_OrangeApi_ClickToConf
  • Zend_Service_OrangeApi_VoiceMashup
  • Zend_Service_OrangeApi_History

8. Use Cases

UC-01
Define your proxy settings

Should you need to go through a proxy, you can use the setProxy method available for all API classes.

proxySettings
UC-02
Send an SMS
sendSms sample
UC-3
Send an MMS
sendMMS sample
UC-04
Request a mobile owner to opt-in for geolocation
Location authorization sample
UC-05
Get a mobile device geolocation
Get Location sample
UC-06
Make a phone call
Click-to-call sample
UC-07
Create a conference call
Click-to-conf createConference sample
UC-08
Add a caller to an existing conference call
Click-to-conf addCaller sample
UC-09
Create an outgoing call from a conference to a callee
Click-to-conf createCall sample
UC-10
Make interactive voice outgoing calls
VoiceMashup sample
UC-11
Get your API requests history
getHistory sample

9. Class Skeletons

#1.Zend_Service_OrangeApi_ClientAbstract

#2.Zend_Service_OrangeApi_Exception

#3.Zend_Service_OrangeApi_Sms

#4.Zend_Service_OrangeApi_Location

#5.Zend_Service_OrangeApi_ClickToCall

#6.Zend_Service_OrangeApi_ClickToConf

#7.Zend_Service_OrangeApi_History

#8.Zend_Service_OrangeApi_MMS

#9.Zend_Service_OrangeApi_VoiceMashup

]]></ac:plain-text-body></ac:macro>

Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.