Asterisk cdr — статистика звонков

Настройка папки uploads

Если есть необходимость передавать на астериск какие-то файлы, например мы хотим обеспечить печать и отправку факсимильных сообщений, нужно настроить папку для приема таких файлов.
В Asterisk есть специальный модуль который отвечает за прием файлов через AJAM интерфейс — res_http_post.so. Этот модуль не всегда устанавливается вмесе с Asterisk по умолчанию, т.к. требует установленных пакетов GMIME и GMIME-DEVEL. После установки модуля необходимо настроить секцию post_mappings в файле http.conf

;
; In this example, if the prefix option is set to "asterisk", then using the
; POST URL: /asterisk/uploads will put files in /var/lib/asterisk/uploads/.
uploads = /var/lib/asterisk/uploads

servers

id servername location ipaddress comment sip iax2 iax2control protocol
undefined 2130706433 SIP
1 asterisk-macomnet 189 3557129729 SIP/212.5.126.1 IAX2/macomnet@macomnet IAX2/macomnetcontrol@macomnet IAX2
2 asterisk-msm 189 1506807809 SIP/89.208.16.1 IAX2/msm@msm IAX2/msmcontrol@msm IAX2
5 asterisk-corbina 189 1399234817 SIP/83.102.161.1 IAX2/corbina@corbina IAX2/corbinacontrol@corbina IAX2

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

  • servername — внутреннее имя сервера
  • location — географическая зона в которой находится сервер. В данном случае Россия
  • ipaddress — реальный IP адрес сервера
  • sip — SIP URL для соединения с сервером
  • iax2 — Связка RSA ключа с идентификатором сервера для переадресации звонков между серверами
  • iax2control — специальный канал команд для удалённого управления серверами и межсерверного взаимодействия. Длина команды до 80 символов
  • protocol — информационное поле для сортировки по типу межсерверной связи

Для чего нужна эта таблица и почему она такая странная? Для межсерверного соединения серверов asterisk удобнее всего использовать протокол IAX. Причин несколько:

  1. весь транзитный трафик между серверами можно зашифровать
  2. в отличие от SIP протокола — более простое прохождение через Firewall операторов связи(для работы нужен всего 1 UDP порт)
  3. невозможность установки соединения злоумышленником с сервером без наличия ключей шифрования
  4. возможность передавать данные между серверами. например сессионные переменные. В SIP протоколе можно добавлять данные в заголовки сессионных пакетов, но зачастую лишние заголовки просто «вычищаются» промежуточными серверами из пакетов. В IAX протоколе можно перед установкой соединения передать необходимые переменные в потоке
  5. чёткая привязка хоста и связки пользователей/ключей к контексту на сервере

С серверами на начальном этапе разобрались. Теперь необходимо сделать привязку арендуемых номеров к определенному серверу. Это необходимо для корректной маршрутизации вызовов.

Базовые команды по работе с очередями

Команды выполняются из консоли asterisk:

asterisk -c || asterisk -r

1. Просмотр очередей и их статуса:

> queue show

Пример ответа:

