TelegramでのIP PBX Askoziaおよびプッシュ通知

当社の従業員の一部はオフィスの外で働いています。顧客への訪問、自宅での仕事です。 そのような従業員と通信するには、Askozia PBXに接続されたGSMゲートウェイを使用します。 クライアントから受信した通話は、「現場」で従業員に転送できます。



このような状況では、不快な状況が発生します。従業員は、電話を受けると、クライアント番号ではなくSIMカード番号を確認します。 不在着信をすぐにコールバックする方法はありません。



コールアラートにTelegramを使用することにしました。 興味深いソフトウェア製品群Askozia + Telegram + 1C:Enterpriseが見つかりました。





仕組み



従業員はTelegramを介してサービスにアクセスします。 ボットを作成すると、通知をサブスクライブできます。

挨拶の形式は「 I <電話番号> 」です。

画像



ボットは電話番号を保存し、これから通知を送信するチャットを認識します。

誰かが電話をかけたり、従業員番号に電話をリダイレクトしようとすると、次のメッセージがチャットに送信されます。

画像



発信者の名前と電話番号に関する情報が表示されることに注意しください 。 呼び出し元の表現(名前)は、必要に応じて1C:CRMから取得できます。 この例では、callerid(name)は1C:CRMから情報を受信した後にインストールされました。実装例はjorikfonの記事で説明されています(「有用な資料」セクションを参照)。



さらに、「 (コールバック) 」ハイパーリンクが表示されます。 ハイパーリンクは、従業員の携帯電話番号へのコールバックを開始します。 携帯電話での呼び出しが受信されるとすぐに、呼び出しが以前に受信された加入者へのダイヤルが開始されます。



興味深い予想外の機能 -コール通知は、モバイルへのコールよりも速くなります。 GSM回線を介したダイヤルは4〜5秒間遅延します。 電報通知はずっと速くなります。



IP PBX Askoziaへのサービスのインストール



Telegram API、AMI Asterisk、SOAP Webサービス1C:エンタープライズが使用されます。 すべてのサービスはPHP 5で実装されています。



SSHを介してPBXに接続します。

#  ,  . mount -o remount,rw /offload; #  ,        . mkdir /offload/rootfs/usr/www_provisioning/telegram/; #  ,    . mkdir /storage/usbdisk1/askoziapbx/astlogs/asterisk/telegram/;
      
      







SFTP経由でPBXに接続します

配布リンクをダウンロードします。 ディストリビューションからディレクトリにスクリプトをコピーします:“ / storage / usbdisk1 / askoziapbx / astlogs / asterisk / telegram /

画像



私たちは引き続きSSHで作業します

 #       : #     URL "http://HOST:56080/telegram/miko_callback.php" ln -s /storage/usbdisk1/askoziapbx/astlogs/asterisk/telegram/miko_callback.php /offload/rootfs/usr/www_provisioning/telegram/miko_callback.php #  ,         telegram echo >> /storage/usbdisk1/askoziapbx/astlogs/asterisk/telegram/subscription.db #      " ". mount -o remount,ro /offload;
      
      







settings.jsonファイルで設定を定義します



Settings.jsonの例
 { "ami_host": "127.0.0.1", "ami_port": 5038, "ami_username": "1cami", "ami_secret": "PASSWORD1cami", "telegram_API_key": "171119210:AAHo-000000000000000000000", "subscription_file": "subscription.db", "dst_context": "SIP-PHONE-0000000000feaad021c", "res_callback": "http://HOST:56080/telegram/miko_callback.php", "local_context": "localchannels" }
      
      











AMIに接続するための設定を取得する方法
  • ami_host-スクリプトがローカルで実行される場合、アドレスは127.0.0.1です
  • ami_port-デフォルト値5038
  • ami_username-デフォルト値はadminです
  • ami_secret - askoziaのデフォルト




Telegram APIキーを取得する方法
BotFather 」から質問する必要があります。

電報で連絡先「BotFather」との新しいダイアログを作成します

  1. コマンド「/ newbot」を送信します
  2. 2番目のステップでは、新しいボットの名前を入力します
  3. 3番目のステップでは、ボットの「ユーザー名」を入力します。これには、文字列「ボット」が含まれている必要があります


応答として、ボットはキーを含むメッセージを送信します

Use this token to access the HTTP API:

171119299:AAHo-y2Ps4-ZTblLRHbjBHG5pG-0cpN









コンテキスト設定
  • local_contextは、従業員の内部番号と携帯電話番号が定義されるコンテキストです。デフォルトでは「localchannels」
  • dst_context-このコンテキストを取得するには、「電話」アカウントの1つを開き、ブラウザのアドレスバーにあるフォーム「 SIP-PROVIDER-196627525951ab38268552a 」の識別子をコピーする必要があります。これがコンテキストになります






cronでスクリプトを実行する



Webインターフェースで「ESC」を押して「インテグレーターコンソール」を開く必要があります。

画像



  1. 構成ファイル 」タブに移動します
  2. ファイル「 crontabs 」を選択します
  3. 上記の画像のようにスクリプトを実行する行を追加します


 */5 * * * * /bin/sh /storage/usbdisk1/askoziapbx/astlogs/asterisk/telegram/starter.sh
      
      







実施結果



従業員は便利な着信アラートサービスを受け取りました。





便利な資料






All Articles