=====Voip===== Модуль для организации АйПи-телефонии по протоколу SIP или H323. ====Возможности==== * SIP, H323 * Припейд (предоплата) и постпейд (оплптп по факту) сервис. * [[#rabota_s_cdr_fajlami|Работа с cdr файлами]] * [[abills:docs:voip:balance_recharge:ru|Получение сведений о балансе и пополнение счета]] * Карточная платформа * Тарификация по времени и по направлениям. * Возможность разрешать или запрещать входящие, исходящие звонки. * Абон. плата. * Управление шлюзами. * Выбор оптимального шлюза для звонка. * Консоль для управления GNU Gatekeeper. * Бесплатные секунды в звонке * Предоплаченное время направлений * [[abills:docs:call_center|Callcenter]] * [[abills:docs:voip:dtfm_test|DTMF test]] === Как платформу можно использовать: === * [[http://www.gnugk.org|GNU Gatekeeper]]. * [[http://www.asterisk.org|Asterisk]]. (мануал - * [[http://abills.net.ua/wiki/doku.php/abills:docs: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 / Направления'' и повторно в интервалах инициализировать его ''Тарифный план / Интервалы / Маршруты'' =====Работа с cdr файлами===== Для работы с cdr файлами существует программа **cdr_analyzer**\\ Программа может запускатся как с cron так и работать в режиме демона \\ \\ **Установка** # cp cdr_analyzer /usr/abills/Abills/modules/Voip/ # ln -s /usr/abills/Abills/modules/Voip/cdr_analyzer /usr/abills/libexec/cdr_analyzer ** Аргументы программы ** ^help | справка | ^CDR_FILE= | Путь к файлу или каталогу содержащему cdr файлы (По умолчанию: /home/asm/abills/var/log/cdr/) | ^CDR_EXPR='expr' \\ \\ CALLER_NUMBER \\ CALLED_NUMBER\\ DATE \\ TIME \\ START (2012-01-01 00:00:00) \\ DURATION sec or (00:11:11) | Выражение для анализа файла | ^UNKNOWN_CDR_FILE=... | Путь к файлу куда складываются не определённые записи анализируемого cdr файла | ^CALLER_NUMBER= | Анализировать только звонки с номера. Остальные записи игнорировать | ^CALL_DATE="xxxx-xx-xx" | Добавить дату к візову если в cdr файле только время звонка | ^LOG_FILE=... | Путь к лог файлу программы | ^-d | Режим демона | ^UPDATE_TIME=... | Время обновление при работе в режиме демона | ^BACKUP_DIR=[DIR]| Каталог для проанализированных файлов | ^DEBUG=... | Режим отладки 1..8 | ^NAS_IDS= | Прикрепить записи о звонкам к определённым серверам доступа | **Пример выражения** \\ cdr Файл 2012-06-09;15:54:00;2037197;3878718;15238 2012-06-10;09:23:00;2037197;3878718;53 2012-06-10;10:34:00;2038938;2662996;840 2012-06-14;15:43:00;2030393;3435545;9 2012-06-14;16:00:00;2030393;3435545;6 2012-06-14;11:38:00;2037047;3376251;16 Выражение \\ # /usr/abills/libexec/cdr_analyzer CDR_EXPR="(\d{4}-\d{2}-\d{2});(\d{2}:\d{2}:\d{2});(\d+);(\d+);(\d+)|DATE,TIME,CALLER_NUMBER,CALLED_NUMBER,DURATION" =====Настройка NAS===== * [[abills:docs:asterisk|Asterisk]] * [[abills:docs:nas:gnugk:ru|GNU Gatekeeper]] * [[abills:docs:nas:cisco_voip:ru|Cisco Voip]] * [[abills:docs:nas:cisco_provision:ru|Cisco Unified Provisioning Manager]] * [[abills:docs:nas:cisco_callmanager:ru|Cisco CallManager]] * [[abills:docs:nas:SI3000:ru|SI3000]] * [[abills:docs:nas:kamailio:ru|Kamailio]] =====Настройка клиентского оборудования(софтфоны)===== * [[abills:docs:voip_eyebeam:ru|EyeBeam]] * [[abills:docs:voip_phonerlite:ru|Phonerlite]] =====Дополнительно===== * [[http://abills.net.ua/misc/prefix.sql|Дамп префиксов Украина, Россия - разбивка по областям и операторам связи]]