yate icon indicating copy to clipboard operation
yate copied to clipboard

Ошибка генерации SIP-поля CSeq

Open faunris opened this issue 9 years ago • 0 comments

Поймал очень противную багу в последней версии ята 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. "

Честно говоря мне не хватило скила корректно поправить ошибку, местный код слишком запутанный. Я почти уверен, что вы сталкивались с этой проблемой. Может быть уже есть патч?

faunris avatar Dec 21 '16 10:12 faunris