Проект «SnakeProject» Михаила Козлова

Навигация

⇒ Voice(Asterisk\Cisco) ⇐

CISCO

Microsoft

Powershell

Python

SQL\T-SQL

FreeBSD and Nix

Общая

WEB Разработка

ORACLE SQL \ JAVA

Мото


Asterisk часть 2 соединение двух астерисков и голосовое меню


 

Asterisk часть 2 соединение двух астерисков и голосовое меню


В предыдущей части мы установили Asterisk на Ubuntu Server 20.04
http://snakeproject.ru/rubric/article.php?art=ast1_20112020

Установите идентичную машину или склонируйте виртуалку, дав ей другой адрес


Задача 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:


Проверка работоспособности

Перезагрузим конфигурацию протокола iax:
asterisk -rx 'iax2 reload'

Перезагрузим конфигурацию диалпланов:
asterisk -rx 'dialplan reload'


Проверить регистрацию этого сервера на удаленном:
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 канале

 


Комментарии пользователей

Эту новость ещё не комментировалиНаписать комментарий
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!

Контакты для обмена ссылками между сайтами Видео к статьям на Youtube Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и Linux Код обмена баннерами
Мои друзья: www.info-x.org - Информационный ресурс о ОС FreeBSD За сложными вещами простые действия Новости Ubuntu Linux Сообщество сисадминов Личный сайт skeletora Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

Рейтинг@Mail.ru
Рейтинг@Mail.ru Яндекс.Метрика

© Snakeproject.ru создан в 2013 году.
При копировании материала с сайта - оставьте ссылку.