Интеграция устройств NetPing с IP PBX Asterisk на примере управления шлагбаумом по телефонному звонку (пример №2)

Данный пример основан на предыдущем варианте интеграции устройств NetPing с IP АТС Asterisk.

Для поднятия шлагбаума в предложенном примере необходимо позвонить на заранее определенный номер, и, если номер звонящего присутствует в базе разрешенных номеров Asterisk, шлагбаум откроется. Ответа на звонок не происходит. Определение номера звонящего осуществляется средствами оператора, предоставляющего аренду телефонной линии.

Дополнительные преимущества данного примера решения:

  • отсутствие в необходимости запоминания добавочного номера для открывания шлагбаума;
  • экономия средств звонящего на номер IP АТС Asterisk

Для реализации представленного решения потребуется аналогичное предыдущему примеру оборудование и программное обеспечение:

  • UniPing v3 — 1 шт.;
  • ПК/сервер с предустановленной АТС Asterisk — 1 шт.;
  • Шлагбаум — 1 шт.;
  • Аренда телефонного номера с возможностью АОН — 1 шт.

Основным условием является возможность определения номера входящего звонка средствами оператора, предоставляющего в аренду номер телефона. Все дополнительные требования и условия смотрите в предыдущей статье. 

Настройка UniPing v3

Настройка устройства UniPing v3 полностью соответствует публикуемому раннее примеру интеграции

Настройка IP ATC Asterisk

Основные параметры настройки IP ATC Asterisk и конфигурация файла sip.conf аналогичны публикуемому раннее примеру интеграции.

Файл конфигурации extensions.conf для данного примера будет отличаться.

В секции [default] добавьте extension, который будет переводить все входящие звонки на раздел [netping]:


[default]
exten => _X.,1,Goto(netping,s,1)

В конце файла добавьте сам раздел [netping], в котором будет осуществляться проверка номера звонящего и выполнение команд snmpset:

[netping]

; Предполагается, что номер определяется в формате: +XXXXXXXXXXX.
; Просто убираем первый символ.
; Если в вашем случае по-другому — см. документацию к Asterisk
exten => s,1,Set(CALLERID(all)=${CALLERID(num):1})

; Если определенный номер не 7911XXXXXXX — ; — даем отбой (exten => s,1000,Hangup())
exten => s,n,GotoIf($[«${CALLERID(num)}» != «7911XXXXXXX»]?1000)

; Если все ОК — выполняем snmpset, пауза 5 сек и следующий snmpset
exten => s,n,System(/usr/bin/snmpset -v 1 -c ping28 192.168.0.28 .1.3.6.1.4.1.25728.5800.3.1.3.2 i 1)
exten => s,n,Wait(5)
exten => s,n,System(/usr/bin/snmpset -v 1 -c ping28 192.168.0.28 .1.3.6.1.4.1.25728.5800.3.1.3.2 i 0)
exten => t,n,Hangup()
exten => s,1000,Hangup()

Подробнее формат команды snmpset смотрите в документации к Net-SNMP tools.

?
×

    Получите бесплатную консультацию по выбору оптимального оборудования

    Наши операторы свяжутся с вами при первой возможности

    ×

      Обращение в техническую поддержку

      Сформулируйте, пожалуйста, тему и текст вашего обращения. Вам ответят в течении рабочего дня.

      ×
      Ваша заявка отправлена. Мы свяжемся с вами при первой возможности.