FreeSWITCHライフの例...

良い時間%ユーザー名%。



このシステムは銃からスズメを撃つようなものです。しかし、私はそのようなものが欲しかったのです。 また、このスキームの一部の要素は最初から作成されておらず、他のタスクで既に使用されており、そのアーキテクチャ(データベースサーバーおよびHTTPサーバー)は考慮しません。これらのサービスが適切に予約されていることを考慮しましょう。



私の仕事の1つで、gsmゲートウェイ(約30)および固定電話pri(100回線)からIPへの外部回線の転送というタスクが設定されました。 また、Samsung ids-500 PBX(2ステーション)のさらなる開発が不可能であるため、IP電話をインストールします。 PBXには既に約600台の職場の電話がありました。 現在190の外部回線があります。







基本的な要件:





使用するソフトウェアについて簡単に説明します。

FreeSWITCH-コールルーティング、加入者登録、ファックス、一般にすべてのPBX機能

OpenSIPS-登録のバランス、FreeSWITCHサーバーへの呼び出し、また呼び出しをインターセプトする場合、呼び出しの受信先サーバーを決定し、ユーザー要求を送信します。

アスタリスク-DAHDIカード、0.1%ロジック、PBXからFreeSWITCHへのコール転送、またはその逆。

Django-サーバーへの構成の配布(mod_xml_curl)、電話構成、およびこのすべての経済の管理。



私は回路を描くのが苦手なので、このような回路を記述しようとします(結局のところ、書くことは成功しませんでした)。 より詳細な詳細が興味深い場合は、さらに答えます。



装備品



2-物理サーバー、それぞれにアスタリスクが機能する2つのDAHDIボードがあります(sip`aにはポート6060が使用されます)。 また、同じマシンにFreeSWITCHがインストールされます。 PBXは異なるサーバールームに配置され、サーバーもこれらのサーバールームに分散されます。 それらをsip1およびsip2と呼びます。

1-仮想マシン、それを通してオペレーターとの通信があり、FreeSWITCHがインストールされています。sip0と呼びましょう

1-仮想、OpenSIPSはバランサーです。



ロジック:



各サーバーはpriによって各PBXに接続され、冗長性を提供します。 PBXから呼び出す場合、アスタリスクはこのマシンで実行されているFreeSWITCHに呼び出しを送信しようとします。エラーが発生した場合は、2番目のサーバーに呼び出しを送信します。

PBXへの呼び出しは、原則として同様のロジックに従いますが、1つの例外があります。最初に、呼び出しは、呼び出し先のPBXの隣にあるサーバーに行きます。 つまり、コールがsip1に到達し、sip2がPBX2に近い場合、最初にコールを送信します。

外部番号バインディングを持つすべてのPBX番号はシステムに登録されます。sip0からコールが発行されると、対応する発信者IDが置き換えられ、バインディングがない場合はパイロット番号が置き換えられます。 これは、ユーザーout_numberに規定された変数の形式でリリースされ、ダイヤルプランでの検証${user_data(${caller_id_number}@${domain} var out_number)}





VOIP番号の場合、ロジックは同じです。



内部呼び出しの場合、呼び出し元の名前はhttpを介してmod_cidlookup要求を受け取ります。 コンプライアンスの電話番号、従業員の名前、ADと1Cに関する別の話。

VoIP電話-Dlink dph-105、dph-400、grandstream gxp-1405、gxp-2120。 それらの設定はhttpを介して配布され、データベースからすべての設定を取得し、必要な設定ファイルをその場で作成します。

管理パネルは、これまで最小限の機能、デバイスの設定-ユーザー、cdr、デバイスの再起動、ダイヤルプラン管理、成功した着信/発信コールの1日あたりの小さな統計、および誤って、現在の登録ユーザー数とサーバーごとのアクティブコール数を実装しています。

sip1とsip2は、ユーザー、ボイスメール、アクティブコール、cdrの登録、変数の保存に同じデータベースを使用します。

FreeSWITCHのスケーラビリティと冗長性については、 エンタープライズ展開を読むことができます

現在、登録済みのSIPユーザーは300人、PBXには600人のユーザーがいます。外部宛先への同時コールの最大数は40です。



このテキストストリームは完全ではなく、写真を完全に説明するものではないことを理解していますが、筆記を常に延期していたため、できる限り最高のものを書くことにし、このトピックが興味深い場合は、それを拡大して補足します。



All Articles