sd » 07 апр 2011, 19:06
Вообщем, причина такого поведения найдена. В случае с CENSORED от них в пакете есть заголовки route, а в sipnet'е заголовки record-route. Record-route указывает на то, что все следующие пакеты должны идти через тот IP-адрес, который указан в record-route, а route - просто дает указания только о текущем пакете (если я правильно понял). Согласно стандарту ACK должен идти на тот IP адрес, который указан в заголовке Contact, или на тот, который указан в record-route (а про route не сказано ничего). В случае с CENSORED, record-route заголовков от них не приходит, а наш sip-прокси почему-то добавляет очередной route вместо правильного record-route, что приводит к тому, что оборудование шлет ответ на IP адрес из заголовка Contact (ваш телефон). В итоге сервера CENSORED'а не получают ACK и прерывают вызов через 11 секунд. тут возможно 2 решения проблемы: каким-то образом заставить наш sip-прокси добавлять именно record-route вместо route, либо попросить CENSORED поправить это у себя. На данный момент уговорить наш sip-прокси это вставлять в пакет record-route не удалось, но мы продолжаем над этим работать.
Фу... как-то сумбурно у меня вышло описание проблемы, но, надеюсь, что вы поймете суть проблемы.
Теперь о PortGo. Опять же, наша железяка не может правильно обработать SDP, который содержится в пакете OK от данного телефона. Наш софт из-за этого тоже ведет себя не так, как ожидается (баг, который мы поправим), то есть не вешает трубку с указанием причины, а просто ничего не делает. Запрос в support производителя уже отправлен. Жду ответа.