Vous êtes sur la page 1sur 68

Marc SCHAEFER Epervier 15 2053 Cernier Ing. inf. dipl.

EPFL

Conseil et ralisations en informatique libre http://www.cril.ch/

Email : Tl. : Fax : Mobile :

schaefer@alphanet.ch +41 32 841 40 14 +41 32 841 40 81 +41 79 502 56 92

Introduction la tlphonie IP Asterisk sous GNU/Linux cours de base


Marc SCHAEFER schaefer@alphanet.ch

C+R
25 avril 2008

Informatique libre

Cours de base Asterisk

RELEASE

Revision : 1.6

Cernier, le 25 avril 2008

Licence et droits dauteurs


Ce cours est c 2006 CRIL - Marc SCHAEFER. Vous avez cependant le droit de le copier, transmettre, modier et redistribuer, dans la mesure o vous respectez les termes de la licence GFDL et considrez linvariant (les 2 premires pages). Si vous ne dsirez pas accepter les termes de la licence, je vous donne malgr tout le droit de consulter ce cours sans restrictions (ce qui devrait tre vident !) Dans tous les cas, vous devez accepter le fait que je dcline toute responsabilit quant lutilisation que vous pourriez faire de ce cours et ne mengage en rien ce propos.

Marc SCHAEFER Ing. inf. dipl. EPFL Conseil et ralisations en informatique libre (CRIL) http://www.cril.ch/

Table des matires


1 Introduction la technologie voix-sur-IP 1.1 Qualit de service . . . . . . . . . . . . 1.2 Codecs . . . . . . . . . . . . . . . . . . 1.3 Protocoles de gestion de session et audio 1.4 Problmes . . . . . . . . . . . . . . . . 2 Le central Asterisk 2.1 Introduction . . . . . . . . . . . . 2.2 Fonctions administratives de base 2.3 La console Asterisk . . . . . . . . 2.4 Matriel et interfaces . . . . . . . 2.5 Le concept de dial plan . . . . . . 2.6 La Manager interface . . . . . . . 3 Rsoudre les problmes 3.1 Logs systmes et Asterisk . . . . 3.2 Debugging SIP . . . . . . . . . 3.3 Debugging ISDN . . . . . . . . 3.4 Echo en ISDN . . . . . . . . . . 3.5 tcpdump et Ethereal (Wireshark) 4 O trouver de la documentation 5 Corrig des exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5 13 17 23 28 30 32 34 37 44 54 58 59 62 63 64 65 66 67

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

. . . . .

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP p. 4 '

1. Introduction la technologie voix-sur-IP


Contenu du chapitre
notions de qualit de service (QoS) les codecs les protocoles de gestion de session et audio les problmes courants lis la voix-sur-IP

Buts du chapitre
connatre les caractristiques des codecs (notamment en bande passante et qualit) connatre les caractristiques principales des protocoles IAX2, SIP et H.323 ainsi que leurs domaines dutilisation connatre les problmatiques de rewall, cho, jitter, traitement des DTMF et bande passante savoir dimensionner approximativement une connexion en fonction des codecs utiliss
& Ce premier chapitre traite principalement de la technologie voix-sur-IP en gnral. Les codecs, protocoles et problmes courants sont traits de manire informative. Quelques exemples de dimensionnement de liaison seront galement proposs.

Lectures supplmentaires
QoS en voix-sur-IP : http://www.voip-info.org/wiki-QoS codecs : http://en.wikipedia.org/wiki/Speech_encoding protocoles IAX2 http://en.wikipedia.org/wiki/IAX2 SIP http://fr.wikipedia.org/wiki/Session_Initiation_Protocol H.323 http://fr.wikipedia.org/wiki/H.323

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service '

p. 5

Qualit de service 1.1


Contenu du sous-chapitre
caractristiques facteurs de dlai rseau local / fournisseur / global qualit de service dans un cas pratique

Caractristiques importantes
dlai perceptible et variation du dlai (jitter ) taux derreur (<< 1%) bande passante

&

Taux derreur
Un des paramtres les plus importants est le taux derreur. Un taux derreur lev amnera une communication trs fortement dgrade voire impossible. Une des causes dun taux derreur lev est la congestion : la surcharge temporaire dune ligne ou dun quipement, qui supprime alors les datagrammes IP excdentaires (en gnral sans priorit).

Echo
un dlai de plus de 100 ms environ1 de bout en bout cre une perception de dcalage et augmente la perception de gne dun cho rsiduel en cas de prsence dcho, des dlais plus courts sont parfois problmatiques.

Bande passante
Le calcul de la bande passante ncessaire dpend du codec utilis, du nombre de communications maximum et du surdbit de gestion des protocoles. Il faut donc sassurer quen production, le systme
1

max selon ITU-T G.114 150ms

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service

p. 6

nautorise pas plus de connexions que possible. Des exemples de dimensionnement seront proposs dans le chapitre sur les codecs.

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service '

p. 7

Facteurs de dlai
lignes composants/quipements surcharge / congestion MTU (maximum transmission unit) dinterface tampons (buffers) de compensation de jitter et suppression dcho groupement dchantillons dans un datagramme

&

Exercices
1. que peut-on faire pour assurer au trac voix-sur-IP un fonctionnement correct mme en cas de partage de la liaison ? 2. quel serait le MTU ncessaire sur une liaison ADSL 600/100 de manire garantir un dlai maximum d au MTU de 50 ms ? 3. combien de donnes utiles dans le datagramme audio de lexemple IAX2 la gure ci-dessus ? cela correspond combien dchantillons audio (ou quel dure) ? combien denttes ? dduisez le rendement et le dbit total ncessaire. 4. quel sont les problmes dun MTU trop bas ?
c 2006 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service

p. 8

5. les tampons de traitement dun tlphone sont de 400 bytes, pour un codec 8 bit 8000 Hz (G.711 A-law par exemple), que pouvez-vous dire pour le dlai ajout ?

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service '

