Mission 3 : Voip - SuperKumKum/SysAdmin-ll_Project GitHub Wiki

VoIP : Asterisk

Installation de l'image Docker

Utilisation de l'image de dougbtv/docker-asterisk https://github.com/dougbtv/docker-asterisk

Utilisation d'un docker-file

version: '2'
services:
 asterisk:
  image: andrius/alpine-asterisk:11
  container_name : asterisk
  ports:
   - "10000:20000/udp" # RTP need long-range ports
   - "5060:5060/udp" # SIP
   - "5036:5036/udp" # IAX2 (dans le cadre de communications externes)
  volumes:
   - /mnt/docker/asterisk:/etc/asterisk
 - /mnt/docker/asterisk/sounds:/var/lib/asterisk/sounds

Configuration du fichier sip.conf

Le fichier sip.conf permet une configuration plus "générale" du protocole utilisé par Asterisk qui est SIP dans notre cadre nous avons uniquement à définir :

  • L'addresse IP interne et externe de Asterisk
  • Le port du prococole
  • L'activation du protocole de transport UDP
[general]
language=fr
externip=151.80.119.127 
localnet=151.80.119.127 
localnet=172.17.0.0
bindport=5060
updbindaddr=0.0.0.0
tcpbindaddr=0.0.0.0
transport=udp
srvlookup=yes

Configuration du fichier users.conf

Le ficher users.confpermet la création des utilisateurs (numéro, nom, id).

  • Création d'options générales s'appliquant à toutes les utilisateurs
[general]
hasvoicemail = yes		; possède une boite vocale
hassip = yes			; utilise sip 
hasiax = yes			; utilise iax
callwaiting = yes		; mettre un appel en attente
threewaycalling = yes		; appel 2 postes
callwaitingcallerid = yes
transfer = yes			; peut transférer l'appel 
canpark = yes			; mettre les appels dans un parking
cancallforward = yes		; peut rappeler
callreturn = yes
callgroup = 1
pickupgroup = 1
nat = yes 			; se trouve derriere un nat
qualify = tes			; permet le monitoring
  • Création d'un profil pouvant s'appliquer aux utilisateurs, il sert de template pour éviter à devoir facilité la création d'utilisateurs avec certaines options
; syntaxe [base] (!)
[base](!)
type = friend			; permet l'appel dans les 2 sens (réception et appel)
host = dynamic			; host dynamique
dtmfmode = rfc2833		; type de rfc utilisé
disallow = all			; désactive tous les codes audio (inutiles) 
allow = ulaw			; active le codec ulaw 
secret = password		; applique un mot de passe pour tous les comptes (pas conseillé mais wallah)
  • Création type d'un utilisateur
; SIP Login pour la direction 
; Créée un user "directeur" qui ne peut etre appeler que par la secrétaire  
; Numéro d'appel unique 200.
[200](base) 
fullname = Bill Gates		; nom complet de l'utilisateur (qui sera affiché à l'appel) 
username = bigboss 		; id connexion interface web (avec le secret défini dans base)
defaultuser = bigboss 
context = direction		; définisdans le fichier extensions.conf

💡​ Voir le fichier users.conf

  • Création du Dial Plan via le fichier extensions.conf
[direction]
exten => 300,1,Dial(SIP/300, 15) ; appel vers secrétaire pdt 15;
exten => 300,2,VoiceMail(${EXTEN}@secretaire) ; GoTo boite vocal après les 15s 
exten => _1XXX,1,Dial(SIP/${EXTEN}, 15) ; appel vers tous les employés
exten => _1XXX,2,VoiceMail(${EXTEN}@ouvrier)
exten => 25,1,Dial(SIP/1101&SIP/1201, 15); numéro commun vers les bureaux des comptables
exten => 25,2,VoiceMail(${EXTEN}@comptables)
exten => _11XX,1,Dial(SIP/${EXTEN}, 15) ; appel vers b1 comptables
exten => _11XX,2,VoiceMail(${EXTEN}@comptable)
exten => _12XX,1,Dial(SIP/${EXTEN}, 15) ; appel vers b2 comptable
exten => _12XX,2,VoiceMail(${EXTEN}@comptable)
exten => _13XX,1,Dial(SIP/${EXTEN}, 15) ; appel vers tous les commerciaux
exten => _13XX,2,VoiceMail(${EXTEN}@market)

exten => 20,1,VoiceMailMain(${CALLERID(num)}@direction) ; n° boite vocal direction

💡​ Voir le fichier extensions.conf

  • Lien vers la boite vocale avec le fichier voicemail.conf

💡​ Voir le fichier voicemail.conf

Ajout des config au DNS

Pour permettre la connexion des utilisateurs via un nom de domaine, il faut modifier notre dns bind et y ajouter ces lignes :

; asterisk 
sip.wt7.ephec-ti.be.	IN	A	151.80.119.127
_sip._udp.wt7.ephec-ti.be.	IN	SRV	0 0 5060 sip.wt7.ephec-ti.be.
_sip._tcp.wt7.ephec-ti.be.	IN	SRV	0 1 5060 sip.wt7.ephec-ti.be.

Configuration IAX.conf pour communications externes

TODO ....

Configuration d'un client SIP

  • Utilisation de X-LITE
  • Ajout d'un compte
    X-Lite_config
  • Lorsque le compte est connecté, nous avons une fenêtre qui ressemble à ceci : Success
⚠️ **GitHub.com Fallback** ⚠️