Skip to end of metadata
Go to start of metadata

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

<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 Julien FILLIARD
Zend Liaison TBD
Revision 0.1 - 01 February 2011. (wiki revision: 92)

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 details for a previous API request
getCallDetails sample

9. Class Skeletons













Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.
  1. Jul 13, 2010

    <p>Note to proposer - in all probability, all ongoing proposals will need to target Zend Framework 2.0 as the final 1.x minor version will be released within a relatively short timeframe. Can you ensure your proposal is updated prior to community review to reflect the new ZF 2.0 target version?</p>

    <p>Pádraic Brady<br />
    Community Review (CR) Team</p>

    1. Nov 19, 2010

      <p>Hello Pádraic,</p>

      <p>Sorry for the delay of response. Indeed, our proposal targets Zend Framework 2.0 but as it is not yet available, we made our tests on version 1.11.0 of Zend Framework.<br />
      How can we proceed now? Can you provide us ZF 2.0 version or do we have to wait for its release?<br />
      When can begin the community review?</p>

      <p>Julien Filliard</p>

  2. Nov 20, 2010

    <p><a href="">Framework 2.0</a></p>

  3. Feb 01, 2011


    <p>We are now ready to start the community review. </p>

    <p>We can commit sources (Zend_Service_OrangeApi) in <a href="">Framework 2.0 /service</a> to start the community review.</p>

    <p>We can also provide samples (in library/orange-api-samples) to test each api easily.</p>

    <p>How should we proceed?</p>

    <p>Julien Filliard</p>