FreePBX-XMPPを介したリアルタイム通知による転送

ブランチ構造を持つ中規模の組織に小さなIT部門があります。 IT部門の従業員はほぼ常に別の支店に出張しており、常に携帯電話で連絡できるとは限りません。 組織の従業員の便宜のために、テクニカルサポート用に1つの(覚えやすい)番号を作成することにしました。 テクニカルサポートが忙しい場合、または誰もそこにいない場合は、コールをエンジニアの携帯電話に転送し、コール情報をJabberのメッセージの形式で送信する必要があります。

モバイル転送


Webインターフェイスの[アプリケーション] => [リンググループ] => [リンググループの追加]に移動します。 たとえば、「922」のように、エンジニアを携帯電話に転送するためのグループを作成します。

画像

番号の最後のラティスにより、発信呼び出しが許可されているメインのFreePBXコンテキストから呼び出しを行うことができます。 固定CID値-これは、サブスクライバーの内部番号が送信されるためにプロバイダーが無効なCIDを破棄する場合に必要です。 RingAll戦略を使用すると、誰かが利用できない場合に全員に同時に電話をかけることができます。誰かが電話をとる場合はスキップし、他の人はすぐに電話を切ることができます。

異なるバージョンでは、FreePBXがグループでビープ音を鳴らして奇妙なことをするため、素敵な音楽をバンドに置く方が良いです。 922を呼び出して、設定を確認できます。

現在、911などの主要なテクニカルサポートグループを作成しています。

画像

Skip Buzy Agentをオンにすると、すべての従業員が忙しい場合に答えがなければ、目的地に直接行くことができます。
[応答がない場合の宛先]で、モバイルへの転送グループを選択します。

その結果、コールがグループ911に届くことがわかりました。従業員が忙しい場合、または誰も電話を数秒間受け取らない場合、コールはグループ922に行きます。 。

発生した問題:
1)習慣のない人々は、エンジニアの直接数と呼ばれます。 これは導入から3か月後も続きました...一部は、個人的な愛情のために、エンジニアはすぐに「TPの最初の行よりも私の問題で有能な人と通信するため」と呼ばれました。また、Nameは全員に同じデータを提供したため、TP従業員の内部発信コールでは、彼の実際の番号は表示されませんでした。

例:

画像

その結果、1か月後、誰もがそれに慣れ、エンジニアへの直接の電話はほとんど停止しました。 現在、このようなスキームは、「ダイレクトコール」の最も熱心なサポーターにも適しています。 彼らはすぐに問題に取り組み始め、誰かが昼食や煙の休憩から戻ってくるのを待ちません。

2)プロバイダーはある日、「曲線」CIDを使用したコールを逃しなくなったため、固定CID値パラメーターを緊急に見つける必要がありました。 これで、このグループからの発信は、指定されたCIDに置き換えられました。
3)通話が携帯電話に転送された場合、会話はほとんどの場合「Who are you?」というフレーズで始まりました。 誰が電話をしているのかは本当に不明確で、会社番号はモバイルで決定されました... jabberで通知することでこの問題を解決しました。


着信および不在着信アラート


モバイルへのリダイレクトの場合、組織の外部番号のみが表示され、切断の場合に誰にコールバックするかは明確ではありません。

さまざまなソリューションを検討した結果、それらの中で最速のものがXMPPであると判断しました(さらに、監視システムにejabberdが既に展開されています)。 通常、メッセージを送信してから受信するまでに1秒以上かかりません。

1)PBX用のJabberサーバーでユーザーを作成します。 私たちの場合、これはユーザーPBX@company-name.suです。
2)ファイル/etc/asterisk/jabber.confを次の形式にします。 Asteriskの新しいバージョンでは、これは/etc/asterisk/xmpp_custom.confです

[一般]
; debug = yes
; autoprune = yes
;自動登録=はい
; auth_policy = accept

[アスタリスク]
タイプ=クライアント
serverhost = jabber.company-name.su
username=pbx@company-name.su
秘密= Pa $$ w0rd
ポート= 5222
usetls =はい
usesasl = yes
ステータス=利用可能
statusmessage = "私はアスタリスクです!"
buddy = username1 @ company-name.su、username2 @ company-name.su、username3 @ company-name.su
;タイムアウト= 100


3)/etc/asterisk/extensions_custom.confに番号を手動で追加します

exten => 9999.1、JabberSend(asteriskjabber、username1 @ company-name.su、$ {CALLERID(all)} called $ {STRFTIME($ {EPOCH} ,,%c)}!)/ +74951111111 )
exten => 9999、n、JabberSend(asteriskjabber、username2 @ company-name.su、$ {CALLERID(all)} called $ {STRFTIME($ {EPOCH} ,,%c)}!)/ +74951111111 )
exten => 9999、n、JabberSend(asteriskjabber、username3 @ company-name.su、$ {CALLERID(all)} called $ {STRFTIME($ {EPOCH} ,,%c)}!)/ +74951111111 )
exten => 9999、n、ハングアップ()


メッセージに変数を追加しました。メッセージが遅れて到着した場合の呼び出し時間と、呼び出したサブスクライバーの内部CIDを持つ変数を表示します。 最後に、便宜上、電話帳に入らずに折り返し電話するために、直接のオフィス番号を追加しました。

4)アスタリスクサービスを再起動して、新しい構成を適用します。
サービスアスタリスクの再起動

アスタリスクコンソールで、jabber show connectionsコマンドの結果を確認します。 Connectedという単語がない場合は、エラーを探します。 動作しない場合は、/ etc / asterisk / jabber.confファイルでjabberデバッグをオンにします。

これで、9999を呼び出すだけで、Jabberでメッセージを送信する操作を確認できます。

5)Webインターフェースに戻り、番号9999#(常にトレリス付き)を922モバイルリダイレクトグループに追加します(Folow Meなどの他の場所に追加することは禁止されていません)。

現在、922への呼び出しから始まり、モバイルへの呼び出しとともにメッセージがJabberに送信されます。 原則として、メッセージは通話よりも数秒早く到着します。 電話通知ラインで受話器を取り上げた後でも読むことができます。

注:独自のJabberサーバーがない場合は、ほぼすべてのパブリックサーバーを使用できます。 たとえば、Google。

アスタリスクジャバークライアントの最も一般的な問題は、一部の暗号化方式をサポートしていないことです。

Source: https://habr.com/ru/post/J254835/


All Articles