猫型エンジニアのブログ

プログラム/ネットワーク系の技術関連をまとめたページです 

SIPお勉強 その9

 こつこつとSIPサーバの実装は進めています。レジストラを実装しているのですが、実装するたびに毎回発見があります。

 レジスタサーバにおいて「ドメイン」はキーとなる概念ですね。From/ToヘッダはAORですが、コンタクトアドレスはAORではないことの違いがようやくわかりました...。

登録サーバの動作(RFC3261 10 Registrations)

  • ロケーションサービス:特定のドメインのためにアドレスのバインディングを提供するサービス。
  • これらのアドレスバインディングは、送られてきたSIP URIまたはSIPS URIを何らかの形で希望するユーザーに近い一つ以上のURI(=コンタクトアドレス)に対応させる。(例:sip:bob@Biloxi.com→sip:bob@engineering.Biloxi.com)
  • 登録は、特定のドメインのためのロケーションサービス内に、Address-of-RecordのURIと一つ以上のコンタクトアドレスを関連付けるバインディングを生成する。

注意:

  • ここで「コンタクトアドレス」が強調されているが、第三者が登録代行をする場合はToフィールドが必ずしもコンタクトアドレスと一致するとは限らないことに注意。
  • コンタクトアドレスはFQDNIPアドレスも可)におけるユーザ名からなるSIP URISIPS URI
  • AORはロケーションサービスのドメイン下にあるが、コンタクトアドレスは必ずしもロケーションサービスのドメイン下にあるとは限らないことに注意。コンタクトアドレスとAORは「階層が異なる」ので、ロケーションサービスによるマッピングが必要となる。