Quantcast
Channel: IP АТС Asterisk
Viewing all 1052 articles
Browse latest View live

Asterisk CLI - интерфейс командной строки

$
0
0

Asterisk CLI - интерфейс командной строки

asterisk -vvvvvv

Командная строка является мощным инструментом для мониторинга и управления работой Asterisk PBX. При запуске asterisk с флагом -r или -c, появиться следующие приглашение:

# asterisk   -vvvr
*CLI> 

Количество 'v' в параметрах задает порог отображаемой информации в консоли для данного подключения. Комбинация -vvvr задаст verbose level 8. Интерфейс командной строки Asterisk имеет свой конфиг - cli.conf

Введите core show helpи нажмите enter для получения полного списка команд:

Командная строка поддерживает вывод доступных команд по неполному вводу нажатием 'Tab':

Для получения дополнительной информации о конкретной команде, вы можете ввести core show help<command>. Например:

*CLI> core show help manager
                manager reload Reload manager configurations
    manager set debug [on|off] Show, enable, disable debugging of the manager code
          manager show command Show a manager interface command
         manager show commands List manager interface commands
        manager show connected List connected manager interface users
           manager show eventq List manager interface queued events
         manager show settings Show manager global settings
            manager show users List configured manager users
             manager show user Display information on a specific manager user
*CLI> 

Вот некоторые полезные команды:

Core

  • core set verbose <0-9> - порог отображаемой информации.
  • core reload - перечитать все конфиги
  • core restart gracefullyперезагрузить Asterisk по завершению всех текущих вызовов (свободные каналы закрываются)
  • core restart now Restart перезагрузить Asterisk немедленно
  • core restart when convenientперезагрузить Asterisk если нет разговоров

SIP

  • sip show peersпоказать существующие SIP екстеншены и их статус
  • sip show peer 100 отображает информацию о конкретном SIP екстеншене
  • sip show registryотображает состояние зарегистрированных транков

PJSIP

  • pjsip set logger {on|off|host} – Enable/Disable PJSIP Logger Output
  • pjsip show aors– Show PJSIP Aors
   Aor:  <Aor..............................................>  <MaxContact>
    Contact:  <Aor/ContactUri.................................>  <Status....>  <RTT(ms)..>
 =========================================================================================

      Aor:  1000                                                 1
    Contact:  1000/sip:1000@192.168.1.32:5060;transport=UDP;rin  Avail               9.645

      Aor:  1001                                                 1
  • pjsip show aor– Show PJSIP Aor
localhost*CLI> pjsip show aor 1000

      Aor:  <Aor..............................................>  <MaxContact>
    Contact:  <Aor/ContactUri.................................>  <Status....>  <RTT(ms)..>
 =========================================================================================

      Aor:  1000                                                 1
    Contact:  1000/sip:1000@192.168.1.32:5060;transport=UDP;rin  Avail              13.017


 ParameterName        : ParameterValue
 ==========================================================================================
 authenticate_qualify : false
 contact              : sip:1000@192.168.1.32:5060;transport=UDP;rinstance=56471484e9cd2c68
 default_expiration   : 3600
 mailboxes            :
 max_contacts         : 1
 maximum_expiration   : 7200
 minimum_expiration   : 60
 outbound_proxy       :
 qualify_frequency    : 60
 remove_existing      : true
 support_path         : false

DAHDI

  • dahdi show statusсостояние портов dahdi
  • dahdi show channelsпоказать существующие каналы
    • pri show spansотобразить объекты pri и их статус.

Кодеки

  • core show translation recalcрасчет перекодировки кодеков

core show translation recalc

core show translation recalc

*CLI> core show translation recalc
         Recalculating Codec Translation (number of sample seconds: 1)

         Translation times between formats (in microseconds) for one second of data
          Source Format (Rows) Destination Format (Columns)

            gsm  ulaw  alaw  g726 adpcm  slin lpc10  ilbc g726aal2  g722 slin16 testlaw slin12 slin24 slin32 slin44 slin48 slin96 slin192
      gsm     - 15000 15000 15000 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     ulaw 15000     -  9150 15000 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     alaw 15000  9150     - 15000 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     g726 15000 15000 15000     - 15000  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
    adpcm 15000 15000 15000 15000     -  9000 15000 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     slin  6000  6000  6000  6000  6000     -  6000  6000     6000  8250   8000    6000   8000   8000   8000   8000   8000   8000    8000
    lpc10 15000 15000 15000 15000 15000  9000     - 15000    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     ilbc 15000 15000 15000 15000 15000  9000 15000     -    15000 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
 g726aal2 15000 15000 15000 15000 15000  9000 15000 15000        - 17250  17000   15000  17000  17000  17000  17000  17000  17000   17000
     g722 15600 15600 15600 15600 15600  9600 15600 15600    15600     -   9000   15600  17500  17000  17000  17000  17000  17000   17000
   slin16 14500 14500 14500 14500 14500  8500 14500 14500    14500  6000      -   14500   8500   8000   8000   8000   8000   8000    8000
  testlaw 15000 15000 15000 15000 15000  9000 15000 15000    15000 17250  17000       -  17000  17000  17000  17000  17000  17000   17000
   slin12 14500 14500 14500 14500 14500  8500 14500 14500    14500 14000   8000   14500      -   8000   8000   8000   8000   8000    8000
   slin24 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500      -   8000   8000   8000   8000    8000
   slin32 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500      -   8000   8000   8000    8000
   slin44 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500      -   8000   8000    8000
   slin48 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500   8500      -   8000    8000
   slin96 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500   8500   8500      -    8000
  slin192 14500 14500 14500 14500 14500  8500 14500 14500    14500 14500   8500   14500   8500   8500   8500   8500   8500   8500       -

ещё

  • module show like mysqlотобразить загруженные модули содержащие в названии mysql
  • pri set debug {on|off} span 1 Enables PRI debugging on a span
  • rtp set debug {on|off|ip} Enable/Disable RTP debugging

Простые CLI приемы

Есть несколько трюков, которые помогут вам в интерфейсе командной строки Asterisk. Очень удобно завершение неполного ввода клавишей TAB. Если вы введете начало команды и нажмите клавишу Tab, Asterisk попытается завершить имя команды, или покажет возможные команды, которые начинаются с буквы, которые Вы ввели. Например, введите 'co', а затем нажмите клавишу Tab.

 localhost*CLI> co
 confbridge  config      core
 localhost*CLI> co

Теперь наберите 'cor', и нажмите TAB снова. На этот раз Asterisk завершит слово, т.к. 'core' является единственной командой, которая начинается с 'cor'. Этот трюк также работает с под-командами. Например, наберите 'core show' и нажмите TAB. (Возможно, вам придется дважды нажать вкладку, если вы не поставили пробел после слова 'show'.) Asterisk покажет вам все под-команды.

localhost*CLI> core show [Tab]
application     applications    calls           channel         channels
channeltype     channeltypes    codec           codecs          config
file            function        functions       hanguphandlers  help
hint            hints           image           license         profile
settings        sound           sounds          switches        sysinfo
taskprocessors  threads         translation     uptime          version
warranty
localhost*CLI> core show

Повторение предыдущих команд.

Для просмотра ранее введенных команд, нажмите стрелочку вверх, таким образом можно пролистать всю историю назад и вперед.

Run Linux Shell Commands from The Asterisk CLI

Восклицательный знак перед командой позволяет предавать команды оболочке Linux.

 localhost*CLI> !whoami
 root
 localhost*CLI>

Asterisk -rx

Иногда удобно дать команду, или получить информацию, не подключаясь непосредственно к консоли. Для этого используется ключ '-x'.
Например, получить список sip пиров:

# asterisk -rx 'sip show peers'

Команда может заключаться, как в одинарные, так и в двойные кавычки.

Также можно отфильтровать полученные данные командой grep:

 # asterisk -rx "sip show peers" | grep unreachebale

logger.conf

Консоль является объектом модуля логов в Asterisk. Что должно отображаться в консоли при подключении, настраивается в конфиге logger.conf

Asterisk: настройка и установка


Asterisk logger.conf

$
0
0

Asterisk logger.conf

Настройка логов Asterisk. В данном файле настраивается журналирование событий Asterisk в файлы, консоль и syslog linux. Для применения настроек выполните команду «logger reload» в консоли (CLI) Asterisk.

Глобальные настройки логов

[general]

dateformat

настройка отображения даты и времени в сообщениях отладки (debug) в данном примере использован ISO 8601 формат даты (yyyy-mm-dd HH:MM:SS) См. также strftime(3) Linux спецификацию формата.
Секундные доли могут быть использованы в данном поле. Используйте %1qдля отображения десятых или %2qдля отображения сотых долей и тд.

 dateformat=%F %T       ; ISO 8601 
 dateformat=%F %T.%3q   ; с миллисекундами
use_callids

Сохранять Asterisk Unique Call-Id (по умолчанию yes)

 use_callids = no
appendhostname

Добавить имя хоста к имени лог файла.

 appendhostname = yes
queue_log

Регистрировать события очереди. (по умолчанию yes).

 queue_log = no
queue_log_to_file

Регистрировать события очереди в файл (по умолчанию no). События очереди могут сохраняться в реалтайм хранилище (базе данных). Сохранять события и в файл тоже, несмотря на то, что в extconfig.confсуществует конфигурация типа: queue_log ⇒ odbc,asterisk

 queue_log_to_file = yes
queue_log_name

Задайте имя файла лога очереди (по умолчанию queue_log)

 queue_log_name = queue_log
queue_log_realtime_use_gmt

Когда используется Realtime лог очереди (а вы замечали, что queue в русской ракладке - «йгугу»?)
сохранять GMT дату, а не локальное время. По умолчанию 'no'.

  queue_log_realtime_use_gmt = yes

Ротация логов Asterisk

  • none: Не применять ротацию вообще. Заметьте, логи Asterisk могут расти очень быстро.
  • sequential: Переименовать архивные логи таким образом, чтобы новые нумеровались по возрастающей. Это поведение по умолчанию.
  • rotate: Перемешивать файлы таким образом, чтобы старые имели более высокий порядковый номер.
  • timestamp: Переименовать логфайл в соответствии с датой, вместо порядкового номера.
 rotatestrategy = rotate

Выполнить команду Linux после ротации. В примере, предпоследний файл с порядковым номером 2 (стратегия rotate) будет заархивирован.

 exec_after_rotate=gzip -9 ${filename}.2
;
; 
;
; In this file, you configure logging to files or to
; the syslog system.
;
; "logger reload" at the CLI will reload configuration
; of the logging system.

[general]
;
; Customize the display of debug message time stamps
; this example is the ISO 8601 date format (yyyy-mm-dd HH:MM:SS)
;
; see strftime(3) Linux manual for format specifiers.  Note that there is also
; a fractional second parameter which may be used in this field.  Use %1q
; for tenths, %2q for hundredths, etc.
;
;dateformat=%F %T       ; ISO 8601 date format
;dateformat=%F %T.%3q   ; with milliseconds
;
;
; This makes Asterisk write callids to log messages
; (defaults to yes)
;use_callids = no
;
; This appends the hostname to the name of the log files.
;appendhostname = yes
;
; This determines whether or not we log queue events to a file
; (defaults to yes).
;queue_log = no
;
; Determines whether the queue_log always goes to a file, even
; when a realtime backend is present (defaults to no).
;queue_log_to_file = yes
;
; Set the queue_log filename
; (defaults to queue_log)
;queue_log_name = queue_log
;
; When using realtime for the queue log, use GMT for the timestamp
; instead of localtime.  The default of this option is 'no'.
;queue_log_realtime_use_gmt = yes
;
; Log rotation strategy:
; none:  Do not perform any logrotation at all.  You should make
;        very sure to set up some external logrotate mechanism
;        as the asterisk logs can get very large, very quickly.
; sequential:  Rename archived logs in order, such that the newest
;              has the highest sequence number [default].  When
;              exec_after_rotate is set, ${filename} will specify
;              the new archived logfile.
; rotate:  Rotate all the old files, such that the oldest has the
;          highest sequence number [this is the expected behavior
;          for Unix administrators].  When exec_after_rotate is
;          set, ${filename} will specify the original root filename.
; timestamp:  Rename the logfiles using a timestamp instead of a
;             sequence number when "logger rotate" is executed.
;             When exec_after_rotate is set, ${filename} will
;             specify the new archived logfile.
;rotatestrategy = rotate
;
; Run a system command after rotating the files.  This is mainly
; useful for rotatestrategy=rotate. The example allows the last
; two archive files to remain uncompressed, but after that point,
; they are compressed on disk.
;
; exec_after_rotate=gzip -9 ${filename}.2
;
;
; For each file, specify what to log.
;
; For console logging, you set options at start of
; Asterisk with -v for verbose and -d for debug
; See 'asterisk -h' for more information.
;
; Directory for log files is configures in asterisk.conf
; option astlogdir
;
[logfiles]
;
; Format is:
;
; logger_name => [formatter]levels
;
; The name of the logger dictates not only the name of the logging
; channel, but also its type. Valid types are:
;   - 'console'  - The root console of Asterisk
;   - 'syslog'   - Linux syslog, with facilities specified afterwards with
;                  a period delimiter, e.g., 'syslog.local0'
;   - 'filename' - The name of the log file to create. This is the default
;                  for log channels.
;
; Filenames can either be relative to the standard Asterisk log directory
; (see 'astlogdir' in asterisk.conf), or absolute paths that begin with
; '/'.
;
; An optional formatter can be specified prior to the log levels sent
; to the log channel. The formatter is defined immediately preceeding the
; levels, and is enclosed in square brackets. Valid formatters are:
;   - [default] - The default formatter, this outputs log messages using a
;                 human readable format.
;   - [json]    - Log the output in JSON. Note that JSON formatted log entries,
;                 if specified for a logger type of 'console', will be formatted
;                 per the 'default' formatter for log messages of type VERBOSE.
;                 This is due to the remote consoles intepreting verbosity
;                 outside of the logging subsystem.
;
; Log levels include the following, and are specified in a comma delineated
; list:
;    debug
;    notice
;    warning
;    error
;    verbose(<level>)
;    dtmf
;    fax
;    security
;
; Verbose takes an optional argument, in the form of an integer level.
; Verbose messages with higher levels will not be logged to the file.  If
; the verbose level is not specified, it will log verbose messages following
; the current level of the root console.
;
; Special level name "*" means all levels, even dynamic levels registered
; by modules after the logger has been initialized (this means that loading
; and unloading modules that create/remove dynamic logger levels will result
; in these levels being included on filenames that have a level name of "*",
; without any need to perform a 'logger reload' or similar operation).
; Note that there is no value in specifying both "*" and specific level names
; for a filename; the "*" level means all levels.  The only exception is if
; you need to specify a specific verbose level. e.g, "verbose(3),*".
;
; We highly recommend that you DO NOT turn on debug mode if you are simply
; running a production system.  Debug mode turns on a LOT of extra messages,
; most of which you are unlikely to understand without an understanding of
; the underlying code.  Do NOT report debug messages as code issues, unless
; you have a specific issue that you are attempting to debug.  They are
; messages for just that -- debugging -- and do not rise to the level of
; something that merit your attention as an Asterisk administrator.  Debug
; messages are also very verbose and can and do fill up logfiles quickly;
; this is another reason not to have debug mode on a production system unless
; you are in the process of debugging a specific issue.
;
;debug => debug
;security => security
console => notice,warning,error
;console => notice,warning,error,debug
messages => notice,warning,error
;full => notice,warning,error,debug,verbose,dtmf,fax
;
;full-json => [json]debug,verbose,notice,warning,error,dtmf,fax
;
;syslog keyword : This special keyword logs to syslog facility
;
;syslog.local0 => notice,warning,error
;

