https://a.storyblok.com/f/270183/1368x665/61f7aeead8/build-your-own-call-center_asterisk-sip-trunking.png

Créez votre propre centre d'appels en utilisant Asterisk et Vonage SIP Trunking

Publié le October 30, 2024

Temps de lecture : 6 minutes

Introduction

Les centres d'appels sont un aspect important de toute activité impliquant une communication avec les clients. Pour les petites et moyennes entreprises, les centres d'appels peuvent être hébergés en interne afin d'économiser les coûts d'hébergement dans le nuage et de réduire la latence du réseau entre le serveur et les agents du centre d'appels. En outre, cela permet de contrôler entièrement toutes les opérations et de gérer et d'apporter des modifications sans problème.

Dans cet article, nous allons mettre en place une version minimaliste d'un centre d'appel pour composer et recevoir des appels avec un minimum d'exigences.

Aperçu de l'architecture

Le SIP Trunking est une méthode de fourniture de services téléphoniques et de communications unifiées aux clients en utilisant Internet plutôt que les lignes téléphoniques traditionnelles. Le SIP Trunking permet aux entreprises de remplacer les lignes PRI (Primary Rate Interface) traditionnelles et utilise la VoIP (Voice over Internet Protocol) pour gérer leurs communications à un coût bien moindre.

Le SIP Trunking nécessite un fournisseur de troncs SIP (par exemple Vonage) qui est connecté à un système IP-PBX (par exemple Asterisk) pour traiter les appels VoIP. Le système IP-PBX peut être installé et hébergé en interne sans aucune complication. Pour passer un appel téléphonique, un softphone (par exemple Numbers) installé sur un ordinateur est connecté à un système IP-PBX avec un numéro de poste dédié et des informations d'authentification. L'ensemble du système peut être visualisé dans le diagramme suivant :

Diagram of the architecture to implement the call center using Asterisk and Vonage SIP trunkingFig-1.1 Sip trunking architecture overview

Conditions préalables

Pour mettre en place une solution complète de centre d'appel interne, quelques éléments sont nécessaires pour faciliter le processus d'installation et de configuration.

Tout d'abord, vous devrez obtenir une clé API et un numéro de sélection directe à l'arrivée (SDA) auprès de Vonage. Vonage est un fournisseur de communications de premier plan qui donne aux développeurs l'accès aux API pour envoyer de la voix, de la vidéo et des messages avec des fonctionnalités avancées telles que la vérification de la fraude et de l'identité.

Par l'ouverture d'un compte gratuitvous aurez accès à un crédit gratuit et à une documentation pour utiliser les API de Vonage.

Une fois l'inscription terminée, procédez à acheter un numéro de sélection directe à l'arrivée (SDA) avec l'indicatif du pays de votre choix. Ce numéro, également appelé numéro virtuel long de Vonage (LVN), permet aux entreprises d'étendre leur présence locale.

Vous aurez également besoin d'un serveur Linux, de préférence Debian ou Ubuntu, pour héberger l'installation d'Asterisk. Asterisk peut être installé sur un système doté d'un processeur x86 de 1 GHz et de 512 Mo de RAM, mais pour de meilleures performances, un processeur de 3 GHz et 1 Go de RAM sont recommandés.

Pour que les appels VoIP aboutissent, vous devez ouvrir les ports suivants sur le pare-feu :

  • SIP : 5060 (UDP)

  • RTP : 10000 à 20000 (UDP)

Il existe une autre option, mais il est recommandé d'obtenir un nom de domaine ou une adresse IP statique. Ce nom de domaine ou cette adresse IP statique pointera toujours vers le serveur Asterisk pour transférer les appels facilement. Si vous n'avez pas de nom de domaine ou d'adresse IP statique, vous pouvez essayer d'autres options possibles telles que DynDNS ou Duck DNS

Vonage API Account

To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.

Configuration d'Asterisk

Installer le serveur Asterisk

Le serveur Asterisk est très léger et ne nécessite qu'un minimum de matériel sur un serveur Linux. Voici un bref aperçu des commandes pour installer le serveur Asterisk sur Debian 11 (bullseye) :

