Кратко

  • RFC 3939 определил Caller-ID и Caller-Name для сохранения того, что телефонная сеть показала получателю голосового сообщения, а не для аутентификации говорившего.
  • Международный номер мог быть обрезан до правдоподобного чужого номера, а внутренний добавочный — уйти за пределы компании и раскрыть её частный план.

Телефонные данные отдельно от From

У автора сообщения автоответчика могло не быть известного адреса RFC 2822. RFC 3801 допускал non-mail-user, когда ответ по почте невозможен. Но помещение телефона в From всё равно смешивало почтового отправителя с наблюдением телефонной сети.

Опубликованный в декабре 2004 года RFC 3939 выделил два поля. Caller-ID сохранял номер, переданный телефонией, Caller-Name — отображённое имя. Они сообщали происхождение данных, но не подтверждали владельца линии, личность, разрешение на вызов или успех будущего звонка.

По умолчанию смысл неизвестен

Поле номера содержало только цифры. Для внутреннего звонка хватало добавочного, для международного требовалась полная последовательность E.164 без +, до 15 цифр. Необязательный NumberingPlan принимал unknown, local или e164; при отсутствии параметра действовало unknown.

local имел смысл лишь в домене системы голосовой почты, сохранившей сообщение. Поэтому RFC 3939 не определял набираемый телефонный адрес. RFC 2806 требовал контекст для локального номера в телефонном URL, а RFC 3191 резервировал + для глобального GSTN-адреса в почте. Новый заголовок был снимком представления, а не командой маршрутизации.

Ошибка могла выглядеть пригодной к действию

Некоторые системы обрезали международные номера до десяти цифр. В примере RFC ирландский номер после потери начала становился похожим на североамериканский. Обратный звонок мог не завершиться ошибкой — он мог соединить с посторонним человеком. Синтаксическая проверка длины не замечала смену смысла.

При пересылке внутренний добавочный терял применимость вне компании, одновременно раскрывая часть её частного плана. Доставка прошла без потерь, но интерпретирующий домен остался позади.

Имя также было лишь отображаемыми данными. Телефонные сети использовали разные наборы символов; базой служил ASCII, а RFC 2047 позволял кодировать родное написание. Несовместимый получатель мог показать неверное имя, а оператор — сократить его до 15 знаков.

Для скрытых номеров сохранялось только то, что увидел бы вызываемый, например Private Name, а не закрытые сведения между операторами. Но в письме метаданные становились долговечными и пересылаемыми. Если клиент не показывал заголовок, пользователь мог не знать о номере.

Даже Date мог происходить либо от телефонной сети, либо от локальных часов хранилища. Без записи происхождения время не доказывало точный момент вызова.

RFC 3939 важен тем, что не выдал перенос данных за перенос доверия. Он сохранил наблюдение и одновременно оставил границы, за которыми требовались отдельные доказательства контекста, приватности, личности и результата.