広告
広告
https://www.7key.jp/nw/technology/vopn/sip.html#what
SIPは、マルチメディアセッションやVoIPを応用したインターネット電話などで用いられる2つ以上のクライアント間でセッションを確立するためのプロトコルです。実際の電話など通信を行うための通信機器の情報はSDP【Session Description Protocol】で処理し、データ通信にはRTPを用います。つまり、SIPはセッションの開始、変更、終了といった基本的な機能のみを提供するセッション層のプロトコルです。
https://www.7key.jp/nw/technology/vopn/sip.html#ua
ユーザエージェントは、SIPリクエストを処理するための論理的な構成要素を指します。ユーザエージェントにはUACとUASの2種類があります。インターネット電話で例えた場合、SIP電話機は発信の際にはUACとなり、着信の際にはUASとなります。
ユーザエージェントクライアントの略語。SIPリクエストを生成/送信し、レスポンスを受信/処理するユーザエージェントを指します。
ユーザエージェントサーバの略語。SIPリクエストを受信/処理し、レスポンスを生成/送信するユーザエージェントを指します。
https://www.7key.jp/nw/technology/vopn/sip.html#server
SIPサーバは、SIPリクエストを処理するためのサーバで、機能に応じてプロキシサーバ、リダイレクトサーバ、ロケーションサーバ、レジストラなどに分類されます。これらのサーバは論理的な要素であるため、それぞれ物理的に別にしても構いませんし1台の機器にまとめても構いません。
SIPリクエストの次の転送先を解決し、そのリクエストを転送するためのサーバです。プロキシサーバは、リクエストメッセージを転送する前にそれを解釈し、必要に応じてその中身の特定部分を書き換えることもできるため、何らかのポリシーを設定する際にも有用です。ネットワーク構成によっては複数のサーバをホップする可能性もあります。
SIPリクエストの次の転送先を解決し、その転送先を応答するサーバです。UACはその転送先に発信しなおすこととなります。
登録サーバからの登録情報をストアし、リダイレクトサーバやプロキシサーバによる着URIの参照要求に応答するサーバです。通常、プロキシサーバやリダイレクトサーバと同一ホスト上で動作します。他のSIPサーバがロケーションサーバに問い合わせを行う手段はSIPでは規定されていません。
REGISTERリクエストを受信し、そのリクエストで受け取る情報を操作するドメインのロケーションサービスに登録するサーバです。通常、プロキシサーバやリダイレクトサーバと同一ホスト上で動作します。
https://www.7key.jp/nw/technology/vopn/sip.html#message
SIPはテキストベースのプロトコルであり、UTF-8文字セットを用います。SIPメッセージには、クライアントからサーバへのリクエスト、又はサーバからクライアントへのレスポンスのどちらかです。リクエストメッセージと応答メッセージは共に、開始行、各メッセージのヘッダ行、空行の最後はCRLFとしなければなりません。SIPメッセージの基本的な構成は次の通りです。
リクエスト行あるいはステータス行のことをスタートラインと呼びます。
INVITE sip:bob@biloxi.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 To: Bob <bob@biloxi.com> From: Alice <alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710 CSeq: 314159 INVITE Max-Forwards: 70 Date: Thu, 21 Feb 2002 13:02:03 GMT Contact: <sip:alice@pc33.atlanta.com> Content-Type: application/sdp Content-Length: 147 v=0 o=UserA 2890844526 2890844526 IN IP4 here.com s=Session SDP c=IN IP4 pc33.atlanta.com t=0 0 m=audio 49172 RTP/AVP 0 a=rtpmap:0 PCMU/8000
SIP/2.0 200 OK Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bKnashds8;received=192.0.2.3 Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1;received=192.0.2.2 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds ;received=192.0.2.1 To: Bob <sip:bob@biloxi.com>;tag=a6c85cf From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.atlanta.com CSeq: 314159 INVITE Contact: <sip:bob@192.0.2.4> Content-Type: application/sdp Content-Length: 131
https://www.7key.jp/nw/technology/vopn/sip.html#sip_address
SIPにて相手を指定する方法は、IPアドレスによる指定やSIP URIによる指定などがあります。SIPアドレスは基本的に電子メールアドレスと同様に「user@host」(user:ユーザ名/host:ホスト名)との表現になります。SIP URIは、SIPアドレスにSIPプロトコルを示すsip:
を前に付けた形式で、次の形をとります。
sip:user:password@host:port;uri-parameters?header
https://www.7key.jp/nw/technology/vopn/sip.html#sip_work
https://www.7key.jp/nw/technology/vopn/sip.html#supplement
エンドツーエンドのセキュリティにはPGPの実装が必須。
ホップバイホップのセキュリティにはIPsec/AHなどを用いる。
IPの他に、ATM-AAL5やIPX、フレームリレー、X.25などをインフラとして用いることも可能。
メソッド | 処理 | 参照RFC |
---|---|---|
ACK | INVITEに対するレスポンスを受け取ったことを通知 | RFC3261 |
BYE | コールの終了 | RFC3261 |
CANCEL | 未応答のINVITEリクエストをキャンセル | RFC3261 |
INFO | セッションに関する情報を通知 | RFC2976 |
INVITE | ユーザをコールに招待 | RFC3261 |
MESSAGE | メッセージ送信 | RFC3428 |
NOTIFY | ユーザの情報伝達 | RFC3265 |
OPTIONS | UAが持つ機能を問い合わせる | RFC3261 |
PRACK | 信頼性のある暫定応答 | RFC3262 |
PUBLISH | - | RFC3903 |
REFER | 転送 | RFC3515 |
REGISTER | ユーザの現在位置を登録する | RFC3261 |
SUBSCRIBE | ユーザの情報伝達要求 | RFC3265 |
UPDATE | セッション情報の更新 | RFC3311 |
Provisional 1xx:暫定応答/リクエストを受信・処理中 | |
100 | Trying |
180 | Ringing |
181 | Call Is Being Forwarded |
182 | Queued |
183 | Session Progress |
Successful 2xx:成功応答/リクエストは成功 | |
200 | OK |
202 | Accepted |
Redirection 3xx:リダイレクト/リクエストの完了には更なる処理が必要 | |
300 | Multiple Choices |
301 | Moved Permanently |
302 | Moved Temporarily |
305 | Use Proxy |
380 | Alternative Service |
Request Failure 4xx:リクエストエラー/リクエストの書式に誤りがあるかこのサーバーで処理できない | |
400 | Bad Request |
401 | Unauthorized |
402 | Payment Required |
403 | Forbidden |
404 | Not Found |
405 | Method Not Allowed |
406 | Not Acceptable |
407 | Proxy Authentication Required |
408 | Request Timeout |
410 | Gone |
412 | Conditional Request Failed |
413 | Request Entity Too Large |
414 | Request-URI Too Long |
415 | Unsupported Media Type |
416 | Unsupported URI Scheme |
417 | Unknown Resource-Priority |
420 | Bad Extension |
421 | Extension Required |
422 | Session Interval Too Small |
423 | Interval Too Brief |
428 | Use Identity Header |
429 | Provide Referrer Identity |
436 | Bad Identity-Info |
437 | Unsupported Certificate |
438 | Invalid Identity Header |
480 | Temporarily Unavailable |
481 | Call/Transaction Does Not Exist |
482 | Loop Detected |
483 | Too Many Hops |
484 | Address Incomplete |
485 | Ambiguous |
486 | Busy Here |
487 | Request Terminated |
488 | Not Acceptable Here |
489 | Bad Event |
491 | Request Pending |
493 | Undecipherable |
494 | Security Agreement Required |
Server Failure 5xx:サーバエラー/サーバでのリクエスト処理に失敗 | |
500 | Server Internal Error |
501 | Not Implemented |
502 | Bad Gateway |
503 | Service Unavailable |
504 | Server Time-out |
505 | Version Not Supported |
513 | Message Too Large |
580 | Precondition Failure |
Global Failures 6xx:グローバルエラー/リクエストをどのサーバーでも処理できない | |
600 | Busy Everywhere |
603 | Decline |
604 | Does Not Exist Anywhere |
606 | Not Acceptable |
ヘッダ名 | 短縮形 | 内容 |
---|---|---|
Accept | - | 受け入れ可能な形式 |
Accept-Contact | a | - |
Accept-Encoding | - | 受け入れ可能なコンテンツのエンコーディング |
Accept-Language | - | 受け入れ可能な言語 |
Accept-Resource-Priority | - | - |
Alert-Info | - | 代替の呼び出し音 |
Allow | - | UAがサポートするメソッド |
Allow-Events | u | - |
Authentication-Info | - | 認証情報 |
Authorization | - | 認可情報 |
Call-ID | i | 特定のINVITE、または特定のクライアントを一意に識別するID |
Call-Info | - | 呼の付加情報 |
Contact | m | メッセージ送信者のコンタクトアドレス |
Content-Disposition | - | ボディ部の解釈方法 |
Content-Encoding | e | ボディ部のエンコーディング |
Content-Language | - | ボディ部の言語 |
Content-Length | l | ボディ部の長さ |
Content-Type | c | ボディ部のメディアタイプ |
CSeq | - | トランザクションのシーケンス番号 |
Date | - | メッセージの送信日時 |
Encryption | - | - |
Error-Info | - | エラー応答の付加情報 |
Event | o | - |
Expires | - | 期限切れ時間 |
From | f | メッセージの送信者 |
Hide | - | - |
History-Info | - | - |
Identity | y | - |
Identity-Info | n | - |
In-Reply-To | - | 送信元のCall-ID |
Join | - | - |
Max-Forwards | - | リクエストチェーン内の最大転送回数 |
MIME-Version | - | MIMEバージョン |
Min-Expires | - | 最小更新間隔 |
Min-SE | - | - |
Organization | - | メッセージ送信元の組織名 |
P-Access-Network-Info | - | - |
P-Asserted-Identity | - | - |
P-Associated-URI | - | - |
P-Called-Party-ID | - | - |
P-Charging-Function-Addresses | - | - |
P-Charging-Vector | - | - |
P-DCS-Trace-Party-ID | - | - |
P-DCS-OSPS | - | - |
P-DCS-Billing-Info | - | - |
P-DCS-LAES | - | - |
P-DCS-Redirect | - | - |
P-Media-Authorization | - | - |
P-Preferred-Identity | - | - |
P-User-Database | - | - |
P-Visited-Network-ID | - | - |
Path | - | - |
Priority | - | リクエストの優先度 |
Privacy | - | - |
Proxy-Authenticate | - | プロキシの認証チャレンジ |
Proxy-Authorization | - | プロキシ向けの認可情報 |
Proxy-Require | - | プロキシでサポートが必要な情報 |
RAck | - | - |
Reason | - | - |
Record-Route | - | プロキシが挿入するリクエストの経路記録 |
Refer-Sub | - | - |
Refer-To | r | - |
Referred-By | b | - |
Reject-Contact | j | - |
Replaces | - | - |
Reply-To | - | 論理的な返信先URI |
Request-Disposition | d | - |
Require | - | UACが要求するUASにサポートを求めるオプション |
Resource-Priority | - | - |
Response-Key | - | - |
Retry-After | - | リクエストを再試行する場合の予定時間 |
Route | - | プロキシの経路指定 |
RSeq | - | - |
Security-Client | - | - |
Security-Server | - | - |
Security-Verify | - | - |
Server | - | UASが使用するソフトウェアの情報 |
Service-Route | - | - |
Session-Expires | x | - |
SIP-ETag | - | - |
SIP-If-Match | - | - |
Subject | s | この概要を示す件名 |
Subscription-State | - | - |
Supported | k | サポートするすべての拡張を列挙 |
Target-Dialog | - | - |
Timestamp | - | UACがメッセージを送信した時間 |
To | t | リクエストの論理的な受信者 |
Unsupported | - | サポートしない機能を列挙 |
User-Agent | - | UAに関する情報 |
Via | v | リクエストまたは応答のルートパス |
Warning | - | 警告応答ステータスの付加情報 |
WWW-Authenticate | - | 認証チャレンジ |
広告