Как реализовать разделение звонков по разным выходам в сеть?
Сообщений: 4
|
Как реализовать разделение звонков по разным выходам в сеть?
День добрый, Господа!
Ситуация:
Есть Debian Linux и Asterisk. Есть SIP провайдер, от которого есть городской номер, он же провайдер интернета. Есть два IP. 1й IP для приема и осуществления звонков (т.е. оператор даёт городской номер и дает возможность подключиться к нему через * и совершать и принимать звонки по городу из города, но он не дает возможности звонить другим способом, например в другую страну по IP телефонии. Т.е. хочешь звонить в Нью-Йорк - пожалуйста по тарифам международной связи). 2й IP для интернета. Т.е. по первому IP можно гонять только голос и траффик там не считается, а тарификация идет согласно тарифам оператора на телефонную связь, а второй IP - для доступа в Инет, там обычнаю помегабайтная тарификация.
Вопрос:
Как реализовать разделения трафика в * на Linux? Т.е. - если необходимо совершить звонок в город - * пускает звонок через 1й IP, если нужен звонок в мир - то через 2й IP?
|
Сообщений: 14
|
Re: Как реализовать разделение звонков по разным выходам в сеть?
Такое разделение делается с помощью фаервола/роутера.
В астериске настраиваете как обычно. А в фаерволе разделяете маршруты по интерфейсам (если надо).
PS Если физически интернет канал 1. То скорее всего вам раздлять ничего не надо. Надо просто обычным образом настроить астериск, а ваш провайдер сам отделит звонки на свой ВОИП шлюз, от прочих звонков.
|
Сообщений: 4
|
Re: Как реализовать разделение звонков по разным выходам в сеть?
>PS Если физически интернет канал 1...
Канал действительно один.
Насчёт настроек файервола и *... Но ведь файервол не смотрит содержимое SIP чтобы определять через какой IP отправлять пакеты! Да и провайдер не заинтересован в такой ситуации когда звонки идут мимо него естественно и у них такого билинга нет, который бы фильтровал трафик. Он специально для этого и даёт два IP - один на Инет, второй на телефон.
Задача не тривиальная. Т.е. конечно можно поставить две машины - на одной стоит астериск со своим IP, на другой стоит НАТ и второй * с другим IP и через неё доступ в инет. Таким образом, когда надо позвонить в город, * на первой машине шлёт вызов напрямую провайдеру через "телефонный" IP, а если куда-нить в мир звонок - то 1й * делает вызов через 2й * на 2й машине и оттуда вызов соответственно идет в сеть через 2й IP. Т.е. насколько я понимаю второй * будет работать как прокси для 1го.
Но задача стоит в том чтобы * стоял только на одной машине с 2мя IP и эта машина бы раздавала Инет в сетку.
|
Сообщений: 39
|
Re: Как реализовать разделение звонков по разным выходам в сеть?
pspДень добрый, Господа!
Вопрос:
Как реализовать разделения трафика в * на Linux? Т.е. - если необходимо совершить звонок в город - * пускает звонок через 1й IP, если нужен звонок в мир - то через 2й IP?
Разделить по префиксу. Город с 1-го IP, остальное со второго. При наличии правильных маршрутов все пойдет.
|
Откуда: Москва
Сообщений: 3421
|
Re: Как реализовать разделение звонков по разным выходам в сеть?
nickgРазделить по префиксу. Город с 1-го IP, остальное со второго. При наличии правильных маршрутов все пойдет.
Как вы себе это представляете? IMHO, не выйдет.
Вы можете с 1-го IP подключиться к другому SIP провайдеру для международной связи? Или трафик с 1-го IP на firewall закрыт в мир? Открыт только SIP сервер прова? Если так, звоните с 2-го IP, установив вторую копию asterisk на той же машине, какие проблемы?
|
Сообщений: 39
|
Re: Как реализовать разделение звонков по разным выходам в сеть?
Если я правильно понимаю, звонки в город черех шлюз провайдера нужно отправлять с одного IP, а звонки через другие шлюзы с другого? И в чем проблема?
ip route add ipaddress.of.isp.gw via a.b.c.d dev eth0 src a.a.a.a
ip route add default via a.b.c.d dev eth0 src b.b.b.b
И все. В Asterisk прописываем адреса шлюзов и различаем по префиксам, на какой шлюз звонить.
Или я не так понял?
|
Откуда: Санкт-Петербург
Сообщений: 203
|
Re: Как реализовать разделение звонков по разным выходам в сеть?
Так как в данной реализации asterisk нет привязки (bind) для исходящих вызовов к ip адресу для исходящих вызовов, то самое простое поставить второй asterisk на той же машине.
|
Сообщений: 39
|
Re: Как реализовать разделение звонков по разным выходам в сеть?
ys
Так как в данной реализации asterisk нет привязки (bind) для исходящих вызовов к ip адресу для исходящих вызовов, то самое простое поставить второй asterisk на той же машине.
Внимательно читаем команды выше. bind не нужен. Все сделает код маршрутизации в ядре. Не верите -- проверьте.
|
Откуда: Москва
Сообщений: 3421
|
Re: Как реализовать разделение звонков по разным выходам в сеть?
nickg
Разделить по префиксу. Город с 1-го IP, остальное со второго. При наличии правильных маршрутов все пойдет.
Имеешь в виду что-то типа:
exten => _810.,1,Dial(SIP/${EXTEN:3}@x.x.x.x)
exten => _XXXXXXX,1,Dial(SIP/${EXTEN}@y.y.y.y)
А в linux в advanced routing прописать политику, что пакеты на x.x.x.x отправлять с одного IP, а на y.y.y.y - с другого? Вариант :)
Я так не пробовал, psp, попробуй и расскажи плиз. Если не знаешь как политику создать, напиши на sasha(at)asterisk-support.ru и дай ссылку этого треда, он поможет.
|
Сообщений: 4
|
Re: Как реализовать разделение звонков по разным выходам в сеть?
litnimax wrote:
>Или трафик с 1-го IP на firewall закрыт в мир? Открыт только SIP сервер прова?
-------------
Так оно и есть!
nickg wrote:
>Если я правильно понимаю, звонки в город черех шлюз провайдера нужно отправлять с одного IP, а звонки через другие шлюзы с другого? И в чем проблема?
-------------
Да - так и есть. Спасибо за решение - будем пробовать!
litnimax wrote:
>Я так не пробовал, psp, попробуй и расскажи плиз. Если не знаешь как политику создать, напиши на sasha(at)asterisk-support.ru и дай ссылку этого треда, он поможет.
-------------
Буду пробовать. Спасибо за адрес - видимо придётся обращаться, не силён я в администрировании. Буду надеяться что получу помощь по указанному адресу. Результаты выложу сюда :-)
|
|