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

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 K E T G
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


FreeSWITCH + WebRTC + sipML5

$
0
0

FreeSWITCH + WebRTC + sipML5

webrtc WebRTC - открытая программная структура (framework) обеспечивающая коммуникации в реальном времени (Real Time Communications) в веб браузере, т.е. передавать аудио/видео данные в высоком качестве, между браузерами и другими приложениями в режиме точка-точка. Включает в себя компоненты, для создания веб-разработчиками приложений голосовой и видео связи, используя Javascript API. Поддерживается браузерами Chrome, Opera, Firefox. Проект WebRTC предлагает полный стек протоколов для голосовой связи. На данный момент поддерживаются G.711, G.722, iLBC и iSAC аудио кодеки, а также VP8 видео кодек. Имеется несколько SIP клиентов написанных на Javascript, такие как - SipML5,sip-js,jsSIP,SIPjs

С помощью транспорта Websocket (ws://) WebRTC SIP клиенты могут взаимодействовать с голосовыми серверными приложениями, такими как Asterisk, FreeSWITCH и др.

Рассмотрим пример подключения WebRTC софтфона sipML5 к FreeSWITCH, через WebSocket соответственно

Добавьте в файле /usr/local/freeswitch/sip_profiles/internal.xml в разделе <settings> следующую строку:

<param name="ws-binding"  value=":5066"/>

Где 5066 порт TCP WebSocket (ws).

В консоли FreeSWITCH примените настройки командой:

  #fs_cli
  freeswitch@internal> sofia profile internal rescan reload restart

затем командой sofia status profile internalпроверим статус websocket:

 freeswitch@internal> sofia status profile internal
=================================================================================================
Name                    internal
Domain Name             N/A
Auto-NAT                false
DBName                  sofia_reg_internal
Pres Hosts              123.123.123.0,192.168.0.231
Dialplan                XML
Context                 public
Challenge Realm         auto_from
RTP-IP                  192.168.0.231
Ext-RTP-IP              123.123.123.0
SIP-IP                  192.168.0.231
Ext-SIP-IP              123.123.123.0
URL                     sip:mod_sofia@123.123.123.0:5060
BIND-URL                sip:mod_sofia@123.123.123.0:5060;maddr=192.168.0.231;transport=udp,tcp
WS-BIND-URL             sip:mod_sofia@192.168.0.231:5066;transport=ws
HOLD-MUSIC              local_stream://default
OUTBOUND-PROXY          N/A
CODECS IN               G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM
CODECS OUT              G7221@32000h,G7221@16000h,G722,PCMU,PCMA,GSM
TEL-EVENT               101
DTMF-MODE               rfc2833
CNG                     1300
SESSION-TO              450
MAX-DIALOG              340
NOMEDIA                 false
LATE-NEG                false
PROXY-MEDIA             false
ZRTP-PASSTHRU           false
AGGRESSIVENAT           false
CALLS-IN                7467
FAILED-CALLS-IN         43
CALLS-OUT               3050
FAILED-CALLS-OUT        65
REGISTRATIONS           247

Скачайте софтфони в директорию вашего веб сервера и задайте права пользователя:

 chown -R apache.apache sipML5

затем откройте страницу софтфона в веб браузере Chrome или Firefox последней версии.

sipml5 expert mode

в режиме expert задайте IP адрес сервера и порт WebSocket:

ws://123.123.123.0:5066

sipml5 registration

В режиме вызова задайте sip username, sip password. Звездочкой отмечены обязательные поля.

sipml5 call control (812) 3216111

Когда все готово можно звонить.

chrome setup

При совершении входящих и исходящих вызовов Chrome запросит разрешение на использование микрофона и камеры.

chrome setup allow exception

Настройки > Показать дополнительные настройки > Личные данные > Настройки контента > камера и микрофон >

Установка Asterisk 12 / 13 + FreepBX 12 на CentOS 7 64-bit

$
0
0

Установка Asterisk 12 / 13 + FreepBX 12 на CentOS 7 64-bit

CentOS 7 64-bit Asterisk 13, FreePBX 12 , libpri, DAHDI, Mysql (mariadb), apache2, lame, php, httpd.conf, php.ini
<fs xx-small>последняя редакция, июль 2015 года</fs>

Выключение SELinux

sed -i s/SELINUX=enforcing/SELINUX=disabled/g /etc/selinux/config

Зависимости

yum install -y kernel-devel kernel-headers
yum install -y e2fsprogs-devel  keyutils-libs-devel krb5-devel libogg \
libselinux-devel libsepol-devel libxml2-devel libtiff-devel gmp php-pear \
php php-gd php-mysql php-pdo php-mbstring ncurses-devel \
mysql-connector-odbc unixODBC unixODBC-devel \
audiofile-devel libogg-devel openssl-devel zlib-devel  \
perl-DateManip sox git wget net-tools psmisc
yum install -y gcc gcc-c++ make gnutls-devel \
libxml2-devel ncurses-devel subversion doxygen \
texinfo curl-devel net-snmp-devel neon-devel  \
uuid-devel libuuid-devel sqlite-devel sqlite \
speex-devel gsm-devel libtool libtool-ltdl libtool-ltdl-devel 

Сделайте полный апдейт

 yum update -y

Перезагрузите компьютер

 reboot

Установка mysql (mariadb)

1: Установим mariadb (MySQL)

 yum -y install mariadb-server mariadb mariadb-devel

2: Запустим и включим автозагрузку mariadb (MySQL)

 systemctl start mariadb.service
 systemctl enable mariadb.service

3: Запустим интерактивный конфигуратор (будет предложено задать пароль пользователя root для mysql и др.)

 mysql_secure_installation

Установите PearDB

 pear uninstall db
 pear install db-1.7.14

SRTP

 cd /usr/src && wget http://srtp.sourceforge.net/srtp-1.4.2.tgz 
tar zxvf srtp-1.4.2.tgz &&
cd srtp && autoconf &&
./configure CFLAGS=-fPIC --prefix=/usr &&
make &&
make runtest &&
make install

Pjproject

 cd /usr/src && git clone git://github.com/asterisk/pjproject pjproject 
cd pjproject/ &&
./configure --libdir=/usr/lib64 --prefix=/usr --enable-shared --disable-sound --disable-resample &&
make dep &&
make &&
make install &&
ldconfig &&
ldconfig -p | grep pj

<spoiler|Вывод ldconfig -p | grep pj>

        libpjsua.so (libc6,x86-64) => /usr/lib/libpjsua.so
        libpjsip.so (libc6,x86-64) => /usr/lib/libpjsip.so
        libpjsip-ua.so (libc6,x86-64) => /usr/lib/libpjsip-ua.so
        libpjsip-simple.so (libc6,x86-64) => /usr/lib/libpjsip-simple.so
        libpjnath.so (libc6,x86-64) => /usr/lib/libpjnath.so
        libpjmedia.so (libc6,x86-64) => /usr/lib/libpjmedia.so
        libpjmedia-videodev.so (libc6,x86-64) => /usr/lib/libpjmedia-videodev.so
        libpjmedia-codec.so (libc6,x86-64) => /usr/lib/libpjmedia-codec.so
        libpjmedia-audiodev.so (libc6,x86-64) => /usr/lib/libpjmedia-audiodev.so
        libpjlib-util.so (libc6,x86-64) => /usr/lib/libpjlib-util.so
        libpj.so (libc6,x86-64) => /usr/lib/libpj.so

</spoiler>

libjansson

 cd /usr/src && wget http://www.digip.org/jansson/releases/jansson-2.5.tar.gz
tar zvxf jansson-2.5.tar.gz &&
cd jansson-2.5 &&
./configure --prefix=/usr/ &&
make clean &&
make &&
make install &&
ldconfig

Исходники

cd /usr/src &&
wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4-current.tar.gz &&
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-13-current.tar.gz

Lame

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

DAHDI & LibPRI

 yum install "kernel-devel-uname-r == $(uname -r)"
cd /usr/src &&
tar xvfz dahdi-linux-complete-current.tar.gz &&
cd dahdi-linux-complete-* &&
make all &&
make install &&
make config
cd /usr/src &&
tar xvfz libpri-1.4-*.tar.gz &&
cd /usr/src/libpri-1.4.* &&
make &&
make install

SpanDSP

cd /usr/src && wget http://soft-switch.org/downloads/spandsp/spandsp-0.0.6.tar.gz
tar zxvf spandsp-0.0.6.tar.gz &&
cd spandsp-0.0.6 &&
./configure &&
make &&
make install &&
ln -s /usr/local/lib/libspandsp.so.2 /usr/lib64/libspandsp.so.2

Asterisk 13

cd /usr/src &&
tar xvfz asterisk-13-current.tar.gz &&
cd asterisk-13.* &&
./configure --libdir=/usr/lib64 &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

Asterisk 12

Asterisk 12

cd /usr/src &&
tar xvfz asterisk-12-current.tar.gz &&
cd asterisk-12.* &&
./configure --libdir=/usr/lib64 &&
contrib/scripts/get_mp3_source.sh &&
make menuselect

После ввода команды make menuselect, вам будет предложено выбрать устанавливаемые модули. Большинство требуемых модулей выбираются автоматически. Для поддержки mp3 включите модуль 'format_mp3'

 --->  Add-ons (See README-addons.txt)
             --- extended ---
             XXX chan_mobile
             [*] chan_ooh323
             [*] format_mp3
             [*] res_config_mysql
             --- deprecated ---
             [*] app_mysql
             [*] app_saycountpl
             [*] cdr_mysql

  ---> Core Sound Packages
            [*] CORE-SOUNDS-RU-GSM
  --->  Extras Sound Packages
            [*] EXTRA-SOUNDS-EN-GSM  
make && make install && make config && ldconfig
 sed -i 's/ASTARGS=""/ASTARGS="-U asterisk"/g'  /usr/sbin/safe_asterisk

FreePBX

Скачаем FreePBX

cd /usr/src &&
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-12.0-latest.tgz &&
tar zxvf freepbx-*.tgz &&
cd /usr/src/freepbx

<spoiler|freepbx13>

pear install Console_Getopt
cd /usr/src &&
wget http://mirror.freepbx.org/modules/packages/freepbx/freepbx-13.0-latest.tgz &&
tar zxvf freepbx-13.0-latest.tgz &&
cd freepbx &&
./start_asterisk start &&
./install -n

</spoiler>

Создайте пользователя Asterisk и задайте права пользователя.

useradd -m asterisk &&
chown asterisk.asterisk /var/run/asterisk &&
chown -R asterisk.asterisk /etc/asterisk &&
chown -R asterisk.asterisk /var/{lib,log,spool}/asterisk &&
chown -R asterisk.asterisk /usr/lib64/asterisk 

Настроим httpd (Apache)

cp /etc/php.ini /etc/php.ini_orig &&
sed -ie 's/\;date\.timezone\ \=/date\.timezone\ \=\ "Europe\/Moscow"/g' /etc/php.ini &&
sed -i 's/\(^upload_max_filesize = \).*/\120M/' /etc/php.ini &&
cp /etc/httpd/conf/httpd.conf /etc/httpd/conf/httpd.conf_orig &&
sed -i 's/^\(User\|Group\).*/\1 asterisk/' /etc/httpd/conf/httpd.conf &&
sed -i 's/AllowOverride None/AllowOverride All/'  /etc/httpd/conf/httpd.conf &&
systemctl restart httpd &&
systemctl enable httpd

Подготовим MySQL

Требуется создать безопасный пароль для связи FreePBX и MySQL

 export ASTERISK_DB_PW=`dd if=/dev/urandom bs=1 count=32 2>/dev/null | base64 - | cut -c2-18`

Эта команда сгенерирует 16-ти значный пароль и сохранит его в переменной ASTERISK_DB_PW.

Подготовка базы данных Asterisk в MySQL.

Если вы задали 'root' пароль MySQL при установке mariadb, добавьте его после ключа -pyourpassword. (mysqladmin -u root -pYOURPASSWORD create asterisk)
Выполните по очереди следующие команды:

mysqladmin -u root create asterisk
mysqladmin -u root create asteriskcdrdb
 cd /usr/src/freepbx
mysql asterisk < SQL/newinstall.sql
mysql asteriskcdrdb < SQL/cdr_mysql_table.sql

Зададим права на использование БД MySQL

Замените asteriskuserна имя пользователя, которое вам нравится. Например: YOURUSER@localhost. Можно оставить как есть.

mysql -u root -e "GRANT ALL PRIVILEGES ON asterisk.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "GRANT ALL PRIVILEGES ON asteriskcdrdb.* TO asteriskuser@localhost IDENTIFIED BY '${ASTERISK_DB_PW}';"
mysql -u root -e "flush privileges;"

Запустим Asterisk и установим FreePBX.

Если в предыдущем пункте вы задали собственное имя пользователя, замените asteriskuserна него. Например: –username=YOURUSER

./start_asterisk start
cd /usr/src/freepbx && ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}

