Как городской телефон определяет номер? Запускаем Caller ID в домашних условиях

Если у вас дома есть городской телефон и он показывает, с какого номера вам звонят, то, скорее всего, это определение работает через Caller ID. Когда‑то давно эта технология подчистую заменила «традиционный» для нашей страны АОН, а там, где стационарные телефоны ещё остались, используется до сих пор.

Как же всё это работает, и можно ли запустить такое у себя? Сейчас и узнаем...
❯ О чём это я?
Вообще, идея для данного поста пришла совершенно случайно. Для совершенно других опытов (о которых, я надеюсь, я тоже ещё напишу, но пока что не буду нарушать интригу) мною был раздобыт роутер Cisco 1751 с двумя платами телефонии. Ознакомившись с документацией, я с интересом обнаружил, что девайс поддерживает Caller ID. И, раз уж я когда‑то писал, как запустить АОН, решил, что это судьба и надо рассказать ещё и про работу Caller ID.

Итак, где‑то в середине нулевых привычные нам телефоны с АОН начали потихоньку уходить в историю, заменяясь на импортные аппараты (в основном от Panasonic). Их определитель номера работал по совершенно другому принципу (на заре распространения этих девайсов он порой назывался Евро‑АОН).
Для пользователя самым главным отличием было то, что в современных телефонах для определения номера не требовалось поднятие аппаратом трубки и отправка запроса АОН, из‑за чего исключались неприятные ситуации, когда кто‑то позвонил, а деньги с него списались, даже если никто не ответил. Также в этой системе было куда сложнее узнать, что у вызываемого абонента определяется номер, поскольку характерный звук запроса АОН и отправки безынтервального пакета (нечто вроде «У‑лю‑лю‑лю‑лю») там отсутствовали.
❯ Как работает Caller ID
Ну а пока что разберёмся, как вообще работает эта технология.
Принцип её основан на том, что в интервале между звонками (обычно перед первым или вторым звонком) АТС передаёт данные о вызывающем абоненте. Способов это сделать всего два.
Самый простой — DTMF. Номер передаётся всё теми же двухчастотными посылками. В качестве начала и конца пакета используются (в зависимости от страны и АТС) коды A, B, C или D. Такой метод позволяет передавать только номер, а также чувствителен к помехам.
Другой вариант — FSK. Здесь данные передаются частотной модуляцией. Стандартов того, как и что передаётся, существует достаточно много (Bell 202, ITU‑T V.23, ETSI...). В самой распространённой реализации данные передаются со скоростью 1200 бод, единице соответствует частота 1300 Гц, а нулю — 2100 Гц. Более подробно о том, что именно передаётся, хорошо описано тут. Такой стандарт позволяет передавать не только номер, но и дату и время звонка, а также имя абонента. Пакет имеет свою контрольную сумму для защиты от помех на линии.
Из интересного, во времена перехода с АОНов на Caller ID, существовали адаптеры, преобразующие один стандарт определителя в другой. Существовали как «конвертеры ЕвроАОН», позволявшие подключить новенький Panasonic или Gigaset к линии с АОН старого образца, так и адаптеры Caller ID в АОН, чтобы не отправлять на списание привычную «Русь», современный стандарт не поддерживающую.
❯ Обзор оборудования
Посмотрим на то, что же мы будем пробовать запустить.

Первым делом понадобится телефон с Caller ID, в качестве которого был взят аппарат «Палиха П-750».

