5

我正在尝试使用 Python 创建软件电话。我发现这个链接描述了 pjsua2,但是没有任何明确的步骤来定义如何为 python 安装 pjsua2 包。

任何人都可以为我定义安装可在 python 中使用的 pjsua2 的明确步骤吗?

4

2 回答 2

8

这些步骤应该有效

第一步:创建目录。/PJSUA2/pjproject/src

Step2:安装所需模块

sudo apt-get install libasound2-dev libssl-dev libv4l-dev libsdl2-dev libsdl2-gfx-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-net-dev libsdl2-ttf-dev libx264-dev libavformat-dev libavcodec-dev libavdevice-dev libavfilter-dev libavresample-dev libavutil-dev libavcodec-extra libopus-dev libopencore-amrwb-dev libopencore-amrnb-dev libvo-amrwbenc-dev subversion

第三步:下载源代码svn co http://svn.pjsip.org/repos/pjproject/trunk pjproject

第四步:编译主库并安装。如果您在 RPI 上尝试它,请参阅此链接。基本上,您需要设置正确的 CFLAGS 并确保为您的平台正确配置了 third_party/build/os-auto.mak.in。

$ cd pjproject
$ ./configure  --enable-shared
$ make dep
$ make
$ sudo make install

第五步:编译安装python模块。再次确保您拥有正确的 user.mak,如果您正在为 RPI 编译它

$ cd pjsip-apps/src/swig/
$ make
$ make install

第 6 步:检查已安装的模块

$ python
> import pjsua2

除了 RPI 扭曲之外,这些步骤在此处已准确提及。

更新#1:

并且不要忘记设置ep_cfg.uaConfig.threadCnt = 0,否则你会得到Segmentation fault。所以 PJSUA2 页面中的示例代码应该有变化

 def pjsua2_test():
  # Create and initialize the library
  ep_cfg = pj.EpConfig()

  ep_cfg.uaConfig.threadCnt = 0; #Python does not like PJSUA2's thread. It will result in segment fault
  ep = pj.Endpoint()
  ep.libCreate()
  ep.libInit(ep_cfg)
于 2018-12-29T10:27:03.917 回答
0

这些步骤看起来像在此处列出: https ://trac.pjsip.org/repos/wiki/Python_SIP/Build_Install

我浏览了它们,它们似乎在 Mac Os X 上没有任何问题。你遇到的确切问题是什么?

于 2018-12-12T04:56:32.633 回答