На главную | В раздел

sipX 4.4 4.6 GrandStream GXW-4024 Record-Route header problem

Проблема характерна для прошивки версии 1.0.5.10
Проблема заключается в том, что при посылке SIP re-INVITE шлюз GrandStream GXW-4024 искажает содержимое заголовка Record-Route и в заголовке Route возвращает не совсем то, что было получено в Record-Route.
В результате этого искажения сервер sipXecs отвергает запрос несмотря на удачную авторизацию через Digest. Т.к. в этом заголовке содержится информация для правильной внутренней обработки в т.ч. авторизации.
Ярко проявляется в сценарии приема факса в режиме T.38 на FXS порт шлюза GrandStream GXW-4024. При этом происходит смена кодеков путем отсылки re-INVITE с T.38 в SDP.
Вот заголовок, который приходит от сервера на шлюз в INVITE:
Record-Route: <sip:x.x.x.x:5060;lr;sipXecs-CallDest=INT;sipXecs-rs=%2Aauth%7E.%2Afrom%7EODZwanRLMzVYOGEzUQ%60%60%21c9cdaaea36e748353450a0a19ac140ae>
Вот заголовок, который шлюз посылает в reINVITE:
Route: <sip:x.x.x.x:5060;lr;sipXecs-CallDest=INT;sipXecs-rs=%252Aauth%257E.%252Afrom%257EODZwanRLMzVYOGEzUQ%2560%2560%2521c9cdaaea36e748353450a0a19ac140ae>
Шлюз заменяет последовательность %2A на %252A и %7E на %257E, т.е. фактически "экранируя" символ "%" (ACII код 0x25).
Пример сценария с ошибочными сообщениями:
sipXecs ---- INVITE SDP(PCMA) --> GXW-4024
sipXecs <- 100 Trying ----------- GXW-4024
sipXecs <- 180 Ringing ---------- GXW-4024
sipXecs <- 200 OK SDP(PCMA) ----- GXW-4024
sipXecs -------- ACK -----------> GXW-4024
sipXecs <---- INVITE SDP(T.38) -- GXW-4024 (message with malformed Route header)
sipXecs - 100 Trying -----------> GXW-4024
sipXecs - 407 Proxy Auth -------> GXW-4024
sipXecs <- INVITE SDP(T.38)Auth - GXW-4024 (message with malformed Route header)
sipXecs - 403 Require NoAccess -> GXW-4024
sipXecs <-------- ACK ----------- GXW-4024
Такая же проблема характерна для шлюзов Hanlog Unicorn 600X, т.к. устройства базируются на одной платформе.

© Константин С. Вишнивецкий, 2007-2017