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: 52)

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.

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)
  • This component is as exhaustive as possible, regarding APIs functionalities.
  • This component does not include parameters validity control, it will be done on the server side.
  • This component relay server-side returned errors by throwing exceptions, containing errors codes and errors 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 official Orange API denomination.
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_ClickToCall
  • Zend_Service_OrangeApi_ClickToConf
  • Zend_Service_OrangeApi_History
  • Zend_Service_OrangeApi_Mms
  • Zend_Service_OrangeApi_Sms
  • Zend_Service_OrangeApi_Location
  • Zend_Service_OrangeApi_VoiceMashup

8. Use Cases

UC-01
How to set your proxy using Zend Orange API

Here's the example of proxy settings using sms api call. The same method is available for any other api.

proxySettings
UC-02
Send an SMS using Zend Orange API
sendSms sample
UC-03
Ask a mobile user to accept geolocation using Zend Orange API
Location authorization sample
UC-04
Get a mobile device coordinates using Zend Orange API
Get Location sample
UC-05
Make a phone call using Zend Orange API
Click-to-call sample
UC-06
Create a phone conference using Zend Orange API
Click-to-conf createConference sample
UC-07
Add a caller to a phone conference using Zend Orange API
Click-to-conf addCaller sample
UC-08
Call a conference using Zend Orange API
Click-to-conf createCall sample
UC-09
Get your history using Zend Orange API
getHistory sample
UC-10
Send a MMS using Zend Orange API
sendMMS sample
UC-11
Make generated voice call using Zend Orange API
VoiceMashup 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.