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

выбор транка

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

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

1. Вы надеетесь на рандом, думая что он будет рандомить абсолютно по статистике
2. Вы предлагаете обьеденить линии в группы и селектить по группам, при этом обьем кода настроек увеличивается пропорционально количеству групп
3. Ваш алгоритм сложнее, при этом не имеет видимых преимуществ (например универсальность)
Я все правильно перечислил ? )
сам перебирает линии в потоке
Ссылку на информацию, где написано что * перебирает линии в группе по порядку а не от 1 по возрастающей с переходом по занятости.
2010-09-17 13:47

Сообщений: 1573

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

iye, если хватает знаний, то прочитайте мой конфиг ... (при возможности размышлять виртуально, не сложно добавить столько транков - сколько нужно)

С чего вы взяли, что нужно перебирать линии в потоке (Е1)? Кроме вас - это никому и в голову не придет ... (не без исключений)
У вас похоже сервер с потоком - отсюда такое направление мышления.
Обычно таким образом нужно перебирать IP-транки, а не каналы в потоке. Каналы перебираются и так, заданием параметров команды Dial ...

По поводу алгоритма - он соответствует условию - "начинать не (обязательно) с первого и прогонять по кругу" ... Что в конечном итоге - распределяет (более равномерно) нагрузку. Алогоритм обкатан годами ...

iue:

Ссылку на информацию, где написано что * перебирает линии в группе по порядку а не от 1 по возрастающей с переходом по занятости.

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

Мне всегда хватало - g(n),G(n)

2010-09-17 14:10

Сообщений: 147

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

Да что же вы мне все пеняете недостатком знаний ? ) В каком посте я показал неинформированность в каком - либо плане ? )
С чего вы взяли, что нужно перебирать линии в потоке (Е1)?

Ответ:
исходящии линии по кругу

В заголовке треда транк, в теле стартового сообщения про линии. Из этого и исходил. В воипных каналах понятие линии разве что распространяется на количество одновременных подключений ... Приведенный мной код будет работать на всех DAHDI устройствах (не только Е1).

2010-09-17 14:33

Сообщений: 1573

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

))) iye, поймите, ваш алгоритм делает тоже самое, что обычная команда:

exten => _X.,n,Dial(DAHDI/g1/${EXTEN}))


Объясню дальше:

Допустим - у вас есть три транка (IP или FXO), которые вы хотите нагрузить более менее - равномерно.

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

По большому счету - получается кластеризация ...
2010-09-17 14:41

Сообщений: 147

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

Нет. Не то же самое. Еще раз попрошу: приведите ссылку где написано что линии в транкгруппе выбираются круговым перебором а не по возрастающей от 1 и выше с переходом на линию с более высоким порядковым номером по состоянию занято.
Ваш алгоритм понятен. При использовании глобальных переменных и необходимости _гарантированно_ распределять звонки между n-ным количеством транков я бы сделал так:
[globals]
OPER=0
[main]
exten=> _X.,1,Set(GLOBAL(OPER)=$[${OPER} + 1])
exten=> _X.,n,GotoIF($[${OPER} >= ${MAX_VALUE}?:not_max])
exten=> _X.,n,Set(GLOBAL(OPER)=1)
exten=> _X.,n(not_max),Dial(SIP/oper_${OPER}/${EXTEN},60)
exten=> _X.,n,Hangup()


Отказоустойчивость можно организовать макросом с переходом по состоянию после диала, если оно надо.
2010-09-17 14:53

Сообщений: 1573

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

exten => _X.,1,Set(GATE=${RAND(1|30)})
exten => _X.,n,Set(COUNT=30)
exten => _X.,n,Set(RET=1)
exten => _X.,n(start),GotoIf($["${RET}" > "${COUNT}"]?hangup)
exten => _X.,n,Set(RET=$[${RET} + 1])
exten => _X.,n,Dial(SIP/peer${GATE}/${EXTEN})
exten => _X.,n,Set(GATE=$[${GATE} + 1])
... ; Здесь можно анализировать DIALSTATUS (что бы не перезванивать по BUSY и т.д.)
exten => _X.,n,Set(GATE=${IF$[${GATE} > 30]?1)})
exten => _X.,n,Goto(start)
exten => _X.,n(hangup),Hangup
Вот сжатый вид того же самого. (менее понятный для объяснения)

У вас пока нет отказоустойчивости и ограничения от зацикливания ...
2010-09-17 15:47

Сообщений: 147

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

Последняя строка моего предыдущего сообщения .. думаете мне слабо или вам интересно как я это сделаю ? )
2010-09-17 15:55

Сообщений: 1573

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

iye:

Последняя строка моего предыдущего сообщения .. думаете мне слабо или вам интересно как я это сделаю ? )
Ну уж напишите, а там посмотрим ... (я это за вас уже сделал. "Отвлекают" работой - некогда дискутировать ...)

iye:

На поток Е1 будете писать 30 условий ? )

весь тред, после этого "умозаключения" ...
2010-09-17 16:03

Сообщений: 147

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

[globals]
OPER=0
[main]
exten=> _X.,1(start),Set(GLOBAL(OPER)=$[${OPER} + 1])
exten=> _X.,n,GotoIF($[${OPER} >= ${MAX_VALUE}?over:not_max])
exten=> _X.,n,Set(GLOBAL(OPER)=1)
exten=> _X.,n(not_max),Dial(SIP/oper_${OPER}/${EXTEN},60)
exten=> _X.,n,GotoIF($[${DIALSTATUS} == CHANUNAVAIL]?start)
exten=> _X.,n(over),Hangup()
Как то так.
весь тред, после этого "умозаключения" ...

Каждый понимает прочитанное в своем контексте. Я объяснил выше, почему я так отреагировал на ваш код ). И, возможно, кому то будет полезна наша переписка ).
2010-09-17 16:13

Сообщений: 1573

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

Нет-нет-нет ... )

OPER=0
[main]
exten=> _X.,1(start),Set(GLOBAL(OPER)=$[${OPER} + 1])
exten=> _X.,n,GotoIF($[${OPER} >= ${MAX_VALUE}?over:not_max])
exten=> _X.,n,Set(GLOBAL(OPER)=1) ; сюда вызов не попадет никогда ...
exten=> _X.,n(not_max),Dial(SIP/oper_${OPER}/${EXTEN},60)
exten=> _X.,n,GotoIF($[${DIALSTATUS} == CHANUNAVAIL]?start)
exten=> _X.,n(over),Hangup()


Не рабочая схема ... ) А вы говорите ...

Даю подсказку - работая в данном случае с одной переменной - вы не достигнете нужного результата ... )
2010-09-17 16:53

Добавить страницу в закладки:  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