关于windos10环境下编译python3版pjsua库的问题

  • Post category:Python

关于Windows 10环境下编译Python 3版PJSUA库的问题,以下是详细的攻略:

1. 准备工作

安装Visual Studio,选择2015或更高版本。在Python官网上下载Python 3.x的Windows版本,并安装。在PJSIP的官网上下载最新的源代码,并解压到本地。

2. 编译PJSUA库

打开VS2015,选择“文件”>“打开”>“CMake”,选择pjsip的根目录,加载该目录下的CMakeLists.txt文件。在CMake界面中,可以看到生成的项目列表,其中要找到“pjsua”项目,需要选中此项目,以便为该项目设置生成器选项。 之后可以点击“生成”>“生成解决方案”进行编译。如果编译成功,将会在源代码目录下的“pjsip-apps/bin”文件夹中找到所需的PJSUA库文件。

3. 编译Python 3版的PJSUA库

首先要先安装Python 3.x的开发包。在Visual Studio的开发人员命令提示符中运行以下命令:

cd C:\pjsip\pjsip-apps\src\python
set DISTUTILS_USE_SDK=1
set MSSDK=1
python setup.py build --compiler=msvc

其中C:\pjsip是PJSIP源代码所在的路径。
这个命令会去编译pjsip-apps/src/python/目录下的setup.py文件,编译后的文件将会被输出到pjsip-apps/src/python/build/目录下。

4. 运行Python程序

进入pjsip-apps/src/python目录下,创建一个Python文件,然后编写以下示例代码:

import pjsua

# 将日志级别调整为3级,输出更多的信息
pjsua.setLogLevel(3)

# 创建一个库实例
lib = pjsua.Lib()

# 初始化库
lib.init()

# 创建一个SIP账号
acc_cfg = pjsua.AccountConfig()
acc_cfg.idUri = "sip:username@server.com"
acc_cfg.regConfig.registrarUri = "sip:server.com"
acc_cfg.authCreds.append(pjsua.AuthCred("digest", "username", "password"))
acc = lib.createAccount(acc_cfg)

# 拨打电话
call = acc.makeCall("sip:target@argetserver.com", callback=None)

# 等待电话连接
print("正在等待电话连接...")
lib.handleEvents()

# 关闭
lib.destroy()

运行程序并等待连接成功即可完成测试。以上便是在Windows 10环境下编译Python 3版PJSUA库的详细攻略。