debiancdn

AWS, Content Delivery Network and Debian

日別アーカイブ: 2009/06/22

SIPやらXCAPやらのテストtoolのSeagull

Seagullは大変便利なtoolなのだが,CRLFが変ではまったのでメモ.

seagull 1.8.0.1での話.(svnのtrunkでもおなじ).

シナリオ記述のところで

       <set-value name="call-id" 
                  format="$(callid-counter)@255.255.255.255"></set-value>
       <set-value name="from" 
                  format="<sip:bob@example.jp>;tag=$(callid-counter)"></set-value>
       <set-value name="cseq" 
                  format="$(callid-counter) SUBSCRIBE"></set-value>
     </action>
     <message>
     <!-- header -->
     <![CDATA[SUBSCRIBE sip:xdms.example.jp SIP/2.0
         Call-Id: $(call_id)
         CSeq: $(cseq)
         From: $(from)

とかすると,

"Call-Id: 1@255.255.255.255"
"CSeq: 1 SUBSCRIBE\nFrom: <sip:bob@example.jp>;tag=1\nTo: <sip:alice@example.jp>"

といった具合で,CRLFにならずに,LFだけがはいったものが送信されてしまう.

解答

むりやり "\r" を指定する

       <set-value name="cseq" 
                  format="$(callid-counter) SUBSCRIBE\r"></set-value>

ついでなので,その他気がついたこと

あたらしいヘッダフィールドを追加するには

fielddefで定義する

もどってくるmessageなんわからん

<receive></receive>の内側に<message />を書かなければok. というか -msgcheck をつけて起動しない限り,ノーチェック

<send />中のContent-Lengthなんてわからん

適当な数字をいれておけばかってにつけて送信するようだ.