Если появится ошибка:

Enter the path to use for your AMP web root:
 [/var/www/html]

PHP Warning:  mkdir(): File exists in /usr/src/freepbx/libfreepbx.install.php on line 199
[FATAL] Cannot create /var/www/html!

просто запустите установку ещё раз:

 ./install_amp --installdb --username=asteriskuser --password=${ASTERISK_DB_PW}
amportal a ma reload &&
amportal a ma refreshsignatures &&
amportal chown
ln -s /var/lib/asterisk/moh /var/lib/asterisk/mohmp3
amportal restart

<spoiler|Network Setup>

Network Setup

 yum install net-tools

 yum install NetworkManager
 systemctl enable NetworkManager
 systemctl start NetworkManager
 yum install NetworkManager-tui
 nmtui edit < ethernet_interface >

</spoiler>

В Centos7 вместо IPTables используется Firewalld. Порт 80 tcp (HTTP) по умолчанию закрыт. Так что вам надо либо отключить файервол (не рекомендуется), либо настроить его соответствующим образом

<spoiler| centos 7 firewalld >

1. Выключим Firewalld службу.

 systemctl mask firewalld

2. Остановим Firewalld Service.

 systemctl stop firewalld

3. Установим iptables.

 yum -y install iptables-services

4. Включим IPtables при загрузке системы:

 systemctl enable iptables
