TADS Developer Summit Apidaze Philippe Sultan

Post on 12-Nov-2014

3.999 views 2 download

Tags:

description

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

Transcript of TADS Developer Summit Apidaze Philippe Sultan

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 bob@vm.youdomain.apidaze.voip

2. URL of the External Script is fetched• URL : http://yourdomain.com/yourscript.php • Parameters include : SIP from URI

sip:bob@vm.yourdomain.apidaze.voip, 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 ?