Présentation Asterisk Juillet 2007
Plan Présentation générale (a quoi ça sert, historique…) Présentation fonctionnelle Architecture logique Fonctions IPBX (transfert d’appels, messagerie vocale; conférences...) Fonctions ACD (déclaration agents, routage sur occupation…) Fonctions IVR (langage…) Présentation technique Architecture physique Codecs supportés Interfaces avec les SI/CRM Tenue en charge et robustesse Haute-disponibilité Scalabilité et partage de charge Installation/administration/supervision Cas d’utilisation Parts de marché / références Positionnement par rapport à Genesys (concurrent ACD/IVR + partenaire IPBX) Eco-système Distributions Extensions (VoiceXML, Idefix, intégration CRM…) Gateways/cartes compatibles Hardphones/softphones compatibles Schéma plate-forme de démo Atos Origin (serveurs, adresse IP,…) + démos
Présentation générale Asterisk : implémentation logicielle d’un PBX en VoIP (IPBX) Projet open source, développé par Mark Spencer (qui a fondé par la suite la société Digium), qui : Commercialise une distribution de Asterisk Commercialise des cartes téléphoniques spécifiques pour interconnexion en MICs aux réseaux RTC Compatible Linux, publié sous licence GPL Asterisk 1.0 sorti en septembre 2004 Version actuelle : 1.4.6 (sortie le 29 juin 2007) Diverses fonctionnalités : PBX, messagerie, conférence, SVI, ACD Interconnexion possible avec les équipements de téléphonie standard (gateways, cartes téléphoniques, postes téléphoniques) Extensible : Par script en utilisant une interface (AGI = Asterisk Gateway Interface) dédiée fournie avec Asterisk Par ajout de modules (exemples de modules disponibles sur le marché : interpréteur VxML, codecs supplémentaires…)
Architecture logique Architecture monobloc comportant plusieurs parties IPBX Messagerie ACD IVR Base de données interne (AstDB) Similaire à la base de registre Windows Fonctions permettant d’ajouter ou de récupérer des variables depuis le plan de numérotation
Fonctions IPBX Conférence (application MeetMe) Call Parking Dial By Name Authentification Messagerie vocale MWI (Message Waiting Indication). Sur softphones/hardphones compatibles ? Notification par email Transfert d’appel (aveugle ou accompagné) Transmission et réception de télécopies Conversion de protocoles (SIP <-> H323,…), transcodage
Fonctions ACD Déclaration dynamique d’agents par AgentLogin (par appel d’une extension et saisie de l’ID, mot de passe) ou par AgentCallbackLogin (A PRECISER ???) Assignation statique d’agents à une file d’attente Routage sur occupation Génération de CDR (détail du CDR ???) Music on Hold Gestion des groupes de boites de message Répartition des appels vers les agents suivant différentes stratégies : Ring all Round Robin Round Robin with memory (le sytème se souvient où il a placé le dernier appel) Least Recent Fewest Calls Random Lien CTI (« bandeau agent ») : rien n’est fourni actuellement, il faut passer par l’interface de script (AGI). Compatibilité MSTAPI / JTAPI ???
Fonctions IVR Fourni avec prompts libres de droit (???exemples, langues) Possibilité d’utiliser ses propres prompts Pré-enregistrés Enregistrement depuis un téléphone (fonctionnalité Asterisk) Intégration avec ACD (transfert de contexte) Gestion des timeout et des extensions invalides Détection de boucles (raccrochage après n répétitions du même prompt).
Architecture physique Application monobloc APIs spécifiques définies autour d’un noyau PBX central
Protocoles VoIP supportés H.323 SIP IAX (Inter-Asterisk eXchange) versions 1 et 2 ???fonctionnalités/intérêts (signalisation et média sont le même port, contrairement à SIP => plus facile niveau NAT et firewall) MGCP SCCP (Cisco Skinny) ???ça fait quoi
Codecs supportés ADPCM G.711 (A-law et µ-law) G.722 G.723.1 G.726 G.729 ( A ou B ??? à l’achat d’une licence) GSM iLBC ??? Linear ??? LPC-10 Speex ??? Pas de contraintes sur les transcodages
Interface avec les SI/CRM Click to Dial AstTapi : langage??? Appel d’un utilisateur directement depuis son adresse dans Outlook MSTAPI SugarCRM CRM open source Intégration d’un module e-commerce Solution de type base de connaissance API Manager Utilisable en ligne de commande Lien avec AstTaPI ??? Permet à un programme client de se connecter à une instance d’Asterisk Envoi de commandes ou récupération d’évènements PBX
Tenue en charge et robustesse Tests effectués par génération automatique d’appels sur un serveur bi-processeur Intel Xeon 2,8 GHz équipé d’un Go de RAM Outil utilisé : SIPp (génération de traffic SIP) Possibilité de définir ses propres scénarios Tests en charge : Jusqu’à 1000 appels simultanés (à un taux de 100 caps) Temps de réponse majoritairement inférieurs à 20 ms (% ??? 95% ???) Charge processeur : environ 60 % Au-delà : message d’erreur d’Asterisk
Haute disponibilité et load-balancing RedFone foneBRIDGE2 Bridge PRI-to-Ethernet Partage de ressources entre plusieurs serveurs Asterisk Haute disponibilité par actif-secours Configuration flexible 2 E1 : $1 195 4 E1 : $1 695 UltraMonkey Suite logicielle open source Load-balancing avec solutions « Linux HA » et « LVS » (Linux Virtual Services) Haute disponibilité (Linux HA+logiciel Heartbeat pour vérifier la disponibilité des serveurs) ou clustering (logiciel Rsync pour répliquer les données) SER/OpenSER Implémentation logicielle open source d’un SIP Server Ecriture de services dans les fichiers de configuration ser.cfg/openser.cfg Module dispatcher pour HA et load-balancing Est parfois utilisé en amont de serveurs Asterisk pour répartir la charge
Installation Téléchargement des différentes archives .tar.gz sur www.asterisk.org Zaptel : drivers pour cartes d’interface TDM Libpri : librairies PRI ISDN pour interfaces T1/E1/J1 Asterisk : package principal Asterisk sounds (optionnel) Asterisk addons (optionnel) : ??? En particulier : MySQL Extraction des archives Configuration et installation ./configure make make install Existence de distributions centrées sur Asterisk (CD d’installation)
Administration Edition manuelle de fichiers de configuration situés dans /etc/asterisk : sip.conf, iax.conf, zaptel.conf… : définition des utilisateurs et de leurs extensions extensions.conf : plan de numérotation, mise en place d’IVR agents.conf, queues.conf : configuration de l’ACD voicemail.conf : messagerie vocale … Interface graphique pour configuration d’un serveur Asterisk : FreePBX Administration simplifiée Attention : pas de manipulation directe des fichiers de configuration, création de fichiers « .custom »
Supervision Possible grâce à la MIB SNMP asterisk-mib.txt Contenue dans le répertoire /doc des sources d’Asterisk Permet de monitorer le nombre de channels en cours d’utilisation Tous les channels Par protocole Visualisation graphique à l’aide de Cacti Affiche également par défaut la charge moyenne et l’utilisation de la RAM
Références Université de Pennsylvanie Services vocaux par département Messagerie vocale avec notification ACD Couplage avec SIP Express Router (SER) ENSEIRB ??? CNAM ??? ??? En France ??? VoicePulse VoIP provider Messagerie basée sur Asterisk Prompts IVR Asterisk pour le service client OVH.com Hébergeur Web Utilise Asterisk pour sa plateforme de support téléphonique
Positionnement vis-à-vis de Genesys Concurrent IVR : non : tenue en charge, modularité, VXML, ASR, TTS via MRCP (compatible avec les éditeurs majeurs), HA Partie ACD peu compétitive Pas de CTI intégré Stratégies de routage basiques Partenaire IPBX Utilisé par Genesys comme IPBX d’entreprise Messagerie vocale Asterisk complémentaire
Distributions Trixbox Anciennement Asterisk@Home Sponsorisée par Fonality Distribution basée sur CentOS et centrée sur Asterisk Intègre différents logiciels développés par la communauté Asterisk : FreePBX, FOP, SugarCRM, A2Billing… AsteriskNOW Développé par Digium Distribution Linux personnalisée intégrant Asterisk, son interface GUI, et tous les packages requis pour un système Asterisk Installation et administration facilitées
Extensions VXIasterisk Plugin développé par i6net Ajoute un navigateur VoiceXML (compatible 2.0 et 2.1) à Asterisk, base OpenVXI Payant : 100€ par port Festival Système de synthèse vocale (TTS) Open source (CSTR, université d’Edimbourg) Commande Asterisk : Festival(text, [intkeys]) Flite Moteur de synthèse vocale open source (CMU Speech Group) Plus adapté aux configurations modestes Sphinx Logiciel de reconnaissance vocale (CMU Speech Group) Open source, licence BSD Intégré à Asterisk via AGI Asterisk Business Edition Intègre le logiciel de reconnaissance vocale LumenVox et le moteur TTS Cepstral Achat d’une licence séparée nécessaire pour activer ces produits
Gateways/Cartes compatibles Gamme de cartes PCI Digium Série TC : transcodage Série TE : cartes T1/E1, avec ou sans annulation d’écho (PCI ou PCI Express) Série TDM : cartes FXO/FXS Série B : cartes BRI ISDN Autres cartes T1/E1 : OpenVox D110PG, D210P, D410P PhonicEQ PH-E100P, PH-E200P, PH-E400P Rhino R1T1, R2T1, R4T1 Sangoma A101, A102, A104, A108 Varion V401P-E1 Potentiellement, toute gateway TDM/SIP ou TDM/H323
Hardphones et Softphones compatibles Cisco Snom Grandstream Sipura Thomson Polycom Linksys Softphones : X-Lite Idefisk (SIP et IAX2) Wengophone Bol SipPhone Kapanga Express Talk Snom360 SJphone Windows Messenger
Box Asterisk Appliance Pour les PME (2 à 50 utilisateurs) Solution entièrement VoIP ou hybride Fourni avec Asterisk Business Edition et AsteriskGUI LumenVox (reconnaissance vocale) et Cepstral (TTS) Un an de support Digium 5 ports Ethernet (4 LAN, 1 WAN) Jusqu’à 8 ports TDM Annulation d’écho Carte Compact Flash 1 Go 8 Mo de mémoire Flash embarquée 64 Mo de RAM embarquée VoIP seulement : $995 4 FXS / 4 FXO : $1,540 8 FXO : $1,595
Plateforme de test Atos
Démos Asterisk intégré à la plateforme Genesys Atos IPBX externe Téléphonie administrative Notation préfixée Messagerie vocale Consultation Dépôt de messages