SIP Домофония: Настройка DTMF кнопки для открытия двери (Asterisk/Fanvil/Beward)
Архитектура SIP-домофонии и проблема DTMF
Современные SIP-вызывные панели (домофоны Beward, Fanvil, Hikvision) управляют электромагнитным замком двери с помощью встроенного реле. Когда посетитель звонит на IP-телефон секретаря, секретарь нажимает на клавиатуре запрограммированную кнопку (например, * или #), чтобы открыть дверь. Сигналы нажатия клавиш передаются по протоколу DTMF (Dual-Tone Multi-Frequency). Главная проблема: голос проходит в обе стороны отлично, но при нажатии кнопки дверь не открывается. Это происходит из-за несовпадения метода передачи DTMF (Payload type) между телефоном, АТС (Asterisk) и самим домофоном. Вызывная панель просто не понимает, что была нажата кнопка. Бизнес-риски: срыв контроля доступа, посетители не могут попасть в офис.
Сравнение методов передачи DTMF
| Метод DTMF | Принцип работы | Надежность / Совместимость |
|---|---|---|
| RFC2833 (RTP Event) | Символ передается цифровым пакетом внутри RTP-потока (вне звука). | Самый надежный (Стандарт). Рекомендуется к использованию. |
| SIP INFO | Символ передается текстовым SIP-сообщением по сигнальному каналу. | Средняя. Зависит от NAT и реализации SIP стека. |
| INBAND (Аудио) | Тоновый сигнал (писк) передается прямо в голосовом канале. | Крайне низкая. Искажается кодеками сжатия (G.729). |
Настройка согласования DTMF
Сценарий 1: Настройка Asterisk / FreePBX
АТС должна выступать корректным прокси-сервером для DTMF.
- Зайдите во FreePBX -> Applications -> Extensions.
- Откройте настройки внутреннего номера (Extension) домофона.
- Вкладка Advanced -> параметр DTMF Mode.
- Установите значение
RFC2833. Проделайте то же самое для экстеншена IP-телефона секретаря. - Примените изменения (Apply Config).
Сценарий 2: Настройка SIP-домофона и IP-телефона
Оба конечных устройства должны говорить на одном языке.
1. Web-интерфейс домофона (например, Beward):
Перейдите в "Настройки SIP" -> "DTMF тип" -> Установите "RFC2833" (или RTP Event).
Перейдите в "Настройки СКУД/Реле" -> Код открытия двери: укажите символ (например, '#').
2. Web-интерфейс IP-телефона (например, Yealink):
Аккаунт -> Дополнительно -> Тип DTMF -> Установите "RFC2833".
Полезная нагрузка DTMF (Payload Type): должно быть 101.Типовые ошибки администраторов
- Включен кодек G.729 с Inband DTMF: Голосовой кодек G.729 сильно сжимает звук, вырезая "лишние" частоты. Если DTMF передается как звук (Inband), кодек исказит тональный сигнал до неузнаваемости, и реле не сработает. ВСЕГДА используйте RFC2833 (RTP Event).
- Параметр rtpkeepalive: Иногда RTP-сессия приостанавливается в момент тишины (VAD). При нажатии кнопки пакет RFC2833 теряется. Отключайте Silence Suppression на домофонах.
Гибридные системы СКУД и VoIP требуют тонкой настройки Dialplan'ов и SIP-профилей. Инженеры ITSTM интегрируют любые SIP-домофоны (TrueIP, BAS-IP, Beward) в ваш Asterisk, настроят умную маршрутизацию вызовов (на охрану/секретаря/смартфон) и гарантируют безотказное открытие дверей.
Частые вопросы (FAQ)
Как диагностировать, доходит ли DTMF до домофона?
В консоли Asterisk выполните команду 'logger set level dtmf on' или 'pjsip set logger on'. При нажатии кнопки вы должны увидеть в логах строку 'DTMF begin ...' и 'DTMF end ...'. Если их нет, значит АТС не получает сигнал от телефона секретаря.
Что такое Payload Type 101?
В протоколе RTP (по которому идет звук и RFC2833) тип содержимого пакета маркируется цифрой. Исторически сложилось, что для DTMF Event используется число 101. Обязательно проверьте, чтобы на домофоне и телефоне этот параметр совпадал.
Можно ли открывать дверь через короткий код АТС, а не кнопку?
Да, можно написать кастомный Dialplan в Asterisk. При наборе, например, *99, АТС через AGI-скрипт может отправлять HTTP GET запрос (CGI-команду) напрямую на веб-сервер домофона (минуя SIP/DTMF) для принудительного открытия реле.
Почему при использовании SIP INFO кнопка срабатывает через раз?
SIP INFO идет по сигнальному порту (5060). Если между устройствами есть NAT или нестабильная Wi-Fi сеть, TCP/UDP пакет INFO может прийти с задержкой или потеряться, в то время как RTP (звук) приоритезируется сетью.