|
|
|
Table des matières
Configurer le PBX Asterisk pour la FreephonieIntroductionAsterisk est un PBX OpenSource capable, entre autres, d’interconnecter des liens VoIP H323, IAX ou encore SIP. Nous allons voir dans ce petit document comment connecter un serveur Asterisk avec le service Freephonie en deux coups de cuiller à pot. Configuration du firewallLe NATUn problème fréquent lors du déploiement d’une infrastructure utilisant le protocole de diffusion media RTP, le protocole en charge des flux voix après la signalisation prise en charge par SIP, est de pouvoir correctement lui faire traverser votre passerelle. Un symptôme classique: vous pouvez composer, le téléphone IP sonne “de l’autre côté”, mais personne n’entend rien. Il est très probable que la fonctionnalité NAT de votre passerelle ne soit pas adaptée. Voici les règles nécessaires, pour un système BSD UNIX utilisant pf(4) et un système GNU/Linux utilisant iptables(8) : Activation du NAT “RTP-compatible” dans le pf.conf ext_if="fxp1" lan_net="192.168.1.0/24" # LAN privé nat on $ext_if from $lan_net to any -> $ext_if static-port # ici, la feature magique est "static-port" Activation du NAT “RTP-compatible” pour iptables (on considère que eth1 est l’interface publique) # traffic SIP /sbin/iptables -t nat -A PREROUTING -m udp -p udp --dport 5060 -i eth1 -j DNAT --to-destination ip.lan /sbin/iptables -A FORWARD -i eth1 -o ip.publique -m udp -p udp --dport 5060 -d ip.lan -j ACCEPT # traffic RTP /sbin/iptables -t nat -A PREROUTING -m udp -p udp --dport 10000:20000 -i eth1 -j DNAT --to-destination ip.lan /sbin/iptables -A FORWARD -i eth1 -o ip.publique -m udp -p udp --dport 10000:20000 -d ip.lan -j ACCEPT Le firewallingAfin de s’assurer que votre système de firewalling ne va pas simplement bloquer le traffic SIP et RTP, vous allons ajouter quelques règles d’acceptation : Ouverture des ports relatifs à la VoIP Free dans un pf.conf
# SIP (TCP)
voip_tcp = "5060"
# SIP, RTP
voip_udp = "{5060, 9999 >< 20001}"
pass in on $ext_if inet proto tcp from any to any port $voip_tcp flags S/SA keep state
pass in on $ext_if inet proto udp from any to any port $voip_udp keep state
pass out quick all keep state
Ouverture des ports relatifs à la VoIP Free avec iptables /sbin/iptables -A INPUT -p udp --dport 5060 -j ACCEPT /sbin/iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT InstallationAsterisk est présent dans la plupart des systèmes de packaging des Unix et distributions Linux, voici quelques exemples d’installation sur quelques systèmes Unix libres connus :
ConfigurationAttention, l’emplacement des fichiers de configuration diffère selon le système de packaging utilisé, par exemple sous FreeBSD, ils se trouvent dans /usr/local/etc/asterisk, sous NetBSD, dans /usr/pkg/etc/asterisk, et pour les systèmes Linux, généralement dans /etc/asterisk. Rendez-vous dans le repertoire ou se trouvent les fichiers de configuration d’Asterisk et sauvegardez les fichiers sip.conf et extensions.conf : # mv sip.conf sip.conf.bkp # mv extensions.conf extensions.conf.bkp sip.confNous allons maintenant créer le fichier sip.conf qui servira à enregistrer notre PBX sur freephonie.net : [general] defaultexpirey=1800 dtmfmode=auto qualify=yes register => 0870.....:**********@freephonie.net disallow=all allow=ulaw allow=alaw allow=speex [freephonie-out] ; on déclare le point d'accès SIP pour les appels sortants type=peer host=freephonie.net username=0870...... fromuser=0870...... secret=*********** nat=yes [freephonie-in] ; Et pour les appels entrants type=peer context=fromfree host=freephonie.net [moi] ; on déclare le client SIP (par exemple pour connecter un softphone sur le PBX) type=friend username=moi secret=_____________ host=dynamic context=maison nat=yes ; je peux me connecter sur mon PBX depuis d'autres réseaux "nattés" [toi] ; un autre client SIP type=friend username=toi secret=~~~~~~~~~~~ host=dynamic context=maison Remplacez par votre mot de passe freephonie, 0870...... par votre numéro de téléphone, _ et ~~~~~~~ par des mots de passe choisis par vous même. extensions.confNous allons maintenant configurer le coeur du système: le dialplan. C’est dans ce fichier qu’on va définir quelle “ligne” nous allons utiliser lorsqu’on numéro est composé.
[maison] ; on déclare le contexte local qu'on a spécifié dans le sip.conf
; numéros "locaux"
exten => 10,1,Dial(SIP/moi) ; quand on compose le 10, le softphone branché sur le lien "moi" sonnera
exten => 11,1,Dial(SIP/toi) ; quand on compose le 11, le softphone branché sur le lien "toi" sonnera
; numéros externes
; quand on compose un numero qui commence par 9,on utilise le lien "freephonie"
;et on passe le numero au peer en ôtant le premier digit.
exten => _9.,1,Dial(SIP/freephonie-out/${EXTEN:1})
[fromfree] ; on déclare le contexte de reception d'appels depuis freephonie
exten => s,1,Dial(SIP/moi&SIP/toi)
; et on fait sonner les deux softphones, si on avait voulu faire sonner un seul client sip,
; on aurait écrit exten => s,1,Dial(SIP/moi)
DémarrageNous y sommes presque ! reste maintenant à démarrer Asterisk. Pour vos premiers tests, lancez-le en mode debug + console de la façon suivante : # asterisk -cvvv Une fois dans la console, activez le debugging : CLI> set debug 25 CLI> set verbose 25 CLI> sip debug Enregistrez un client SIP, par exemple Xten avec les informations du client [moi], en spécifiant comme SIP proxy et realm le nom d’hote de votre serveur asterisk. Vous devriez voir les messages de debug suivants : Registered SIP 'moi' at 192.168.0.8 port 45036 expires 1800 Ce qui signifie que votre client SIP est bien enregistré sur votre serveur Asterisk. Verifiez maintenant que votre PBX est bien enregistré sur freephonie.net en tapant : CLI> sip show peers Si tout se passe bien vous devriez voir une ligne du type : freephonie/0870...... 212.27.52.5 D N 5060 OK (57 ms) C’est prêt ! Informations complémentairesCe petit tuto ne présente qu’une infime partie de ce dont est capable le PBX Asterisk, je vous invite à consulter les liens suivants afin d’imaginer le nombre de trucs hallucinants que vous êtes désormais en mesure de faire avec votre simple ligne téléphonique : © Freephonie.org 2006 Déclaration CNIL n°1107070 Powered by PhpBB - Traduction par : phpBB-fr.com Portail : GF-Portail |