Установите идентичную машину или склонируйте виртуалку, дав ей другой адрес
Задача 1 - соеденить по пртоколу iax 2 астериска
Сервер asterisk_180 - IP 192.168.0.180 - Телефоные номера 1000-1999
Сервер asterisk_190 - IP 192.168.0.190 - Телефоные номера 2000-2999
Напоминаю "типовые" правила для asterisk протоколов в iptables:
sudo iptables -P INPUT ACCEPT
sudo iptables -F
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp -s 192.168.0.0/24 --dport 5060 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp -s 192.168.0.0/24 --dport 5061 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp -s 192.168.0.0/24 --dport 4569 -j ACCEPT
sudo iptables -A INPUT -p tcp -m tcp -s 192.168.0.0/24 --dport 5038 -j ACCEPT
sudo iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT
sudo iptables -P INPUT DROP
Где в примере доступ к протколам sip, iax и к ami разрешен ip адресам - 192.168.0.0/24
Сохраняем:
sudo netfilter-persistent save
/etc/asterisk/iax.conf на 192.168.0.180:
/etc/asterisk/iax.conf по аналогии на 192.168.0.190:
Использование переменных в /etc/asterisk/extensions.conf
Часто используемые переменные в asterisk:
${CONTEXT} Текущий контекст
${EXTEN} Текущий екстеншен
${EXTEN:x} Текущий екстеншен с удалением первых цифр(где х кол-во удаляемых цифр)
${CALLERID} Текущий CallerID (имя и номер)
Команда CALLERID(), параметр может принимать следующие значения:
"name": строка из цифр и букв
"num": только цифры
"all": Строка, содержащая callerid, с номером абонента, заключенным в треугольные скобки, например: "Some User <123>"
"ANI": только цифры
"DNID": только цифры
"RDNIS": только цифры
${CALLERIDNUM} Текущий номер Caller ID
${CALLERIDNAME} Текущее имя Caller ID
${EPOCH}: Текущее время в UNIX формате (количество секунд прошедшее с 1 января 1970 года)
${STRFTIME(${EPOCH},,%d%mNaVH:NaVS)}) Текущее время и дата
/etc/asterisk/extensions.conf на 192.168.0.180:
/etc/asterisk/extensions.conf на 192.168.0.190:
Задача 2 - Простое голосовое меню
При звонке на номер 1112233 на asterisk_180 должно:
Проиграть приветствие(запишите сами аудио-файл или закачайте стандартные звуки):
mkdir -p /var/lib/asterisk/sounds
cd /var/lib/asterisk/sounds/
wget https://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-en-alaw-current.tar.gz
tar xvf asterisk-core-sounds-en-alaw-current.tar.gz
chown -R asterisk:asterisk /var/lib/asterisk/sounds
Ожидать 5 секунд донабора цифры(в нашем примере будут только два варианта 1 и 2)
В случае донабора 1 - перейдет звонок в контест отдела и там примут звонок на номер 1002
Будет вестись запись разговоров в /records/voicemail, создайте папку на 192.168.0.180:
mkdir -p /records/voicemail
chown -R asterisk:asterisk /records
В случае донабора 2 - вернет звонок в меню
Модернизируйте /etc/asterisk/extensions.conf на 192.168.0.180:
Немного о безопастности в Asterisk
/etc/asterisk/sip.conf на 192.168.0.180:
/etc/asterisk/sip.conf на 192.168.0.190:
Запрет международных вызовов (на примере в России необходимо набрать код 810) на уровне диалплана
Модернизируйте /etc/asterisk/extensions.conf на 192.168.0.180:
Проверить регистрацию этого сервера на удаленном:
asterisk -rx 'iax2 show registry'
Проверить регистрацию удаленного сервера на этом:
asterisk -rx 'iax2 show peers'
Если есть проблемы с регистрацией по IAX:
iax2 set debug peer asterisk_180
iax2 set debug peer asterisk_190
iax2 set debug trunk on
iax2 set debug on
iax2 set debug off
Прохождение звонка в диалплане
asterisk -rvvvv
1. Посмотрим диалплан default:
server*CLI> dialplan show default
2. Смоделируем звоноки в разных диалпланах:
server*CLI> dialplan show 3000@default
server*CLI> dialplan show 2001@default
Зарегистрируйте пару телефонов на разных серверах и совершите звонки
Не забудьте проверить записи в /records/voicemail
Видео к статье будет доступно на моем YouTube канале
Комментарии пользователей
Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!