Asterisk Faisceau SIP

De NCad Wiki
Aller à la navigation Aller à la recherche
  • Pour connecter l'IPBX privé à un opérateur de téléphonie sur IP, il est nécessaire de définir un faisceau SIP dans la configuration d'Asterisk. Cette déclaration s'effectue au niveau du fichier de configuration sip.conf.

Le terme faisceau peut s'employer aussi par le terme trunk qui est son équivalent anglais.

Prérequis

  • Vous devez disposez d'un compte SIP auprès d'un fournisseur de téléphonie sur IP.
  • Dans notre cas, nous disposons d'un compte SIP auprès d'un opérateur de téléphonie avec les paramètres suivants :
    • Login SIP : 0033512345678
    • Mot de passe : motdepassesip
    • Proxy SIP : proxy.operateur-sip.com

Configuration

Réception des appels

  • Pour récupérer les appels reçus depuis le faisceau SIP, il est nécessaire de procéder à un enregistrement d'Asterisk auprès de l'opérateur. Cette enregistrement SIP s'effectue via la ligne register.
register => 0033512345678:motdepassesip@proxy.operateur-sip.com/7122
  • Avec :
    1. 0033512345678 : le login du compte SIP.
    2. motdepassesip : le mot de passe associé au compte SIP.
    3. proxy.operateur-sip.com : le serveur SIP de l'opérateur VoIP qui fournit l'enregistrement.
    4. 7122 : l'extension locale sur laquelle devront être acheminés les appels entrant en provenance de ce compte.
  • Pour appliquer les paramètres il faut rafraîchir la configuration d'Asterisk.

sudo service asterisk reload

  • Ensuite, pour vérifier qu'Asterisk s'enregistre bien auprès du fournisseur VoIP, on ouvre un CLI Asterisk via la commande asterisk -r puis on exécute la commande sip show registry qui retournera l'état des faisceaux SIP.

tournesol@asterisk:~$ sudo asterisk -r
Asterisk 13.6.0, Copyright (C) 1999 - 2014, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 13.6.0 currently running on tournesol (pid = 10380)
tournesol*CLI> sip show registry
Host dnsmgr Username Refresh State Reg.Time
proxy.operateur-sip.com:5060 N 0033512345678 105 Registered Wed, 11 Nov 2015 14:40:10
1 SIP registrations.

  • A cette étape, Asterisk réceptionne bien les appels reçus via le faisceau SIP qui est à l'état Registered. Dans la déclaration de la ligne register, nous avions définit l'extension 7122. Si nous reprenons le contenu du fichier extensions.conf d'Asterisk, voici ce qui avait été définit :
[general]
static=yes
writeprotect=no
autofallthrough=yes
clearglobalvars=no
priorityjumping=no
language=fr

[globals]
CONSOLE=Console/dsp
IAXINFO=guest
TRUNK=Zap/g2
TRUNKMSD=1

[glx]

; Appels locaux

exten => _7XXX,1,Answer()
exten => _7XXX,n,Ringing()
exten => _7XXX,n,Wait(1)
exten => _7XXX,n,Dial(SIP/${EXTEN})
exten => _7XXX,n,Hangup()
  • Ainsi, lorsque l'appel entrant sera acheminé sur l'extension 7122, cette extension sera en réalité interprétée comme ceci :
exten => _7122,1,Answer()
exten => _7122,2,Ringing()
exten => _7122,3,Wait(1)
exten => _7122,4,Dial(SIP/7122)
exten => _7122,5,Hangup()
  • Tous les appels entrant en provenance de notre faisceau SIP feront sonner le poste 7122. En résumé, notre numéro 05 12 34 56 78 est attribué au poste interne 7122.

Acheminer des appels sur le réseau publique

  • Dans le fichier de configuration sip.conf, il sera nécessaire de définir un nouveau compte SIP (comme pour la création d'un compte SIP local pour le poste interne 7122). Cependant, ce compte SIP sera de type peer dans la mesure où ce compte fera office de passerelle sortante vers le réseau téléphonique publique.
[OUT-7112]
disallow=all
type=peer
host=proxy.operateur-sip.com
context=glx
language=fr
insecure=invite,port
username=0033512345678
secret=motdepassesip
nat=yes
canreinvite=no
dtmfmode=inband
video=no
restrictcid=no
amaflags=default
allow=alaw
  • Maintenant, il faudra identifier les appels qui seront acheminés via ce compte SIP. Dans notre cas, nous souhaitons y acheminer tous les appels nationaux avec pour préfixes : 01 - 02 - 03 - 04 - 05 - 06 - 07 et 09. Nous n'achemineront pas les numéros courts, les numéros spéciaux, les numéros d'urgence et les numéros internationaux dans cet exemple.
  • Dans le fichier extension.conf nous allons créer l'extension qui permettra l'acheminement de ce type d'appels :
0[0-7,9]XXXXXXXX,1,Answer()
0[0-7,9]XXXXXXXX,n,Wait(1)
0[0-7,9]XXXXXXXX,n,Dial(SIP/${EXTEN}@OUT-7122)
0[0-7,9]XXXXXXXX,n,Hangup()
  • Avec :
    1. 0[0-7,9]XXXXXXXX : regexp qui inclut tout les numéro commençant par 01 - 02 - 03 - 04 - 05 - 06 - 07 et 09 et suivit de 8 chiffres.
    2. ${EXTEN} : variable contenant le numéro composé par l'appelant.

Pour un équipement en production, n'oubliez pas d'intégrer les appels vers les numéros d'urgence. Ces appels doivent être acheminés depuis un numéros fixe rattaché à l'adresse du foyer ou de la société où est installé l'équipement.

  • Pour appliquer ces changements, il est nécessaire de rafraîchir la configuration d'Asterisk.

sudo service asterisk reload

  • Pour illustrer l'utilisation de l'extension nouvellement créée, voici comment elle sera interprétée, si nous souhaitons appeler le numéro de téléphone 01 23 45 67 89 :
0123456789,1,Answer()
0123456789,2,Wait(1)
0123456789,2,Dial(SIP/0123456789@OUT-7122)
0123456789,2,Hangup()