support has 0 calls (max unlimited) in ‘ringall’ strategy (0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
   Members:
      SIP/102 with penalty 1 (ringinuse enabled) (Unavailable) has taken no calls yet
      SIP/101 with penalty 1 (ringinuse enabled) (Not in use) has taken no calls yet
   No Callers

* в данном примере в очереди зарегистрировано 2 оператора и нет звонков (No Callers)

2. Просмотр конкретной очереди:

> queue show support

3. Количество звонков в очереди.

Смотрим вышеописанной командой:

> queue show support

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


   Callers:
      1. SIP/101-000000be (wait: 0:01, prio: 0)

4. Перезапуск очереди:

Синтаксис:

> queue reload <параметр>

* возможны следующие параметры:

  • members — перечитывает состав агентов.
  • parameters — перезапуск параметров.
  • rules — правил.
  • all — всего вышеперечисленного.

* если имя очереди не указано, перезапуск выполняется для всех очередей.

Пример:

> queue reload all

numbers_pool

id number provider_id server_id enabled direction virtualflag echotest
125 37167859001 4 1 1 IN 1
126 37167859002 4 1 1 IN 1
278 4971122954000 4 1 IN 1
279 74951815000 7 1 1 IN/OUT
280 74951815001 7 1 1 IN/OUT
281 74951815002 7 1 1 IN/OUT
426 74951339501 3 2 IN/OUT 1
427 74951339502 3 1 IN/OUT 1
515 74957952301 16 1 1 IN/OUT
516 74957952302 16 2 1 IN/OUT
529 442038070121 11 1 1 IN 1
531 442038070123 11 1 1 IN 1

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

  • number — номер в международном формате
  • provider_id — привязка номера к оператору
  • server_id — привязка номера к серверу
  • enabled — обслуживать вызовы на данном номере или нет
  • direction — обслуживаемые номером направления вызова
  • virtualflag — номер является «реальным» или «виртуальным». «Реальные» номера привязаны к диалпирам, «виртуальные» не имеют привязки
  • echotest — включение режима тестирования номера. если режим включен, то вызов переадресовывается на приложение Echo() сервера Asterisk

На момент разработки системы количество арендованных номеров было около 400 штук, количество серверов 4. Для тестирования маршрутизации вызовов даже добавляли Мультифон от Мегафона. При использовании «реальных» номеров, привязанных к логину/паролю, необходимо обеспечить осуществление вызова через правильный диалпир. Так как asterisk не может знать через какой диалпир должен маршрутизироваться вызов, необходимо создать таблицу связей.

Call Flow Control Module

Hook Time Conditions Module

— Модуль контроля вызовов — true/false

По умолчанию модуль управления всеми вызовами не проверяет Time conditions, но позволяет связать ручное переключение с Time conditions ввиду того что начиная с версии 2.9 Time conditions свой собственный сервисный код. Если такое связывание уже создано (например на предыдущей версии при обновлении системы), то никакого дополнительного действия для Time conditions для выполнения той же задачи предпринимать не нужно. Установка опции во ‘Включено’ (true) возвращает такое поведение версии 2.8 к сценарию включения этой возможности в предыдущих версиях, включая связанное с этим Правило по времени. Это можно использовать двумя разными вариантами. По первому — подавлять включение Правила по времени, которое происходило бы по встроенному в Time conditions сценарию автоматически. Второй — использовать возможность позвонить и набрать сервисный код, который будет как-бы главным переключателем, включающим одно или несколько Правил по времени.

DAYNIGHTTCHOOK

Заведение первых номеров

Для первой настройки достаточно завести 2 номера с возможностью подключения по SIP.

Создаем правило обработки вызова (контекст). Открываем следующий файл:

vi /etc/asterisk/extensions.conf

И добавляем в него следующее:

exten => _XXXX,1,Dial(SIP/${EXTEN},,m)

* создаем контекст с именем outcaling для четырехзначных номеров (XXXX) с вызовом по SIP по внутреннему номеру.

Открываем следующие конфигурационный файл:

vi /etc/asterisk/sip.conf

И добавляем в него два внутренних номера (extensions):

type=friend
regexten=1001
secret=1234
context=outcaling
host=dynamic
callerid=»1001″ <1001>
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=yes
call-limit=4
nat=no
 

type=friend
regexten=1002
secret=1234
context=outcaling
host=dynamic
callerid=»1002″ <1002>
disallow=all
allow=alaw
allow=ulaw
language=ru
callgroup=1
pickupgroup=1
qualify=yes
canreinvite=yes
call-limit=4
nat=no

* где:

  • ,  — имена для обозначения номеров.
  • type — типы проверки номеров. Могут быть peer, user или friend. Peer — вызовы сопоставляются с IP-адресами и номерами портов. User — проверка username. Friend — включает возможности peer и user (проверка username и IP-адреса источника) и лучше всего подходит для телефонов и телефонных программ.
  • regexten — добавочный номер. Если не задан, используется имя.
  • secret — пароль для аутентификации.
  • context — контекст или группа правил.
  • host — IP-адрес или имя клиента. Для автоматической регистрации используем dynamic.
  • callerid — идентификатор пользователя при звонке.
  • disallow — запрещает кодеки (задается перед параметром allow).
  • allow — разрешает кодеки. alaw и ulaw — алгоритмы для кодеков g711.
  • language — код используемого языка.
  • callgroup — задает группу устройства (для возможности перехвата).
  • pickupgroup — задает перечень групп, которые можно перехватывать.
  • qualify — включает или отключает периодическую проверку подключенного клиента.
  • canreinvite — включает или отключает прохождение голосового RTP трафика через Asterisk. Устанавливать, только если клиент поддерживает функцию SIP re-invites.
  • call-limit — ограничение количества одновременных вызовов.
  • nat — устанавливается в yes, если клиент находиться за NAT.

Перезапускаем asterisk:

systemctl restart asterisk

vw_providers

id providername proto aa direction
16 IPPort SIP 89.208.190.5 IN
16 IPPort SIP sip.n1.ipport.net OUT
16 IPPort SIP 89.208.190.8 IN
4 Multitel SIP 80.97.55.105 IN
4 Multitel SIP 209.124.34.104 OUT
4 Multitel SIP 41.218.96.199 IN
11 VoiceBuy SIP sip.voicebuy.com OUT
8 VoxBeam SIP sbc.voxbeam.com OUT
8 VoxBeam SIP 95.211.119.240 IN
7 WestCall SIP 195.94.225.2 IN/OUT
3 Zadarma SIP proxy-1.fr.zadarma.com IN
3 Zadarma SIP proxy-3.ri.zadarma.com IN
3 Zadarma SIP siplv.zadarma.com IN
3 Zadarma SIP proxy-8.fr.zadarma.com IN
3 Zadarma SIP sip.zadarma.com OUT
3 Zadarma SIP siplv1.zadarma.com IN
3 Zadarma SIP mediarelay-1.zadarma.com IN

Для чего это нужно ?

  1. Входящий вызов на номер телефона, арендованного нами у конкретного оператора, должен приходить из пула IP адресов серверов этого оператора. Поэтому в момент входящего вызова стоит проверить номер привязанный к оператору с таблицей IP адресов оператора
  2. Оператор может иметь несколько серверов обрабатывающих исходящие вызовы от нашего сервера, поэтому это нужно учесть при формировании очереди дозвона
  3. Данная схема позволяет мгновенно получать строку вызова. При этом замена domainname на имя транка определенного в sip.conf или iax.conf не нарушает работу системы
  4. Номера могут быть «размазаны» по нескольким серверам для отказоустойчивости, а могут быть жёстко закреплены за каждым сервером. Нет смысла обслуживать вызов на сервере, к которому этот номер не прикреплён.

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

Custom Handling for Call Parking Timeouts

Finally, we will move on to explain how to handle situations where upon a parked call session timing out, it is not desired to return to the parked call to the device from where the call was originally parked. (This might be handy for situations where you have a dedicated receptionist or service desk extension to handle incoming call traffic.) Just like the previous two examples, this is a basic scenario that only requires minimal adjustments to the following configuration files: , , and .

Like before, our dialplan contains an extension to accept calls from the outside. Again, let’s assume that the extension the caller dialed was: . The handler will then attempt to dial the extension, using the option.

Sadly for our caller, the extension answers the call and immediately sends the DTMF digits to invoke the call parking feature without giving the caller a chance to speak. Just like in the previous scenario, the extension does not retrieve the parked call. Maybe the extension is having a bad day.

After a period of , or (as defined in the option in ), the call will time out. Because we told Asterisk to send a timed-out parked call to the context (), we are able to bypass the default logic that directs Asterisk to returning the call to the person who initiated the park. In our example, when a parked call enters our extension in our context, we only play a sound file to the caller and hangup the call, but this is where you could do any custom logic like returning the call to a different extension, or performing a lookup of some sort.

In summary:

  • Outside caller dials
  • Alice picks up the device and says «Hello World!»
  • Alice presses the one touch parking DTMF combination
  • The parked call times out after 300 seconds
  • Asterisk sends the call to the extension in our
  • Our caller hears, «Goodbye», before being disconnected

res_parking.conf

features.conf

extensions.conf

Русификация голоса

По умолчанию, Asterisk может идти с набором голосовых записей на английском языке. Они находятся в каталоге /var/lib/asterisk/sounds/en. Для добавления русского голоса, открываем список языковых архивов и копируем ссылку на архив с нужным языком:

Используя ссылку, скачиваем архив:

wget https://downloads.asterisk.org/pub/telephony/sounds/asterisk-core-sounds-ru-wav-current.tar.gz

Создаем каталог для нашего языка:

mkdir /var/lib/asterisk/sounds/ru

Распаковываем архив в созданную папку:

tar -xvf asterisk-core-sounds-ru-wav-current.tar.gz -C /var/lib/asterisk/sounds/ru/

В конфигурационном файле sip.conf добавим:

vi /etc/asterisk/sip.conf

language=ru

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

asterisk -x «sip reload»

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

vi /etc/asterisk/extensions.conf


exten => 111,n,Set(CHANNEL(language)=ru) 

И перезапустить dialplan:

asterisk -x «dialplan reload»

Проверка работы и дополнительные настройки

В консоли сервера где установлен Asterisk выполняем следующую команду:

sudo asterisk -rx "http show status"

Если все настроено правильно, то ответ будет примерно такой:

HTTP Server Status:
Prefix: /asterisk
Server Enabled and Bound to 0.0.0.0:8088

HTTPS Server Enabled and Bound to 0.0.0.0:4433

Enabled URI's:
/asterisk/httpstatus => Asterisk HTTP General Status
/asterisk/phoneprov/... => Asterisk HTTP Phone Provisioning Tool
/asterisk/amanager => HTML Manager Event Interface w/Digest authentication
/asterisk/uploads => HTTP POST mapping
/asterisk/arawman => Raw HTTP Manager Event Interface w/Digest authentication
/asterisk/manager => HTML Manager Event Interface
/asterisk/rawman => Raw HTTP Manager Event Interface
/asterisk/static/... => Asterisk HTTP Static Delivery
/asterisk/amxml => XML Manager Event Interface w/Digest authentication
/asterisk/mxml => XML Manager Event Interface

Enabled Redirects:
  None.

Если в качестве результата получим строку:

Response: Success
Message: Authentication accepted

Значит со стороны Asterisk все настроено правильно.

Не забудьте открыть на фаерволе порт 4443 или 8088 чтобы интерфейс ajam был доступен из вне.

Например для iptables под управлением CENTOS это делается добавлением строчки в файл /etc/sysconfig/iptables

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp   --dport 8088 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp   --dport 4443 -j ACCEPT

Настройка AJAM HTTPS

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

Если мы хотим опубликовать ajam интерфейс на порту 4443 в режиме https, файл http.conf должен выглядеть примерно так:

Для астериск версии 1.6

http.conf
enabled=yes
bindaddr=0.0.0.0
bindport=8088
prefix=asterisk
enablestatic=yes

sslenable=yes
sslbindaddr=0.0.0.0
sslbindport=4443 
sslcert = /etc/asterisk/ssl/ajam.pem

Для астериск версии 1.8 и выше

http.conf
enabled=yes
bindaddr=0.0.0.0
bindport=8088
prefix=asterisk
enablestatic=yes

tlsenable=yes
tlsbindaddr=0.0.0.0:4443
tlscertfile= /etc/asterisk/ssl/ajam.pem
tlsprivatekey= /etc/asterisk/ssl/ajam.pem

Также для https режима необходимо сгенерировать сертификат, которым будут шифроваться передаваемые данные.
Самый простой способ, это генерация самоподписанного сертификата на сервере Asterisk командой:

 cd /tmp
openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem
mkdir /etc/asterisk/ssl
mv /tmp/foo.pem /etc/asterisk/ssl/ajam.pem

Вызов на ожидании или функция Call Waiting в FreePBX

Функция Call Waiting (CW) по умолчанию включена в FreePBX, что позволяет использовать так называемую «вторую линию», то есть ставить вызов на удержание и принимать параллельно ещё один входящий звонок на одном телефоне. Несмотря на то, что данная функция видна в разделе Applications модуля Module Admin, её настройку можно выполнить либо глобально, либо локально для каждого экстеншена. Подробнее расскажем об этом ниже.

Локальная настройка для экстеншенов и конечных пользователей

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

Для отключения данной опции необходимо зайти в настройки экстеншена, далее выбрать вкладку Advanced, и в разделе Extension Options выставить Disable напротив опции Call Waiting.

Ещё одним способом управления данной опцией является использование сервисных кодов – по умолчанию установлены *70 на активацию и *71 на деактивацию данной опции. Удобство данного способа заключается в том, что каждый юзер может управлять данной настройкой на своём телефоне без обращения к администратору АТС.

Способы глобальной настройки Call Waiting

Первый способ является, по сути, автоматизированным способом настройки экстеншена – с помощью модуля Bulk Extensions – то есть вам необходимо выгрузить .csv файл со всеми экстеншенами, найти в файле нужную опцию (она обозначается как ENABLED) и просто стереть её (отсутствие значения = отключению опции).

Вторым способом является выключение CW Enabled by Default в положение No – но для этого необходимо пересоздавать экстеншены, так что данной опцией пользоваться не рекомендуется:

Описание дополнительных модулей

  1. Модуль pt1c предназначен для настроек на стороне АТС для связи с 1С.
  2. Модуль . Добавлен механизм заполнения информации об имени файла факса, в таблице истории звонков.
  3. Модуль . Добавлен механизм оповещения по AMI о входящем вызове. Механизм необходим для перехвата звонка на ответственного менеджера. Включены правки, необходимые для функции «Автоматический подъем трубки».

Внимание! Модуль «pt1c» при инсталляции сформирует дополнительную таблицу истории звонков. Может потребоваться дополнительное дисковое пространство.

Панель телефонии может работать с Asterisk с версии 1.8 по 13 и 16 версией.Рекомендуем использовать версию 11.. Панель телефонии 1.4.26.26+ и 1.2.24.18+

Панель телефонии 1.4.26.26+ и 1.2.24.18+

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

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

Контекст направляет ответивших абонентов в конференц комнату.

/etc/asterisk/extensions.conf/

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

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

/etc/asterisk/extensions.conf

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

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

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

Cкрипт вызывает номера перечисленные в файле
/var/spool/asterisk/list.txt.

Количество номеров разрешенных для одновременного набора указывается в переменной «$count_f» -eq «15»

#!/bin/sh

while read number; do

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

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

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

    echo "$number"

    number=`expr $number + 1`

    while 

    do
count_files ()

{

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

        if ; then

            sleep 10

            return 0

        else

            return 1

        fi

}


    count_files

    done


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

exit 0
100
101
102
103
104

Уведомление о занятости при настройке Call Waiting в Asterisk

Функция Call Waiting при настройке в Asterisk или через FreePBX позволяет внутреннему номера принимать второй параллельный вызов, во время текущего разговора. Основной проблемой Call Waiting является то, что звонящий занятому абоненту слышит стандартный КПВ (Контроль посылки вызова, или просто гудок) в телефонной трубке, что создает ложное ощущение игнорирования.

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

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

Настройка extensions_custom.conf

Как можно понять по названию заголовка, настройку мы будем производить в одноименном файле extensions_custom.conf , который находится в директории /etc/asterisk/: . Открываем для редактирования:

После чего, добавляем в файл следующую конфигурацию:

Разберемся с каждой строчкой контекста macro-dialout-one-predial-hook :

  • exten => s,1,Noop(HINT STATUS — $)>) — выводим в консоль сервера состояние хинта. Здесь может быть : UNKNOWN, NOT_INUSE, INUSE, BUSY, UNAVAILABLE, RINGING, RINGINUSE, HOLDINUSE, ONHOLD
  • exten => s,n,ExecIf($?Playback(/var/lib/asterisk/sounds/ru/custom/busytest)) — проверяем статус хинта: если он равен INUSE (находится в разговоре), то проигрываем для него заранее записанный файл (/var/lib/asterisk/sounds/ru/custom/busytest, где сообщаем звонящему о занятости и просим подождать;
  • exten => s,n,ExecIf($?Set(D_OPTIONS=Ttm)) — сразу после озвучивания нашего аудио, играем MoH (Music On Hold) звонящему;

Аналогичным способом, как показано выше, мы проводим проверку для состояния хинта равному RINGINUSE. Готово. Перегружаем диалплан командой:

Не работает с Follow Me

Если вы столкнулись с проблемой того, что данный функционал не работает на внутренних номерах, в настройках которых включена опция Follow Me, то сделайте следующие действия:

  1. Откройте графический интерфейс FreePBX. Перейдите в раздел SettingsAdvanced Settings;
  2. Найдите опцию Default Follow Me Ring Strategy в разделе Follow Me Module и выставьте ее как ringallv2;
  3. Повторите подобную итерацию для каждого экстеншена в разделе Follow Me;
  4. Дайте команду asterisk -rx «dialplan reload» в консоль вашего сервера;
  • Call Waiting Busy Tone
  • Уведомление о занятости
  • 1780
  • 10

Conference Menu User Guide

Meetme Menus if enabled (press * to access the menu)

DIGIT ADMIN USER NON-ADMIN USER
1 Mute/Un-Mute Self Mute/Un-Mute Self
2 Lock/Unlock Conference Disabled
3 Eject last user who joined conference Disabled
4 Decrease Listen Volume of Conference Same for user
5 Resets the caller’s listening volume to the default level. Same for user
6 Increase Listen Volume of Conference Same for user
7 Decrease Talk volume Same for user
8 Leave Menu Same for user
9 Increase Talk volume Same for user
Allows an Admin to mute/unmute all non-admin participants in the conference Disabled
* Play menu options Same for user
# Leave Conference Leave Conference

Заключение

Буду рад любым подсказкам и замечаниям к статье. Сам последнее время практически не занимаюсь телефонией. По привычке поддерживаю некоторые серверы, но отдалился от темы. Не слежу за ней и не делаю новых установок.

Другие материалы по asterisk:

Онлайн курс «Сетевой инженер»

Если у вас есть желание научиться строить и поддерживать высокодоступные и надежные сети, рекомендую познакомиться с онлайн-курсом «Сетевой инженер» в OTUS. Это авторская программа в сочетании с удалённой практикой на реальном оборудовании и академическим сертификатом Cisco! Студенты получают практические навыки работы на оборудовании при помощи удалённой онлайн-лаборатории, работающей на базе партнёра по обучению — РТУ МИРЭА: маршрутизаторы Cisco 1921, Cisco 2801, Cisco 2811; коммутаторы Cisco 2950, Cisco 2960.

Особенности курса:

  • Курс содержит две проектные работы.;
  • Студенты зачисляются в официальную академию Cisco (OTUS, Cisco Academy, ID 400051208) и получают доступ ко всем частям курса «CCNA Routing and Switching»;
  • Студенты могут сдать экзамен и получить вместе с сертификатом OTUS ещё сертификат курса «CCNA Routing and Switching: Scaling Networks»;

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

  • Установка и настройка астериск с нуля
  • Мониторинг asterisk в zabbix
  • Соединение двух серверов астериск
  • Анализ SIP трафика
  • Замена +7 на 8 и наоборот
  • Ограничение на звонки для группы номеров
Добавить комментарий

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

Adblock
detector