p. 9

Cas du rseau local


si possible, utiliser un rseau spar physiquement spar vt. VLAN avec prioritisation du trac sans l : privilgier les solutions garantissant la QoS (DECT)

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service '

p. 10

Connexion des fournisseurs


dpendance du contrat (SLA) avec le fournisseur IP pour une meilleure abilit, choisir un fournisseur pour la solution complte p.ex. liaison ADSL et connexion au rseau tlphonique par le mme oprateur, ddi ou partag cas typique : remplacement de ligne ISDN PRI (30 canaux) par ADSL symtrique de capacit sufsante, connexion directe au fournisseur (ou garantie de bande passante ADSL Swisscom) rservation, prioritisation de trac possible (partage), diverses mthodes suivant fournisseur

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service '

p. 11

Cas du rseau global


dpendance galement avec dautres fournisseurs cas gnral : best effort avoir une solution de secours est recommand (liaison ISDN p.ex.) il est possible de mettre en place des solutions de prioritisation de trac (TOS)

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service '

p. 12

Cas pratique
le problme cas rseau global pas de SLA particulier fournisseur distinct partage avec utilisation Internet classique 7

solutions routeur intelligent MTU adapt et tcp-MSS-clamping forage du champ TOS pour spcier la QoS en fonction p.ex. du numro de port prioritisation au niveau du routeur lui-mme
&

Lectures supplmentaires
HOWTO Advanced Routing/Trafc Shaping Linux : http://lartc.org/ et notamment lexemple http://lartc.org/wondershaper/

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Codecs '

p. 13

Codecs 1.2
Contenu du sous-chapitre
quelques exemples de codecs courants et de leurs caractristiques problme des licences dimensionnement de liaisons (bande passante, charge CPU) problmes particuliers (fax, DTMF)

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Codecs '

p. 14

Exemples de codecs
nom G.711 A/U-law iLBC G.729 9 GSM FS-1015/LPC10 bande passante 64 kbps 15 kbps 10-30 kbps 15-35 kbps 2.4 kbps qualit bonne correcte bonne mauvaise trs mauvais licence propritaire -

G.726 (ADPCM) 16, 24, 32, 40 kbps bonne Speex 2-44 kbps

bonne mauvaise -

&

Problme des brevets/licences


Seul Speex est garanti non encombr de brevets et donc peut tre utilis dans le monde entier sans licences. Les autres codecs sont en gnral galement sans restrictions, avec la notable exception de G.729.

Utilisation des codecs en pratique


En pratique, on utilisera G.711 A-law dans le rseau interne, de manire viter une succession de transcodages et diminuer le CPU ncessaire sur le central. Si des connexions externes ISDN sont utilises, aucun transcodage nest ncessaire en G.711 A-law. Lors de connexions des fournisseurs (p.ex. SIP, IAX2, etc), tout dpend de la bande passante disponible et du partage ventuel de celle-ci, et de la qualit exige par le client. Le codec G.726 permet une division par deux de la bande passante ncessaire par rapport G.711 A-law. Si support par le fournisseur, Speex peut tre une bonne solution adaptable. Lors du dimensionnement, on noubliera pas de tenir compte du surdbit de gestion des connexions (enttes, protocoles, etc). En fonctionnement, on limitera le nombre maximum de connexions effectivement utilises. Toute conversion de codecs devra faire lobjet dune valuation de la charge CPU ncessaire, notamment par mesures.

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Codecs '

p. 15

Transport du fax
fax analogique G3 connect en voix-sur-IP via un ATA, une carte ou un banc analogique, envoi en audio (T.30) le protocole G.3 est trs rsistant aux erreurs, aux prix de la perte de performance envoi dun signal supprimant le traitement de canal seuls les codecs sans perte sont recommands : G.711 A-law par exemple en dehors du rseau local, il est recommand de transfrer le fax dcod : T.38 aux bornes du rseau voix-sur-ip, recrer le fax sous forme audio, si ncessaire. alternative : envoi spcique sous forme dimage

10

http://www.voip-info.org/wiki-Asterisk+fax
&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Codecs '

p. 16

Transport des DTMFs


combinaison de deux frquences fondamentales transmission en voix-sur-IP soit sous forme audio (inband), soit dun message de contrle (rfc2833 (RTP), INFO (SIP)) la forme audio est la plus simple et compatible, mais ne fonctionne de faon relativement able quavec un codec sans perte sont recommands : G.711 A-law par exemple en dehors du rseau local, il est recommand de transformer en message de contrle aux bornes du rseau voix-sur-ip, gnrer les frquences fondamentales pour compatibilit

11

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Protocoles de gestion de session et audio '

p. 17

Protocoles de gestion de session et audio 1.3


Contenu du sous-chapitre
principes IAX2 SIP H.323 RTP (audio)

12

& La gure 1 dcrit ltablissement dun appel IAX2 (trace ethereal). La gure vue prcdemment est une trace audio. Les gures 2 et 3 dcrivent la mme chose pour le protocole SIP.

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Protocoles de gestion de session et audio '

p. 18

IAX2
un seul change de donnes (multiplexage contrle et donnes audio) sur un port connu, souvent 4569 plusieurs communications entre deux quipements passeront galement par la mme connexion trs efcace pour les truncs facile rewaller/NATer. protocole spcique Asterisk, support par quelques quipements recommand dans des liaisons inter-centraux Asterisk

13

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Protocoles de gestion de session et audio

p. 19

F IG . 1 Appel (contrle de) IAX2

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Protocoles de gestion de session et audio '

p. 20

SIP
chaque communication ncessite un change sur le port de contrle SIP (tablissement de session), souvent 5006 mais aussi deux ux RTP sur des ports dynamiques (ou congurables en xe) protocole standard IETF moins efcace quIAX2 pour les truncs plus complexe rewaller/NATer (il y a des adresses et numros de port dans les donnes de contrles modier ; proxy possible) protocole ouvert, trs compatible quipements recommand pour laccs client

