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 « T » 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
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
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.
Bonjour
Merci pour votre reponse
C est resolu
Cela fonctionne
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
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
Bonjour j’ai suivi votre Tito, mais quand j’appuie deux fois sur # ou * il ne se passe rien.
Bonjour,
Il faut commencer par regarder dans les log (avec un niveau de verbosité suffisant) pour voir ce qu’il se passe lors d’un appui sur ** ou ##.
Puis selon le résultat, vérifier les fichiers de configuration. Vous pouvez aussi utiliser d’autres touches que * et #.