А это тот самый роутер Cisco 1751.
Две выпуклости снизу — это не пупыри от закрученных саморезов чрезмерной длины, а специальные выступы для возможности устойчивой установки девайсов друг на друга.
Сам 1751 — довольно типичный роутер Cisco из конца нулевых. Железка далеко не новая, но для многих применений ещё сгодится (в частности, их всё ещё используют как VoIP‑шлюзы), отчего продаётся иногда не слишком дёшево. Но сейчас нас больше всего интересуют не сетевые его функции, а наличие сразу трёх слотов расширения под различные сетевые и телефонные карты.
Из описания с сайта Cisco
Cisco 1700 Series modular access routers are ideal for enterprise small branch offices and small and medium-sized businesses that need secure access to business applications, network resources, and Internet services for all users. The Cisco 1700 Series delivers fast, reliable and secure Internet/network access through a wide-range of high-speed WAN access technologies for primary and backup WAN connections.
The Cisco 1700 Series modular design provides the flexibility to meet the most demanding and evolving business requirements such as high-speed broadband and leased-line access, comprehensive security, and multiservice data/voice integration.
Cisco 1700 Series routers also deliver a comprehensive suite of integrated security capabilities with wire speed IPSec VPN, stateful firewall protection and intrusion detection. Cisco 1700 Series routers also provide a migration path to voice-over-IP (VoIP) and IP telephony services through a converged data and voice network in a single modular platform that offers a complete suite of call processing and QoS services.

На передней панели индикаторы питания, работы, состояния трёх слотов и Ethernet.

Сзади первым делом бросаются в глаза три слота под карты расширения. Сюда подходят модули разного назначения: WIC (WAN Interface Card) для сетевых интерфейсов и VIC (Voice Interface Card) — для голосовых. Один из слотов предназначен исключительно для голосовых карт, остальные — для любых. Как видно, на моём аппарате два слота из трёх заняты.
Снизу индикаторы исправной работы модулей в слотах, а также линка, передачи данных и скорости 100 Мбит/с на Ethernet. Правее сам порт Ethernet, традиционный для всего оборудования Cisco консольный кабель и порт AUX для подключения внешнего модема. Зачем нужны светодиоды MOD OK и PVDM OK, выясним чуть позже.

Снизу заводская наклейка. Также видны два углубления, куда входят выступы на крышке.

Блок питания аж на три напряжения. Слева внизу на заводской наклейке распиновка.

На конце кабеля разъём Molex.
❯ FXO и FXS
Как видно, в девайс установлены два модуля: VIC-2FXO-M2 и VIC-2FXS.

Модуль FXO (Foreign Exchange Office) подключается к телефонной линии и позволяет принимать и совершать звонки. В сегодняшних опытах он пока не понадобится.
На плате видны два сигнальных трансформатора и цепи защиты электроники от разных могущих прийти из телефонной линии жизненных потрясений. Слева от них оптроны и твердотельные реле (что именно коммутируется, мне неведомо).

Также на плате ПЛМ от Lattice и PEB 2260 — кодек для двух независимых телефонных линий.

Обратная сторона.

Второй модуль — FXS (Foreign Exchange Subscriber), к ней можно подключать любое оборудование, втыкающееся в телефонную линию.
Слева виден трансформатор генератора звонка, под ним уже знакомый аудиокодек. Аналоговая часть каждого канала построена на чипе Agere L7558BP, специализированном контроллере телефонной линии.

Модули соединяются с роутером через вот такой разъём. Точно такой же соединитель используется в PCMCIA, однако электрически эти интерфейсы несовместимы, если воткнуть в слот для платы расширения карту PCMCIA, то, скорее всего, она сдохнет.

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

Под пластиковым корпусом скрывается металлический экран.

Внутри вот такая плата. По количеству деталей её вообще можно можно спутать с каким-то миниПК.

Тестовых контактов здесь бесчисленно много.

Собран аппарат на процессоре MPC860 (с архитектурой PowerPC).

Слева от двух чипов ОЗУ слот для вот такого модуля расширения — MOD1700-VPN, аппаратного ускорителя шифрования для VPN.
Светодиод MOD OK на задней панели отображает его наличие и работу.

Какой-то заказной чип (судя по всему, ПЛИС) и Ethernet-контроллер от Intel.

Те самые разъёмы для карт расширения.

Разъёмы для прошивки ПЛИС — ISPCPLD и FPGA DWNLD.

Плата индикации. Судя по всему, материнка унифицирована для всех роутеров 1700 серии, а этот модуль сделали съёмным, чтобы не распаивать неиспользуемые светодиоды.

С обратной стороны ничего интересного. Маркировка тоже не гуглится.

Интересны и разъёмы — в точности той же конструкции, что и для SIMM‑памяти.

