ブラウザでのSIPクライアントの動作原理

投稿へのコメントで話した 、私は誰もがブラウザのSIPの原理を完全に理解しているわけではないことに気付きました。 したがって、私は即席の短い記事を書くことにしました。一般的な用語でこのトピックを明らかにします。




俳優:

HTTPサーバー


彼には特別なことは何も必要なく、HTTPプロトコルのサポートのみが必要です。

SIPサーバー


通常のSIPプロトコルに加えて-UDP、TCP、TLS、 WebSocketサポートが必要です。 WebSocketは非常に単純なプロトコルであり、次のように機能します。

一部の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サーバーも組み込まれています。

Source: https://habr.com/ru/post/J144391/


All Articles