Skip to content

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

@faunris

Description

@faunris

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

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions