====== Часть 2. Интеграция Asterisk с решениями IM и Presence ======
* [[https://youtu.be/uG87UYMA3FU|Запись вебинара]]
**Семинар** - реклама курса: [[https://www.specialist.ru/course/asterisk3|Asterisk. Уровень 2. Интеграция с внешними системами]]
**Хэштеги:** Linux & Microsoft CA, Asterisk & Microsoft AD, Любые телефонные аппараты, Спасите Asterisk IM
===== Шаг 1. Исходное состояние стенда =====
* [[Открытое решение IM и Presence в инфраструктуре Microsoft AD]]
* [[Материалы по Windows#Установка русского Language pack в Windows Server 2016]]
* server RAM 2Gb и установлен [[Сервис Festival]]
===== Шаг 2. Установка Asterisk и настройка модуля XMPP =====
* [[Сервис Asterisk#Установка]]
* Базовая конфигурация и использование модуля [[Сервис Asterisk#XMPP]]
[public]
exten => _X!,1,Answer()
exten => _X!,n,JabberSend(aster,user1@corp13.un,Ivan, hello ${EXTEN} times)
exten => _X!,n,JabberSend(aster,user2@corp13.un,Petr, hello ${EXTEN} times)
exten => _X!,n,Hangup()
===== Шаг 3. Интеграция Asterisk с Microsoft AD =====
конфигурация pjsip из LDAP Microsoft AD
* [[Авторизация с использованием LDAP сервера]]
* Назначаем номера телефонов и адреса email пользователям в AD
* Проверяем возможность выгружать информацию о телефонах и адресах электронной почты пользователей АД по протоколу LDAP
server# LDAPTLS_REQCERT=never ldapsearch -x -D "cn=Administrator,cn=Users,dc=corp13,dc=un" -w 'Pa$$w0rd' -H ldaps://pdc.corp13.un -b "dc=corp13,dc=un" "(telephoneNumber=4*)" cn telephoneNumber mail
* Экспортируем корневой сертификат УЦ ([[Материалы по Windows#Windows CA для Linux сервисов]])
* [[Пакет OpenSSL#Импорт сертификата центра сертификации]] в Linux
* Выгружаем из AD информацию, необходимую для конфигурации Asterisk
server# ldapsearch -x -D "cn=Administrator,cn=Users,dc=corp13,dc=un" -w 'Pa$$w0rd' -H ldaps://pdc.corp13.un -b "dc=corp13,dc=un" "(telephoneNumber=4*)" cn telephoneNumber mail
* [[Сервис Asterisk#Настройка PJSIP транспорта]]
* Назначаем ФИО пользователям в AD на русском
* [[Сервис Asterisk#Интеграция с Microsoft AD и LDAP]]
===== Шаг 4. Интеграция плана нумерации и протокола XMPP =====
* Создаем группу group1 в AD, включаем всех xmpp пользователей (включая Administrator)
* Настраиваем [[Сервис OpenFire#Управление контактами]] для возможности пользователей видеть статус друг друга
# service openfire restart
* Может понадобиться перелогиниться пользователям
* Включаем tls для сервиса [[Сервис Asterisk#XMPP]]
* [[Сервис Asterisk#Локализация сообщений Asterisk]]
# service asterisk restart
* Индикация, кто звонит абоненту (АОН) и анализ его статуса через протокол [[Сервис Asterisk#XMPP]]
Бонус - добавляем систему синтеза речи Festival
* Сервис Festival - [[Сервис Festival#Варианты использования в режиме server]]
# cat /etc/asterisk/extensions.conf
...
exten => _4XX,n(busy),Set(MY-CALLED-USER-NAME-PHONE=${PJSIP_ENDPOINT(${EXTEN},callerid)})
exten => _4XX,n,Set(MY-CALLED-USER-NAME=${CUT(MY-CALLED-USER-NAME-PHONE,\",2)})
exten => _4XX,n,Festival(${MY-CALLED-USER-NAME} занят)
===== Шаг 5. Спасите plugin Asterisk-IM =====
* Изменение статуса абонента если он ведет разговор по телефону
* Звонок абоненту через IM клиент
* [[https://www.igniterealtime.org/projects/openfire/|Openfire]]
* [[https://www.igniterealtime.org/projects/asterisk/index.jsp|Asterisk-IM 1.1.1 Latest build: July 3, 2006]]
* [[https://igniterealtime.jiveon.com/community/plugins/asterisk-im/|Asterisk-IM community]]