openSIPSの変数

公式ドキュメントの中身を要約して書いていきます。

変数は4種類の観点から分類できます。

  1. 変数の視認性(スコープのこと?)
  2. 変数が何にくっついているのか
  3. 読み書き可能かどうか
  4. どれだけの複数の値を持つか(同じ変数として処理)

変数は$記号がついているため、一発で識別可能です。

擬似変数の構文

$(name(subname)[index]{transformation})

name

必須項目です。擬似変数の名前(種類)です。

subname

指定された型の特定の擬似変数の識別子です。例えば$hdr(From)であれば、hdrという種類の擬似変数のうちFromが参照されるし、$avp(i:25)であればAVPの整数型25が参照されます。

index

配列の要素の番号です。0から始まる整数値です。
ただし、負の値を与えることもでき、-1は配列の最後尾、-2はさらにその前を意味します。

transformation

擬似変数を加工することができます。様々な処理が用意されており、例えば文字数を数えるものやURIからホスト部を取り出すものがあります。
加工した結果は別の処理の入力として利用でき、処理を数珠つなぎにすることができます。

context

擬似変数が評価されるコンテクストを指定することができます。今のところreplyとrequestが存在しています。

使用例

nameだけ

$ru

nameとsubname

$hdr(Contact)

nameとindex

$(ct[0])

nameとsubnameとindex

$(avp(i:10)[2])

context

$(ru) reply routeからrequestのRequest-URIを取得
$(hdr(Contact)) replyの情報にfailure routeからアクセスする