Планка памяти SDRAM.

Здесь используются довольно специфические модули на 100 контактов. Точно такие же встречаются, в частности, в больших лазерных принтерах и МФУ HP.

Красивая голограмма на плате.
❯ Что такое PVDM?
Попробуем запустить роутер. Девайс загружается, однако индикаторы слотов не горят, а в телефонной трубке почему-то ни звука.

Светодиоды портов на модулях при этом горят оранжевым.
Чтобы разобраться, почему так, вернёмся к его начинке.

Рядом с маленьким слотом для платы индикации можно увидеть ещё два — PVDM0 и PVDM1.
Предназначены они для установки PVDM (Packet Voice/Digital Signal Processor Module), специального модуля, предназначенного для обработки голосового трафика. Сделана такая конструкция по множеству причин: сам по себе PVDM позволяет не загружать процессор роутера цифровой обработкой сигналов, а исполнение в виде сменного модуля даёт возможность легко конфигурировать девайс в зависимости от нагрузки. В роутер, где нет ни одной телефонной карты, PVDM можно не ставить вообще, а там, где они есть, воткнуть вариант, подходящий по числу каналов.

Как нетрудно догадаться, состояние именно этого модуля отображает индикатор PVDM OK. В моём случае плата наличествовала, но при транспортировке коробку с железкой стукнули и контакт пропал. Пришлось дощёлкнуть плату в разъёме, и глюки пропали, а индикаторы занятых портов погасли. Без PVDM роутер тоже будет загружаться и работать, однако голосовые функции будут недоступны, даже если карты расширения воткнуты.
❯ Поднимаем Caller ID
Вообще, для использования чисто в качестве АТС такой роутер избыточен.
С намного меньшими затратами то же самое можно реализовать при помощи, например, простенького VoIP‑шлюза (очень распространённый у нас Linksys SPA2102 такую технологию поддерживает) и IP‑АТС.
Но, раз уж ко мне попал такой девайс, будем пробовать с ним.

Итак, подключаем роутер консольным кабелем, открываем COM-порт со скоростью 9600 бод. Ждём загрузки.
Грузится девайс, кстати, долго, минут пять-семь точно.
Теперь начинаем конфигурацию:
en
conf tПри входе в режим администратора роутер может запросить пароль. Если он неизвестен, его надо сбросить.

Теперь переходим к портам. Настраиваем каждый из них:
voice-port 1/0
station-id name [тут отображаемое имя абонента]
station-id number [тут номер телефона]
caller-id enable
exit1/0 в команде означает, что настраивается нулевой порт на модуле в слоте 1. Как нетрудно догадаться, второй порт будет называться 1/1.

Теперь очередь маршрутизации звонков:
dial-peer voice [тут любой произвольный номер] pots
destination-pattern [тут номер, который будет назначен на порт]
port 1/0
exitИменно тут задаётся, на какой порт поступит вызов при звонке на заданный на него номер.

На этом всё. Можно посмотреть отредактированный конфиг и убедиться, что всё записано верно. Командой write memory можно сохранить изменения, чтобы они не пропали после перезагрузки.
❯ Звоним
Теперь можно пробовать всё это в работе.

На телефоне заходим в настройки и включаем Caller ID.

Подключаем аппараты и пробуем позвонить.

Отлично, номер успешно определяется!

При снятии трубки загораются зелёные индикаторы на передней панели и рядом с соответствующим портом на модуле.
❯ Что же в итоге?
В отличие от ушедшего в историю ещё в нулевые безынтервального пакета, этот стандарт жив и сейчас, а используется повсеместно, где ещё остались аналоговые стационарные телефоны. И, как оказалось, воспроизвести определение номера дома немногим сложнее, чем на старом телефоне с АОН.
Также был весьма удивлён тем, что дисковый телефон работает с этим роутером. Попытки заставить его звонить с тем самым VoIP-шлюзом Linksys закончились сокрушительным провалом.
Такие дела.
Может быть интересно:

Новости, обзоры продуктов и конкурсы от команды Timeweb.Cloud — в нашем Telegram‑канале ↩
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.