アスタリスクでは、すべてのルーティングがダイヤルプランで行われることをすべて知っています。 しかし、オペレーターに多くの指示があり、それらのそれぞれの価格が異なる場合、ダイヤルプランにはいくつかのページのフットクロスがあります。 解決策は異なります。誰かが異なるダイヤルプランファイルに分割し、マクロを使用し、データベースを仕事に接続し、別のサービスに配置します。
私の決定を共有したい:与えられた方向のコストが最小のオペレーターの検索をnode.js上のサードパーティアプリケーションに移動し、AsteriskがAGIを介してやり取りします。
挑戦する
コールの1分あたりのコストが最も低いオペレーターを特定するためのシンプルで迅速なソリューションを入手してください。これも迅速にインストールおよび構成されます。
一方では、アスタリスクはアプリケーションと対話し、通話方向を送信し、最低コストでオペレーターに要求する必要があります。 一方、ユーザーはWebインターフェースを介してアプリケーションとやり取りします。これにより、通信事業者、道順、コストが追加されます。
スキーム
LCRファインダー
githubのプロジェクトの説明にある詳細なインストール。 ただし、 lcr-finder-appアプリケーションの準備を使用します(クローンを作成し、依存関係をインストールして、アプリケーションを実行します)。
インストールされたアプリケーションは、接続用に2つのポートを開きます。1つはAsterisk用、もう1つはWebインターフェイス用のAGIによる要求です。
次に、extensions.confファイルでアスタリスクを構成します。AGIで要求を実行し、その結果に基づいて呼び出しを行うだけで十分です。
exten=>_X.,1,AGI(agi://localhost:3000) exten=>_X.,n,Dial(SIP/${LCR_RESULT}/${EXTEN})
また、LCRファインダーへの要求の後、AGIは変数LCR_STATUS、LCR_RESULT、LCR_SEQUENCEを設定します。 LCR_STATUS-失敗、検索結果に応じて成功、LCR_RESULT-最低コストの演算子の名前、LCR_SEQUENCE-値の昇順でソートされた、コンマで区切られたすべての演算子のリスト。 LCR_SEQUENCEを使用すると、コストが最小のオペレーターが呼び出しを見逃さない場合にフェイルオーバーを実装できます。次を実行できます。
Anatolyがすぐにangle.jsで作成したWebインターフェースでは、すべてが非常に簡潔です。オペレーターを追加し、方向とコストを追加します。 [検索]タブで、オペレーターのコストの方向を確認できます。
アスタリスクへの質問:このシステムを開発する必要がありますか? インストールでアスタリスクを使用しますか? 現在、指示付きのExcelファイルの読み込みはありません(このための小さなスクリプトがあるため、まずmongodbチームに指示を読み込み、Webインターフェイスで必要に応じて価格を変更します)。 演算子の重みに関する別のアイデアがあります。 オペレーターの選択に影響を与えるパラメーターが価格だけではない場合があります。
同様のシステムはありますか? もちろんそうです。 たとえば、一部の人々がLCRのA2Billingに使用するものを知っていますが、プロジェクトLCDial.sh(私は知りません、誰かがそれを使用します)、誰かがそのようなスクリプトを使用します。
建設的な批判と改善の提案を期待しています。 困難な時期に誰かが開発のための追加資金を節約するのに役立つと思います。
PS lcr-finderのインストールに関する短いビデオ