Skip to content

Configuration_VoIP

Abderrachid BELLAALI edited this page May 17, 2022 · 11 revisions

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

⚠️ Chaque modification dans la configuration devra être suivie par la commande 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 = Direction

Comme 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


  1. Entrée dans le container :
docker exec -ti CONTAINER_ID /bin/bash
  1. Ouvrir CLI asterisk :
asterisk -rvvvv
  • v : va donner beaucoup plus de détails (baveux)
  1. Dans le CLI :
sip show peers 
sip show users
sip reload
dialplan reload

Clone this wiki locally