← Retour aux projets
Projet — Infrastructure réseau / VoIP

Serveur de téléphonie IP — Asterisk

Monter de zéro un standard téléphonique complet : compilation du serveur Asterisk sur Debian, configuration des comptes SIP et du plan de numérotation, puis raccordement de vrais téléphones IP (Yealink, Aastra) et d'un softphone (MicroSIP).

Contexte — Projet de formation OS — Debian 12 Protocole — PJSIP / SIP, UDP 5060

01Architecture

Serveur AsteriskVM Debian 12 — 192.168.11.41
Yealink T54WPoste 102 — 192.168.11.48
Aastra 6755iPoste 101 — 192.168.11.81
Softphone MicroSIPPoste 103
CodecsG711 ulaw / alaw

02Préparation du serveur

Mise à jour du système puis installation des dépendances nécessaires à la compilation d'Asterisk :

apt update
apt upgrade -y
apt install -y git curl wget sudo vim net-tools build-essential
apt install -y linux-headers-$(uname -r) libjansson-dev libxml2-dev \
  libsqlite3-dev uuid-dev libssl-dev libedit-dev libncurses5-dev

03Compilation d'Asterisk 20 (LTS)

cd /usr/src
wget https://downloads.asterisk.org/pub/telephony/asterisk/asterisk-20-current.tar.gz
tar -xvzf asterisk-20-current.tar.gz
cd asterisk-20*/
contrib/scripts/install_prereq install
./configure
make menuselect   # activer chan_pjsip et chan_sip dans Channel Drivers
make -j$(nproc)
make install
make samples
make config

Création de l'utilisateur système dédié, puis activation du démarrage automatique :

useradd -r -d /var/lib/asterisk -s /sbin/nologin asterisk
mkdir -p /var/run/asterisk
chown asterisk:asterisk /var/run/asterisk
systemctl enable asterisk
systemctl start asterisk
systemctl status asterisk

04Configuration PJSIP

Chaque poste nécessite trois sections dans pjsip.conf — endpoint, auth, aor — qui partagent le même nom, PJSIP les distinguant par le champ type :

[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0

[101]
type=endpoint
context=internal
disallow=all
allow=ulaw
allow=alaw
auth=101
aors=101
identify_by=username
direct_media=no
rtp_symmetric=yes

[101]
type=auth
auth_type=userpass
username=101
password=1234

[101]
type=aor
max_contacts=1

Le poste 102 est configuré à l'identique. Le paramètre rtp_symmetric=yes a résolu un souci de son unidirectionnel rencontré lors des premiers tests.

05Plan de numérotation

Dans extensions.conf, le contexte internal définit qui peut appeler qui :

[internal]
exten => 101,1,Dial(PJSIP/101,20)
exten => 101,n,Hangup()
exten => 102,1,Dial(PJSIP/102,20)
exten => 102,n,Hangup()

Rechargement à chaud dans la console Asterisk avec dialplan reload.

06Vérification

asterisk -rvvv
pjsip show endpoints
pjsip show aors

Avant l'enregistrement des téléphones, les postes apparaissent en Unavailable — c'est normal, ils passeront à Available une fois les combinés raccordés.

07Raccordement des téléphones physiques

Yealink T54W (poste 102)

Aastra 6755i (poste 101)

Softphone MicroSIP (poste 103)

Résultat

Les trois postes (101, 102, 103) s'enregistrent correctement et peuvent s'appeler entre eux. Vérification finale via pjsip show endpoints : les trois lignes affichent Available.

AsteriskPJSIP / SIPDebianYealinkAastraMicroSIP