14

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Protocoles de gestion de session et audio

p. 21

F IG . 2 Session SIP

F IG . 3 Donnes audio RTP SIP

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Protocoles de gestion de session et audio '

p. 22

H.323
un annuaire H.323 est ncessaire (gatekeeper) chaque communication ncessite un change sur le port de contrle H.323 (tablissement de session) mais aussi deux ux de donnes sur des ports dynamiques (ou congurables en xe) protocole standard ITU-T trs complexe (similaire Q.931 dISDN) trs complexe rewaller/NATer (il y a des adresses et numros de port dans les donnes de contrles modier) protocole ouvert, relativement compatible quipements recommand pour la connexion de centraux propritaires ne supportant que ce protocole

15

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Problmes '

p. 23

Problmes 1.4
Contenu du sous-chapitre
la qualit perue pare-feu (rewall) lcho scurit

16

&

La qualit perue
Il est trs difcile de dterminer la cause dun problme de qualit perue par lutilisateur. Mme si des tests normaliss existent (lecture de phonmes standards et comprhension), cela reste malgr tout complexe. Les problmes de qualit sont dus : un cho peru trop tard et/ou trop fort (dlais), ou labsence total dcho des gains de transmission ou rception trop levs ou trop bas des blancs, indicateurs derreurs de transmission (congestion p.ex.) ou de variation de dlai lutilisation de codecs avec dformation (GSM p.ex.) des blips ou beeps, parfois dus une dtection de DTMF mal choisie ou congure (inband)

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Problmes '

p. 24

Pare-feu (rewall)
problmes multitude des ports ouvrir / dynamicit problmes en combinaison avec NAT/PAT

17 recommandations privilgier les protocoles simples comme IAX2 lorsque les rewalls sont traverss pour SIP, utiliser soit des ports de contrle et de donnes audio (RTP) xes, avec rgles statiques dans le rewall, soit un proxy SIP. les clients SIP peuvent en gnral modier les adresses (NAT) via divers protocoles comme STUN. viter absolument les rgles dynamiques de NAT, elles risquent de ne fonctionner que pour le premier quipement sur le mme port, et causer des pannes difciles
&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Problmes

p. 25

'

dterminer. une option est dutiliser un VPN sous forme de tunnel pour transporter le tout sans interaction avec le rewall.

18

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Problmes '

p. 26

Echo
problme trs complexe en gnral, supprimer lcho le plus prs de sa source (cho local ; pas cho distant) les quipements entirement numriques nont en gnral pas dcho lcho est souvent caus par des parties analogiques (micro, ligne analogique) et aggrav par les dlais introduits on peut jouer sur les gains et sur les suppresseurs dcho logiciels intgrs dans les quipements ou logiciels.

19

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Problmes '

p. 27

Scurit
le problme la plupart des protocoles supportent une authentication simple base sur cls publiques une fois le systme identi, il ny a en gnral pas de scurit pour p.ex. les transferts dappels ou la n de connexion les donnes audio ne sont pas chiffres en consquence : attaques de condentialit et de dni de service possibles, facilit par lutilisation de numros de ports connus et xs solutions possibles version scurise de RTP (SRTP) pour le ux audio protocoles spciaux (p.ex. PGP ZFon) VPN sous-jacent
&

20

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk p. 28

'

2. Le central Asterisk
Contenu du chapitre
introduction (licence, packaging) fonctions administratives de base la console Asterisk matriel et interfaces le concept de dial plan les applications standard exercices pratiques liens dautres applications

21

& Ce chapitre traite du central Asterisk et de ses interconnexions des protocoles et matriels. Il traite galement du plan de numrotation (dial plan ) et de congurabilit en temps rel.

Lectures supplmentaires

console Asterisk et principales commandes : http://www.voip-info.org/wiki/ index.php?page=Asterisk+CLI le dial plan : http://www.voip-info.org/wiki/view/Asterisk+howto+ dial+plan les applications : http://www.voip-info.org/wiki/index.php?page=Asterisk+ -+documentation+of+application+commands

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk p. 29

'

Buts du chapitre
savoir installer, mettre jour, dmarrer, arrter et congurer la base dAsterisk pouvoir interagir avec la console, dterminer les congurations, interfaces et connexions connatre le support matriel et sa conguration, et quelques cas particuliers de services spciques concevoir et raliser un dial plan , y compris quelques spcialits utilisant des macros, du traitement derreur ou du contexte (variables)

22

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Introduction

p. 30

'

Introduction 2.1
Licence
double (dual-licensed ) Asterisk est dvelopp par Digium, Inc. soit libre (GPL), soit propritaire (OEM, version teste, certains pilotes restreints, codecs problmatiques)

23

Branche bristuff
dveloppe par un spcialiste dISDN GPL (uniquement, la version propritaire de Digium na pas le support notamment pour les chips HFC via interface Zaptel) bien teste

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Introduction

p. 31

'

Packaging
CRIL propose : version GPL 1.0.9, complte bristuff, teste maintenue par un spcialiste dISDN packaging compatible Debian (/etc/apt/sources.list) deb http://packages.cril.ch/cril/debian/packages/ \ sarge cril/ASTERISK pilotes kernel HFC zaptel :
http://login.alphanet.ch/~schaefer/tmp/asterisk-hfc-drivers-1.0.9rc8j-easier-to-build.tar.gz

24

prconguration standard si dsir, support FAI (Fully Automatic Installation) ou images dinstallation.

&

Cartes HFC sans bristuff


Il est certes possibles de faire fonctionner les cartes HFC galement avec la version propritaire (ou la version GPL non bristuff), mais cela ncessite du support dans le kernel (mISDN) qui nest pas encore complet ni able, mme en kernel Linux 2.6.

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Fonctions administratives de base

p. 32

'

Fonctions administratives de base 2.2


