| Предыдущий | Следующий |
| RTC_E_REGISTRATION_UNREGISTERED | RTC_E_STATUS_REDIRECT_MOVED_PERMANENTLY |
RTC_E_STATUS_REDIRECT_MULTIPLE_CHOICES
Что именно сообщает HRESULT
RTC_E_STATUS_REDIRECT_MULTIPLE_CHOICES (0X80EF012C) фиксирует конкретное состояние: server вернул несколько возможных Contact и оставил выбор клиенту. Записывайте этот HRESULT на первом API, callback или service boundary, где он появился; более поздняя UI-ошибка может быть только следствием.
Английский маркер исходной документации для точного поиска: the server returned several possible Contact destinations and did not select one for the client
. Его полезно сопоставлять с тем же объектом, timestamp и operation ID, а не с соседним событием.
Поля для корреляции
- SIP method/status, Call-ID/CSeq и responding hop.
- Request-URI/Contact/Route, transaction state и branch decision.
- session/profile generation, SDP или policy fields, которые относятся к этому status.
Семантические части имени результата — redirect, multiple, choices — указывают, какие поля должны различаться между failing и working trace. Они помогают выбрать evidence, но не заменяют фактический return value и состояние объекта.
Проверка гипотезы
Сопоставьте SIP status с конкретным method и responding hop; provisional, redirect, endpoint-local и global responses имеют разную retry-семантику.
Для server вернул несколько возможных Contact и оставил выбор клиенту контроль должен менять только один параметр или lifecycle-state. Если после изменения первым возвращается другой HRESULT, зафиксируйте его как новую причинную точку, а не объединяйте оба результата в один общий incident.
Контрольный сценарий из EN-описания: A directory-style SIP service returns office, mobile, and voicemail contacts; the client chooses one according to policy.
. Воспроизводите его на тестовой конфигурации и сохраняйте только необходимые идентификаторы; ключи, токены и полные персональные данные редактируйте согласно политике.
Официальное направление восстановления можно сверить по формулировке: apply application policy to the Contact set, prevent loops, and create a new request only for the chosen destination
. Перед применением убедитесь, что именно названная граница доказана собранными данными.
Как подтвердить исправление
Изменяйте request, target, route или session offer только в соответствии с семантикой конкретного response; terminal/global response не следует replay-ить без изменения причины.
- Докажите условие «server вернул несколько возможных Contact и оставил выбор клиенту» по сохранённым данным.
- Измените только один относящийся к причине input, policy или state.
- Повторите тот же API и сравните первый HRESULT, достигнутую фазу и побочные эффекты.
- Зафиксируйте 0X80EF012C и identity объекта до автоматического retry.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.