Asterisk – Call Parking

Le parcage d’appels permet de mettre des appels dans un parking, pour les récupérer plus tard.

Cela peut être pratique pour gérer plusieurs appels en même temps.

Les appels mis au parking peuvent aussi être récupérés sur autre poste.

Voyons comment mettre cela en place.

 

1) Fonctionnement

 

Pour mettre un appel dans le parking, l’utilisateur doit transfert l’appel au numéro du parking.

En échange, Asterisk lui indiquera quel est la position de l’appel dans le parking.

 

Prenons un exemple.

  • Marc reçoit un appel
  • Après un début de conversation, Marc décide de mettre l’appel dans le parking
  • Pour cela il transfert l’appel au numéro du parking (par exemple 950)
  • Si le parking est vide, l’appel sera placé en position 1, c’est-à-dire 951
  • Asterisk va donc indiquer à Marc que l’appel est à la position 951

 

Quand il veut, Marc (ou quelqu’un d’autre) pourra récupérer l’appel en composant le 951.

 

Le numéro du parking ainsi que sa taille sont à définir.

 

Dans la version 12 d’Asterisk, la configuration est à faire dans les fichiers res_parking.conf et extensions.conf.

Nous définirons le parking dans res_parking.conf.

Le parking devra ensuite être inclus dans le contexte adéquat, dans extentions.conf.

 

Dans les anciennes versions d’Asterisk, la configuration du parking se fait dans le fichier feature.conf.

 

2) Transfert d’appel

 

Le parking d’appel repose sur le transfert d’appel.

Il est donc important de permettre le transfert d’appel, afin de permettre aux utilisateurs de parquer des appels.

Nous allons commencer par configurer les touches permettant de faire un transfert.

 

Le fonctionnement recherché est le suivant : si l’utilisateur appuie 2 fois sur #, Asterisk lui propose de transférer l’appel.

 

Voici la configuration à mettre en place dans features.conf :

[featuremap]
atxfer => ##
blindxfer => **

 

Durant un appel, un double appuie sur # permet de faire un transfert supervisé.

Un double appuie sur * permet de faire un transfert aveugle.

 

Un transfert supervisé permet à l’utilisateur de prendre contact avec le receveur du transfert, et ce avant que l’appel ne soit transféré. Cela permet de prévenir du transfert, etc..

 

Voyons en détail le comportement des deux types de transfert.

 

Le transfert aveugle :

  • Jean appelle Marc
  • Durant l’appel Jean veut transférer l’appel à Alain
  • Jean lance un transfert aveugle vers Alain
  • Le téléphone d’Alain sonne et il décroche
  • Marc est alors en ligne avec Alain
  • Jean a été raccroché automatiquement

 

Le transfert supervisé :

  • Jean appelle Marc
  • Durant l’appel Jean veut transférer l’appel à Alain
  • Jean lance un transfert supervisé vers Alain
  • Le téléphone d’Alain sonne et il décroche
  • Jean est alors en ligne avec Alain, pendant que Marc est en attente
  • Jean parle à Alain puis raccroche
  • Marc est alors en ligne avec Alain

 

Ensuite, pour permettre le transfert, il faut modifier le DialPlan (extensions.conf) comme suit :

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

Nous avons ajouté les options « t » et « T » à l’application Dial().

L’option « » permet à l’appelant de transférer l’appel, alors que l’option « t » permet à l’appelé de transférer l’appel.

 

Cette modification devra être faite pour les extensions que l’on veut pouvoir placer dans le parking.

 

3) Configuration du parking

 

Commençons par créer le parking.

Dans le fichier res_parking.conf, ajouter la configuration suivante :

[default]
parkext => 950
parkpos => 951-959
context => parking_1
parkedmusicclass = default
parkingtime => 240

 

En détails :

  • Le numéro auquel transférer des appels est le 950
  • Le parking possède 9 slots : 951 à 959
  • Le contexte à inclure dans extensions.conf est parking_1
  • La musique d’attente du parking est celle de la classe default de musiconhold.conf
  • Si l’appel n’a pas été repris au bout de 240s, l’appel est renvoyé à la personne qui a placé l’appel dans le parking

 

Si vous avez forcé une MOH dans extensions.conf, c’est celle-ci qui sera joué à l’appelé.

 

Ensuite, dans extensions.conf, il faut inclure le contexte parking_1.

[global]
include => parking_1

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

 

A présent, les utilisateurs sont en mesure de placer des appels dans le parking.

 

Voici un exemple de fonctionnement :

  • Jean est en ligne avec Marc
  • Jean appui sur ## (ou **)
  • Une musique d’attente s’enclenche
  • Asterisk lui demande d’entrer le numéro auquel transférer l’appel
  • Jean entre 950
  • En retour Asterisk lui indique la position de l’appel dans le parking (ex : 951)
  • Marc est placé dans le parking, Jean peut raccrocher
  • A tout moment, quelqu’un peut récupérer l’appel en composant le 951

 

Tagués avec : , , ,
Publié dans Fonctionnalités
5 commentaires pour “Asterisk – Call Parking
  1. SCHERER dit :

    bonjour
    j’ai suivi votre configuration du parking
    mais après ** ou ## en faisant 950 l’erreur est: désole ce numéro de poste n’est pas valide
    merci pour votre aide

    • Valentin Weber dit :

      Bonjour,

      Est-ce que vous avez bien ajouté le contexte parking (voir res_parking.conf) dans le dial plan ?
      L’utilisateur qui veut pouvoir parquer un appel doit avoir accès à ce contexte.

  2. Jordan Pascuela dit :

    Bonjour, merci pour ce tutoriel.

    Le dernier exemple de fonctionnement est pour le call-parking avec un transfert en aveugle. Pourriez vous s’il vous plait nous indiquer la démarche avec un transfert supervisé? Quand Jean transfert l’appel à Alain avec ##950 , plus personne ne pourra reprendre l’appel dans le parking hormis Alain, est correct?

    Merci

    • Valentin Weber dit :

      Bonjour,
      Je n’ai plus d’Asterisk sous la main pour tester, mais je suis presque sûr que le résultat est le même. Asterisk indique le numéro dans le parking et n’importe qui peut le reprendre

Laisser un commentaire

Votre adresse de messagerie 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.