iptables -P INPUT ACCEPT &&
iptables -F &&
service iptables save &&
iptables -A INPUT -i lo -j ACCEPT &&
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT &&
iptables -A INPUT -p tcp --dport 22 -j ACCEPT &&
iptables -A INPUT -p tcp --dport 80 -j ACCEPT &&
iptables -P INPUT DROP &&
iptables -P FORWARD DROP &&
iptables -P OUTPUT ACCEPT &&
iptables -A INPUT -p udp -m udp --dport 5060 -j ACCEPT &&
iptables -A INPUT -p udp -m udp --dport 5061 -j ACCEPT &&
iptables -A INPUT -p tcp -m tcp --dport 5060 -j ACCEPT &&
iptables -A INPUT -p tcp -m tcp --dport 5061 -j ACCEPT &&
iptables -A INPUT -p udp -m udp --dport 10000:20000 -j ACCEPT &&
iptables -A INPUT -p udp -m udp --dport 4569 -j ACCEPT &&
iptables -A INPUT -p tcp -m tcp --dport 5038 -j ACCEPT &&
service iptables save &&
iptables -L

<spoiler>

iptables -L
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
iptables: Saving firewall rules to /etc/sysconfig/iptables:[  OK  ]
Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             state RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     udp  --  anywhere             anywhere             udp dpt:sip
ACCEPT     udp  --  anywhere             anywhere             udp dpt:sip-tls
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:sip
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:sip-tls
ACCEPT     udp  --  anywhere             anywhere             udp dpts:ndmp:dnp
ACCEPT     udp  --  anywhere             anywhere             udp dpt:iax
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:5038

