====== Использование Asterisk в офисной телефонии ====== ===== Программа курса ===== * [[http://www.specialist.ru/course/asterisk|Asterisk. Уровень 1. Телефония будущего для предприятия]] ===== Книга по курсу ===== * [[http://asterisk.ru/store/files/Asterisk_RU_OReilly_DRAFT.pdf|Астериск - будущее телефонии]] * [[http://asterisk.ru/store/files/Asterisk_-_Definitive_guide_4th.pdf|Asterisk™: Окончательное руководство]] ===== Модуль 0: Подготовка стенда в классе ===== * Узнать свой номер стенда * Удалить виртуалки * Удалить профили putty * Отключить не используемые адаптеры * Записать логин пароль и IP (сообщить преподавателю) рабочей станции * Проверить наличие дистрибутивов и образов ===== Модуль 1: Теоретические основы телефонии ===== ==== Теория ==== === Теоретические основы классической телефонии (АТС, сигнализация, DTMF) === * [[https://ru.wikipedia.org/wiki/Телефон|История развития]] * [[https://en.wikipedia.org/wiki/History_of_the_telephone|History of the telephone]] * [[http://ru.wikipedia.org/wiki/Психоакустика|Физические основы аналоговой передачи голоса]] * [[http://ru.wikipedia.org/wiki/Контроль_посылки_вызова|Сигнализация в аналоговой телефонии]] * [[http://ru.wikipedia.org/wiki/Телефонный_план_нумерации|Телефонный план нумерации]] * [[http://ru.wikipedia.org/wiki/E.164|Рекомендация E.164]] === История развития технологий цифровой передачи голоса (ISDN, ATM) === * [[http://ru.wikipedia.org/wiki/PCM|Физические основы цифровой передачи голоса]] * [[http://ru.wikipedia.org/wiki/DS0|Теорема Котельникова, Найквиста, Шеннона]] * [[http://ru.wikipedia.org/wiki/ISDN|Цифровые пользовательские каналы ISDN]] * [[http://ru.wikipedia.org/wiki/ATM|Универсальная сеть передачи данных ATM]] === Теоретические основы передачи голосового сигнала в компьютерных сетях (кодеки G.*, протоколы сигнализации SIP, IAX) === * [[http://ru.wikipedia.org/wiki/VoIP|Физические основы передачи голосового трафика в IP сетях]] * [[http://ru.wikipedia.org/wiki/Протокол_установления_сеанса|Протоколы сигнализации VoIP SIP, H.323, IAX]] * Взаимодействие клиентов SIP. [[https://habrahabr.ru/post/188352/| Часть 1]], [[https://habrahabr.ru/post/189332/|Часть 2]] * [[http://ru.wikipedia.org/wiki/G.711|Кодеки G.711, G.726, G.729, GSM-FR]] === Направления развития телефонии будущего === * [[http://ru.wikipedia.org/wiki/Унифицированные_коммуникации|Унифицированные коммуникации]] === Обзор свободно доступных и бесплатных IP АТС === * [[http://habrahabr.ru/post/122215/|Обзор свободно доступных и бесплатных IP АТС (Asterisk, FreeSWITCH, SipXecs, Yate)]] ==== Юмор ==== * [[http://lukoshko.net/nosov/noskm3.shtml|Николай Носов. Телефон]] * [[http://engineering-ru.livejournal.com/79972.html|Телефонная башня в Стокгольме]] * [[https://vc.ru/n/amazon-data-trucks|Amazon представила грузовики для перевозки данных из дата-центров в «облако»]] ==== Лабораторные работы: Передача голосового трафика в компьютерной сети ==== === 1.1 Установка soft телефона на рабочую станцию === * [[ZoIPer]] (Без настроек) === 1.2 Использование SIP протокола для организации передачи голосового трафика в компьютерной сети === sip:10.5.N.150 ===== Вопросы ===== * Перечислите задачи сигнализации в телефонии. * Перечислите варианты набора номера в аналоговой телефонии. * Что определяет термины задержка и jitter в компьютерной сети? * Почему протоколы TCP/IP,Ethernet и ОС Unix/Linux не слишком хороши для IP телефонии? * Назовите популярные аудио кодеки, используемые в телефонии * Какая полоса пропускания требуется кодеку G.711? * Назовите популярные протоколы сигнализации IP телефонии * Для чего используется протокол SDP? ===== Модуль 2: Использование Asterisk в качестве SIP proxy ===== ==== Теория ==== === История Asterisk === * [[http://ru.wikipedia.org/wiki/Zaptel|Zaptel]] * [[http://ru.wikipedia.org/wiki/Asterisk|Asterisk]] * [[https://www.asterisk.org/products/software/licensing/|Asterisk Commercial Licensing]] === Разработка номерного плана предприятия === * [[http://ru.wikipedia.org/wiki/Телефонный_план_нумерации|Телефонный план нумерации]] * [[http://ru.wikipedia.org/wiki/E.164|Рекомендация E.164]] ==== Лабораторные работы: Использование Asterisk в качестве SIP proxy ==== === 2.1 Установка системы server === # cat /etc/hosts 127.0.0.1 localhost 172.16.1.X server.corpX.un server # cat /etc/resolv.conf search corpX.un nameserver 172.16.1.254 root@localhost:~# cat /etc/hostname server.corpX.un root@localhost:~# cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 172.16.1.X netmask 255.255.255.0 gateway 172.16.1.254 root@localhost:~# init 6 ... root@server:~# ping ya.ru root@server:~# apt update === 2.2 Установка Asterisk === * Сервис Asterisk ([[Сервис Asterisk#Установка]]) * [[https://www.asterisk.org/downloads|Asterisk Downloads]] === 2.3 Настройка SIP каналов === * [[Сервис Asterisk#Настройка CHAN_SIP каналов]] (401, 402, 403) * [[Сервис Asterisk#Настройка RES_PJSIP каналов]] * [[Сервис Asterisk#Командный интерфейс Asterisk]] === 2.4 Подключение к SIP каналам soft телефонов === * [[Материалы по VoIP#Soft телефоны]] (401-Zoiper 403-PhonerLite) * Звонок на тестовый номер 1000 === 2.5 Подключение к SIP каналам телефонных аппаратов === * Узнайте у преподавателя IP адрес Вашего VoIP шлюза * Eltex RG140x ([[Eltex RG140x#Настройка VoIP параметров]]) * Linksys SPA-3102 ([[Linksys SPA-3102#Настройка VoIP параметров]]) * SIP Phone Panasonic KX-HDVXXX ([[SIP Phone Panasonic KX-HDVXXX#Настройка через WEB интерфейс]]) === 2.6 Настройка базового плана нумерации === * [[Сервис Asterisk#Настройка базового плана нумерации]] * [[Сервис Asterisk#Отладка работы Asterisk]] === 2.7 Видеозвонки === * [[DrayTek SIP Softphone]] * [[Сервис Asterisk#Видеозвонки]] ==== Вопросы ==== * Какие варианты установки Asterisk? * Под какой лицензией распространяется Asterisk? * С правами какого пользователя рекомендуется запускать Asterisk? * Какой транспортный ip протокол может использоваться в SIP сигнализации? * Для чего используется протокол RTP? * В каком каталоге находятся файлы конфигурации Asterisk? * Какая настройка канала chan sip определяет разрешенные кодеки? * Что обозначает символ ! в CLI интерфейсе Asterisk? * Что обозначает символ ; в файлах конфигурации Asterisk? * Для чего может понадобиться регистрация SIP устройства на сервере Asterisk? * К чему приводит команда core restart gracefully? * Какие правила указания значений приоритетов имеются в плане нумерации? * Какой ключ команды asterisk используется для CLI подключения к серверу? * Какой ключ команды asterisk используется для выполнения инструкций? ===== Модуль 3: Распространение IP телефонии за пределы офиса ===== ==== Теория ==== === Телефонный транк === * [[http://ru.wikipedia.org/wiki/Соединительная_линия|Соединительная_линия]] * [[http://www.bytemag.ru/articles/detail.php?ID=8756|Построение транков в IP-телефонии]] * [[https://wiki.asterisk.org/wiki/display/AST/Asterisk+Standard+Channel+Variables|Asterisk Standard Channel Variables]] * [[https://ru.wikipedia.org/wiki/DUNDi|DUNDi]] === Подключение Asterisk к Asterisk === * [[http://ru.wikipedia.org/wiki/IAX|Протокол IAX]] === Подключение Asterisk к VoIP провайдерам === * [[http://www.voip-info.org/wiki/view/Asterisk+Configurations+for+connecting+with+VOIP+providers|Asterisk Configurations for connecting with VOIP providers]] === Управление кодеками и транскодинг === * [[http://www.voip-info.org/wiki/view/Asterisk+codecs|Asterisk Codecs]] ==== Лабораторные работы: Подключение телефонной сети предприятия к VoIP провайдерам ==== === 3.1 Использование протокола IAX для подключения Asterisk к Asterisk === * Управление CallerID ([[Сервис Asterisk#Настройка CHAN_SIP каналов]]) - Указываем ФИО для кнала 403 и тестируем звонком на 401 * [[Сервис Asterisk#Подключение Asterisk к Asterisk по протоколу IAX]] * Подключение Asterisk к Asterisk по протоколу SIP ([[Сервис Asterisk#Настройка CHAN_SIP каналов]]), демонстрируется для видеотелефонов === 3.2 Использование протокола SIP для подключения к VoIP провайдерам === * [[https://www.sipnet.ru/|Демонстрация вариантов использования услуг провайдера SIPNET (WebRTC, информация о подключенных устройствах, звонки из города, ...)]] * [[Материалы по VoIP#Настройка Asterisk для связи с VoIP провайдерами]] 3.2.1 Настройка исходящих вызовов * [[Сервис Asterisk#Использование шаблонов в именах CHAN_SIP каналов]] * Настройка системы преподавателя ([[Сервис Asterisk#Подключение Asterisk к Asterisk по протоколу SIP]]) * Настройка системы слушателя ([[Сервис Asterisk#Шаблон конфигурации для осуществления исходящих вызовов]]) 3.2.2 Обработка входящих вызовов * Настройка системы слушателя ([[Сервис Asterisk#Шаблон конфигурации для обработки входящих вызовов]]) === 3.3 PJSIP === * [[Сервис Asterisk#Настройка RES_PJSIP каналов]] === 3.4 Диагностика проблем подключения === * [[Сервис Asterisk#Отладка работы Asterisk]] ===== Вопросы ===== * Какая настройка канала chan sip определяет возможность регистрации на нем устройства? * Что такое телефонный транк? * Какие переменные канала Вам известны? * Верно ли что соединить две станции Asterisk можно только по протоколу IAX? * Чем отличается Asterisk канал типа peer от канала типа user в настройках IAX и SIP? * Для чего используется протокол DUNDi ===== Модуль 4: Развитие сервисов корпоративной IP телефонии ===== ==== Теория ==== === Обзор сервисов, расширяющих возможности IP телефонии === * [[http://ru.wikipedia.org/wiki/Call_Detail_Record|Call Detail Record]] * [[https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%BE%D1%82%D0%BE%D0%BA%D0%BE%D0%BB_%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81%D0%B5%D0%B0%D0%BD%D1%81%D0%B0#Сервер_B2BUA|Сервер B2BUA]] * [[http://ru.wikipedia.org/wiki/Дополнительные_виды_обслуживания|Дополнительные виды обслуживания]] * [[http://ru.wikipedia.org/wiki/Сервисы_корпоративной_IP_телефонии|Сервисы корпоративной IP телефонии]] === Функции Call центра === * [[http://ru.wikipedia.org/wiki/Колл-центр|Колл-центр]] ==== Юмор ==== * [[https://youtu.be/0zC_zkfLK2U|ПОЗВОНИТЕ КУЗЕ]] ([[https://youtu.be/vaeAuJAJmKs|управление Кузей в 2021]]) ==== Лабораторные работы: Внедрение сервисов IP телефонии ==== === 4.1 Детализация времени разговоров (Call Detail Records CDR) === * [[Локализация системы#Локализация временной зоны]] * [[Сервис Asterisk#Детализация разговоров]] === 4.2 Последовательность и перенаправление вызовов === * [[Сервис Asterisk#Базовая конфигурация]] * [[Сервис Asterisk#Перевод вызова на другого абонента]] Проверка: * Звоним с Zoiper на 403 (PhonerLite) и набираем *21301 или *228916... на клавиатуре компьютера (должен быть слышен DTMF) * [[DrayTek SIP Softphone]] * [[Сервис Asterisk#Мониторинг текущего состояния абонента (BLF)]] Проверка: * В классе - звоним с 403-го на 311 (echo), на 401-м видим - линия 403 занята. * В вебинаре - преподаватель проверяет с 402-го номера занятость 401-й линии === 4.3 Перехват и парковка вызовов === Задача: группы перехватить звонок телефона коллеги по комнате, который отсутствует * [[Сервис Asterisk#Перехват вызова]] Проверка: * В классе - из соседнего офиса звонят на 401-й номер, перехватываем на 403-м * В вебинаре - из "города" звонят секретарю (402-й), перехватывает 401-й Задача: при необходимости, "повесить" вызов на "удержание", освобождая телефон для другого звонка, например для консультации. * [[Сервис Asterisk#Парковка разговора]] Проверка: * В классе - звоним с 401 на 403, паркуем вызов на 403, продолжаем разговор, набирая c 403-го телефона номер парковочного слота * В вебинаре - преподаватель звонит с 402-го слушателю на 401-й, преподаватель и/или слушатель паркует вызов и возвращается к нему Задача: улучшаем музыку в режиме ожидания, знакомимся с кодеками (демонстрирует преподаватель) * [[Перекодировка звука]] * [[Сервис Asterisk#Добавление своих звуковых файлов]] в MOH === 4.4 Локализация Asterisk === * [[Сервис Asterisk#Локализация сообщений Asterisk]] (лучше весь!) * [[Сервис Asterisk#Отладка работы Asterisk]] * [[Сервис Asterisk#Обработка статуса вызова]] (демонстрирует преподаватель) Сценарий: уведомляем звонящего о том, что абонент разговаривает по другой линии (демонстрирует преподаватель, звонок с 401-го на 311, с 402-го на 401-й) * [[Сервис Asterisk#Добавление своих классов]] в MOH * [[Сервис Asterisk#Подсчет количества одновременных вызовов абонента]] для многоканального телефона (демонстрирует преподаватель) === 4.5 Внедрение голосовой почты === Создать ящик для пользователя 401, 402 и 403(в классе, понадобится в теме переадресации) * [[Сервис Asterisk#Голосовая почта]] === 4.6 Дополнительные возможности обработки входящих вызовов === Изменение обработки входящих вызовов в течении суток * [[Сервис Asterisk#TimeBased контексты]] (обсудить) Настройка информационных уведомлений для звонящих * [[Сервис Asterisk#Запись звукового файла]] * [[Сервис Asterisk#Добавление своих классов]] в MOH (incoming и, дополнительно, silence, пригодится в Call центре) Автоматизация обработки входящих вызовов с использованием IVR * [[Сервис Asterisk#Запись звукового файла]] * [[Сервис Asterisk#Интерактивное голосовое меню IVR]] === 4.7 Прослушивание и запись разговоров === !!! Методически лучше начать с записи в IVR * [[Сервис Asterisk#Прослушивание разговоров]] в реальном времени (при отсутствии телефонных аппаратов нужна помощь слушателя, звонящего, например, с 401-го на 311) * [[Сервис Asterisk#Запись разговоров]] * Файловый сервер SAMBA [[Файловый сервер SAMBA#Публичный каталог доступный на чтение]] === 4.8 Использованием AstDB === * Как сервис Asterisk использует [[Сервис Asterisk#AstDB]] Задача: сделать имена каналов совпадающими с учетными записями пользователей * [[Сервис Asterisk#Настройка CHAN_SIP каналов]] * [[Сервис Asterisk#Использование AstDB для связи номеров и учетных записей]] Задача: сделать переадресацию с возможностью управления номером со стороны абонента через DTMF * [[Сервис Asterisk#Переадресация вызовов на внешний номер]] * [[Сервис Asterisk#Использование AstDB для перенаправления вызовов]] Проверка: * В классе - Звонок "из города" приходит на 403-й, уходит на мобильный * В вебинаре - Звоним в ZoIPer сами себе на 401, звонок уходит на мобильный === 4.9 Организация конференц связи === * [[Сервис Asterisk#Конференц связь]] * [[Сервис Asterisk#Организация обратных вызовов]] === 4.10 Автоматизация распределения входящих вызовов между операторами === * [[Сервис Asterisk#Организация очередей]] (демонстрирует преподаватель) * [[Сервис Asterisk#Организация обратных вызовов]] * [[Сервис Asterisk#Добавление своих классов]] в MOH (сделаем тишину для операторов!:) * [[Сервис Asterisk#Организация Call центра]] === 4.11 Отказоустойчивая конфигурация === * [[https://www.specialist.ru/news/4815/besplatnij-seminar-asterisk-v-otkazoustojchivoj-konfiguracii|Бесплатный семинар «Asterisk в отказоустойчивой конфигурации»]] - [[Asterisk в отказоустойчивой конфигурации]] * [[https://youtu.be/U-LOU6dkBqs|Отказоустойчивая конфигурация на примере Asterisk]] * [[Решение DRBD]] * [[Пакет Pacemaker]] * [[Технология LXC]] ==== Вопросы ==== * Что общего и в чем разница между приложениями NoOp и Verbose? * В чем отличие вывода debug и verbose в Asterisk? * В каком каталоге, по умолчанию, Asterisk хранит файлы журналов? * Что такое CDR? * Какой кодек используется Asterisk для записи голосовых сообщений? * В каком файле конфигурации Asterisk определяются служебные каталоги системы? * Перечислите аргументы приложения Dial * Как подключить к контексту содержимое другого контекста? * Для чего используется канальный драйвер Local? * Что общего и в чем разница между приложениями Playback и Background? * В каком файле конфигурации Asterisk определяются номера парковочных слотов? * Какой элемент синтаксиса плана нумерации используется для обозначения точек переходов? * В каком каталоге располагаются звуковые файлы, использующиеся в MOH? * В чем отличие понятий format и codec? * Какое приложение можно использовать для записи приветствия в IVR? * Какое приложение можно использовать для записи разговоров? * Какое приложение можно использовать для подслушивания разговоров? * Перечислите приложения, ожидающие DTMF ввод с телефона пользователя. * Какое максимальное количество участников конференции может быть в Asterisk? * Какие стратегии могут использоваться в очередях Asterisk? * В чем разница между приложениями VoiceMail и VoiceMailMain? * Для чего используется конструкция ${...} в Asterisk * Для чего используется конструкция $[...] в Asterisk * Перечислите способы организации обратных вызовов в Asterisk? * Какие специальные "номера" поддерживаются Asterisk в плане нумерации? ===== Модуль 5: Использование WEB интерфейсов для управления Asterisk ===== ==== Теория ==== === Обзор решений, их достоинств и недостатков === * [[https://wiki.asterisk.org/wiki/display/AST/Asterisk+GUI|Asterisk GUI]] * [[https://ru.wikipedia.org/wiki/FreePBX|FreePBX]] * [[https://www.asterisk.org/downloads/asterisknow|AsteriskNOW IP PBX]] * [[https://ru.wikipedia.org/wiki/Elastix|Elastix]] ==== Лабораторные работы ==== === Подготовка voip1.un === * Учетки 00000X на voip1.un настроить на nat * Старые сервера остановить, * отрегистрировать на voip1 (может не нужно) * настроить iax на 172.16.1.100+X (если будет iax) * перезапустить voip1 (может не нужно) === 5.1 Установка WEB интерфейса Asterisk === * [[FreePBX#Установка]] FreePBX (сгенерировать новый mac) === 5.2 Настройка сервисов телефонии через WEB интерфейс === * [[FreePBX]] * Eltex RG140x ([[Eltex RG140x#Настройка VoIP параметров]]) * Linksys SPA-3102 ([[Linksys SPA-3102#Настройка VoIP параметров]]) * SIP Phone Panasonic KX-HDVXXX ([[SIP Phone Panasonic KX-HDVXXX#Настройка через WEB интерфейс]]) === 5.3 Совместное управление Asterisk через WEB интерфейс и файлы конфигурации === * [[FreePBX#Использование файлов конфигурации]] FreePBX ===== Вопросы ===== * Можно ли совместить настройку Asterisk через GUI и редактирование файлов конфигураций? * Почему не следует этого делать?