![Page 1: TADS Developer Summit Apidaze Philippe Sultan](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/1.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/2.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/3.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/4.jpg)
Telecom Application Developer Summit
API components
● HTTP/REST● HTTP/XML● JavaScript● … and developer programs
![Page 5: TADS Developer Summit Apidaze Philippe Sultan](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/5.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/6.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/7.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/8.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/9.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/10.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/11.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/12.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/13.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/14.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/15.jpg)
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](https://reader030.vdocument.in/reader030/viewer/2022020206/5463d1e2b4af9f3f3f8b46bd/html5/thumbnails/16.jpg)
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 ?