Внешние push-уведомления
В статье описывается как настроить отправку Push уведомлений на панель управления через личный кабинет на нашем сайте.
Зачем это надо?
При работе с SIP, когда закрыт i3 pro на панели управления, и домофон пытается до нее дозвониться, необходимо послать панели управления Push уведомление, чтобы разбудить приложение i3 pro.
Для реализации подобного функционала существует два способа:
- Подключить к проекту iRidium Server и заставить домофон звонить на него. При получении звонка, сервер будет отсылать Push уведомление панели управление.
- Использовать отправку уведомлений через облако. Как это сделать описано в этой статье.
Как это работает?
- При звонке с домофона домофон отправит запрос на отправку уведомления в облако iRidium.
- Облако, получив запрос, даст команду отправки уведомления для указанной группы уведомлений в указанном объекте автоматизации.
- Облако пошлет уведомление всем панелям, которые подключены к указанной группе уведомлений.
- Увидев уведомление на панели управления, пользователь запустит приложение и увидит входящий звонок.
Реализация отправки уведомлений через облако
- В личном кабинете откройте объект автоматизации, для которого требуется настроить облачные уведомления, и создайте группу уведомлений.
- Перейдите в настройки группы уведомлений и нажмите "создать ключ" для нужной группы.

- Скопируйте созданный ключ. Далее он потребуется при настройке SIP-домофона.

- Теперь настройте SIP-домофон. Суть настройки заключается в создании события, которое будет посылать запрос в облако для отправки уведомления.
Внешний вид запрос:
GET http://push.iridiummobile.net/?key=INPUT_HERE_YOUR_KEY&title=You%20have%20not%20recived%20call&sound_type=1
где
key -
ключ, скопированный из личного кабинета
title -
текст уведомления
Настройка SIP домофонов
Настройка уведомлений для Asterisk
-
Создайте пользователя.
-
Уточните имя контекста - from-internal.

- Создайте файл на сервере Asterisk ntf.sh chmod +x.
- Внесите изменения в контекст.

Текст Баш скрипта
1. ! /bin/bash
curl -X GET \
'http://push.iridiummobile.net/?key=INPUTHEREYOUKEY&title=You%20have%20not%20recived%20call&sound_type=1' \ //<translate><!--T:24-->
В параметр key запишите ключ, взятый из личного кабинета</translate>
-H 'Cache-Control: no-cache' \
Текст контекста
;Doing push
exten => 5009,1,System(/etc/asterisk/ntf.sh "${name} (number ${CALLERID(num)})" ${EXTEN})
;Init incriment
exten => 5009,n,Set(i=0)
;Start call cycle and incriment i
exten => 5009,n(redail),Set(i=$[${i} + 1])
;Call
exten => 5009,n,Dial(PJSIP/5009,,m)
;Getting abonent status
exten => 5009,n,ChanIsAvail(PJSIP/5009,,as)
;Wait 5 sec
exten => 5009,n,Wait(5)
;If count of trying more then 5 go out from cycle
exten => 5009,n,GotoIF($["${i}" = "5"]?skip)
;If abonent is offline go to cycle start
exten => 5009,n,GotoIF($["${AVAILSTATUS}" = "5"]?redail)
;Event of cycle out
exten => 5009,n(skip),Wait(1)
Настройка уведомлений для 3CX
- Cоздайте 3cx Voice Call App.
- Добавьте в него HTTP Request.

- Создайте и настройте очередь вызова.

- Добавьте ваше голосовое приложение.

Настройка уведомлений для 3СХ v.16
- Создайте в 3CX Call Flow Designer новый проект.
- Перенесите компонент HTTP Request (список компонентов находится справа) в поле “Drag and drop components here” во вкладке Main.
3. Двойным нажатием откройте настройку компонента.
4. Заполните настройки.
В поле ввода URI вставьте ссылку внешнего PUSH-уведомления, заключенную в кавычки. Поле Content должно содержать “”.
5. Соберите приложение, перейдите в пункт меню Build и выберите Build All.
6. После успешной сборки внизу появится сообщение, с помощью которого можно перейти в папку, где сохранён .ZIP файл с созданным приложением.
7. В веб-интерфейсе 3CX перейдите в раздел Call Flow Apps .
8. Добавьте созданное приложение, дождитесь его загрузки.
9. Отправку PUSH-уведомлений можно добавить как для Ring Groups, так и для Call Queues.
Для реализации отправки PUSH-уведомлений через Ring Groups создайте группу, добавьте в группу номера абонентов. В настройках группы укажите действие Send Call To Call flow Apps и созданное приложение для отправки уведомлений для случая, если абонент не ответил на звонок.
Для Call Queue настройка происходит аналогичным образом
10. При звонке на групповой номер, или на номер очереди, в случае пропуска звонка пользователь с запущенным проектом для получения PUSH-уведомлений получит сообщение.
Настройка уведомлений для Mobotix
- Зайдите в веб интерфейс Mobotix.
- Перейдите в раздел Admin menu.

- Далее откройте меню Outgoing calls settings в разделе Audio and VOIP Telephony.

-
Настройте телефонные номера и SIP адреса.
-
Установите Dial Attemps значение 10.

-
Перейдите в Setup menu-> Action group overview
-
Создайте Action, в котором задайте логику "Если нажата кнопка вызова с домофона, то:"
Action 1 - звонить на панель управления
Action 2 - выбрать значение SimpleNotify

- В этом же разделе перейдите в окно IP Notify.

- Откройте раздел Simple Nofity и настройте параметры:
Destination Address = push.iridiummobile.net:80
Data Protocol = HTTP/1.0 Request
в следующее поле вставьте текст запроса, описанный выше.
/?key=INPUTHEREYOUKEY&title=You%20have%20not%20recived%20call&sound_type=1

На этом настройка Mobotix закончена.