Вход | Регистрация
Вы здесь: Главная / Форум / Главный форум по Asterisk / Конфигурация и настройка / выбор транка

выбор транка

изменение последовательность выбора транков
Сообщений: 147

Re: выбор транка

Во-первых, если пользуетесь макросами, то и включайте текст макросов. Во-вторых, что за кучка левых экстеншенов посередине ? В третьих, COUNT и GMAX по сути дублируют функционал. Если звонок попадет в экстеншен _X. то звонка у вас не произойдет. У вас тупо будет крутить цикл, в конце которого получите отбой.
2010-09-22 22:17

Откуда: Minsk
Сообщений: 55

Re: выбор транка

Главный макрос здесь "dialout-trunk". Сам он довольно длинный, поэтому пригалагаю его файлом:
http://rghost.ru/2706921

Левые экстеншены. Попытаюсь объяснить. Как я понял у меня есть пачка диалпланов которые описаны в extensions_additional.conf, там описано, согласно какому дилаплану куда кидать звонок.
Я предположил, что можно просто доработать имеющуюся структуру и сделать что бы Астериск не перебирал по очереди с 1-го по 12-й транк, как он делает сейчас, а выбирал первый транк наобум, а дальше отталкивался от него. Вот и получается, что эти левые экстеншены, это часть моего диалплана. Видимо я не уловил какую то важную деталь так думая ^^°

COUNT и GMAX по сути дублируют функционал

согласен, тут я тоже промахнулся. Правда бывает так, что количество линий не связано с номером последнего транка. К примеру если первые два транка служат для иных целей, нежели последующие 10.

Получается, что мне нужно оставить только код с _X. и убрать код с диалпланами?

Спасибо
2010-09-23 11:03

Сообщений: 147

Re: выбор транка

Вы сами понимаете как работает ваш макрос ? Вы его сами смотрели ? Если Оба ответа на первые 2 вопроса утвердительны, то как минимум не хватает 1 одного файла macro-dialout-trunk-custom.
Макрос настолько мутный, что мне не верится что все так сложно ). Кто то пытался наворотить суперуниверсальный макрос, а в итоге получился кариозный монстр, которого проще застрелить чем вылечить. Ну и при таком обьеме - ни одного комментария ..
З.Ы. Структуры вида $["${OUTMAXCHANS_${DIAL_TRUNK}}foo" = "foo"]?nomax просто убили. И похоже писали макрос несколько человек, потому как встречается более человеческое $["${PREFIX_TRUNK_${DIAL_TRUNK}}" != ""], а так же разнообразное именование переменных в верхнем и нижнем регистре.
2010-09-23 15:14

Откуда: Minsk
Сообщений: 55

Re: выбор транка

:D
Нет, писал не я, он идет в комплекте с триксбоксом.
Мне важно было, что бы он при занятости линии переходил к следующему действию, что он успешно и исполняет. На разбор остального кода меня не хватило)).

Вот рабочий скрипт, только что проверил. Единственное, что пока под сильную нагрузку, с большим количеством линий его не кидал:
exten => _X.,1,Set(COUNT=2)
exten => _X.,n,Set(RET=${COUNT})
exten => _X.,n,Set(GMIN=12) ;номер первого транка
exten => _X.,n,Set(GMAX=13) ;номер последнего транка
exten => _X.,n(rand),Set(GATE=${RAND(${GMIN},${GMAX})})
exten => _X.,n(noop),Noop(call trying)
exten => _X.,n,GotoIf($[${RET} > 0]?:busy)
exten => _X.,n,Set(RET=$[${RET} - 1])
exten => _X.,n,Macro(user-callerid,SKIPTTL,)
exten => _X.,n,Set(_NODEST=)
exten => _X.,n,Macro(record-enable,${AMPUSER},OUT,)
exten => _X.,n,Macro(dialout-trunk,${GATE},${EXTEN},,)
exten => _X.,n(round),GotoIf($[${GATE} < ${GMAX}]?add)
exten => _X.,n,Set(GATE=${GMIN})
exten => _X.,n,Goto(noop)
exten => _X.,n(add),Set(GATE=$[${GATE} + 1])
exten => _X.,n,Goto(noop)
exten => _X.,n(busy),Macro(outisbusy,)


Однако возник вопрос. Я вычистил у себя в extensions_additional.conf диалплан и вставил импорт вышеописанного скрипта.
При таком раскладе работает. Однако интересно, как он теперь будет префикс выравнивать? о_О
Как это можно красиво сделать, что бы не дублировать код?

P.S. нашел, на мой взгляд, красивое решение (конечно громко сказано ^^°), которое можно нормально совместить с Триксбоксом.
У меня бОльшая часть транков звонят через один диалплан, а пара штук звонят только на пару номеров.
Я сделал в веб морде outbound route для этих двух транков, которые почти не используются.
В файле extensions_override_freepbx.conf видоизменил раздел outbound-allroutes из файла extensions_additional.conf включив туда скрипт.
Теперь, если звонить на те редкие номера, то ходит по нужным транкам, все остальное идет через скрипт.
Пару минусов:
1. не делал рандомизацию для тех редких номеров, но оно особо то и не нужно там
2. в веб морде Триксбокс ругается, что линии не используются ни в одном маршруте, ну мы вообщем то знаем, что это не правда.

И остался открытым вопрос, как можно безболезненно менять "порядковый номер" транка?
Я пытался менять его extensions_additional, но что то не особо оно реагировало на изменения :/

Спасибо,
с уважением.
2010-09-23 15:54

Сообщений: 1573

Re: выбор транка

kronos:

1. можно ли "красиво" добавить это правило, что бы к примеру при отключении одного из транков через веб, он бы выпадал из скрипта автоматом.
Вы не уловили самого главного - такая система и служит для того, что бы прозрачно можно было останавливать (или он "падает") какой либо узел (транк).

kronos:

И остался открытым вопрос, как можно безболезненно менять "порядковый номер" транка?

Это тот же вопрос, только в профиль?

А если все получилось - олично! ... ;)
2010-09-24 02:54

Откуда: Minsk
Сообщений: 55

Re: выбор транка

Это тот же вопрос, только в профиль?
по сути да ^^°

выходит, что если один/несколько транков в заданном диапазоне будут не доступны (отключены или так упали), то Астериск просто пойдет дальше.
я просто вел к тому, что бы при необходимости, можно было поменять "порядковый номер" транка, что бы вывести его из диапазона, что бы Астериск туда даже не стучался. Пару мс при вызове это может скинуть :D

Как вариант, скопипастить раздел globals из extensions_additional.conf в extensions_override_freepbx.conf и там задать все что душа пожелает. Но я пока его не тестировал. Нужно будет опробовать.

А если все получилось - олично! ... ;)


cron333 ,iye, спасибо вам огромное за помощь! Мир не без добрых людей :]
2010-09-24 09:57

Добавить страницу в закладки:  Delicious Google Slashdot Yahoo Yandex.ru Reddit Digg Technorati Bobrdobr.ru Newsland.ru Smi2.ru Rumarkz.ru Vaau.ru Memori.ru Rucity.com Moemesto.ru News2.ru Mister-Wong.ru Myscoop.ru 100zakladok.ru