Архив рубрики: Установка Asterisk сервера

ограничение и запрет соединений с сервером Asterisk снаружи

как только поставишь asterisk сервер к тебе начнут долбиться с попытками звонить за твой счет. Чтобы это предотвратить в параметрах sip.conf нужно указать:

deny=0.0.0.0/0.0.0.0                             ;запретить все
permit=8.8.8.8/255.255.255.255           ;разрешить соединения только с этого IP

таких строк может быть не ограниченное количество (для подключения всех филиалов к центральному серверу asterisk или нескольких провайдеров)

и помните, что asterisk это последняя линия обороны. Ломануть могут и ваш сервер и чтобы это предотвратить нужно настроить firewall — сетевой экран, чтобы не пускать определенные типы запросов или же банить по странам.

Это делается через iptables.

Вот пример правил iptables для отклонения всех запросов на регистрацию на ваш Asterisk сервер.:

iptables -A INPUT -p udp —dport 5060 -m state —state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p udp —dport 5060 -m string —string «REGISTER sip:46.160.231.50» —algo bm -j ACCEPT
iptables -A INPUT -p udp —dport 5060 -m string —string «REGISTER sip:» —algo bm -j DROP
iptables -A INPUT -p udp —dport 5060 -m string —string «OPTIONS sip:» —algo bm -j DROP
iptables -A INPUT -p udp —dport 5060 -j ACCEPT

или вот это с сайта http://invoip.net:

*****начало цитаты*****

-A INPUT -p udp —dport 5060 -j SCAMBLOCK
-A INPUT -p udp —dport 5060 -m recent —set —name SIP
-A INPUT -p udp —dport 5060 -m recent —update —seconds 2 —hitcount 60 —name SIP \
-j LOG —log-prefix «SIP flood detected:»

Приведенное требование определет пакет с помощью цепочки SCАMBLOK. Именно внутри этой цепочки имеют место быть все заблокированные по разным причинам адреса IP. В случае выявления найденного хоть одного совпадения с одним из пакетов списка, пакет незамедлительно отбрасывается.

В случае не отбрасывания пакета используется второе правило, то есть пометка для учета, именуемого SIP. Что касается правила под номером три, то оно производит подсчеты, не состоялось ли превышение данного пакета.

В случае не превышения количества, правило тут же игнорируется, а если превышено, то незамедлительно выполняется конкретное действие. Системный лог в нашем с вами случае безнадежен. Прописывается пакетная детальная информация. Пакетная информация начинается с такой строки, как «SIP flood detected:». Время и количество пакетов для каждого источника отдельно рассчитываются. Из этого следует, что мы совершили ограничение по скорости приема пакетов SIP от каждого IР, которое не заблокировано, уровень составляет тридцать пакетов в секуду.

*****конец цитаты*****

кроме этого нужно обязательно использовать FailToBan.

Шаблоны в sip.conf Asterisk

Чтобы использовать шаблон кода в sip.conf нужно создать секцию кода шаблона [с именем кода шаблона в квадратных скобках] после скобок поставить восклицательный знак в круглых скобках (!) — это будет обозначение секции шаблона.

Если имя этой секции указать в круглых скобках после номера абонента (экстеншена) то код этой секции шаблона будет добавлен к этой секции или другими словами экстеншену.

Пример работы с шаблоном ниже:

