-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration_VoIP
La configuration d'Asterisk s'articule sur les fichiers de configuration suivants (situé dans la directory /etc/asterisk/) :
-
sip.conf: Configuration globale d'Asterisk
-
users.conf: Configuration des utilisateurs
-
extensions.conf: Configuration du Dialplan
-
voicemail.conf: Configuration des messageries
reload (dans la console d'Asterisk).
le fichier docker-compose pour lancer facilement le service, ont peut le faire sans mais ici c'est clairement pour facilité :
version: "2"
services:
voip:
build: ./VoIP/.
ports:
- "5060:5060/tcp"
- "5060:5060/udp"
- "16001:16001/udp"
- "16002:16002/udp"
- "16003:16003/udp"
volumes:
- ./VoIP/fichiers/users.conf:/etc/asterisk/users.conf
- ./VoIP/fichiers/extensions.conf:/etc/asterisk/extensions.conf
- ./VoIP/fichiers/sip.conf:/etc/asterisk/sip.conf
- ./VoIP/fichiers/voicemail.conf:/etc/asterisk/voicemail.conf
container_name: voip
Le fichier sip.conf :
; configuration globale d'Asterisk
[general]
language=fr ; Langage par défaut pour tous les utilisateurs
udpbindaddr=0.0.0.0 ; Ecoute UDP sur toutes les interfaces sur le port
tcpenable=no ; désactiver connexions TCP
context=incoming
allowguest=yes ; autorise les appels depuis un autre domaine
srvlookup=yes ; Activer la recherche DNS pour les appels sortants
externip=176.96.231.207 ; Adresse IP du VPS (Public)
localnet= 192.168.0.1
localnet= 176.96.231.207
bindport=5060
videosupport = no
tlsenable=no
Le fichier users.conf dans lequel nous allons configurer les différents utilisateurs et leurs numéros.
[template](!) ; Nom du template . Le « ! » indique qu’il s’agit d’un Template
type=friend ; Type d'objet SIP (friend = utilisateur)
host=dynamic ; L’utilisateur n’est pas associé à une IP fixe
dtmfmode=rfc2833 ; Mode DTMF
disallow=all ; Interdit tous les codecs
allow=h264 ; Autorise le codec ulaw
nat=yes ; L'utilisateur ne se trouve pas derrière un NAT
hassip=yes ; L’utilisateur possède un compte SIP
hasiax=no ; L’utilisateur ne possède pas de compte iax
callwaiting = yes ; L’utilisateur peut mettre des appels en attente
transfer=yes ; L’utilisateur peut transférer des appels
canpark=yes ; L’utilisateur peut mettre des appels dans le parking
hasvoicemail=yes ; L’utilisateur possède une boîte vocale
qualify=yes
threewaycalling=yes
[100](template) ; Numéro SIP et Template utilisé
fullname = Directeur ; Nom complet de l'utilisateur us
username = directeur ; Nom d'utilisateur
secret=XXXX ; Mot de passe
mailbox = 100 ; N° de boîte vocale
context=Direction ; Contexte de l’utilisateur
[200](template)
fullname = Secretaire
username = secretaire
secret = XXXX
mailbox = 200
context = DirectionComme vous pouvez le voir ci-dessus, nous utilisons un Template pour les différents utilisateurs. Nous attribuons un nom, un mot de passe et et un numéro à chaque utilisateur ainsi qu'une boîte vocale.
Le fichier extensions.conf où nous configurerons ce qu'il faut faire lors d'un appel.
[Direction]
exten => _1[0-8]X,1,Dial(SIP/${EXTEN},40,tT)
exten => _1[0-8]X,2,Voicemail(${EXTEN}@Direction_boite)
exten => 1,1,Answer()
exten => 1,2,VoiceMailMain(${CALLERID(num)}@Direction_boite)
exten => _3XX,1,Goto(Compta,${EXTEN},1)
exten => _4XX,1,Goto(Atelier,${EXTEN},1)
exten => _5XX,1,Goto(Commercial,${EXTEN},1)
; Appel à l'exterieur
exten => _.,1,Dial(SIP/${EXTEN},20,t)
[incoming]
exten => contact,1,Goto(Direction,200,1)
Le fichier voicemail.conf où nous configurerons les boîtes vocales.
[general]
maxmsg=100 ; Nombre max de message sur la Voicemail. Si elle est pleine, il n'est pas possible de rajouter des messages
maxsecs=0 ; Durée max d'un message. ("0" = pas de limite)
minsecs=2 ; Durée minimum d'un message
maxlogins=3 ; Nombre max d'erreur de login
review=no ; Permet à l'appelant de réécouter son message avant de le transmettre à la Voicemail
saycid=no ; Dicte le numéro de l'appelant avant de jouer le message qu'il a laissé
[Direction_boite]
100 => 1234, Direction
200 => 1234, Secretaire
Comment créé et le lancer ?
docker-compose up -d
- Entrée dans le container :
docker exec -ti CONTAINER_ID /bin/bash
- Ouvrir CLI asterisk :
asterisk -rvvvv
-
v: va donner beaucoup plus de détails (baveux)
- Dans le CLI :
sip show peers
sip show users
sip reload
dialplan reload