计算机系统应用教程网站

网站首页 > 技术文章 正文

PJSIP 2.12.1 编译 与 C# Pjsip (Pjsua2 api )应用

btikc 2024-10-30 02:16:48 技术文章 6 ℃ 0 评论

一、准备

1.visual studio 2022

https://visualstudio.microsoft.com/zh-hans/downloads/




2.swigwin-4.0.2

https://sourceforge.net/projects/swig/files/swigwin/swigwin-4.0.2/swigwin-4.0.2.zip



3.PJSIP 2.12.1 源码

https://github.com/pjsip/pjproject/archive/refs/tags/2.12.1.zip


二、编译

1.使用VS2022打开pjproject-vs14.sln


2.在pjlib\include\pj目录下添加空文件config_site.h

3.设置解决方案平台 Win32



4.cmd 定位到源码路径 pjsip-apps\src\swig\csharp,使用“SWIG”为 PJSUA2 库生成C#包装器

swig -I../../../../pjlib/include -I../../../../pjlib-util/include -I../../../../pjmedia/include -I../../../../pjsip/include -I../../../../pjnath/include -w312 -c++ -csharp -o pjsua2_wrap.cpp ../pjsua2.i



4.创建C++动态链接库,并添加对“libpjproject”和“pjsua2_lib”的引用



5.pjsua2项目属性中

常规->输出目录

.\output\$(ProjectName)-$(TargetCPU)-$(PlatformName)-vc$(VSVer)-$(Configuration)\



C/C++ -> 常规 -> 附加包含目录

../pjsip/include;../pjlib/include;../pjlib-util/include;../pjmedia/include;../pjnath/include;%(AdditionalIncludeDirectories);

C/C++ -> 预编译头 -> 预编译头:不使用预编译头



C/C++ -> 代码生成 -> 运行库:多线程调试 (/MTd)



链接器-> 输入-> 附加依赖项

Iphlpapi.lib;dsound.lib;dxguid.lib;netapi32.lib;mswsock.lib;ws2_32.lib;odbc32.lib;odbccp32.lib;ole32.lib;user32.lib;gdi32.lib;advapi32.lib;%(AdditionalDependencies)



链接器-> 输入 -> 忽略特定默认库

msvcrt.lib;%(IgnoreSpecificDefaultLibraries)

复制 pjsip-apps\src\swig\csharp目录中的pjsua2_wrap.cpp文件以及头文件pjsua2_wrap.h到项目pjsua2中,并生成pjsua2


6.生成pjsua2项目成功

7.添加新项目C#控制台应用pjsua2_net,并复制pjsip-apps\src\swig\csharp的cs文件至项目pjsua2_net中.修改 PJMEDIA_FORMAT_INVALID = 0xFFFFFFFF,为 PJMEDIA_FORMAT_INVALID = -1


8.设置pjsua2_net项目的项目依赖项为 pjsua2


9.编码测试代码和voip配置

static void Main(string[] args)

{

sample sp= new sample();

sp.test1();

}

10.调试成功.

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表