Webテレフォニー。 ソリューションの概要

電話番号 この記事では、 Webプロジェクトの音声通信を実装する方法について説明します

この記事は概要を説明するものであり、幅広い読者を対象としています。 しかし、誰もが問題の本質を深めるために必要なすべてのリンクを見つけるでしょう。



次のタスクが考慮されます。

  1. サイトユーザー間の一対一の音声通信。
  2. 音声会議、つまり、2人以上の対話者の会話。
  3. ブラウザから固定電話と携帯電話への呼び出し。
繰り返しますが、すべてのタスクはweb-environmentのフレームワーク内で解決されます 。 主な条件:ユーザーは追加のソフトウェアをインストールする必要はなく、ブラウザとFlash Playerのみをインストールする必要があります。



はじめに



まず、どのテクノロジーが自由に使えるかを理解する価値があります。 現実的には、本質的に唯一のオプションはFlashを使用することです。 はい、他の技術もありますが、残念ながら、それらはすべてあまり一般的ではありません。 Flashはほぼ全員にインストールされます



Flashの良いところは、ストリーミングオーディオビデオで作業できることです。 Flashアプリケーションでオーディオストリームを操作するには、主に2つの方法があります。

今日の最良のソリューション:P2Pプロトコルを使用する可能性を動的に決定します。 可能であれば使用してください。それ以外の場合は、最初のオプションを使用してください。

また、近い将来、Flashサーバーがクライアントアプリケーションとの通信にUDPプロトコルを使用できるようになることを期待しています。 この場合、最初のソリューションの欠点の多くはなくなります。 TCPプロトコルはデータの配信を保証しますが、UDPは保証しません。 音声トラフィックをリアルタイムで送信するには、データの正確性は必要ありません。保証された配信時間と定期的な送信チャネル障害に対する耐性が必要です。 これが、この場合にUDPが優先される理由です。



より具体的なことに移りましょう。



一対一の音声通信



開発者の観点から見ると、オーディオ送信を実装するための2つのオプション(サーバーを経由するリレーと経由しないリレー)はそれほど違いはありません。 どちらの場合も、外部サーバーが必要です。 ただし、P2Pの場合、サーバーは接続の確立においてサポートする役割のみを実行します。 すべての音声トラフィックは、クライアントからクライアントに直接送られます。 P2P接続を確立するためのサーバーはStratusと呼ばれます。 間もなく、その機能はFlash Media Server(および明らかにRed5)に組み込まれる予定です。 現在、唯一のオプションは、アドビのパブリックベータサービスを使用することです。



新しいP2Pプロトコルの使用に関するすばらしい記事はこちらです。

実装例はこちらです。



リレーサーバーを使用する場合、タスクはFlash環境の標準です。 この場合、P2Pの場合の主な考え方は、各対話が発信オーディオストリームを発行し、着信オーディオストリームをサブスクライブすることです。 データは、 RTMPプロトコル(P2Pの場合はRTMFP)を使用して送信されます。



1対1の音声通信の実装における重要な問題の1つは、着信コールに関するユーザーのアラームです。 ユーザーが通話の開始者である場合、ユーザーは音声トラフィックの送信と受信をどの時点で開始するかを知っています。 発信者については、これを通知するために何らかの方法が必要です。 この問題を解決する方法は、特定のアプリケーションの問題です。

両方のオプションには、サーバー側での基本的なWeb開発ツール(たとえば、php)の使用が含まれます。 ただし、原則として、メディアサーバーをこのタスクに適合させることもできます。 クライアント側ではJavaScriptまたはFlashを使用できます。

1対1の音声通信の場合、上記の最適と呼ばれるスキームを実装するのは非常に簡単です。 つまり、可能な場合はP2Pを使用し、それ以外の場合はメディアサーバーを使用します。



会議組織



会議を開催するとき、実際には何も変わりません。 すべての会議参加者が一度にすべてのユーザーのオーディオストリームにサブスクライブするようになりました。

繰り返しますが、サーバーとP2Pの両方を使用して実装できます。 ただし、この場合、P2Pが機能しない可能性は、交換に2人の参加者がもはや存在しないという単純な理由により高くなりますが、それ以上は誰にも機能しません。



固定電話と携帯電話への呼び出し



おそらく、検討された人々の中で最も興味深いトピックです。 この問題を解決するために、IPテレフォニーオペレーターのSIPゲートウェイが使用されます。 作業のスキームは次のとおりです。

  1. RTMPプロトコルを介したFlashクライアントとメディアサーバー間の双方向オーディオデータ伝送が編成されます。
  2. メディアサーバー側では、音声トラフィックのトランスコーディングが発生します。 つまり、あるコーデックから別のコーデックにオーディオをトランスコードします。 Flashは、 NellymoserSPEEXの 2つの音声コーデックをサポートしています(バージョン10以降)。

    また、メディアサーバーはSIPプロトコルスタックで動作できる必要があります。
  3. したがって、メディアサーバー側では、Flash Player <-> SIPというブリッジが構築されます。
Red5phoneは、説明されているスキームを実装するオープンソースプロジェクトです。 このプロジェクトは未加工ですが、良い出発点です。



実施例



P2Pプロトコルを使用したユーザーの1対1の音声通信は、ソーシャルネットワークVKontakte。Onlineのアプリケーションに実装されています。

また、アプリケーションからSIPゲートウェイを介して固定電話と携帯電話に電話をかけるための技術プラットフォームが実装されました。 ただし、この技術は一般公開されませんでした。

Flash <-> SIPバンドルの実装例: flaphone project



用途



説明されているテクノロジーには多くの用途があります。 たとえば、エンジン内でCMSシステムを使用したり、会社のWebサイトであるオンラインストアで電話サポートサービスを編成したりします。



All Articles