Upload
alan-quayle
View
4.001
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Philippe Sultan from Apidaze presentation in the TADS Developer Summit on 'When Javascript meets Telco: helping web developers build telco apps"
Citation preview
Telecom Application Developer Summit
Apidaze telecom API
What is it ? Who can use it ? How does it work ?
Telecom Application Developer Summit
What is it ?
● Components to manage things telecom related– calls to DID numbers and from SIP accounts or the
Web (WebRTC/Flash UDP)● SIP domains
– vm.yourdomain.apidaze.voip● DID numbers● And soon, mobile applications
Telecom Application Developer Summit
From cloud PBX to API managed telephony
● A web interface to manage you PBX is fine● Now VoIP engineers can build their own cloud
PBX using an API● And web developers can easily integrate telco
applications
Telecom Application Developer Summit
API components
● HTTP/REST● HTTP/XML● JavaScript● … and developer programs
Telecom Application Developer Summit
Who can use it ?
● VoIP engineers– call transfer, line supervision, voicemails, fax to
email, etc.● Developers
– Who want to stay away from SIP– And even more from :
● E1/T1, PRI, BRI, codecs
Telecom Application Developer Summit
HTTP/REST
● A set of commands to– Place calls, send SMS and faxes
● And list and Create/Read/Update/Delete (CRUD)– DID numbers– SIP accounts– Voicemails boxes– Billing accounts
Telecom Application Developer Summit
HTTP/REST examplecurl -v -X GET "https://api.apidaze.io/4561sd03/sipaccounts?api_secret=99f140425ed7ert4clgt19d9c0105283"
[ { "id": "8", "name": "testsipaccount", "sip": { "username": "testsipaccount", "password": "FEtg5qZuyx0hoLYx" }, "callerid": { "internal_name": "testsipaccount", "internal_number": "", "external_name": "testsipaccount", "external_number": "" }, "created_at": "2012-07-24 22:38:25", "updated_at": "2012-10-05 17:08:36" }]
Telecom Application Developer Summit
HTTP/XML scripting
● XML documents written by the developer● Stored in an web server controlled by the
developer● Downloaded via HTTP and executed when
– A DID is called– A call is placed from a SIP account, or from the
WebRTC/Flash UDP JavaScript API– Each call has his own context defined by the parameters
sent within the HTTP request
Telecom Application Developer Summit
HTTP/XML script example
<document>
<work>
<speak lang='en-US'>Please wait while we're connecting your call</speak>
<dial>
<number>0033123456789</number>
<sipaccount>bob</sipaccount>
</dial>
<hangup/>
</work>
</document>
Telecom Application Developer Summit
Call example from the PSTN to a DID
1. Call comes in to a DID
2. URL of the External Script is fetched• URL : http://yourdomain.com/yourscript.php • Parameters include : Caller ID and Called number (DID),
channel identifier
3. XML instructions from the previous URL are run• e.g. : <dial><sipaccount>bob</sipaccount></dial>
4. Call ends, URL of the External Script is fetched again• Parameters include : channel identifier, exiting=true
Telecom Application Developer Summit
Call from a SIP account
1. Call comes in from a SIP account [email protected]
2. URL of the External Script is fetched• URL : http://yourdomain.com/yourscript.php • Parameters include : SIP from URI
sip:[email protected], desitnation, channel identifier
3. XML instructions from the previous URL are run• e.g. : <dial><number>0033123456789</number></dial>
4. Call ends, URL of the External Script is fetched again• Parameters include : channel identifier, exiting=true
Telecom Application Developer Summit
JavaScript
● What web developers love– jQuery, Prototype/Scriptaculous– Now even on the server side with Node.js
● Being extended to realtime voice/video with WebRTC– getUserMedia function– PeerConnection object
Telecom Application Developer Summit
JavaScript parameters
● Context : a call is placed from a web page– WebRTC or Flash UDP
● The developer adds JavaScript parameters– User identifier, number to call, etc.
● Those parameters are sent over HTTP to get the XML instructions– The call is processed by the developer's script
Telecom Application Developer Summit
Call example from JavaScript
1. Call comes in from an HTML/JavaScript page
2. URL of the External Script is fetched• From the apiKey parameter• Parameters include : anything from the web page
3. XML instructions from the previous URL are run• e.g. : <dial><sipaccount>bob</sipaccount></dial>
4. Call ends, URL of the External Script is fetched again• Parameters include : channel identifier, exiting=true
Telecom Application Developer Summit
JavaScript Events
● Often called « event driven programming »● Events retrieved from the telco side
– Call management events : Call Ringing, Call Answered, Call Hangup
– In-call events : Text message, Who is talking (in a conference room)
Telecom Application Developer Summit
Things to come, things to work on
● Mobile SDK– WebRTC, Flash, SIP
● Video MCU (Multipoint Conference Unit)– H.264, VP8 ?– Transcoding, relaying ?