Тайм-аут транзакций сервера SIP (RFC 3261) - PullRequest
1 голос
/ 11 июля 2011

В соответствии с RFC 3261 тайм-аут для серверных транзакций в состояниях ПРОЦЕДУРА или ПРОБОВ не существует. Как я понимаю, это означает, что ТУ ДОЛЖЕН отправить ответ на транзакцию. Однако в случае сбоя TU у транзакции должен быть способ узнать об этом и завершиться.

Какое поведение является правильным в соответствии с RFC 3261 ?

  1. Должна ли транзакция сервера обнаруживать сбой TU?

  2. Должен ли я добавить свой тайм-аут? Предполагая, что клиентская транзакция на другой стороне в любом случае истечет по таймауту, будет безопасно завершить транзакцию сервера после некоторого тайм-аута> ожидаемого тайм-аута клиентской транзакции.

  3. Любое другое поведение?

1 Ответ

2 голосов
/ 11 июля 2011

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

SIP не говорит вам, что делать в случае локальный сбой, например падение уровня Transaction-User.

Ваш TU - это «мозг» всего стека SIP, поэтому, если он терпит неудачу, ваш SIP-стек выходит из строя в целом.Я не думаю, что для уровня транзакций имеет смысл пытаться продолжить функционирование.

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

...