sudo apt update # updates the package list from the repositories
sudo apt install wget build-essential subversion # install essential tools
cd /usr/src
sudo wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-18-current.tar.gz # download asterisk
sudo tar -xvf asterisk-18-current.tar.gz # extract files
# following set of commands will compile and install asterisk
# with example configuration files
cd asterisk-18*/
sudo contrib/scripts/install_prereq install
sudo ./configure
sudo make
sudo make install
sudo make samples
sudo make config # start asterisk automatically when system boots
sudo ldconfig # updates the system's shared library cache
sudo systemctl start asterisk # starts asterisk service
sudo systemctl enable asterisk # auto-start asterisk at boot time

Configuration du serveur Asterisk

Connectez-vous à votre Account SIP Trunking de Vonage pour obtenir la clé API, par exemple Master (c85.....), et le secret API qui seront utilisés comme nom d'utilisateur et mot de passe SIP. Pour le serveur SIP (Proxy), reportez-vous à la documentation pour choisir le point d'extrémité le plus proche en fonction de votre emplacement (par exemple, sip-eu-3.vonage.com).

Pour se connecter au point d'extrémité SIP de Vonage, connectez-vous en SSH au serveur Asterisk et ajoutez la configuration SIP suivante dans le fichier /etc/asterisk/sip.conf:

[general]
  context=public
  allowguest=no
  udpbindaddr=0.0.0.0
  tcpenable=no
  transport=udp
  srvlookup=yes
  nat=force_rport,comedia
  register => SIP_USERNAME:SIP_PASSWORD@ip.nexmo.com

[outbound]
  type=friend
  context=from-internal
  host=sip-eu-3.vonage.com
  username=SIP_USERNAME
  secret=SIP_PASSWORD
  insecure=port,invite
  canreinvite=no
  disallow=all
  allow=ulaw
  nat=force_rport,comedia

Remplacer SIP_USERNAME et SIP_MOT DE PASSE par vos informations d'identification Vonage.

L'étape suivante consiste à ajouter un plan de numérotation, qui permettra aux utilisateurs de se connecter à Asterisk et de commencer à passer des appels sortants. Pour ce faire, éditez /etc/asterisk/extensions.conf :

[globals]
  TRUNK=SIP/outbound

[from-internal]
; Extension for making an outgoing call
exten => _9.,1,NoOp(Outgoing call through SIP trunk)
 same => n,Dial(${TRUNK}/${EXTEN:1})
 same => n,Hangup()

Dans cet exemple :

  • Les globales définit une variable globale TRUNK qui pointe vers le tronc SIP sortant défini dans le fichier sip.conf.

  • Les de l'intérieur est utilisé pour les postes qui effectuent des appels sortants.

  • Le modèle _9. correspond à tout numéro commençant par 9 et suivi d'un ou plusieurs chiffres. Ce motif est couramment utilisé pour différencier les appels internes et externes.

  • ${EXTEN:1} supprime le 9 de début avant d'envoyer le numéro au trunk SIP.

Configuration du téléphone logiciel

La mise en place d'un softphone nécessite une configuration à la fois du serveur et du client. Tout d'abord, nous allons ajouter un utilisateur de softphone avec l'extension '1001' en ajoutant la configuration suivante dans /etc/asterisk/sip.conf😀

[1001]
  type=friend
  context=from-internal
  host=dynamic
  secret=yourpassword
  disallow=all
  allow=ulaw
  nat=force_rport,comedia

Redémarrez Asterisk pour appliquer tous les changements en utilisant sudo systemctl restart asterisk pour appliquer les changements.

Pour configurer le client, téléchargez un téléphone logiciel tel que Zoiper ou linphone. Une fois le téléchargement terminé, exécutez le programme d'installation sur votre ordinateur et démarrez le téléphone logiciel. Dans l'exemple ci-dessous, nous utilisons l'application de bureau Zoiper comme client. Pour enregistrer le softphone Zoiper auprès du serveur Asterisk, entrez 1001 comme nom d'utilisateur, suivi de votremotdepasse

