-
Notifications
You must be signed in to change notification settings - Fork 51
Description
Поймал очень противную багу в последней версии ята 5.5.0
Суть в том, что после второго инвайта счетчик CSeq не сохраняется в нужном месте внутри движка ята. Как итог следующая команда после этого инвайта будет иметь ТАКОЙ же номер CSeq как и второй инвайт. Что является ошибкой и один провайдер у меня из-за этого глючил. Все последующие команды уже имеют корректный инкрементированный номер.
Исходящий вызов:
Запрос INVITE
CSeq: 11 INVITE
Ответ 401 Unauthorized
CSeq: 11 INVITE
Запрос INVITE
CSeq: 12 INVITE
Ответ 100 Trying
CSeq: 12 INVITE
Запрос INFO
----> Ошибка, здесь должно быть 13!!<-----
CSeq: 12 INVITE
Запрос INFO
CSeq: 13 INVITE
Запрос INFO
CSeq: 14 INVITE
Или еще неккоретный пример:
Запрос INVITE
CSeq: 100 INVITE
Ответ 401 Unauthorized
CSeq: 100 INVITE
Запрос INVITE
CSeq: 101 INVITE
Ответ 100 Trying
CSeq: 101 INVITE
Запрос BYE
----> Ошибка, здесь должно быть 102!!<-----
CSeq: 101 INVITE
А вот как должно быть:
Запрос INVITE
CSeq: 122 INVITE
Ответ 401 Unauthorized
CSeq: 122 INVITE
Запрос INVITE
CSeq: 123 INVITE
Ответ 100 Trying
CSeq: 123 INVITE
Запрос BYE
CSeq: 124 INVITE
Вот что говорит rfc 3261
https://tools.ietf.org/html/rfc3261
"
CSeq or Command Sequence contains an integer and a method name. The
CSeq number is incremented for each new request within a dialog and
is a traditional sequence number.
"
Честно говоря мне не хватило скила корректно поправить ошибку, местный код слишком запутанный. Я почти уверен, что вы сталкивались с этой проблемой. Может быть уже есть патч?