Пропуск трафика с номерами +999
Для операторов и владельцев SIP-серверов: как доставлять звонки и сообщения на номера +999 и как они приходят к вам. Открытые стандарты, без договора и без регистрации. Каждый номер +999 принадлежит человеку, проверенному через Persona.
Маршрутизация: ENUM
Для каждого выданного номера в зоне e164.armor.tel есть запись NAPTR. Имя — цифры номера в обратном порядке через точку. Зона подписана DNSSEC; проверяйте подписи — иначе подмена записи означает перехват номера.
- Запрос для +999 730 905 13 05: 5.0.3.1.5.0.9.0.3.7.9.9.9.e164.armor.tel IN NAPTR
- Ответ: 10 10 "u" "E2U+sip" "!^.*$!sip:+9997309051305@sip.armor.tel!" .
- NXDOMAIN — номер не выдан или освобождён. Такие звонки не отправляйте: сервер ответит 404.
- Кэш. TTL записей — 5 минут. Номер после освобождения 90 дней не выдаётся повторно.
Сигнализация: SIP
- Адрес — из NAPTR; сервер и порт разрешаются по RFC 3263 (SRV _sips._tcp, _sip._tcp, _sip._udp).
- TLS рекомендуем: порт 5061, SNI обязателен, сертификат публичный (Let's Encrypt), клиентский сертификат не требуется.
- Без регистрации и пароля. Позвонить на +999 может любой сервер, нашедший номер в ENUM.
- From передаётся абоненту как есть и не проверяется. Указывайте номер звонящего в E.164 с «+».
- Лимиты: 10 INVITE в секунду с одного адреса и 30 одновременных звонков на номер. Сверх — 503 с Retry-After.
- Ретрансмиссии по RFC 3261; по TCP/TLS соединение держите открытым, keep-alive — CRLF.
Медиа: RTP
- Без перекодирования. Сервер проксирует RTP и не трогает SDP-кодеки: они договариваются с устройством абонента. Устройства поддерживают Opus, G.722, G.711 A/µ.
- SRTP и ZRTP проходят насквозь: a=zrtp-hash и пакеты ZRTP доходят до абонента. Если ваша сторона поддерживает ZRTP, разговор зашифруется между вами и абонентом.
- DTMF — RFC 4733 (telephone-event) в RTP.
- Пока нет: раннего медиа и позднего offer. На INVITE без SDP — 488.
Как идёт звонок
100 Trying, затем 180
Сервер будит спящие устройства абонента пушем и вызывает все сразу. До первого 180 может пройти несколько секунд.
200 OK от первого ответившего
Остальным устройствам — отбой. Медиа идёт через сервер Armor, адреса — в SDP ответа.
Ошибки
404 — номер не выдан. 480 — ни одно устройство не на связи. 486 — занято или отклонено. 503 — лимит.
Сообщения
SIP MESSAGE на тот же адрес sip:+999…@sip.armor.tel, тело text/plain или message/cpim. Сервер доставляет на все устройства абонента, офлайн-устройствам — при появлении на связи; ответ 202. Ответ абонента придёт на адрес из вашего From, он должен быть достижим из интернета.
Трафик от +999 к вам
Сервер Armor не делает исходящих звонков в чужие сети. Абонент +999 дозванивается до ваших номеров через учётную запись у вас: он добавляет вашу линию в приложение и звонит с вашего номера. Для вас это обычный SIP-абонент.
- Что нужно от вас: SIP-доступ (адрес, логин, пароль, TLS), переадресация на SIP-адрес и, если хотите, SMS по SIP MESSAGE.
- Чтобы подключение было в два касания, дайте абонентам QR-код с настройками в формате Linphone remote provisioning. Приложение его читает.
- Каталог операторов. Можем добавить вас в список операторов в приложении: абонент выбирает вас и входит в ваш кабинет через OAuth, настройки приложение забирает само. Нужен OAuth-вход и endpoint с настройками.
- Подтверждённый номер +999 в From при звонке к вам — пока нет. Если нужно, напишите.
Проверка
Тестовый номер +999 100 000 00 01 отвечает и произносит время: удобно проверить маршрут, транспорт и медиа. Вопросы и подключение к каталогу — ops@armor.tel.