XMPPでP2Pの音声チャットセッションを確立する方法3
の続き
libjingleでcallサンプル(P2Pの音声電話)を動かしてみて、
ログみてどういうxmpp stanza送りあってるのかなぁ、見てみる。
call.exe に -d オプションをつけて動かすとデバッグ情報がログに出てくる
libjingleではGIPSMediaEngineとlinphoneというのにデフォルト対応していますが
GIPSMediaEngine手に入らないし
linphoneはWindows上でうまくbuildできないので
とりあえず適当なpayload-typeを指定しています。
IPアドレスも適当にしています
XMPPのJIDはこんな感じ
caller: [email protected]/callB3B38FB3
callee: [email protected]/call7DA716D7
ところで悲しいことに、、
libjingle Developer Guide
libjingle was created at about the same time as the Jingle XMPP extension (XEP-0166). The libjingle team created their own protocol to handle session negotiation, and later worked with the XMPP Standards Foundation to standardize Jingle; thus, although the libjingle protocol and Jingle are very similar, they are not the same, and are not interoperable.
libjingleは前回までみてきたjingle specとは非互換だしjingleの方は実装してない、さらにlibjingleの独自実装は(たぶん探しても見つからないので)仕様非公開。
いちいち難所がありますな><
very similarに期待して進みます。
セッション開始
非同期にいろいろ送りあってるので、
req/resの組み合わせがわかる
SEND >>>>>>>>>>>>>>>>>>>>>>>>> : Sun Sep 21 17:30:02 2008
[xml]
[/xml]
続けて自分の候補を送る(emobileでグローバルIP持ってる)
[xml]
RECV < <<<<<<<<<<<<<<<<<<<<<<<< : Sun Sep 21 17:30:03 2008
[xml]
もう1個候補を送る(こっちはhamachiのIP、オフライン)id=”9″
SEND >>>>>>>>>>>>>>>>>>>>>>>>> : Sun Sep 21 17:30:03 2008
[xml]
[/xml]
RECV < <<<<<<<<<<<<<<<<<<<<<<<< : Sun Sep 21 17:30:03 2008
[xml]
[/xml]
id=”8″に対してackを返すSEND >>>>>>>>>>>>>>>>>>>>>>>>> : Sun Sep 21 17:30:03 2008
[xml]
こんな感じで続く。。。。
finally…
STUNのところはlibjingleロギングしてくれないのでこれから見ますが、、
つながったら、こんな。
payload-type(カスタムのやつ)を受け入れますよ、ってところでしょうか
RECV < <<<<<<<<<<<<<<<<<<<<<<<< : Sun Sep 21 17:30:13 2008
[xml]
[/xml]
[xml]
さて、次はSTUNのやり取りをみてみる