====== 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://habr.com/ru/companies/kingservers/articles/316660/|AWS Snowmobile: перевоз петабайт данных в облако на … грузовиках от 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
* Настраиваем подключение и подключаемся через PuTTY, тестируем работу сети
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 Настройка базового плана нумерации ===
* [[Сервис Asterisk#Настройка базового плана нумерации]]
* [[Сервис Asterisk#Отладка работы 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)
=== 4.3 Перехват и парковка вызовов ===
Задача: группы перехватить звонок телефона коллеги по комнате, который отсутствует
* [[Сервис Asterisk#Перехват вызова]]
Проверка:
* из "города" звонят секретарю (401-й), перехватывает 403-й (PhonerLite)
Задача: при необходимости, "повесить" вызов на "удержание", освобождая телефон для другого звонка, например для консультации.
* [[Сервис 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 для перенаправления вызовов]]
Проверка:
* Звонок с 401 на 403 уходит на мобильный
=== 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#Процесс начальной конфигурации]]
* [[FreePBX#Базовая конфигурация]]
=== 5.3 Совместное управление Asterisk через WEB интерфейс и файлы конфигурации ===
* [[FreePBX#Использование файлов конфигурации]] FreePBX
===== Вопросы =====
* Можно ли совместить настройку Asterisk через GUI и редактирование файлов конфигураций?
* Почему не следует этого делать?