pjsip new-call error ...无法找到默认音频设备(PJMEDIA_EAUD_NODEFDEV)

sec*_*rve 3 c c++ python sip pjsip

当我尝试从pjsip建立一个新的调用时,我收到此错误:

pjsua_aud.c ..Error retrieving default audio device parameters: Unable to find default audio device (PJMEDIA_EAUD_NODEFDEV) [status=420006] Exception: Object: {Account <sip:192.168.0.2:54496>}, operation=make_call(), error=Unable to find default audio device (PJMEDIA_EAUD_NODEFDEV)

我安装了libasound2-dev:sudo apt-get install libasound2-dev,并重新编译了pjsip,但仍然,它给了我相同的结果..我在这里遗漏了什么?

NB我使用Ubuntu 11.10并且声音工作正常没有问题,所以请不要告诉我声卡有问题


更新

我像这样配置和编译了pjsip:

$ ./configure

$ make && make install

像这样:

$ ./configure --enable-shared --disable-static --enable-memalign-hack

$ make && make install

还像这样:

$ ./configure

$ make dep && make clean && make

所有方式都给了我相同的结果.


更新2

我确保安装了以下所有内容,但问题仍然存在:

sudo apt-get install portaudio19-dev libportaudio2 pulseaudio alsa-utils liboss4-salsa-dev alsa-base alsa-tools libasound2-plugins libasound2 libasound2-dev binutils binutils-dev libasound-dev pulseaudio-dev


更新3

我像下面一样运行它,它工作:

pjproject-2.1.0/pjsip-apps/bin/pjsua-i686-pc-linux-gnu --capture-dev=-1 --playback-dev=-1

它可以打电话给对方.但是当我从python脚本运行它时,它给了我一个错误,即使我设置这样的声音设备:

lib.init(log_cfg = pj.LogConfig(level=LOG_LEVEL, callback=log_cb))
snd_dev = lib.get_snd_dev()
print snd_dev ## returns (-1,-2)
lib.set_snd_dev(0,0)
Run Code Online (Sandbox Code Playgroud)

错误是:

12:39:55.753 os_core_unix.c!pjlib 2.1 for POSIX initialized 12:39:55.754 sip_endpoint.c.创建端点实例... 12:39:55.754 pjlib .select()创建I/O队列(0x93f1a80)12:39 :55.754 sip_endpoint.c .Module"mod-msg-print"注册12:39:55.754 sip_transport..Transport manager创建.12:39:55.754 pjsua_core.c .PJSUA状态已更改:NULL - >创建12:39:55.769
pjsua_core.c .pjsua 2.1版用于Linux-3.0.0.17/i686/glibc-2.13已初始化(-1,-2) 12:39:55.770 pjsua_aud.c.检索默认音频设备参数的错误:音频设备无效(PJMEDIA_EAUD_INVDEV)[status = 420004]例外:对象:Lib,operation = set_current_sound_devices(),错误=音频设备无效(PJMEDIA_EAUD_INVDEV)

但奇怪的是,当我lib.set_snd_dev(0,0)用这条线替换时lib.set_null_snd_dev(),但当然声音不起作用,因为我将声音设备设置为空!

fer*_*r y 9

未安装开发包时会发生这种情况.从您的错误消息我可以看出没有安装libasound-development-package.请执行以下操作:

sudo apt-get install libasound2-dev
Run Code Online (Sandbox Code Playgroud)

请注意pjsip仍然无法设置默认音频设备,因为您已经完成了make因为此包丢失了.所以你需要再次构建Pjsip

在pjsip目录中分别执行以下操作:

./configure
make dep 
make clean
make
make install
Run Code Online (Sandbox Code Playgroud)

那是做的.