Архив рубрики ‘Asterisk’

Апр
23

У меня не получилось принимать факсы на Asterisk через VoIP оператора UISCOM, пришлось придумывать гнусную хитрость. У этого оператора есть штатная функция приема факсов «centrex\faxes», которая принимает факсы и отправляет их на почту, если после поднятия трубки нажать кнопку «ноль». Я в курсе, что уних есть услуга мини-АТС, но мы ей не пользуемся, у нас всеми звонками управляет Asterisk (голосовое меню, внутренние звонки и т.п.). Я настроил так, чтобы при нажатии кнопки «2» во время приветствия IVR автоматически нажималась кнопка «0» и вызов уходил на прием факса в UISCOM. Все предельно просто, но описано крайне туманно, судя по всему =)

1. Добавляем в extensions_custom.conf и выполняем в консоли «sip reload»:

[uiscom-fax]
exten => s,1,Answer()
exten => s,n,SendDTMF(0)
exten => s,n,Hangup()

2. Идем в Admin\Custom Destinations и создаем новое назначение:

fax1

3. В настройках IVR дописываем (см. последнюю строку):

fax2

Фев
18

Если в логи fail2ban сыпятся такие ошибки

2015-01-05 20:37:07,270 fail2ban.filter : ERROR No 'host' found in '[] SECURITY[11464] res_security_log.c: SecurityEvent="InvalidPassword",EventTV="1420047663-535903",Severity="Error",Service="SIP",EventVersion="2",AccountID="800970597572760",SessionID="0x61d7df5c",LocalAddress="IPV4/UDP/**IP REMOVED**/5060",RemoteAddress="IPV4/UDP/188.138.94.14/5071",Challenge="56e0973f",ReceivedChallenge="56e0973f",ReceivedHash="4c92c1299e17141824a0f8f4e8d85952"

то лезем в /etc/fail2ban/filter.d/asterisk-security.conf

и в 34-37 строках меняем «SIP|AMI» на «(SIP|AMI)»? т.е. добавляем скобки, сохраняем конфиг, после чего перезагружаем fail2ban

fail2ban fix

Ноя
12

Краткая шпаргалка по установке кодека g729 на FreePBX. Писалась для себя и повторяет описанное в сети, ничего нового.

Сайт для загрузки  кодеков: http://asterisk.hosting.lv/

Пара вариантов для x86-систем:
http://asterisk.hosting.lv/bin/codec_g729-ast110-gcc4-glibc-pentium4.so
http://asterisk.hosting.lv/bin/codec_g729-ast110-gcc4-glibc-core2.so

Пара вариантов для x64-систем:
http://asterisk.hosting.lv/bin/codec_g729-ast110-gcc4-glibc-x86_64-core2.so
http://asterisk.hosting.lv/bin/codec_g729-ast110-gcc4-glibc-x86_64-pentium4.so

Команда для просмотра установленных кодеков:
core show translation

Копипаста для установки на x86:
cd /usr/lib/asterisk/modules
wget http://asterisk.hosting.lv/bin/codec_g729-ast110-gcc4-glibc-pentium4.so
mv codec_g729-ast110-gcc4-glibc-pentium4.so codec_g729.so

Копипаста для установки на x64:
cd /usr/lib/asterisk/modules
wget http://asterisk.hosting.lv/bin/codec_g729-ast110-gcc4-glibc-x86_64-pentium4.so
mv codec_g729-ast110-gcc4-glibc-x86_64-pentium4.so codec_g729.so

Команда ручной загрузки модуля (Из консоли Asterisk):

asterisk*CLI>  module load codec_g729.so

Окт
29

Проверяем, запланирован ли переход в зону GMT+3 в 2014 году:
zdump -v Europe/Moscow |grep 2014

Если никакой реакции не произошло, значит нужно обновить базу часовых поясов. Скачиваем:
cd /tmp
wget http://www.iana.org/time-zones/repository/releases/tzdata2014i.tar.gz
tar xvzf tzdata2014i.tar.gz

