Документация по модулю VoIP и принадлежащим к нему страницам перенесена в Confluence http://abills.net.ua:8090/display/AB/VoIP

Voip

Модуль для организации АйПи-телефонии по протоколу SIP или H323.

Возможности

Как платформу можно использовать:

  • Asterisk. (мануал - * abills+asterisk.)
  • Или любой другой NAS который поддерживает RADIUS авторизацию и аккаунтинг.

Установка

abills/libexec/config.pl

@MODULES = (
          'Voip'
          );

%ACCT = ();
#For VoIP GNU Gatekeeper accounting
$ACCT{gnugk}    = 'Voip_aaa';
#For Astrisk accounting
$ACCT{asterisk} = 'Voip_aaa';

%AUTH = ();
#For VoIP GNU Gatekeeper Auth
$AUTH{gnugk}    = 'Voip_aaa';
#For Astrisk accounting
$AUTH{asterisk} = 'Voip_aaa';

Залить базу:

# mysql -D abills < db/Voip.sql

Работа с системой

Заведение направлений

/ System configuration/ VoIP/ Routes/

Формат экспорта

PREFIX[TAB]NAME[TAB]STATUS[TAB]

Формат импорта

PREFIX[TAB]NAME[TAB]STATUS[TAB]

После заведения направлений нужно в тарифных планах указать цену направлений

PREFIX Префикс направления
Например 0072
NAME Название направления
STATUS Статус активности направления:
0 - активно
1- отключено

Тарификация

/ System configuration/ VoIP/ Tarif Plans/

# Номер тарифного палата. Если поле не заполнено указывается следуюший по порядку номер
Name: Название
Alert: Отправка предупреждения о израсходованом депозите на E-mail
Day fee: Дневная абонплата
Month fee: Месячная абонплата
Simultaneously: Количество одновременных звонков клиентов
Time limit (sec) Лимит времени
Day день
Week неделя
Month месяц
Activation: Начисления при активации аккаунта
Change: Начисления при изменении тарифного плана
Credit Threshold: Несёмный минимум
Max. session time (sec.): Максимальное время сессии в секундах
Age (Days): Время существования учётной записи абонента
Payment type: Вод оплаты.
Предоплата - Пользователь может работать только при положительном балансе
Послеоплата - Пользователь авторизируется и работает без учёта баланса
Min. session cost: Минимальная сума которая снимается за активную сессии
Free Time: Предоплаченное время звонков. Распространяется на все звонки. Если нужно отдельно предо плаченое время на разные направления нужно использовать расширенную тарифкацию
First period:
Step Of first period:
Next Period:
Step of next period:
Time Division (Seconds .): Интервал тарификации. По умолчанию секунды.
Если возникает ситуация что нужно тарифицировать звонки абонентов не по секундно, а скажем за каждые полные или неполные 10 секунд в этом поле указываем 10. Если абонент проговорил 43 секунды система ему посчитает как за 50 секунд.

Формат импорта цен направлений

PREFIX[TAB]TRUNK[TAB]EXTRA_TARIFICATION[TAB]PRICES1[TAB]PRICES2
PREFIX Префикс
TRUNK ID транка
EXTRA_TARIFICATION Расширенная тарификация
PRICES… Цены на разные интервалы времени. Указываются через табуляцию

Формат экспорта

PREFIX[TAB]NAME[TAB]STATUS[TAB]ADD_DATE[TAB]PRICE

Пример

001	US - Continental	Активовано	0000-00-00	7.00000	
001204	Canada	Активовано	0000-00-00	35.00000	
001242	Bahamas	Активовано	0000-00-00	28.00000	

Расширенная тарификация

/ System configuration/ VoIP/ Extra tarification/

Данная функция разрешает дополнить тарификацию тарифного плана дополнительными возможностями.

  • Предоплаченные минуты

Опция разрешает задать определённое количество предоплаченных минут для направлений. Предоплаченные минуты считаются суммарно для всех направлений временного интервала входящих в группу предоплаченного времени. Предоплаченно время считается от начала периода тарификации. (Для модуля VOIP период тарификации совпадает с календарным месяцем)

Заведение шлюзов операторов связи

/ System configuration/ VoIP/ Trunks/

VOIP Provider Название провайдера
Name Название транка
Add Prefix Добавить префикс к номеру
Delete Prefix Удалить префикс из номера
Protocol Протокол соединения
Provider IP Адрес транка
Extra Parameters Дополнительные параметры
Failover Trunk Транки при недоступности основного

Курс тарификации

$conf{VOIP_UNIT_TARIFICATION}=1; При включённой опции цена прописывается в условных единицах которые потом пересчитываются по курсу в реальных деньги. Курс пересчёта заводиться в меню / System configuration/ VoIP/ Exchange rate. Система автоматически пересчитывает цену при каждом изменении курса. При включённой опции администратору предоставляется возможность заводить тарифные планы только в условных единицах. После Сохранения тарификации сума пересчитывается в денежный эквивалент. Если не установлен обменный курс условные еденицы переводятся по курсу один к одному
$conf{VOIP_NUMBER_EXPR}='search_side/replace_side;search_side/replace_side'; Регулярные выражения преобразования вызываемого номера.
search_side/replace_side - права левая часть регулярного выражения
$number - зарезервированная переменная номера
Регулярные выражения разделяются точкой с запятой (;)
Система завершает преобразовании номера после первого удачного преобразования

Пример обработки номера регулярным выражением:

 $conf{VOIP_NUMBER_EXPR} = '^([0-9]{4,6})$/74832$number;'. 
      '^2([0-9]{6})$/7483$number;'.
      '(^9[0-9]{9})/7$number;'. 
      '^810/;'.
      '^8/7;'. 
      '^*8/7;'. 
      '^4832/74832';

Курсы тарификации устанавливаются в меню / System configuration/ VoIP/ Exchange rate/. После установки курса система автоматически пересчитывает все тарифы

$conf{VOIP_CALLER_NUMBER_EXPR}='search_side/replace_side;search_side/replace_side'; Регулярные выражения преобразования номера звонящего.

Ошибки авторизации

  • No price for route prefix '7' number '00748322111'

нужно завести интервал для данного направления в тарифном плане через Тарифный план / Интервалы / Маршруты . Выбрать интервал и нажать кнопку изменить

  • No route '2111'

нужно завести направление с префиксом начинающимся на 2 / Настройка / VoIP / Направления и повторно в интервалах инициализировать его Тарифный план / Интервалы / Маршруты

Настройка NAS

Настройка клиентского оборудования(софтфоны)

Дополнительно