俳優:
HTTPサーバー
彼には特別なことは何も必要なく、HTTPプロトコルのサポートのみが必要です。
SIPサーバー
通常のSIPプロトコルに加えて-UDP、TCP、TLS、 WebSocketサポートが必要です。 WebSocketは非常に単純なプロトコルであり、次のように機能します。
- クライアントはTCPまたはTLSを介してサーバーに接続します
- クライアントがWebSocketに切り替えたいという兆候があるHTTPリクエストを送信します
- サーバーは101プロトコルスイッチングで応答します
- WebSocket接続は、デュプレックスモードでのデータ転送の準備ができており、実際には、送信データの各ブロックに小さなヘッダーを持つTCPです。
一部のSIPメッセージヘッダーには、次のようなトランスポート層プロトコル情報が含まれます。
Via: SIP/2.0/UDP 192.168.1.1;branch=z9hG4bKyQz1234567
また、WebSocketはSIPのメインドキュメントに記載されていないため、 拡張機能が必要でしたが、これはまだ標準ではありませんが、既に使用できます。 このドキュメントでは、rfc3261に根本的な変更はありません。ほとんどの場合、このようなヘッダーなどの明白なことを解決するだけです。
Via: SIP/2.0/ WS df7jal23ls0d.invalid ;branch=z9hG4bKyQz1234567
ブラウザ
ここではすべてがより複雑であり、多くのテクノロジーが必要です。SIPサーバーに接続するためのWebSocket。 JavaScriptで実装できるSIPスタック。 オーディオおよびビデオ伝送用のWebRTC。
仕組み
おそらく明らかです。スキーム全体の魅力は、プロトコル調整エージェントを必要としないことです。 ブラウザーのクライアントは本格的な参加者であり、SIPサーバーやハードIP電話などのクライアントと直接対話します。 唯一の要件は、WebRTCコーデックのサポートです。
テスト方法
アスタリスクがWebSocketを介して通信できるかどうかについての情報を見つけることができませんでした。 ただし、WebSocketをサポートするSIPサーバーは他にもあります。もちろん機能は劣りますが、テストには十分です。 たとえば、バージョン3.2以降のWindows サーバーは、WebSocketをサポートし、HTTPサーバーも組み込まれています。