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
Proposers Laurent ARTUSIO
Zend Liaison TBD
Revision 0.1 - 23 June 2010 : Draft. (wiki revision: 89)

Table of Contents

1. Overview

Orange API 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 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, 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
sendSms sample
Send an MMS
sendMMS sample
Request a mobile owner to opt-in for geolocation
Location authorization sample
Get a mobile device geolocation
Get Location sample
Make a phone call
Click-to-call sample
Create a conference call
Click-to-conf createConference sample
Add a caller to an existing conference call
Click-to-conf addCaller sample
Create an outgoing call from a conference to a callee
Click-to-conf createCall sample
Make interactive voice conferences
InteractiveVoice createConference sample
Make interactive voice outgoing calls
InteractiveVoice Connect sample
Make interactive voice mute a participant
InteractiveVoice Mute sample
Make interactive voice release calls
InteractiveVoice ReleaseCall sample
Make WebPhone calls
WebPhone sample
Get call details
getCallDetails sample

9. Class Skeletons












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