openSIPSはじめました

わけあってOpenSIPSを使うことになりましたので、記録を残していこうと思います。
勉強しながらその都度書いていきますので、まとまらないし間違った記事が多く上がると思います。気づいたらその都度訂正記事を上げていくつもりでいますが、ご指摘いただければ幸いです。

特殊な環境ですが、作業環境はOpenWRTです。本番環境はOpenWRT及びRHEL6互換ディストリビューションを想定しています。
インストールもとりあえず基本的なopenSIPSのパッケージを一つだけインストールしました。

openSIPSの設定ファイルで難解に感じる部分はrouting scriptでした。
これはAsteriskの設定を行うことに比べて(不慣れなせいもあってか)かなり難解です。

いきなり設定作業をやるよりも、まず敵を知らなくてはということで、公式サイトにあるopenSIPSのFeatures(http://www.opensips.org/Resources/Features)を読んで見ることにしました。

ざっと眺めてみます。

  • robust and performant SIP (RFC3261) Registrar server, Location server, Proxy server and Redirect server

つまりopenSIPSはこれらの役割ができるということですね。
Registrar serverというのは端末の登録を受け付けるサーバーで、後述のProxy serverやRedirect serverと一緒に配置します。
Location serverは端末の場所(IP addressとか)を蓄積するデータベースです。通信にはSIPを使いません(LDAPとか)。
Proxy serverはUA(User Agent)が直接UAとやり取りする代わりに、UAUAの間に入って問い合わせをしたり返事をしたりするサーバーです。
Redirect serverはUAに対して探しているUAが見つかりそうな場所を案内するサーバーで、自分で誰かにリクエストを出すことはしません。

幾つか飛ばして

  • stateless and transactional statefull SIP Proxy processing

つまりSIP Proxyの動作としてはstatelessとstatefullの両方ができるものの、call statefullではないということですね。

さらに幾つか飛ばしますが、

  • variables support in script - script variables, pseudo-variables (access to the SIP messages), AVPs (values persistent per SIP transactions)

これは覚えておいたほうがよさそうですね。変数をスクリプトの中で使えるようです。pseudo-variablesはSIPメッセージの中身を操作するもので、AVPSIPトランザクション単位で値を持ち回るためのものらしいですね。

  • authentication, authorization and accounting (AAA) via database (MySQL, Postgress, text files), RADIUS and DIAMETER

認証・承認・アカウンティングをDatabaseを使ってできるようです。これはできないと不便なので具備すべき機能でしょう。さらにRADIUSやDIAMETERをつかうこともできるようです。これらは私自身が使ったことがないので便利なのかどうかわかりません。

  • Presence Agent support (many additional integration features)

プレゼンスに関わる用語としては、Presence User Agent (PUA), Presence Agent (PA), Presence server, Edge Presence serverといったものがありますね。
一応自分自身の確認のために書いておきます。
- PUA - Presence Agentに情報を送るもの(SUBSCRIBEする)
- PA - PUAからのSUBSCRIBEを受け取り、SUBSCRIBE応答を返すもの
- Presence Server - PUAがSUBSCRIBEを送る物理エンティティで実態はPAもしくはProxy
- Edge Presence server - PUAと同じ場所に置かれるPA
ここで、Presence Agent supportと言っているので、Presence Serverになることができるということです。

ひとまずはここまで。