Astérisque. Alerte d'enregistrement de conversation

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 .





, .





.





  • wiki.asterisk.org





  • Application_ChanSpy





  • Application_Dial





  • Application_Originate





  • https://github.com/mikopbx/Core








All Articles