Есть провайдер который предоставляет sip телефонию. Авторизация у провайдера происходит по ip адресу. На каждый телефонный номер провайдер дает транк.
Уточню что в данном случае понимаю под транком: провайдер назначает подсеть ipv4 c длинной маски 30 бит (подсети из диапазона 10.0.0.0/8) и дает все это в разных VLAN'ах по одной оптике. В данной подсети находится интерфейс маршрутизатора провайдера и интерфейс нашего asterisk. Сам SIP сервер провайдера находится за маршрутизатором и имеет ОДИН ip адрес! Последний факт весьма прискорбен. Схема приведена на рисунке:
Соответственно, в зависимости от того, с какого адреса (нашего адреса, назначенного asterisk) и через какой vlan ходит sip трафик, провайдер относит его либо к одному телефону, либо к другому.
Как обеспечить работу в такой конфигурации?
Решение в лоб - поставить по одному asterisk на каждую подсеть, выданную провайдером. Но как-то не красиво получается.
Вот если бы удалось назначить разные source address в пакетах разных учеток из sip.conf, то проблему можно было бы решить простой политикой маршрутизации по адресу источника.
Еще в голову лезут варианты с двойным nat, но, думаю, решение не работоспособно из-за того, что sip не дружит с nat.