373 просмотров
от (2.8 тыс. баллов) в категории Тонкая настройка
Добрый день.

Имеется некоторая задача по маршрутзации звонков. Понятно, что делать ее придется с помощью скриптов и кастомизации. Но у меня вопрос: использует ли MikoPBX базу данных(MariaDB, SQLite & etc) для хранения звонков и маршрутов звонков.

И если не использует - каким образом можно сделать временную выборку по номерам, звонкам?

Нам для написания приложения нужно делать выборку за 12 часов по внутренним и внешним звонкам и на основе этой выборки формировать IVR.

1 Ответ

от (123 тыс. баллов)
выбран от
 
Лучший ответ

История храниться в базе данных sqlite3. Из за особенностей данной СУБД, с файлом единовременно может работать только один процесс. 

Файл базы данных расположен тут:

/storage/usbdisk1/mikopbx/astlogs/asterisk/cdr.db

Напрямую к базе данных обращаться не рекомендую. Правильно:

Сперва описываем запрос:

$miko_result_in_file           = true;
$filter                        = [
    'start BETWEEN :date1: AND :date2: AND (src_num IN ({numbers:array}) OR dst_num IN ({numbers:array}) )',
    'bind'    => [
        'numbers' => $this->vars['numbers'],
        'date1'   => $this->vars['date1'],
        'date2'   => $this->vars['date2'],
    ],
    'group'   => 'linkedid',
    'columns' => 'linkedid',
];
$add_query                     = [
    'columns' => 'start,src_num,dst_num,src_chan,dst_chan,billsec,disposition,UNIQUEID,recordingfile,linkedid,did',
    'linkedid IN ({linkedid:array})',
    'bind'    => [
        'linkedid' => null,
    ],
    'limit'   => 300,
];
$filter['add_pack_query']      = $add_query;
$filter['miko_result_in_file'] = $miko_result_in_file;

Далее выполняем его через сервер очередей

$client  = new BeanstalkClient(WorkerCdr::SELECT_CDR_TUBE);
$message = $client->request(json_encode($filter, JSON_THROW_ON_ERROR), 2);

Примеры можно посмотреть в исходном коде:

  1. Последовательная загрузка истории в Панель телефонии ред. 1.0
  2. Запрос по периоду 
от (123 тыс. баллов)
Выполнять тяжелые запросы крайне не рекомендую, можете сломать работу легирования истории звонков.
от (2.8 тыс. баллов)
Да там не тяжелые запросы, но частые. Идея проста - менеджер позвонил клиенту. Тот не взял трубку или быстро ответил что перезвонит. После, если он перезванивает в течении 3-4 часов, его, минуя IVR, перебрасывает на нужного менеджера, который в курсе.
от (2.8 тыс. баллов)
Еще момент - ваша сборка без тюнинга вытянет соединений 40-60 разговоров в момент времени (при соответсвующих мощностях сервера)? Или придется тюнить и допиливать?
от (123 тыс. баллов)

сложно сказать однозначно., вызовы разные бывают. 

Искусственный тест:

  • Входящие на очередь с музыкой на удержании
  • 1 процессор
  • 1 Гигабайт оперативки
Держал 30 параллельных звонков. 
от (2.8 тыс. баллов)
Спасибо. Вполне. Есть в планах на ARM сделать сборку? Очень любим Raspberry PI :)
от (123 тыс. баллов)
пока только планы, но не приступили к реализации.

начать планируем с docker под Arm, пока есть только docker под x64
На этом сайте можно бесплатно задать вопрос разработчикам MikoPBX и другим членам сообщества. Время ответа не регламентированно, но мы стараемся несколько раз в день заглядывать сюда. Для срочного решения проблем обращайтесь на платную линию поддержки

Популярные теги

askozia входящие-вызовы настройка исходящие маршрутизация провайдер запись-разговоров входящие ivr исходящие-звонки обновление ошибка очередь битрикс24 провайдеры очередь-вызовов переадресация запись установка маршрут история-звонков mikopbx транк панель-телефонии-1с перевод-вызова перевод askozia7 askozia6 битрикс callerid интеграция голосовая-почта логи перехват-вызова ростелеком нерабочее-время bitrix24 факс модуль nat docker запись-разговора веб-интерфейс goip настройка-провайдер история диалплан почта журнал-звонков релиз gsm вызовы звонок внешние-номера web-интерфейс zabbix маршруты cdr sip панель pjsip переадресация-мобильный voicemail ascozia телефонная-книга аон мобильный звонков лицензирование вызовов редактор номер asterisk лицензия ami регистрация оповещения провайдеров время голосовая fax trunk разговоров группы-пользователей #mikopbx пропущенные-звонки донабор beeline monitoring тишина smtp cisco мобильные мультифон мегафон шлюз не-работает электронная-почта не-слышно-звук

2.8 тыс. вопросов

2.4 тыс. ответов

6.7 тыс. комментариев

465 тыс. пользователей

...