Здравствуйте, знатоки VOIP! SIP изучаю по документациям и проходил базовый курс по Asterisk у Александра Литницкого. Дотачиваю SIP-сервер PartySip_2.2.3 для своих целей. Дошла очередь до аутентификации одного прокси перед другим. Не смог найти ни в RFC3261, ни в интернете алгоритм прохождения аутентификации первым прокси по запросу от второго. На схеме показаны основные моменты.
На скриншотах дампы пакетов запроса аутентификации:
Запрос от serv2.ru к serv1.ru
Запрос от serv1.ru к Alice
Где можно почитать про запросы и заполнение пакетов аутентификаций. На основе каких полей должен строить запрос на аутентификацию второй сервер, чтобы первый серевер не перенаправлял запрос к Alice, а авторизовывался сам?
А как это должно выглядеть? Прокси сервер если и будет аутентифицироваться, то под каким-то своим аккаунтом, это будет уже что-то вроде UA2UA, как астериск. Даже если под тем же аккаунтом, то это все равно будет выглядеть словно абонент аутентифицируется, учетные данные те же, адреса и порты зависят от настроек NAT.
официально такая фишка запрещена в sip. ибо nonce должно генерироваться с учетом адреса и времени.
но на практике можно просто передавать ответы, смотреть на responce. если OK говорить самому OK. B2bua задействуется понятно.
Задан: 2013-07-23 12:29:49 +0400
Просмотрен: 133 раз
Обновлен: Jul 23 '13
Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании
Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией
GNU GPL.
Я думаю, что serv1.ru должен иметь в своих конфигах данные для аутентификации на serv2.ru. Но тогда по-хорошему, serv2.ru должен посылать запрос аутентификации ИМЕННО serv1.ru. Или здесь ошибка в том, что serv1.ru переадресовал запрос авторизации на Alice? Может serv1.ru сам должен был обработать этот запрос авторизации, и отправить на serv2.ru ответ с заполненным заголовком Proxy-Authorization?
wosk ( 2013-07-23 14:12:03 +0400 )редактироватьочевидно же, почитать можно лиоб sip rfc либо исходники например kamailio. то что вы думаете ничего не дает. просто "базового курса литиницкого" недостаточно для понимания сипа. они вообще для галочки. по rfc аутентификация работаеть ТОЛЬКО двумя методами - либо напрямую на сервер 2, либо на прокси сервер1 но с header/nonce для server2
meral ( 2013-07-23 15:31:00 +0400 )редактироватьчто конечно не исключает варианта который не соответвует rfc но работает в силу багов в сервере 2
meral ( 2013-07-23 15:32:11 +0400 )редактировать