Dmarrage et arrt
dmarrage manuel : /etc/init.d/asterisk start automatique via init.d : voir /etc/rc2.d/S*asterisk arrt manuel : /etc/init.d/asterisk stop en console Asterisk : stop now automatique via init.d : voir /etc/rc?.d/K*asterisk

25

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Fonctions administratives de base

p. 33

'

Conguration de base
zaphfc : /etc/init.d/hfc, /etc/zaptel.conf, /usr/local/HFC zapata : /etc/asterisk/zapata.conf SIP : /etc/asterisk/sip.conf composants logiciels : /etc/asterisk/modules.conf dial plan : /etc/asterisk/extensions.conf voicemail : /etc/asterisk/voicemail.conf confrences : /etc/asterisk/meetme.conf musiques dattente : /etc/asterisk/musiconhold.conf

26

&

Exercices
1. vriez que Asterisk est dmarr (ps auxw | grep asterisk) 2. stoppez le, vriez, puis redmarrez via init.d 3. lancez la console Asterisk : asterisk -rc, documentez-vous sur la commande stop (help stop) et stoppez Asterisk via la console de manire ce que larrt se produise lorsquil ny aura plus dappels en cours, puis redmarrez via init.d 4. assurez-vous que le service est dmarr au dmarrage de la machine 5. consultez rapidement : /etc/asterisk/modules.conf, /etc/asterisk/extensions.conf /etc/asterisk/sip.conf 6. consultez http://www.voip-info.org/wiki-Asterisk+GUI

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk La console Asterisk

p. 34

'

La console Asterisk 2.3


Connexion
asterisk -rc options supplmentaires -v niveau de debug (plusieurs spciables) 27 -n texte seulement

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk La console Asterisk

p. 35

'

Commandes principales
commande description

help et help commande aide interne sip show peers sip show registry 28 stop now show channels show channel XXXX zap show channels pri show span 1 show codecs show dialplan
&

voir les tlphones et fournisseurs SIP voir les enregistrements des fournisseurs SIP arrt (voir aussi help stop pour les variantes) voir les communications en cours dtails sur un canal donn canaux Zaptel dtails sur un canal Zaptel (ISDN) donn voir les numros de codecs voir les diffrents contextes et extensions

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk La console Asterisk

p. 36

'

Prise en compte de nouvelles congurations


commande reload description reconguration globale

reload CONFIG reconguration dune conguration particulire sip reload 29 reconguration SIP

&

Exercices
1. connectez-vous la console 2. listez les tlphones SIP connects ; faites un appel, vriez que lappel est visible. Dterminez le codec et dautres paramtres pour lappel en cours. 3. modiez le dial plan , activez la modication et testez.

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Matriel et interfaces

p. 37

'

Matriel et interfaces 2.4


Concept de channel
un channel est une interface (SIP, ISDN, IAX2, etc) active on rfre aussi aux pilotes concerns (p.ex. chan_sip) 30

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Matriel et interfaces

p. 38

'

Interfaces tlphones
analogique (FXO ; carte Digium, interface Zaptel) : Zap/num ISDN : rare, voir interface fournisseurs (avec inversion et NT, possible sur HFC) voix-sur-IP SIP (analogique via ATA, ou tlphone SIP, softphone) : SIP/ident IAX2, H.323 31

&

Exemples de conguration
Tlphone SIP (sip.conf) /etc/asterisk/sip.conf [200] callerid=200 type=friend context=local-sip-in host=dynamic secret=DEMOPW username=200 dtmfmode=rfc2833 qualify=1000 disallow=all allow=ulaw allow=alaw canreinvite=no nat=no mailbox=200

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Matriel et interfaces

p. 39

Tlphone IAX2 (iax.conf) Attention, il y a deux versions du protocole IAX ! Certains softphones ne comprennent que la version 1, qui est obsolte aujourdhui. /etc/asterisk/iax.conf [220] type=friend mailbox=220 accountcode=220 username=220 host=dynamic auth=md5,plaintext,rsa secret=DEMOPW context=local-sip-in disallow=all allow=alaw allow=ulaw

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Matriel et interfaces

p. 40

'

Interfaces fournisseurs
analogique : rare en Suisse (FXS, carte Digium) ISDN BRI (MultiLineISDN, P2MP, bus S) : cartes HFC BRI/DDI (BusinessISDN, DDI, P2P, T) : cartes HFC PRI (E1) : cartes HFC PRI voix-sur-IP (p.ex. SIPCALL, Stanaphone, Intertel, etc) SIP SIP/ident, register => IAX2, H.323

32

&

Fournisseur SIP /etc/asterisk/sip.conf [general] useragent=irgendwas register => 41325112156:DEMOPW@sip.backbone.ch:5060 [sipcall] type=peer secret=DEMOPW username=41325112156 fromuser=41325112156 callerid=41325112156 host=sip.backbone.ch qualify=no nat=no disallow=all allow=alaw canreinvite=no context=sipcall-dial-in insecure=very
c 2006 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Matriel et interfaces

p. 41

Note : pour diffrencier entre plusieurs comptes du fournisseur, suivant les cas on pourra diffrencier avec le numro appel. Sinon, le plus simple est dajouter /1 au register ci-dessus et le numro appel sera 1 (respectivement 2, etc). Fournisseur ISDN (BRI) /etc/init.d/hfc ZAPHFC_MODE=0

/etc/zaptel.conf defaultzone=us # First board (TE) span=1,1,3,ccs,ami bchan=1-2 dchan=3 # Second board (NT) span=1,1,3,ccs,ami bchan=4-5 dchan=6

/etc/asterisk/zapata.conf ; TE mode pridialplan=local prilocaldialplan=unknown immediate=no callerid=asreceived signalling = bri_cpe_ptmp context = isdn-dial-in echocancel=yes echotraining=no echocancelwhenbridged=no rxgain=-5.0 txgain=-7.0 group = 1 channel => 1-2

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Matriel et interfaces

