Если речь о транках, то тебе нужно:
1) создать собственно именные транки между Астерисками, суть трубы, по которым звонишь. На этом этапе я очень рекомендую не ставить никакого фильтра в диал патерне, лучше фильтр ставить на маршруте, который использует этот транк. Например, на Астерисе X транки AsterY и AsterZ.
trunk name - AsterY
type=peer
host=dynamic
username=AsterY
secret=yyy
2) Определиться с диал планом внутренних номеров на каждом из них. На этом этапе я очень рекомендую использовать неодинаковые внутренние номера на каждом, например, на Астерисе X внутренние номера 1ХХ, на Астерисе Y - 2ХХ, на Астерисе Z - 3ХХ.
3) Тогда в исходящих маршрутах на Астерисе X пишем
маршрут toY, Dial patern 2XX, use trunk IAX2/AsterY
маршрут toZ, Dial patern 3XX, use trunk IAX2/AsterZ
При таком раскладе все номера сохраняются, и видны правильным образом в репортах CDR.
| Ded писал(а): |
| Не нужно использовать номер как регистрационный ИД. Если речь о транках, то тебе нужно: 1) создать собственно именные транки между Астерисками, суть трубы, по которым звонишь. На этом этапе я очень рекомендую не ставить никакого фильтра в диал патерне, лучше фильтр ставить на маршруте, который использует этот транк. Например, на Астерисе X транки AsterY и AsterZ. |
Я так полагаю что имеется в виду работа именно на уровне транков. С заполнением полей инбаунд и аутбаунд, с указанием в инбаунд context=from-internal? Никаких экстенов в данном случае заводить не надо...
| Ded писал(а): |
| 2) Определиться с диал планом внутренних номеров на каждом из них. На этом этапе я очень рекомендую использовать неодинаковые внутренние номера на каждом, например, на Астерисе X внутренние номера 1ХХ, на Астерисе Y - 2ХХ, на Астерисе Z - 3ХХ. 3) Тогда в исходящих маршрутах на Астерисе X пишем маршрут toY, Dial patern 2XX, use trunk IAX2/AsterY маршрут toZ, Dial patern 3XX, use trunk IAX2/AsterZ При таком раскладе все номера сохраняются, и видны правильным образом в репортах CDR. |
Попробовал. Вроде и правда. Во всяком случае в статистике полезли именно номера звонящих. Сенкс.
Разобраться тебе поможет простой пинг, запущеный с одного * на другой *. На другом смотри tcpdump host VPN_IP_ADDR_OF_1ST_ASTERISK
1) Посмотри, действительно ли приходит с внутреннего адреса на внутренний?
2) Что прописано в iax.conf bindaddr ?
| Ded писал(а): |
| Это транспортный уровень. Разобраться тебе поможет простой пинг, запущеный с одного * на другой *. На другом смотри tcpdump host VPN_IP_ADDR_OF_1ST_ASTERISK 1) Посмотри, действительно ли приходит с внутреннего адреса на внутренний? 2) Что прописано в iax.conf bindaddr ? |
В биндадр прописаны нули. Порт иакса соксстатом честно показывает на звезду. На обоих. Ну пинги, само сбой, идут из обеих локалок, судя по дебагу иакса звонок приходит с ип впн интерфейса удаленного астера, далее идут ретри и отвал по нероуте. Я могу звонить с впн клиента на впн сервер, наоборот никак. В астере же нельзя из 5-ти интерфейсов выбрать только 2, к сожалению... Вот он и хватает все впнклиентские.
| Цитата: |
| Я могу звонить с впн клиента на впн сервер, наоборот никак |
Ни с одного из них нельзя звониnь, как ты понимаешь, никуда.
И что ты подразумевал в этой фразе понятно только тебе. Не пытайся только разъяснять и детализировать.
Схем слишком много, в большинстве случаев мы разделяем аппаратно туннелирование и телефонию, а у тебя похоже шампунь и кондиционер в одном флаконе. Если бы *** стояли во внутренних сетях, только с одним интерфейсом, а функции НАТа, ИП рутинга и тунеллирования выполняли бы другие железки - не было бы таких эффектов, как ты описал. Зачем наворачивать 5 ИП адресов на Астер?
| Ded писал(а): |
| Если бы *** стояли во внутренних сетях, только с одним интерфейсом, а функции НАТа, ИП рутинга и тунеллирования выполняли бы другие железки - не было бы таких эффектов, как ты описал. Зачем наворачивать 5 ИП адресов на Астер? |
Все сервера мои и делаю все я от сетей до телефонии... Много туннелей и впн интерфейсов надо для функционирования сети как таковой. Помимо астерофункций у серваков еще куча, среди них - впн объединение кучи сетей. Их 6 штук всего... У всех хоть сколько-нибудь уважающих себя софтов я могу выбрать интерфейсы на которых они висят. У астера у единственого нет такого. Посему в момент когда он запускается в его распоряжении 5 сетевых интерфейсов и 1 туннель, который он, к превеликой моей радости, просечь не может. И ничего сделать я не могу. Мне нужен внешний интерфейс чтобы регились снаружи и нужен 1 внутренний реальный чтобы взаимодействовать со шлюзами и юзерами внутри. Но исключительно благодаря вышеописанному свойству астера выделить их я не могу. Вот потому и висит он на все что увидит. Вешать железо не могу, условия такие. Вешать еще сервера не могу по той же причине. Получается возвращаться к схеме транк-экстен?
| anest писал(а): |
| подними интерфейс типа eth0:5, назначь ему IP и скажи астерсику слушать только его (впиши его в кофиге). и РОУТИНГОМ рули в своей сетке как тебе нужно. |
Ну по тоакой схеме можно оставить только внешний интерфейс и все, даже локальщики, его смогут видеть. Но тогда начисто теряется шифрование потока, идущего через впн. А шифровать голос у нас пока никто не желает родными средствами.
| Цитата: |
| У всех хоть сколько-нибудь уважающих себя софтов я могу выбрать интерфейсы на которых они висят. У астера у единственого нет такого |
Есть. В iax.conf дефолтное значение bindaddr=0.0.0.0 означает - слушать на всех интерфейсах. Но оригинироваться ему - с любого из доступных. Ты можешь прописать там bindaddr=10.1.1.1 и использовать нативный НАТ на этом же сервере.
Внешние клиенты могут на него подключаться по SIP, на его внешний интерфейс. А внутренние будут ходить по туннелям 10.0.0.0.
| Ded писал(а): | ||
| Цитата: |
| У всех хоть сколько-нибудь уважающих себя софтов я могу выбрать интерфейсы на которых они висят. У астера у единственого нет такого |
Есть. В iax.conf дефолтное значение bindaddr=0.0.0.0 означает - слушать на всех интерфейсах. Но оригинироваться ему - с любого из доступных. Ты можешь прописать там bindaddr=10.1.1.1 и использовать нативный НАТ на этом же сервере.
Внешние клиенты могут на него подключаться по SIP, на его внешний интерфейс. А внутренние будут ходить по туннелям 10.0.0.0.
Что-то в этом роде я уже сделал. Только по непознанной причине один астер может звонить другому после перезагрузки сервера, а другой нет. Причем звонить он начинает, достаточно в веб интерфейсе трикса просто втупую сохранить неизменявшиеся настройки и нажать их apply... Фигня какая-то...
Если
| Цитата: |
| в веб интерфейсе трикса просто втупую сохранить неизменявшиеся настройки и нажать их apply. |
Что-то у тебя отсутствует в стартовых файлах конфигурации, а присутствует только в базе.
Проверять iax2 show peers, iax2 show registry.
Конечно, лучше использовать динамическую регистрацию, тогда четко видно с какого ИП идет регистрация.
| Ded писал(а): | ||
| Ну ты же разберёшься? Если |
| Цитата: |
| в веб интерфейсе трикса просто втупую сохранить неизменявшиеся настройки и нажать их apply. |
Да вот странно все это, но файлы до и после не имеют никакой разницы... Сейчас поставил иакс на внешние интерфейсы у обоих и поставил нат=ес. Что-то тут не так, а что понять не могу. Без нат ес не заработало после перезагрузки. Попробую с ним теперь.... Когда не работает пишет unable to create channel of type iax2 (cause 3 - no route to destination). Как оно может быть не роут то дестинатион если я на нем удаленно сижу... И почему схватывает при перезапуске через веб интерфейс - хрен знает.
Added after 18 minutes:
Небольшая просьба... А можно мне полный пример реально работающего иакс транка? Может я что не так делаю... Уже начинаются какие-то танцы с бубном просто... Совсем запутался...
Asterisk X - main static server 10.11.12.13
Asterisk Y - dynamic server 10.9.8.7
IAX trunk on X:
| Код: |
| trunk name IAXasterY host=dynamic secret=mysecret type=peer username=yyyy context=from-internal |
USER context для входящих: xxxx
| Код: |
| type=user auth=plaintext context=from-internal secret=supersecret |
IAX trunk on Y:
| Код: |
| trunk name IAXasterX host=10.11.12.13 secret=supersecret type=peer username=xxxx register => IAXasterY:mysecret@10.11.12.13 |
Проверяем на Asterisk X:
CLI>show iax2 peers
Проверяем на Asterisk Y:
CLI>show iax2 registry
| Ded писал(а): |
| Если пляшешь с бубном, то начни с того, что удали существующие транки, и начни снова. Asterisk X - main static server 10.11.12.13 Asterisk Y - dynamic server 10.9.8.7 |
Ну так все и было на самом деле, убивать и заводить тоже пробовал. В результате вдруг заработало когда убрал хост динамик везде и с нат=ес. Правда последнее мне сильно сомнительно что нужно, но уже просто сил нет перегружать сервера когда все работает. Интерфейс для иакса залочен на внешний на обоих, коннектится туда же соотв. В общем работает пока, а там посмотрим... Надо стендик собирать, выяснять почему срывается на "виртуальных" интерфейсах. Спасиб. за помощь.