pjsip new-call error … Невозможно найти аудиоустройство по умолчанию (PJMEDIA_EAUD_NODEFDEV)

Я получаю эту ошибку, когда пытаюсь установить новый вызов из 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, но, тем не менее, он дает мне тот же результат .. Я что-то здесь упускаю?

Нотабене Я использую Ubuntu 11.10, и звук работает без проблем, поэтому, пожалуйста, не говорите мне, что у меня проблемы со звуковой картой


Обновить

Я настроил и скомпилировал pjsip следующим образом:

$ ./configure

$ make && сделать установку

А вот так:

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

$ make && сделать установку

А также вот так:

$ ./configure

$ make 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. Создание экземпляра конечной точки …
12: 39: 55.754 pjlib .select () Очередь ввода / вывода создана (0x93f1a80)
12: 39: 55.754 sip_endpoint.c. Модуль «mod-msg-print» зарегистрирован
12: 39: 55.754 sip_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. Получение ошибок
параметры аудиоустройства по умолчанию: Неверное аудиоустройство
(PJMEDIA_EAUD_INVDEV) [status = 420004] Исключение: объект: Lib,
операция = set_current_sound_devices (), ошибка = недопустимое аудиоустройство
(PJMEDIA_EAUD_INVDEV)

Но странно сработало, когда я заменил lib.set_snd_dev(0,0) с этой линией lib.set_null_snd_dev(), но, конечно, звук не работает, так как я устанавливаю звуковое устройство на ноль !!!

3

Решение

Это происходит, когда пакеты разработки не установлены. Из вашего сообщения об ошибке я могу сказать, что libasound-разработка-пакет не установлен Сделайте следующее:

sudo apt-get install libasound2-dev

Обратите внимание, что pjsip все равно не сможет установить аудиоустройство по умолчанию, так как вы сделали make как этот пакет отсутствовал.
Так что вам нужно собрать Pjsip еще раз

в каталоге pjsip сделайте следующее соответственно:

./configure
make dep
make clean
make
make install

это сделало бы это

9

Другие решения

Из дополнительного поста, который я обнаружил, вы можете также проверить наличие этих пакетов и выполнить перестройку. Дайте мне знать, как это происходит для вас.

  1. установите необходимые пакеты разработки! как pulseaudio-dev,
    alsa-dev, portaudio-dev или все, что вы пожелаете (в dubio все!)
  2. перезапустите конфигурацию и соберите заново (aconfigure, сделать …)
  3. зайдите снова в pjsip-apps / src / python и выполните make / make all, то же самое в
    ../py_pjsua

число устройств pa_dev.c ..Sound
Теперь выложите еще несколько устройств …

1

Ну, просто предположение (я не могу попробовать это на своем ПК прямо сейчас), но разве вам не нужно настраивать ваше звуковое устройство на значение, полученное get_snd_dev? Это кажется разумным, по крайней мере. Так что вместо

lib.set_snd_dev(0,0)

попробуйте вызвать его с помощью (-1, -2) кортежа:

lib.set_snd_dev(-1,-2)
-1
По вопросам рекламы [email protected]