Chain FORWARD (policy DROP)
target     prot opt source               destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

</spoiler>

Asterisk + IPTables

</spoiler>

Подключимся к FreePBX

http://IP.Address.FreePBX.Server/admin

Первым делом, вам будет предложено задать имя пользователя и пароль FreePBX

freepbx start set user login

zend guard loader

zend guard loader

скачать и распаковать:

http://www.zend.com/products/guard/downloads

скопировать:

 cp ZendGuardLoader.so /usr/lib64/php/modules

Подключить раcширение php:

 ZendGuard.ini - /etc/php.d directory:
 nano /etc/php.d/ZendGuard.ini
## CentOS 64-bit ##
; Enable Zend Guard extension
zend_extension=/usr/lib64/php/modules/ZendGuardLoader.so
zend_loader.enable=1

systemctl restart httpd

Установка Asterisk

Asterisk: res_odbc.conf

$
0
0

Asterisk: res_odbc.conf

Файл настройки соединений c базами данных через unixODBC. MySQL, PostgreSQL, MSSQL, SQLite.

Параметры ODBC соединений

[ENV] - Глобальные переменные

В Секции с встроенным названием [ENV] назначаются глобальные переменные окружения, которые можно использовать для любых подключений, заданных в данном файле.

[ENV]
INFORMIXSERVER => my_special_database
INFORMIXDIR => /opt/informix
ORACLE_HOME => /home/oracle

