Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Plivo OSDC FR 2012

0 views

Published on

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

Published in: Technology
  • Be the first to comment

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

×