Кратко

  • При повторном использовании адреса и порта для аудио RTP и T.38 ожидаемый формат задаёт явная сигнализация. Получатель не должен превращать анализ пакетов в неявный демультиплексор и самостоятельно повышать наблюдение до разрешения.
  • Для выбора процедуры учитывается RemoteConnectionDescriptor текущей команды. Для фактической отправки действует последний полученный дескриптор. Эти временные срезы отвечают на разные вопросы и должны храниться отдельно.
  • Успех команды и t38(stop) имеют узкую область. Первый может не сохранить обязательность T.38 при опущенной опции; второй не доказывает передачу страницы или приём документа.

Стабильная пятикомпонентная запись скрывает смену смысла

Рекомендация сохранять тот же адрес и порт при переходе между аудио RTP и T.38 уменьшает число проблем с NAT, правилами межсетевых экранов и качеством обслуживания. Сетевой путь не приходится строить заново.

Но один и тот же поток в разные моменты означает разные типы среды. Его идентификатор не несёт достаточной информации о текущем ожидании. Источником истины становится последовательность сигнализации.

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

Иначе фактическое появление T.38 в сети начинает считаться основанием для T.38. Наблюдение подменяет полномочие: пакет как будто разрешает сам себя. RFC удерживает причинность в обратном порядке — сначала сигнальное решение, затем допустимые данные.

Выбор и отправка смотрят на разные снимки

Когда текущая команда выбирает fax-процедуру, старый RemoteConnectionDescriptor не даёт ей полномочий. В выборе участвует только дескриптор, который пришёл с этой командой.

Перед фактической отправкой T.38 применяется другое правило. Самый недавно полученный удалённый дескриптор должен содержать строку image/t38 и поддерживаемый транспорт. Процедура может начаться раньше, но пакеты обязаны ждать. Истечение срока ожидания приводит к остановке или сбою.

Первое правило отвечает: что может установить эта транзакция? Второе: что разрешено отправить в данный момент? Более позднее сообщение способно изменить разрешение на передачу после исторического выбора.

Журнал с одним полем «последний SDP» стирает обе причинные связи. Нужны дескриптор при каждой команде, последний дескриптор в каждой точке отправки, начало ожидания, обновление разрешения, первый пакет и тайм-аут.

Опущенная опция меняет силу зелёного ответа

Ключевой пример RFC начинается с соединения, успешно созданного в режиме T.38 Strict. Позже Call Agent отправляет ModifyConnection с RemoteConnectionDescriptor, где поддержки T.38 нет.

Если fax LocalConnectionOption опущена, команда выполняется успешно. Текущее значение сохраняется, но выполнение этой транзакции не обусловлено возможностью T.38. При обнаружении факса T.38 больше не запускается; шлюз выдаёт nopfax(start).

Если в той же команде явно повторить t38, изменение должно быть отклонено. Когда ни одна явно запрошенная процедура не выполнима, рекомендуется ошибка 532. Отказ честно сохраняет обязательное условие.

Сравнение только итоговых значений покажет «без изменений». Поэтому присутствие поля в текущей команде — самостоятельная часть доказательства. Наследуемое значение и явное требование могут выглядеть одинаково, но иметь разную исполнительную силу.

Возможность не является разрешением

SDP может объявлять текущие и потенциальные возможности. Наличие T.38 в перечне означает, что устройство, возможно, умеет его применять. Оно не означает, что Call Agent разрешил переход в этой команде.

Отсутствие объявления тоже не обязательно доказывает отсутствие поддержки. Устройство может понимать T.38, но не выражать способность ожидаемым способом.

Strict избегает попыток без пригодного доказательства, зато способен отклонить реально совместимый сеанс — ложное отрицание. Loose допускает пробел в декларации, но рискует переключиться на действительно несовместимую сторону — ложное подтверждение.

RFC не называет универсального победителя. Политика должна фиксировать, какую ошибку организация принимает для конкретной группы устройств и почему. Постоянный флаг «поддерживает T.38» этого решения не выражает.

Список опций содержит недостижимые ветви

t38 означает Strict под контролем Call Agent, t38-loose — более свободный режим, gw — делегирование выбора и деталей шлюзу, off — отсутствие специальной процедуры, кроме локальных корректировок.

Список через точку с запятой похож на обычный порядок предпочтения. Но t38-loose и off всегда могут быть поддержаны, поэтому все элементы после них недостижимы.

У gw иная особенность. Если выбор шлюза сводится к отсутствию специальной обработки, он может перейти к следующей процедуре, если это не off.

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

Делегирование откладывает плохую новость

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

Call Agent может узнать об этом только в момент начала факса, когда появляется nopfax(start). Успешная предыдущая команда была квитанцией о принятом делегировании, а не о выбранном методе.

Если делегированный метод действительно начинается, gwfax(start) становится квитанцией. До завершения Call Agent следует избегать конфликтующих команд.

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

Завершение процедуры не подтверждает документ

t38(start) сообщает об обнаружении факса и запуске процедуры под управлением Call Agent. t38(stop) означает, что она завершилась без ошибки, замеченной шлюзом. RFC прямо предупреждает: это не обязательно успешная передача факса.

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

t38(failure) описывает аварийное завершение. События gwfax имеют ту же границу для делегированного метода. У nopfax(start) нет симметричной остановки, потому что режим без специальной обработки не должен выводить конец факса из медиапотока.

Состояние процедуры и состояние документа требуют разных полей и источников. Автоматическое преобразование stop в delivered заставляет шлюз удостоверять факт, которого он не наблюдал.

Само обнаружение может быть ошибочным

Реализация должна как минимум распознавать преамбулу V.21. Обнаружение вызывающего тона CNG из T.30 необязательно. RFC приводит сообщения о модемах, которые генерировали CNG в не-факсимильных звонках, и рекомендует возможность отключить такой детектор.

Разрешение, выбор метода и завершение могут быть внутренне правильными, хотя начальное наблюдение было ложным. Корректность последующих шагов не доказывает существование fax-документа.

Переход T.38 может инициировать исходный или конечный шлюз, иногда оба одновременно. В доказательства входят детектор, сигнал, инициатор, время и разрешение одновременного запуска.

Уверенность обнаружения не должна смешиваться с полномочием метода. Сильный сигнал не выдаёт запрещённое разрешение, а явное разрешение не превращает ложный сигнал в истину.

Терпимость формата не доказывает политику

RFC советует принимать варианты регистра в UDPTL и атрибутах T.38, а также некоторые исторически ошибочные булевы представления. Это помогает старым реализациям взаимодействовать, но не доказывает согласованную политику.

Счётчики соединения включают fax-пакеты и октеты. Одновременно вычисление джиттера и средней задержки может приостанавливаться на время факса, в том числе T.38. Наблюдаемость способна исчезнуть именно в момент смены среды.

Повторное использование порта, терпимый разбор и частичные метрики — разумные эксплуатационные компромиссы. Ни один из них не заменяет историю сигнального разрешения.

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

Исторический статус ограничивает выводы

RFC 5347 опубликован в октябре 2008 года как Informational и не является Internet Standard. Поиск RFC Editor показывает шесть замечаний, удерживаемых для обновления документа. Производственная интерпретация должна учитывать этот статус.

Текст не доказывает поведение современного продукта или текущую архитектуру сети. Он не утверждает, что T.38 обязателен для каждого успешного факса.

Его долговременная ценность — в явной последовательности полномочий. Сигнал задаёт ожидание до пакета; текущая команда задаёт выбор; последнее состояние задаёт отправку; событие описывает процедуру; результат документа приходит из другой области.