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

Digium TE235 инсталляция

$
0
0

Digium TE235 инсталляция

Плата Digium TE235 снабжена двумя разъёмами RJ45 для подключения каналов и двумя светодиодами отображающими статус потоков.

te235 установка

Выбор режима Т1/Е1

В отличии от плат предыдущего поколения (TE121, TE220 и т.д.), режим задается не джамперомна плате, а в конфиге. Если не задано, плата загрузится в режиме T1.

default_linemode=t1или default_linemode=e1параметр модуля применяется при загрузке драйвера. Режим будет задан для всех спанов на плате.

T1 Mode (Рекомендованный метод) - добавьте следующую строку в файл /etc/modprobe.d/dahdi.conf:

 options wcte43x default_linemode=t1

T1 Mode (альтернативный метод):

 # modprobe wcte43x default_linemode=t1

E1 Mode (Рекомендованный метод) - добавьте следующую строку в файл /etc/modprobe.d/dahdi.conf:

 options wcte43x default_linemode=e1 

E1 Mode (альтернативный метод):

 # modprobe wcte43x default_linemode=e1
 /etc/init.d/dahdi restart

Подключения кабеля синхронизации.

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

Для инициализации данной опции подключите каждую плату четырех-разъёмным кабелем Digium и включите опцию в настройках дравера DAHDI:

 # modprobe wcte43x timingcable=1 

te230 timing cable

Поддерживаемые слоты

Проверьте вашу материнскую плату на совместимость с платами серии TE230.

Нумерация слотов в примере:

 0: AGP Pro Slot 
 1: 64-bit 5.0 volt PCI Slot 
 2: 64-bit 3.3 volt PCI Slot 
 3: 32-bit 5.0 volt PCI Slot 
 4: PCI Express 1-lane (x1) Slot 
 5: PCI Express 4-lane (x4) Slot 
 6: PCI Express 8-lane (x8) Slot 
 7: PCI Express 16-lane (x16) Slot

motherboard slots compatability

Платы серии TE230 предназначены для работы c PCI Express (1x) и могут работать с разъемами x4, x8 и x16.
На примере это слоты номер 4,5,6 и 7.

Установка программного обеспечения

Когда плата установлена и linux загружен, проверьте обнаружено ли устройство:

 lspci -n

Вы должны увидеть следующее устройство:

 0000:01:0e.0 ISDN controller: Unknown device d161:<card identifier>

d161 Digium PCI vendor ID

<card identifier> может содержать следующие идентификаторы:

ModelIdentifier
TE235B0x800E
TE235 0x800E

Скачайте и установите последние версии libPRI и DAHDI

Установка Asterisk12 + FreePBX 12 на CentOS 6.5 64-bit

 wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
 tar zvxf dahdi-linux-complete-current.tar.gz
 cd dahdi-linux-complete-current-<version>
 ./configure
 make all
 make install
 make config
 wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
 tar zxvf libpri-1.4-current.tar.gz
 cd libpri-1.4.<version>
 make
 make install

Скачайте и установите требуемую версию Asterisk

 wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-12-current.tar.gz
 tar zvxf asterisk-<version>
 ./configure
 make
 make install
 make samples

Asternic CDR Stats

$
0
0

Asternic CDR Stats

Приложение устанавливается в три клика, как локальный модуль FreePBX.
В отличии от стандартного CDR группирует вызовы по внутренним абонентам,
а также по входящим и исходящим вызовам.
Скачать Asternic CDR Stats

Как установить

После загрузки модуля необходимо войти в FreePBX, выберите Admin - Module Admin, а затем выберите опцию «Upload module». Вы должны выбрать файл, который вы только что скачали с вашего жесткого диска и нажмите кнопку «Upload».

После загрузки, нажмите на ссылку Manage Local Modules, прокрутите страницу вниз до раздела Отчеты, а затем нажмите на кнопку Asternic CDR Reports. После этого установите переключатель Installи, наконец, нажмите кнопку Proceedв самом низу страницы.

FreePBX Call Recordings + Asternic CDR Stats 1.5.1

Данная модификация включает отображение записей разговоров FreePBX
в модуле Asterisk CDR Stats Скачать asternic_cdr-1.5.1.tgz исправленный Скачать asternic_cdr-1.5.1.tgz исправленный

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

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

$
0
0

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

Интерфейс статистики очередей Asterisk. Прямой лог в нативную БД приложения app_queue. Модификация 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 в БД MySQL

По умолчанию данные статистики очереди сохраняются в текстовый лог var/log/asterisk/queue_log. Назначим для хранения данных таблицу БД MySQL - asterisk.queuelog

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:

 [options]
 queue_adaptive_realtime = yes

В файле настроек реалтайм/etc/asterisk/extconfig.confопределим драйвер, family и таблицу назначения:

 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

Конфиг Asterisk Call Cetnter 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

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

$
0
0

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

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

Call Detail Records

CDR: Описание полей

  • R/O - поле только для чтения, нет записи функцией CDR
Поле Значение/Пример Описание
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 и пользовательские переменные, если требуется.

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

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

