自由に利用可能な無料のIP PBXの概要:アスタリスク、FreeSWITCH、SipXecs、Yate。 長所と短所、機能とアプリケーションの比較分析が提供されます。 すべての製品を互いに組み合わせることができると結論付けられています。
しばらく前に、Open Systemsの友人が私に連絡し、オープンIP PBXのレビューを依頼しました。 彼は私だけでなく、他のIPテレフォニーの専門家にも目を向けたので、その結果、雑誌に
編集内容が掲載されましたが、私の最初のレビューはほとんど残っていません。 完全にHabréで公開しています。
初めに、主題にあまり詳しくない人のために、理論的な挿入があります。 退屈な場合は、スキップしてください! 素敵な読書を! そして読みやすくするために、章には音楽のプレゼントが付いています(ヘッドフォンを強くお勧めします:-)
行こう!
理論
PBX(構内交換機)は、オフィス電話交換機の英語の用語で、デバイス間の接続の確立、保守、および切断、つまり切り替えを提供します。
PBXを使用すると 、内部番号計画、通話の転送、保留などの電話機能を使用して、無制限の数の内部ユーザー間で
限られたリソース (都市回線と番号)
を共有できます 。
それが、PBXシステムがあらゆる組織に必要な理由です-企業内で電話通信を効果的に整理することができます(それでも必要です;-)
従来のPBXシステムは、電流回路を切り替えることでチャネル(通信回線)を切り替えます。 新しいPBXシステムは、TCP / IPネットワークでパケットを切り替え、IP PBXと呼ばれます。 IP PBXは、IPテレフォニープロトコルに基づいています。 また、従来のPBXはIP PBXをサポートできます-これらはハイブリッドIP PBXと呼ばれます。 従来のテレフォニーからIP環境への移行期間では、最も需要が高いのはハイブリッドIP PBXです。ただし、従来の電話チャネルをIPパケットに変換する機能は、IPテレフォニーを介してIP PBXに接続される別のデバイス(VoIPアダプターまたはVoIPゲートウェイ)でも実行できます。
現在、広く使用されているIPテレフォニープロトコルは、H.323とSIPの2つだけです。
プロトコル、より正確に
は、H.323プロトコルスタックは 、電気通信および無線の分野での推奨事項を定義する国際組織である国際電気通信連合(ITU)によって開発されました。 プロトコルを作成する目的は、デジタルおよびIPネットワークを含む最新の通信ネットワークを介した音声およびビデオ会議の必要性でした。
SIP(セッション開始プロトコル)は、マルチメディアコンテンツ(ビデオおよび音声会議、インスタントメッセージング、オンラインゲームなど)の交換を含む、ユーザーインターネットセッションを確立および完了する方法の標準です。 このプロトコルは、インターネットエンジニアリングタスクフォース(IETF)によって開発されました。IETFは、プロトコルの開発とインターネットのアーキテクチャに関与する、設計者、科学者、ネットワークオペレーター、プロバイダーのオープンな国際コミュニティです。
H.323プロトコルには、ビデオ会議(電話事業者によって作成され、インターネットはその作業環境の1つです)を操作するための機能の大きな標準セットがあり、SIPプロトコルはTCP / IPネットワークでの作業により適合し、より普遍的です(「インターネットユーザーによって作成されました」 」、および音声とビデオは、メディアコンテンツの種類の一部にすぎません)。
インターネットが勝ち、現在、SIPはIPテレフォニーの事実上の標準と見なされ、H.323プロトコルは主にマルチユーザービデオ会議システムで使用され、通信事業者間でIPを介した音声トラフィックの交換に使用されますが、これらの分野では一口
したがって、現代のIP PBXシステムはSIP IPテレフォニープロトコルに基づいて動作していると自信を持って結論付けることができます。
SIPアーキテクチャの詳細を検討してください。
SIPプロトコル仕様は、クライアント/サーバーアーキテクチャを定義しています。 クライアントは、サーバーから何を受け取りたいかを示す要求を発行します。 サーバーは要求を受け入れて処理し、要求の成功に関する通知、エラー通知、またはクライアントが要求した情報を含む応答を発行します。 コールサービスは、SIPネットワークのさまざまな要素に分散されます。
接続制御機能を実装する主な機能要素は、加入者端末です。 他のネットワーク要素がコールのルーティングを担当し、追加のサービスを提供する場合があります。 主な要素をリストします。
- ターミナル クライアントとサーバーが端末装置に実装され、ユーザーと直接対話する場合、ユーザーエージェントクライアント-ユーザーエージェントクライアント(UAC)、ユーザーエージェントサーバー-ユーザーエージェントサーバー(UAS)と呼ばれます。 デバイスにUACとUASの両方がある場合、それはユーザーエージェント-ユーザーエージェント(UA)と呼ばれ、本質的にはSIP端末機器です。 例UA-ハードウェアまたはソフトウェアSIP電話、SIPアダプター。
- プロキシサーバー(英語のプロキシ-「代表」から)は、ネットワーク上のユーザーの関心を表します。 要求を受け入れ、処理し、適切なアクションを実行します。 プロキシサーバーもクライアントとサーバーの部分で構成されているため、呼び出しを受信し、要求を開始し、応答を返すことができます。 プロキシには2つのタイプがあります。
ステートフル(ステートフル)。 このようなサーバーは、トランザクションが完了するまで、受信したすべてのリクエストと関連する新しい生成されたリクエストをメモリに保存します。
ステートレス(ステートレス)。 このようなサーバーは、受信したリクエストを単に処理するだけであり、その基盤に基づいて複雑でインテリジェントなサービスを実装することは不可能です。 - 転送サーバー-ユーザーの現在の場所を特定するために使用されます。 転送サーバーは呼び出しを終了せず、独自の要求を開始しませんが、必要な端末またはプロキシサーバーのアドレスのみを報告します。 これらの目的のために、ロケーションサーバーと対話します。 接続を確立するために、ユーザー自身が必要なユーザーの現在のアドレスを知っている場合、ユーザーは転送サーバーを使用できません。
ユーザーロケーションサーバー。 ユーザーはSIPネットワーク内を移動できるため、現在の時間に自分の位置を特定するメカニズムがあります。 ユーザーロケーションサーバーは、現在のユーザーアドレスを保存する役割を果たし、アドレス情報のデータベースです。
したがって、SIPプロトコル仕様では、クライアントとサーバー間のセッションの確立と切断、およびネットワーク要素の検索のためのメカニズムのみを定義しています。 したがって、SIPプロトコルは、ユーザーサービスを実装する他のプロトコルと同時に使用されます。
そのようなサポートプロトコルの1つは、セッション記述プロトコル(SDP)です。これは、テレフォニー、インターネットラジオ、マルチメディアアプリケーション、ストリーミングアプリケーションなどのストリーミングセッションを記述するように設計されています。 SDPプロトコルは、SIPクライアントとサーバーがセッション機能(サポートされている圧縮アルゴリズム-コーデックなど)をリストするヘッダーとフィールドの形式を記述します。
2番目に必要なプロトコルは、リアルタイムトラフィックを直接送信するために使用されるRTP(English Real-time Transport Protocol)です。 RTPプロトコルは、ヘッダーで、受信ノードでの音声またはビデオの復元に必要なデータ、および情報エンコードのタイプ(JPEG、MPEGなど)のデータを転送します。 特に、このプロトコルのヘッダーでは、タイムスタンプとパケット番号が送信されます。 これらのパラメーターにより、最小限の遅延で、各パケットのデコードの順序と瞬間を決定し、失われたパケットを補間することができます。 基礎となるトランスポート層プロトコルは、通常UDPです。 接続の確立と終了はRTP機能のリストに含まれていません;このようなアクションはSIPシグナリングプロトコルによって実行されます。
したがって、SIP PBXの動作は、SIP、SDP、RTPの3つの主要なプロトコルに基づいています。
また、シグナリングとメディアストリームの暗号化を追加するSIP TLSやセキュアRTPなどの追加機能を実装するプロトコルもありますが、主なものはSIP、SDP、RTPです。
ただし、SIPプロトコルで高レベルの機能とサービスが定義されていない場合、SIPベースのIP PBXとは何ですか?
SIP自動電話交換を考慮すべきことは何ですか?
現在、アーキテクチャ、ターゲット機能、サポートされているプロトコル、人気、およびその他のパラメーターが互いに異なるかなり多数の通信ソフトウェア製品があります。 それらがIP PBXシステムであるかどうかを理解するには、次の基準に従ってそれらを考慮する必要があります。
- システムはSIPレジストラ機能をサポートしていますか? IP PBXはユーザーの場所を知っている必要があるため、SIPレジストラの機能を実装する必要があります。
- システムはSIPプロキシ機能をサポートしていますか? IP PBXは、ユーザー間の接続の確立を処理し、これらの接続の状態に関する情報を維持する必要があります。
- システムは、確立されたSIPセッションを制御するメカニズムをサポートしていますか? IP PBXは、より重要なコールが原因で現在のセッションを中断するか、リーダーが必要とするビジー回線を解放できる必要があります。SIPアーキテクチャでは、いわゆるバックツーバックユーザーエージェント(B2BUA)がこれらの機能を実行します。 B2BUを使用する場合、通信は2人のユーザー間ではなく、各ユーザーとB2BUAの間で直接確立され、1つのコールは2つの完全に独立したSIPセッションに変わります。
- システムはRTPトラフィックプロキシ機能をサポートしていますか? IP PBXは、たとえば会話を録音するために、メディアストリームを自身に渡す必要があります。
- ユーザーはどのような追加アプリケーションを利用できますか? 従来、PBXシステムは、ボイスメール、電話会議、スタンバイ音楽、通話統計などの機能をサポートしています。
この記事の目的は、ソースコードで配布されている無料のIP PBXシステムを確認することです。これを上記の基準に従って比較します。 現在最も普及している成熟したオープンソースIP PBXシステムは次のとおりです。
それらをより詳細に検討しましょう。 しかし、最初に、次のメガトラックを立ち上げましょう!
アスタリスク
Asteriskプロジェクトは、1999年にアメリカ企業のLinux Support Servicesの所有者であり唯一の従業員であるMark Spencerによって開始されました。
マークはLinuxのシステム管理と商用サポートに関与し、Cでプログラミングされていました。
マークのクライアントの1人は、オフィステレフォニーを提供するという質問で彼に頼りました。 そして、LinuxベースのPBXを書くことにしました。 したがって、アスタリスクと呼ばれるプロジェクトが生まれました。
しばらくして、MarkはDigium社を設立しました。Digium社は、従来の電話ネットワーク(アナログおよびデジタルポート経由)でアスタリスクインターフェイスカードの製造を開始しました。
アスタリスクは、ユーザーと開発者の大きなコミュニティの周りに形成され、プロジェクトは積極的に開発し始めました。
現在、アスタリスク
は世界で
最も人気のあるオープンIP PBXであり、オープンソースPBXの約85%を占めています(一般に、オープンPBXは米国のPBX市場の約18%を占めています。オープンPBXは北米のテレフォニー市場の18%を占めています)。
アスタリスクの名前(英語の「アスタリスク」、記号*)は非常によく選ばれました。 ITでは、アスタリスクは任意の文字の置換、または無制限の文字数を示します。 アスタリスクの標準機能でさえ驚くべきことです。 アスタリスクのモジュール式アーキテクチャにより、ほぼすべてのプログラミング言語で記述されたビジネスロジック、またはアスタリスク独自のダイヤルプランで実装されたビジネスロジックをスイッチングフィールドに簡単に接続できます。
アスタリスク機能の要約リストは次のとおりです。
- IPテレフォニーと従来の通信回線の両方がサポートされています。 必要な数と組み合わせのアナログおよび/またはデジタルポートを備えたPCI Digiumカードを、Asteriskを備えたサーバーに挿入できます。
- すべての基本および高度なPBX機能がサポートされています。音声メニュー、通話録音、通話統計、保留音、ボイスメール、オペレーターによるキューイングと配信(コールセンター機能)、その他多数。
- Skypeは直接サポートされています(Digiumのchan_skypeチャネルドライバー)。ユーザーがノートブックからの短い番号を介してプッシュボタン式電話からSkypeを呼び出すことを可能にする小さなWEBアプリケーションもあります。
- サポートされているビデオ接続。
- 音声認識と音声生成のアプリケーションがあります。
- Asteriskの最新バージョンは、通話の暗号化をサポートしています。
- Asteriskには、他のシステム(AGIおよびAMI)と統合するためのシンプルで十分に文書化されたインターフェイスがあり、ビジネスプロセスおよびビジネスアプリケーションへの通信の統合を容易にします。
- Asteriskには、有料と無料の両方のさまざまなグラフィカル管理ツールが多数ありますが、その中で最も人気があるのは無料のWEBインターフェイスFreePBXです。 数分で通常のPCにIP PBXサーバーを展開できる既製のディストリビューションもあります。 最も人気のある無料のアスタリスクディストリビューションはTrixBox、Elastixです。 Asteriskの作者であるDigiumも、Asteriskに基づく商用ソリューションであるSwitchVoxを提供していることをお伝えします。SwitchVoxは、包括的なユニファイドコミュニケーションソリューションです。 SwitchVoxに加えて、アスタリスクに基づいた商用システムとオープンシステムの両方が数十あります。
- 最後に、Asteriskの周りには、ユーザー、開発者、インテグレーターの非常に大きなコミュニティがあり、Asteriskのさまざまな機能を互いに学び、使用するのを助けています。 RuNetの最大のコミュニティは、コミュニティ自体がコミュニティをサポートするために2004年に作成されたサイトasterisk-support.ruにあります。 また最近、今年の1月にasteriskpeople.ruプロジェクトが開始されました。このプロジェクトには、アスタリスクコミュニティの地図が表示されています。
現在、アスタリスクは以前よりもさらに急速に進化を続けています。 2010年だけでも、アスタリスクユーザーの数は2倍になりました。
数年前、アスタリスクの商用サポートまたはカスタム開発がごく少数の企業でしか得られなかった場合、今日、ロシアのすべての地域の数十社がアスタリスクソリューションに基づく技術サポートとシステム統合サービスを提供し、ビジネスでフリーソフトウェアを使用するリスクを完全に排除しました-リーズナブルな価格の企業であれば、トップクラスのアスタリスクスペシャリストから保証付きの支援を迅速に受けることができます。 ikov。
豊富なアスタリスク機能と積極的な開発もこの製品のマイナスです-初心者が大量の情報をすばやく習得することは困難です。 また、アスタリスクの最新バージョンでは、多数の追加および変更が原因で安定性の問題が発生する場合があります。
アスタリスクレビューの最後に、アスタリスクはオフィス向けのIP PBXソリューションであると言われるべきですが、多くの通信事業者はこのシステムを使用して顧客にさまざまなサービスを提供しようとしています。 しかし、アスタリスクはあまりうまくスケールしないため、これにはあまり適していません。
フリースイッチ
FreeSWITCHは、 2006年にAsteriskの元開発者の1人であるAnthony Minessaleによって作成され
たソフトウェアスイッチです。 高負荷下でアスタリスクを使用しようと何度も試みた後、Anthonyはシステムの基本アーキテクチャについて多くのコメントを行い、変更することを提案しました。 しかし、アスタリスクの作者であるマーク・スペンサーは、カーネルの変更を拒否しました。 そのため、AnthonyはAsterisk開発者を辞め、FreeSWITCHと呼ばれる製品を「ゼロから」作成しました。
FreeSWITCHのアーキテクチャを開発する際、著者は、IPテレフォニー用の既存のオープンソフトウェア製品のすべての問題を考慮しました。
したがって、新製品の主な利点の1つは、クロスプラットフォームと同様に、安定性とスケーラビリティです-FreeSWITCHはLinuxとWindowsの両方で実行されます。
FreeSWITCHのもう1つの機能は、Nokiaのsofia-sip SIPスタックの使用です。これは、ソースコードで配布されるSIPプロトコルの最良のオープンソース実装と考えられています。 アスタリスクでは、chan_sipは標準標準への不完全な準拠で実装されます。 SIPは、FreeSWITCHのメインプロトコルですが、従来のテレフォニーとの統合のためのPCIカードドライバーや他のIPテレフォニープロトコルもサポートされています。
FreeSWITCHは、SIPプロキシおよびSIPレジストラとして、セッションボーダーコントローラー(SBC)として、バックツーバックユーザーエージェント(B2BUA)をトランスコーディングとして、会議またはボイスメールサーバーとして使用できます。
FreeSWITCHは、コール転送、インターセプト、コールパーク、コール録音、リスニングなど、多くのIP PBX機能もサポートしています。
ただし、これまでのところ、FreeSWITCHで使用可能なIP PBXアプリケーションのリストは、アスタリスクのリストよりも劣っています。
FreeSWITCHを構成するための主要なインターフェイスはXMLテキストファイルであり、このシステムの管理を複雑にしますが、Asteriskはセクション/オプション形式の読みやすく便利な.iniファイルを使用します。
FreeSWITCHにはすぐに使用できるグラフィカルな管理インターフェイスがありません。これも使用を困難にします。 また、FreeSWITCH用の既存のGUI(WikiPBX、FusionPBX、blue.box)は、アスタリスク用の同じFreePBXとは機能が異なります。
ただし、FreeSWITCHは積極的に開発中です。 オープンテレコミュニケーションソフトウェア製品の専門家の中には、FreeSWITCHを「アスタリスクキラーアプリ」と呼ぶ人もいれば、他の人は(私も含めて)両方の製品に独自の特異性があるため、市場に存在する場所があると言います。
シプエク
SipXecs製品は、2004年にPingTelから無料で公開されたSipXpbxソフトウェアのソースコードに基づいています。
PingTelの専門家は、さまざまなメーカーのSIPデバイスが相互作用することに成功した最初の製品の1つを作成し、SIP構築のパイオニアと見なすことができます。 それ以来、SipXecsはSIP RFCの最も完全で正しい実装と見なされています。
SipXpbxの発売後、PingTelは商用製品SIPxchangeの開発を続け、パブリックドメインにさまざまなコードを定期的に投稿し、それらをSipXpbxに追加しました。
アクティブな開発者がオープンプロジェクトに接続したため、現在のライセンスポリシーでは、愛好家によって書かれたオープンソースコードを商用製品に含めることが許可されていないため、2つの異なる製品の保守が困難になりました。 2007年にこの問題を解決するために、PingTelはプロジェクトの構造を変更し、SipXpbxと組み合わせて、クローズドコードの残りをパブリックドメインに配置します。 新しいプロジェクトはSipXecsと呼ばれます。
2008年、PingTelはNortelに買収されました。 NortelはすでにSipXecsソースコード製品SCS(Software Communications System)を顧客に提供しています。 ノーテルの専門家は、商用SCS製品の開発とオープンソースのSipXecsプロジェクトの両方に多大な貢献をしています。
2009年、ノーテルは破産を申請し、商用SCS製品の所有権をAvayaに譲渡しました。 2010年3月、AvayaはSipXecsソースコードへのベストプラクティスの追加を停止しました。 その後、一部の元PingTel従業員を含むSipXecsユーザーのコミュニティは、現在プロジェクトのサポートと開発に従事している新しく作成された会社eZuceの屋根の下で団結しました。
SipXecsソフトウェアはプログラミング言語C ++およびJava(特にJavaでは、SIPスタックはJain SIPライブラリを使用して記述されます)で記述され、Linux OS上で実行されます。
これは、最初からWEB管理インターフェイスが組み込まれている唯一のオープンIP PBXシステムです。 Asteriskが音声プラットフォームとして位置付けられている場合、SipXecs開発者は自社製品を「ボックス化された」ユニファイドコミュニケーションソリューションと見なします。
アスタリスクの豊富な武器は、さまざまなモジュールの多数の構成ファイル、および管理用の組み込みコマンドライン(CLI)にあります。 SipXecsはWEBインターフェースを介して制御され、その中の開発者によって提供されるもののみを実行することが可能です。
アスタリスクは、アナログ、デジタル、複数のIPテレフォニープロトコルなど、さまざまな電話インターフェイスをサポートしています。 SipXecsは、純粋なSIPソリューションであるSIPのみをサポートします。 すべての電話機能は、SIPプロトコル仕様の一部として実装され、SIP / HTTP / XML-RPCプロトコルを介して通信する完全に独立したコンポーネントに配布され、1つまたは異なるサーバーで動作します。レベルは信頼性とスケーラビリティを提供します。
Asteriskが、さまざまなタイプのチャネルからの呼び出しを受け入れ、処理およびスイッチング(古いPBXとの置き換え)のために内部形式に変換する「マルチプロトコル」システムである場合、SipXecsは、SIPトランザクションを通過せずにルーティングするSIPプロキシですメディアストリーム、およびエージェントデバイス(IP電話)間で直接それらを閉じます。
ただし、SipXecsパッケージのすべての弱点は強力です。 メディアストリームはプロキシされないため、会話の録音など、いくつかの重要なPBX機能を実装することはできません。 また、ユーザーがプライベートIPアドレスを持つネットワーク内にいるときに問題が発生します-NATの問題。 必要に応じてトランスコーディングを実装することもできません。 ただし、これらの問題は、SipXecsアーキテクチャに有機的に適合し、会議サーバーやIVRサーバーなどの機能を実行するFreeSWITCHパッケージを使用して、SipXecsの最新バージョンで解決されます。
ヤテ
さらに別の電話エンジン(Yate)プロジェクトが2004年に開始されました。 サポートされているオペレーティングシステム:Linux、BSD、Windows。 C ++でYateによって書かれました。 Yateは外部SIPライブラリを使用しませんが、独自にSIPスタックを実装します。
Yateは、特に多くのPBX機能を含むソフトスイッチです。
- 通話の転送、保留、およびパーク。
- 保留音;
- 電話会議;
- キュー
- IVR
- 呼び出し統計
ただし、Yateは主に、非常に柔軟なルーティングルールを備えたマルチプロトコルスイッチです。 Yateは、H323、IAX2、MGCP、さまざまなレベルのSS7(MTP2、SIGTRAN)などのIPテレフォニープロトコル、およびさまざまなメーカーのデジタルストリーミングカードのドライバーをサポートしています。
Yateには、費用対効果の高いスケーラブルなソリューションを可能にするクラスタリングメカニズムも含まれています。
アーキテクチャ上、Yateはマイクロコアモデルとメッセージバスを使用し、正規表現を使用してメッセージをルーティングし、メッセージをバスに配置します。 このアーキテクチャにより、既存のコードに影響を与えることなく、新しいモジュールを簡単に追加できます。 Yateは電話の低レベルエンジンです。
YateとWEB管理インターフェイス-FreeSentralには特別な無料配布があります。FreeSentralには、コール転送、ボイスメール、ノートブックなどの設定を管理し、通話の統計情報を表示できるユーザーインターフェイスが含まれます。
レビューしたすべての製品の中で、Yateの機能は最も低くなっていますが、Yateの機能は非常に安定して機能します。 もう1つの欠点は、ドキュメントがないことです。
Yateの最も一般的な使用法は、H323-SIPシグナリングコンバーターです。
おわりに
オープン製品の中から組織のIP PBXシステムを選択することは非常に困難です。
状況は、原則としてすべてが同時に機能できるという事実によって悪化します。
この記事の著者によると、時間を割いてアスタリスク、FreeSWITCH、およびSipXecsを個別にテストし、より適切な製品を選択するべきではありません。
または、それらをすべて使用することもできます。 ユーザーが登録されているIP-PBXリファレンスとしてSipXecsを使用し、オーディオ会議サーバーとしてFreeSWITCHを、H323プロトコルを介してプロバイダーを接続するためのSIP-H323トランスレーターとしてYateを使用することを妨げるものはありません。 AsteriskでのH323の3つの実装、およびDigiumまたはSangomaストリームカードを備えたメディアゲートウェイとしてのアスタリスク、およびビデオインターコムなどの追加アプリケーション用のサーバーとしてのアスタリスク。
オープンで無料の電話ソリューションの世界へようこそ!
そして最後まで読んだ人のために-音楽ボーナス! お楽しみください!