Страница 1 из 3
Соединение двух серверов через третий
Добавлено: 19 апр 2012, 15:18
starley440
Подскажите пожалуйста, каким образом можно произвести соединение абонента одного сервера с абонентом второго сервера через третий.
На третьем сервере ведётся лог соединений между абонентами разных серверов.
абонент (номер 101)=> сервер => сервер => сервер => абонент (номер 101)
Ошибки нет, на всех серверах нумерация абонентов абсолютно одинаковая. (101,102,103)
Re: Соединение двух серверов через третий
Добавлено: 19 апр 2012, 15:44
SoHm
Настроить транк между серверами.
Пример
здесь и ещё полно мест, где можно посмотреть и почитать.
И да, поиском могли бы воспользоваться.
Re: Соединение двух серверов через третий
Добавлено: 19 апр 2012, 16:23
ded
starley440 писал(а):абонент (номер 101)=> сервер => сервер => сервер => абонент (номер 101)
Ошибки нет, на всех серверах нумерация абонентов абсолютно одинаковая. (101,102,103)
Ошибка в том, что на всех серверах нумерация абонентов абсолютно одинаковая.
Если бы была разная
1ХХ
2ХХ
3ХХ
с маршрутизацией таких вызовов проблем никаких не было бы. А так - кривиться через префиксы.
1ХХ - на первом, чтобы позвонить на второй - костыль
exten => _21ХХ,1,Dial(IAX2/server2/${EXTEN:1}
exten => _31ХХ,1,Dial(IAX2/server2/${EXTEN} ; для этого на втором сервере делаем
exten => _31ХХ,1,Dial(IAX2/server3/${EXTEN:1}
Re: Соединение двух серверов через третий
Добавлено: 19 апр 2012, 16:36
starley440
SoHm писал(а):Настроить транк между серверами.
Пример
здесь и ещё полно мест, где можно посмотреть и почитать.
И да, поиском могли бы воспользоваться.
Спасибо за совет.
Насчет поиска - если не очень хочется отвечать, то не надо. Самое простое, что можно сделать вместо дельного совета - брякнуть что-то типа "Пользуйтесь поиском". Пользовался. Прочитайте заново мой пост.
Re: Соединение двух серверов через третий
Добавлено: 19 апр 2012, 16:39
starley440
ded писал(а):starley440 писал(а):абонент (номер 101)=> сервер => сервер => сервер => абонент (номер 101)
Ошибки нет, на всех серверах нумерация абонентов абсолютно одинаковая. (101,102,103)
Ошибка в том, что на всех серверах нумерация абонентов абсолютно одинаковая.
Если бы была разная
1ХХ
2ХХ
3ХХ
с маршрутизацией таких вызовов проблем никаких не было бы. А так - кривиться через префиксы.
1ХХ - на первом, чтобы позвонить на второй - костыль
exten => _21ХХ,1,Dial(IAX2/server2/${EXTEN:1}
exten => _31ХХ,1,Dial(IAX2/server2/${EXTEN} ; для этого на втором сервере делаем
exten => _31ХХ,1,Dial(IAX2/server3/${EXTEN:1}
Спасибо за содействие. Если была разная нумерация, то я бы и вопросов не задавал.
Насчет префиксов я и сам понимаю, но очень не хочется лес городить.
Мало ли кто знает "хитрый ход"...
Re: Соединение двух серверов через третий
Добавлено: 19 апр 2012, 17:03
ded
Какой хитрый ход? Вы набрали на своём телефоне 101: куда Вы звоните? На 101 в своей конторе? На сервере №2? Или №3?
Объясните логику принятия маршрута при таком наборе 101, и я расскажу тогда про хитрых ход.
Re: Соединение двух серверов через третий
Добавлено: 19 апр 2012, 22:10
starley440
Я набираю трехзначный номер 101 и попадаю на телефон на своем сервере Asterisk.
Набираю пятизначный номер 922101 - попадаю на сервер 22 через сервер 01 на номер 101
Набираю пятизначный номер 933101 - попадаю на сервер 33 через сервер 01 на номер 101
Набор префикса 9 означает, что я "выхожу на сервер 01
Префикс 22(33 и т.п.) обозначает, что сервер 01 должен перенаправить вызов на сервер 22 (33 и т.п.)
Если бы мне надо было позвонить только на сервер 01, то набор был-бы 901101 и это вопросов не вызывает.
Вызывает вопрос , каким образом перенаправить звонок на другой сервер через 01. Причем сделать надо так, чтобы в логах сервера 01 осталась запись о том, что в такое-то время с телефона ... например 922101 был звонок на, например, 933101 такой-то длительности.
Сервера 22, 23,... 36 на прямую друг другу не могут звонить.
Такое вот хитро*опое задание. У меня в задании связать 37 серверов звездой и в центре звезды сервер 01.
Re: Соединение двух серверов через третий
Добавлено: 19 апр 2012, 22:23
ded
Где в этом вопрос то?
Выяснили, что без префикса - никак, что ещё? Проблема запилить все диалпланы для каждого сервера в отдельном его контексте? Думаю, что нет.
Re: Соединение двух серверов через третий
Добавлено: 19 апр 2012, 22:31
starley440
ded писал(а):Какой хитрый ход? Вы набрали на своём телефоне 101: куда Вы звоните? На 101 в своей конторе? На сервере №2? Или №3?
Объясните логику принятия маршрута при таком наборе 101, и я расскажу тогда про хитрых ход.
1. Без префикса никак.
2. Через префикс звоним ТОЛЬКО на сервер 01
3. Сервер 01 перенаправляет звонок на другой сервер (22,23,...36) в зависимости от номера, который набирается после девятки...
если в качестве сервера после 9 идёт префикс 01 - берет звонок на себя.
ВОТ ЭТО САМЫЙ ГЛАВНЫЙ И НЕПОНЯТНЫЙ ПОКА ДЛЯ МЕНЯ ВОПРОС. Именно в нем и нужна помощь. Остальное сам дочухаю, раз вопросы задавать не умею. Вас уж не буду беспокоить.
блин, я уже и сам скоро доеду до решения... может я не совсем по-русски спрашиваю?
4. регистрация только межсерверных звонков на сервере 01.
ded писал(а):Где в этом вопрос то?
Выяснили, что без префикса - никак, что ещё? Проблема запилить все диалпланы для каждого сервера в отдельном его контексте? Думаю, что нет.
Хотелось бы в одном диалплане...
Мне именно этот момент переадресации нужен. Остальное допру сам.
Re: Соединение двух серверов через третий
Добавлено: 19 апр 2012, 22:39
ded
extensions.conf on Main IAX server (01)
[from-iax-11]
exten => _01ZXX,1,Dial(SIP/${EXTEN:2},,tTr) ; предполагаем что никому не нужный префикс 9 мы отрезали ещё до попадания звонка на сервер 01
exten => _22ZXX,1,Dial(IAX2/server-22/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _33ZXX,1,Dial(IAX2/server-33/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _44ZXX,1,Dial(IAX2/server-44/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _55ZXX,1,Dial(IAX2/server-55/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _66ZXX,1,Dial(IAX2/server-66/${EXTEN:2}) ; тут нечего комментировать, верно?
[from-iax-22]
exten => _01ZXX,1,Dial(SIP/${EXTEN:2},,tTr) ; предполагаем что никому не нужный префикс 9 мы отрезали ещё до попадания звонка на сервер 01
exten => _22ZXX,1,Dial(IAX2/server-22/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _33ZXX,1,Dial(IAX2/server-33/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _44ZXX,1,Dial(IAX2/server-44/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _55ZXX,1,Dial(IAX2/server-55/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _66ZXX,1,Dial(IAX2/server-66/${EXTEN:2}) ; тут нечего комментировать, верно?
[from-iax-33]
exten => _01ZXX,1,Dial(SIP/${EXTEN:2},,tTr) ; предполагаем что никому не нужный префикс 9 мы отрезали ещё до попадания звонка на сервер 01
exten => _22ZXX,1,Dial(IAX2/server-22/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _33ZXX,1,Dial(IAX2/server-33/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _44ZXX,1,Dial(IAX2/server-44/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _55ZXX,1,Dial(IAX2/server-55/${EXTEN:2}) ; тут нечего комментировать, верно?
exten => _66ZXX,1,Dial(IAX2/server-66/${EXTEN:2}) ; тут нечего комментировать, верно?
Однообразно, глупо, монотонно, но работать то будет!