Zoiper configuration wizard to set up a username and passwordFig-5.1 Zoiper username and passwordEnsuite, indiquez l'adresse IP locale du serveur Asterisk (commençant normalement par 192.168.x.x).

The Zoiper configuraiton wizard to stablish the hostname (IP)Fig-5.2 Zoiper IP configurationCliquez sur ignorer pour les autres options et le client Zoiper s'affichera enfin comme étant connecté :


The screen shows the main screen of ZoiperFig-5.3 Zoiper main screen
Pour tester la configuration des appels sortants, composez un numéro préfixé par un 9, par exemple, pour appeler 18012312312, vous devez composer 918012312312.

Configuration du renvoi d'appel

Jusqu'à présent, nous avons configuré notre téléphone logiciel pour composer des appels sortants. Afin de commencer à recevoir des appels vers le softphone, nous devons configurer le numéro de sélection directe à l'arrivée (SDA) fourni par Vonage, ou parfois appelé numéro virtuel long (LVN), pour recevoir les appels entrants et les transférer vers l'URI SIP hébergé par le serveur Asterisk.

Pour ce faire, rendez-vous sur Tableau de bord Numbers et modifiez le numéro pour voir la fenêtre de configuration. Dans la fenêtre de configuration, sélectionnez SIP sous l'option Forward et entrez l'URI SIP qui est hébergé par le serveur Asterisk et cliquez sur "Save".

The image shows the dialog of the Vonage dashboard to set up a voice call forwardingFig-6.1 Vonage Voice Forwarding

Une fois la configuration sauvegardée, les appels seront automatiquement transférés vers le serveur Asterisk. Pour cela, il faut éditer le fichier /etc/asterisk/extensions.conf pour décrire l'extension qui traitera les appels entrants. Dans cet exemple, nous transférons les appels entrants à l'agent ayant l'extension 1001.

[provider]
exten => _X.,1,NoOp(Someone is calling from provider)  ; dial any number
same => n,Answer()
same => n,Wait(1)
same => n,Dial(SIP/1001,30,r)

Redémarrez Asterisk pour appliquer tous les changements en utilisant sudo systemctl restart asterisk pour appliquer les changements. Désormais, si un appelant compose le numéro LVN (comme décrit dans la Fig-6.1), l'appel sera transféré à l'agent du centre d'appel avec l'extension 1001 à l'aide du softphone.

The image shows Zoiper receiving a phone callFig-6.2 Testing the call center

Configuration supplémentaire

Bien qu'il n'en soit pas question ici, il est possible d'activer d'autres configurations si nécessaire. Par exemple, l'enregistrement des appels, le système IVR, la surveillance et les rapports. Toutes ces fonctions sont activées à l'aide de plans de numérotation. Pour plus de détails, veuillez vous référer à la la documentation d'Asterisk.

Conclusion

Dans cet article, nous avons installé et configuré avec succès une version minimaliste d'Asterisk permettant de gérer les appels et de passer des appels sortants. Cette configuration de serveur peut être étendue pour ajouter des fonctionnalités supplémentaires sans problème. Pour utiliser l'efficacité maximale des services SIP, il est fortement recommandé d'utiliser la solution de trunking SIP élastique, à la demande et compatible avec l'IA, solution de SIP Trunking élastique, à la demande et compatible avec l'IA proposée par Vonage.

Prendre contact

Vous avez des questions ou des commentaires sur ce tutoriel ? Faites-nous part de vos réflexions sur Twitter) ou sur notre canal Slack de la communauté Vonage en citant cet article pour une réponse rapide. Vous pouvez également vous connecter avec moi sur Twitter.

Bonne chance et joyeux SIP Trunking !


Partager:

https://a.storyblok.com/f/270183/400x400/620f535ce9/atique-khan.jpg
Atique Khan

Atique is a computer graduate and proficient Python developer with a passion for exploring new technologies. With a strong background in programming and system engineering, he holds over 10 years of experience in automation, testing, and integration. His interests span single-board computers, software-defined radios, and continuous experimentation with generative AI tools.