Créer rapidement desapplications téléphoniques      http://plivo.orgPar Michaël Ricordeau@mricordeau / mike@plivo.com
A propos   Autodidacte   Sysadmin   Python, C   Asterisk   Freeswitch   Lead dev SVI, solutions téléphoniques   Fon...
La problématiqueLes APIs téléphoniques ne sont pasadaptées pour le développementaujourd’hui.-   VXML, CCXML-   APIs propri...
La problèmatique
Ce qu’on peut faire avec Plivo   Click2Call   Conference   Serveur Vocal Intéractif (menu vocaux, saisie DTMF, …)   Ce...
Les logiciels opensource             utilisés-    Freeswitch est un commutateur téléphonique     gérant les protocoles SIP...
Freeswitch              http://freeswitch.org/-   Licence MPL, écrit en C, modulaire-   Module eventsocket : communication...
Plivo          http://plivo.com/opensource/-   Licence MPL-   Une API utilisable par tous les    développeurs :    python,...
Plivo XMLPour chaque appel, Plivo récupère le scénario XML via unerequête HTTP .La réponse XML peut contenir différents ty...
Plivo APIUtilise le protocole HTTP .Intéraction dynamique avec les appels en cours :- Enregistrer un appel- Transférer un ...
Installation•   Freeswitch    •   https://github.com/plivo/plivoframework/raw/master/freeswit        ch/install.sh    •   ...
Plivo Configuration/usr/local/plivo/etc/plivo/default.conf
Freeswitch Configuration : Pour  faire des appels depuis Plivo/usr/local/freeswitch/conf/sip_profiles/external/gateway.xml
Freeswitch Configuration : Pour    faire des appels vers Plivo/usr/local/freeswitch/conf/autoload_configs/acl.conf.xml
Freeswitch Configuration :               Dialplan/usr/local/freeswitch/conf/dialplan/default.xml
Freeswitch : créer un compte                          SIP/usr/local/freeswitch/conf/directory/default/mike.xml
Freeswitch : plus d’infos http://wiki.freeswitch.org/ IRC Freenode :       #freeswitch , #freeswitch-fr
Démarrage   Freeswitch       /usr/local/freeswitch/bin/freeswitch -nc   Plivo       /etc/init.d/plivo start       /et...
ExemplesPython, PHP et Ruby
Jouer un son
Jouer un son en Python
Transférer un appelen Python
Click2Call en PHP
Menu vocale
Menu vocale en Ruby
Démos Musique d’attente Click2Call Click2SIP
XML Call Flow
HTTP API Flow
Core Code : Dialer
Core Code : Event Listener
Cache des fichiers audio-   Flask + gevent.wsgi : proxy cache entre Plivo et    l’url du fichier audio (wav ou mp3)-   Url...
BenchmarksUn serveur dédié avec Freeswitch et Plivo :•   4 cores Xeon 2.4 Ghz•   4 GB RAM•   Tests effectués avec sipp    ...
Plivo Cloud•   Version hébergée multi serveurs•   Gestion des appels et des numéros pour 50    pays•   Gestion des comptes...
Questions ?
Merci !@mricordeau
Upcoming SlideShare
Loading in …5
×

Plivo OSDC FR 2012

1,051 views

Published on

