• Save
Plivo OSDC FR 2012
Upcoming SlideShare
Loading in...5
×
 

Plivo OSDC FR 2012

on

  • 936 views

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

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

Statistics

Views

Total Views
936
Views on SlideShare
936
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Plivo OSDC FR 2012 Plivo OSDC FR 2012 Presentation Transcript

  • 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 Fondateur Plivo Inc (San Francisco) YCombinator Summer 2012 (Paul Graham)
  • 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 … View slide
  • La problèmatique View slide
  • 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
  • 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
  • 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
  • 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
  • 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…
  • 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...
  • 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
  • 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  /etc/init.d/plivocache start Redis  /etc/init.d/redis-server start
  • 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)- 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
  • 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
  • Plivo Cloud• Version hébergée multi serveurs• Gestion des appels et des numéros pour 50 pays• Gestion des comptes SIP• On recrute !
  • Questions ?
  • Merci !@mricordeau