ЛР 3.7 - интеграция c OpenFire

  1. Импортируйте новую машину srv и укажите ее сетевые настройки, а также имя хоста.
  2. Установите OpenFire с официального сайта:
    wget https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.9.0_all.deb
    apt install ./openfire_4.9.0_all.deb
  3. В ВМ win-2016-dc, ast22 и на хостовой машине в файле hosts создайте новую запись для srv.lab.lan.
  4. Подключитесь к веб-интерфейсу машины с OpenFire на порт 9090 и следуйте инструкциям по установке.
XMPP Domain Name:   lab.lan
Server Host Name (FQDN):    srv.lab.lan

Embedded Database

Profile settings - Default

Admin Email Address: admin@lab.lan
New Password: specialist
Confirm Password: specialist
  1. Подключитесь к панели управления по адресу http://srv.lab.lan:9090/
  2. В разделе Users/Groups - Users создайте новых пользователей user1 и user2 с паролем specialist.
  3. В разделе Users/Groups - Groups создайте новую группу group1, затем в открывшихся настройках:
- Включите опцию Enable contact list group sharing
- В поле Enter contact list group name укажите lab
- Сохраните настройки.
- В секции Members of This Group добавьте в созданную группу всех созданных пользователей.
  1. На хост-машину и на ВМ win-2016-dc скачайте и установите клиент Spark с официального сайта, затем настройте его:

  2. Очистите и настройте конфиг xmpp:
    :> /etc/asterisk/xmpp.conf
    nano /etc/asterisk/xmpp.conf

[general]
debug=no

[aster]
type=client
serverhost=srv.lab.lan
username=admin@lab.lan
secret=specialist
port=5222
  1. В консоли asterisk перезагрузите модуль xmpp и проверьте факт установки соединения.
    module reload res_xmpp.so
    xmpp show connections
    xmpp show buddies
  2. Добавьте новый экстеншн в диалплан и протестируйте работоспособность:
exten => 301,1,Answer()
same => n,JabberSend(aster,user1@lab.lan,Just testing...)
same => n,Hangup()
  1. Добавьте в диалплан отправку уведомления о звонке:
exten => _2XX,1,Wait(2)
exten => _2XX,n,Playback(beep)
exten => _2XX,n,Set(STATUS=${JABBER_STATUS(aster,user${EXTEN:2}@lab.lan)})
exten => _2XX,n,GotoIf($[${STATUS} > 2]?busy)
exten => _2XX,n,JabberSend(aster,user${EXTEN:2}@lab.lan,Вам звонит ${CALLERID(num)})
exten => _2XX,n,Dial(PJSIP/${EXTEN},10)
exten => _2XX,n,Hangup()
exten => _2XX,n(busy),JabberSend(aster,user${EXTEN:2}@lab.lan,Вам звонил ${CALLERID(num)})
exten => _2XX,n,Playback(tt-allbusy)
exten => _2XX,n,Hangup()