PJSIP and PJMEDIA のインストール方法

2010/5/10 こうちゃんパパ
PJSIPコンパイル方法と動作確認
1.アーカイブ
(1)pjproject-1.5.5.zip
(2)DXSDK_Aug09.exe(C:\Program Files\Microsoft DirectX SDK (August 2009))
(3)PSDK-x86.exe(C:\Program Files\Microsoft Platform SDK\)
※コンパイラは、「Microsoft Visual C++ 2008(以下、"VS8"と略す)」を使用
2.解凍
(0)VS8はインストール済みであり、また、一度起動していることを前提とする。
一度起動すると、環境作成が行われ、
C:\~\My Documents\Visual Studio 2008\Projectsディレクトリができているはずである。
(1)pjproject-1.5.5.zip
①解凍すると、pjproject-1.5.5ディレクトリができる。
②pjlib/include/pj配下に空ファイルconfig_site.hを作成する。
③このディレクトリをC:\~\My Documents\Visual Studio 2008\Projectsディレクトリに移動させる。
(2)DXSDK_Aug09.exe
①実行すると、インストールが始まる。※デフォルトで問題ないみたい。
②C:\Program Files\Microsoft DirectX SDK (August 2009)ディレクトリができる。
(3)PSDK-x86.exe
①実行すると、インストールが始まる。※デフォルトで問題ないみたい。
②C:\Program Files\Microsoft Platform SDK\ディレクトリができる。
3.コンパイル
3.1.準備(VS8)
①ツール→オプション→プロジェクトおよびソリューション→VC++ディレクトリと選択する。
②ライブラリパスを設定する
「ライブラリ」に以下を追加する。
C:\Program Files\Microsoft DirectX SDK (August 2009)\Lib\x86
C:\Program Files\Microsoft Platform SDK\Lib

②インクルードパスを設定する
「インクルード」に以下を追加する。
  C:\Program Files\Microsoft DirectX SDK (August 2009)\Include
C:\Program Files\Microsoft Platform SDK\Include

3.2.ビルド
①「ファイル」→「開く」→「プロジェクト/ソリューション」で
\Projects\pjproject-1.5.5\pjproject-vs8.slnを開く。
※VS8用にソリューションが変換されます。警告が出るが気にしない。
②「ソリューション構成」を”Debug”に、「ソリューションプラットフォーム」を”Win32”に設定する。
※上ツールの中央あたり
③ソリューションエクスプローラで「pjsua」を選択し、「プロジェクト」→「スタートアッププロジェクトに設定」をクリックする。選択されると太字になる。
④「pjsua」を右クリックし「ビルド」をクリックすると、コンパイルが始まる。
⑤ビルド中にエラーがなければ、
pjsip-apps/binに実行ファイル(pjsua-i386-Win32-vc8-xxxx.exe)が作成される。
※ソリューション構成が"Debug"なら、pjsua-i386-Win32-vc8-Debug.exe
※ソリューション構成が"Release"なら、pjsua-i386-Win32-vc8-Release.exe
4. 動作確認
4.1.環境
①SIPサーバ asrterisk 10.19.157.201
②PJSIP sip:202@10.19.157.188 内線202
③X-Lite sip:201@10.19.157.171 内線201
4.2.起動
4.2.1.asrterisk(①)および、X-Lite(③)は設定、起動されていることを前提とする。
4.2.2.PJSIP
(1)コマンドプロンプトを起動
(2)実行ファイル(pjsua-i386-Win32-vc8-xxxx.exe)を以下の引数で実行。
※ファイル名が長いので、以下では、"pjsua_vc8d.exe"と略す。
※実行ファイルへのパスも長いので、実行ファイルをc:\tempあたりにコピーして試験した。
pjsua_vc8d.exe --id=sip:202@10.19.157.188 --registrar=sip:asrterisk@10.19.157.201 --realm=* --username=202 --password=pass --local-port=5061

--id=ローカルのSIP URL
--registrar=SIPサーバのIP URL
--realm=* (不明な場合)
--username=ユーザ名
--password=パスワード

(3)SIPサーバにREGISTされることを確認する。
4.3.操作
4.3.1.電話をかける(PJSIP(202)→X-Lite(201))
①「m」+ Enter キーを押します。
②相手先SIPアドレスを入力してEnterキーを押します。
(例)sip:201@10.19.157.201+ Enter ※接続先IPは、SIPサーバです。
③自分と相手先に、呼び出しが掛かります。
④相手先が受話器を上げる(オフフック)と、通話が始まります。
4.3.2.電話を受ける(X-Lite(201)→PJSIP(202))
①相手(X-Lite)から202に電話を掛ける)
②自分に呼び出しが掛かります。
③「a」 + Enterキーを押します。
④相手への応答コードをきかれるので「200」+ Enterキーを押します。※200とはOKのこと。
⑤通話が始まります。
4.3.3.通話終了
①「h」 + Enterキーを押します。
4.X.変な確認方法?(確証なし)
4.X.1.前提
 PCは1台しかない、SIPサーバを立ち上げるのは面倒くさい、けど、PJSIPが動作しているのかを確認して見たい。※動作してる確証はありませんが...
4.X.2.環境
①PJSIP1 sip:201@10.19.157.188 内線201 5060
②PJSIP2  sip:202@10.19.157.188 内線202 5061
4.X.3.起動
※コマンドプロンプト窓を2つ起動する
(1)PJSIP1
pjsua_vc8d.exe --id=sip:201@10.19.157.188 --realm=* --username=201 --local-port=5060

(2)PJSIP2
pjsua_vc8d.exe --id=sip:202@10.19.157.188 --realm=* --username=202 --local-port=5061

4.X.4.操作
(1)電話をかける(PJSIP1(201:自分)→PJSIP2(202:相手))
①自分は、「m」+ Enter キーを押します。
②相手先SIPアドレスを入力してEnterキーを押します。
(例)sip:202@10.19.157.188 + Enter ※接続先IPは、ローカルのJPSIP2です。
③自分と相手先に、呼び出しが掛かります。
 ★1つのスピーカしかないので、どちらの呼び出し音か分りませんが、聞こえました。
④相手は、「a」 + Enterキーを押します。
⑤相手への応答コードをきかれるので「200」+ Enterキーを押します。
⑥通話が始まります。
 ★1つのマイクとスピーカしかないのですが、ループバックしたように聞こえました。
 →ローカルループバックしているためか、WireSharkでパケットは確認できないので、かなり怪しい。WireShark
X.参考文献
(1)http:/http://www.asahi-net.or.jp/~pm5m-on/it/voip/pjsip/pjsip_win/index.htm(2)http:/http://bluestick.jp/tech/index.php/category/pjsip