Имена контекстов (подключений)

Остальные секции имеют произвольные имена. Эти имена, в дальнейшем, используются в других конфигах, таких как extconfig.confи func_odbc.confдля связи с этими соединениями.

 [asterisk]

enabled

Позволяет отключать секцию, без использования комментария:

 enabled => no

Если явно не выключено, категория (секция) считается включенной.

dsn

Это значение должно совпадать с записью в /etc/odbc.ini (или /usr/local/etc/odbc.ini во FreeBSD и подобных системах).

 dsn => asterisk

username

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

 username => myuser

password

Пароль для аутентификации в базе данных. По умолчанию не задан.

 password => mypass

pre-connect

Подключаться при старте Asterisk?

 pre-connect => yes

sanitysql

Как определить, что соединение живое? Должно возвращаться не нулевое значение в первом поле, первой записи. По умолчанию «select 1».

 sanitysql => select 1

max_connections

Максимальное кол-во подключений в момент времени. Значение по умолчанию =1 и очень хорошая идея увеличить это значение, если версия unuxODBC 2.3.1 и выше.

 max_connections => 20

forcecommit

Если канал закрыт, должны ли какие-либо незавершенные транзакции, продолжать выполнение.

 forcecommit => no

isolation

Отношения с другими транзакциями в базе данных.
Возможные значения: read_uncommitted, read_committed, repeatable_read и serializable. По умолчанию read_committed.

 isolation => repeatable_read

backslash_is_escape

Обратный слэш '/' знак комментария. По умолчанию = yes, но для MS SQL Server, установите = no.

  backslash_is_escape => yes

connect_timeout

Как долго (в секундах), пытаться подключиться, прежде чем считать соединение мертвым? Значение по умолчанию составляет 10 секунд, но можно уменьшить его, чтобы повысить скорость реакции.

 connect_timeout => 10

negative_connection_cache

Если соединение упало, как долго (в секундах), кэшировать информацию, прежде чем предпринять попытку нового соединения?

 negative_connection_cache => 300

примеры

MySQL, MS SQL и PostgreSQL

MySQL

[mysql2]
enabled => no
dsn => MySQL-asterisk
username => myuser
password => mypass
pre-connect => yes

MS SQL

Некоторые сервера, такие как MS SQL и Sybase использующие TDS, ограничивают кол-во запросов для одного подключения до 1. Если запретить общее использование соединений (share_connections ⇒ no) Asterisk может с ними работать.

[sqlserver]
enabled => no
dsn => mickeysoft
share_connections => no
limit => 5
username => oscar
password => thegrouch
pre-connect => yes
sanitysql => select count(*) from systables
; forcecommit => no            ; Default to committing uncommitted transactions?
                               ; Note:  this is NOT the autocommit flag; this
                               ; determines the end result of transactions which
                               ; are not explicitly committed or rolled back.  By
                               ; default, such transactions are rolled back if the
                               ; call ends without an explicit commit.
; isolation => read_committed  ; Isolation level; supported levels are:
                               ; read_uncommitted, read_committed, repeatable_read,
                               ; serializable.  Note that not all databases support
                               ; all isolation levels (e.g. Postgres only supports
                               ; repeatable_read and serializable).  See database
                               ; documentation for further information.
;
; Many databases have a default of '\' to escape special characters.  MS SQL
; Server does not.
backslash_is_escape => no

;
; If you are having problems with concurrency, please read this note from the
; mailing lists, regarding UnixODBC:
;
; http://lists.digium.com/pipermail/asterisk-dev/2009-February/036539.html
;
; In summary, try setting "Threading=2" in the relevant section within your
; odbcinst.ini.
;

pgsql

PostgreSQL

[postgres]
enabled => yes
dsn => testing
pre-connect => yes

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

Установка Asterisk

$
0
0

Установка Asterisk

Основные требования к системе

  • Для инсталляции и запуска Asterisk не требуется никакого специального оборудованиия.
  • Перед установкой Asterisk должны быть установлены программные пакеты:
    • Исходники ядра (kernel sources)
    • Заголовочные .h файлы для Вашего ядра (kernel headers)
    • bison (необходим для обработки выражений в файле extensions.conf)
    • Пакеты: openssl и openssl-dev или libssl-dev

Исходники Asterisk

Asterisk - ядро основной программы
Asterisk-addons - дополнительные файлы
Libpri - PRI - библиотеки
Dahdi (zaptel) - драйверы телефонии