[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.

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 Конференц-мост

$
0
0

Asterisk Конференц-мост

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

Для этого можно использовать возможности Call File.

Синтаксис Call файла

Для совершения вызова
  • Channel: <channel>: Канал используемый для вызова.
  • CallerID: «name» <number> Caller ID, Примечание: Это не работает если формат не соответсвует шаблону: CallerID: «Some Name» <1234>
  • MaxRetries: <number> Число попыток (исключая первую попытку, т.е. если поставить 0 = всего будет совершена одна попытка). Default is 0.
  • RetryTime: <number> Время в секундах между попытками. Default is 300 (5 min).
  • WaitTime: <number> Время посылки вызова. Default is 45.
  • Account: Set the account code to use.
Когда соединение установлено:
  • Context: [Контекст] в extensions.conf
  • Extension: Екстеншен в [контексте] extensions.conf
  • Priority: приоритет в контексте
  • Set: Set a variable for use in the extension logic (example: file1=/tmp/to ); in Asterisk 1.0.x use 'SetVar' instead of 'Set'
  • Application: Asterisk Application to run (используется вместо контекста, екктншена и приоритета)
  • Data: The options to be passed to application
  • Set: Can now also write to dialplan functions like CDR()
  • AlwaysDelete: Yes/No - If the file's modification time is in the future, the call file will not be deleted
  • Archive: Yes/No - Move to subdir «outgoing_done» with «Status: value», where value can be Completed, Expired or Failed.

Контекст [conference] направляет ответивших абонентов в конференц комнату.
/etc/asterisk/extensions.conf/

 [conference]
  exten => s,1,Answer()
  exten => s,n,ConfBridge(111)

Контекст inviteзадает номер для сбора конференции.
/etc/asterisk/extensions.conf

  [invite]
  exten => _111,1,Answer()
  exten => _111,n,System(/var/spool/asterisk/call_list.sh)
  exten => _111,n,ConfBridge(111)

Создадим конференцию в файле meetme.conf

[rooms]
conf => 111,
Shell Скрипт /var/spool/asterisk/call_list.sh/

Cкрипт вызывает номера перечисленные в файле /var/spool/asterisk/list.txt.
Количество номеров разрешенных для одновременного набора указывается в переменной «$count_f» -eq «15»

#!/bin/sh

while read number; do

cat <<EOF  >  /var/spool/asterisk/$number

Channel: Local/$number
Callerid: $number
MaxRetries: 1
RetryTime: 20
WaitTime: 30
Context: conference
Extension: s
Priority: 1
Archive: yes
Set: CDR(userfield)=${REASON}
Account: confrence_1
EOF

    chown asterisk:asterisk /var/spool/asterisk/$number
    mv /var/spool/asterisk/$number  /var/spool/asterisk/outgoing

    echo "$number"

    number=`expr $number + 1`

    while [ "$?" -eq "0" ]

    do
count_files ()

{

    count_f=`ls /var/spool/asterisk/outgoing | wc -l`

        if [ "$count_f" -eq "15" ]; then

            sleep 10

            return 0

        else

            return 1

        fi

}


    count_files

    done


done < /var/spool/asterisk/list.txt

exit 0

Участники конференции

/var/spool/asterisk/list.txt

100
101
102
103
104

How To

FreePBX 13 Extensions

$
0
0

FreePBX 13 Extensions

Добавление внутренних номеров. Во FreePBX, как и в традиционных АТС термин 'extensions' используется для обозначения внутренних номеров (хотя на примере Custom Extensions, видно, что номера могут быть не только внутренними, но и принадлежать другой АТС).

Сперва выберете технологию, которая будет использована для конфигурации номера:

freepbx13-extensions

Типы Екстеншенов:

  • Custom Extensions - Экстеншен неопределенной технологии, как правило используется для назначения внешнего номера, например, на дружественной АТС в сети. Технология (например: IAX2/iaxtrunk/<num>) задается параметром Dial, в настройках екстеншена.
  • DAHDI Extensions - Номер устройства DAHDI, например платы FXSили устройства TDM over IP типа Asteroid.
  • IAX2 Extensions - Номер подключаемый по протоколу Inter Asterisk Exchange (IAX).
  • PjSIP Extensions - SIP аккаунт с использованием драйвера res_pjsip.
  • chan_SIP - SIP аккаунт с использованием драйвера chan_sip.

После создания аккаунта по технологии chan_sip или res_pjsip, вы можете, после, изменить используемый драйвер в настройках екстеншена. FreePBX сгенерирует новый конфиг в соответствии с требованиями драйвера.

  • Virtial Extension - В отличии от Custom Extensions, не имеет опции Dial вообще. Можно использовать в качестве контейнера, каких-либо свойств, например виртуального факса или голосового почтового ящика, без привязки явного устройства.

Какая бы технология не использовалась, все екстеншены имеют ряд основныхпараметров, общих для всех, что хорошо видно на примере Virtual Extension:

Базовые параметры Extensions

Параметры общие для всех типов екстеншенов

General

- Add Extension

freepbx13-basic-extensions назначьте:

  • User Extension - используется для вызова екстеншена
  • Display Name - будет использовано в качестве CALLERID(name)
  • Outbound CallerID - используется в качестве CallerId для внешних вызовов, если это разрешено настройками исходящей маршрутизации
- User Manager Settings

freepbx13-extensions-user-manager User Managementмодуль управления пользователями FreePBX. Пользователь FreePBX (не путайте с администраторами, хотя этот пользователь может быть и администратором) назначается для доступа к User Control Panel, назначения виртуального факса для екстеншена и других очень полезных возможностей интерфейса FreePBX.
При создании екстеншена, вы можете не беспокоится о этих настройках. Если в дальнейшем понадобится что-то изменить, сделайте это через соответствующий модуль.

Advanced

-Assigned DID/CID

freepbx13-extensions-did-cid

DID или Direct Inward Dialing - прямой входящий набор. По сути дополнительное расширение диалплана, сопоставленное данному екстеншену, которое будет добавлено в Inbound Routes.

  • DID description - описание для DID
  • Add Inbound DID - номер прямого входящего набора.
  • Add Inbound CID - CallerID вызывающего абонента, если задано, DID будет действовать только для звонков с этого номера.

Если вы назначите данные параметры, в модуле Inbound Routes появится соответствующее правило:

Если вы назначите данные параметры, в модуле Inbound Routes появится соответствующее правило:

freepbx13-extensions-did-cid-inbound-routes


Вы можете задать столько DID для одного екстеншена, сколько вам требуется. Назначенные маршруты отобразятся в настройках екстешена:

freepbx13-extensions-did-cid-inbound-routes-list

- Edit Extensions

freepbx13-edit-extensions

  • CID Num Alias - Псевдоним CID. Если не задано, для внутренних вызовов в качестве CALLERID(num) екстеншена используется его номер. Если задать здесь другое значение, то будет использоваться оно. Здесь можно задать номер Ринг группыили очереди, например, чтобы пользователи перенабирали не конкретный номер, а группу телефонов тех. поддержки. Не используется для внешних вызовов.
  • SIP Alias - если хотите использовать прямой (direct) sip набор, здесь можно задать псевдоним, для вызова данного екстеншена.
- Extension Options

freepbx13-extension-options

  • Asterisk Dial Options - опции команды Asterisk Dialдля внутренних исходящих вызовов с данного екстеншена. По умолчанию глобальные дефолтные значения заданные в Advanced Settings. Задайте override значения, если требуется. Подробнее о опциях команды Dial
  • Ring Time - Таймаут вызова екстеншена. По умолчанию дефолтное значение из Advanced Settings
  • Ringer Volume Override - Переназначение громкости (только Sangoma Phones)
  • Call Forward Ring Time - Время вызова в секундах при Call Forward, Call Forward Busy, по истечению которого вызов будет перенаправлен в голосовую почту или - Optional Destinations. Если ни то, ни другое не задано, будет звонить до упора.
  • Outbound Concurrency Limit - кол-во одновременных вызовов через данный пир.
  • Call Waiting - Включить службу ожидания вызова. Если включено и телефон занят, вызывающему абоненту подается сигнал вызова, в ожидании освобождения телефона. Если выключено, будет дан отбой. Выключите Call Waiting, если екстеншен обслуживает очередь.

Большинство пользователей привыкли, получать сигнал занято. Иначе они считают, что им просто не отвечают. Обратите внимание, что все IP телефоны, тоже имеют такую опцию. Отключите ожидающий вызов и на аппаратах, если требуется. В CW Enabled by Defaultможно выключить call waiting по умолчанию для новых екстеншенов.

  • Call Screening - Служба представления, требует от внешнего вызывающего абонента назвать свое имя и проигрывает записанное имя вызываемому, прежде чем соединить их, давая возможность отказаться от приема вызова.
  • Pinless Dialing - Включить Пин код для исходящих вызовов.
  • Emergency CID - CallerID для транка помеченного, как emergency (т.е. для экстренных вызовов)
  • Queue State Detection - Если данный екстеншен обслуживает очередь, когда оттуда приходит вызов, очередь пытается определить состояние екстеншена, доступен он или нет.

В некоторых случаях, когда установлено FollowMeили использован виртуальный екстеншен, очередь будет считать его недоступным и екстеншен не будет вызван, несмотря на то, что может ответить. Чтобы избежать подобных коллизий, используйте 'Ignore State'. Однако для большинства сценариев рекомендуется 'Use State'.

asterisk -rx 'database show'

asterisk -rx 'database show'

Ни Virtual, ни Custom Extensions не имеют собственных конфигов. Где же храняться эти многочисленные настройки? А хранятся они во внутренней базе данных Asterisk - astdb. Откуда диалплан сгенерированный FreePBX в extensions_additional.confи берет их, подставляя в макросы.

# asterisk -rx 'database show' | grep 667
/AMPUSER/667/answermode                           : disabled
/AMPUSER/667/cfringtimer                          : 0
/AMPUSER/667/cidname                              : test
/AMPUSER/667/cidnum                               : 667
/AMPUSER/667/concurrency_limit                    : 3
/AMPUSER/667/device                               : 667
/AMPUSER/667/dialopts                             : Ttr
/AMPUSER/667/hint                                 : ,CustomPresence:667
/AMPUSER/667/intercom                             : enabled
/AMPUSER/667/noanswer                             :
/AMPUSER/667/outboundcid                          :
/AMPUSER/667/password                             :
/AMPUSER/667/queues/qnostate                      : usestate
/AMPUSER/667/recording                            :
/AMPUSER/667/recording/in/external                : dontcare
/AMPUSER/667/recording/in/internal                : dontcare
/AMPUSER/667/recording/ondemand                   : disabled
/AMPUSER/667/recording/out/external               : dontcare
/AMPUSER/667/recording/out/internal               : dontcare
/AMPUSER/667/recording/priority                   : 10
/AMPUSER/667/ringtimer                            : 0
/AMPUSER/667/rvolume                              :
/AMPUSER/667/voicemail                            : novm
/CW/667                                           : ENABLED

Это касается и ектеншенов с технологиями, для опций диалплана, не предусмотренных их драйверами.

- Recording Options

freepbx13-extensions-recording-options

  • Inbound External Calls - Записывать входящие внешние вызова
    • Force - Всегда, даже если далее встретится Don't Careили No, но Neverотменит данную директиву.
    • Yes - Записывать.
    • Don't Care - Не записывать, но yes и forceзаставят.
    • No - Не записывать.
    • Never - Не записывать никогда. Но последующее «Force» пересилит данную установку.

(Force и Never всегда переопределяют установки заданные ранее.)

  • Outbound External Calls - Внешние исходящие вызовы
  • Inbound Internal Calls - Входящие внутренние вызовы
  • Outbound Internal Calls -Внутренние исходящие вызовы
  • On Demand Recording - Запись по запросу (абонентским кодом)
Record Priority Policy

Политики определяют записывать вызов или нет, если настройки двух ектеншенов вступают в противоречие друг с другом. Более высокий приоритет определяет политику. Если приоритеты равны, используется глобальная настройка Call Recording Policy - caller или callee (вызывающий или вызываемый) . По умолчанию выше вызывающий. Например:

  • Yesпротив Never - never победил
  • Yesпротив No - пошли меряться члприоритетами
    • приоритеты равны - Вызывающий победил (по умолчанию)
  • Forceпротив Never - - Вызывающий победил (по умолчанию)

FreePBX

Настройка DAHDI - chan_dahdi

$
0
0

Настройка DAHDI - chan_dahdi

Драйвер DAHDI отвечает за работу плат интерфейсов телефонии устанавливаемых непосредственно в сервер или работающих по TDM over IP, от Digium и других производителей: Openvox, Sangoma, Parabel, Cronyx и др..

DAHDI Linux и DAHDI Tools

Dahdi linux драйвер с открытым исходным кодом, для взаимодействия Asterisk с телефонным оборудованием.
Dahdi Tools набор утилит для управления и мониторинга DAHDI устройств.

Скачать DAHDI

настройка E1 - /etc/dahdi/system.conf

span => <Number>,<Timing>,<Line BuildOut>,<Framing>,<Coding>[,Yellow]

Драйвер DAHDI работает с синхронным оборудованием, т.е. каждая следующая порция данных в следующий такт должна быть доступна. Если Периферийных устройств несколько - они должны работать синхронно, по одним часам.

В синхронной сети должно выполняться одно простое правило - master должен быть соединен с slave. Если это правило нарушается - будут потерянные(skip) или повторенные (slip) кадры.

Предположим, вы получаете от АТС поток E1, т.е. АТС - master, заводите его в Asterisk/DAHDI, и у вас есть внутренний коммутатор. В такой схеме вы должны настроить порт 1 платы потока как slave {span = 1,1,0,ccs,hdb3,crc4} , он смотрит на АТС. Порт 2 настроить как master {span = 2,0,0,ccs,hdb3,crc4}, порт 2 будет получать синхронизацию от порта 1, т.к. это одно устройство. Внутренний коммутатор должен быть в режиме slave. DAHDI будет работать с устройствами по часам АТС

Timing:
This determines how timing is handled by the card.
*  0 - Порт является источником синхронизации
*  1 - Получает синхронизацию с удаленной станции
*  2 - Receives secondary backup timing from remote end
*  3 - Receives tertiary backup timing from remote end
*  4 - Receives quaternary backup timing from remote en 
span = 1,1,0,ccs,hdb3,crc4 
bchan = 1-15,17-31
dchan = 16

span = 2,0,0,ccs,hdb3,crc4
bchan = 32-46,48-62
dchan = 47

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

ISDN PRI - /etc/asterisk/chan_dahdi.conf

chan_dahdi.conf - определяет параметры каналов TDM интерфейса DAHDI. Каналы должны быть определены в этом файле, чтобы Asterisk мог их использовать.
chan_dahdi.conf состоит из секций, а секции в свою очередь из ключевых слов и их значений. Значения могут быть булевы (да/нет), или содержать специфичные для данного ключевого слова значения. Секции используют формат наследования свойств объекта.

context - привязывает канал к контексту в плане набора (диалплане), тем самым определяя действия при инициации вызова. :

context => default

channel - назначает канал или несколько каналов, Каналы могут быть определены индивидуально, через запятую, или диапазоном через дефис.

channel => 16
channel => 2,3
channel => 1-15, 17-31

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

group = 1
group = 2,3
group =

switchtype - устанавливает тип сигнализации для PRI.

  • national: National ISDN type2 (Американский)
  • ni1: National ISDN type 1
  • dms100: Nortel DMS100
  • 4ess: AT&T 4ESS
  • 5ess: Lucent 5ESS
  • euroisdn: EuroISDN
  • qsig: Протокол с минимальной функциональностью, используемый для построения «сети» между двумя или более АТС от различных производителей.
switchtype => euroisdn

signalling - Параметр устанавливает тип соединения и/или сигнализации. Эти параметры должны соответствовать тому, что описано в конфигурации драйвера DAHDI (/etc/dahdi/system.conf). Значение этого параметра частично зависит от типа используемой Вами интерфейсной карты. Сервер Asterisk не запустится: если определение типа соединения для канала неправильное или нерабочее, если значение не совпадает с тем, что описано в конфигурации Zaptel драйвера или, если устройство не установлено или сконфигурировано не должным образом. Во многих случаях, правильное значение этого параметра - это одно из этих четырех значений: fxs_ks, fxo_ks, pri_cpe or pri_net. Этот параметр не имеет значения по умолчанию, Вы обязательно должны определить его значения перед описанием какого-либо канала. Полный список типов соединений и сигнализаций

  • fxo_ks: Используется для сигнализации FXS устройств.
  • fxs_ks: Противоположная сторона fxo_ks. Для сигнализации FXO устройств
  • pri_cpe: Сигнализация PRI. Клиентская сторона оборудования (user)
  • pri_net: Сигнализация PRI, network side.

:!:Аналоговые интерфейсы могут стать источником путаницы в Asterisk.
Для FXS интерфейсов используется fxo_ks.
Для FXO - fxs_ks.

signalling => fxs_ks

priindication: Этот параметр устанавливает то, как сервер Asterisk должен сигнализировать состояние Busy() и Congestion() для удаленного коммутатора или пользователя. По умолчанию: inband. Доступные значения следующие:

  • inband: Сервер Asterisk будет сам проигрывать тональные сигналы без перевода канала в отвеченное состояние; Не доступно для всех соединений PRI/BRI.
  • outofband: Сервер Asterisk будет разрывать связь с информационным кодом busy/congestion, при этом уже сам телефонный коммутатор будет проигрывать тональные сигналы пользователю. Busy(), в этом случае, это то же самое, что установка: PRI_CAUSE=17 и выполнение команды: Hangup().

pridialplan - устанавливает тип плана набора для ISDN PRI. Игнорируется в большинстве случаев. Может понадобиться для корректной работы CallerID Доступные значения: unknown, local, private, national, international.

pridialplan => national

overlapdial: если - «yes», то набранные цифры будут сразу отправляться в поток. По умолчанию: no. (enblock)

overlapdial => yes

Состояние аналоговых вызовов

В этой секции описываются директивы сигнализирующие о состоянии вызовов аналоговых интерфейсов.

busydetect - детектирование сигнала занято для FXS, FXO или T1 (E&M, Wink, Feature Group D). Значение 'yes' или 'no'.

callprogress - контроллировать состояние вызова (КПВ, занято или подняли трубку). Значение 'yes' или 'no'.

busydetect => yes
callprogress => yes

Функции CallerID

usecallerid - разрешить или запретить передачу CallerID (yes/no) По умолчанию 'yes'.

hidecallerid - скрывать исходящий CallerID. По умолчанию 'no'.

calleridcallwaiting - получать CallerID во время вызова.

usecallerid => yes
hidecallerid => no

callerid - устанавливает CallerID для данного канала. Принимает данные правильного формата «имя» и <номер>. Возможное значение 'asreceived' для передачи полученных значений.

callerid => "Oleg" <8123216111>
callerid =>
callerid => asreceived

Call feature options

Эти параметры включают или отключают дополнительные опции для FXS (FXO) каналов, такие как конференция и пере-адресация и т.д.. Значения могут быть только (yes/no)

threewaycalling - разрешает или запрещает three-way calling для канала.

cancallforward - разрешает или запрещает функцию «следуй за мной».

transfer - разрешает или запрещает функцию флэш для канала (для включения threewaycallingдолжно быть 'yes')

immediate - Если этот режим установлен 'yes', входящий вызов немедленно направляется на расширение 's' без тона набора и чтения цифр.

ADSI - Включает или выключает поддержку ADSI. ADSI спецификации системы, аналогичной Caller ID для передачи закодированной информация для аналоговых телефонов. Это позволяет создавать интерактивные меню и обеспечивает доступ к таким услугам, как голосовая почта, посредством текстового интерфейса.

threewaycalling = yes
transfer = yes
immediate = no
adsi = yes
cancallforward = yes

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

echocancelвключить эхо-подавление. По умолчанию всегда включен.

echocancelwhenbridgedВключение или выключает эхо-подавление в режиме моста между TDM интерфейсами.В принципе в этом режиме не требуется эхо-подавления, но иногда это позволяет улучшить качество связи. Значение (yes / no).

rxgain - регулировка усиления приемника.
txgain - регулировка усиления передатчика.

echocancel = yes
echocancelwhenbridged = no
rxgain = 20%

Call Logging Options

Эти параметры влияют на записи Call Detail Records Asterisk.
amaflags: Устанавливает AMA флаги, влияющие на классификацию записей в Call Detail Records. Принимает следующие значения:

billing: маркирует для биллинга
documentation: маркирует для документирования.
omit: не записывать информацию о звонке.
default: по умолчанию.

accountcode: Устанавливает код счета за звонки. Код в счете может иметь любое буквенное или цифровое значение.

accountcode = oleg145
amaflags = billing

Asterisk -vvvvvv команды CLI для тестирования DAHDI

dahdi show status
localhost*CLI> dahdi show status
Description                              Alarms  IRQ    bpviol CRC    Fra Codi Options  LBO
Wildcard TE121 Card 0                    OK      2      -1     -1     CCS HDB3          0 db (CSU)/0-133 feet (DSX-1)

Команда dahdi show status отобразит состояние установленных плат.

dahdi show channels

dahdi show channels

localhost*CLI> dahdi show channels
   Chan Extension  Context         Language   MOH Interpret        Blocked    State
 pseudo            default                    default                         In Service
      1            from-avaya      en         default                         In Service
      2            from-avaya      en         default                         In Service
      3            from-avaya      en         default                         In Service
      4            from-avaya      en         default                         In Service
      5            from-avaya      en         default                         In Service
      6            from-avaya      en         default                         In Service
      7            from-avaya      en         default                         In Service
      8            from-avaya      en         default                         In Service
      9            from-avaya      en         default                         In Service
     10            from-avaya      en         default                         In Service
     11            from-avaya      en         default                         In Service
     12            from-avaya      en         default                         In Service
     13            from-avaya      en         default                         In Service
     14            from-avaya      en         default                         In Service
     15            from-avaya      en         default                         In Service
     17            from-avaya      en         default                         In Service
     18            from-avaya      en         default                         In Service
     19            from-avaya      en         default                         In Service
     20            from-avaya      en         default                         In Service
     21            from-avaya      en         default                         In Service
     22            from-avaya      en         default                         In Service
     23            from-avaya      en         default                         In Service
     24            from-avaya      en         default                         In Service
     25            from-avaya      en         default                         In Service
     26            from-avaya      en         default                         In Service
     27            from-avaya      en         default                         In Service
     28            from-avaya      en         default                         In Service
     29            from-avaya      en         default                         In Service
     30            from-avaya      en         default                         In Service
     31            from-avaya      en         default                         In Service

Команда dahdi show channels выведет список сконфигурированных каналов «channel ⇒ 1-15,17-31».

pri show spans
localhost*CLI> pri show spans
PRI span 1/0: Up, Active

Команда pri show spans выводит информацию о ISDN PRI ( в частности статус layer2 - Up или Down)

Linux команды для тестирования DAHDI

ls
[root@localhost ~]# ls /dev/dahdi/
1   11  13  15  17  19  20  22  24  26  28  3   31  5  7  9        ctl     timer
10  12  14  16  18  2   21  23  25  27  29  30  4   6  8  channel  pseudo  transcode
lspci
 [root@localhost ~]# lspci | grep Digium
 02:08.0 Ethernet controller: Digium, Inc. Wildcard TE121 single-span T1/E1/J1 card (PCI-Express) (rev 11)
[root@localhost ~]# lspci | grep Ethernet
02:08.0 Ethernet controller: Digium, Inc. Wildcard TE121 single-span T1/E1/J1 card (PCI-Express) (rev 11)
dmesg

на примере Digium te120b

[root@localhost ~]# dmesg | grep wcte12xp
wcte12xp 0000:02:08.0: Setting up global serial parameters for E1
wcte12xp 0000:02:08.0: Found a Wildcard TE121
wcte12xp 0000:02:08.0: Booting VPMADT032
wcte12xp 0000:02:08.0: VPM present and operational (Firmware version 125)
wcte12xp 0000:02:08.0: Span configured for CCS/HDB3
cat /proc/dahdi/span_number
[root@localhost ~]# cat /proc/dahdi/1
Span 1: WCT1/0 "Wildcard TE121 Card 0" (MASTER) HDB3/CCS
        BPV count: -1
        CRC4 error count: -1
        E-bit error count: -1
        FAS error count: -1
        IRQ misses: 2

           1 WCT1/0/1 Clear (In use) (EC: VPMADT032 - INACTIVE)
           2 WCT1/0/2 Clear (In use) (EC: VPMADT032 - INACTIVE)
           3 WCT1/0/3 Clear (In use) (EC: VPMADT032 - INACTIVE)
           4 WCT1/0/4 Clear (In use) (EC: VPMADT032 - INACTIVE)
           5 WCT1/0/5 Clear (In use) (EC: VPMADT032 - INACTIVE)
           6 WCT1/0/6 Clear (In use) (EC: VPMADT032 - INACTIVE)
           7 WCT1/0/7 Clear (In use) (EC: VPMADT032 - INACTIVE)
           8 WCT1/0/8 Clear (In use) (EC: VPMADT032 - INACTIVE)
           9 WCT1/0/9 Clear (In use) (EC: VPMADT032 - INACTIVE)
          10 WCT1/0/10 Clear (In use) (EC: VPMADT032 - INACTIVE)
          11 WCT1/0/11 Clear (In use) (EC: VPMADT032 - INACTIVE)
          12 WCT1/0/12 Clear (In use) (EC: VPMADT032 - INACTIVE)
          13 WCT1/0/13 Clear (In use) (EC: VPMADT032 - INACTIVE)
          14 WCT1/0/14 Clear (In use) (EC: VPMADT032 - INACTIVE)
          15 WCT1/0/15 Clear (In use) (EC: VPMADT032 - INACTIVE)
          16 WCT1/0/16 HDLCFCS (In use) (EC: VPMADT032 - INACTIVE)
          17 WCT1/0/17 Clear (In use) (EC: VPMADT032 - INACTIVE)
          18 WCT1/0/18 Clear (In use) (EC: VPMADT032 - INACTIVE)
          19 WCT1/0/19 Clear (In use) (EC: VPMADT032 - INACTIVE)
          20 WCT1/0/20 Clear (In use) (EC: VPMADT032 - INACTIVE)
          21 WCT1/0/21 Clear (In use) (EC: VPMADT032 - INACTIVE)
          22 WCT1/0/22 Clear (In use) (EC: VPMADT032 - INACTIVE)
          23 WCT1/0/23 Clear (In use) (EC: VPMADT032 - INACTIVE)
          24 WCT1/0/24 Clear (In use) (EC: VPMADT032 - INACTIVE)
          25 WCT1/0/25 Clear (In use) (EC: VPMADT032 - INACTIVE)
          26 WCT1/0/26 Clear (In use) (EC: VPMADT032 - INACTIVE)
          27 WCT1/0/27 Clear (In use) (EC: VPMADT032 - INACTIVE)
          28 WCT1/0/28 Clear (In use) (EC: VPMADT032 - INACTIVE)
          29 WCT1/0/29 Clear (In use) (EC: VPMADT032 - INACTIVE)
          30 WCT1/0/30 Clear (In use) (EC: VPMADT032 - INACTIVE)
          31 WCT1/0/31 Clear (In use) (EC: VPMADT032 - INACTIVE)
проверка прерываний - interrupts
Every 1.0s: cat /proc/interrupts             Sat Aug 16 15:21:34 2014

           CPU0       CPU1
  0:  298549499      30187    IO-APIC-edge  timer
  1:         61          4    IO-APIC-edge  i8042
  8:          1          2    IO-APIC-edge  rtc
  9:          0          0   IO-APIC-level  acpi
 12:       1614         57    IO-APIC-edge  i8042
 14:   41268991         24    IO-APIC-edge  ide0
 50:        126  116383116         PCI-MSI  eth0
 58:        168          0         PCI-MSI  hda_intel
169:       8391  298523206   IO-APIC-level  uhci_hcd:usb5, wcte12xp0
217:          0          0   IO-APIC-level  uhci_hcd:usb4
225:          0          0   IO-APIC-level  ehci_hcd:usb1, uhci_hcd:usb2
233:       2119    3653665   IO-APIC-level  uhci_hcd:usb3, ata_piix
NMI:          0          0
LOC:  298575253  298575261
ERR:          0
MIS:          0

DAHDI Tools

dahdi_tool

modules

модули dahdi

модули dahdi

# Contains the list of modules to be loaded / unloaded by /etc/init.d/dahdi.
#
# NOTE:  Please add/edit /etc/modprobe.d/dahdi or /etc/modprobe.conf if you
#        would like to add any module parameters.
#
# Format of this file: list of modules, each in its own line.
# Anything after a '#' is ignore, likewise trailing and leading
# whitespaces and empty lines.

# Digium TE205P/TE207P/TE210P/TE212P: PCI dual-port T1/E1/J1
# Digium TE405P/TE407P/TE410P/TE412P: PCI quad-port T1/E1/J1
# Digium TE220: PCI-Express dual-port T1/E1/J1
# Digium TE420: PCI-Express quad-port T1/E1/J1
wct4xxp

# Digium TE120P: PCI single-port T1/E1/J1
# Digium TE121: PCI-Express single-port T1/E1/J1
# Digium TE122: PCI single-port T1/E1/J1
wcte12xp

# Digium T100P: PCI single-port T1
# Digium E100P: PCI single-port E1
wct1xxp

# Digium TE110P: PCI single-port T1/E1/J1
wcte11xp

# Digium TDM2400P/AEX2400: up to 24 analog ports
# Digium TDM800P/AEX800: up to 8 analog ports
# Digium TDM410P/AEX410: up to 4 analog ports
wctdm24xxp

# X100P - Single port FXO interface
# X101P - Single port FXO interface
wcfxo

# Digium TDM400P: up to 4 analog ports

Asterisk Dialplan - extensions.conf

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

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

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

$
0
0

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

Документация по настройке и установке Asterisk. Dialplan Realtime CDR Queue Agents SIP PJSIP DAHDI MySQL ODBC Features LDAP ConfBridge AMI ARI NAT SRTP RTP.

Asterisk: установка

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

На нашем сайте собрано множество справочных материалов и руководств по настройке Asterisk. Документация постоянно обновляется и дополняется. Рассмотрим разные аспекты настройки программного комплекса Asterisk, сгруппированные по основным темам.

Asterisk настройка

Конфигурационные файлы Asterisk

Большинство настроек Asterisk контролируются с помощью конфигурационных файлов, расположенных в директории /etc/asterisk. Синтаксис конфигурационных файлов Asterisk разработан для редактирования вручную и имеет простую и понятную структуру. Категории или по иному контексты группируют свойства объектов и отделяют их друг от друга именами в квадратных скобках по принципу наследования. Все, что записано после имени контекста относится к нему, пока не появится следующее имя контекста в квадратных скобках. Практически в каждом кофиге встречается категория [general], которая задает параметры для всех объектов конфигурационного файла. Параметры объектов имеют приоритет над глобальными параметрами, если одинаковый параметр, может быть назначен, как глобально, так и конкретному объекту. Некторые конфиги имеют только заранее определенные секции, например asterisk.confотвечающий за общие настройки pbx. Но в большинстве случаев, для назначения объектов, создаются контексты и задаются их имена. Приведенные ниже примеры конфигов Asterisk 14 с описанием параметров, переведены и дополнены авторами сайта.

Realtime архитектура Asterisk

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

Каналы связи в Asterisk

SIP

Под каналами связи в Asterisk подразумевается набор драйверов для взаимодействия с устройствами и протоколами связи. Так как Asterisk в первую очередь VoIP АТС ключевое значение имеют драйвера взаимодействия с VoIP протоколами, в частности с SIP протоколом. Изначально в Asterisk был один драйвер SIP протокола chan_sip. Но его реализация была неполной и в конкуренции с FreeSWITCH, который имел более продвинутый SIP драйвер, в Asterisk начиная с версии 12, был включен новый драйвер SIP - chan_pjsip.
Поддержка старого драйвера сохраняется и оба драйвера могут действовать совместно.
Однако предпочтительней использовать новый драйвер PJSIP.

IAX

Также в Asterisk реализован собственный VoIP протокол - IAX (Inter Asterisk Exchange). Как и следует из названия, он в первую очередь ориентирован на создание каналов связи между серверами Asterisk. IAX имеет упрощенную структуру, используя один и тот же порт для сигнализации и медиа, что в теории упрощает прохождение NAT и экономит трафик, однако в современных условиях и с появлением PJSIP его преимущества не завоевали ему популярности.

h323

Поддержка устаревшего VoIP протокола h323 может понадобиться для интеграции с устаревшими АТС, например Avaya CSI.

DAHDI

Драйвер DAHDI поддерживает большую линейку устройств, таких как платы потоков ISDN PRI E1, FXO, FXS и GSM интерфейсов.

Local

Прокси - псевдо канал Asterisk, позволяющий вызывать канал любой технологии без явного ее указания.

NAT SIP Asterisk

План набора Asterisk

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

Команды диалплана Asterisk

Функции диалплана Астериск

Asterisk Dialplan functions

Функции Asterisk используются в диалплане. Это не командыдиалпланаи не могут быть использованы прямо. Функции возвращают значение для дальнейшего использования в логике диалплана.

Очереди и Агенты Asterisk

Очередями в Asterisk называется механизм ACD (automated call distribution) для распределения входящих вызовов между агентами колл центра. Конфигурация очередей осуществляется в файле Asterisk: queues.conf, имена очередей вызовов используются в качестве аргумента команды Queueв файле конфигурации плана набора extensions.conf. Агенты, которые обрабатывают вызовы, поступающие в очередь, описываются в файле Asterisk: agents.conf.

Шифрование в Asterisk

Конференции Asterisk

Asterisk позволяет организовать телеконференции с неограниченным числом пользователей.

Абонентские функции Asterisk

В файле features.conf назначаются пользовательские коды абонентских функций Asterisk и опции абонентских функций, такие как:
Переадресация вызова(transfer), перехват вызова (pickup), запись по требованию (record on demand), таймауты между набора и переадресации (digit timeout), паркинг (park) и др.

Отчеты о звонках Asterisk

Детализированный отчет о звонках (CDR) backend для сохранения данных о входящих, исходящих и внутренних вызовах Asterisk. Полное описание на русском языке CDR, MySQL, ODBC etc.

Логи в Asterisk

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

Командная строка является мощным инструментом для мониторинга и управления работой Asterisk PBX

Asterisk AMI

Asterisk manager Interface - интерфейс управления.

Asterisk ARI


Asterisk: queues.conf

$
0
0

Asterisk: queues.conf

Настройка очереди входящих вызовов Asterisk. Подробное описание стратегии вызовов. Penalty, timeout, member и все доступные параметры. Примеры.

Основы работы с очередями в Asterisk

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

/etc/asterisk/queues.conf

[queue_01]
strategy = ringall

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

 exten => s,1,Queue(queue_01)

Для применения параметров очередей и управления ими, могут быть использованы команды консоли Asterisk:

*CLI> queue
add   reload   remove   reset    set      show     pause    unpause

queue reload

*CLI> queue reload
members     parameters  rules       all

Выполните queue reload allдля инициации новой очереди и queue show <имя очереди>для её отображения в консоли Asterisk:

*CLI> queue show queue_01
queue_01 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
   No Members
   No Callers

В данном случае очередь пуста, принимать вызовы некому. Агенты принимающие вызовы в очереди могут быть статическими, т.е. назначены в конфиге очереди - queues.conf:

/etc/asterisk/queues.conf

[queue_01]
strategy = ringall
member = PJSIP/2777

Теперь у очереди есть members, пользователи для обработки входящих вызовов:

*CLI> queue show queue_01
queue_01 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
   Members:
      PJSIP/2777 (ringinuse enabled) (Not in use) has taken no calls yet
   No Callers

Или же, агенты могут быть динамическими, т.е. добавляться при помощи интерфейсов Asterisk - CLI, AMI или AGI.

Пример конфигурации очереди

Комментарии даны относительно заданного в примере значения.

  • [queue_01] ;имя очереди, все параметры заданные после него и до следующих […] скобок, будут относится к данной очереди.
  • announce-frequency=45 ;объявление каждые 45 секунд
  • announce-holdtime=yes ;объявлять среднее время ожидания
  • announce-position=yes ;объявлять позицию в очереди
  • autofill=yes ;включить автозаполнение очереди
  • autopause=no ;не вкл. автопаузу если оператор не ответил на вызов
  • autopausebusy=no ; не вкл. автопаузу, если оператор не ответил на вызов когда был занят.
  • autopausedelay=0 ; таймаут автопаузы =0 (выкл.)
  • autopauseunavail=yes ;вкл. автопаузу, если оператор недоступен.
  • joinempty=paused,penalty,inuse,ringing ;присоединиться к очереди, даже если все операторы имеет один из перечисленных статусов.
  • leavewhenempty=no ;не покидать очередь из-за если все недоступны
  • maxlen=11 ;максимально кол-во ожидающих в очереди = 11
  • memberdelay=0 ; пауза между перед соединением агента и вызывающего абонента = 0
  • monitor-type=mixmonitor ; приложение записи - mixmonitor
  • penaltymemberslimit=5 ;если очередь обслуживают 5 или меньше операторов, не использовать пенальти
  • periodic-announce-frequency=0 ;не делать объявление: все операторы заняты (по умолч.)
  • queue-callswaiting=queue-callswaiting ;файлы объявлений в очереди.
  • queue-thankyou=queue-thankyou
  • queue-thereare=queue-thereare
  • queue-youarenext=queue-youarenext
  • reportholdtime=no ; не объявлять агенту время, которое абонент провел в очереди
  • retry=5 ;пауза перед повторным вызовом оператора 5 секунд.
  • ringinuse=no ; не вызывать операторов со статусом 'in use' (вызывается очередью).
  • servicelevel=20 ; считать процент вызовов отвеченных в течении 20 секунд.
  • setqueuevar=yes ; задать переменные очереди
  • setinterfacevar=yes ;задать переменные интерфейсов (операторов очереди)
  • setqueueentryvar=yes ;задать переменные сред. время ожидания и позиция абонента.
  • strategy=ringall ; стратегия - звонят все операторы
  • timeout=15 ; время вызова операторов, перед retry
  • timeoutpriority=app ; приоритет таймаута приложения
  • timeoutrestart=yes ; сбросить таймаут оператора, если он CONGESTION
  • weight=0 ;вес очереди = 0
  • wrapuptime=0 ;время отдыха оператора после вызова = 0
  • member=PJSIP/2777 ;пользователь очереди.

Общие (глобальные) настройки очередей.

 [general]
Persistent Members (Постоянные пользователи )

Сохранять каждого динамического пользователя во внутренней БД Asterisk (astdb), чтобы после перезагрузки, все пользователи были восстановлены из записей очереди в astdb. см. также RemoveQueueMember По умолчанию:

 persistentmembers = no
AutoFill Behavior (Автозаполнение очереди)

Старое, по умолчанию, поведение очереди (autofill=no) подразумевало последовательный тип подключения, при котором ожидающий абонент, подключался к пользователю, только с первой позиции в очереди. Новое поведение по умолчанию, (autofill=yes) позволяет ожидающему абоненту, подключится к пользователю (агенту) очереди, с любой позиции, если есть свободные агенты, не дожидаясь, пока он займет головную позицию. Такое поведение позволяет быстрее обрабатывать вызовы и является предпочтительным.

 autofill = yes

Monitor Type (Приложение для записи разговоров )

Приложение MixMonitorзаписывает разговор непосредственно в один файл, в отличии от устаревшего Monitor, раздельно записывающего вх. исх. голосовые потоки.

 monitor-type = MixMonitor
UpdateCDR behavior(Изменить поведение CDR)

Записать в поле CDR dstchannelимя агента, которое вы можете установить во время входа в систему с параметром MemberName AddQueueMember.

 updatecdr = yes
shared_lastcall (общий последний вызов)

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

 shared_lastcall=no
Negative_penalty_invalid

Рассматривать операторов с отрицательным пенальти, как неактивных (не подавать на них вызовы).

 negative_penalty_invalid = no
log_membername_as_agent

Регистрировать агентов с именем, а не номером интерфейса. параметр для обратной совместимости, поведение как при работе с модулем chan_agents.

 log_membername_as_agent = no

Параметры очередей Asterisk

 [queuename]
Musicclass

Устанавливает класс Музыки на Удержании (MOH) используемый данной очередью. Эта установка будет иметь приоритет над всеми, кроме переменной канала, заданной в диалплане: Set(CHANNEL(musicclass)=whatever)

 musicclass = default
announce

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

 announce = file_to_play

strategy

Стратегия вызова операторов очереди.

Важнейший параметр, указывает как будет распределяться вызовы между агентами:

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

Таким образом, оператор с пенальти 0 будет иметь метрику в диапазоне от 0 до 1000,
оператор с пенальти 1 от 0 до 2000,
а оператор с пенальти 2 будет иметь метрику между 0 и 3000.
Обратите внимание, что при использовании этой стратегии, пенальти оператора не такой же,
как при использовании других стратегий очереди.
Он используется ТОЛЬКО в качестве весового коэффициента для вычисления метрики.

 strategy = ringall
servicelevel

Параметр статистики. Задает диапазон от 0 до servicelevel=в секундах. Приложение app_queueвысчитает процент вызовов, отвеченных за указанный период. Например, если servicelevel=30 ожидавших в очереди не более 30-ти секунд.

 servicelevel=30

Ниже приведен пример, где мы видим, что 89.4% процента вызовов в очереди q1были отвечены в течении 30 секунд (SL:89.4% within 30s).

*CLI> queue show q1
q1 has 0 calls (max unlimited) in 'leastrescent' strategy (6s holdtime, 120s talktime), W:0, C:5156, A:584, SL:89.4% within 30s
   Members:
      SIP/4886 (ringinuse disabled) (Not in use) has taken no calls yet
      SIP/4887 (ringinuse disabled) (Not in use) has taken no calls yet
      PJSIP/4889 (ringinuse disabled) (Unavailable) has taken no calls yet
   No Callers
context

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

 context = context_name
penaltymemberslimit

не использовать penalty, если очередь обслуживают кол-во операторов меньшее или равное тому, что указано:

 penaltymemberslimit = 5

Timeout

Примечание для рассматриваемых далее таймаутов очереди.
Таймаут выхода из очереди по не ответу, не является параметром очереди, а может быть назначен как опция вызова приложения Queue
Queue(queuename,[options],[optionalurl],[announceoverride],[timeout])
Пример:

 Queue(queuename,t,,,45)

queue timing options

Очередь имеет два разных «таймаута» связанных с ней. Один из них назначается в queue.conf. Этот таймаут указывает в течении какого промежутка времени, в секундах, будет вызываться телефон пользователя, прежде чем будет считаться, что он не ответил. Второй таймаут, это аргумент приложения Queue(). Это абсолютный таймаут, по истечении которого, вызов выходит из очереди и переходит на следующий приоритет в контексте. В некоторых ситуациях, эти таймауты сталкиваются. Например, если таймаут в queue.confустановлен 5 секунд, retry = 4 секунды, а таймаут приложения Queue()задан 10 секунд
произойдет следующее:

  • вызов попадает в очередь
  • очередь выбирает оператора и вызывает его в течении 5 секунд
  • затем выдерживается время retry - 4 секунды
  • очередь выбирает второго оператора.

Как долго будет вызываться второй оператор? Осталась 1 секунда до истечения абсолютного таймаута приложения Queue(). Будет ли второй оператор вызываться 1 секунду или 5 как задано в таймауте queue.conf?

Эту коллизию призван разрешить параметр timeoutpriority: если timeoutpriority=conf, то второй оператор будет вызваться в течении 5-ти секунд. Если timeoutpriority=app, то в течении 1-й секунды.

Существуют и некоторые исключения и приведенных выше правил:
предположим timeoutpriority=app, в queues.confтаймаут равен 0, а аргумент приложения Queueзадан 10 сек.
Тогда timeoutpriorityигнорируется, а таймаут приложенияиспользуется как таймаут вызова операторов queues/conf.
И наоборот, если таймаут приложенияне задан, тогда timeoutpriorityигнорируется и таймаут конф. файлаqueues.confвсегда используется.

Несмотря на то, что timeoutpriority=confтаймаут конфигурационного файлаqueues.confимеет приоритет над таймаутом приложения,
если таймаут конф. файларавен 0, каждый участник очереди будет вызываться в течении неопределенного времени, а таймаут приложениябудет проверяться после этих попыток.

По умолчанию: timeoutpriority=app

timeout = 15
retry = 5
timeoutpriority = app|conf
weight

Чем выше вес (weight) очереди, тем выше приоритет для вызова оператора обслуживающего больше одной очереди.
по умолч. 0

 weight=0
wrapuptime

После завершения успешного вызова, время отдыха оператора, прежде чем он снова сможет принимать вызовы. по умолч. 0

 wrapuptime=0
autofill

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

 autofill=yes|no
autopause

Поставить оператора на паузу, если он не ответил на вызов. см. также PauseQueueMember

  • no: Не использовать автопаузу для данной очереди.
  • yes: Поставить на паузу, только в данной очереди.
  • all: Поставить на паузу во всех очередях, которые обслуживает оператор.
 autopause=no|yes|all
Autopausedelay

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

 autopausedelay=60
Autopausebusy

Ставить или нет оператора на паузу, если он занят (BUSY).

autopausebusy=no
Autopauseunavail

Ставить или нет оператора на паузу, если он недоступен (UNAVAILABEL).

 autopauseunavail=no
maxlen

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

maxlen=0
variables

Примечание для рассматриваемых ниже параметров очереди - setinterfacevar, setqueueentryvar, setqueuevar. Если канал оператора (member channel) определен как Local, то для установки переменных он должен быть оптимизирован при помощи опции /n. Например:

 Local/2666@from-queue/n

Если setinterfacevar=yes, то следующие переменные будут назначены в каналах вызывающего абонента и оператора очереди:

  • MEMBERINTERFACE - наименование интерфейса оператора(например. Local/1234)
  • MEMBERNAME - имя оператора (например. O.Agentova)
  • MEMBERCALLS - кол-во вызовов принятых данным интерфейсом оператора.
  • MEMBERLASTCALL - Время последнего вызова (UNIX-time).
  • MEMBERPENALTY - штраф (penalty) оператора.
  • MEMBERDYNAMIC - указывает динамический пользователь или нет.
  • MEMBERREALTIME - указывает realtime конфигурация оператора или нет.
 setinterfacevar=no

пример

пример

мы видим что интерфейс SIP/4887 динамический и время последнего вызова в UNIX-time.

exten => s,1,Queue(q1,cF,,,30)
   same => n,verbose(${MEMBERLASTCALL})
   same => n,verbose(${MEMBERDYNAMIC})
   same => n,verbose(${MEMBERINTERFACE})
-- Executing [s@from-fs-pjsip:1] Queue("PJSIP/fs_pjsip-0000003b", "q1,cF,,,30")
-- Called SIP/4887
-- SIP/4887-00000041 is ringing
-- SIP/4887-00000041 answered PJSIP/fs_pjsip-0000003b
-- Stopped music on hold on PJSIP/fs_pjsip-0000003b
-- Executing [s@from-fs-pjsip:2] Verbose("PJSIP/fs_pjsip-0000003d", "1476870427") 
-- Executing [s@from-fs-pjsip:3] Verbose("PJSIP/fs_pjsip-0000003b", "1") 
-- Executing [s@from-fs-pjsip:4] Verbose("PJSIP/fs_pjsip-0000003b", "SIP/4887")
setqueueentryvar

Если setqueueentryvar=yes, то следующие переменные будут назначены в каналах вызывающего абонента и оператора очереди:

  • QEHOLDTIME - время ожидания вызывающего абонента.
  • QEORIGINALPOS - позиция в очереди.
 setqueueentryvar=no
setqueuevar

Если setqueuevar=yes, то следующие переменные будут назначены в каналах вызывающего абонента и оператора очереди, при соединении или когда вызывающий абонент покидает очередь:

  • QUEUENAME - имя очереди.
  • QUEUEMAX - максимальное кол-во вызовов разр. в очереди;
  • QUEUESTRATEGY - стратегия очереди;
  • QUEUECALLS - текущее кол-во вызовов в очереди;
  • QUEUEHOLDTIME - среднее время ожидания в очереди на данный момент;
  • QUEUECOMPLETED - кол-во обработанных вызовов;
  • QUEUEABANDONED - кол-во отвергнутых (неотвеченных) вызовов;
  • QUEUESRVLEVEL - уровень обслуживания очереди;
  • QUEUESRVLEVELPERF - процент вызовов отвечающих условию servicelevelна данный момент;
 setqueuevar=no
membermacro

Если установлено, выполнить Macro, когда соединение с оператором установлено.
Эта опция может быть перекрыта параметром macroприложения Queue()

 membermacro=macro_name[,arg1[,...][,argN]]
membergosub

Если установлено, выполнить GoSub, когда соединение с оператором установлено.
Эта опция может быть перекрыта параметром gosubприложения Queue()

 membergosub=gosub_context_name[,arg1[,...][,argN]]
announce-frequency

Как часто анонсировать позицию в очереди и среднее время ожидания. Если 0 то не анонсировать. Примечание: этот параметр игнорируется при изменении позиции абонента в очереди (см. min-announce-frequency)

 announce-frequency = 90
min-announce-frequency

Минимальный интервал между моментом перехода на следующую позицию и анонсом среднего времени удержания. Это полезно для избежания постоянных объявлений когда позиция в очереди абонента часто меняется. т.е., если позиция в очереди изменилась, то не оповещать, даже если подошло время announce-frequency. (см. announce-frequency)

 min-announce-frequency = 15
periodic-announce-frequency

Как часто делать periodic-announce.

 periodic-announce-frequency=60
random-periodic-announce

Производить периодическое оповещение в случайном порядке? По умолчанию - no.

 random-periodic-announce=no
relative-periodic-announce

Отсчитывать время для periodic-announceс момента завершения предыдущего анонса, а не от его начала. по умолчанию выключено.

 relative-periodic-announce=no
announce-holdtime

Включать объявление о среднем времени ожидания в объявление о позиции в очереди?
Можно указать yes, noили once (один раз).

 announce-holdtime = yes|no|once
announce-position

Объявлять позицию в очереди?
Возможные значения: «yes», «no», «limit», или «more».

  • yes - оповещать о позиции ожидающего абонента;
  • more - если кол-во ожидающих в очереди больше чем задано в announce-position-limit.

т.е., если announce-position-limit=5объявлять, что в очереди ожидают больше 5-ти абонентов.

  • limit - только ожидающие абоненты в пределах announce-position-limitуслышат объявление.
  • no - не объявлять позицию.
 announce-position = yes
announce-to-first-user

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

 announce-to-first-user = no
announce-position-limit

Если назначено «limit» или «more» в announce-positionбудет задействован этот параметр.

 announce-position-limit = 5
announce-round-seconds

Округлять тайминги объявлений до заданного значения, если не = 0 Возможные значения 0, 5, 10, 15, 20, and 30.

announce-round-seconds = 10
Аудио файлы используемые для объявлений

Если не заданы другие, используются файлы перечисленные ниже:

queue-youarenext = queue-youarenext ;(«You are now first in line.»)

queue-thereare = queue-thereare ; («There are»)

queue-callswaiting = queue-callswaiting ; («calls waiting.»)

queue-holdtime = queue-holdtime ; («The current est. holdtime is»)

queue-minute = queue-minute ; («minute.»)

queue-minutes = queue-minutes ; («minutes.»)

queue-seconds = queue-seconds ; («seconds.»)

queue-thankyou = queue-thankyou ; («Thank you for your patience.»)

queue-reporthold = queue-reporthold ; («Hold time»)

periodic-announce = queue-periodic-announce ; («All reps busy / wait for next»)

queue-less-than

queue-quantity1

queue-quantity2

periodic-announce

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

 periodic-announce = queue-periodic-announce,your-call-is-important,please-wait
monitor-format

Для включения записи вызовов, требуется задать «monitor-format»,
если monitor-formatне задан, запись разговоров считается выключенной.
Вызовы будут записаны только с момента поднятию трубки оператором.

 monitor-format = gsm|wav|wav49
Queue Empty Options(параметры заполнения очереди)

Параметры очереди Asterisk «joinempty» и «leavewhenempty» регламентируют условия при которых абонент может встать в очередь и покинуть ее, соответственно.
Параметры «joinempty» и «leavewhenempty» могут принимать несколько значений, перечисленных через запятые.
Ниже приведем список факторов влияющих на эти параметры:

  • paused: считать недоступным, если оператор на паузе;
  • penalty: считать недоступным, если пенальти оператора меньше чем QUEUE_MAX_PENALTY;
  • inuse: считать недоступным, если телефон оператора в данный момент вызывается (звонит);
  • ringing: a member is not considered available if his phone is currently ringing
  • unavailable: Касается в основном каналов Agent (заданных в agents.conf). если агент назначен в agent.conf, но не зарегистрировался(каналы Agent можно считать устаревшими)
  • invalid: Интерфейсы имеющие статус «invalid».
  • unknown: Не имеющий явного статуса оператор.
  • wrapup: Оператор на таймауте wrapuptimeпосле вызова.

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

 joinempty = paused,inuse,invalid

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

 leavewhenempty = inuse,ringing

; Устаревшие значения, могут быть указаны для обратной совместимости:

  • yes - (empty) for joinempty; penalty,paused,invalid for leavewhenempty
  • no - penalty,paused,invalid for joinempty; (empty) for leavewhenempty
  • strict - penalty,paused,invalid,unavailable
  • loose - penalty,invalid
reportholdtime

Если нужно оповестить оператора о том сколько абонент ожидал в очереди.

 reportholdtime = no
ringinuse

Чтобы избежать посылки вызова на оператора, чей интерфейс находится с состоянии 'in use', установите = no. Помимо общего значения очереди, можно установить этот параметр для отдельных пользователей очереди через команду QUEUE_MEMBER, поле 'ringinuse' реалтайм пользователей и CLI/AMI:

*CLI> queue set ringinuse no on SIP/4887 in queue1

 SIP/4887 (ringinuse disabled) (dynamic) (Not in use)

*CLI> queue set ringinuse yes on SIP/4887 in queue1

 SIP/4887 (ringinuse enabled) (dynamic) (Not in use)

только драйверы каналов SIP и PJSIP поддерживают в данный момент статус 'in use'

 ringinuse = no
memberdelay

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

  memberdelay = 0
timeoutrestart

Если параметр «timeoutrestart» установлен в значение yes, тогда значение таймаута для агента будет сбрасываться, если от него будет получен сигнал BUSY или CONGESTION. Это бывает полезно, когда агент имеет возможность отметить вызов, отвергая его или, производя некоторые действия, которые имеют подобный эффект. (Обнаружено, что если вызов агента завершился со статусом NOANSWER (ring, no-answer), это так же заставляет вызов отправить к следующему агенту в очереди по алгоритму roundrobin).

 timeoutrestart = no
defaultrule

назначить правила по умолчанию. Конфигурация находится в queuerules.conf

 defaultrule = myrule

Members

Каждый пользователь очереди перечисляется в отдельной строке
в виде технология/строка набора. Под пользователем понимается оператор очереди.
Дополнительный параметр penaltyможет быть задан после запятой.

Каждый оператор очереди Asteriskимеет параметр penalty.
Пенальти может быть определен в настройках пользователя очереди:

  member ⇒ interface[,penalty][,membername][,state_interface][,ringinuse]

или при добавлении динамического агента:

  queue add member <dial string> to <queue> [[[penalty <penalty>] as <membername>] state_interface <interface>] 

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

Предположим, очередь обслуживают 3 оператора с пенальти - 0,1 и 2 соответственно.
Первым будет вызван оператор с пенальти = 0 и только если он недоступен, оператор с пенальти = 1 и так далее.

Пенальти оператора может быть динамически изменен, например через CLI:

 queue set penalty <penalty> on <interface> [in <queue>]

или через AMI Actions QueuePenalty.

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

После второй запятой назначается имя.
Использование имени может быть удобно для представления в логах очереди.
Разные интерфейсы могут использовать одно имя.

Дополнительное описание интерфейса указывается после третьей запятой.
На этот интерфейс будут посылаться уведомления app_queue,
но для вызова будет всегда использоваться указанный первым интерфейс.

 member => interface [,penalty][,membername][,state_interface][,ringinuse]
member => DAHDI/1
member => DAHDI/2,10
member => DAHDI/3,10,Stev Morrissev
member => Local/1000@default,0,Patty Smithoff,SIP/1000
member => Local/2000@default,0,Syd Buratinov,SIP/2000,no

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

Команда Asterisk: AddQueueMember

Asterisk: PauseQueueMember

Команда Asterisk: Queue

Asterisk: QueueLog

Asterisk: RemoveQueueMember

Asterisk: UnpauseQueueMember

Asterisk queuerules.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

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

FXO

$
0
0

FXO

FXO (англ. Foreign Exchange Office) — голосовой интерфейс, эмулирующий расширение интерфейса PABX (PBX), для подключения телефонной станции к мультиплексору.

Аббревиатура FXO может относиться к любому разъёму устройства телефонии, который замыкает цепь приходящего к нему двужильного провода. Если на другом конце провода находится устройство с FXS-разъёмом, которое подает переменное напряжение на жилы провода, то цепь замыкается и по ней начинает идти переменный ток (то есть связь установлена, устройства начинают обмениваться информацией). Если же на концах провода будут два FXO- или два FXS-устройства, то никакую связь установить не удастся.

Самым распространённым примером устройства с FXS-интерфейсом является АТС. Самым распространённым примером устройства с FXO-интерфейсом является обычный стационарный телефон. АТС, впрочем, как правило имеют не только FXS-, но и FXO-разъёмы, а также ряд других интерфейсов для сопряжения с самыми разными сетями — от ISDN до IP-сетей.

DID

$
0
0

DID

DID— сокращение от Direct Inward Dialing.

Возможность офисной АТС использовать несколько городских номеров для маршрутизации входящих вызовов из городской телефонной сети ТФОП. Разработанная в 1960-х годах компанией AT&T и основанная на более ранних разработках IKZ (сервиса Deutsche Bundespost), она помогла разделять небольшое количество городских линий между значительно большим количеством внутренних абонентов. Сервис имеет также термин Direct Dial-in (DDI).

По-русски говоря — это телефонный номер выделеный в абстракт. Но этот абстракт сегодня активно обменивается и продаётся.

Актуальное использование — на VoIP шлюзах, которые соединяют ТФОП — телефонную сеть общего пользования и IP сети. В конфигурациях этих шлюзов создаются диал-пиры — виртуальные объекты, которые определяют маршрутизацию телефонных звонков. Похожим образом выглядит маршрутизация IP-пакетов, где решение о маршруте принимается исходя из DestinationIP — адреса назначения. И в том и другом случае имеет место две важных характеристики: источник и назначение. SourceIP-DestinationIP так выглядит условно IP-пакет, и ANI-DNID (CallerID-CalledID) — так выглядит телефонный звонок. Таким образом определяются две различные модели поведения при прохождении телефонного звонка:

Шлюз принимает на себя звонок, и

выдаёт позвонившему длинный гудок для донабора,
      или
      перенаберёт номер, который будет указан как plar.

Шлюз пропустит звонок насквозь, если будет указано direct-inward-dial и направит его в подходящий диал-пир согласно CalledID.

FXS

$
0
0

FXS

FXS: (англ. Foreign eXchange Station) конечный аналоговый интерфейс, для подключения обычного телефона к мультиплексору.

ISDN

$
0
0

ISDN

(англ. Integrated Services Digital Network) цифровая сеть с интеграцией служб. Позволяет совместить услуги телефонной связи и обмена данными.

Назначение

Основное назначение ISDN — передача данных со скоростью до 64 кбит/с по 4-килогерцовой проводной линии и обеспечение интегрированных телекоммуникационных услуг (телефон, факс, и пр.). Использование для этой цели телефонных проводов имеет два преимущества: они уже существуют и могут использоваться для подачи питания на терминальное оборудование.

Выбор 64 кбит/c стандарта определяется следующими соображениями. При полосе частот 4 кГц, согласно теореме Котельникова, частота дискретизации должна быть не ниже 8 кГц. Минимальное число двоичных разрядов для представления результатов стробирования голосового сигнала при условии логарифмического преобразования равна 8. Таким образом, в результате перемножения этих чисел и получается значение полосы B-канала ISDN. Базовая конфигурация каналов имеет вид 2 × B + D = 2 × 64 + 16 = 144 кбит/с. Помимо B-каналов и вспомогательного D-канала ISDN может предложить и другие каналы с большей пропускной способностью: канал Н10 с полосой 384 кбит/с, Н11 — 1536 и Н12 — 1920 кбит/c (реальные скорости цифрового потока). Для первичных каналов (1544 и 2048 кбит/с) полоса D-канала может составлять 64 кбит/с.

Принцип работы

Для объединения в сети ISDN различных видов трафика используется технология TDM (англ. Time Division Multiplexing, временно́е разделение). Для каждого типа данных выделяется отдельная полоса, называющаяся элементарным каналом (или стандартным каналом). Для этой полосы гарантируется фиксированная, согласованная доля полосы пропускания. Выделение полосы происходит после подачи сигнала CALL по отдельному каналу, называющемуся каналом внеканальной сигнализации.

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

Тип Полоса Описание
AАналоговая телефонная линия, 4кГц.
B 64 кб/спередача данных или 1 телефонная линия (1 поток оцифрованного звука)
C 8/16 кб/с передача данных
D 16/64 кб/сКанал внеканальной сигнализации (управление другими каналами)
E 64 кб/с Внутренняя сигнализация ISDN
H0 384 кб/спередача данных
H10 1472 кб/спередача данных
H11 1536 кб/с передача данных
H12 1920 кб/с передача данных

Интерфейс базового уровня

Интерфейс базового уровня BRI (англ. Basic Rate Interface) — обеспечивает пользователю предоставление двух цифровых каналов (ОЦК) по 64 кбит/с (канал B) и однополосный канал сигнализации D со скоростью передачи данных 16 кбит/с. Таким образом, максимальная скорость передачи в интерфейсе BRI (2B+D) составляет Rbmax=128+16=144 кбит/с[1] Наиболее распространённый тип сигнализации — DSS1 (Euro ISDN). Используется два магистральных режима портов BRI относительно станции или телефонов — S/ТЕ и NT. Режим S/ТЕ — порт эмулирует работу ISDN телефона, режим NT — эмулирует работу станции. Отдельное дополнение — использование ISDN телефона с дополнительным питанием в этом режиме, так как стандартно не все порты (и карты HFC) дают питание по ISDN шлейфу — англ. inline power. Каждый из двух режимов может быть «точка-многоточка» англ. point-to-multi-point (PTMP) он же MSN, или «точка-точка» англ. point-to-point (PTP). В первом режиме для поиска адресата назначения на шлейфе используются номера MSN, которые, как правило, совпадают с выделенными провайдером телефонии городскими номерами. Провайдер должен сообщить передаваемые им MSN. Иногда провайдер использует так называемые «технические номера» — промежуточные MSN. Во втором режиме BRI порты могут объединяться в транк — условную трубу, по которой передаваемые номера могут использоваться в многоканальном режиме.

ISDN технология использует три основных типа интерфейса BRI: U, S и T.

  • U— одна витая пара, проложенная от коммутатора до абонента, работающая в полном или полу-дуплексе. К U-интерфейсу можно подключить только 1 устройство, называемое NT-1 (или NT-2) Network Termination — сетевое окончание.
  • S/Tинтерфейс (S0). Используются две витые пары, передача и приём. Может быть обжата как в RJ-45 так и в RJ-11 гнездо/кабель. К гнезду S/T интерфейса можно подключить одним кабелем (шлейфом) по принципу шины до 7 ISDN устройств — телефонов, модемов, факсов, называемых TE1 (Terminal Equipment 1). Каждое устройство слушает запросы в шине и отвечает на привязанный к нему MSN. Принцип работы во многом похож на SCSI.
  • NT-1, NT-2— Network Termination, сетевое окончание. Преобразовывает одну пару U в один (NT-1) или два (NT-2) 2-х парных S/T интерфейса (с раздельными парами для приёма и передачи). По сути S и T это одинаковые с виду интерфейсы, разница в том, что по S интерфейсу можно подать питание для TE устройств, телефонов например, а по T — нет. Большинство NT-1 и NT-2 преобразователей умеют и то и другое, поэтому интерфейсы чаще всего называют S/T.

Интерфейс первичного уровня

(Primary Rate Interface, PRI) — используется для подключения к широкополосным магистралям, связывающим местные и центральные АТС или сетевые коммутаторы. Интерфейс первичного уровня объединяет 23 В-канала и один D-канал для стандарта Т1 23B+D (распространен в Северной Америке и Японии); или 30 В-каналов и один D-канал для стандарта E1 30B+D (распространён в Европе). Элементарные каналы PRI могут использоваться как для передачи данных, так и для передачи оцифрованного телефонного сигнала.

Интерфейс первичного уровня (англ. Primary Rate Interface, PRI) — стандартный интерфейс сети ISDN, определяющий дисциплину подключения станций ISDN к широкополосным магистралям, связывающим местные и центральные АТС или сетевые коммутаторы. Интерфейс первичного уровня объединяет 23 В-канала и один D-канал для стандарта Т1 (23B + D=24*64=1536[kBit/s]) или 30 В-каналов для голоса или данных, один D-канал для сигнализации и один Н-канал для служебных данных стандарта E1 (30B + D + Н=32*64=2048[kBit/s]).

IVR

$
0
0

IVR

IVR (англ. Interactive Voice Response) — система предварительно записанных голосовых сообщений, выполняющая функцию маршрутизации звонков внутри call-центра, пользуясь информацией, вводимой клиентом с помощью тонального набора. Озвучивание IVR — важная составляющая успеха call-центра. Правильно подобранное сочетание музыкального сопровождения, голоса диктора и используемой лексики создаёт благоприятное впечатление от звонка в организацию. Маршрутизация, выполняемая с помощью IVR-системы, обеспечивает правильную загрузку операторов продуктов и услуг компании. Примеры стандартных начальных сообщений:

  • «Здравствуйте! Вы позвонили в компанию АБВ-ком. Нажмите 1 — если хотите узнать о тарифах и условиях подключения, 2 — если хотите уточнить детали своих платежей, 3 — узнать о состоянии своего счета. Если хотите передать факс — просто нажмите СТАРТ на своем факсимильном аппарате. Спасибо!»
  • «Здравствуйте! Наберите внутренний номер абонента в тональном режиме, или дождитесь ответа оператора.»

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

Наиболее передовой технологией является IVR в сочетании с дикторо-независимым распознаванием речи. Это значит, что любой дозвонившийся — мужчина, женщина или ребенок могут вызывать суб-меню, абонентов, расширения просто голосом. В таких интерактивных меню действуют модули, распознающие запросы по имени, отчеству и фамилии, названию отдела, произнесению комбинаций цифр, а также и традиционные тональные сигналы (DTMF).

На базе IVR могут быть построены авто-информационные системы, имеющие своей целью предоставить информацию позвонившему абоненту без привлечения оператора Call-центра. Например, информацию о балансе абонента.

MGCP

$
0
0

MGCP

MGCPили Media Gateway Control Protocol дословно — Протокол контроля медиа шлюзов является протоколом связи в распределённых VoIP системах передачи голоса по протоколу IP.

Архитектура

Распределённые системы состоят из Агента — Call Agent (или контроллера медиа шлюза), по крайней мере одного медиа шлюза (MG) и по крайней мере одного сигнального шлюза (SG), подключенных к Телефонной сети общего пользования (ТФОП).

Агент использует протокол MGCP чтобы сообщать медиа шлюзу:

  • какие события направлять Агенту
  • каким образом конечные устройства должны соединяться друг с другом
  • какие сигналы (тоны вызова) должны воспроизводится на конечных устройствах

MGCP позволяет также следить Агенту за состоянием конечных устройств на медиа шлюзе (MG).

Медиа шлюз использует MGCP для сигнализации событий (таких как трубка положена/снята или набираемые цифры). На практике обычно сигнальный шлюз (SG) и медиа шлюз (MG) подключены в один физический коммутатор, но в принципе это совсем не обязательно. Агент не использует MGCP для контроля сигнального шлюза (SG), для этих целей — обратной связи между сигнальным шлюзом (SG) и Агентом используется протокол SIGTRAN. В MGCP каждая команда несёт в себе идентификатор транзакции и получает ответ на каждую.

Как правило, медиа шлюз конфигурирован со списком Агентов, от которых может принимать инструкции-запросы. В принципе, уведомления случая можно посылать разным Агентам от каждого конечного устройства (как предусмотрено Агентами, устанавливая для этого параметр NotifiedEntity). Практически однако, желательно, чтобы в данный момент всеми конечными устройствами управлял один и тот же самый Агент; другие Агенты доступны при резервации ресурсов в случае обеспечения избыточности, если первичный Агент отказывает, или теряет контакт с медиа шлюзом. В случае такого отказа управление шлюзом автоматически переходит к резервному Агенту. Всё о чём необходимо позаботиться для такого сценария, это обмен информацией о состоянии между двумя Агентами, однако, это не гарантирует, что оба не будут пытаться управлять одним и тем же шлюзом. Для разрешения конфликтов используется способность опрашивать шлюз, чтобы определить, который из Агентов является управляющим в данный момент.

Обзор протокола

Пакеты MGCP отличаются от многих других протоколов. Он резервирует обычно порт UDP 2427, датаграммы MGCP могут содержать и пустые значения, совсем не так как обычно строятся пакеты в протоколах TCP. Пакет MGCP является командой (запросом) или ответом. Команды (запросы) начинаются с четырехбуквенного кода, ответы начинаются с трехзначного цифрового кода.

Список запросов содержит всего восемь команд: AUEP, AUCX, CRCX, DLCX, MDCX, NTFY, RQNT, RSIP.

Две команды используются Агентом, чтобы сделать запрос на медиа шлюза: AUEP — аудит конечного устройства и AUCX — аудит соединения.

Три команды используются Агентом, чтобы управлять RTP соединением на медиа шлюзе (шлюз может также послать команду DLCX, когда нужно удалить соединение для самоуправления): CRCX — создать соединение, DLCX — удалить соединение, MDCX — изменить соединение.

Команда RQNT используется медиа шлюзом для запроса об уведомлениях используется Агентом, чтобы запросить уведомление о событиях на медиа шлюзе.

Команда NTFY используется медиа шлюзом, чтобы сообщить Агенту, что обнаружено событие, о котором Агент предварительно запросил уведомление (командой RQNT).

Команда RSIP — рестарт в процессе, используется медиа шлюзом, чтобы указать Агенту, идёт процесс перезапуска.


orphans:video_conf

$
0
0

При необходимости можно оснастить сервер IP АТС Asterisk функционалом простого MCU: в один момент времени можно видеть только одного участника конференции, переключаясь между ними с помощью клавиш телефона или при помощи веб-интерфейса. Администратор конференции может выбирать, кому дать голос и кого в данный момен времени показывать на экранах

ОКС-7

$
0
0

ОКС-7

Система сигнализации N7 (ОКС-7) это набор сигнальных телефонных протоколов, используемых для настройки большинства телефонных станций (PSTN) по всему миру.

Эту систему обычно называют ОКС-7 (Общеканальная сигнализация №7), в Европе говорят об SS7 (англ. Signaling System #7), а в Северной Америке её называют CCS7 (англ. Common Channel Signaling System 7). В некоторых европейских странах, особенно в Великобритании, говорят о C7 (CCITT номер 7) или о номере 7 и о CCIS7. (ITU-T ранее известный как CCITT.) В Германии её часто называют N7 от немецкого Signalisierungssystem Nummer 7.

Использование ОКС-7

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

В процессе перемещения некоторых некритичных функций за пределы основных протоколов сигнализации и для сохранения гибкости ОКС-7 появилась концепция разделённых сервисных уровней, реализованная в интеллектуальных телефонных сетях. Сервис, предоставляемый интеллектуальными сетями — это прежде всего услуга преобразования телефонного номера (например, когда toll free, т.е. бесплатный номер преобразуется в обычный абонентский номер телефонной сети общего пользования). Другие услуги — это АОН, т.е. автоматическое определение номера вызывающего абонента, блокирование номеров абонентов, автоматическая переадресация вызова (звонка), удержание вызова (звонка), конференция, предоплаченные звонки. Разные поставщики оборудования предоставляют разные сервисы для абонентов.

ОКС-7также важен при стыковке VoIP-сетей и телефонной сети общего пользования.

Физическая реализация

ОКС-7полностью разделяет голосовые каналы и сигнальные пучки. Сеть ОКС-7 состоит из нескольких типов соединения (A, B, C, E и F) и трёх сигнальных узлов — точек коммутации (SSP), точек передачи сигнализации (STP) и точек контроля сигнализации (SCP). Каждый узел идентифицируется сетью ОКС-7 по номеру, так называемому пойнт-коду. Дополнительные сервисы предоставляются интерфейсами базы данных на уровне SCP с помощью X.25.

Пучок сигнализации между узлами — это полнодуплексный поток данных 56 кбит/сек или 64 кбит/сек. В Европе часто используется таймслот TS16 внутри тракта E1. В США сигнальные пучки обычно идут по сетям, отделённым от голосовых каналов (англ. non-associated signaling). В противоположность сетям в США, в Европе транки с сигнальными пучками часто содержат и голосовые каналы (англ. associated signaling). Смешанный метод похож на non-associated signaling, но использует небольшое число STP для поддержания пучка сигнализации.

Протоколы ОКС-7

Стек протоколов ОКС-7отталкивается от модели OSI и имеет только четыре уровня. Уровни совпадают с уровнями OSI 1 (физический), 2 (канальный) и 3 (сетевой). Уровень 4 ОКС-7 соответствует уровню 7 OSI. Уровни называются MTP (англ. Message Transfer Part) 1 , MTP 2 и MTP 3. Уровень 4 ОКС-7 содержит несколько различных пользовательских уровней, например Telephone User Part (TUP), ISDN User Part (ISUP), Transaction Capabilities Application Part (TCAP) и Signaling Connection and Control Part (SCCP).

MTP описывает транспортные протоколы, включая сетевые интерфейсы, обмен данными, обработка сообщений и маршрутизация их на верхний уровень. SCCP — это подуровень из других протоколов 4 уровня, и вместе с MTP 3 может быть назван Network Service Part (NSP). NSP обеспечивает адресацию и маршрутизацию сообщений без установления соединения (UDT) и сервис управления для других частей 4 уровня. TUP — это система сигнализации точка-точка для соединения звонков. ISUP — это ключевой протокол, предоставляющий канально-ориентированный протокол для установки, подключения и завершения соединения при звонке. TCAP используется для создания запросов к базе данных и используется при расширенной функциональности сети или как связующий протокол с интеллектуальными сетями (INAP), мобильными службами (MAP) и т.д.

http://www.voip-info.org/wiki/index.php?page=Asterisk+ss7+channels

IP АТС Asterisk и FreeSWITCH

$
0
0

IP АТС Asterisk и FreeSWITCH

Услуги по установке, настройке и обслуживанию Asterisk и FreeSwitch. Нами реализовано более 200 проектов, учитывая только Asterisk.

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

Базовая настройка IP АТС Asterisk

Для внедрения IP АТС небольшой емкости (до 100 абонентов), прекрасно подходит программная АТС Asterisk с веб интерфейсом FreePBX. Русскоязычный, простой и интуитивно понятный веб интерфейс позволит вам, в дальнейшем, обслуживать АТС без дополнительных затрат. Все используемое ПО является свободно распространяемым и вы платите только за пусконаладку. Приобретая базовую установку Asterisk вы гарантировано получаете:

Программное обеспечение и функционал:

  • Asterisk 13
  • FreePBX 13 - веб интерфейс настройки Asterisk
  • CDR-viewer - веб интерфейс записи и детализации вызовов
  • ARI (RESTful) и AMI - интерфейсы приложений.
  • Протоколы связи: SIP, IAX2, h323, DAHDI
  • Функции: Очереди
    • Группы приема вызовов
    • Телеконференции
    • Автосекретарь
    • Маршрутизация вызовов
    • Переадресация вызовов
    • Факс-на-Емайл.
  • Операционная система: Centos 7 (Centos 6, Ubuntu или Debian - по требованию)

Базовую настройку IP АТС Asterisk:

  • Создание требуемого кол-ва IP абонентов
  • Подключение требуемого кол-ва SIP (или h323) транков к провайдеру IP телефонии.
  • Подключение потоков ISDN PRI E1.
  • Настройку входящей/исходящей маршрутизации по вашему ТЗ.
  • Настройку дневного/ночного режима
  • Настройка голосового меню (IVR)
  • Настройка групп приема вызовов.
  • Базовые настройки безопасности (IPtables и fail2ban)
  • Настройка приобретенного у нас оборудования (VoIP шлюзов, IP телефонов).
  • Консультации по настройке вашего оборудования.
  • Базовое обучение использования FreePBX для настройки Asterisk (Подключение IP абонентов, IP транков; создание очередей, телеконференций, голосовых меню, групп приема вызовов; использование сервисных кодов и отчетов о звонках.)
  • Бесплатную тех. поддержку в течении месяца с момента ввода в эксплуатацию.

Варианты установки:

  1. Продажа сервера с установкой и настройкой системы.
  2. Установка на сервере заказчика.
  3. Удаленная установка/настройка на сервере заказчика.
  4. Установка на VPS хостинге
  5. Установка на embedded устройства (например роутеры поддерживающие работу с OpenWRT, функционал может быть ограничен)

Расширенная настройка IP АТС Asterisk.

Базовая настройка Asterisk при помощи веб-интерфейса предоставляет большие возможности, намного превосходящие возможности традиционных АТС, но, отнюдь, не полностью реализующие возможности Asterisk. Для систем большой емкости и самых продвинутых запросов мы предлагаем расширенную настройку. Полностью описать возможности и способы применения не под силу сжатому описанию, поэтому перечислим основные:

Реализация реалтайм архитектуры.

Под реалтайм в Asterisk подразумевается взаимодействие с базами данных и другими типами хранилищ в режиме реального времени. Поддерживается статическое хранение настроек Asterisk в БД и собственно реалтайм взаимодействие. -В первом случае, настройки получаются из хранилища в момент загрузки модуля или ядра АТС, так же как и при использовании конфигурационных файлов. -Во втором (реалтайм) настройки не требуют применения и доступны сразу, после внесения изменений. Также в Asterisk имеется большой набор команд и функций, для взаимодействия с реалтайм хранилищами в момент обработки вызова. В каких случаях применяется Реалтайм Архитектура?

  • для хранения большого количества SIP аккаунтов в базе данных.
  • для маршрутизации вызовов по большому числу условий (например по десяткам тысяч def кодов).
  • для передачи и хранения статистической информации, например о работе очереди колл центра или данных передаваемых пользователями по телефону.
  • построения отказоустойчивых распределенных систем.

Поддерживаются следующие типы хранилищ: MySQL, PostgreSQL, SQLite, LDAP, нативно и через ODBC, а также прием и передача данных при помощи cURL. Предлагаем любые реализации реалтайм архитектуры Asterisk.

Взаимодействие со сторонними приложениями

Asterisk имеет три интерфейса (4-ре вместе Command Line Interface) для взаимодействия с другими приложениями:

  • AMI - Asterisk manager Interface
  • ARI - Asterisk RESTful Interface
  • AGI - Asterisk Gateway Interface

Сами по себе интерфейсы в установленном Asterisk готовы к работе и не требуют серьезной настройки. Предлагаем консультации по работе с APIи ПО под нужды клиентов.

Шифрование голосового трафика по SRTP протоколу

Для подключения внешних пользователей к корпоративной телефонной сети, часто используется шифрование голосового трафика. Asterisk поддерживает шифрование протоколом SRTP с методом обмена ключами SDES через SDP. Предлагаем настройку защищенных телекоммуникационных систем.

Построение корпоративной телефонной сети АТС

Предлагаем построение распределенных телефонных систем, интеграцию с другими АТС через VoIP и ISDN протоколы связи, с единым номерным планом и централизованным управлением. Построение VPN сетей под нужды телефонии. На нашем счету проекты объединяющие по 50 филиалов в единую телефонную сеть. Наши специалисты подберут оптимальное оборудование, зарекомендовавшее себя в других проектах.

Настройка IP АТС FreeSWITCH

«Там, где пехота не пройдет…»
Кросс-платформенная много-пользовательская программная АТС FreeSWITCH зарекомендовала себя системой повышенной производительности. Более сложный в настройке и обслуживании, чем Asterisk, тем не менее, FS показывает вчетверо большую производительность, при потреблении равных ресурсов. Если абонентская емкость превышает 200 номеров, имеет смысл рассмотреть FreeSWITCH в качестве альтернативы.

  • IP АТС большой емкости.
  • Много-пользовательские системы с распределенными ресурсами.
  • Виртуальные и облачные АТС.
  • Сервер широкополосных телеконференций.
  • Session Border Controller.
  • Сервер маршрутизации и биллинга.
  • Системы автоматического оповещения абонентов.

Мы предлагаем установку и настройку IP АТС FreeSWITCH в любой из указанных ролей. В базовую настройку входит установка и настройка отказоустойчивой системы FreeSWITCH,
с использованием СУБД PostgreSQL в качестве базы данных ядра и регистраций,
а также MySQL - для отчетов о звонках, с веб-интерфейсом поиска и прослушивания записей.
Диалплан - XML .
Для систем автообзвона, предлагаем установку и настройку Newfies-diаler + FreeSWITCH на Debian 8.
Для систем биллинга и маршрутизации - ASTPP billing.


Свяжитесь с нами для получения подробной информации.
Asterisk

Only edit this fieldset if “IP ATC” is set to “Asterisk”.

D B᠎ N O I
FreeSWITCH

Only edit this fieldset if “IP ATC” is set to “FreeSWITCH”.

Настроим Asterisk, FreeSWITCH, IP АТС.

Установка Asterisk10 на Debian 6

$
0
0

Установка Asterisk10 на Debian 6

Пошаговая инструкция по установке Asterisk, FreePBX, libpri, DAHDI-linux, Mysql, Web-server(apache), lame, php. Автозагрузка. Зависимости. httpd.conf, php.ini.

Lame+DAHDI+LibPRI

Требуемые пакеты

aptitude install linux-source-2.6 kernel-package make g++ libncurses5-dev
cd /usr/src/
tar xvjf /usr/src/linux-source-2.6.32.tar.bz2
ln -s /usr/src/linux-source-2.6.32 /usr/src/linux
cp /boot/config-`uname -r` /usr/src/linux/.config
cd linux/
yes "" | make oldconfig
make prepare
make prepare scripts

LAME

wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz

  tar zxvf lame-3.98.4tar.gz
  cd lame-3.98.4
  ./configure
  make
  make install

DAHDI

cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
tar zxvf dahdi-linux-complete-current.tar.gz
cd /usr/src/dahdi-linux-complete-<version>/linux/
make
make install

DAHDI Tools

cd /usr/src/dahdi-linux-complete-<version>/tools/
./configure
make
make install
make config

LibPRI

cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz
tar zxvf libpri-1.4-current.tar.gz
cd /usr/src/libpri-<version>/
make
make install

Asterisk

Требуемые пакеты

aptitude install libxml2-dev unixodbc-dev libmyodbc subversion libmysqlclient15-dev libsqlite0-dev libsnmp-dev libsqlite3 libsqlite3-dev
cd /usr/src/
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-10-current.tar.gz
tar zxvf asterisk-10-current.tar.gz
cd /usr/src/asterisk-<version>/
./contrib/scripts/get_mp3_source.sh
./configure
make menuconfig

Выберете дополнения:

  • —→ Add-ons > app_mysql, app_saycountpl, cdr_mysql, format_mp3, res_config_mysql
  • —→ Core Sound Packages > CORE-SOUNDS-RU-GSM
  • —→ Extras Sound Packages > EXTRAS-SOUNDS-EN-GSM
make
make install
make config

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

nano +107 /usr/sbin/safe_asterisk

ASTARGS="-U asterisk"

раскоментируйте

nano /etc/default/asterisk

AST_USER="asterisk"
AST_GROUP="asterisk"

insserv portmap

update-rc.d -f asterisk defaults

FreePBX

cd /usr/src/
wget http://mirror.freepbx.org/freepbx-2.10.0.tar.gz
tar zxvf freepbx-2.10.0.tar.gz
cd /usr/src/freepbx-2.10.0/
aptitude install libxml2 libxml2-dev libtiff4 libtiff4-dev apache2 libapache2-mod-php5 php5-mysql php5-gd php-pear mysql-server openssl libssl-dev linux-source-2.6.32 bison libncurses5-dev libaudiofile-dev curl sox sudo

Подготовка PHP

sed -i "s/\(upload_max_filesize *= *\)\(.*\)/\120M/" /etc/php5/apache2/php.ini
sed -i "s/\(memory_limit *= *\)\(.*\)/\1100M/" /etc/php5/apache2/php.ini

Добавление пользователя Asterisk

groupadd asterisk
useradd -c "asterisk PBX" -d /var/lib/asterisk -g asterisk asterisk

Apache2

nano /etc/apache2/httpd.conf

User asterisk
Group asterisk

nano /etc/apache2/sites-available/default

AllowOverride All

MySQL

mysql -u root -p
Enter password:
mysql> create database asteriskcdrdb;
mysql> create database asterisk;
mysql> GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY 'PASSWORD';
mysql> GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY 'PASSWORD';
mysql> flush privileges;
mysql> /q
mysql -u asteriskuser -pPASSWORD asteriskcdrdb < /usr/src/freepbx-2.10.0/SQL/cdr_mysql_table.sql
mysql -u asteriskuser -pPASSWORD asterisk < /usr/src/freepbx-2.10.0/SQL/newinstall.sql
/etc/init.d/asterisk start
pear install DB
/usr/src/freepbx-2.10.0/install_amp
  • Введите имя пользователя базы данных ‘asterisk’ database: [asteriskuser]
  • Введите пароль пользователя базы данных ‘asterisk’ database: [PASSWORD]
  • Имя хоста ‘asterisk’ database: [localhost]
  • Имя пользователя Asterisk Manager interface: [admin]
  • Пароль Asterisk Manager interface: [amp111]
  • Директория Веб сервера: [/var/www/html] /var/www
  • IP адрес веб сервера: [xx.xx.xx.xx]

/etc/init.d/apache2 restart

amportal restart

FreePBX Distro: установка и настройка с нуля

$
0
0



FreePBX Distro: установка и настройка с нуля

Установка и первоначальная настройка. FreePBX Distro - простейший, полностью автоматизированный способ установки Asterisk и FreePBX.

скачайте FreePBX distro

Скачайте FreePBX Distro ISO для записи на диск или USB IMG для записи на флешку, соответственно.

Скачать FreePBX Distro

скачать freepbx distro

Загрузитесь с CD/DVD или USB.

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

Сначала, выберете версию Asterisk которую вы хотите установить.

Выбор варианта установки

При загрузке с флешки могут появляться ошибки 'kickstart', просто игнорируйте их и все получится.

Самый быстрый способ установки это Full Install без дополнительных атрибутов.

Диск будет отформатирован и все данные уничтожены.

network

По завершению загрузки, будет предложено сконфигурировать сетевой интерфейс. По умолчанию установлено DHCP, можно оставить и так, но это мало подходит для телекоммуникационного сервера, желательно задать статический IP.

Переход между элементами осуществляется кнопками Tab или Alt+Tab а выбор элемента - пробелом.

часовой пояс

Установим часовой пояс. Неправильно заданный часовой пояс или время могут негативно отразится на работе веб-интерфейса и php.

root пароль

Зададим рутовый пароль. Root суперпользователь Linux. Данный пароль дает полный доступ к системе.

установка системы

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

загрузка

дополнительные пакеты

Некоторые дополнительные пакеты будут установлены после перезагрузки. Это может занять 10-15 минут.

логин root

По завершении вы увидите консоль Linux и приглашение командной строки. Авторизуйтесь с логином 'root' и паролем заданным, ранее, при установке.

ip адрес

После авторизации вы увидите IP адрес сервера заданный выше или полученный по DHCP.

логин FreePBX

С другого компьютера в вашей сети, введите этот адрес в вашем любимом веб браузере. В открывшемся окне конфигурации задайте пароль FreePBX. В дальнейшем этот пароль можно будет изменить в модуле FreePBX FreePBX Administrators.

логин FreePBX

FreePBX Administration - позволит вам настроить АТС. Используйте имя пользователя и пароль администратора настроенные выше для входа. Этот раздел и является тем, что большинство людей называют «FreePBX».

FreePBX

Viewing all 1041 articles
Browse latest View live


Latest Images

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