Инструменты пользователя

Инструменты сайта


asterisk._интеграция_2019

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

asterisk._интеграция_2019 [2019/12/05 11:20] (текущий)
val создано
Строка 1: Строка 1:
 +====== Asterisk. Интеграция ======
  
 +===== Программа курса =====
 +
 +  * [[http://​www.specialist.ru/​course/​asterisk3|Asterisk. Уровень 2. Интеграция с внешними системами]]
 +===== Цель курса =====
 +
 +Изучить интерфейсы и варианты интеграции Asterisk с внешними системами
 +
 +===== Модуль 0. Подготовка стенда в классе =====
 +
 +  * Узнать свой номер стенда
 +  * Удалить виртуалки
 +  * Удалить профили putty
 +  * Отключить не используемые адаптеры
 +  * Записать логин пароль и IP (сообщить преподавателю) рабочей станции
 +  * Проверить наличие дистрибутивов и образов
 +
 +===== Модуль 1. Развертывание компьютерной и телефонной сети предприятия =====
 +
 +==== Теория ====
 +
 +  * Базовая схема компьютерной сети предприятия
 +  * Базовая схема телефонии предприятия
 +  * Схема информационных систем предприятия
 +
 +==== Лабораторные работы ====
 +
 +==== Упражнение 1.1. Настройка сервера Asterisk, sip каналов и базового диалплана ====
 +
 +  * Настройки VM RAM: 1Gb, Audio: AC97 (для festival)
 +  * [[Сервис Asterisk#​Установка]] Asterisk
 +  * [[Сервис Asterisk#​Настройка базового функционала IP PBX]]
 +
 +===== Модуль 2. Интеграция с реляционными базами данных =====
 +
 +==== Теория ====
 +
 +  * Основы реляционных баз данных ([[https://​ruseller.com/​lessons.php?​id=1664|Реляционные базы данных для чайников]])
 +  * Схемы данных для информации из Asterisk ([[http://​www.voip-info.org/​wiki/​view/​Asterisk+cdr+mysql|Asterisk cdr mysql]], [[https://​www.voip-info.org/​wiki/​view/​Asterisk+RealTime+Sip|Asterisk RealTime Sip]])
 +  * [[https://​voipnotes.ru/​podkluchenie-asterisk-k-mysql-cherez-draiver-odbc/​|Подключение Asterisk к MySQL через драйвер ODBC]]
 +==== Лабораторные работы ====
 +
 +==== Упражнение 2.1. Развертывание сервера СУБД MySQL  ====
 +
 +  * [[Сервис MySQL#​Установка]] MySQL
 +  * [[Сервис MySQL#​Настройка кодировки UTF-8]]
 +  * [[Локализация системы#​Локализация временной зоны]]
 +
 +
 +==== Упражнение 2.2. Подключение Asterisk к СУБД и хранение CDR в БД ====
 +
 +  * [[Сервис Asterisk#​Использование СУБД для хранения CDR]]
 +  * [[Сервис ODBC]]
 +  * [[Сервис Asterisk#​Asterisk ODBC]]
 +  * [[Сервис Asterisk#​Asterisk ODBC CDR]]
 +
 +
 +==== Упражнение 2.3. Хранение конфигурации Asterisk в БД ====
 +
 +  * [[Сервис Asterisk#​Asterisk realtime]]
 +  * Проверить,​ подключив ZoIPer к 404-му каналу
 +<​code>​
 +[root@gate.isp.un:​~]#​ cat exten_secret_proxy_mac_model_table.txt
 +</​code>​
 +  * [[Сервис Asterisk#​Provisioning]]
 +  * SIP Phone Panasonic KX-HDVXXX [[SIP Phone Panasonic KX-HDVXXX#​Сброс к заводским установкам]]
 +  * Linksys SPA-3102 [[Linksys SPA-3102#​Восстановление фабричных настроек]]
 +
 +
 +==== Упражнение 2.4. Использование WEB приложений для работы с базами данных Asterisk ==== 
 +
 +  * [[Сервис HTTP#​Установка и запуск сервера Apache]]
 +  * [[Сервис HTTP#​Модуль php]]
 +  * [[Язык программирования PHP#​Модуль php mysql]]
 +
 +  * [[Сервис Asterisk#​Просмотра статистики CDR и прослушивание записей]]
 +
 +  * [[Сервис MySQL#​phpmyadmin]] или [[Сервис MySQL#​adminer]]
 +  * Заполняем поле fullname (не более 40 символов) для канала 403 - Ваше ФИО, для 404 - Василий Кошкин
 +
 +==== Упражнение 2.5. Примеры работы с БД из диалплана ====
 +
 +  * [[Сервис Asterisk#​Asterisk ODBC функции]]
 +
 +===== Вопросы =====
 +
 +  * Какие имеются способы управления модулями/​функциональностью астериск
 +  * В чем преимущества использования интерфейса ODBC?
 +  * В какие внешние системы может передавать Asterisk данные CDR?
 +===== Модуль 3. Интеграция с системой синтеза речи Festival =====
 +
 +==== Теория ====
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​Синтез_речи|Синтез речи]]
 +
 +==== Лабораторные работы ====
 +
 +==== Упражнение 3.1. Развертывание сервиса Festival ====
 +
 +  * [[Сервис Festival]]
 +
 +==== Упражнение 3.2. Варианты использования Festival в Asterisk ====
 +
 +  * [[Сервис Asterisk#​Синтез речи с использованием пакета Festival]]
 +
 +  * [[Сервис Asterisk#​Asterisk ODBC функции]]
 +
 +===== Вопросы =====
 +
 +  * По какой причине предварительная запись звуковых сообщений предпочтительнее синтеза речи?
 +===== Модуль 4. Интеграция с системами электронной почты =====
 +
 +==== Теория ====
 +
 +  * [[http://​ru.wikipedia.org/​wiki/​Унифицированные_коммуникации|Унифицированные коммуникации]]
 +  * Основы протоколов [[https://​ru.wikipedia.org/​wiki/​SMTP|SMTP]] и [[https://​ru.wikipedia.org/​wiki/​IMAP|IMAP]]
 +  * Варианты использования почтового сервера для голосовой почты
 +
 +==== Лабораторные работы ====
 +
 +==== Упражнение 4.1. Развертывание почтового сервера предприятия ====
 +
 +  * [[Управление учетными записями в Linux]]
 +  * [[Сервис MTA#​Установка и настройка MTA на обработку почты домена hostname]]
 +  * [[Сервис MTA#​Настройка MTA на обработку почты домена corpX.un]]
 +  * [[Сервер dovecot]]
 +  * [[Web интерфейс к почте]]
 +==== Упражнение 4.2. Размещение голосовой почты на почтовом сервере ====
 +
 +Создать ящик для пользователя 403 в формате imap
 +
 +  * [[Сервис Asterisk#​Голосовая почта]]
 +  * [[Сервис Asterisk#​Локализация сообщений Asterisk]]
 +  * Для прослушивания голосовой почты настроить звонок на номер своего телефона
 +
 +===== Вопросы =====
 +
 +  * Какие виды хранилищ может использовать Asterisk для голосовой почты?
 +===== Вопросы =====
 +===== Модуль 5. Интеграция c web приложениями =====
 +
 +==== Теория ====
 +
 +  * Варианты взаимодействия веб приложений и Asterisk
 +
 +==== Лабораторные работы ====
 +
 +==== Упражнение 5.1. Развертывание WEB сервера предприятия ====
 +
 +  * [[Сервис HTTP#​Установка и запуск сервера Apache]]
 +
 +==== Упражнение 5.2. Реализация функции "​обратный звонок"​ для посетителей Вашего сайта ====
 +
 +  * [[Сервис Asterisk#​Шаблон конфигурации для осуществления исходящих вызовов]]
 +  * [[Сервис Asterisk#​Шаблон конфигурации для обработки входящих вызовов]]
 +
 +  * [[Сервис Asterisk#​Организация обратных вызовов]] (в том числе call файлы)
 +
 +  * HTML [[Сервис HTTP#​Форма]]
 +
 +  * [[Сервис HTTP#​Модуль php]]
 +  * [[Пакет sudo]]
 +  * [[Язык программирования PHP#​Обработка полей формы и вызов внешних программ]]
 +
 +==== Упражнение 5.3. Предоставляем операторам возможность звонить,​ указав номер абонента в форме на сайте ====
 +
 +  * [[Сервис HTTP#CGI интерфейс сервера]] (не обязательно)
 +  * [[Сервис HTTP#​Управление доступом к HTTP серверу на основе Basic аутентификации]]
 +
 +/*
 +  * [[Сервис HTTP#SSI интерфейс сервера]] ​
 +*/
 +
 +  * [[Сервис HTTP#​Свойство ExecCGI каталогов]]
 +
 +<​code>​
 +...
 +<​Directory /​var/​www/​html/​asterisk>​
 +     ​Options +ExecCGI
 +     ​AddHandler cgi-script .cgi
 +...
 +
 +# cp /​usr/​lib/​cgi-bin/​test-cgi /​var/​www/​html/​asterisk/​test.cgi
 +</​code>​
 +
 +  * [[Язык программирования PHP#​Обработка полей формы и вызов внешних программ]]
 +
 +==== Упражнение 5.4. Размещение адресной книги предприятия в WEB портале с возможностью позвонить одним нажатием ====
 +
 +См. модуль 10
 +
 +==== Упражнение 5.5. Использование WebRTC ====
 +
 +  * [[Пакет OpenSSL#​Создание самоподписанного сертификата]] для системы server.corpX.un
 +  * [[Сервис Asterisk#​WebRTC]]
 +
 +===== Вопросы =====
 +
 +  * Почему приходится использовать sudo для интеграции приложений Web и Asterisk?
 +
 +===== Модуль 6. Использование приложений System и SHELL =====
 +
 +==== Теория ====
 +
 +  * Приложения [[http://​www.itp-redial.com/​class/​weekly-notes/​week4-notes/​system-and-shell|System and SHELL]]
 +
 +==== Лабораторные работы ====
 +
 +==== Упражнение 6.1. Примеры вызова внешних приложений из Asterisk ​ ====
 +
 +  * [[Пакет sudo]]
 +  * [[Сервис Asterisk#​Приложение System]]  ​
 +  * [[Сервис Asterisk#​Приложение SHELL]]
 +
 +==== Упражнение 6.2. Интеграция с биллинговыми системами ====
 +
 +  * Биллинговые системы - основные понятия
 +  * Варианты интеграции биллинговых систем и Asterisk
 +  * Коробочные решения ([[http://​www.asterisk2billing.org/​]])
 +  * Постоплатная система расчетов с использованием файлов CDR ([[https://​www.lanbilling.ru/​content/​lanbilling-agents-pabx|Агент PABX (УПАТС)]])
 +  * Сервис RADIUS
 +  * Постоплатная система расчетов с ([[http://​asterisk.ru/​knowledgebase/​Asterisk+cdr+radius|протоколированием CDR на сервер RADIUS]]
 +  * Предоплатная система расчетов с аутентификацией [[https://​www.voip-info.org/​wiki/​view/​PortaOne+Radius+auth|PortaOne Radius auth]]
 +
 +=== Развертывание RADIUS сервера ===
 +
 +  * [[Сервис FreeRADIUS]] См. /*
 +при первой демонстрации radutmp не включать
 +*/ примечание
 +
 +=== Упражнение 6.3. Предоплатная тарификация с использованием RADIUS ===
 +
 +  * [[Сервис Asterisk#​Аутентификация и учет звонков в RADIUS]]
 +
 +===== Вопросы =====
 +
 +===== Модуль 7. Интеграция с системами IM и Presense =====
 +
 +==== Теория ====
 +
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​XMPP|eXtensible Messaging and Presence Protocol]]
 +
 +==== Лабораторные работы ====
 +
 +==== Упражнение 7.1. Поддержка протокола XMPP в Asterisk ====
 +
 +Сценарий:​ уведомляем пользователей о звонке (и кто звонит) на их телефон через xmpp клиент (удобно для пользователей телефонов без дисплеев),​ управляем вызовом согласно статусу присутствия абонента. ​
 +
 +  * Добавляем в стенд client3
 +  * [[Сервис OpenFire]]
 +  * Заполняем MY-USER-ID для 403-го канала ([[Сервис Asterisk#​Настройка базового функционала IP PBX]])
 +  * [[Сервис Asterisk#​XMPP]]
 +
 +
 +===== Вопросы =====
 +===== Модуль 8. Интеграция с Microsoft AD и LDAP =====
 +
 +==== Теория ====
 +
 +  * Взаимодействие с Microsoft Windows [[linux_freebsd_взаимодействие_с_microsoft_windows#​Модуль 5. Протокол LDAP]]
 +  * Варианты использования LDAP каталога и Asterisk
 +
 +
 +==== Лабораторные работы ====
 +
 +==== Упражнение 8.1. Развертывание инфраструктуры Microsoft AD на предприятии ====
 +
 +  * [[Развертывание Active Directory]]
 +
 +==== Упражнение 8.2. Конфигурация Asterisk на основании информации в Microsoft AD ====
 +
 +  * [[Сервис Asterisk#​Интеграция с Microsoft AD и LDAP]]
 +
 +==== Упражнение 8.3. Управление Asterisk через интерфейс AMI ====
 +
 +  * [[Сервис Asterisk#​Asterisk AMI]]
 +
 +См. /*
 +Эту работу демонстрирует преподаватель на готовом стенде после темы AD (заодно с LDAP и SSO) 
 +*/
 +примечание
 +
 +  * [[Сервис OpenFire#​Установка c Asterisk-IM]]
 +  * [[Сервис OpenFire#​Подключение и предварительная настройка]]
 +  * [[Сервис OpenFire#​Использование LDAP каталога]]
 +
 +===== Вопросы =====
 +
 +  * Почему нет смысла хранить в AD имена/​секреты каналов абонентских телефонов?​
 +===== Модуль 9. Интеграция с системами CRM =====
 +
 +==== Теория ====
 +
 +  * Интерфейс AGI
 +  * Основы систем управления взаимоотношениями с клиентами
 +  * Варианты интеграции систем CRM и Asterisk
 +  * [[https://​bx24asterisk.ru/​instruction/​]]
 +
 +==== Лабораторные работы ====
 +
 +==== Упражнение 9.1. Примеры приложений с AGI интерфейсом ====
 +
 +  * [[Сервис Asterisk#​Asterisk AGI]]
 +
 +==== Упражнение 9.2. Развертывание CRM системы предприятия ====
 +
 +  * [[Сервис SalesPlatform Vtiger CRM Russian]]
 +
 +==== Упражнение 9.3. Развертывание модуля интеграции системы CRM и Asterisk ====
 +
 +  * [[Сервис SalesPlatform Vtiger CRM Russian#​Интеграция с Asterisk]]
 +
 +===== Вопросы =====
 +
 +  * Что общего у интерфейсов Asterisk AGI и Web CGI?
 +===== Модуль 10. Asterisk REST интерфейс =====
 +
 +==== Теория ====
 +
 +  * [[https://​ru.wikipedia.org/​wiki/​REST|REST wikipedia]]
 +  * [[https://​ru.wikipedia.org/​wiki/​JSON|JSON — Википедия]]
 +  * [[http://​subnets.ru/​blog/?​p=5416|В Asterisk появился REST Interface (ARI)]]
 +
 +==== Лабораторные работы ====
 +
 +==== Упражнение 10.1. Включение и тестирование ARI ====
 +
 +  * [[https://​wiki.asterisk.org/​wiki/​display/​AST/​Getting+Started+with+ARI|Getting Started with ARI]]
 +  * [[Сервис Asterisk#​Asterisk ARI]]
 +  * [[http://​ari.asterisk.org/​|Asterisk REST API Browser]]
 +
 +==== Упражнение 10.2. Варианты использования ARI ====
 +
 +Сценарий:​ Реализовать возможность вызова абонента "​щелчком"​ из адресной книги на web сайте
 +
 +  * [[Сервис Asterisk#​Организация обратных вызовов]] - Пример с использованием Asterisk ARI
 +
 +  * [[https://​chrome.google.com/​webstore/​detail/​asterisk-click2call/​hlnmjkbpmnbgeondjeceaomhafdacmlj?​hl=ru|Asterisk Click2Call]]
 +
 +<​code>​
 +# cat /​var/​www/​html/​index.html
 +</​code><​code>​
 +<​html>​
 +Тестовый звонок 301<​br>​
 +Проверка гарнитуры 311<​br>​
 +Петр Петрович Петров 402<​br>​
 +</​html>​
 +</​code>​
 +
 +  * [[Сервис HTTP#SSI интерфейс сервера]]
 +  * [[Сервис HTTP#​Управление доступом к HTTP серверу на основе Basic аутентификации]]
 +
 +<​code>​
 +# cat /​var/​www/​html/​asterisk/​index.shtml
 +</​code><​code>​
 +<form method=POST action="​http://​server.corpX.un:​8088/​ari/​channels?​endpoint=SIP%2F<​!--#​echo var="​REMOTE_USER"​ -->&​extension=301&​context=default&​timeout=30&​api_key=asterisk:​asterisk"><​input value="​301"​ type=submit></​form>​
 +<form method=POST action="​http://​server.corpX.un:​8088/​ari/​channels?​endpoint=SIP%2F<​!--#​echo var="​REMOTE_USER"​ -->&​extension=401&​context=default&​timeout=30&​api_key=asterisk:​asterisk"><​input value="​401"​ type=submit></​form>​
 +<form method=POST action="​http://​server.corpX.un:​8088/​ari/​channels?​endpoint=SIP%2F<​!--#​echo var="​REMOTE_USER"​ -->&​extension=402&​context=default&​timeout=30&​api_key=asterisk:​asterisk"><​input value="​402"​ type=submit></​form>​
 +<form method=POST action="​http://​server.corpX.un:​8088/​ari/​channels?​endpoint=SIP%2F<​!--#​echo var="​REMOTE_USER"​ -->&​extension=402&​context=default&​timeout=30&​api_key=asterisk:​asterisk"><​input value="​403"​ type=submit></​form>​
 +</​code>​
 +
 +  * [[Сервис Asterisk#​Мониторинг Asterisk через ARI]]
 +==== Упражнение 10.3. Варианты приложения Stasis ====
 +
 +  * [[Сервис Asterisk#​ARI Stasis]]
 +
 +===== Вопросы =====
 +
 +  * Как интерфейс ARI позволяет заменить интерфейсы AGI и AMI?
asterisk._интеграция_2019.txt · Последние изменения: 2019/12/05 11:20 — val