PJSIP新的呼叫错误...无法找到默认音频设备(PJMEDIA_EAUD_NODEFDEV)(pj

2019-09-02 12:34发布

当我尝试从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-devsudo apt-get install libasound2-dev ,并重新编译PJSIP,但尽管如此,它给了我同样的结果..我在这里失去了一些东西?

注:我使用Ubuntu 11.10和声音工作正常,没有任何问题,所以请不要告诉我,我有声卡问题


更新

我配置和编译这样的PJSIP:

$的./configure

$ &&做make install的

而像这样:

$的./configure --enable-共享 - 禁用静态--enable-包括memalign - 黑客

$ &&做make install的

而且也很喜欢这一点:

$的./configure

$使DEP &&使清洁&&使

和所有的方式给了我同样的结果。


更新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)

错误的是:

12:39:55.753 os_core_unix.c pjlib 2.1 POSIX初始化12:39:55.754 sip_endpoint.c .Creating端点实例... 12:39:55.754 pjlib。选择()I / O队列创建(0x93f1a80)12:39 :55.754 sip_endpoint.c .Module “MOD-MSG-打印” 注册12:39:55.754 sip_transport。 .Transport管理器创建。 12:39:55.754 pjsua_core.c .PJSUA状态改变:NULL - > CREATED 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 .Error检索默认音频设备参数:无效音频设备(PJMEDIA_EAUD_INVDEV)状态= 420004]异常:对象:库,操作= set_current_sound_devices(),误差=无效音频设备(PJMEDIA_EAUD_INVDEV)

但是,很奇怪的工作,当我更换了lib.set_snd_dev(0,0)这条线lib.set_null_snd_dev()当然,声音是不工作,因为我设置声音设备为空!

Answer 1:

出现这种情况是没有安装开发包的时候。 从你的错误消息,我可以告诉大家, libasound开发包没有安装。 做如下:

sudo apt-get install libasound2-dev

要注意的是PJSIP仍然不能设置默认的音频设备,因为你已经完成了make ,因为这包不见了。 所以,你需要再次建立PJSIP

在PJSIP目录也分别如下:

./configure
make dep 
make clean
make
make install

这会做到这一点。



Answer 2:

从另外文章中,我发现你可能还需要检查你有这些包,并做了重建。 让我知道如何继续下去你。

  1. 安装所需开发包! 喜欢的PulseAudio-dev的,ALSA-dev的,portaudio-dev的或任何你想要的(在dubio所有!)
  2. 重新配置和建设了! (aconfigure,使...)
  3. 再去PJSIP-应用/ src目录/ Python和不使/让所有在../py_pjsua相同

该pa_dev.c ..Sound设备计数现在应该吐出几个设备...



Answer 3:

好了,只是一个猜测(我不能尝试,我的电脑现在),但你不真正需要你的声音设备设置为所得到的值get_snd_dev ? 这似乎是合理的,至少。 因此,而不是

lib.set_snd_dev(0,0)

尝试用(-1,-2)元组来调用它:

lib.set_snd_dev(-1,-2)


文章来源: pjsip new-call error … Unable to find default audio device (PJMEDIA_EAUD_NODEFDEV)