Функция диалплана Asterisk: QUEUE_VARIABLES

$
0
0

Функция диалплана Asterisk: QUEUE_VARIABLES

Функция Asterisk QUEUE_VARIABLESвозвращает предустановленные переменные с информацией о состоянии очереди.

Описание

Доступны перечисленные ниже переменные.
Возвращает '0' если очередь найдена и setqueuevar определена, '-1' в противном случае.

Синтаксис

QUEUE_VARIABLES(queuename)

Аргументы

  • queuename
  • variables:
    • QUEUEMAX - Максимально разрешенное кол-во вызовов в очереди.
    • QUEUESTRATEGY - Стратегия очереди.
    • QUEUECALLS - Кол-во вызовов в очереди в данный момент.
    • QUEUEHOLDTIME - Среднее время ожидания в очереди на данный момент.
    • QUEUECOMPLETED - Кол-во отвеченных вызовов.
    • QUEUEABANDONED - Кол-во отвергнутых (неотвеченных) вызовов.
    • QUEUESRVLEVEL - Заданный уровень обслуживания очереди.
    • QUEUESRVLEVELPERF - Текущий уровень обслуживания очереди.
Пример:

Запишем в БД текущее состояние очереди при поступлении нового вызова в очередь.
Ключи Fcкоманды QUEUEвелят продолжить выполнения диалплана, если вызывающий или вызываемый, соответственно, завершают вызов.

exten => _488X,1,Queue(${EXTEN},Fc)
   same => n,set(QUEUE_VARIABLES(${EXTEN})) 
   same => n,Goto(queue-variables,s,1)

[queue-variables]     
exten => s,1,Noop()    
   same => n,set(REALTIME(queue_adv,queue,${queue},queuesrvlevelperf)=${QUEUESRVLEVELPERF})
   same => n,set(REALTIME(queue_adv,queue,${queue},queueabandoned)=${QUEUEABANDONED})
   same => n,set(REALTIME(queue_adv,queue,${queue},queuecompleted)=${QUEUECOMPLETED})
   same => n,set(REALTIME(queue_adv,queue,${queue},queueholdtime)=${QUEUEHOLDTIME})
   same => n,set(REALTIME(queue_adv,queue,${queue},queuecalls)=${QUEUECALLS})
   same => n,hangup

вывод консоли

вывод консоли

    -- Executing [4884@from-fs-pjsip:2] Set("PJSIP/fs_pjsip-00000028", "QUEUE_VARIABLES(4884)") in new stack
[2016-10-13 15:38:25] WARNING[30354][C-00000029]: pbx_variables.c:1096 pbx_builtin_setvar: Set requires an '=' to be a valid assignment.
    -- Executing [4884@from-fs-pjsip:3] Set("PJSIP/fs_pjsip-00000028", "ARRAY(_queue,queuecalls,queueholdtime,queuecompleted,queueabandoned,queuesrvlevelperf)=4884,0,8,12,1,33.3") in new stack
    -- Executing [4884@from-fs-pjsip:4] Goto("PJSIP/fs_pjsip-00000028", "queue-variables,s,1") in new stack
    -- Goto (queue-variables,s,1)
    -- Executing [s@queue-variables:1] NoOp("PJSIP/fs_pjsip-00000028", "") in new stack
    -- Executing [s@queue-variables:2] Set("PJSIP/fs_pjsip-00000028", "REALTIME(queue_adv,queue,4884,queuesrvlevelperf)=33.3") in new stack
    -- Executing [s@queue-variables:3] Set("PJSIP/fs_pjsip-00000028", "REALTIME(queue_adv,queue,4884,queueabandoned)=1") in new stack
    -- Executing [s@queue-variables:4] Set("PJSIP/fs_pjsip-00000028", "REALTIME(queue_adv,queue,4884,queuecompleted)=12") in new stack
    -- Executing [s@queue-variables:5] Set("PJSIP/fs_pjsip-00000028", "REALTIME(queue_adv,queue,4884,queueholdtime)=8") in new stack
    -- Executing [s@queue-variables:6] Set("PJSIP/fs_pjsip-00000028", "REALTIME(queue_adv,queue,4884,queuecalls)=0") in new stack
    -- Executing [s@queue-variables:7] Hangup("PJSIP/fs_pjsip-00000028", "") in new stack
  == Spawn extension (queue-variables, s, 7) exited non-zero on 'PJSIP/fs_pjsip-00000028'

запись в БД

 select * from queuelog_adv;
+-------+------------+---------------+----------------+----------------+-------------------+
| queue | queuecalls | queueholdtime | queuecompleted | queueabandoned | queuesrvlevelperf |
+-------+------------+---------------+----------------+----------------+-------------------+
| 4884  | 0          | 8             | 12             | 1              | 33.3              |
+-------+------------+---------------+----------------+----------------+-------------------+
1 row in set (0.00 sec)

Asterisk: функции диалплана

Asterisk CDR - Статистика звонков

$
0
0

Asterisk CDR - Статистика звонков

CDR - детализированный отчет вызовов. Лог вызовов через ODBC: MySQL, PostgreSQL, TDS и др. Детализированные отчеты о звонках используются для выставления счетов (биллинг), анализа объемов голосового трафика или для отладки Asterisk.

Call Detail Records

Поля CDR записей

  • R/O - поле только для чтения, нет записи функцией CDR
Option Value/Example Notes
accountcode 54321 Код аккаунта присвоенный абоненту, для биллинга например. По умолчанию не задан.
src 8129981138 Идентификатор вызывающего абонента(Caller ID). Источник вызова, сохраняется автоматически. R/O
dst 111 Пункт назначения вызова.Вызываемое расширение диалплана.
dcontext from-internal Контекст назначения обработки вызова. auto, R/O
clid "Olegus" <81239981138> Caller ID вызывающего абонента в полном формате - "name" <number>. auto, R/O
channel SIP/0004F2040808-a1bc23ef Канал инициатор вызова. A-leg(side).auto, R/O
dstchannel SIP/0004F2046969-9786b0b0 Канал назначения вызова. B-Leg(side).auto, R/O
lastapp Dial Приложениеобработки вызова выполненное последним в канале. auto, R/O
lastdata SIP/0004F2046969,30,tT Данные (например 'Dial(данные)') приложения выполненного последним.auto, R/O
start 2016-05-27 12:02:00 Время поступления вызова вызова. auto, R/O
answer 2016-05-27 12:02:15 Время ответа на вызов абонентом или ответ приложения. auto, R/O
end 2016-05-27 12:08:15 Время окончания соединения.Hangup. auto, R/O
duration 195 Общая продолжительность вызова в секундах.auto, R/O
billsec 180 Продолжительность соединения в секундах с момента ответа(снятия трубки или выполнения команды Answerв диалплане).auto, R/O
disposition ANSWERED Состояние обработки вызова. Может быть: NO ANSWER, FAILED, BUSY, ANSWEREDили UNKNOWN.
amaflags DOCUMENTATION Automatic Message Accounting (AMA) flag. значения: OMIT, BILLING, DOCUMENTATION или Unknown.
userfield custom Пользовательское поле. Пусто по умолчанию, назначается в диалплане. set(CDR(userfield)=<value>). R/W
uniqueid 1288332400.1 Уникальный идентификатор канала. R/O

Помимо поля userfieldвы можете создавать собственные CDR переменные или модифицировать стандартные.

Поля CDR записей могут быть назначены в диалплане Asterisk функцией CDR(). Функция CDR() также может быть использована для установки полей CDR, которые определяются пользователем.

 exten => 177,1,Verbose(Call start time: ${CDR(start)})
       same => n,Set(CDR(userfield)=red_eyes)

Также можно добавить собственные поля:

   exten => 177,1,NoOp()
       same => n,Set(CDR(mycustomfield)=greentea)
       same => n,Verbose(I need some more ${CDR(mycustomfield)})

Если создано кастомное поле CDR, в базе данных тоже потребуется дополнительное поле.

Приложения и функции CDR

Команды и функции диалплана для работы с CDR.

  • ForkCDR: Разделить запись CDR текущего канала .
  • NoCDR: Не сохранять CDR для текущего вызова.
  • ResetCDR: Сбросить CDR для текущего канала.
  • function 'CDR': Задать пользовательское значение CDR в канале. Не работает для Read Onlyполей CDR.

cdr.conf

Содержит общие (глобальные) параметры CDR и конфигурацию бакендов cdr_scvи cdr_radius.
Файл конфигурации cdr.conf

Option Value/Example Notes
enable yes Включить лог CDR. По умолчанию включено.
unanswered no Сохранять или нет информацию о неотвеченных вызовах. Не касается внешних вызовов. О них сохраняется полная информация, независимо от значения данной опции.
endbeforehexten no Закрыть и сохранить запись CDR до выполнения расширения 'h' (hangup). Если значение - 'no', закрытие CDR произойдет, только по завершению всех шагов диалплана. Если - 'yes', при завершении вызова, независимо от того продолжается выполнение диалплана в контексте или нет
initiatedseconds no По умолчанию 'billsec' вычисляется, просто как разница 'end' минус 'answer' в секундах. Включение опции initiatedseconds=yes, укажет Asterisk использовать точные значения до микросекунд
batch no Записывать CDR группой, вместо записи каждого вызова отдельно. Снижает нагрузку на Asterisk. Зависит от перечисленных ниже опций.
size 100 Кол-во строк CDR в буфере, при достижении которого, будет произведена запись.
time 300 Предел времени хранения данных в буфере. Запись будет произведена, независимо от порога строк в буфере, заданного параметром size.
scheduleronly no Set whether CDR batch processing should be done by spawning a new thread, or within the context of the CDR batch scheduler. The default value is no, and we recommend not changing it.
safeshutdown yes Блокировать остановку Asterisk, пока буфер не очищен (данные сохранены).Предотвращает потерю данных, при корректномвыключении Asterisk.

backends

Модули баз данных предоставляют различные бакенды для записи CDR. Все они требуют специфических настроек.

Проверка подключенных backends: CLI>cdr show status

Call Detail Record (CDR) settings
----------------------------------
  Logging:                    Enabled
  Mode:                       Simple
  Log unanswered calls:       No
  Log congestion:             No

* Registered Backends
  -------------------
    mysql
    Adaptive ODBC
    cdr-custom

cdr_adaptive_odbc

Как следует из названия, модуль cdr_adaptive_odbc сохраняет CDR в базу данных через ODBC.
«adaptive» в данном случае означает, что она пытается приспособиться к структуре таблицы: нет статической структуры таблиц, которые должны быть использованы с этим модулем.
Когда модуль загружен (или при перезагрузке), он читает структуру таблицы. Он ищет имя столбца, которому соответствует переменная CDR.
Это относится как к встроенным CDR переменным, так и к пользовательским переменным.
Например, чтобы передавать данные из встроенной переменной CDR channel, в таблице базы данных должен быть столбец channel.

пример:

Добавим в кастомную CDR переменную useragentзначение равное номеру SIP телефона.

exten ⇒ 177,n,Set(CDR(useragent)=${CHANNEL(useragent)})

Чтобы данные переменной useragentбыли занесены через cdr_adaptive_odbc, надо создать столбец useragentв БД.

В файле конфигурации cdr_adaptive_odbc можно создать множество таблиц. Имя секции может быть любым, модуль не использует его. Вот пример простой конфигурации таблицы:

[mytable]
connection = asterisk
table = asterisk_cdr
Option Value/Example Notes
connection asterisk База данных. Параметры соединения настраиваются в Asterisk: res_odbc.conf. Обязательный параметр.
table asterisk_cdr Имя таблицы БД. Обязательное поле.
usegmtime no Использовать время GMT вместо локального времени. По умолчанию -'no'.

В дополнение к вышеперечисленным опциям cdr_adaptive_odbc.conf, можно задать ещё несколько.

Обычно, CDR ищет столбец соответствующий имени переменной. Параметр aliasпозволяет соотнести имя переменной с отличным от него именем столбца.

 alias <CDR variable> => <column name>

Например:

 alias src => source

Также, можно отфильтровать определенное содержимое.

  filter <CDR variable> => <content>

Например:

  filter accountcode => 321

И наконец, можно добавить статические данные, дополнительно к поступающим из CDR.

 static <"Static Content Goes Here"> => <column name>

Например:

static "My Data" => my_id

cdr_csv

Модуль cdr_csvпростейший бакенд, сохраняющий CDR данные в CSVфайл, разделяя запятой.
Конфигурация находится в файле cdr.conf

Для работы не требует конфигурации, тем не менее есть несколько параметров:

Option defaultNotes
usegmtime no Сохранять время GMT вместо локального. По умолчанию - no.
loguniqueid no Сохранять uniqueid переменную CDR. По умолчанию - no
loguserfield no Сохранять userfield CDR переменную . По умолчанию - 'no'.
accountlogs yes Создавать отдельный csv файл для каждой переменной accountcode. По умолчанию - yes.

Порядок CDR переменных в CSV файле созданном модулем CDR_CSV:

<accountcode>,<src>,<dst>,<dcontext>,<clid>,<channel>,<dstchannel>,<lastapp>, 
    <lastadata>,<start>,<answer>,<end>,<duration>,<billsec>,<disposition>, 
    <amaflags>[,<uniqueid>][,<userfield>]
cdr_custom

Данный модуль используется для создания пользовательского (custom) CSV файла.
Конфигурационный файл модуля cdr_custom.conf.
Единственная секция [mappings] может быть использована в этом файле. Шаблон задается с помощью функций диалплана Asterisk.

В следующем примере cdr_customсоздает файл /var/log/asterisk/cdr-custom/Master.csv. Шаблон использует функции function 'CDR'() для извлечения значений и function 'CSV_QUOTE'() обеспечивающую правильное форматирование CSV файла (${CSV_QUOTE(${CDR(lastdata)})}).

[mappings]

Master.csv => ${CSV_QUOTE(${CDR(clid)})},${CSV_QUOTE(${CDR(src)})},
   ${CSV_QUOTE(${CDR(dst)})},${CSV_QUOTE(${CDR(dcontext)})},
   ${CSV_QUOTE(${CDR(channel)})},${CSV_QUOTE(${CDR(dstchannel)})},
   ${CSV_QUOTE(${CDR(lastapp)})},${CSV_QUOTE(${CDR(lastdata)})},
   ${CSV_QUOTE(${CDR(start)})},${CSV_QUOTE(${CDR(answer)})},
   ${CSV_QUOTE(${CDR(end)})},${CSV_QUOTE(${CDR(duration)})},
   ${CSV_QUOTE(${CDR(billsec)})},${CSV_QUOTE(${CDR(disposition)})},
   ${CSV_QUOTE(${CDR(amaflags)})},${CSV_QUOTE(${CDR(accountcode)})},
   ${CSV_QUOTE(${CDR(uniqueid)})},${CSV_QUOTE(${CDR(userfield)})}

cdr_manager

Модуль cdr_manager интерпретирует данные CDR, как события Asterisk Manager Interface (AMI).
Конфигурационный файл - cdr_manager.conf.

Первая секция [general] содержит единственную опцию enabled, по умолчанию = no.

[general]
enabled = yes

Следующая секция cdr_manager.confэто [mappings]. Здесь назначается пользовательская CDR переменная передаваемая менеджеру Asterisk.

<CDR variable> => <Header name>

пример:

 [mappings]
 rate => Rate
 carrier => Carrier

В данной конфигурации заданные переменные появятся как события в интерфейсе менеджера.
Источником событий станет следующий диалплан:

 exten => 177,1,Answer()
     same => n,Set(CDR(rate)=0.03)
     same => n,Set(CDR(carrier)=BВ&С)
     same => n,Hangup()

Следующая команда инициирует вызов:

*CLI> console dial 177@test

asterisk:alsa.conf

В итоге, следующее событие отобразится в Asterisk Call ManagerFinally:

Event: Cdr
Privilege: cdr,all
AccountCode: 
Source: 
Destination: 177
DestinationContext: test
CallerID: 
Channel: Console/dsp
DestinationChannel: 
LastApplication: Hangup
LastData: 
StartTime: 2016-05-23 08:29:21
AnswerTime: 2016-05-23 08:29:22
EndTime: 2016-05-23 08:29:23
Duration: 0
BillableSeconds: 0
Disposition: ANSWERED
AMAFlags: DOCUMENTATION
UniqueID: 1383680051.3
UserField: 
Rate: 0.03
Carrier: BВ&С

cdr_mysql

Файл конфигурации - cdr_mysql.conf
Данный модуль для сохранения CDR в MySQL. В новых системах рекомендуется, по возможности, использовать модуль cdr_adaptive_odbc.

cdr_odbc

Файл конфигурации - cdr_odbc.conf
Модуль для сохранения CDR через ODBC драйвер. В новых системах рекомендуется, по возможности, использовать модуль cdr_adaptive_odbc.

cdr_pgsql

Файл конфигурации - cdr_pgsql.conf
Модуль для сохранения CDR в базу данных PostgreSQL. В новых системах рекомендуется, по возможности, использовать модуль cdr_adaptive_odbc.

cdr_radius

cdr_radiusбакенд связывает CDR с Radius сервером.
Используется конфигурационный файл cdr.confв секции [radius].

Option Value/Default Notes
usegmtimeyesСохранять время GMT вместо локального.
loguniqueidyesСохранять uniqueid переменную CDR.
loguserfieldyesСохранять userfield CDR переменную.
radiuscfg/etc/radiusclient-ng/radiusclient .confМестоположение конфигурационного файла radiusclient-ng.

cdr_sqlite

Устарело. Используйте cdr_sqlite3_custom.

cdr_sqlite3_custom

CDR бакенд для сохранения данных в SQLite БД версии 3. База данных создается модулем, как /var/log/asterisk/master.db
Данный модуль использует конфигурационный файл cdr_sqlite3_custom.conf.
Конфигурация указывает имя таблицы CDR и пользовательские переменные, если требуется. <spoiler>

[master]

table = cdr

;
; List the column names to use when inserting CDRs.
;
columns => calldate, clid, dcontext, channel, dstchannel, lastapp, lastdata,
    duration, billsec, disposition, amaflags, accountcode, uniqueid, userfield, 
    test


;
; Map CDR contents to the previously specified columns.
;
values => '${CDR(start)}','${CDR(clid)}','${CDR(dcontext)}','${CDR(channel)}',
    '${CDR(dstchannel)}','${CDR(lastapp)}','${CDR(lastdata)}','${CDR(duration)}',
    '${CDR(billsec)}','${CDR(disposition)}','${CDR(amaflags)}',
    '${CDR(accountcode)}','${CDR(uniqueid)}','${CDR(userfield)}','${CDR(test)}'
In the cdr_sqlite3_custom.conf file, the contents of the columns and values options must each be on a single line.

</spoiler>

cdr_syslog

Сохраняет CDR используя syslog linux. Чтобы включить данную возможность, сперва добавьте запись в конфиг syslog, /etc/syslog.conf.
Например:

local.*      /var/log/asterisk/asterisk-cdr.log

Конфигурационный файл Asterisk - cdr_syslog.conf:

[cdr]

facility = local
priority = info
template = "Вызов от ${CDR(src)}"

пример записи syslog, для приведенной конфигурации:

 cat /var/log/asterisk/asterisk-cdr.log

Sep 17 18:15:57 pbx cdr: «Вызов от 8129981138»

cdr_tds

Конфигурационный файл - cdr_tds.conf

cdr_tdsмодуль использует FreeTDS библиотеку для отправки CDR Microsoft SQL Server или Sybase БД.
FreeTDS возможно использовать с unixODBC, так что конфигурация может быть сделана и в cdr_adaptive_odbc.

Файлы конфигурации Asterisk

Asterisk: настройка и установка

Asterisk: extconfig.conf - Realtime

$
0
0

Asterisk: extconfig.conf - Realtime

Реалтайм Архитектура Asterisk - набор драйверов и функций для конфигурации в режиме реального времени. Существует два типаконфигурации - статический и динамический:

  1. Статический хранит конфигурации в БД, как конфигурационные файлы и также обновляет данные при перезагрузке модулей.
  2. Динамический используется для создания и обновления объектов в режиме реального времени, при совершении вызовов.

Оба режима могут использоваться одновременно.

Реалтайм архитектура поддерживает разные типы хранилищ. В данный момент, большинство драйверов основаны на SQL, но есть и поддержка других методов, например LDAP и CURL.

В данный момент поддерживаются следующие бэкенды:

  • ODBC: интегрированная в Asterisk UnixODBC подсистема поддерживает множество разных БД.
  • MySQL: нативная поддержка MySQL, интегрирована в Asterisk
  • PostgreSQL: нативная поддержка PostgreSQL, интегрирована в Asterisk
  • SQLite и SQLite3: для небольших БД можно использовать SQLite3.
  • LDAP: получайте учетные данные из LDAP директорий.
  • cURL: Получайте и отправляйте данные веб приложениям и связанным с ними БД.

Статическая конфигурация

Использует базы данных, как хранилище статических конфигураций. Конфигурации обновляются при загрузке модулей, как и в случае с конфигурационными файлами.

Все настройки записываются под одной категорией - [settings]

Конфиг ⇒ Драйвер БД, имя категории из конфига драйвера res_<driver>, таблица базы данных. Если таблица не указана, будет использовано имя конф. файла.

file.conf => driver,category DB res_....conf[,table[,priority]]

Пример записи для загрузки 'queues.conf' через ODBC и 'extensions.conf' из SQlite:

 queues.conf => odbc,asterisk,ast_config
 extensions.conf => sqlite,asterisk,ast_config

Следующие конфиги НЕ МОГУТбыть использованы в реалтайм хранилище:

  • asterisk.conf
  • extconfig.conf (данный файл)
  • logger.conf

Также, некоторые конфиги не загрузятся из Realtime хранилища, если драйвер БД (хранилища) не был, ранее, загружен оператором 'preload' в конфиге 'modules.conf':

  • manager.conf
  • cdr.conf
  • rtp.conf
  • features.conf
  • cel.conf
  • indications.conf

Списки контроля доступа (ACL) также не смогут быть использованы в manager.conf без предварительной загрузки драйвера хранилища. /etc/asterisk/modules.conf

[modules]
preload => res_odbc.so
preload => res_config_odbc.so

Структура таблицы статической базы данных

Структура статической таблицы БД реалтайм архитектуры Asterisk значительно отличается от, собственно, Realtimeтаблиц. Она предполагает единую схему для всех подключаемых конфигов.

static ast_config.sql

create table ast_config (
 id int(11) NOT NULL auto_increment,
 cat_metric int(11) NOT NULL default '0',
 var_metric int(11) NOT NULL default '0',
 commented int(11) NOT NULL default '0',
 filename varchar(128) NOT NULL default '',
 category varchar(128) NOT NULL default '',
 var_name varchar(128) NOT NULL default '',
 var_val varchar(128) NOT NULL default '',
 PRIMARY KEY (id),
 KEY `filename_comment` (`filename`,`commented`)
)ENGINE = InnoDB;
  • 'cat_metric' и 'var_metric' определяют порядок (очередность). 'cat_metric' во всей конфигурации, а 'var_metric', внутри категории. Метрика с меньшим значением представляется раньше, метрика с большим позднее. На примере порядка выбора кодеков в sip.conf, это будет работать так: 'disallow=all' - метрика 0 представляется 1-й, затем 'allow=alaw' - метрика 1 и далее 'allow=g729'
  • Если поле 'commented' не равно '0', строка считается закомметированной и игнорируется.
  • `filename` - Конфиг которому предназначены данные (например extensions.conf).
  • 'category' - контекст диалплана или категория конфига.
  • `var_name` - опция (параметр) конфига, напрмер extenв диалплане.
  • `var_val` - собственно данные, после знака '⇒' в конфиге.

Пример статической конфигурации extensions.conf

extconfig.conf

 extensions.conf => odbc,asterisk,ast_config

Опции и диалплан в extensions.conf:

[general]
static=yes

[globals]
RECDIR=/mnt/record	; Директория записи

