Asterisco. Alerta de grabación de conversación

Estoy desarrollando MikoPBX , un PBX fácil de configurar basado en Asterisk 16.





Recientemente decidimos agregar la funcionalidad de la notificación sobre la grabación de la conversación. La tarea se formuló de la siguiente manera:





La notificación debe activarse una vez, inmediatamente después de que el cliente se conecta con el empleado de la empresa. Todos los participantes de la llamada deben escuchar la alerta.






Módulos de conexión

Se decidió utilizar la funcionalidad de la aplicación ChanSpy .





Primero, debe asegurarse de que los módulos requeridos estén cargados cuando inicie el asterisco. Agregar a modules.conf :





load => app_chanspy.so
load => app_originate.so
      
      



Implementación del plan de marcado

extensions.conf, global:





[globals] 
PBX_REC_ANNONCE=/var/mikopbx/media/custom/alert
      
      



dialplan





[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()
      
      



, :





Originate(Local/${chan}@annonce-spy,exten,annonce-playback-in,annonce,1,10,a); 
      
      



  • "a" - ,





  • "chan" - , .





  • Local/${chan}@annonce-spy - Chanspy





  • "10" - ${chan}@annonce-spy,





  • exten,annonce-playback-in,annonce,1 - Playback





Agreguemos el plan de marcado entrante. En la aplicación Dial usamos la opción " U " para interceptar el momento en que los suscriptores están conectados:





[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
      
      



Ahora queda probar la bandeja de entrada. Del mismo modo, puede implementar notificaciones para llamadas salientes.





Conclusión

Relativamente simple, sin usar AGI, solo sobre la base de aplicaciones de dialplan es posible implementar la notificación sobre la grabación de conversaciones.





Curiosamente, hay bastante información sobre este tema en la red.





Espero que este artículo sea de utilidad para el lector.





Enlaces útiles

  • wiki.asterisk.org





  • Application_ChanSpy





  • Application_Dial





  • Application_Originate





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








All Articles