<ac:macro ac:name="unmigrated-inline-wiki-markup"><ac:plain-text-body><![CDATA[
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. 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 occcured. Those response also contain a specific "Call_id" which can be used for getting specific history calls.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: 75)
Table of Contents
1. Overview
With the Zend_Service_OrangeApi components, the Zend Framework developer can access the following services :
Orange API are either free, or charged to your account, or revenue-making.
If something failed, two kind of errors can be displayed:
2. References
- the Orange API website http://api.orange.com
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_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.
| UC-02 |
|---|
Send an SMS
| UC-3 |
|---|
Send an MMS
| UC-04 |
|---|
Request a mobile owner to opt-in for geolocation
| UC-05 |
|---|
Get a mobile device geolocation
| UC-06 |
|---|
Make a phone call
| UC-07 |
|---|
Create a conference call
| UC-08 |
|---|
Add a caller to an existing conference call
| UC-09 |
|---|
Create an outgoing call from a conference to a callee
| UC-10 |
|---|
Make interactive voice outgoing calls
| UC-11 |
|---|
Make WebPhone calls
| UC-12 |
|---|
Get your API requests history
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_InteractiveVoice
#10.Zend_Service_OrangeApi_WebPhone