Je développe MikoPBX - un PBX facile à configurer basé sur Asterisk 16.
Récemment, nous avons décidé d'ajouter la fonctionnalité de notification sur l'enregistrement de la conversation. La tâche a été formulée comme suit:
La notification doit être déclenchée une fois, immédiatement après que le client se connecte avec l'employé de l'entreprise. L'alerte doit être entendue par tous les participants à l'appel.
Modules de connexion
Il a été décidé d'utiliser la fonctionnalité de l'application ChanSpy .
Tout d'abord, vous devez vous assurer que les modules requis sont chargés lorsque vous démarrez astérisque. Ajouter à modules.conf :
load => app_chanspy.so load => app_originate.so
Mise en œuvre du plan de dialogue
Nous décrirons le chemin d'accès au fichier d'enregistrement des notifications dans extensions.conf , dans la section globale :
[globals] PBX_REC_ANNONCE=/var/mikopbx/media/custom/alert
Décrivons le plan de numérotation pour les notifications
[annonce-spy]
exten => _.!,1,ExecIf($[ "${EXTEN}" == "h" ]?Hangup()
same => n,Set(chan=PJSIP/${EXTEN})
; .
same => n,ExecIf($["${CHANNELS(${chan})}x" != "x"]?Chanspy(${chan},uBq))
same => n,Hangup()
[annonce-play]
exten => annonce,1,Answer()
;
same => n,Playback(${PBX_REC_ANNONCE})
same => n,Hangup()
Désormais, pour déclencher des notifications, il suffit de connaître le nom du canal et d'exécuter:
Originate(Local/${chan}@annonce-spy,exten,annonce-playback-in,annonce,1,10,a);
option " a " - indique que l'application sera exécutée de manière asynchrone
" chan " - dans la variable, il est nécessaire de décrire le nom du canal, sans description de la technologie.
Local / $ {chan} @ annonce-spy - lance l'application Chanspy
"10" - ${chan}@annonce-spy,
exten,annonce-playback-in,annonce,1 - Playback
dialplan . Dial "U" :
[incoming]
exten => _XXX,1,Dial(${PJSIP_DIAL_CONTACTS(${EXTEN})},60,U(dial-answer))
[dial-answer]
exten => _[0-9*#+]!,1,Set(chan=${CUT(CHANNEL,/,2)})
same => n,Originate(Local/${chan}@annonce-spy,exten,annonce-play,annonce,1,2,a);
same => n,return
. .
, AGI, dialplan .
, .
.