<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[
Zend Framework: Zend_Service_OrangeApi Component Proposal
Table of Contents
1. Overview
Orange API http://api.orange.com brings telecom services to web developers and integrators, with the Core solutions (web services to be integrated in web sites and applications), the Easy solutions (ready-to-use simple services) and Custom solutions (adapted to your specific needs). The Core services integrated in the Zend framework, through Zend_Service_OrangeApi allow to easily :
- send and receive text messages, and multimedia messages.
- get the location of Orange mobile phones, for any device
- control calls between fixed phones, mobile phones, and flash-based web phones. Flash phones can be basic examples from our website, or specifically developed by yourself.
- control voice conferences
- build interactive vocal services. If you're not familiar with VXML (V for Voice), our website contains various examples and FAQs
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. 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 occurred. 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
- the Orange API website http://api.orange.com, providing full description of APIs, code samples, FAQs, tutorials and forums.
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_InteractiveVoice
- Zend_Service_OrangeApi_WebPhone
- Zend_Service_OrangeApi_CallDetails
8. Use Cases
Here's uses cases of each orange API. You can find a description of response codes in responseCodes.php in the common folder.
Define your proxy settings
Should you need to go through a proxy, you can use the setProxy method available for all API classes.
Send an SMS
Send an MMS
Request a mobile owner to opt-in for geolocation
Get a mobile device geolocation
Make a phone call
Create a conference call
Add a caller to an existing conference call
Create an outgoing call from a conference to a callee
Make interactive voice conferences
Make interactive voice outgoing calls
Make interactive voice mute a participant
Make interactive voice release calls
Make WebPhone calls
Get call details
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_CallDetails
#8.Zend_Service_OrangeApi_MMS
#9.Zend_Service_OrangeApi_InteractiveVoice
#10.Zend_Service_OrangeApi_WebPhone
]]></ac:plain-text-body></ac:macro>