Asterisk – Ring Group

Les groupements d’appels, ou Ring Groups sont très utilisés en entreprise.

Le principe est de regrouper plusieurs utilisateurs dans un group, et d’y définir un comportement en cas d’appel.

Voyons les configurations qu’il est possible de mettre en place.

 

1) Qu’est-ce qu’un Ring Group

 

Tout d’abord, définissons un Ring Group.

Comme dit précédemment, il s’agit de regrouper des utilisateurs, pour un comportement bien précis en cas d’appels.

 

Un exemple pourrait être le standard d’une entreprise.

Lors-ce que quelqu’un appelle le numéro d’une entreprise, il va tomber sur l’utilisateur en charge du standard.

Sauf que si cet utilisateur n’est pas disponible, il n’y aura personne pour prendre en charge les appels.

Le scénario idéal serait donc le suivant :

  • Lors d’un appel sur le numéro public, faire sonner le poste 100
  • Si pas de réponse après 10s, faire sonner le poste 101
  • Si pas de réponse après 10s, faire sonner le poste 102
  • Si toujours pas de réponse, renvoyer l’appelant sur la messagerie du poste 100

 

Il serait aussi possible de faire une boucle. C’est à dire refaire sonner le poste 100 si le poste 102 ne répond pas.

 

Autre solution, faire sonner tous les postes en même temps.

Le scénario serait alors le suivant :

  • Lors d’un appel sur le numéro public, faire sonner les postes 100, 101, 102
  • Si pas de réponse, renvoyer l’appelant sur la messagerie du poste 100

 

Nous pouvons donc mettre en place deux types de configuration dans Ring Group :

  • Round Robin : faire sonner les postes les uns après les autres
  • Ring All : faire sonner tous les postes en même temps

 

2) Configuration Round Robin

 

Commençons par la configuration Round Robin.

Cette dernière avait été rapidement présentée dans l’article traitant de la configuration basique d’Asterisk.

 

Bien entendu, la configuration se fera dans le DialPlan (fichier extensions.conf).

 

Pour rappel, nous disposons de 3 utilisateurs pour le moment :

users.conf

 

Pour l’occasion, nous ajouterons l’utilisateur 102.

Dans users.conf :

[102](default_template)
fullname = Bertrand Matthieu
username = bmatthieu
secret=password
mailbox = 102
context=dept_1

 

Nous allons donc utiliser le scénario précédent :

  • Lors d’un appel sur le numéro public, faire sonner le poste 100
  • Si pas de réponse après 10s, faire sonner le poste 101
  • Si pas de réponse après 10s, faire sonner le poste 102
  • Si toujours pas de réponse, renvoyer l’appelant sur la messagerie du poste 100

 

Comme nous n’avons pas encore relié notre Asterisk à un ITSP, nous ne  disposons pas de numéro public.

Nous ferons donc la manipulation pour la création d’un standard en interne à l’entreprise (ex : standard interne d’une grande entreprise, support IT, etc…).

 

Le numéro du standard sera le numéro 1000.

 

Voici donc la configuration à mettre en place dans le fichier extensions.conf :

exten => 1000,1,Dial(SIP/100,5)
exten => 1000,2,Dial(SIP/101,5)
exten => 1000,3,Dial(SIP/102,5)
exten => 1000,4,Voicemail(100)

A vous de personnaliser le Timeout en fonction de ce que souhaitez obtenir.

 

Cette configuration peut être placée dans différents contextes.

Soit dans le contexte 100, ce qui empêchera les utilisateurs des autres contextes (200) d’appeler le standard.

 

Le mieux est de placer cette configuration dans un contexte général, qui sera inclus dans les autres contextes.

 

Voici donc la configuration idéale :

[global]
exten => 1000,1,Dial(SIP/100,5)
exten => 1000,2,Dial(SIP/101,5)
exten => 1000,3,Dial(SIP/102,5)
exten => 1000,4,Goto(dept_1,100,2)
exten => 1000,5,Hangup()

[dept_1]
include => global

exten => _1[0-8]X,1,Dial(SIP/${EXTEN},40)
exten => _1[0-8]X,2,Voicemail(${EXTEN}@dept_1_vm)

exten => 199,1,Answer()
exten => 199,2,VoiceMailMain(${CALLERID(num)}@dept_1_vm)

exten => _2XX,1,Goto(dept_2,${EXTEN},1)

[dept_2]
include => global

exten => _2[0-8]X,1,Dial(SIP/${EXTEN},40)
exten => _2[0-8]X,2,Voicemail(${EXTEN}@dept_2_vm)

exten => 299,1,Answer()
exten => 299,2,VoiceMailMain(${CALLERID(num)}@dept_2_vm)

exten => _1XX,1,Goto(dept_1,${EXTEN},1)

 

Avant de tester, relancer Asterisk.

 

A présent, vous pouvez appeler le numéro 1000, et voir les postes sonner les uns après les autres.

 

Lancement de l’appel depuis le poste 200 :

Appel Test Ring Group

Immédiatement, le poste 100 sonne :

Appel Test Ring Group

Puis, au bout de quelques secondes, le poste arrête de sonner, puis c’est au tour du poste 101 :

Appel Test Ring Group

Et enfin, le poste 102 sonne :Appel Test Ring Group

 

3) Configuration Ring All

 

La configuration Ring All est encore plus simple.

 

Le scénario sera le suivant :

  • Lors d’un appel sur le numéro 1000, les postes 100, 101 et 102 sonnent en même temps
  • En cas de non réponse, renvoyer l’appelant sur la boite vocale de l’utilisateur 100

 

Dans le contexte [global] retirer l’ancienne configuration, et placer celle-ci :

[global]
exten => 1000,1,Dial(SIP/100&SIP/101&SIP/102,30)
exten => 1000,2,Voicemail(100@dept_1_vm)

 

En appelant le numéro 1000, vous pourrez voir tous vos postes sonner en même temps.

Après 30s, vous tomberez sur la messagerie du poste 100.

 

Tagués avec : , ,
Publié dans Fonctionnalités
2 commentaires pour “Asterisk – Ring Group
  1. JD dit :

    Bonjour
    Pour un ring ALL, un user décroche, est ce qu’un autre user peut suivre la conversation s’il décroche son téléphoen,

Répondre à JD Annuler la réponse

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

*

Le temps imparti est dépassé. Merci de saisir de nouveau le CAPTCHA.