admin / 12.05.2018
Очень часто бывают ситуации, когда провайдер GSM, согласно определенным тарифным планам, предоставляет определенное количество бесплатных минут, разговоров в месяц, например 100. Либо в тарифный план уже включено 100 минут в месяц, а последующие минуты оплачиваются по высокой стоимости. Используя Asterisk, а конкретнее FreePBX, в одном исходящем маршруте транки (внешние линии) занимаются по порядку очередности. Тем самым больше всего исходящих вызовов происходит именно с первого транка и баланс может уйти в минус, когда как на остальных, могут остаться бесплатные, неиспользованные минуты.
Стандартными средствами FreePBX эту проблему решить трудоемко, и поэтому сообществом PBX Open Source Software Alliance был разработан внешний модуль для FreePBX, называется он trunkbalance. Модуль бесплатен и любой желающий может прислать свои/свой патч с дополнениями и исправлениями в git.
Для тестирования и описания функционирования данного модуля мы используем FreePBX 2.12 и Asterisk версии 11 (LTS).Модуль устанавливается достаточно стандартно для FreePBX и думаю здесь, на рассмотрение останавливается, особо не стоит.
После установки мы видим настройки модуля:
Как видно можно вводить ограничения по времени, дням недели, месяцу (раздел Billing Cycle Configuration), маршрутизировать согласно временной группе, устанавливать лимиты по времени разговора и количеству совершенных вызовов.
Но для нас самым важным является именно балансировка (распределение) вызовов между транками (раздел Load Balancing Configuration).
Необходимые настройки мы производим в поле Load Ratio (Коэффициент нагрузки).
Load Ratio (LR): Если LR установлен целым числом, большим 1, модуль будет случайным образом разрешить или запрещать исходящий вызов, только на основе соотношения нагрузки. Здесь, нет определения, предыдущего использования транка и модуль, не пытается вычислить количество минут или звонков. Если вы хотите, случайным образом равномерно сбалансировать исходящие вызовы трех (n) транков, необходимо создать 2 (n-1) сбалансированных транков, в этом модуле, один с отношением нагрузки 3 (n) и один с коэффициентом нагрузки 2 (n-1). При определении исходящего маршрута (Outbound Route), необходимо прописать транки, так чтобы сбалансированный транк с LR=3 будет первым, LR = 2 будет вторым и стандартный транк будет третим. Вероятность при первом звонке, у первого транка 1/3, вероятность на второй вызов 1/3 (точнее, половина из оставшихся 2/3) у второго транка и третий транк получит 1/3 (или все из оставшихся). Чтобы отключить это правило введите 1.
Например:
У нас есть три транка gsm-01;gsm-02 и gsm-03. Соответственно создаем два транка: balance-gsm-01 и balance-gsm-02 в нашем модуле, с коэффициент нагрузки LR= 3 и LR= 2 соответственно.
В исходящем маршруте прописываем транки в следующем порядке:
В итоге, получаем нужную нам балансировку, где первый транк LR=(n), а последующий LR=(n-1).
Коментарии:
Содержание
Для того, чтобы проверить, запущен ли asterisk локально (на этом же компьютере), достаточно (это самый надёжный способ) выполнить из командной строки:
В случае успешного запуска появится приглашение астериска:
Asterisk …, Copyright (C) 1999 — …
Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.
This is free software, with components licensed under the GNU General Public License version 2 and other licenses; you are welcome to redistribute it under certain conditions. Type ‘core show license’ for details.
=========================================================================
Connected to Asterisk … currently running on … (pid = ….)
Приведенное выше сообщение означает, что выполнены следующие условия:
Для того, чтобы удаленно проверить, работает ли астериск, необходимо подключиться к нему. Для этого сначала определите, какой порт прослушивает астериск, после чего подключитесь к этому порту с помощью любого sip клиента.
Теоретически, это не совсем относится к диагностике asterisk, но по факту, значительно ускоряет процесс диагностики (если знать об этой возможности).
Дело в том, что в командной строке астериска широко используется автодополнение команд (и параметров!). Набрав команду (или любой ее фрагмент), нажмите клавишу Tab (или знак вопроса — "?") — и asterisk предложит варианты дополнений. Если вариант только один, он сразу дополнит команду. Если несколько — отобразит список вариантов. Достаточно дописать еще несколько букв к команде, чтобы однозначно выбрать нужный Вам вариант — и снова нажимайте клавишу Tab.
Особенно полезно это в случае (например) отображения информации о каком-либо канале:
<нажимаем Tab> <набираем пару символов с названием нужного нам канала> <снова нажимаем Tab>
Это можно определить локально, выполнив в консоли астериска (asterisk CLI) следующую команду:
Если астериск "висит" на UDP порту (обычно), то соответствующий порт Вы найдете в строке, начинающейся с "UDP Bindaddress", например:
UDP Bindaddress: 0.0.0.0:5060
Если же астериск "висит" на TCP порту (или вообще использует шифрование TLS), то искать надо строки "TCP SIP Bindaddress" и "TLS SIP Bindaddress" соответственно.
Это можно определить локально, выполнив в консоли астериска (asterisk CLI) следующую команду:
Номер порта, на котором "висит" asterisk, Вы найдете в строке "Bind Port" (обычно это порт 4569).
Для того, чтобы получить (краткую) информацию о sip пире, выполните в командной строке астериска следующую команду:
<имя-пира>
например:
Так же Вы можете получить информацию о нескольких пирах. Используя слово like, Вы даете команду астериску отобразить все пиры, содержащие (в имени) указанную подстроку. Например, команда:
Эта команда отобразит информацию о пирах с именами 100, 1000, 1001…1009, 10000…100099, а также 1100 (при условии, что пиры с такими именами присутствуют в системе).
При этом Вы увидите:
Для того, чтобы получить подробную информацию о SIP пире, выполните в командной строке астериска следующую команду:
<имя-пира>
например:
Для того, чтобы получить (краткую) информацию об IAX2 пире, выполните в командной строке астериска следующую команду:
<имя-пира>
например:
Так же Вы можете получить информацию о нескольких пирах. Используя слово like, Вы даете команду астериску отобразить все пиры, содержащие (в имени) указанную подстроку. Например, команда:
Эта команда отобразит информацию о пирах с именами 100, 1000, 1001…1009, 10000…100099, а также 1100 (при условии, что пиры с такими именами присутствуют в системе).
При этом Вы увидите:
Для того, чтобы получить подробную информацию об IAX2 пире, выполните в командной строке астериска следующую команду:
<имя-пира>
например:
Отобразить содержимое контекста со всеми экстенами и командами:
<имя-контекста>
Например:
Чтобы отобразить все приоритеты и команды для нужного Вам экстена (точнее, для подходящего к этому экстену шаблона в указанном контексте), выполните следующую команду в asterisk CLI:
<имя-экстена>@<имя-контекста>
например:
Чтобы отобразить весь диалплан (например, чтобы убедиться, что никаких "лишних" контекстов и экстенов в каких-то затесавшихся файлах нет) просто выполните команду:
Вы также можете попробовать выполнить поиск нужного Вам экстена во всех контекстах. При этом будут отображены все шаблоны экстенов, под которые попадает Ваш экстен, во всех контекстах диалплана. Просто выполните команду:
<имя-экстена>@
Например:
Для отображения списка всех SIP пользователей asterisk, с их паролями, а также с основными параметрами (например, контекстами по умолчанию) воспользуйтесь командой:
Эта команда отобразит всех SIP пользователей. Если нужно ограничиться отдельными группами пользователей, воспользуйтесь командой:
<шаблон>
например:
Для отображения списка всех IAX2 пользователей asterisk, с их паролями, а также с основными параметрами (например, контекстами по умолчанию) воспользуйтесь командой:
Эта команда отобразит всех IAX2 пользователей. Если нужно ограничиться отдельными группами пользователей, воспользуйтесь командой:
<шаблон>
например:
Для получения подробной информации об отдельном пользователе (такой как контекст, язык, callgrop/pickupgroup, CallerID, кодеки и так далее) выполните следующую команду:
<имя пользователя>
Например:
Для IAX2 пользователя такой информации не предоставляется.
Каналы и звонки
Для отображения списка активных каналов, а также их количества (как правило, 1 звонок создает 2 активных канала), выполните команду:
Самое главное назначение этой команды — по ней Вы сможете увидеть названия активных каналов и воспользоваться ими для выполнения следующей задачи: отобразить информацию о конкретном активном канале.
Для отображения подробной (действительно подробной — этой информации действительно много) информации о конкретном активном канале воспользуйтесь командой:
<имя канала>
Например:
Для того, чтобы получить название канала, сначала отобразите список активных каналов, а затем укажите приведенную выше команду, пользуясь автодополнением команд asterisk.
Для этого введите команду:
Вы получите информацию как о текущем количестве звонков, так и об общем количестве обработанных звонков (с момента последнего запуска астериска).
Verbose отвечает за отображение информации о протекающих в asterisk процессах: вызовах, их обработке, запуске call файлов, и т.п.
Для включения отображения такой информации есть 2 варианта:
При этом количество букв "v" указывает на уровень отладки verbose: от verbose 1 до verbose 10 (и выше). Можно также подключиться к asterisk, отключив отображении такой информации вообще:
или
…
Число после verbose отвечает за подробность и количество сообщений. Число может быть и больше 10 (используйте автозаполнение asterisk).
Для отключения вывода сообщений verbose наберите в asterisk CLI:
В режиме отладки debug выводится информация, которая может быть более полезна для разработчиков.
Режим debug можно включить из командной строки asterisk:
или
…
Число после debug отвечает за подробность и количество сообщений.
Для отключения вывода сообщений debug наберите в asterisk CLI:
Для того, чтобы получить подробную информацию об обмене SIP-пакетами, можно использовать отладку SIP. Для этого существуют следующие команды:
После поднятия трубки обоими абонентами начинается разговор. Для передачи разговора используется протокол RTP. Чтобы получить подробную информацию об обмене RTP-трафиком, можно использовать отладку RTP. Для этого существуют следующие команды:
В случае двустороннего разговора (а не автоматического оповещения например) обмен RTP пакетами должен идти в обе стороны, например так:
на сегодня лучшее решение для организации офисной телефонии и недорогого call-центра.
Это программный продукт класса Open Source, свободное ПО с открытым кодом. За счет уникального сочетания множества функций Asterisk занимает лидирующие позиции среди платформ для создания офисной телефонии.
Используйте Asterisk, если:
Стоимость установки и настройки IP АТС Asterisk составляет 40 000 руб., НДС не облагается.
В указанную цену не входит стоимость оборудования.
Коммерческое предложение о внедрении IP АТС
Внимание: акция! В апреле 2017 г. цена на установку Asterisk снижена до 29 900 руб.
Подробности в коммерческом предложении.
Asterisk – это программная IP АТС с возможностями:
Для работы Asterisk IP PBX не требуется дорогостоящее оборудование. Достаточно выделенного компьютера, включенного в локальную сеть. Это делает систему доступной для любой компании.
Открытый код Asterisk дает нам прекрасную возможность для доработки системы, создания новых функций и внедрения дополнительных сервисов.
Офисная IP АТС Asterisk обладает таким функционалом как:
Несмотря на то, что Asterisk IP PBX создана для работы в среде IP-телефонии, она прекрасно интегрируется в традиционную телефонную сеть. С помощью плат (Digium, Sangoma) и VoIP-шлюзов IP АТС способна подключиться к ТфОП по либо аналоговым каналам и функционировать в комплексе с мини АТС (УАТС).
Asterisk обладает высокой доступностью и кроссплатформенностью:
Понравился Asterisk? Хотите внедрить Asterisk в своей компании? Обращайтесь к нам! Мы предложим Вам подходящую конфигурацию IP АТС и выполним внедрение Asterisk меньше, чем за неделю.
Пользуемся Asterisk более года. Внедрили почти все функции VoIP, пригодилось все. Спасибо Вашим разработчикам, толково объясняют нам, не специалистам.
Теперь мы принимаем заказы на хлебопродукцию и тут же фиксируем их в CRM-системе. Запись разговора привязана к заказу, всегда можно прослушать ее еще раз.
С. Мазур, начальник отдела сбыта хлебозавода, г. Москва
© 2002 Битрикс, 2007 1С-Битрикс
Настройка сервера Asterisk для работы с «Виртуальной АТС «ВирТел»
Файл /etc/asterisk/sip.conf:
[general]
;register => ваш_логин:ваш_пароль@sipp.virtel.net/ваш_номер~таймаут_регистрации_в_секундах
register => userXXX:ваш_пароль@sipp.virtel.net/88142599045~300
[virtel]
type=friend
username=userXXX ; (В Asterisk 1.8 используется параметр defaultuser)
secret=ваш_пароль
fromuser=userXXX
fromdomain=sipp.virtel.net
host=sipp.virtel.net
nat=yes
dtmfmode=rfc2833
qualify=2000
insecure=invite
context=virtel-in
canreinvite=no
[101] ; внутренний абонент на Вашем Астериске
secret=MEGA_SECRET
host=dynamic
type=friend
context=virtel-out
Не забудьте выполнить в cli Астериска
> sip reload
или из командной строки
> asterisk -rx «sip reload»
Теперь Ваш Asterisk будет регистрироваться у нас.
Для проверки регистрации выполните из cli
> sip show registry
вы должны увидеть следующий вывод
asterisk*CLI> sip show registry
Host dnsmgr Username Refresh State Reg.Time
sipp.virtel.net:5060 N userXXX @sip.virtel.net 285 Registered Tue, 09 Sep 2014 10:43:17
Входящие звонки будут приходить в контекст [virtel-in] на extension ваш_сип_номер
Входящие вызовы
Для входящих звонков необходимо указать куда будет поступать вызов (внутренний номер астериска/группа абонентов/IVR).
На указанном ниже примере, входящий звонок будет направлен на внутренний номер астериска 101.
Файл /etc/asterisk/extensions.conf
[virtel-in]
exten => _X.,1,Dial(SIP/101)
Не забудьте выполнить в cli Астериска
> sip reload
или из командной строки
> asterisk -rx «dialplan reload»
Исходящие вызовы
Для исходящих звонков используйте Dial(SIP/virtel/вызываемый_номер)
Файл /etc/asterisk/extensions.conf
[virtel-out]
exten => _X.,1,Dial(SIP/virtel/${EXTEN},300)
Не забудьте выполнить в cli Астериска
> dialplan reload
или из командной строки
> asterisk -rx «dialplan reload»
Если ваш сервер asterisk находится за NAT и при совершении вызовов вы не слышите абонента или он вас, то необходимо:
1. Отключить SIP-ALG на роутере (инструкции по настройке для Asus,Mikrotik, Zyxel)
2. Убедиться, что в файле sip.conf в секцми [global] прописаны корректные параметры для прохождения NAT
maxexpiry=600 ; Maximum length of registrations/subscriptions
minexpiry=60 ; Minimum length of registrations/subscriptions
defaultexpiry=300 ; Default length of incoming/outgoing registration
localnet = ваши_внутренние_сети ; Например 192.168.0.0/24
externaddr = ваш_внешний_ip_adres ; Можно узнать, обратившись с сервера asterisk по адресу https://sipp.virtel.net/ip
nat = yes
.
Большинство экспертов в области связи считают, что Asterisk — это будущее телефонии!
Мы предлагаем 2 популярных дистрибутива Asterisk, широко применяющихся во всем мире, — Elastix и FreePBX.
Elastix — сервер объединенных коммуникаций, Open Source Unified Communication Server. Это комплексный дистрибутив Asterisk, включающий в себя IP АТС, почтовый сервер, сервер обмена мгновенными сообщениями, факс сервер, сервер конференций. Мы поставляем Elastix с веб-интерфейсом на русском языке.
Наиболее популярная оболочка для Asterisk, установленная более чем в полумиллионе компаний. Простое и надежное решение для работы Астериск. FreePBX — это GUI для Asterisk, то есть графический интерфес пользователя. Веб-интерфейс FreePBX представлен на русском языке и содержит множество удобных форм для настройки офисной телефонии на Asterisk.
Ниже представлены основные функции IP АТС Asterisk. Если Вы впервые слышите об Asterisk, то будете приятно удивлены возможностями этой системы.
Комбинируя те или иные функции Asterisk, мы создаем IP АТС, подходящую именно Вашему бизнесу. Установите решение на Asterisk и убедитесь в том, что офисная телефония может приносить прибыль!
FILED UNDER : IT