5.サンプルプログラムを作成する

1.Microsoft Visual Studio Community 2017 を起動して、Visual C# の新規プロジェクトを作成します。ここでは分かりやすいコンソールアプリにします。

2.空のプロジェクトが作成されます。

3.空のプロジェクトが作成できたら、ソースファイルのある場所に移動して、前回作成した pjsua2.dll をこの中にコピーします。

4.既存の項目の追加で pjsua2.dll をプロジェクトに追加します。

5.pjsua2.dll が追加されました。

6.pjsua2.dll のプロパティを開いて、「ビルドアクション」を「コンテンツ」、「出力ディレクトリにコピー」を「常にコピーする」に設定します。

7.次にプロジェクトに新しいフォルダを作成し、名前を「pjsua2_libs」とします。(別に名前は何でもいいです。)

8.pjsua2_libsフォルダを選択した後、既存の項目の追加で、SWIGで作成したC#ファイルをすべて追加します。ファイルは、~\pjproject-2.8\pjsip-apps\src\swig\csharp にあります。

9.すべてのC#ファイルを選択して、「追加」をクリックします。

10.SWIGのすべてのC#ファイルが追加されました。

11.追加したC#ファイルのうち、pjsua_snd_dev_id.cs がエラーになるので、次のように修正します。

<修正前>

<修正後>

public enum pjsua_snd_dev_id {
PJSUA_SND_DEFAULT_CAPTURE_DEV = -1,
PJSUA_SND_DEFAULT_PLAYBACK_DEV = -2,
PJSUA_SND_NO_DEV = -3,
PJSUA_SND_NULL_DEV = -99
}

12.program.cs にサンプルプログラム(このページの最後にあります)を貼り付けます。

13.ソリューションのクリーンを実行します。

14.ソリューションのリビルド(またはビルド)を実行します。

15.実行してみます。初回のみ、セキュリティー警告が出るので「アクセスを許可する」をクリックします。

16.実行中の画面です。何かキーを押すと終了します。(SIPのレジストエラーなのは、SIP接続情報がサンプルのままだからです。)

17.実際の program.cs (サンプルプログラム)です。

【ソース元】

https://www.pjsip.org/docs/book-latest/html/intro_pjsua2.html#id1

【PJSUA2のドキュメント】

https://www.pjsip.org/docs/book-latest/html/index.html

  • 着信があると、onIncomingCall 関数が呼ばれます。
  • 引数 prm に着信情報(相手電話番号など)が受け渡されます。
  • onRegState 関数は、SIPレジスト処理の時に呼ばれます。
  • override できる関数は他にもありますので、興味がある方は試してみてください。