Académique Documents
Professionnel Documents
Culture Documents
EPFL
C+R
25 avril 2008
Informatique libre
RELEASE
Revision : 1.6
Marc SCHAEFER Ing. inf. dipl. EPFL Conseil et ralisations en informatique libre (CRIL) http://www.cril.ch/
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
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
Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service '
p. 5
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
p. 6
nautorise pas plus de connexions que possible. Des exemples de dimensionnement seront proposs dans le chapitre sur les codecs.
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
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 ?
Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service '
p. 9
&
Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service '
p. 10
&
Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Qualit de service '
p. 11
&
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/
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)
&
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 -
&
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
&
p. 16
11
&
Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Protocoles de gestion de session et audio '
p. 17
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.
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
&
Cours de base Asterisk Chapitre 1: Introduction la technologie voix-sur-IP Protocoles de gestion de session et audio
p. 19
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
&
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
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
&
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)
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
&
p. 25
'
dterminer. une option est dutiliser un VPN sous forme de tunnel pour transporter le tout sans interaction avec le rewall.
18
&
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
&
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
'
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
'
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
&
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
&
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.
&
p. 32
'
25
&
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
p. 34
'
&
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
p. 36
'
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.
p. 37
'
&
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
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
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
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
p. 42
'
33
&
/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
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.
p. 44
'
34
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
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
p. 47
'
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
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 : &)
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
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.
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
&
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})
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.
p. 54
'
41
&
State Appl. 1 ) 1 )
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
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}")
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.
'
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.
p. 59
'
44
&
p. 60
'
45
p. 61
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)
p. 62
'
p. 63
'
&
p. 64
'
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.
p. 65
'
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)
'
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
&
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
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