[from-internal]
exten => _9X.,1,Dial(PJSIP/${EXTEN:1}@trunk,60,trU(sub-monitor,s,1)
exten => _9X.,n,Hangup
[sub-monitor]
exten => s,1,Noop(**rec to mount**)
exten => s,n,MixMonitor(${RECDIR}/${UNIQUEID}.wav)
exten => s,n,Return

В таблице ast_config будут представлены так:

MariaDB [asterisk]> select * from ast_config;
+----+------------+------------+-----------+-----------------+---------------+----------+--------------------------------------------------------------------+
| id | cat_metric | var_metric | commented | filename        | category      | var_name | var_val                                                            |
+----+------------+------------+-----------+-----------------+---------------+----------+--------------------------------------------------------------------+
|  1 |          0 |          0 |         0 | extensions.conf | general       | static   | yes                                                                |
|  2 |          1 |          0 |         0 | extensions.conf | globals       | RECDIR   | /mnt/record                                                        |
|  3 |          2 |          0 |         0 | extensions.conf | from-internal | exten    | _9X.,1,Dial(PJSIP/${EXTEN:1}@siptrunk,60,trU(sub-monitor,s,1) |
|  4 |          2 |          1 |         0 | extensions.conf | from-internal | exten    | _9X.,n,Hangup                                                 |
|  5 |          3 |          0 |         0 | extensions.conf | sub-monitor   | exten    | s,1,Noop(**rec to mount**)                                         |
|  6 |          3 |          1 |         0 | extensions.conf | sub-monitor   | exten    | s,n,MixMonitor(${RECDIR}/${UNIQUEID}.wav)                          |
|  7 |          3 |          2 |         0 | extensions.conf | sub-monitor   | exten    | s,n,Return                                                         |
+----+------------+------------+-----------+-----------------+---------------+----------+--------------------------------------------------------------------+
7 rows in set (0.00 sec)

Реалтайм конфигурация

Работа в режиме реального времени. Любые изменения в реалтайм хранилище, используются системой при новых вызовах, без перезагрузки модулей и применения настроек. Данные реалтайм хранилищ, могут модифицироваться во время выполнения диалплана, при помощи встроенных функций.

Конфигурация вызывает заданное семейство реалтайм в формате: драйвер базы данных, имя категории из конфига драйвера res_<driver>, таблица БД, приоритет (если таблица не задана, будет использовано имя семейства (family)): family => Driver DB,category DB res_...conf[,Table][,prioritet]

example => odbc,asterisk,alttable,1
example => mysql,asterisk,alttable,2
example2 => ldap,"dc=oxymium,dc=net",example2

Приоритет - необязательный параметр , применяется в случае ошибки получения данных. Если соединению с приоритетом 1 не удалось получить данные, будет произведена попытка получить данные через соединение с приоритетом 2. Приоритеты должны быть упорядочены: 1,2,3, но не 1,2,4

Доступные бакенды

  • odbc … res_config_odbc
  • sqlite … res_config_sqlite
  • sqlite3 … res_config_sqlite3
  • pgsql … res_config_pgsql
  • curl … res_config_curl
  • ldap … res_config_ldap
  • mysql … res_config_mysql (через add-ons в menuselect)

В конфигах res_pgsqlи res_config_sqliteБД назначаются в категории [general] и всегда используется эта БД. В res_config_mysqlБД тоже назначается в секции [general], но можно указать несколько баз данных (см. конфиг mysql)

Использование и подключение

Созданные семейства реалтайм можно подключать директивой switch ⇒ в диалплане, как в случае с extensions.conf:

 [default]
 switch => Realtime/mycontext@extensions 

или вызывать при помощи специальных функций диалплана (в описании функций, можно найти примеры):

пример extconfig.conf
  • iaxusers ⇒ odbc,asterisk
  • iaxpeers ⇒ odbc,asterisk
  • sippeers ⇒ odbc,asterisk - Asterisk 13 RealTime SIP
  • sipregs ⇒ odbc,asterisk ; (avoid sipregs if possible, e.g. by using a view)
  • ps_endpoints ⇒ odbc,asterisk
  • ps_auths ⇒ odbc,asterisk
  • ps_aors ⇒ odbc,asterisk
  • ps_domain_aliases ⇒ odbc,asterisk
  • ps_endpoint_id_ips ⇒ odbc,asterisk
  • voicemail ⇒ odbc,asterisk
  • extensions ⇒ odbc,asterisk
  • extensions ⇒ mysql,general,extensions - Asterisk Realtime Extensions with MySQL
  • meetme ⇒ mysql,general
  • queues ⇒ odbc,asterisk
  • queue_members ⇒ odbc,asterisk
  • queue_rules ⇒ odbc,asterisk
  • acls ⇒ odbc,asterisk
  • musiconhold ⇒ mysql,general
  • queue_log ⇒ mysql,general
  • queue_log ⇒ odbc,asterisk,queue_log - Asterisk: queue_log в MySQL через unixODBC

Файлы конфигурации Asterisk

Asterisk: cdr.conf

$
0
0

Asterisk: cdr.conf

cdr.conf - Общие (глобальные) настройки детализированного отчета о звонках и выбора бэкендов.

Asterisk Call Detail Record engine configuration

CDR или Детализированный Отчет Вызовов - сервис обеспечивающий сохранение информации о совершенных вызовах. Информация может быть записана в базы данных, файлы и другие формы хранения данных. Используется для биллинга, предотвращения мошенничества, Системы Оперативно Розыскных Мероприятий (СОРМ), оценки качества обслуживания и тд

[general]

Использовать или нет сохранение CDR. Если установлено 'no', перекрывает любые параметры загрузки CDR модулей. По умолчанию 'yes

 enable=yes

Указывает сохранять или нет информацию о неотвеченных вызовах. Если установлено 'yes', то информация о вызове будет сохранена, независимо от того ответила сторона B или нет. Если установлено 'no', то информация о вызове сохранена не будет. Это не касается вызовов через внешние исходящие линии (транки). Эти вызовы всегда будут сохраняться, независимо от статуса. Это нормальное поведение.

 unanswered = no

Сохранять или нет информацию о вызовах отвергнутых из-за перегрузки каналов (congestion). по умолчанию 'no'

 congestion = no

Обычно запись не сохраняется пока все расширения канала не будут выполнены. Включение данной опции позволит закрыть CDR до выполнения расширения 'h', и момента когда положили трубку. Однако параметры CDR - 'end' и 'billsec' будут заданы на момент выполнения расширения 'h' (требует уточнения) По умолчанию 'no'.

 endbeforehexten=no

По умолчанию 'billsec' вычисляется, просто как разница 'end' минус 'answer' в секундах. Включение опции initiatedseconds=yes, укажет Asterisk использовать точные значения до микросекунд. В случае если часть в микросекундах 'end', больше чем часть в микросекундах 'answer', разница округлится до секунды в большую сторону и наоборот. По умолчанию «no».

 initiatedseconds=no

Групповой режим CDR сохраняет данные в буфер, чтобы потом залить в хранилище группой, что уменьшает нагрузку на сервер. Но может привести к потере данных при внезапной перезагрузке. По умолчанию «no».

 batch=no

Укажите максимальное кол-во значений в буфере, прежде чем данные будут залиты в хранилище. Работает если 'batch=yes'. По умолчанию 100.

 size=100

Укажите максимальную продолжительность времени, в миллисекундах, до освобождения буфера. Будет выполнено по истечению заданного времени, несмотря на значение 'size'. По умолчанию 300 (5 минут).

 time=300

Постить все в едином потоке планировщика Asterisk (scheduleronly=yes) или для каждой партии создавать новый поток (scheduleronly=no). Для небольших партий (до size=10) используйте только планировщик. Для больших новые потоки - scheduleronly=no. По умолчанию 'no'.

 scheduleronly=no

Блокировать выключение Asterisk до освобождения буфера. По умолчанию «yes».

  safeshutdown=yes

CDR "BACKEND"

Вы можете выбрать любой из нескольких бакендов для соранения данных. Возможно, также использовать все бакенды одновременно. В конфигурационных файлах, поставляемых с Asterisk для примера, выбран только cdr-csv формат.

Бакенды:

  • cdr_custom.conf - Настройка полей и схемы для файла csv CDR/
  • cdr_odbc.conf - Соединение черед ODBC драйвер.
  • cdr_pgsql.conf - Соединения с PostrgreSQL.
  • cdr_sqlite3_custom.conf - Соединение с sqlite3.
  • cdr_tds.conf - Соединение с Microsoft SQL при помощи библиотеки FreeTDS.
  • cdr_mysql.conf - Нативное соединение с БД MySQL.
  • cdr_syslog.conf - Лог при помощи службы журналирования linux.
  • radius настраивается в этом же файле (cdr.conf) - Сохранение данных через radius-server

Вспомогательные модули, кастомизация полей:

Для компиляции модулей, требуется чтобы их зависимости были установлены до выполнения команды configure. Воспользуйтесь командой make menuselectи в разделе «Call Detail Recording» убедитесь, что требуемые вам модули имеют свои зависимости и будут скомпилированы. В приведенном ниже примере видно, что для cdr_pgsql условия не выполнены, и модуль не может быть установлен.

        **************************************************
           Asterisk Module and Build Option Selection
        **************************************************

                      Press 'h' for help.
                        --- Core ---
                     [*] cdr_adaptive_odbc
                     [*] cdr_custom
                     [*] cdr_manager
                     [*] cdr_syslog
                       --- Extended ---
                     [*] cdr_csv
                     [*] cdr_odbc
                     XXX cdr_pgsql
                     XXX cdr_radius
                     [*] cdr_sqlite3_custom
                     XXX cdr_tds
                      --- Deprecated ---
                     XXX cdr_sqlite

Модуль cdr_mysql поставляется как «Add-ons» согласно требованиям лицензии, к тому же объявлен устаревшим и вместо него рекомендуется использовать cdr_odbc, что однако не мешает им пользоваться при надобности или из лени.

        **************************************************
           Asterisk Module and Build Option Selection
        **************************************************
                    --- Extended ---
                    XXX chan_mobile
                    [*] chan_ooh323
                    [*] format_mp3
                    [*] res_config_mysql
                   --- Deprecated ---
                    [ ] app_mysql
                    [*] cdr_mysql

Кроме общих (глобальных) настроек в файле cdr.conf конфигурируются сохранение записей CDR в csv и radius:

[csv]
usegmtime=yes     ; лог дата/время in GMT. по умолчанию "no"
loguniqueid=yes   ; лог uniqueid.  по умолчанию "no"
loguserfield=yes  ; лог user field.  по умолчанию "no"
accountlogs=yes   ; create separate log file for each account code. Default is "yes"
newcdrcolumns=yes ; Enable logging of post-1.8 CDR columns (peeraccount, linkedid, sequence).
                  ; Default is "no".

[radius]
usegmtime=yes     ;log date/time in GMT
loguniqueid=yes   ;log uniqueid
loguserfield=yes  ;log user field
                  ;Set this to the location of the radiusclient-ng configuration file
                  ;The default is /etc/radiusclient-ng/radiusclient.conf
radiuscfg => /usr/local/etc/radiusclient-ng/radiusclient.conf

Файлы конфигурации Asterisk

Asterisk: queue_log в MySQL через unixODBC

$
0
0

Asterisk: queue_log в MySQL через unixODBC

Realtime лог очереди в нативную базу данных Asterisk.

SQL таблица лога очереди

Создадим таблицу в БД asterisk.

CREATE TABLE IF NOT EXISTS `queue_log` (
`time` varchar(32) DEFAULT NULL,
`callid` char(64) DEFAULT NULL,
`queuename` char(64) DEFAULT NULL,
`agent` char(64) DEFAULT NULL,
`event` char(32) DEFAULT NULL,
`data` char(64) DEFAULT NULL,
`data1` char(64) DEFAULT NULL,
`data2` char(64) DEFAULT NULL,
`data3` char(64) DEFAULT NULL,
`data4` char(64) DEFAULT NULL,
`data5` char(64) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Выключение текстового лога

Если используется стандартное имя queue_logреалтайм семейства (realtime family)
и настроено соединение с базой данных, Asterisk сам создаст таблицу queue_log,
при отключении текстового лога и перезагрузке модуля logger:

*CLI> module reload logger
Module 'logger' reloaded successfully.
 Asterisk Queue Logger restarted

в файле /etc/asterisk/logger.confвыключите лог в файл:

 queue_log_to_file = no

в файле /etc/asterisk/asterisk.conf*

 [options]
 queue_adaptive_realtime = yes

* - спорная опция

Конфигурация realtime family

в файле /etc/asterisk/extconfig.conf

 queue_log => odbc,asterisk,queue_log

где 'asterisk' ваш db конфиг в /etc/asterisk/res_odbc.conf:

[asterisk]
enabled => yes
dsn => asterisk
username => dbuser
password => dbpass
pre-connect => yes

Расшифровка событий очереди (queue) в логе.

eventdata1data2data3
ABANDONpositionorigpositionwaittime
AGENTDUMP
AGENTLOGINchannel
AGENTCALLBACKLOGINexten@context
AGENTLOGOFFchannellogintime
AGENTCALLBACKLOGOFFexten@contextlogintimereason
COMPLETEAGENTholdtimecalltimeorigposition
COMPLETECALLERholdtimecalltimeorigposition
CONFIGRELOAD
CONNECTholdtimeuniqueid
ENTERQUEUEurlcalleridenterposition
EXITWITHKEYkeyposition
EXITWITHTIMEOUTposition
QUEUESTART
SYSCOMPAT
TRANSFERextension,context
Другие страницы с тегом 'queue':

VTiger 6 CRM

$
0
0

VTiger 6 CRM

  • vTiger CRM — система управления взаимоотношениями с клиентами (CRM) с открытым кодом (Open Source).
  • vTiger CRM построен на LAMP (Linux, Apache, MySQL, PHP).
  • Новый коннектор для связи с Asterisk написан на Java и работает значительно стабильнее, чем в версии 5.4
  • Реализована интеграция с Asterisk версии 1.8 (Asterisk Manager Interface 1.1).
  • На официальном сайте заявлена также возможность интеграции с Plivo и Twilio.

VTiger6 Asterisk интеграция

Всплывающие окно входящего вызова (call popups)

При входящем вызове, когда вызов поступает на телефон привязанный к аккаунту агента VTiger,
всплывает окно сообщающее о вызове и предлагающее создать полноценный Контактили Обращение.

vtiger pbxmanager incoming call

Детализированный отчет о звонках

Ведется полный отчет о совершенных вызовах и запись телефонных переговоров.
Доступна функция Click-To-Call. Если кликнуть на сохраненный номер в отчете о звонках или Контакте, Организациии т.д.,
VTiger вызовет сначала внутренний номер агента, привязанный к аккаунту VTiger,
а когда агент поднимет трубку произведет набор внешнего номера.

vtiger cdr

Подробная информация о вызове.

vtiger pbxmanager detail call

Сохраненный контакт.

Каждую запись в Vtiger легко найти и отредактировать.
Благодаря продуманной структуре вся связанная с клиентом информация, также будет под рукой.
Чтобы вы ни искали - Обращения, Контакты, Организации или Контрагентов, вы увидите связанные с ними сообщения емайл, сделки и заметки.

vtiger contact

Vtiger CRM мобильные приложения

Взаимодействуйте с вашими клиентами, где бы вы ни были.

Мобильные приложения на IPhone, iPad и Android реализуют множество функций:

  • Просмотр, редактирование и создание CRM записей.
  • Доступ оффлайн к информации.
  • Автоматическое добавление мобильных вызовов в Контакты (Android)
  • Настройка мобильных оповещений и задач.
  • Импорт Контактов из сфотографированных визитных карточек.

iphoneipadandroid

Расширения

Asterisk + VTigerCRM 6.1
  • vTiger CRM — система управления взаимоотношениями с клиентами (CRM) с открытым кодом (Open Source).
  • vTiger CRM построен на LAMP (Linux, Apache, MySQL, PHP).
  • Новый коннектор для связи с Asterisk написан на Java и работает значительно стабильнее, чем в версии 5.4
  • Реализована интеграция с Asterisk версии 1.8 (Asterisk Manager Interface 1.1).

Читать дальше...


VTiger FreeSWITCH

FreePBX 13 Queues

$
0
0

FreePBX 13 Queues

autofill strategy penalty timeout Очереди позволяют управлять большим количеством входящих вызовов и создать Колл Центр.

General Settings

Queue number

Используйте этот номер для звонка в очередь, или переведите входящий звонок на этот номер, чтобы поставить его в очередь.

Агенты (операторы Call центра) будут набирать этот номер и '*' чтобы подключиться к очереди, и этот же номер и '**' чтобы отключиться.

Например, если номер очереди 123:

  • 123* = подключиться
  • 123** = отключиться

Queue Name

Имя очереди для идентификации в веб интерфейсе. Не используется для вызовов.

Queue Password

Можно ограничить доступ в очередь для абонентов и операторов Call центра паролем. Эта опция необязательна.

Generate Device Hints

YesNo

Asterisk "Hints"

Тонкий намек, на толстые обстоятельства.

Asterisk реализует механизм SUBSCRIBE/NOTIFY для уведомления о событиях при помощи SIP сообщений. Asterisk осведомлен о состоянии различных объектов, находящихся в его ведении: телефонов, голосовой почты, очередей и др. Состояние расширения Asterisk это не тоже самое, что состояние устройства (device state). Протокол SIP рассылая сообщения SUBSCRIBE/NOTIFY информирует о состоянии устройства. Чтобы информировать о состояниях Extensions Asterisk, используется понятие «hint», которое при помощи диалплана сопоставляет устройство и расширение (extensions) Asterisk:
[hints]
exten ⇒ расширение,hint,устройство

[subscribers]
exten ⇒ 2777,hint,PJSIP/777

В примере, SIP устройство PJSIP/2777 сопоставляется с расширением 2777.

[subscribers]
exten ⇒ Таня,hint,PJSIP/2777

В примере, SIP устройство PJSIP/2666 сопоставляется с именем 'Таня'.

Если этот параметр включен, индивидуальные hints будут сгенерированы для каждого устройства, которое назначено для обслуживания очереди. Hints используются в сочетании с программируемыми BLF кнопками телефона, чтобы при входе или выходе из обслуживания очереди генерировать статус текущего состояния для BLF. Формат hints.

*45ddd*qqq

где *45 код переключения по умолчанию, ddd - номер устройства и qqqномер очереди.

Call confirm

Требовать подтверждения от оператора для приема вызова . YesNo

Call Confirm Announce

Сообщение будет воспроизведено оператору очереди для оповещении о поступлении звонка и будет запрошено подтверждение приема перед ответом. По умолчанию воспроизводится стандартное сообщение подтверждения (если оператор доступен не через сервис Follow-Me) или альтернативное сообщение, если оператор доступен через Follow-Me. Установленное здесь сообщение переопределяет все остальные. Для добавления сообщений используйте раздел System Recordings.

CID name prefix

Добавляет префикс к callerid «name» поступившего вызова. Если, например, агент обслуживает несколько очередей, обозначить из какой очеререди поступил вызов.

Wait Time Prefix

YesNo

Alert Info

Добавить информацию в Alert-Info Header для Snom и других телефонов поддерживающих эту функцию.

Restrict Dynamic Agents

Ограничить регистрацию динамических агентов только списком Динамических агентов. Если установлено в 'yes', то динамические агенты не указанные списке не смогут подключится к обслуживанию очереди. YesNo

Agent Restrictions

Если установлено в значение 'Звонить как набрано' то очередь совершает вызов так, как будто бы это просто другой пользователь. Но тогда все установки Следуйте сюда и Перенаправление звонка актуальные для этого внутреннего номера будут уводить все вызовы из очереди согласно этим значениям. Это поведение является стандартным для последних версий FreePBX. Если установлено в значение 'Без функций Следуйте сюда или Перенаправление' то все агенты (внутренние номера в системе) будут ограничены только внутренним номером. Установки Следуйте сюда и Перенаправление звонка будут игнорироваться. Другие же агенты будут набираться обычным образом. Это поведение аналогично тому как проходит звонок в группах вызова. Если установлено в значение 'Только внутренние номера' то вызовы из очереди будут происходить так же, как при значении 'Без функций Следуйте сюда или Перенаправление'. Любые другие не существующие номера, указанные здесь как агенты, будут игнорироваться. Нет проверки на логические ошибки, если указан номер в качестве статического или динамического агента. Вызов из очереди будет просто блокироваться, если такое будет происходить. Для динамических агентов смотрите 'Фильтр регулярных выражений для операторов' для создания разрешительных шаблонов.

Call as DialedNo Follow-MeCall Forward Extensions Only


en

en

When set to 'Call as Dialed' the queue will call an extension just as if the queue were another user. Any Follow-Me or Call Forward states active on the extension will result in the queue call following these call paths. This behavior has been the standard queue behavior on past FreePBX versions. When set to 'No Follow-Me or Call Forward', all agents that are extensions on the system will be limited to ringing their extensions only. Follow-Me and Call Forward settings will be ignored. Any other agent will be called as dialed. This behavior is similar to how extensions are dialed in ringgroups. When set to 'Extensions Only' the queue will dial Extensions as described for 'No Follow-Me or Call Forward'. Any other number entered for an agent that is NOT a valid extension will be ignored. No error checking is provided when entering a static agent or when logging on as a dynamic agent, the call will simply be blocked when the queue tries to call it. For dynamic agents, see the 'Agent Regex Filter' to provide some validation.


Ring Strategy

  • ringall: вызывать всех агентов одновременно, пока кто-нибудь не ответит.
  • leastrecent: вызывать агента, который меньше всех вызывался в последнее время.
  • fewestcalls: вызвать агента с наименьшим количеством отвеченных вызовов.
  • random: случайный выбор агента
  • rrmemory: по кругу, начиная со следующего после ответившего последним.
  • rrordered: то же, что и rrmemory, только в порядке заданном в конфиге.
  • linear: взывать агентов в порядке перечисления, для динамических, в по времени регистрации.
  • wrandom: случайно, используя пенальти.

Autofill

Если авто-заполнение включено, звонок с любой позиции в очереди, пытается вызвать свободных агентов в зависимости от стратегии вызова.
Если выключено, только вызов находящийся на первом месте в очереди подается агентам, пока кто-то из них не ответит, остальные же вызовы ожидают первой позиции в очереди и только тогда подаются на свободных операторов.
YesNo

Очевидно, что включение данной опции, позволит сократить время ожидания в очереди, за счет периода, с момента начала посылки первого вызова операторам и ответа на него.
В больших очередях, с множеством вызовов, это может быть очень существенно.

Skip Busy Agents

Если установлено в 'Да', то занятые операторы будут пропущены, если их параметр Call Waiting выключен в настройках екстеншена и на аппарате (софтфоне) оператора. Если установлено в Да + () то для очереди применяется опция 'звонки в обработке=нет', то есть проверяется статус телефонов операторов очереди. Таким образом отслеживаются удалённые операторы очереди (например на мобильных или домашних телефонах, подключенных из городской телефонной сети, или с использованием опции Следуйте сюда) так же, как локальные операторы очереди, таким образом FreePBX не будет посылать удалённому оператору вызов из очереди, если обнаруживает текущее соединение. Если установлено в значение Только звонки очереди (звонки в обработке=нет), то для очереди также применяется опция 'звонки в обработке=нет', но статус телефонов операторов очереди не проверяется. Это поведение ограничивает возможности операторов, обслуживающих более, чем одну очередь по приёму только одного звонка. Если, например, оператор совершает исходящий звонок, то очередь предполагает, что оператор свободен, и всё равно направляет звонок ему, так как статус телефонов не мониторится.

Если установлено в Только звонки очереди (звонки в обработке=нет) то чаще это даёт негативный эффект. Оператор, делающий перевод звонка например, будет оставаться недоступным для всех вызовов очереди до тех пор, пока входящий вызов будет завершён, потому что он выглядит для очереди действующим КРОМЕ случая, когда значение Ограничения агентов установлено в 'Только внутренние номера'.

en

en

When set to 'Yes' agents who are on an occupied phone will be skipped as if the line were returning busy. This means that Call Waiting or multi-line phones will not be presented with the call and in the various hunt style ring strategies, the next agent will be attempted. When set to 'Yes + (ringinuse=no)' the queue configuration flag 'ringinuse=no' is set for this queue in addition to the phone's device status being monitored. This results in the queue tracking remote agents (agents who are a remote PSTN phone, called through Follow-Me, and other means) as well as PBX connected agents, so the queue will not attempt to send another call if they are already on a call from any queue. When set to 'Queue calls only (ringinuse=no)' the queue configuration flag 'ringinuse=no' is set for this queue also but the device status of locally connected agents is not monitored. The behavior is to limit an agent belonging to one or more queues to a single queue call. If they are occupied from other calls, such as outbound calls they initiated, the queue will consider them available and ring them since the device state is not monitored with this option.

WARNING: When using the settings that set the 'ringinuse=no' flag, there is a NEGATIVE side effect. An agent who transfers a queue call will remain unavailable by any queue until that call is terminated as the call still appears as 'inuse' to the queue UNLESS 'Agent Restrictions' is set to 'Extensions Only'.

NoYesYes + (ringinuse=no)Queue calls only (ringinuse=no)

Queue Weight

Чем меньше число, тем выше приоритет очереди. Для агентов обслуживающих более одной очереди, это означает что вызов из такой очереди имеет больший приоритет. По умолчанию - 0, то есть не использовать вес очереди.

Music on Hold Class

Музыка на Удержании проигрывается ожидающему абоненту, пока он ожидает ответа оператора. Унаследованный (тот же, что на входящем маршруте), По Умолчанию (в системе) и Нет, выбор дефолтных значений. Если у вас настроены пользовательские классы MOH, они тоже появятся в списке.

  • MoH Only - воспроизводить музыку пока агент не ответит.
  • Agent Ringing - Музыка играет, пока вызов не подается на телефон агента, в этот момент абонент слышит гудки. Если агент не отвечает, снова проигрывается музыка.
  • Ring Only - всегда гудки.

MoH OnlyAgent RingingRing Only

Join Announcement

Объявление проигрывается перед попаданием абонента в очередь. Если есть свободные агенты, объявление может быть пропущено, если выбрать опцию 'When No Free Agents', т.е. проигрывать, только если нет свободных агентов. Записи объявлений можно добавить в модуле System Recordings.

AlwaysWhen No Free AgentsWhen No Ready Agents

Call Recording

Записывать входящие вызовы. Если выбрано 'never' запись по запросу (on demand) недоступна.

ForceYesDon't CareNoNever

Mark calls answered elsewhere

Помечать отклоненные вызовы, как отвеченные. (Чтобы на телефоне не было сообщений о пропущенных вызовах)

YesNo

Fail Over Destination

Назначение по неответу и истечению таймаута очереди, если задано.

Параметры времени и операторов

Max Wait Time

Максимальное время нахождения в очереди. По его истечению, будет выполнен пункт Fail Over Destinationпо умолчанию неограничено.

Max Wait Time Mode

Параметры таймаута звонка в очереди.

  • В режиме 'Ограничено', когда истек интервал 'Максимальное время ожидания', вызов будет извлечен из очереди.
  • В режиме 'Неточный' текущий оператор будет вызван, пока истечет таймаут вызова оператора в очереди, после этого вызов будет извлечен из очереди.

Читайте подробнее о таймаутах в очереди Queues.conf - Timeout

<wrap round notice>Ограничено</wrap><wrap round box>Неточный</wrap>

Agent Timeout

Время в секундах, в течение которого вызов будет поступать на телефон оператора, после которого наступит таймаут Retry, а затем вызов снова будет подан операторам в зависимости от заданной стратегииочереди.

Agent Timeout Restart

Этот параметр устанавливает время повторного вызова оператора, который оказался принять звонок из очереди. Это может быть полезно, если операторы очереди имеют возможность отказа приема вызова из очереди.

ДаНет

Retry

Через сколько секунд будет повторена попытка позвонить снова на все телефоны. Выбирая вариант «Без повторений» звонок будет направлен из очереди по назначению при неответе. Звонок перенаправится туда после тайм-аута у первого оператора, переход на второго оператора не произойдёт.

Wrap-Up-Time

Указывает сколько секунд агент останется свободным после окончания очередного вызова из очереди. Если используете Asterisk 1.6 и выше, Вы также можете установить параметр 'Применить передышку для всех очередей' на странице 'Дополнительные настройки' и операторы, работающие в нескольких очередях будут иметь перерыв после вызова в любой очереди.

Member Delay

Данный параметр позволяет установить задержку в секундах между ответом оператора и соединением с вызывающим абонентом (или оповещением).

Agent Announcement

Оповещение, воспроизводимое оператору, перед соединением с вызывающим абонентом

Для добавления оповещения используйте раздел System Recordings.

Report Hold Time

Если хотите сообщать позвонившему время ожидания прежде чем его соединят с оператором - установите Да.

ДаНет

Auto Pause

Поставить агента на паузу в данной очереди (или во всех очередях обслуживаемых оператором), если тот не ответил на вызов . Уточните данное поведение при помощи других настроек: Auto Pause Delay, Auto Pause Busy/Unavailable.

  • Yes in this queue only - только в данной очереди
  • Yes in all queues - во всех очередях
  • Нет - не использовать автопаузу

Yes in this queue onlyYes in all queuesНет

Auto Pause on Busy

Поставить агента на паузу в данной очереди если он занят.

ДаНет

Auto Pause on Unavailable

Поставить агента на паузу в данной очереди если он недоступен.

ДаНет

Auto Pause Delay

Отложить постановку на паузу на заданное время. Если за это время агент ответит на вызов, пауза отменяется, если нет, то применяется. По умолчанию 0

Параметры емкости очереди

Max Callers

Максимально число ожидающих в очереди (0 - неограниченно) 0

Join Empty

Если установлено Да, новый вызов поступает в очередь независимо, есть в ней пользователи способные принять вызов, если нет - сразу используется Fail Over Destination.
Возможные значения:

  • Да - Вызов всегда поступает в очередь.
  • Ограничено - Такой же режим, но более ограниченный. Если нет операторов, которые могли бы обработать вызов, он не помещается в очередь. Если операторы имеются в очереди, то вызов поступает в очередь, даже если операторы заняты и не могут принять вызов непосредственно.
  • Строго ограниченный - В этом режиме звонок будет помещен в очередь, в случае есть непосредственно доступные операторы. Операторы, занятые другими вызовами, считаются недоступными. Если доступных операторов нет, звонок в очередь не поступает.
  • НетВызовы не будут поступать в очередь если все операторы приостановлены, находятся в недоступном режиме, или имеют доступность (penalty value) меньше, чем QUEUE_MAX_PENALTY. На текущий момент не устанавливается в номерном плане FreePBX.
  • НеточныйТоже самое, что и 'Нет', кроме наличия приостановленных операторов, которые могли бы стать активными.

ДаОграниченоСтрого ограниченныйНетНеточный

Leave Empty

Определяет, что вызов должен быть преждевременно удален из очереди, если не осталось свободных операторов, способных обработать звонок Параметр может принимать значения:

  • ДаВызовы будут удаляться очереди если все операторы приостановлены, находятся в недоступном режиме, или имеют доступность (penalty value) меньше, чем QUEUE_MAX_PENALTY. На текущий момент не устанавливается в номерном плане FreePBX.
  • ОграниченоТакой же режим, как 'Да', но более ограниченный. Если нет операторов, которые могли бы обработать вызов, он удаляется из очереди. Если операторы имеются в очереди, то вызов поступает в очередь, даже если операторы заняты и не могут принять вызов непосредственно.
  • Строго ограниченныйТакой же режим, как и 'Ограниченный', но очередь должна иметь операторов, способных сразу обработать вызов. Операторы, занятые обработкой других вызовов считаются как недоступные.
  • НеточныйТакой же режим, как 'Да', но вызовы будут оставаться в очереди, даже если все операторы приостановлены, но могут стать активными.
  • НетНикогда не удалять вызов из очереди до истечения максимального времени ожидания.

ДаОграниченоСтрого ограниченныйНетНеточный

Penalty Members Limit

Если очередь обслуживают выбранное кол-во или меньше операторов, не использовать пенальти
Подробнее о пенальти: queues.conf

Caller Announcements

Frequency

Как часто объявляется позиция в очереди и приблизительное время ответа агента, Установите 0 для полного отключения этой функции.

Announce Position

Установите «yes» для объявления позиции.

YesNo

Announce Hold Time

Анонсировать время ожидания в очереди. Не объявляется если осталось менее минуты.

YesNoОдин раз

Periodic Announcements

Объявление в разрыв. Назначается в IVR

IVR Break Out Menu

Перенаправить вызов в заданный IVRс последующим возвращением в очередь, если абонент ничего не выбрал.

Repeat Frequency

Частота повторения IVR.

Advanced options

Service Level

Параметр статистики очереди. Например, если задано 20 секунд, очередь будет подсчитывать процент отвеченных за это время вызовов: SL: 45.8% within 20s.

Фильтр регулярных выражений для операторов

Agent Regex Filter Задайте регулярные выражения. Все что попадает в фильтр агенты смогут набирать, остальное нет.

Reset Queue Stats

FreePBX 13. Исходящая маршрутизация. Outbound Routes.

$
0
0

FreePBX 13. Исходящая маршрутизация. Outbound Routes.

Данный модуль управляет исходящей маршрутизацией во FreePBX. На основании набранного номера выбирается направление (транк) для исходящего вызова. Набираемый номер делится на префикс и паттерн и может модифицироваться после набора.

Connectivity > Outbound Routes
Подключения > Исходящая Маршрутизация

Порядок выбора маршрутов

freepbx13-route-order

Маршруты проверяются в порядке перечисления.
Например, если у вас есть два маршрута с совпадающими паттернами, сначала FreePBX попытается использовать маршрут выше по списку, а если он недоступен, последующий.

Вы можете изменять порядок использования маршрута перетаскивая мышью на другую позицию.
Маршруты проверяются по порядку - сверху вниз. Если найдено совпадение, дальнейшая проверка прекращается.

Настройки маршрутов

freepbx13-outbound-routes

Route Name

Название маршрута. Рекомендуется использовать для указания типа маршрута, куда он ведет (например - 'local', или 'long distance')

CallerID (CID)

Если отмечено, исходящий Caller ID этого внутреннего номера будет игнорироваться в пользу этого CID. При этом исходящий Caller ID для вызова экстренных служб по прежнему будет использоваться, если это маршрут предназначен для вызова экстренных служб, и в установках внутреннего номера определёно использование вызовов экстренных служб.

Перезаписать внутренний номер

Если отмечено, исходящий Caller ID этого номера будет игнорирован в пользу указанного выше CID. При этом исходящий Caller ID для вызова экстренных служб по прежнему будет использоваться, если это маршрут предназначен для вызова экстренных служб, и в установках внутреннего номера определёно использование вызовов экстренных служб. ДаНет

Route Password

Пароль на маршрут. Опционально. При вызове через этот маршрут будет запрошен пароль. Это может быть полезным для ограничения звонок на международные направления или другие платные номера.Использовать пароль только из цифр, или путь на файл паролей для аутентификации. Оставить поле пустым для отмены пароля.

Route Type

Тип маршрута. Опционально. Выбор в качестве маршрута для вызова экстренных служб будет форсировать использование специального CID для этого устройства (если указан). Выбрать эту опцию если этот маршрут используется для вызова экстренных служб (например 112). Опционально: Выбор в качестве внутри-корпоративного (Intra-Company) маршрута будет обрабатывать этот маршрут по правилам для внутри-корпоративных маршрутов, сохраняя информацию о внутреннем CID вместо изменения его на исходящий Caller ID этого внутреннего номера или транка.
Экстренные службыВнутрикорпоративный

Music On Hold

Музыка на удержании. Вы можете выбрать категорию музыки в ожидании. Например, при выборе направления на определённую страну, вместо гудков вызова (КПВ) можно использовать ассоциативную музыку, звоним в Казахстан - звучит прекрасная казахская песня, или приветствие (announcements) на соответствующем языке.

Временная группа

Если этот маршрут будет использоваться только в течение определённого времени, то выберите группу, созданную в секции Временная группа. Этот маршрут будет игнорироваться в промежуток времени не попадающий в выбранную группу. Если оставить в значении по умолчанию Постоянный маршрут, то маршрут будет доступен постоянно.

Route Position

Порядок выбора маршрута. Порядковый номер, каким будет добавлен или перемещён маршрут относительно других маршрутов.

Последовательность транков для совпавших маршрутов

Последовательность выбора транка дает порядок перебора транков, под шаблон которых попадает набранный номер.
Например, при наборе междугороднего номера вы направляете его в первую очередь по более дешевому маршруту (VoIP транк), затем по более дорогим (линии ТФОП).

Выборочное назначение при переполнении

Выбор назначения если все транки заняты.

Правила набора

freepbx13-dial-pattern

Шаблоны номеров, используемые на этом маршруте

Dial Patterns that will use this Route
Шаблон номера - это уникальный набор цифр, который определяет использование этого маршрута и направляет вызов в соответствующий транк. Если набранный номер соответствует этому шаблону, то последующие маршруты не рассматриваются. Если включено использование Временной группы, то последующие маршруты будут рассмотрены в промежуток времени не попадающий в группу (или группы).
Правила:

  • Xсовпадение любой цифры от 0 - 9
  • Zлюбая цифра от 1 до 9<br />
  • Nсовпадение любой цифры от 2 - 9
  • [1237-9]совпадение любой цифры из набора в скобках (например: 1,2,3,7,8,9)
  • .универсальный символ, определяет одну или более набранных цифр
prepend prefix match pattern CallerID
Prepend

приставка: Цифры, которые будут добавлены к номеру, если найдено совпадение. Если набранный номер будет совпадать с шаблоном, указанным в колонках ниже, то эти цифры будут добавлены к номеру, прежде чем он будет отправлен в транк.

Prefix

префикс:Префикс для удаления из набранного номера, если найдено совпадение. Набранный номер сравнивается с этой и другими последующими колонками для поиска совпадений. Если найдено, префикс удаляется перед ссылкой номера в транк.

match pattern

совпадение шаблона:Набранный номер будет сравниваться с комбинацией префикс + этот шаблон. Если найдено совпадение, совпавшая с шаблоном часть номера будет послана в транк.

Caller ID (CID)

Если указан Caller ID, набранный номер будет сравниваться только с комбинацией префикс + шаблон, если Caller ID передан для поиска совпадений. Если внутренний номер совершает исходящий вызов, то передаётся CID этого внутреннего номера, а не Исходящий CID для этого номера. Специальная последовательность, указанная ниже, используется для поиска совпадений CID так же, как и в других шаблонах поиска совпадений.

Помощник создания шаблона номера

freepbx13-pattern-importЭта опция дает возможность легко добавить правило для исходящих наборов. Следуйте предлагаемым шагам для каждого нового правила.

Скачать локальные префиксыЭто просматривает ваш локальный номер на www.localcallingguide.com (NA-only), и настраивает так, что вы можете набрать либо 7,10 или 11 цифр(5551234, 6135551234, 16135551234) как выбрано ниже для доступа к этому маршруту. Имейте ввиду, что это требует доступа в Internet и может занять некоторое время.

Сгенерировать кнопки. Вы можете выбрать 7,10,11-ти цифровые шаблоны . Если Вы не выбрали 'Загрузить', то добавятся общие 7,10,11-цифровые шаблоны.

Универсальный шаблон. Вы можете выбрать разрешать совершать бесплатные звонки,такие как 800,877 и т.д , а так же Справочная Система, международные вызовы.

Шаблоны импорта/эскпорта

freepbx13-outbound-routes-import-export-pattern

Загрузить из файла CSV

Загрузка шаблонов из файла CSV заменит текущие значения. Если файл не содержит заголовков полей, то файл должен содержать 4 колонки шаблонов в том же порядке, как они следуют в графическом интерфейсе. Также можно указать и заголовки в первой строке: 'prepend', 'prefix', 'match pattern' и 'callerid'. Если распознаётся меньше, чем 4 заголовка, то значения в недостающей колонке будут пустыми.

Дополнительные установки

Call Recording

Запись разговора. Управляет или переопределяет необходимость записи разговора приходящих на этот входящий номер. 'Разрешить' будет следовать другим установкам записи. 'Записывать после ответа' будет начинать запись разговора игнорируя другие установки, отменяющие запись. 'Записывать сразу' будет начинать запись разговора с самого начата разговора, включая гудки, голосовые сообщения, фоновую музыку и другие сервисные сообщения. 'Никогда' будет запрещать запись разговора несмотря на другие установки.

Запись вызоваЗапуститьДаНе обращать вниманиеНетНикогда

Пример секции Dial Patterns that will use this Route для FreePBX 2.10 и 12

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

Пример исходящей маршрутизации во FreePBX 2.9

Абонент набирает 8,
8удаляется и подставляется +7
точка символизирует любую последовательность цифр

outbound routes match pattern

outbound_routes

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

Route Name
Это просто описательное название, Будет отображено в правой части экрана.

Route CID
Перезаписать СallerID на указанное значение

Route Password
Если установлено значение- при звонке через это направление, будет предложено ввести пароль. При вводе неправильно значения соединение будет разорвано.

Route Type
Emergency- при вызове будет использован Emergency CID екстеншена, который совершает вызов, Intra-Company - будет использован внутренний CallerID екстеншена.

Dial Patterns
Шаблоны при наборе которых, будет использовано это направление. Введите каждый шаблон в отдельной строке

Правила

  • X - цифры 0-9
  • Z - цифры 1-9
  • N - цифры 2-9
  • [1237-9] - любая цифра или буква в скобках (в примере 1,2,3,7,8,9)
  • . - точка - любой знак.
  • | - отделяет префикс выхода на внешнюю линию от набираемого номера (пример 9|NXXXXXX абонент набирает '93216111' будет набрано '3216111')

Примеры

  • 000 это направление будет использовано только при наборе '000' .
  • 9|911 это направление будет использовано только при наборе '9911'. Первая цифра '9' будет удалена.
  • 0|. Любой номер может быть набран в этом направлении. '0' будет удалён.

:!:Добавить префикс можно в Trunks

Trunk Sequence

Какие транки будут использованы для набора в соответствии с вышеуказанными шаблонами.

FreePBX

Установка Asterisk 13 на Debian 8

$
0
0

Установка Asterisk 13 на Debian 8

mysql libpri dahdi pjsip apache spandsp opus g729 srtp ru

Установка зависимостей

apt-get install -y build-essential autoconf libncurses5-dev libssl-dev \
libxml2-dev libsqlite3-dev libmysqlclient-dev curl mpg123 libxml2 \
libxml2-dev libaudiofile-dev subversion sox libsox-fmt-all uuid-dev \
libjansson-dev libiksemel-dev libssl-dev libtiff5-dev mysql-client \
libmyodbc lame linux-headers-`uname -r`

Установка DAHDI и LibPRI

DAHDI

cd /usr/src &&
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz &&
tar xvfz dahdi-linux-complete-current.tar.gz &&
rm -f dahdi-linux-complete-current.tar.gz &&
cd dahdi-linux-complete-* &&
make all &&
make install &&
make config

LibPRI

cd /usr/src &&
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz &&
tar xvfz libpri-current.tar.gz &&
rm -f libpri-current.tar.gz &&
cd libpri-* &&
make &&
make install

PJSip

cd /usr/src &&
wget http://www.pjsip.org/release/2.4.5/pjproject-2.4.5.tar.bz2 &&
tar -xjvf pjproject-*.tar.bz2 &&
rm -f pjproject-*.tar.bz2 &&
cd pjproject-* &&
CFLAGS='-DPJ_HAS_IPV6=1' ./configure --enable-shared --disable-sound --disable-resample --disable-video --disable-opencore-amr &&
make dep &&
make &&
make install

SpanDSP

 apt-get install -y libspandsp2 libspandsp-dev

Asterisk 13

cd /usr/src &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz &&
tar xvfz asterisk-13-current.tar.gz &&
rm -f asterisk-13-current.tar.gz &&

Codec OPUS

 apt-get install -y libopus-dev opus-tools
wget https://github.com/seanbright/asterisk-opus/archive/asterisk-13.3.zip -O opus-asterisk13.zip &&
unzip opus-asterisk13.zip &&
rm -f opus-asterisk13.zip &&
cp asterisk-opus-asterisk*/codecs/* asterisk-13*/codecs/ &&
cp asterisk-opus-asterisk*/formats/* asterisk-13*/formats/ &&
cp asterisk-opus-asterisk*/asterisk.patch asterisk-13*/ &&
cd asterisk-13* &&
patch -p1 < ./asterisk.patch &&
./bootstrap.sh &&
cd /usr/src

Asterisk 13

cd asterisk-13* &&
contrib/scripts/get_mp3_source.sh &&
contrib/scripts/install_prereq install &&
./configure &&
make menuselect

Выберите, как минимум, следующие компоненты Asterisk

  • Add-ons: format_mp3
  • Core Sound Packages: CORE-SOUNDS-EN-(GSM), CORE-SOUNDS-RU-(GSM)
  • Extras Sound Packages: GSM
и продолжим установку
make &&
make install &&
make config &&
make samples &&
ldconfig

Codec G729

Узнайте какой у вас процессор

 cat /proc/cpuinfo | grep model name

Скачать с сайта http://asterisk.hosting.lv/#bin

 wget -P /usr/lib/asterisk/modules -O codec_g729.so link_to_download

тестируем старт Asterisk

тестируем старт Asterisk

 /etc/init.d/asterisk start
 ps ax | grep asterisk
 asterisk -vvvr
 /etc/init.d/asterisk stop

Asterisk user

 adduser --system --group --home /var/lib/asterisk --no-create-home --gecos "Asterisk PBX" asterisk
 usermod -a -G dialout,audio asterisk

Права

chown -R asterisk:asterisk /var/lib/asterisk &&
chown -R asterisk:asterisk /var/log/asterisk &&
chown -R asterisk:asterisk /var/run/asterisk &&
chown -R asterisk:asterisk /var/spool/asterisk &&
chown -R asterisk:asterisk /usr/lib/asterisk &&
chown -R asterisk:asterisk /etc/asterisk &&
chmod -R u=rwX,g=rX,o= /var/lib/asterisk &&
chmod -R u=rwX,g=rX,o= /var/log/asterisk &&
chmod -R u=rwX,g=rX,o= /var/run/asterisk &&
chmod -R u=rwX,g=rX,o= /var/spool/asterisk &&
chmod -R u=rwX,g=rX,o= /usr/lib/asterisk &&
chmod -R u=rwX,g=rX,o= /etc/asterisk

Русский голос по умолчанию

 sed -i 's/defaultlanguage = en/defaultlanguage = ru/' /etc/asterisk/asterisk.conf
 sed -i 's/;language=en/language=ru/' /etc/asterisk/*.conf

Запуск от имени пользователя 'Asterisk'

Раскомментируем в /etc/default/asterisk

 AST_USER="asterisk"
 AST_GROUP="dialout"

Тест

 /etc/init.d/asterisk start
 ps aux | grep asterisk
asterisk   850  0.9  0.5 2626632 45140 ?       Ssl  12:38   0:04 /usr/sbin/asterisk -U asterisk -G asterisk
root       925  0.0  0.0  12728  2076 pts/0    S+   12:46   0:00 grep asterisk

Установка Asterisk

Asterisk: статистика очереди call центра

$
0
0

Asterisk: статистика очереди call центра

Call Center stats. Native MySQL queue_log.
Мод основанный на Asternic Call Center Stats lite.

Ключевые изменения:Вместо парсинга текстового лога очереди /var/log/asterisk/queueu_logв MySQL используется реалтаймлог очереди модуля app_queueв MySQL - Asterisk PBX.

Отчеты в Asterisk Call Center Stats:

Сортировка

  • Выбор данных по:
    • очередям
    • агентам
    • дате

Реалтайм

  • Состояние агентов в реальном времени.
  • Информация о очереди:
    • Свободные агенты.
    • В разговоре.
    • Количество вызовов в очереди.
  • Вызовы ожидающие в очереди.

asterisk queue stats realtime

Отвеченные вызовы

  • Отвеченные вызовы по очередям и агентам.
  • Среднее время ожидания для очередей и агентов.
  • Среднее время разговора для очередей и агентов.
  • Количество отвеченных вызовов по агентам.
  • Процент отвеченных вызовов для очередей и агентов.

asterisk queue stats answered calls

asterisk queue stats answered calls

Неотвеченные вызовы

  • Количество неотвеченных вызовов по очередям.
  • Средняя позиция в очереди при выходе.
  • Причина разъединения: повесили трубку или отключены по таймауту.

asterisk queue stats unanswered calls

Распределение вызовов

  • Распределение вызовов по дате, по часам и дням недели

asterisk queue stats distribution calls

asterisk queue stats distribution calls

Установка Asterisk Call Center Stats

Установка приложения статистики очередей колл-центра Asterisk PBX.

Укажем Asterisk сохранять лог очереди в БД

Создайте таблицу в БД asterisk.

CREATE TABLE IF NOT EXISTS `queuelog` (
`time` varchar(32) DEFAULT NULL,
`callid` char(64) DEFAULT NULL,
`queuename` char(64) DEFAULT NULL,
`agent` char(64) DEFAULT NULL,
`event` char(32) DEFAULT NULL,
`data` char(64) DEFAULT NULL,
`data1` char(64) DEFAULT NULL,
`data2` char(64) DEFAULT NULL,
`data3` char(64) DEFAULT NULL,
`data4` char(64) DEFAULT NULL,
`data5` char(64) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

в файле /etc/asterisk/logger.confвыключите лог в файл:

 queue_log_to_file = no

в файле /etc/asterisk/asterisk.conf

 [options]
 queue_adaptive_realtime = yes

в файле /etc/asterisk/extconfig.conf

 queue_log => odbc,asterisk,queuelog

где asterisk - db конфиг, например в /etc/asterisk/res_odbc_custom.conf

[asterisk]
enabled => yes
dsn => asterisk
username => dbuser
password => dbpass
pre-connect => yes

Примените конфигурацию

 asterisk -rx 'core reload'

Установка и настройка Asterisk Call Center Stats

Скачайте приложение в директорию веб сервера (в примере /var/www/html):

 wget http://asterisk-pbx.ru/downloads/cdr/asterisk-queue-stats.tar.gz

Распакуйте:

 cd /var/www/html
 tar zxvf asterisk-queue-stats-001.tar.gz
 cd queue-stats

Отредактируйте файл config.phpв соответствии в вашими данными, где

  • $dbname - БД в которой вы создали таблицу queuelog (в примере - asterisk)
  • $dbname - Пользователь ДБ
  • $dbpass - Пароль БД (см. /etc/asterisk/res_odbc.conf или /etc/asterisk/res_odbc_custom.conf)
// Credentials for MYSQL database
$dbhost = 'localhost';
$dbname = 'asterisk';
$dbuser = 'root';
$dbpass = '';

// Credentials for AMI (for the realtime tab to work)
// See /etc/asterisk/manager.conf

$manager_host   = "127.0.0.1";
$manager_user   = "admin";
$manager_secret = "amp111";

Задайте права на директорию queue-stats:

 chown -R asterisk. /var/www/html/queue-stats
 

Откройте статистику в вашем любимом веб браузере:

http://ip.add.res.s/queue-stats

Нажмите, чтобы отобразить

Нажмите, чтобы скрыть

Asternic Call Center Stats Веб интерфейс статистики очереди (queue). Парсит лог очереди (var/log/asterisk/queue_log) и выводит информацию о количестве отвеченных/неотвеченных вызовов, о среднем времени ожидания и разговора по очередям и агентам. Существует бесплатная версия с урезанным функционалом. Отличное решение для бюджетного колл-центра.

Веб-интерфейс для статистики очередей и агентов.

  • Количество принятых вызовов за указанный период времени
  • Количество отвеченных вызовов
  • Количество не отвеченных вызовов
  • Среднее время разговора

Следующие отчеты интегрированы в Asternic Call Center Stats :

Распределение: по очередям, по месяцам, по неделям, по дням, по часам.

Отвеченные вызовы: по очередям, по времени ожидания, по агентам, Причина разъединения, продолжительность вызова (в том числе средняя продолжительность по очередям и агентам).

Неотвеченные вызовы: по очередям, по времени ожидания, по агентам, Причина разъединения, продолжительность вызова (в том числе средняя продолжительность по очередям и агентам).

Текущее состояние агентов: продолжительность работы или простоя, состояние текущего вызова, текущее кол-во вызовов в очереди)

Установка Call Center Stats LITE

http://www.asternic.net/downloads/

Приложения


Страницы с тегом 'queue':

Команда Asterisk: AddQueueMember

Asterisk: PauseQueueMember

Команда Asterisk: Queue

Asterisk: QueueLog

Asterisk: RemoveQueueMember

Asterisk: UnpauseQueueMember

Asterisk queuerules.conf

Asterisk: queues.conf

function 'QUEUE_EXISTS'

function 'QUEUE_MEMBER'

function 'QUEUE_MEMBER_LIST'

Функция диалплана Asterisk: QUEUE_VARIABLES

function 'QUEUE_WAITING_COUNT'

Asterisk: queue_log в MySQL через unixODBC

FreePBX 13 Queues

FreePBX 13 Conferences

$
0
0

FreePBX 13 Conferences

Создание многоканальных конференций.

freepbx13-conference.png

Conference Number:

Номер конференции. Используется для вызова конференции.

Conference Name:

Имя конференции для идентификации в веб-интерфейсе.

User PIN:

Пароль конференции. Вы можете потребовать от участников конференции ввести пароль для доступа в неё.Это необязательная опция.Если PIN задан, пользователь услышит голосовое приглашение ввести пароль.

Admin PIN:

Задайте PIN для администратора конференции.Данная опция необязательна. Вместе с опцией 'leader wait' используется для идентификации админа конференции.

Join Message:

Голосовое сообщение проигрываемое перед присоединением к конференции. Для добавление записи, используйте модуль System Recordings

freepbx13-conference-boolean

Leader Wait:

При включении данной опции, конференция не начинается без лидера (админа конференции) см. также 'Admin PIN'.

YesNo

Лидер или привилегированный пользователь, это не обязательно администратор конференции. В настройках настоящейконференции Asterisk, любой пользователь может маркироваться, как лидер (marked=yes) и с его действиями, могут быть связаны некоторые свойства конференции.

Talker Optimization:

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

YesNo

Talker Detection:

Включить распознавание речи. Генерирует событие в AMi, когда участник конференции говорит.

YesNo

Quiet Mode:

Тихий режим (не проигрывать звуки присоединения/выхода)

YesNo

User Count:

Сообщать кол-во участников конференции

YesNo

User join/leave:

Сообщать о присоединении/выходе из конференции участникам конференции.

YesNo

Music on Hold:

Включить Музыку на удержаниипока в конференции только один участник.

YesNo

Music on Hold Class:

Класс MoH. Если выбрано 'inherit', наследуется из Inbound_routes

Allow Menu:

Включить управление через меню (вход '*')

YesNo

Record Conference:

Включить запись конференции

YesNo

Maximum Participants:

Максимальное кол-во участников.

YesNo

Mute on Join:

Выключить микрофон для присоединившихся.

YesNo

См. также:

Asterisk: confbridge.conf

FreePBX 12 скриншот

FreePBX Misc Destinations

$
0
0

FreePBX Misc Destinations

Данный модуль позволяет назначить дополнительные направления, для использования затем в других модулях. Например для назначения входящих вызовов на номера другой АТС.

Description

Название которое будет отображаться для использования направления в других модулях.

Dial

Набираемый номер.

Пример
Имеется система: АТС 1XX<sip> Asterisk <ISDN PRI> АТС 2XX
Требуется чтобы входящие вызовы на АТС 2, транзитом через Asterisk, направлялись на АТС 1.

Misc Destinations

Description: ATC 101
Dial: 101

Outbound Routes

Route Names:ATC 1XX
Dial Patterns: 1XX

Inbound Routes

DID number: 7777
Set Destination: ATC 101

FreePBX


FreePBX Administrators

$
0
0

FreePBX Administrators

Данный модуль управляет пользователями для администрирования FreePBX.

General Settings - Основные настройки

Username - Имя пользователя

Passsword - Пароль

Access Restrictions Ограничение доступа

Department Name (Подразделение) - Задать разграничение прав для доступа к System Recordings.

Extension Range (Диапазон номеров) - Разрешить доступ к екстеншенам только из заданного диапазона. Если не требуется оставьте пустым

Admin Access

- Выберите модули к которым разрешен доступ.

FreePBX

FreePBX: Backup and Restore

$
0
0

FreePBX: Backup and Restore

Модуль для создания резервных копий и восстановления конфигурации FreePBX.

Шаблоны

backup templates

Есть несколько предустановленных шаблонов для резервирования различных данных FreepBX

  • CDRшаблон
    • включает в себя детализированный отчет о звонках (База данных MySQL «asteriskcdrdb»)
  • Config Backupшаблон
    • включает в себя конфигурацию АТС (База данных MySQL «asterisk»)
    • не содержит кастомных файлов *_custom.conf из директории /etc/asterisk/
  • Full Backupшаблон
    • включает CDRшаблон
    • Config Backupшаблон
    • резервирует директорию назначенную переменной __ASTETCDIR__, по умолчанию "/etc/asterisk" и все её поддиректории и файлы.
    • резервирует директорию назначенную переменной __AMPWEBROOT__, по умолчанию "/var/www/html" и все её поддиректории и файлы FreePBX.
    • резервирует директорию "/etc/dahdi"
    • Не резервируетсистемные голосовые сообщения и голосовую почту.
  • System Audioшаблон
    • резервирует директорию назначенную переменной __ASTVARLIBDIR__/moh, по умолчанию "/var/lib/asterisk/moh" и все её поддиректории и файлы.
    • резервирует директорию назначенную переменной __ASTVARLIBDIR__/sounds/custom, по умолчанию "/var/lib/asterisk/sounds/custom" и все её поддиректории и файлы.
  • VoiceMailшаблон
    • резервирует директорию назначенную переменной __ASTSPOOLDIR__/voicemail, по умолчанию "/var/spool/asterisk/voicemail", и все её поддиректории и файлы.

Места сохранения

backup storage locations

Места сохранения бэкапов можно просмотреть и отредактировать кликнув «Servers» в правом верхнем углу страницы.
По умолчанию заданы два хранилища для резервных файлов.

  • Local Storage (local)обычно используется эта опция.
    • Архив резервной копии хранится в "/var/spool/asterisk/backup/(backupjobname)/*.tgz" на локальной машине.
  • Legacy Backup (local)
    • Для бэкапов сделанных в прежних версиях FreePBX ранее 2.10

Можно создать дополнительные хранилища для отправки бэкапов по e-mail, на удаленный FTPили TFTP сервер или на удаленный MySQL сервер.

Пример создания бэкапа

Данный бэкап резервирует полную конфигурацию АТС, Voicemail и системные аудио файлы каждую полночь.

  • Backups
    • Кликните "New Backup"
  • Backup
    • Backup Name: «full»
    • Description: "Config, VoiceMail, System Audio"
  • Items
    • перетащите мышкой следующие шаблоны на «Type Path/DB Exclude Delete».
    • «Full Backup»
    • «System Audio»
    • «Voice Mail»

  • Backup Server
    • выберете "This server"
  • Storage Locations
    • перетащите мышкой "Local Storage (local)" из «Available Servers» в «Storage Servers».
  • Backup Schedule
    • Run Automatically: выберете «Daily» (время автоматически будет выставлено 00:00 )
  • Maintenance
    • «Delete after»: 21 days (сохранять три недели)
    • «Delete after»: 0 runs (не очищать журнал резервного копирования после заданного кол-ва запусков)
  • Save

Запуск вручную

  • Кликните Backups
    • выберете требуемый бэкап (например "full" в примере)
  • Кликните «and Run»
    • Ход выполнения бэкапа отобразится во всплывающем окне

  • нажмите ОК по готовности

Проверка

[root@localhost backup]# ls -la /var/spool/asterisk/backup/full
total 4836
drwxr-xr-x. 2 asterisk asterisk    4096 Apr  1 16:35 .
drwxr-xr-x. 4 asterisk asterisk    4096 Apr  1 16:35 ..
-rw-r--r--. 1 asterisk asterisk 4941450 Apr  1 16:35 20140401-163539-1396355739-88966367.tgz

Восстановление

  • Restore ()
    • Local Storage(local)

Выберете требуемый бэкап и нажмите "Go"

Синхронизация Баз Данных FreePBX

Настроим резервный сервер (asterisk2) таким образом, чтобы он подключался к основному серверу (asterisk1) по SSH
и синхронизировал настройки asterisk, autoprovision и др.

Настройка SSH подключения

В данном примере Asterisk и Web server работают из под пользователя asterisk.

Зададим временный пароль пользователю asterisk
На основном сервере asterisk1

#chsh -s /bin/bash asterisk
#passwd asterisk
somepassword
#chmod 755 /var/lib/asterisk

Сгенерируем ssh ключ на резервном сервере Asterisk2

#chsh -s /bin/bash asterisk
#su asterisk
$ssh-keygen

Команда ssh-keygen создаст ключ в /home/asterisk/.ssh/ip_rsa

Не вводите passphrase, оставьте пустым:

]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/asterisk/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/asterisk/.ssh/id_rsa.
Your public key has been saved in /home/asterisk/.ssh/id_rsa.pub.
The key fingerprint is:
84:a8:1b:6f:2c:56:91:d5:d2:12:8f:8f:28:78:07:4e asterisk@asterisk2
The key's randomart image is:
+--[ RSA 2048]----+
|      o+         |
|     +o+o        |
|  A + o+o        |
| + o o +         |
|. * + . D        |
| . O             |
|  + +            |
| . o             |
|                 |
+-----------------+

Кода ключ создан, скопируем его на основной сервер:

 $ssh-copy-id -i asterisk@asterisk1_IP

Будет запрошен пароль, заданный для пользователя asteriskна основном севере.

[asterisk@asterisk2 root]$ ssh-copy-id -i asterisk@192.168.1.201
The authenticity of host '192.168.1.201 (192.168.1.201)' can't be established.
RSA key fingerprint is 61:44:a0:40:78:33:2a:b5:ec:eb:5f:55:36:39:8b:4d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.201' (RSA) to the list of known hosts.
asterisk@192.168.1.201's password:
Now try logging into the machine, with "ssh 'asterisk@192.168.1.201'", and check                                  in:

  .ssh/authorized_keys

to make sure we haven't added extra keys that you weren't expecting.

Проверим подключение по ssh с ключом:

[asterisk@asterisk2 root]$ ssh asterisk@192.168.1.201
[asterisk@asterisk1 ~]$

Если произошло подключение к основному серверу без пароля, все в порядке.

В завершении настройки SSH подключения, удалим пароль пользователя asteriskна основном сервере (asterisk1).

 passwd -d asterisk

И перейдем к настройке автоматической синхронизации FreePBX

Выберете на резервном сервере <fs large>Admin > Backup & Restore > Servers - New SSH Server</fs>

Hostname - ip адрес основного сервера Asterisk1

Port - порт ssh

User Name - пользователь, в нашем случае asterisk

Key - местонахождение ключа (/home/asterisk/.ssh/id_rsa)

Затем выберете <fs large>Admin > Backup & Restore > Backups - New Backup</fs>

Задайте имя и перетащите шаблоны для настроек:

в нашем примере это <fs large>Full Backup</fs> и <fs large>Exclude Backup Settings</fs>

Местонахождение директории tftp сервера, где лежат файлы для autoprovision, изменена с /tftpboot на /var/lib/tftpboot.

Задайте в соответствии с вашими условиями.

И в завершении укажем созданный нами Backup Server (asterisk1)
и хранилище - Local Storage (local)

Restore Here - записать скачанный бэкап в базу данных asterisk

Disable Registered Trunks - отключить зарегистрированные транки, во избежание проблем с входящими вызовами на основном сервере.

Exclude NAT Settings - Исключить специфические настройки IP основного сервера.

Apply Config - Применить скачанный бэкап (записать в конфиги asterisk)

Сохраним Saveи проверим немедленно and Run

FreePBX

FreePBX Feature Codes

$
0
0

FreePBX Feature Codes

Коды абонентских функций

Модуль управления сервисными кодами отображает все доступные в системе FreePBXабонентские функции и их коды.
Наличие того или иного кода в списке зависит от установленных модулей.
Доступны следующие действия:

  • Изменение значения кода.
  • Включение/Выключение кода.

Управление сервисными кодами

 Используется
по умолчанию?
Сервис
Статус

Core - База

Asterisk General Call Pickup - Основной перехват звонка
ChanSpy - Шпионский канал
Directed Call Pickup - Назначеный перехват звонка
In-Call Asterisk Attended Transfer - Перевод входящего звонка с уведомлением
In-Call Asterisk Blind Transfer - Перевод входящего звонка без уведомления
In-Call Asterisk Disconnect Code - Сброс входящего звонка
In-Call Asterisk Toggle Call Recording - Запись входящего звонка по требованию
Simulate Incoming Call - Симуляция входящего звонка
User Logoff - Разлогиниться пользователю
User Logon - Залогиниться пользователю
ZapBarge - Прослушивание канала DAHDI

Follow Me - Следуй за мной

Findme Follow Toggle - Переключение Следуй за мной

Info Services - Информационные службы

Call Trace — Сообщение Caller ID последнего вызова
Echo Test -Эхо тест
Speak Your Exten Number - Ваш внутренний номер
Speaking Clock — Текущее время

Paging and Intercom - Пейджинг и интерком

Intercom prefix - Префикс интеркома
User Intercom Allow - Пользователь Интерком разрешён
User Intercom Disallow - Пользователь Интерком запрещён

Parking Lot - Парковка

Pickup ParkedCall Prefix - Забрать припаркованный вызов

Queues - Очереди

Queue Pause Toggle - Временный выход агента из обслуживания очереди
Queue Toggle – Подключение динамического агента к очереди

Recordings - Запись голосовых сообщений

Check Recording - Редактировать голосовое сообщение
Save Record – Записать голосовое сообщение

Speed Dial Functions - Функции быстрого набора

Set user speed dial - Установить быстрый набор пользователю
Speeddial prefix - Префикс быстрого набора

Голосовая почта

Dial Voicemail - Набрать номер голосовой почты
Direct Dial Prefix
My Voicemail - Моя голосовая почта

Call Forward, Camp On, Call Waiting

Call Forward, Camp On, Call Waiting

Call Forward

Call Forward All Activate - Активация перевода все вызовов
Call Forward All Deactivate - Де-активация перевода всех вызовов
Call Forward All Prompting Activate
Call Forward All Prompting Deactivate
Call Forward Busy Activate
Call Forward Busy Deactivate
Call Forward Busy Prompting Activate
Call Forward Busy Prompting Deactivate
Call Forward No Answer/Unavailable Activate
Call Forward No Answer/Unavailable Deactivate
Call Forward No Answer/Unavailable Prompting Activate
Call Forward Toggle

Call waiting - Ожидание звонка

Call Waiting - Activate
Call Waiting - Deactivate

Camp-On

Camp-On Cancel
Camp-On Request
Camp-On Toggle

FreePBX

FreePBX Follow Me

$
0
0

FreePBX Follow Me

Следуй за мной. Предустановленный переход вызова на местный или внешний номер.

Edit Follow Me

  • Disable - Выключить Follow Me
  • Initial Ring Time - Время через которое будет вызван номер из списка Follow Me.
  • Ring Strategy - стратегия наведения вызова на несколько номеров.
    • ringallV2: Звонит первый в списке телефон в течении Initial Ring Time, по истечении этого времени звонят все телефоны из списка.
    • ringall - Звонят, одновременно, все телефоны из списка.
    • hunt - Звонит 1-й телефон из списка, если нет ответа в течении Ring Time, звонит следующий и так далее до конца списка.
    • memoryhunt - Звонит 1-й телефон из списка, затем 1-й и 2-й, затем 1-й, 2-й и 3-й и тд.
    • firstavaialbleЗвонит первый доступный из списка номер и Destination If No Answerпо неответу.
    • firstnotonphoneЗвонит первый доступный из списка номер и только он.
  • Ring Time - Время в течении которого будут вызываться номера из списка Follow Me.
  • Follow-Me List - список номеров для переадресации. Могут быть указаны как внутренние номера системы, так и внешние. Внешний номер должен заканчиваться #.

Пример списка:

2201 - Основной номер. 
4001 - Другой внутренний номер.
1234567890# - Внешний номер. Решетка символ конца номера. Используйте, также, префикс выхода на внешнюю линию.
  • Announcement - Здесь можно указать системное сообщение, которое прозвучит перед тем, как будут вызваны номера из списка Follow Me.
  • Play Music on Hold - Здесь можно выбрать музыку на удержании MOH, которая будет проигрываться вызывающему абоненту. Если указано Ring, абонент услышит КПВ.
  • CID Name Prefix - Здесь можно указать префикс CallerID отображаемого на местных телефонах, для указания что поступает переадресованный вызов. Т.к. префикс передается как CallerID NAME, на внешний номер, вероятнее всего, передаваться не будет.

Call Confirmation Configuration

  • Confirm Calls - Эта опция включает голосовое предупреждение о переадресации на внешний номер (отмеченный #). Для подтверждения надо нажать «1».
  • Remote Announce - Голосовое сообщение внешнему абоненту с запросом подтверждения о приеме вызова (нажмите 1)
  • To-Late Announce - Голосовое сообщение внешнему абоненту.

Change External CID Configuration

Модификация внешнего CallerID

  • Mode
    • Default - В этом режиме предается CallerID вызывающего абонента без изменений.
    • Fixed CID Value - Если вы выбрали этот режим будет передано CID назначенное в поле Fix CID Option
    • Outside Fixed CID Value - Тоже само, за исключением вызовов с внутренних номеров.
    • Use Dialed Number - Устанавливает в качестве CID входящий номер, на который пришел вызов.
    • Force Dialed Number - Тоже самое, только игнорирует опцию “Block Foreign Caller ID”, если таковая задана на транке, через который идет вызов.
  • Fixed CID Value - задайте CID если выбран режим Fixed CID Valueили Outside Fixed CID Value.

Change External CID Configuration

  • Destination if no answer - назначение вызова, если никто из списка Follow Me не ответил по истечении Ring Timeв соответствии со стратегией вызова. По умолчанию выполняется «Normal Extension Behavior» - нормальные условия для екстеншена, как если бы Follow Me не было задано.

см. также

FreePBX

FreePBX IVR

$
0
0

FreePBX IVR

Используется для создания автосекретаря (автооператора) и многоуровневых интерактивных меню.

Edit IVR: name


- IVR General Options

IVR Name
Имя данного IVR.

IVR Descrition
Описание данного IVR

- IVR Options (DTMF)

Announcement
Заглавное приветствие IVR

Direct Dial
Разрешить прямой донабор внутренних номеров.Возможно:

  • Полностью выключен
  • Включен для всех внутренних номеров

Timeout
Время ожидания донабора, после окончания сообщения

Invalid Retries
Кол-во попыток ввода, если набрано неверно
Установите Disabled, если не требуется

Invalid Retry Recording
Сообщение о превышении лимита попыток набора.

Append Announcement on Invalid
После сообщения о неверном наборе воспроизвести главное сообщение.

Invalid Recording
Сообщение проигрываемое перед тем,
как абонент будет перенаправлен на Invalid Destination

Invalid Destination
Наведение вызова, после неверного донабора.

Timeout Retries
Количество повторных попыток, если ничего не набрано.
Установите Disabled, если не требуется

Timeout Retry Recording
Подсказка по истечении времени ожидания набора.

Append Announcement on Timeout
Воспроизвести заглавное сообщение
после подсказки по истечении времени ожидания набора

Timeout Recording
Подсказка перед наведением вызова по таймауту
(Timeout Destination)

Timeout Destination
Наведение вызова по истечении времени ожидания набора.

Return to IVR after VM
Вернуться сюда после VM.

- IVR Entries

В примере на скриншоте:

1 - вызывается группа абонентов 600 (Applications > Ring Group)
2 - вызывается очередь 1777 (Applications > Queues)
3 - вызывается внутренний номер 1000 ((Applications > Extensions)
4 - вызов разъединяется
i - если набран неверный номер звучит сообщение (Applications > Announcements)
t - если ничего не набрано по истечению таймаута, вызов направляется на внутренний номер 1000.

В поле слева введите опции для пользователей. Это может быть одна или несколько цифр, или 'i', или 't'
'i'и 't'имеют специальные значения:

  • i - Назначение для несуществующего номера. Предположим вы назначили цифры '1', '2', и '3', а абонент набирает '4'. В этом случае вызов будет направлен на 'i' Destination.
  • t - Назначение в случае если ничего не набрано.

FreePBX Custom DestinationsДополнительный пример по IVR.

FreePBX

Viewing all 1052 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>