アスタリスク。会話録音アラート

私はMikoPBXを開発しています。これはAsterisk16をベースにした構成が簡単なPBXです。





最近、会話の録音に関する通知の機能を追加することにしました。タスクは次のように定式化されました。





通知は、クライアントが会社の従業員に接続した直後に1回トリガーする必要があります。アラートは、通話のすべての参加者が聞く必要があります。






モジュールの接続

ChanSpyアプリケーションの機能を使用することが決定されました





まず、アスタリスクを開始するときに、必要なモジュールがロードされていることを確認する必要があります。modules.confに追加します





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



ダイヤルプランの実装

通知記録ファイルへのパスについては、extensions.confグローバルセクションで説明します。





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



通知のダイヤルプランについて説明しましょう





[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」-変数では、テクノロジーの説明なしでチャネル名を説明する必要があります。





  • ローカル/ $ {chan} @ annonce-spy - Chanspyアプリケーションを実行します





  • " 10 "- $ {chan} @ annonce-spyの呼び出しにかかる時間、この例では問題ありません





  • exten、annonce-playback-in、annonce、1-再生アプリケーションのコンテキストに直接





着信ダイヤルプランを追加しましょう。ダイヤルアプリケーションでは、「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を使用せずに、ダイヤルプランアプリケーションに基づいてのみ、会話の録音に関する通知を実装できます。





奇妙なことに、ネット上にはこのトピックに関するかなりの情報があります。





この記事が読者の役に立つことを願っています。





便利なリンク

  • wiki.asterisk.org





  • Application_ChanSpy





  • Application_Dial





  • Application_Originate





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








All Articles