cd /usr/src/

wget http://sourceforge.net/projects/lame/files/lame/3.98.4/lame-3.98.4.tar.gz
wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-1.4.15.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-12-current.tar.gz

Lame

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

Компиляция Libpri

cd /usr/src/libpri-VERSION
make
make install

Компиляция DAHDI

cd /usr/src/dahdi-linux-complete-VERSION
make all
make install
make config

Компиляция Asterisk

cd /usr/src/asterisk-VERSION
./configure
make menuselect
make
make install
make samples
make progdocs
make config

Компиляция Asterisk-addons

Начиная с версии 1.8 Asterisk-addons входят в состав core не не требуют отдельной компиляции.

cd /usr/src/asterisk-addons-VERSION
./configure
make
make install

Запуск и остановка Asterisk

/usr/sbin/asterisk: Файл запускающий Asterisk
Если Вы установили Asterisk, можно запустить его командой:

 /usr/src/asterisk -vvvgc

Остановить Asterisk из CLI можно командой 'stop now'.
Командой без аргументов, Asterisk запускается как демон.

 /usr/sbin/asterisk 

Подключится к командному интерфейсу (CLI) можно используя аргумент 'r'.

 /usr/sbin/asterisk -r

Запуск Asterisk из под не - root пользователя. По умолчанию Asterisk запускается из под root, что может быть небезопасно. Для изменения пользователя раскомментируйте строки в файле /etc/init.d/asterisk.

AST_USER="asterisk"
AST_GROUP="asterisk"

Создайте группу и пользователя asterisk.

/usr/sbin/groupadd asterisk
/usr/sbin/useradd -d /var/lib/asterisk -g asterisk asterisk 

Измените права на использование следующих файлов:

chown --recursive asterisk:asterisk /var/lib/asterisk
chown --recursive asterisk:asterisk /var/log/asterisk
chown --recursive asterisk:asterisk /var/run/asterisk
chown --recursive asterisk:asterisk /var/spool/asterisk
chown --recursive asterisk:asterisk /usr/lib/asterisk
## Если Вы используете Zaptel
chown --recursive asterisk:asterisk /dev/zap
## Если Вы используете DAHDI
chown --recursive asterisk:asterisk /dev/dahdi
#----------------------------------------------------
chmod --recursive u=rwX,g=rX,o= /var/lib/asterisk
chmod --recursive u=rwX,g=rX,o= /var/log/asterisk
chmod --recursive u=rwX,g=rX,o= /var/run/asterisk
chmod --recursive u=rwX,g=rX,o= /var/spool/asterisk
chmod --recursive u=rwX,g=rX,o= /usr/lib/asterisk
## Если Вы используете Zaptel
chmod --recursive u=rwX,g=rX,o= /dev/zap
##  Если Вы используете DAHDI
chmod --recursive u=rwX,g=rX,o= /dev/dahdi
#----------------------------------------------------
chown --recursive root:asterisk /etc/asterisk
chmod --recursive u=rwX,g=rX,o= /etc/asterisk 
/etc/init.d/asterisk restart 

Автозагрузка Asterisk

Различные операционные системы имеют разные способы запуска программ во время загрузки. В директории с исходниками /usr/src/asterisk-VERSION/contrib/init.dсодержатся скрипты для запуска в archlinux, debian, gentoo, mandriva, redhat, slackware, suse.

Для систем, которые все еще используют inittab, просто добавьте следующую строку в /etc/inittab:

as:2:respawn:/usr/sbin/asterisk -f 

Для Redhat окружения выполните

cd /usr/src/asterisk-VERSION
make config

Это скопирует скрипт из contrib/init.d/rc.redhat.asterisk в /etc/rc.d/init.d/asterisk и выполните команду:

/sbin/chkconfig --add asterisk 

Директории Asterisk

  • /usr/lib/asterisk/modules: Содержит бинарные файлы (модули. кодеки)
  • /var/lib/asterisk: Содержит переменные данные(звуки. скрипты и т.д.).
  • /var/spool/asterisk: Файлы создаваемые в процессе работы (голосовые сообщения, исходящие вызовы и т.д.)
  • /var/log/asterisk: Логи. информация о вызовах.
  • /etc/asterisk; Конфигурационные файлы Asterisk.

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

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

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

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

call center stats distribution

Установка 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

Viewing all 1135 articles
Browse latest View live


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