p. 42

'

Interfaces centraux et quipements


similaire au problme de la connexion de tlphones en ISDN, support inversion NT avec HFC cas particuliers : interfaces GSM (ISDN BRI/PRI ou SIP), racks de raccordement analogiques ou ISDN (ISDN PRI, SIP)

33

&

Tlphone ISDN /etc/init.d/hfc ZAPHFC_MODE=2

/etc/asterisk/zapata.conf ; p2mp NT mode signalling = bri_net_ptmp context=isdn-local-bus callerid=7516862 pridialplan=local prilocaldialplan=local ; remove addition of first 0 echocancel=no immediate=no group = 2 channel => 4-5

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Matriel et interfaces

p. 43

Exercices
1. conguration dun tlphone SIP (codec, cho, silence, passage DTMF correct et test, appel, rception dappel, dial-plan interne ventuel) 2. conguration dune liaison ISDN ; conguration du MSN en sortie et du groupe de lignes. 3. conguration dun lien SIP en sortie sur un fournisseur, vrication denregistrement (registry), test dappel et de rception dappel.

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Le concept de dial plan

p. 44

'

Le concept de dial plan 2.5


Concepts
le plan de numrotation est une chier de conguration, extensions.conf, qui dcrit les numros composables (entirement ou via des expressions gnriques simples) des squences complexes peuvent tre dnies, par exemple sous forme de macros. on peut le voir comme un systme event driven des variables de contexte peuvent tre consultes, affectes ou effaces (soit pour cette session, soit globalement) deux concepts importants : context un ensemble dextensions dnies, servant dnir des sous-ensembles activables suivant un type dappel p.ex.. extension dnition dune raction correspondante une action de lutilisateur (composition dun numro, touche toile, etc
&

34

Exemple dun dial plan


Gnralits /etc/asterisk/extensions.conf [service-numbers] exten => 303,1,Meetme(1234) exten => 304,1,VoicemailMain exten => 305,1,Goto(demo,s,1) exten => 307,1,MusicOnHold(default) exten => 308,1,Echo exten => 311,1,Directory [local-extensions] include => service-numbers exten => _2XX,1,Dial,Sip/${EXTEN} exten => _4XX,1,Dial,Zap/g2/${EXTEN} [local-sip-in] include => local-extensions include => isdn-dial-out

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Le concept de dial plan

p. 45

'

gnration : idalement gnr dynamiquement, p.ex. dune base de donnes (soit par chiers gnrs, concept de pbx-admin, soit via lien direct la base de donnes).

35

& Fournisseur SIP /etc/asterisk/extensions.conf [sipcall-dial-in] exten => s,1,Dial(Sip/200) [sipcall-dial-out] exten => _9100XXXXXXXXXXX,1,SetCallerID(41325112156) exten => _9100XXXXXXXXXXX,2,SetCIDName(41325112156) exten => _9100XXXXXXXXXXX,3,Dial(Sip/${EXTEN:2}@sipcall)

Fournisseur ISDN (BRI) /etc/asterisk/extensions.conf [isdn-dial-out] exten => _0.,1,Dial(Zap/g1/${EXTEN}) exten => _1.,1,Dial(Zap/g1/${EXTEN}) [isdn-dial-in] exten => 7516862,1,Dial(Sip/200)
c 2006 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Le concept de dial plan

p. 46

Tlphone ISDN /etc/asterisk/extensions.conf [isdn-local-bus] exten => s,1,DigitTimeout,3 exten => s,2,ResponseTimeout,5 exten => s,3,SetCallerId(400) include => local-sip-in

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Le concept de dial plan

p. 47

'

Traitement des extensions


dans un contexte format exten => ID,SEQUENCE,ACTION,paramtre,paramtre,... ID : numro, touche ou expression gnrique wildcard , ou encore lettre spciale (s : dfaut, i : touche invalide, t : timeout, o :operator, T :global timeout) SEQUENCE : numro de squence (cf BASIC) ACTION : composition, rponse, raccrochage, application, etc paramtres : variables suivant lACTION traitement en squence (sauf traitement derreur dapplications et branchements avec Goto) prxage : on peut spcier un numro p.ex. par un prxe

36

&

Exemples
[demo1] exten => s,1,Answer exten => s,2,Wait(1) exten => s,3,Playback(bienvenue) ; juste touche 1 exten => 1,1,Echo exten => 1,2,Hangup ; touche * exten => *,1,Hangup ; numro commenant par 2, 4 chiffres ; (compose les 3 derniers chiffres, en Sip) exten => _2XXX,1,Dial(Sip/${EXTEN:1})

exten => t,1,Goto(demo1,s,3) ; timeout: retour au message de bienve exten => i,1,Playback(invalid) exten => i,2,Goto(demo1,s,3) ; touche invalide: retour

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Le concept de dial plan

p. 48

'

Traitement derreur
En gnral, le saut est fait extension + N, o N est dni dans la documentation de la fonction utilise. exten => s,1,SetVar(line=${CHANNEL}) exten => s,2,DBget(temp=MORE-MSN/${line}/${EXTEN}) ; en cas derreur (variable non existante), saute 2 + 101 37 exten => s,3,SetVar(EXTEN=${temp}) exten => s,4,Goto(internal-extensions,${EXTEN},1) ; default extension exten => s,103,DBget(temp=MORE-MSN/${line}/DEFAULT) exten => s,104,SetVar(EXTEN=${temp}) exten => s,105,Goto(s,3)
&

Exercices
1. concevez un dial-plan entier pour lentreprise (choix de prxe(s) de sortie, plan de numrotation dinternes, numrotation abbrge, routage dappel SIP/ISDN, services. 2. congurez lextension 9 via loprateur Swisscom (10740), de manire ce que 90328414014 devienne 107400328414014 lors dun appel ISDN. 3. congurez un oprateur SIP qui demande le numro en format international (41328414014), sans le double 0, dans tous les cas. 4. faites un appel parallle sur les postes 200 et 201 pour une extension donne, pendant 30 secondes, puis un appel de 203 indniment si na pas fonctionn (indication : &)

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Le concept de dial plan

p. 49

'

Macros
Remplaons le Dial dans lexemple par un appel de macro : exten => _2XXX,1,Macro(std-dial,${EXTEN},Sip/${EXTEN:1}) [macro-std-dial] ; ${ARG1}: extension; ${ARG2}: device exten => s,1,Dial,${ARG2}|60|r exten => s,2,SetVar(PRI_CAUSE=${HANGUPCAUSE}) exten => s,3,Goto(s-${DIALSTATUS},1) exten exten exten exten => => => => s-NOANSWER,1,Voicemail(u${ARG1}) s-NOANSWER,2,Hangup s-BUSY,1,Voicemail(b${ARG1}) s-BUSY,2,Hangup

38

exten => _s-.,1,Hangup


&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Le concept de dial plan

p. 50

'

Applications standard
Dial Composition. Directory Annuaire automatique bas sur voicemail.conf Voicemail Messages vocaux, par utilisateur. Echo Test dcho. 39 MusicOnHold Musique dattente. MeetMe Confrence simple (ne marche bien quavec zaptel en fonction)

&

Exercices
1. testez le voicemail (y compris envoi par e-mail) 2. dposez un nouveau chier son (attention aux droits dauteur) comme musique dattente. 3. testez le mode confrence. 4. faites en sorte que la fonction de rpertoire (311) fonctionne.

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Le concept de dial plan

p. 51

'

Donnes contextuelles
SetVar : congurer une variable de session DBget, DBset, DBdel : variables persistantes (astdb) et globales un moyen simple de paramtrer Asterisk du point de vue de lutilisateur : redirections dappel congurables MSN en sorties suivant numro interne dlais, groupes dappel, etc

40

&

Exemple dutilisation des donnes contextuelles : redirection dappel congurable


Fonctions de conguration [call-forwarding-setup-support] exten => *50,1,DBdel(CF/${CALLERIDNUM}) exten => *50,2,Answer exten => *50,3,Wait(1) exten => *50,4,Playback(forwarding-cleared) exten => *50,5,Hangup exten exten exten exten exten => => => => => *51,1,DBput(CF/${CALLERIDNUM}=voicemail) *51,2,Answer *51,3,Wait(1) *51,4,Playback(forwarding-to-voicemail) *51,5,Hangup

exten => _*52X.,1,DBput(CF/${CALLERIDNUM}=${EXTEN:3}) exten => _*52X.,2,Goto(call-forwarding-setup-support,*59,1) exten => *53,1,DBput(CF/${CALLERIDNUM}=no-answer)


c 2006 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Le concept de dial plan

p. 52

exten exten exten exten exten exten exten exten exten exten exten exten

=> => => => => => => => => => => =>

*53,2,Answer *53,3,Wait(1) *53,4,Playback(forwarding-no-answer) *53,5,Hangup *59,1,Answer *59,2,Wait(1) *59,3,DBget(temp=CF/${CALLERIDNUM}) *59,4,GotoIf($["${temp}" = "voicemail"]?20) *59,5,GotoIf($["${temp}" = "no-answer"]?30) *59,6,Playback(forwarding-to-number) *59,7,SayDigits(${temp}) *59,8,Hangup

exten => *59,20,Goto(call-forwarding-setup-support,*51,4) exten => *59,30,Goto(call-forwarding-setup-support,*53,4) exten => *59,104,Playback(forwarding-none) exten => *59,105,Hangup

Fonctions dutilisation [macro-call-forwarding-context] ; ${ARG1} - Extension ; ${ARG2} - where to dial exten => s,1,DBget(temp=CF/${ARG1}) exten => s,2,GotoIf($["${temp}" = "voicemail"]?20) exten => s,3,GotoIf($["${temp}" = "no-answer"]?30) ; Dial specified number exten => s,4,GotoIf($["${temp:0:1}" = "0"]?10) exten => s,5,Macro(dial-internal,${temp}) exten => s,10,Goto(isdn-dial-out,${temp},1) ; Go voicemail exten => s,20,Voicemail(u${ARG1}) ; No answer exten => s,30,Hangup ; No entry; go default. exten => s,102,Macro(dial-internal,${ARG1},${ARG2})

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk Le concept de dial plan

p. 53

Exercices
1. faites en sorte que le numro (MSN) utilis comme source en sortie dpende de lextension do provient lappel. 2. mettez en place de la redirection dappel congurable.

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk La Manager interface

p. 54

'

La Manager interface 2.6


contrle dtaill dAsterisk et suivi temps-rel des actions mode interactif : soit conguration dans manager.conf puis accs via TCP (port 5038) mode batch : dpt dun chier format dans /var/spool/asterisk/outgoing (pas de retour !) package CRIL en Perl dabstraction : asterisk-perl, exemples en CGI dans pbx-admin interface TAPI pour Microsoft (asttapi, http://www.voip-info.org/wiki/view/Asterisk+TAPI) en Asterisk 1.4 : AJAM (http://www.voip-info.org/wiki/view/ Aynchronous+Javascript+Asterisk+Manager+%28AJAM%29) pour applications WWW

41

&

Exemple de contrle dappel


schaefer@shakotay:~/asterisk-perl$ telnet localhost 5038 Trying 127.0.0.1... Connected to localhost. Escape character is ^]. Asterisk Call Manager/1.0 Action: login Username: alphanet Secret: DEMOPASSWORD Response: Success Message: Authentication accepted Action: Command Command: Show Channels Response: Follows Channel (Context Extension Pri ) IAX2/cflash-local/1 ( s SIP/200-53c7 (macro-dial-extension s 2 active channel(s) --END COMMAND-c 2006 CRIL - Marc SCHAEFER

State Appl. 1 ) 1 )

Data Up Bridged Up Dial 200

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk La Manager interface

p. 55

Action: Originate Channel: SIP/200 Context: sip-dial-out MaxRetries: 1 RetryTime: 60 WaitTime: 30 Extension: 0795025692 Priority: 1

Exemples dvnements
Event: Link Channel1: SIP/200-53c7 Channel2: IAX2/cflash-local/1 Uniqueid1: asterisk-19452-1159193538.40 Uniqueid2: asterisk-19452-1159193538.41

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk La Manager interface

p. 56

'

Application : fax
rxfax Rception de fax, par une Application du dial plan . txfax Envoi de fax, via la Manager Interface.

42

&

Rception de fax
[macro-faxreceive] exten => s,1,SetVar(FAXFILE=/var/spool/asterisk/tmp/${UNIQUEID}.tif) exten => s,2,SetVar(EMAILADDR=schaefer@alphanet.ch) exten => s,3,rxfax(${FAXFILE}) [fax] exten => s,1,Macro(faxreceive) exten => h,1,system(/usr/local/sbin/mailfax ${FAXFILE} ${EMAILADDR} \ "${CALLERIDNUM} ${CALLERIDNAME}")

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 2: Le central Asterisk La Manager interface

p. 57

Envoi de fax
Il faut passer par linterface de gestion dAsterisk (manager interface). cat > /var/spool/asterisk/tmp/tmp_$$ <<EOF Channel: Zap/g2/0328414081 MaxRetries: 0 WaitTime: 20 Application: txfax Data: /tmp/bla.tiff|caller EOF mv /var/spool/asterisk/tmp/tmp_$$ \ /var/spool/asterisk/outgoing/fax_$$

Noter que cette version ne supporte pas de notication du rsultat. A part linterface Manager de notication, ou le parsing des logs, la solution la plus simple est dappeler un contexte et une squence.

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 3: Rsoudre les problmes p. 58

'

3. Rsoudre les problmes


Contenu du chapitre
logs systmes, logs asterisk le debugging avec la console Asterisk cas particuliers : SIP et ISDN cho en ISDN tcpdump et ethereal

43

Buts du chapitre
tre capable de dterminer la raison dun problme de conguration ou dinteroprabilit simple

& Ce chapitre propose quelques pistes et mthodes gnrales de debugging de base en cas de problmes avec Asterisk. Un debugging plus profond ncessite des connaissances tendues en protocoles IP ou ISDN par exemple et nest pas lobjet de ce chapitre. Quelques exercices pratiques sont proposs.

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 3: Rsoudre les problmes Logs systmes et Asterisk

p. 59

'

Logs systmes et Asterisk 3.1


O se trouvent les logs
on peut congurer Asterisk pour passer par le daemon systme syslogd (pour centralisation, log distance, etc) par dfaut Asterisk crit ses logs directement dans /var/log/asterisk/ on peut congurer le niveau de dtail pour Asterisk on peut afcher les logs interactivement avec la console, et augmenter le niveau de debugging si ncessaire, soit par argument, soit par commande interne les logs systmes (p.ex. pilotes matriels Zap/HFC) sont dans /var/log/syslog, /var/log/dmesg (et/ou commande dmesg pour le kernel debug ring buffer) certains logs (p.ex. dappel) sont disponibles en CSV (chier texte formatt), soit via une connexion ODBC sur un SGBD.

44

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 3: Rsoudre les problmes Logs systmes et Asterisk

p. 60

'

Augmentation du niveau de debugging


mthode 1 : conguration, non interactive modier /etc/asterisk/logger.conf changer dans la section [general], la variable messages (ou choisir un autre nom, sauf console, pour le nouveau chier sous /var/log/asterisk/) exemple : messages => notice,warning,error,debug,verbose effectuer la commande de la console dAsterisk : logger reload (ou relancer asterisk) pour modier le niveau de debugging par dfaut de la console, utiliser le nom console mthode 2 : interactive lancer la console asterisk avec autant doptions -v que dsir par exemple : asterisk -rcvvvvv
&

45

Lancement contrl dAsterisk


Il est galement possible de lancer Asterisk manuellement de manire ce que la console ne dtache pas et soit accessible, ou dfaut les messages derreurs directement. Exemple : su --shell=/bin/sh - asterisk -c "/usr/sbin/asterisk -cnvvvv" Parsing /etc/asterisk/asterisk.conf: Found Asterisk 1.0.9-BRIstuffed-0.2.0-RC8j, Copyright (C) 1999-2004 Digium. Written by Mark Spencer <markster@digium.com> [ ... ] *CLI> La seule faon darrter est alors via stop now. Cette faon de faire gnre beaucoup de sortie. Lutilitaire script permet de sauvegarder celle-ci dans un chier, par dfaut typescript : script

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 3: Rsoudre les problmes Logs systmes et Asterisk

p. 61

... commandes ... exit more typescript

Exercices
1. ajouter une ligne load => whatever.so dans le chier /etc/asterisk/modules.conf. Redmarrer Asterisk (/etc/init.d/asterisk restart). Vrier ensuite quAsterisk na pas redmarr (ps auxw | grep asterisk). Trouver le problme dans les logs, puis lancez Asterisk manuellement. Sauvegardez (utilitaire script, ou fonction de logging de screen) toute la sortie du programme et consultez-l. corriger et sassurer que tout marche nouveau. 2. connectez-vous la console Asterisk distance (remote) (asterisk -rcvvv), puis dconnectezvous (quit)

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 3: Rsoudre les problmes Debugging SIP

p. 62

'

Debugging SIP 3.2


46 sip sip sip sip debug ip HOST[:PORT] : debug restreint une adresse/un port debug peer NAME : limit un peer debug : global no debug : suppression debugging

aussi possible via tcpdump ou Ethereal


&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 3: Rsoudre les problmes Debugging ISDN

p. 63

'

Debugging ISDN 3.3


47 pri pri pri pri debug span N : seulement sur canal N intense debug span N : debug additionnel show span N : informations no debug span N : suppression debugging span N

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 3: Rsoudre les problmes Echo en ISDN

p. 64

'

Echo en ISDN 3.4


Dterminer et diminuer ou supprimer lcho drangeant
cas le plus courant : cho du ct analogique (p.ex. central ISDN/analogique) certains tlphones (SIP, DECT) ont de la suppression dcho intgre on peut adapter les gains Zapata on peut aussi activer la suppression dcho logicielle (Zapata) dAsterisk

48

Mthode
dterminer le niveau de transmission et de rception : outil ztmonitor (pendant une communication problmatique) adapter txgain et rxgain dans /etc/asterisk/zapata.conf activer la suppression dcho logicielle : echocancel=yes sassurer que lapprentissage est dsactiv : echotraining=no attention aux gains internes de certains priphriques
&

Exemple
Soit le canal (span) Zapata connect numro 1 : # /usr/local/HFC/SRC/zaptel-1.0.9/ztmonitor 1 -v Visual Audio Levels. -------------------Use zapata.conf file to adjust the gains if needed.

( # = Audio Level * = Max Audio Hit ) <----------------(RX)----------------> <----------------(TX)------################################### ############

on pourrait diminuer les gains ainsi : rxgain=-5.0

Voir aussi http://www.asteriskdocs.org/modules/tinycontent/content/docbook/ current/docs-html/x1695.html et http://www.voip-info.org/wiki/view/Grandstr GXP-2000+-+Solving+Echo+Problems


c 2006 CRIL - Marc SCHAEFER Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 3: Rsoudre les problmes tcpdump et Ethereal (Wireshark)

p. 65

'

tcpdump et Ethereal (Wireshark) 3.5


exemple dusage de tcpdump pour capturer des trames : tcpdump -i eth0 -n -s 0 -w capture-file visualisation graphique avec Ethereal (aussi sur une autre machine) : ethereal capture-file utilisation de tcpdump pour visualisation locale : tcpdump -i eth0 -n -vvv restrictions diverses (ltres de capture) : tcpdump -i eth0 -n -vvv udp && port 4569 voir toutes les donnes dcodes : tcpdump -i eth0 -n -vvv -X -s 0 udp && port 4569 Ethereal est plus simple utiliser (p.ex. sous client Microsoft Windows), mais permet galement de visualiser des captures effectues sur un serveur distant avec le simple outil tcpdump !
&

49

Exercices
1. visualiser un appel ISDN de lextrieur, notamment le MSN prsent et le numro appel. Dcongurer le debugging. 2. tracer lentier dun appel SIP et trouver les informations intressantes (avec tcpdump/Ethereal et debugging Asterisk)

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 4: O trouver de la documentation p. 66

'

4. O trouver de la documentation
Asterisk et voix-sur-IP : http://www.voip-info.org/ (Wiki) http://fr.wikipedia.org/wiki/Asterisk_%28logiciel%29 http://fr.wikipedia.org/wiki/VoIP

50

&

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 5: Corrig des exercices p. 67

5. Corrig des exercices

Introduction la technologie voix-sur-IP


Facteurs de dlai 1. utiliser des queues de priorit par classe de trac, adapter le MTU. Dans le cas de lADSL, demander ventuellement au fournisseur sil peut changer le mode de correction derreur ReedSolomon en mode fast-path 1 de manire gagner 30-45 ms. 2. on a m = 100 kBit/s 50 ms = 5000 bit donc le MTU vaut au maximum 500 bytes (Ethernet 1500, ADSL 488 bien souvent, donc ok dans ce cas) 3. donnes utiles : 160 bytes (20 ms 8000 Hz x 8 bits) ; donnes dentte 46 bytes (206-160, dont 14 bytes entte Ethernet, 20 bytes entte IP, 8 bytes entte UDP, 4 bytes entte IAX2 mini-paquet) ; rendement 78%, dbit total en A-law avec enttes : 1.29 * 64 kbit/s soit 83 kbit/s. 4. en rgle gnrale, cela baisse lefcacit, car le rapport entre donnes utiles et enttes baisse ; lautre problme est que les datagrammes UDP sont perdus si taille < MTU, et quil y a en gnral plusieurs chantillons audio dans un datagramme UDP. 5. 8000 bytes par seconde, donc 400 bytes correspond 50 ms.

Le central Asterisk
Conguration de base 1. ps auxw | grep asterisk 2. /etc/init.d/asterisk stop; /etc/init.d/asterisk start 3. stop when convenient 4. ls /etc/rc?.d/S*asterrisk 5. doc 6. doc Prise en compte de nouvelles congurations 1. asterisk -rc 2. sip show peers, show channels, show channel XXX, show codecs 3. reload extensions http://fr.wikipedia.org/wiki/Asymmetric_Digital_Subscriber_Line# Latence_de_transmission
1

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Cours de base Asterisk

Chapitre 5: Corrig des exercices p. 68

Interfaces centraux et quipements 1. manipulation 2. manipulation 3. manipulation Traitement derreur 1. manipulation 2. exten => _9.,1,Dial(Zap/g1/10740${EXTEN:1}) 3. exten => _00.,Dial(Sip/${EXTEN:2}@telco) exten => _0.,Dial(Sip/41${EXTEN:1}@telco) 4. exten => 34,1,Dial(Sip/200&Sip/201|30|r) exten => 34,2,Dial(Sip/203) Applications standard 1. manipulation 2. manipulation 3. manipulation 4. manipulation Donnes contextuelles 1. manipulation 2. manipulation

Rsoudre les problmes


Augmentation du niveau de debugging 1. manipulation 2. manipulation tcpdump et Ethereal (Wireshark) 1. pri debug span N, pri no debug 2. sip debug

c 2006 CRIL - Marc SCHAEFER

Disponible sous licence GFDL, invariant: les 2 premires pages

Vous aimerez peut-être aussi