tads developer summit apidaze philippe sultan

16
Telecom Application Developer Summit Apidaze telecom API What is it ? Who can use it ? How does it work ?

Upload: alan-quayle

Post on 12-Nov-2014

4.001 views

Category:

Technology


2 download

DESCRIPTION

Philippe Sultan from Apidaze presentation in the TADS Developer Summit on 'When Javascript meets Telco: helping web developers build telco apps"

TRANSCRIPT

Page 1: TADS Developer Summit Apidaze Philippe Sultan

Telecom Application Developer Summit

Apidaze telecom API

What is it ? Who can use it ? How does it work ?

Page 2: TADS Developer Summit Apidaze Philippe Sultan

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

Page 3: TADS Developer Summit Apidaze Philippe Sultan

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

Page 4: TADS Developer Summit Apidaze Philippe Sultan

Telecom Application Developer Summit

API components

● HTTP/REST● HTTP/XML● JavaScript● … and developer programs

Page 5: TADS Developer Summit Apidaze Philippe Sultan

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

Page 6: TADS Developer Summit Apidaze Philippe Sultan

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

Page 7: TADS Developer Summit Apidaze Philippe Sultan

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" }]

Page 8: TADS Developer Summit Apidaze Philippe Sultan

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

Page 9: TADS Developer Summit Apidaze Philippe Sultan

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>

Page 10: TADS Developer Summit Apidaze Philippe Sultan

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

Page 11: TADS Developer Summit Apidaze Philippe Sultan

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

Page 12: TADS Developer Summit Apidaze Philippe Sultan

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

Page 13: TADS Developer Summit Apidaze Philippe Sultan

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

Page 14: TADS Developer Summit Apidaze Philippe Sultan

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

Page 15: TADS Developer Summit Apidaze Philippe Sultan

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)

Page 16: TADS Developer Summit Apidaze Philippe Sultan

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 ?