Настройка Asterisk
Asterisk версии 1.8 и ниже
sip.conf
[general] register => ваш_логин_указанный_в_письме:ваш_пароль_указанный_в_письме@ИП_Адрес_регистрара:5060/Номер_телефона_если_есть [mcm] type=peer dtmfmode=rfc2833 host=ИП_Адрес_регистрара_указан_в_письме disallow=all allow=g729 ; либо другой, указанный в письме alaw или ulaw canreinvite=no defaultuser=ваш_логин_указанный_в_письме secret=ваш_пароль_указанный_в_письме insecure=port,invite qualify=no
Asterisk версии 10 и выше
sip.conf
[general] register => ваш_логин_указанный_в_письме:ваш_пароль_указанный_в_письме@ИП_Адрес_регистрара:5060/Номер_телефона_если_есть [mcm] type=peer dtmfmode=rfc2833 host=ИП_Адрес_регистрара_указан_в_письме disallow=all allow=g729 ; либо другой, указанный в письме alaw или ulaw directmedia=no defaultuser=ваш_логин_указанный_в_письме secret=ваш_пароль_указанный_в_письме insecure=port,invite qualify=no
Меры безопасности
1. Использование сложных паролей для экстеншенов. Генератор паролей -- http://strongpasswordgenerator.com/ 2. Использование iptables с ограничением доступа к порту UDP 5060 и к порту TCP 80 в случае использования web интерфейса. 3. Использование сложного пароля для доступа по SSH.
Пример простейшей конфигурации средствами iptables
iptables -F # очищаем таблицу iptables iptables -A INPUT -p udp -s 95.128.224.0/25 --dport 5060 -j ACCEPT # сеть Мультиком iptables -A INPUT -p udp -s 192.168.0.0/24 --dport 5060 -j ACCEPT # ваша локальная есть iptables -A INPUT -p udp --dport 5060 -j DROP # запретить трафик на порт 5060 со всех других ip адресов iptables -A INPUT -p tcp -s 192.168.0.0/24 --dport 80 -j ACCEPT # разрешить доступ к web интерфейсу iptables -A INPUT -p tcp --dport 80 -j DROP # только с локальной сети service iptables save # сохранить iptables конфигурацию в файл(для CentOS).
Проблемы с отсутствием голоса
1. Вызываемый абонент не слышит голоса. От Asterisk не проходит голос в сторону нашего сервера. Посмотреть разрешающие правила для исходящего трафика с вашего Asterisk.
2. Вызывающий абонент не слышит голоса. От нашего сервера в сторону Asterisk не доходит RTP поток. в случае NAT проверить port forwardig на сервер с Asterisk. Диапазон портов по умолчанию UDP 10000-20000.
Диапазон портов можно посмотреть в файле /etc/asterisk/rtp.conf
Установка кодека G.729
Посмотреть наличие кодека можно консольной командой
rasterisk -x "module show like codec_g729"
В выводе должна присутствовать строка codec_g729
Скачать кодек можно тут http://asterisk.hosting.lv/
Смотрим версию Asterisk командой
rasterisk -x "core show version"
Командой
cat /proc/cpuinfo
смотрим поддержку SSE инструкций у процессора
flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx rdtscp lm constant_tsc arch_perfmon pebs bts xtopology nonstop_tsc aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 sse4_2 x2apic popcnt aes xsave avx lahf_lm ida arat xsaveopt pln pts dts tpr_shadow vnmi flexpriority ept vpid
и в зависимости от набора инструкций SSE, разрядности системы (32 или 64 бита) и версии Asterisk
скачиваем и подгружаем модуль(для примера загружаем модуль для Asterisk 1.8 32bit, с поддержкой инструкций SSE4)
wget http://asterisk.hosting.lv/bin/codec_g729-ast18-icc-glibc-core2-sse4.so -O /usr/lib/asterisk/modules/codec_g729.so asterisk -rx "module load codec_g729.so"
Для версий 1.6 и ниже модуль брать тут http://xa0t3k.me/files/asterisk.hosting.lv/
Если модуль подгрузился успешно, вывод команды
rasterisk -x "module show like codec_g729"
будет таким:
codec_g729.so g729 Coder/Decoder, based on Intel IPP 63 собственно этот модуль мы и подгрузили.
Если вывод отсутствует, значит кодек не подгрузился.
Проблема с исходящими вызовами
Проблема с входящими вызовами
Отсутствует голосовое сообщение сотового оператора при звонке на выключенный мобильный
progressinband=yes
prematuremedia=no