LINUX.ORG.RU
решено ФорумAdmin

Asterisk и chan_dongle. Балансировка исходящих между gsm-модемами.

 , ,


1

2

Здравствуйте! Исходные данные: Asterisk 16.5.1 на Debian 9.9. Установлен модуль chan_dongle и два модема с симками. Оба оператора T**e2. Все работает.

Задача: На симках по n-минут. Хотелось бы как-то равномерно тратить эти минуты. В google есть только вариант с рандомным переключением между симками при исходящих вызовах. Без подсчета минут получается. То есть вариант так себе.

Вопрос: 1. Что можете посоветовать для равномерного использования минут между симками? И реально ли это вообще? P.S. Оператор не может объединить счет и минуты на этих двух симках. Звонили и уточняли этот момент.

2. Что скажете про GoIP? Читал, что это однозначно лучше нескольких модемов. И что есть балансировка между симками встроенными средствами GoIP. Поделитесь опытом использования. Так ли это?

Спасибо!


По первому вопросу могу посоветовать сделать очередь на исходящие:

queues.conf

[dialout]
strategy=fewestcalls
autofill=yes
ringinuse=no

member => Local/sim1@dialout
member => Local/sim2@dialout
extensions.conf

[outbound]
exten => _8XXXXXXXXXX,1,NoOp()
 same => n,Set(_NEXTEN=${EXTEN})
 same => n,Queue(dialout,r)
 same => n,Hangup()

[dialout]
exten => sim1,1,NoOp()
 same => n,Dial(Dongle/sim1/${NEXTEN})
 same => n,Hangup()

exten => sim2,1,NoOp()
 same => n,Dial(Dongle/sim2/${NEXTEN})
 same => n,Hangup()

Единственное, что здесь вызов будет отправляться на симку с наименьшим числом вызовов. Встроенной стратегии с балансировкой по количеству минут нет. Теоретически можно что-то сделать с wrandom.

HerrWeigel ★★★★ ()

1. Мы у себя накорябали вот это: https://github.com/asket26/asterisk_channel_balancer Можно оттюнить по своим потребностям, но общий подход понятен.

2. GoIP в любом разе лучше костылей из гирлянды модемов, мы его используем со своим балансировщиком (см. выше)

Turbid ★★★★★ ()
Ответ на: комментарий от Turbid

Спасибо! Ваша идея мне понравилась. Реализовать хочу несколько иначе, но должно получится. Пока закрывать тему не буду. Отпишусь, через какое-то время по результатам.

kerby ()
Ответ на: комментарий от Turbid

Сделал таким образом.

1. Перевел текстовые конфиги на mysql.

2. Прикрутил скрипт python через AGI, который по завершению разговора считает минуты и переписывает имя модема с наибольшим количеством оставшихся минут в extensions. Таким образом достигается осмысленная смена модемов.

Спасибо. Тему закрываю.

kerby ()