#390 closed задача (fixed)
Добавить опцию Маскарадинг Invite для Sip-пользователей
Reported by: | san | Owned by: | alx |
---|---|---|---|
Priority: | высокий | Milestone: | 1 очередь |
Component: | any | Keywords: | |
Cc: |
Description
Для обеспечения стыковки плат VE-01, VE-02 с некоторыми сторонними АТС в режиме так называемого "SIP транка" нужно кроме опции Маскарадинг Invite(#384), которая относится к вызовам от окончаний платы добавить аналогичную опцию для вызовов от Sip-пользователей зарегистрированных на плате.
Реализовать это предлагаю единообразно с Маскарадингом для окончаний, т.е при включенной опции в поле Contact исходящего запроса INVITE от Sip-пользователя зарегистрированного на плате должны указываться внешние адрес и порт платы.
Change History (7)
comment:1 by , 3 years ago
comment:2 by , 3 years ago
Replying to san:
при включенной опции в поле Contact исходящего запроса INVITE от Sip-пользователя должны указываться внешние адрес и порт платы.
Какой именно адрес? Внешних адресов может быть несколько...
В тикете #384 говорится, что "проблемная" АТС требует совпадения имени хоста в полях From
и Contact
. Поэтому предлагаю заменять хост и порт в поле Copntact
соответствующими значениями из поля From
.
comment:3 by , 3 years ago
Предлагаю следующее условие маскарадинга:
- хост/порт в URI поля From соответствуют домену/порту прокси-сервера платы;
- и хост/порт URI поля Contact не равны 127.0.0.1:6060 (то есть это не контакт шлюза).
Согласен
В тикете #384 говорится, что "проблемная" АТС требует совпадения имени хоста в полях From и Contact. Поэтому предлагаю заменять хост и порт в поле Copntact соответствующими значениями из поля From.
Учитывая предлагаемое тобой условие, с этим предложением тоже согласен
comment:4 by , 3 years ago
В свете написанного выше о том, что реализация не до конца единообразна, возможно, имеет смысл сделать более трех вариантов маскарадинга:
- ничего не маскарадим:
- маскарадим все INVITE от шлюза;
- маскарадим INVITE от шлюза только если наш домен в поле
From
; - маскарадим все кроме INVITE от шлюза если наш домен в поле
From
; - маскарадим вообще все если наш домен в поле
From
(то есть комбинация п. 3 и 4); - комбинация п. 2 и 4;
- что-то еще?
Пункт 2 (как сделано сейчас) мы вынуждены оставить для совместимости, хотя более правильно было бы использовать п. 3. Не знаю, нужна ли, в таком случае, комбинация п. 2 и п. 4...
follow-up: 7 comment:5 by , 3 years ago
Отсутствие ответов расцениваю как ответ "На твое усмотрение". :)
Я подумал и решил, что делать много разных вариантов - это плохо, так как пользователям будет трудно во всей этой лабуде разобраться. Излишняя сложность не стоит потенциальной пользы от этой функции. Поэтому я решил сделать только два конфигурационных флага: один для маскарадинга INVITE от шлюза, другой - для маскарадинга INVITE от всех остальных "наших" UA. Под "нашими" UA понимаются такие UA, в поле From
которых указан наш домен (домен, известный прокси-серверу как свой).
Для простоты понимания и реализации маскарадинг будет выполняться в одном месте (в прокси-сервере) и единообразно - как п. 3 и п. 4 предыдущего комментария. Пункт 2 я решил для совместимости не оставлять, так как, как пояснялось в #384, маскарадинг используется для незарегистрированных на станции канальных окончаний, и в этом случае принципиальной разницы с п. 3 нет.
comment:7 by , 3 years ago
Replying to alx:
Отсутствие ответов расцениваю как ответ "На твое усмотрение". :)
Ой, я хотел устно обсудить, но разговор ушёл не туда :) но выбранный вариант меня устраивает.
Replying to san:
Здесь я вижу некоторое противоречие, так как описанное предложение не аналогично реализации маскарадинга для канальных окончаний - канальные окончания не регистрируются на плате VE-01.
Поэтому для единообразия реализации предлагаю в данном случае также не учитывать регистрацию UA на плате. Предлагаю следующее условие маскарадинга:
From
соответствуют домену/порту прокси-сервера платы;Contact
не равны 127.0.0.1:6060 (то есть это не контакт шлюза).Дополнительно отмечю, что и это не совсем единообразно, так как маскарадинг контакта канальных окончаний шлюза не учитывает домен/порт поля
From
, то есть не зависит от того, зарегистрировано канальное окончание на каком-то сервере или нет...