Introduction à la ToIP
Asterisk est une plate-forme ouverte et OpenSource de téléphonie sur IP. Elle permet de concevoir des solutions complète de téléphonie intégrant aussi bien la téléphonie traditionnelle en analogique ou numérique que la téléphonie sur IP avec les protocoles MGCP, SIP et un protocole inter-PABX propriétaire : IAX.
On trouve de nombreux document sur Internet concernant Asterisk et comment le configurer, mais nous avons décidé de vous proposer une mise en oeuvre simplifié et prenant les concepts à la base afin de faciliter le compréhension de la plate-forme. Nous commençons par cet article sur le configuration de base autorisant l’appel entre plusieurs postes localisés sur le même PABX.
Configuration
La configuration nécessite la compréhension du principe de routage. Chaque extension est manipulée depuis sa source (une ligne analogique ou numérique, un téléphone IP ou un softphone, l’appel en provenance d’un autre PABX) vers une destination via des règles de routage qui s’enchaînent. On regroupe les règles dans des contextes permettant de séparer les utilisateurs, les usages ou les sources.
La configuration de base comporte au minimum les fichiers asterisk.conf et extensions.conf. Les sources sont dans différents fichiers en fonction de leur type: mgcp.conf, iax.conf, sip.conf ou encore zapata.conf.
asterisk.conf
Par défaut on positionne certains chemin de base au fonctionnement du moteur asterisk, la présence de ce fichier n’est pas obligatoire, mais voici un exemple de contenu:
astetcdir => /etc/asterisk astmoddir => /usr/lib/asterisk/modules astvarlibdir => /var/lib/asterisk astagidir => /var/lib/asterisk/agi-bin astspooldir => /var/spool/asterisk astrundir => /var/run/asterisk astlogdir => /var/log/asterisk
iax.conf
Dans iax.conf, on positionne les clients qui se connecterons en utilisant le protocole propriétaire Asterisk mais disponible dans un nombre croissant de téléphone sur le marché. Chaque client sera défini par un label, nous utilisons par défaut l’extension. Comme chaque fichier de configuration, une section initiale est globale, ensuite viennent toutes les sections variables. Si le fichier est trop important en taille ou que l’on souhaite le découper fonctionnellement, on peut utiliser la directive #include.
Exemple avec deux extensions IAX pour des téléphones:
[general] bindport=4569[212] username=212 type=friend host=dynamic context=internal callerid="Alex Chauvin" <212> [201] username=201 type=friend host=dynamic context=internal callerid="Stefano Campagna" <201>
Dans cette configuration, les postes peuvent prendre une adresse IP dynamique, aucun système d’authentification n’est mis en place et enfin, on spécifie via la directive callerid le nom de l’utilisateur et son extension dans un format type RFC822.
Le paramètre context permet de relayer vers les règles de routage de l’extension ou de l’utilisateur en question, nous l’utiliserons dans extensions.conf.
sip.conf
Le fichier sip.conf est similaire à iax.conf pour les téléphones ou softphones utilisant le protocole SIP. Dans notre cas, nous utilisons un téléphone SIP avec l’extension 220. Voici le contenu du fichier, avec une partie générale et chaque définition de téléphone:
[general] port = 5060
[cpa] username=cpa type=friend host=dynamic context=internal callerid="Stefano Campagna" <201>
Ici, le nom de la section est un nom d’utilisateur, alors que dans IAX nous avions mis un numéro d’extension. Cette modification est impactante pour le client (téléphone ou softphone) qui devra utiliser ce label comme login. Nous conseillons ce type d’usage car il permet un diagnostique plus rapide que la simple manipulation des extensions. Le context est le même que pour les téléphones en IAX, afin de bénéficier des mêmes règles de routage.
extensions.conf
Le fichier extensions.conf permet de définir les règles de routage. Dans notre installation nous permettons pour l’instant les appels inter poste. Dans le contexte internal, nous définissons comment joindre les différents postes. Chaque extension de notre plan de numérotation interne va être interprété et acheminé vers des liens physiques (IAX ou SIP dans notre cas).
[general] static=yes[internal] exten => 201,1,Dial(IAX2/201) exten => 212,1,Dial(IAX2/212) exten => 220,1,Dial(SIP/pgx)
L’application Dial est utilisée pour l’acheminement de l’appel dans le context internal, le premier argument passé est la ligne préfixée par son type (IAX2 ou SIP).
Mise en oeuvre
Nous n’abordons pas ici l’installation du logiciel Asterisk en tant que tel, de nombreux papiers et packages sont directement disponibles. Si vous souhaitez tester rapidement sans pour autant avoir une installation de Linux complète à effectuer, vous pouvez démarrer d’Asterisk@Home. Une fois installé, il vous suffira d’arrêter asterisk, de supprimer les fichiers de configuration dans /etc/asterisk et de démarrer avec ceux proposer dans cet article. Il pourra être nécessaire de supprimer des modules ne démarrant pas bien (cf modules.conf, option noload).
Lancement et validation
Une fois asterisk démarré, il est possible de prendre la main sur un mode de commande via asterisk -r. Ce mode interactif permet de vérifier les configurations et de récupérer les logs si le mode verbose est positionné à une valeur supérieure à 0 (commande set verbose).
On peut vérifier que les postes sont bien connectés:
asterisk1*CLI> iax2 show peers Name/Username Host Mask Port Status 201/201 192.168.16.181 (D) 255.255.255.255 4569 Unmonitored 212/212 192.168.16.186 (D) 255.255.255.255 4569 Unmonitored 2 iax2 peers [0 online, 0 offline, 2 unmonitored]asterisk1*CLI> sip show peers Name/username Host Dyn Nat ACL Port Status pgx/pgx 192.168.16.182 D 5060 OK (19 ms) 1 sip peers [1 online , 0 offline]
Enfin lors d’une communication, on peut voir l’état des canaux utilisés, par exemple, le 220 appelle le 201:
asterisk1*CLI> show channels Channel Location State Application(Data) IAX2/201-5 s@internal:1 Up Bridged Call(SIP/pgx-7ed5) SIP/pgx-7ed5 201@internal:1 Up Dial(IAX2/201)
Conclusion
Voici un exemple très simple de téléphonie sur IP. La preuve est facilement faite que l’on peut rapidement mettre en oeuvre un PABX IP sur l’excellente base d’Asterisk, sans connaissances très approfondies. Nous creuserons les services dans les prochains articles sur cette thématique.
|
Posté par: Alexandre Chauvin-Hameau, le 20/02/2006 Trackback | Popularité: 23% marqué 1.2, asterisk, configuration, débuter et SIP |
|









