Вопрос или проблема
Я установил Asterisk и попытался сделать звонок с помощью Zoiper, но получил ошибку [call failure 401 forbidden] и Asterisk вернул следующее сообщение:
Подключен к Asterisk UNKNOWN__and_probably_unsupported, в настоящее время работающему на kali (pid = 14877)
[22 янв 17:57:00] ERROR[14937][C-00000007]: rtp_engine.c:401 ast_rtp_instance_new: RTP-движок не найден. У вас есть загруженный?
[22 янв 17:57:00] NOTICE[14937][C-00000007]: chan_sip.c:25550 handle_request_invite: Не удалось аутентифицировать устройство <sip:[email protected];transport=UDP>;tag=9a473a54
Я открыл menuselect и выбрал res_rtp_asterisk
.
Когда я пытаюсь переустановить (перекомпилировать!) Asterisk, я выполняю ./configure
Здесь сказано, что все в порядке! Но когда я ввожу make
или make install
, я получаю эту ошибку:
CC="cc" CXX="g++" LD="" AR="" RANLIB="" CFLAGS="" LDFLAGS="" make -C menuselect CONFIGURE_SILENT="--silent" makeopts
make[1]: Входим в директорию `/etc/asterisk/asterisk/menuselect'
make[1]: `makeopts' актуален.
make[1]: Выходим из директории `/etc/asterisk/asterisk/menuselect'
[CC] res_rtp_asterisk.c -> res_rtp_asterisk.o
res_rtp_asterisk.c: В функции ‘ice_create’:
res_rtp_asterisk.c:2421:4: ошибка: слишком много аргументов для функции ‘pj_ice_sess_create’
В файле, включенном из /usr/include/pjnath.h:23:0,
из res_rtp_asterisk.c:53:
/usr/include/pjnath/ice_session.h:736:22: примечание: объявлено здесь
make[1]: *** [res_rtp_asterisk.o] Ошибка 1
make: *** [res] Ошибка
Вам следует выполнить
make menuconfig
прежде чем компилировать.
Найдите res_rtp_asterisk и проверьте, нужны ли ему какие-то зависимости, которых у вас нет, или он просто отключен. Если он отключен, включите его и перекомпилируйте.
Ответ или решение
Проблема, с которой вы столкнулись при установке Asterisk v13 на Kali Linux, связана с ошибкой "No RTP engine was found. Do you have one loaded?" Эта ошибка возникает, когда Asterisk не может обнаружить RTP-движок, необходимый для обработки мультимедиа (аудио и видео) во время звонков. Давайте рассмотрим ключевые шаги и возможные решения вашей проблемы.
1. Проверка установки необходимых компонентов RTP
Для начала убедитесь, что вы корректно выбрали res_rtp_asterisk
в меню настроек Asterisk. С помощью команды:
make menuconfig
проверьте, активен ли модуль res_rtp_asterisk
. Если он выключен, активируйте его, чтобы Asterisk мог использовать этот RTP-движок.
2. Установка зависимостей
Ошибка, которую вы получили при компиляции (более подробно — ошибка при создании ice_create
), может указывать на отсутствие необходимых библиотек или несовместимость с установленными версиями. Убедитесь, что у вас установлены все зависимости, необходимые для Asterisk, включая библиотеки плагина PJPROJECT, используемого для обработки RTP.
Чтобы установить недостающие пакеты, выполните:
sudo apt-get update
sudo apt-get install build-essential libssl-dev libjansson-dev libxml2-dev
sudo apt-get install libncurses5-dev libnewt-dev libxslt1-dev
# Установка pjnath
sudo apt-get install libpjnath-dev
3. Перекомпиляция Asterisk
После установки необходимых зависимостей запускайте процессы ./configure
, затем make
, после этого make install
. Это обеспечит правильную сборку необходимых модулей.
4. Проверка конфигурации SIP
Ваше сообщение об ошибке также включает строку о неудачной попытке аутентификации устройства. Это может быть вызвано неправильной конфигурацией SIP. Убедитесь, что:
- Правильно настроен
sip.conf
, включая корректные учетные данные пользователей. - Вы настроили подходящие правила для аутентификации и проверки пользователей.
Проверьте, чтобы ваше устройство Zoiper
использовало именно те учетные данные, что указаны в конфигурации Asterisk.
5. Тестирование
После выполнения вышеперечисленных шагов можно протестировать систему с помощью команды:
asterisk -rvvv
Эта команда выведет логи Asterisk в реальном времени, что даст возможность увидеть, загружены ли модули и идут ли вызовы корректно.
Заключение
Смещение внимания на установку необходимых библиотек и корректную настройку модуля RTP, а также детальную проверку конфигурации SIP, должно помочь вам в решении проблемы с "No RTP engine was found." Если проблемы сохраняются, стоит рассмотреть возможность поиска информации на официальных форумах Asterisk или в документации, доступной на их сайте.