Пример:
[phone_number_template](!)
type=friend
host=dynamic                                           ;возможность цепляться откуда угодно
dtmfmode=rfc2833                                  ;способ передачи сигналов DTMF
nat=no                                                      ;клиент не может быть за NAT
canreinvite=no                                         ;трафик проходит только через сервер
context=MyVOIP-provider                     ;контекст с таким именем должен существовать в dialplan’е (файл extensions.conf)
disallow=all                                             ;сначала запрещаем все кодеки
allow=alaw                                              ;разрешаем те что будем использовать
qualify=yes                                              ;Asterisk будет проверять связь с этим номером раз в 2сек
;(если поставить число то интервал будет задаваться в милисекундах

[внутренний_номер_абонента](phone_number_template)
username=внутренний_номер_абонента                                               ;имя пользователя
secret=внутренний_номер_абонента                                                     ;и пароль
callerid=»Описание абонента» <внутренний_номер_абонента>         ;CallerID — идентификационная ;строка, отображается при звонках от данного пользователя (АОН) [внутренний_номер_абонента](phone_number_template)
username=внутренний_номер_абонента                                                ;имя пользователя
secret=внутренний_номер_абонента                                                      ;и пароль
callerid=»Описание абонента» <внутренний_номер_абонента>         ;CallerID — идентификационная ;строка, отображается при звонках от данного пользователя (АОН)

настройка (написание) строки регистрации в Asterisk

register => user [:secret[:authuser]] @host [:port] [/extension]

Пример:

Зарегистрировать 3216111 у sip провайдера, как номер 1234567 на Asterisk.

register => 3216111:userID:PASSWORD@sipppnet.ru/1234567
user — идентификатор пользователя, используемый для SIP сервера (например, 3216111)

authuser — не обязательное имя пользователя для авторизации на SIP сервере
secret — пароль пользователя
host — имя домена или хоста SIP сервера. Этот SIP сервер должен быть определен в своей секции файла sip.conf, где должны быть заданы его параметры (sipnet.ru).
port — на какой номер порта посылать запросы на регистрацию на сервере host. По умолчанию — 5060
/1234567 — номер екстеншена для приема вызовов в Вашем Asterisk. 1234567 — вставляется в SIP заголовок contact, SIP запроса на регистрацию. Этот екстеншен используется удаленным SIP сервером, когда ему необходимо совершить вызов в сторону Вашего Asterisk. Смотри примеры, приведенные ниже. По умолчанию, используется контекстный «s».
Вам необходимо регистрироваться, только если:

Если должна быть возможность позвонить к Вам.
Если одна из сторон имеет динамический IP адрес.
Наиболее используемые CLI команды для проверки:

 

как в Linux добавить строку в конец файла без его открытия в редакторе?

часто когда настраиваешь Linux компьютер требуется добавить в конец разных файлов строку (или несколько) с настройками. Это можно сделать не открывая файл в редакторе, тем более обычно рекомендуют открывать файл в редакторе vi или nano.

НО ведь новичок, да и не новичок в Linux не знает комбинации клавиш в этих консольных редакторах. Кроме того и действий требуется лишнего.

Вместо этого можно:

вставить вот это в консоль Linux:
echo "Строка для вставки в конец файла" >> полный_путь_к_файлу_для_вставки_текста_в_его_конец

почему внешние узлы на Asterisk сервере не пингуются?

почему в Linux с 2мя сетевыми картами не работает интернет?

lnux-asteriskв данной статье рассматривается финальная настройка (после ввода параметров сетевых карт) интернета на Asterisk сервере.

проблема с шлюзами на базе Linux заключается в том, что после того, как обе сетевых карты настроены Linux не знает куда направлять все пересылаемые пакеты данных (например, когда вы пингуете интернет-узел).

 

 

 

вставить вот это в консоль Linux:
route add default ip_адрес_внешней_интернетовской_сетевой_карты

чтобы это работало после каждой перезагрузки сервера, вставьте эту строку:

route add default ip_адрес_внешней_интернетовской_сетевой_карты

в файл /etc/rc.local

это можно сделать командой:

вставить вот это в консоль Linux:
echo oute add default ip_адрес_внешней_интернетовской_сетевой_карты >> /etc/rc.local
Что нужно, чтобы это работало (если не работает)

если Вы вошли в систему не как пользователь root, то для большинства команд установки-смены настроек нужно впереди команды писать sudo. Это команда запуска вашей команды с правами root (или теми, что были специальным образом назначены.), но в общем случае это права root-пользователя.

как установить MC (Mindnight Commander) в CentOS, OpenSuse?

Mindnight Commander — это двухпанельный консольный менеджер файлов для Linux, xxxBSD систем. Очень удобен в работе. Стоит поставить на сервере, если пока работа с командной строкой для вас проблема (получается не очень быстро).

вставить вот это в консоль Linux:
yum install mc

смена паролей на Asterisk сервере

# passwd-maint – эта команда меняет пароль на веб-интерфейсе Trixbox. На Trixbox. по умолчанию, пользователь maint, пароль password

# passwd-amp – для смены пароля используемого для обслуживания сервера через web интерфейс (пароль для пользователя wwwadmin).

Разница между этими двумя пользователями (maint и wwwadmin) в том, что пользователь maint получает абсолютно полный доступ, а пользователь wwwadmin – ограниченный.

# passwd admin – для смены пароля пользователя который может читать системную почту.
# passwd –  для смены пароля пользователя root. (Надеюсь на этапе установки вы выбрали хороший пароль).

это все команды для смены всех паролей на Asterisk сервере.

 

Огромная благодарность пользователю РУУТ форума http://asteriskforum.ru/viewtopic.php?t=2918 за толковое объяснение, которое легло в основу данной статьи.

как русифицировать сообщения Asterisk?

Как раздобыть звуковые русские файлы, куда их копировать и какие настройки вносить в Asterisk для активации русского языка:

вставить вот это в консоль Linux:
cd /usr/src

wget --no-check-certificate https://github.com/pbxware/asterisk-sounds/tarball/master -Ostandard-sounds.tar.gz

wget --no-check-certificate https://github.com/pbxware/asterisk-sounds-additional/tarball/master -Oadditional-sounds.tar.gz
tar -xvzf standard-sounds.tar.gz
tar -xvzf additional-sounds.tar.gz
copy pbxware-asterisk-sounds*/*  /var/lib/asterisk/sounds/*

внести в sip.conf или в sip_custom.conf (предпочтительнее) если он есть это:

вставить это в файл настроек:
[general] #вставить в эту секцию
language=ru #эту строку

Огромная благодарность выражеется автору сайта linux.mixed-spb.ru за ценнейшую и главное рабочую статью, на основе которой подготовлен этот материал.

Как записать разговоры на Asterisk? Как сделать запись разговоров на Asterisk, Trixbox?

Запись разговоров на сервере Asterisk в файлы

чтобы запись начала работать в Dialplan (extensions.conf) в последовательности дозвона до провайдера нужно вставить:

MixMonitor(/var/spool/asterisk/monitor/${filename}.wav)

если Вы используете Asterisk Trixbox или другую сборку Asterisk то нужно редактировать файл /etc/asterisk/extensions_additional.conf

вот пример как это сделал я, файлы имеют имя: ИмяПользователя-ГГГГ.ММ.ДД_Часы-Минуты-НомерКомуЗвонили

exten => _[78]XXXXXXXXXX,n,Set(fname= ${CALLERID(number)}-${EXTEN}-${STRFTIME(${EPOCH},,%Y.%m.%d_%H-%M})
exten => _[78]XXXXXXXXXX,n,MixMonitor(${MIXMON_DIR}${fname}.wav)

$MIXMON_DIR — переменная в начале файла, указывающая на каталог, в который будут складываться записи разговоров.