Компилируем временные зоны для Европы:
zic europe

Создаем ссылку на обновленную временную зону:
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

А теперь все вместе для копирования 🙂
cd /tmp
wget http://www.iana.org/time-zones/repository/releases/tzdata2014i.tar.gz
tar xvzf tzdata2014i.tar.gz
zic europe
ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime

Проверяем, что все правильно:
[root@localhost tmp]# zdump -v Europe/Moscow |grep 2014
Europe/Moscow  Sat Oct 25 21:59:59 2014 UTC = Sun Oct 26 01:59:59 2014 MSK isdst=0 gmtoff=14400
Europe/Moscow  Sat Oct 25 22:00:00 2014 UTC = Sun Oct 26 01:00:00 2014 MSK isdst=0 gmtoff=10800

Обратите внимание,  все процессы (и Asterisk в том числе) будут использовать старые часовые пояса до их перезапуска. У меня был случай, когда я всю голову себе сломал, почему не правильно работают переходы по времени, хотя во всех местах показывается правильное время.

Еще вот есть замечательный скрипт для проверки, взят отсюда
tzcheck.sh:
#!/bin/sh
T1=$(LC_ALL=C TZ=Europe/Moscow date -d @1409067890)
if [ "$T1" != 'Tue Aug 26 19:44:50 MSK 2014' ] ; then
echo FAIL! Wrong TZ BEFORE 26 Oct 2014!
exit 1
fi
T2=$(LC_ALL=C TZ=Europe/Moscow date -d @1416667890)
if [ "$T2" != 'Sat Nov 22 17:51:30 MSK 2014' ] ; then
echo FAIL! Wrong TZ AFTER 26 Oct 2014!
exit 2
fi
echo OK

Апр
22

Источник: тут.

Шпаргалка для соединения двух Asterisk-серверов по протоколу IAX2, готовая для настройки через вебморду FreePBX.

Берем блокнот, копируем туда вот этот текст:

< Начало текста >

{Server1} : Имя первого Asterisk (Любое)
{Server2} : Имя второго Asterisk (Любое)
{Server1IPAddress} : IP адрес первого Asterisk
{Server2IPAddress} : IP адрес второго Asterisk
{Server1User} : Имя пользователя первого Asterisk (Любое)
{Server2User} : Имя пользователя второго Asterisk (Любое)
{Server1Secret} : Пароль пользователя первого Asterisk (Любой)
{Server2Secret} : Пароль пользователя второго Asterisk (Любой)

НАСТРОЙКА ПЕРВОГО СЕРВЕРА ({Server1} ):

СОЗДАЕМ НОВЫЙ IAX2 ТРАНК:

Trunk Name: {Server2}
Peer Details:
context=from-internal
host={Server2IPAddress}
qualify=yes
secret={Server2Secret}
type=peer
username={Server2User}

User Context: {Server1User}

User Details:
context=from-internal
host={Server2IPAddress}
secret={Server1Secret}
type=user

СОЗДАЕМ ИСХОДЯЩИЙ МАРШРУТ:
Dial Patterns: 5|XXX
trunk Sequence: IAX2/{Server2}

НАСТРОЙКА ВТОРОГО СЕРВЕРА ({Server2})

СОЗДАЕМ НОВЫЙ IAX2 ТРАНК:

Trunk Name: {Server1}

Peer Details:
context=from-internal
host={Server1IPAddress}
qualify=yes
secret={Server1Secret}
type=peer
username={Server1User}

User Context: {Server2User}

User Details:
context=from-internal
host={Server1IPAddress}
secret={Server2Secret}
type=user

СОЗДАЕМ ИСХОДЯЩИЙ МАРШРУТ:
Dial Patterns: 5|XXX
trunk Sequence: IAX2/{Server1}

< Конец текста >

Затем тупо заменяем «поиском и заменой» все {поля} по всему тексту — получается готовая инструкция по настройке!



Яндекс.Метрика