Образовательный проект «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 канале

 


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

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

Контакты Группа ВК Сборник материалов по Cisco, Asterisk, Windows Server, Python и Django, SQL и T-SQL, FreeBSD и LinuxКод обмена баннерами Видео к IT статьям на YoutubeВидео на другие темы Смотреть
Мои друзья: Советы, помощь, инструменты для сис.админа, статическая и динамическая маршрутизация, FreeBSD

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

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





Поддержать автора и проект