VitalPBX
Sommaire
Release Note
Trunk SIP
SEWAN
Information communiqué par l'opérateur SIP
Il faut demander à celui ci de définir le plan de numérotation en national (non international)
Login: trunkyyyyy@test.sewan.eu Mot de passe: PASSzzzzz Information du serveur : 37.97.65.78 - trunkfsc11.sewan.fr Port d'authentification : 5070 [ ] Durée du bail REGISTER : 600 secondes STUN Server (optionnel) : stun.sewan.fr
SDA : 0351123456
Configuration du trunk
Se rendre sur l'interface VitalPBX
PBX >> External >> Trunks
Configurer comme l'image ci dessous
Le registrar doit avoir ce format
Login:Password@serveur:portSIP
Exemple:
trunkyyyyy@test.sewan.eu:PASSzzzzz@37.97.65.78:5070
Pour information, les fichiers de configurations auto-généré:
/etc/asterisk/vitalpbx/sip__50-1-trunks.conf
[trunk](p11) context=trk-1-in description=Trunk_sip_Sewan dtmfmode=rfc2833 allow=!all,alaw host=37.97.65.78 port=5070 secret=PASSzzzzz insecure=port,invite defaultuser=trunkyyyyy remotesecret=PASSzzzzz fromdomain=test.sewan.eu qualify=yes type=peer context=trk-1-in-custom
/etc/asterisk/vitalpbx/sip__20-1-registers.conf
[general](+) register => trunkyyyyy@test.sewan.eu:PASSzzzzz@37.97.65.78:5070
Appel Entrant
SEWAN a la particularité d'envoyer le DID (SDA) dans le champs TO de la requête SIP.
Bien qu'il existe une option pour le recuperer depuis la GUI il s'avere qu'a ce jour ça ne peux fonctionner dans notre cas.
Voir sujet sur le forum: https://community.vitalpbx.org/forums/topic/incoming-call-problem-2/
La solution de contournement est la suivante
créer un fichier custom
nano /etc/asterisk/vitalpbx/extensions__50-1-dialplan_custom.conf
Ajouter le dialplan ci-dessous
; ********************************************************************************* ; @Date : Sun Apr 18 12:54:49 GMT 2021 ; @Document : extensions__50-1-dialplan_custom.conf ; @Author : Sébastien LE MOAL <slemoal@tiscom.fr> ; @Platform : VitalPBX 3.0.6-2 ; ********************************************************************************* [trk-1-in-custom] exten => _s,1,NoOp(Incoming call through: Trunk_sip_Sewan) same => n,Set(DID=${CUT(CUT(SIP_HEADER(To),@,1),:,2)}) same => n,Goto(trk-1-in,${DID},1)
Mettre les droits d’exécution
chmod +x /etc/asterisk/vitalpbx/extensions__50-1-dialplan_custom.conf
Dans l’onglet avancé du trunk, ajouter le nouveau context dans Custom Settings
type = peers parameter = context value = trk-1-in-custom
Cette procédure doit être valable pour tout les opérateurs SIP qui indique le DID dans le champs TO (comme OVH)
Route entrante
SDA
Si joint la configuration d'une SDA sur 10 chiffres (format envoyé par SEWAN)
Format standard:
Etsi: 9 chiffres VN6: 6 chiffres VN4: 4 chiffres
Route par défaut
Il est possible de créer une règle par défaut, afin de ne pas perdre d'appel si la SDA n'est pas renseigné.
Route Sortante
PBX >> External >> Outbound Routes
Afin de conserver de la souplesse au niveau des routes sortante, nous allons créer 5 routes:
- Urgence
- National
- GSM
- Spéciaux
- International
1 - Urgence
Pattern:
1[579] 11[0-59] 116XXX 19[167]
2 - National
Pattern:
0[1-59]XXXXXXXX
3 - GSM
Pattern:
0[67]XXXXXXXX
4 - Spéciaux
Pattern:
08XXXXXXXX 118XXX [13]XXX
5 -International
Pattern:
_00X.
ou pour limiter à l'union européenne
_00[34].
Restriction d'appel
Règle de restriction d'appel
PBX >> Class of Service >> Dialing Restriction rules
Nous allons créer 4 règles de discrimination:
- Urgence
- National
- GSM
- Spéciaux
L'international est joignable lorsque qu'aucune restriction n'est appliqué, il n'y a donc pas besoin de la créer.
1 - Urgence
Pattern:
118XXX 0XXXXXXXXX _00X. [13]XXX
2 - National
Pattern:
118XXX 0[678]XXXXXXXX _00X. [13]XXX
3 - GSM
Pattern:
0[67]XXXXXXXX
4 - Spéciaux
Pattern:
08XXXXXXXX 118XXX [13]XXX
Classe de Service
PBX >> Class of Service >> Class of Service
Nous allons affecter les Regle de restriction d'appel à des Classe de Service
1 - Urgence
2 - National
3 - GSM
4 - Spéciaux
5- International
Cette règle existe et s'appelle ALL, nous allons simplement modifier sa description
Affecter une restriction à un utilisateur
PBX >> Extensions >> Extensions
Sélectionner l'extension sur la quelle vous souhaitez affecter une discrimination
Et choisissez dans le menu déroulant la classe à lui affecter.
DynHost
Afin d'assurer une télémaintenance ou service externe dans le cas ou le client dispose d'une IP public dynamique, il est possible d'utiliser le service Dynhost d'OVH dans le cadre de l'abonnement au domaine tiscom.fr
Configuration OVH
Se rendre sur la page d'administration: https://www.ovh.com/manager/
Ajouter un DynHost
Avant de pouvoir utiliser le DynHost, vous devez le déclarer dans l’interface client OVH. Pour cela sélection le domaine dans lequel vous souhaitez déclarer votre DynHost.
Cliquez ensuite sur l’onglet DynHost. Cet onglet vous affiche les DynHost déjà déclaré ainsi que les adresses IP courantes. Pour créer votre DynHost cliquez sur Ajouter un DynHost (à droite).
La fenêtre suivante s’affiche, choisissez le sous-domaine voulu et entré l’IP 0.0.0.0. Cette adresse sera mise a jour par le script une fois celui-ci configuré.
Créer un identifiant DynHost
Vous devrez maintenant créer un utilisateur ayant le droit de mettre à jour votre Dynhost précédemment créé. Pour cela cliquer sur Gérer les accès de la page précédente
cliquer sur Créer un identifiant, la popup suivante s’ouvre.
Spécifiez un suffixe d’identifiant, le nom de domaine que vous avez spécifié tout à l’heure ou * pour autoriser tout les sous domaine dynhost et le mot de passe.
Enregistrez bien ces informations car elles devront etre renseignés dans le script.
Configuration IPBX
Script DynHost
Se connecter en ssh ou console sur le serveur.
Installer le package "dnsutils" :
yum install dnsutils
Créer le script
nano /var/lib/vitalpbx/scripts/dynhost.sh
Ajouter les lignes suivante:
#!/usr/bin/env sh ######################################################### # Création : Sebastien Lemoal <slemoal@tiscom.fr> # # Modifications : # ###################################################### # Tous droits réservés ###################### # CHANGELOG # ######################################################### # 2021/07 - Script initial - slemoal # ####################################################### ####################################### # Définition des Variables # ##################################### HOST=$(uname -n) # Se change depuis l'interface web "Admin -> Network -> Nom d'hote" LOGIN=domaine-id PASSWORD=LenSuperMotDePasseAutogénéréDuCompteOvh PATH_LOG=/var/log/dynhostovh.log HOST_IP=$(dig +short $HOST A) # Récupérer l'IP du domaine OVH # Récupérer l'IP PUBLIC CURRENT_IP=$(curl ifconfig.me) echo curl "ifconfig.me="$CURRENT_IP if [ -z $CURRENT_IP ] then CURRENT_IP=$(dig +short myip.opendns.com @resolver1.opendns.com) echo curl "dig + short myip.opendns.com="$CURRENT_IP fi CURRENT_DATETIME=$(date -R) ####################################### # Mise à jour du dynhost si besoin # ##################################### if [ -z $CURRENT_IP ] || [ -z $HOST_IP ] then echo "[$CURRENT_DATETIME]: No IP retrieved" >> $PATH_LOG echo "[$CURRENT_DATETIME]: No IP retrieved" else if [ "$HOST_IP" != "$CURRENT_IP" ] then RES=$(curl -m 5 -L --location-trusted --user "$LOGIN:$PASSWORD" "https://www.ovh.com/nic/update?system=dyndns&hostname=$HOST&myip=$CURRENT_IP") echo "[$CURRENT_DATETIME]: IPv4 has changed - request to OVH DynHost: $RES" >> $PATH_LOG echo "[$CURRENT_DATETIME]: IPv4 has changed - request to OVH DynHost: $RES" else echo "L'IP n'a pas changé, pas de mise à jour necessaire" fi echo "HOST_IP="$HOST_IP echo "CURRENT_IP="$CURRENT_IP fi
Donner les droits
chmod +x /var/lib/vitalpbx/scripts/dynhost.sh
Configuration Web GUI
Se connecter en page web à l'interface de l'IPBX
Définir le nom d'hôte
Admin -> Network -> Paramètre réseau
Celui ci doit être identique au sous domaine créer sur OVH
Installer l'Addon Task Manager
Admin -> Add-ons -> Task Manager
Créer un profil Cron
PABX -> Outils -> Profils Cron
Créer une tache Cron
PABX -> Outils -> Task Manager
Bip au démarrage et arrêt
Installation package Beep
cd /tmp/ wget ftp://ftp.pbone.net/mirror/dag.wieers.com/redhat/el7/en/x86_64/dag/RPMS/beep-1.3-1.el7.rf.x86_64.rpm yum localinstall beep-1.2.2-1.el6.rf.x86_64.rpm rm -f beep-1.3-1.el7.rf.x86_64.rpm
Créer le service
nano /etc/init.d/beep
! /bin/sh -e ### BEGIN INIT INFO # Provides: beep # Required-Start: $syslog # Required-Stop: $syslog # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: beep # Description: # ### END INIT INFO # Carry out specific functions (start, stop, restart etc) case "$1" in start) beep -l 75 -f 500 -n -l 75 -f 1000 -n -l 75 -f 2000 -n -l 75 -f 3000 ;; stop) beep -l 75 -f 3000 -n -l 75 -f 2000 -n -l 75 -f 1000 -n -l 75 -f 500 ;; *) echo "Usage: /etc/init.d/beep {start|stop}" exit 1 ;; esac exit 0
Mettre les droits
sudo chmod a+x /etc/init.d/beep
Activer au prochain démarrage
systemctl enable beep.service
Redemarrer
systemctl reboot
Tester
systemctl reboot