Кратко
- RFC 3261 относит
180 Ringingк предварительным ответам: принимающий пользовательский агент пытается оповестить пользователя, а вызывающая сторона может начать локально воспроизводить гудки. - Код 180 не доказывает, что удалённое устройство издало звук, ранние медиа дошли, человек заметил вызов или приглашение было принято. PRACK из RFC 3262 подтверждает получение предварительного ответа, а не сам разговор.
- Полезная телеметрия сохраняет источник, ветвь, время и событие, сменившее состояние; оповещение, медиа, окончательный ответ и действие человека остаются отдельными фактами.
Гудок, который мог возникнуть рядом со звонящим
Телефонная привычка связывает обратный сигнал вызова с физическим звонком на другом конце. В SIP пользовательский агент клиента вправе включить локальный тон после получения 180. Звук в наушнике может оказаться интерфейсным представлением сигнального сообщения, а не аудио, прошедшим от адресата через сеть.
Формулировка RFC 3261 ограничена намеренно: получивший INVITE агент пытается оповестить пользователя. Экран может загореться без звука, операционная система — скрыть уведомление, а устройство — лежать в пустом помещении. При разветвлении один контакт сообщит 180, но будет отменён после ответа другого. Попытка наблюдаема протоколом; человеческое восприятие — нет.
Класс 1xx подчёркивает тот же смысл. Предварительный ответ сообщает о ходе обработки, не завершая её. Окончательный 2xx означает принятие приглашения, другие финальные ответы дают иной итог. Панель, записывающая первый 180 как «отвечено», стирает переход между продвижением и результатом.
У RFC 3261 восемь указанных авторов: Jonathan Rosenberg, Henning Schulzrinne, Gonzalo Camarillo, Alan Johnston, Jon Peterson, Robert Sparks, Mark Handley и Eve Schooler. Это коллективный стандарт, а не одиночное изобретение Schulzrinne. Его вклад лучше понимать через архитектуру, в которой сигнализация, медиа и пользовательский опыт связаны, но не подменяют друг друга.
Ранние медиа живут по другой временной шкале
RFC 3960, написанная Gonzalo Camarillo и Schulzrinne, разбирает ранние медиа и формирование сигналов вызова. До принятия сессии шлюз или удалённая сторона могут передавать аудио. В другом режиме вызывающий терминал сам воспроизводит тон на основании сигнализации. В обоих случаях человек что-то слышит, но происхождение свидетельства различно.
Локальный тон способен заглушить внутриполосное объявление о перегрузке или очереди. Ожидание только ранних медиа, наоборот, оставит тишину, если пакеты не придут. При форкинге одна ветвь может прислать 180, другая — медиа, а третья — в итоге принять вызов. Поэтому RFC 3960 описывает выбор политики и его цену, а не универсальное равенство между 180 и слышимым удалённым звонком.
Следует хранить по меньшей мере четыре часа. Первые отмечают приход сигнализации, вторые — появление пригодных медиа и их источник, третьи — локальное представление уведомления, четвёртые — финальный исход диалога. Для утверждения о внимании человека нужен пятый источник. В простой ситуации времена близки, но именно при сбое или споре различия становятся существенными.
Захват пакетов силён в своей области: он подтверждает, что определённый SIP-элемент получил сообщение в указанное время. Он не измеряет громкость чужого аппарата, политику уведомлений ОС или присутствие человека. Недостающий факт следует получать с поверхности, которая действительно им управляет.
PRACK подтверждает доставку предварительного сообщения
Некоторые предварительные ответы несут важные для согласования данные и не должны теряться. RFC 3262 авторства Jonathan Rosenberg и Schulzrinne вводит надёжные предварительные ответы: они получают последовательность, а клиент подтверждает упорядоченный приём методом PRACK.
Надёжнее становится передача сообщения, но не шире его значение. PRACK — не ACK для финального успешного ответа, не доказательство приёма аудио и не сетевой эквивалент поднятой трубки. RFC 3262 даже допускает отправку окончательного ответа до прихода PRACK.
Повторная передача, номер последовательности, сопоставление и подтверждение выглядят как признаки завершённого этапа. Однако надёжность отвечает на вопрос «получил ли партнёр это высказывание?», а финальность — «чем закончилась попытка?». Первый ответ может быть точным, пока второй ещё неизвестен.
После разветвления у каждого «звонит» есть владелец
Один INVITE может уйти нескольким контактам. Первая ветвь отвечает 180, вторая передаёт объявление, третья отказывает, четвёртая принимает. Единый признак «звонит» на уровне всего вызова скрывает источник события и то, сохранил ли он значение.
RFC 6228 добавила ответ 199, чтобы сообщить о завершении конкретного раннего диалога. Другие ранние диалоги могут продолжаться, а исходному INVITE всё равно требуется окончательный ответ. Получатель может удалить состояние и медиа выбывшей ветви, не затрагивая остальные.
RFC 6228 написал Christer Holmberg, а не Schulzrinne. Здесь это последующее свидетельство архитектурных последствий, а не дополнение к личному списку работ. Документ показывает, что у предварительного состояния есть происхождение и избирательный конец. Запись «был 180» без ветви и сменившего события неполна.
В собственных границах 180 полезен. Событие «оповещение началось» по каждой ветви помогает измерять ход маршрутизации, находить зависшие назначения и считать время до финала. Источник, время и последующее состояние сохраняют его честность. Превращать его в свидетельство человеческого ответа незачем.
Границы нужны и биографическому рассказу
Текущий профиль Columbia называет Schulzrinne Julian Clarence Levi Professor of Mathematical Methods and Computer Science и профессором электротехники. Нынешний снимок IETF Datatracker перечисляет у него 90 RFC. Это масштабный вклад, но он не делает коллективные документы индивидуальной собственностью.
Точная атрибуция такова: RFC 3261 создана восемью авторами; RFC 3262 — Rosenberg и Schulzrinne; RFC 3960 — Informational RFC Camarillo и Schulzrinne, а не Internet Standard; RFC 6228 принадлежит Holmberg. Сохранить автора, статус и область действия — та же дисциплина, что сохранить источник, ветвь и класс ответа.
Источники
- Henning Schulzrinne — IETF Datatracker
- Каталог Columbia Engineering — Henning G. Schulzrinne
- Columbia Electrical Engineering — Prof. Henning Schulzrinne Makes All the Right Connections
- RFC 3261 — SIP: Session Initiation Protocol
- RFC 3262 — Reliability of Provisional Responses in SIP
- RFC 3960 — Early Media and Ringing Tone Generation in SIP
- RFC 6228 — SIP Response Code for Indication of Terminated Dialog
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