Présentation de Plivo Opensource à l'OSDC FR 2012 : Plivo, Python, gevent, Flask, Freeswitch, redis .

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,051
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Plivo OSDC FR 2012

  1. 1. Créer rapidement desapplications téléphoniques http://plivo.orgPar Michaël Ricordeau@mricordeau / mike@plivo.com
  2. 2. A propos Autodidacte Sysadmin Python, C Asterisk Freeswitch Lead dev SVI, solutions téléphoniques Fondateur Plivo Inc (San Francisco) YCombinator Summer 2012 (Paul Graham)
  3. 3. La problématiqueLes APIs téléphoniques ne sont pasadaptées pour le développementaujourd’hui.- VXML, CCXML- APIs propriétaires : Cisco, Avaya, …- CSTA- TAPIEt autres …
  4. 4. La problèmatique
  5. 5. Ce qu’on peut faire avec Plivo Click2Call Conference Serveur Vocal Intéractif (menu vocaux, saisie DTMF, …) Centre d’appel Boite vocale IP PBX Campagnes d’appels sortants/entrants Spammer votre voisin bruyant avec des appels
  6. 6. Les logiciels opensource utilisés- Freeswitch est un commutateur téléphonique gérant les protocoles SIP, Jingle, ISDN, H323, …- Plivo : Python + gevent + Flask : expose les fonctionnalités téléphoniques de Freeswitch sous forme de composants web XML et HTTP .- Redis : stockage de données
  7. 7. Freeswitch http://freeswitch.org/- Licence MPL, écrit en C, modulaire- Module eventsocket : communication avec une socket depuis un programme externe : • Récupérer les évènements des appels : answer, hangup, … • Exécuter des commandes : play, record, bridge, conference ,… • Communication bi-directionnelle
  8. 8. Plivo http://plivo.com/opensource/- Licence MPL- Une API utilisable par tous les développeurs : python, ruby, perl, php, node.js, java, …- Python + gevent + Flask • gevent.socket : communique avec Freeswitch via eventsocket • Flask : expose l’API HTTP
  9. 9. Plivo XMLPour chaque appel, Plivo récupère le scénario XML via unerequête HTTP .La réponse XML peut contenir différents types de blocs XML :- Record- Dial- Play- GetDigits- Conference…
  10. 10. Plivo APIUtilise le protocole HTTP .Intéraction dynamique avec les appels en cours :- Enregistrer un appel- Transférer un appel vers un autre scénario- Raccrocher un appel- Jouer un son...
  11. 11. Installation• Freeswitch • https://github.com/plivo/plivoframework/raw/master/freeswit ch/install.sh • bash install.sh• Plivo • https://github.com/plivo/plivoframework/raw/master/scripts/p livo_install.sh • bash plivo_install.sh /usr/local/plivo• Redis • http://redis.io : download, make, make install
  12. 12. Plivo Configuration/usr/local/plivo/etc/plivo/default.conf
  13. 13. Freeswitch Configuration : Pour faire des appels depuis Plivo/usr/local/freeswitch/conf/sip_profiles/external/gateway.xml
  14. 14. Freeswitch Configuration : Pour faire des appels vers Plivo/usr/local/freeswitch/conf/autoload_configs/acl.conf.xml
  15. 15. Freeswitch Configuration : Dialplan/usr/local/freeswitch/conf/dialplan/default.xml
  16. 16. Freeswitch : créer un compte SIP/usr/local/freeswitch/conf/directory/default/mike.xml
  17. 17. Freeswitch : plus d’infos http://wiki.freeswitch.org/ IRC Freenode : #freeswitch , #freeswitch-fr
  18. 18. Démarrage Freeswitch  /usr/local/freeswitch/bin/freeswitch -nc Plivo  /etc/init.d/plivo start  /etc/init.d/plivocache start Redis  /etc/init.d/redis-server start
  19. 19. ExemplesPython, PHP et Ruby
  20. 20. Jouer un son
  21. 21. Jouer un son en Python
  22. 22. Transférer un appelen Python
  23. 23. Click2Call en PHP
  24. 24. Menu vocale
  25. 25. Menu vocale en Ruby
  26. 26. Démos Musique d’attente Click2Call Click2SIP
  27. 27. XML Call Flow
  28. 28. HTTP API Flow
  29. 29. Core Code : Dialer
  30. 30. Core Code : Event Listener
  31. 31. Cache des fichiers audio- Flask + gevent.wsgi : proxy cache entre Plivo et l’url du fichier audio (wav ou mp3)- Urllib2 : vérification HTTP HEAD, headers Etag/Last-Modified- Redis : stocke les fichiers audio avec : - Un ID basé sur l’url du fichier audio - La date de dernière modification
  32. 32. BenchmarksUn serveur dédié avec Freeswitch et Plivo :• 4 cores Xeon 2.4 Ghz• 4 GB RAM• Tests effectués avec sipp 800 appels simultanés
  33. 33. Plivo Cloud• Version hébergée multi serveurs• Gestion des appels et des numéros pour 50 pays• Gestion des comptes SIP• On recrute !
  34. 34. Questions ?
  35. 35. Merci !@mricordeau

×