По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Сегодня бы хотелось рассказать об IVR (Interactive Voice Response).
IVR – автоматическая система обслуживания клиентского обращения. С его помощью, повышается качество и скорость обслуживания клиентов, следовательно, растет лояльность по отношению к компании. IVR позволяет сегментировать клиентские обращения, тем самым, оптимизирует работу операторов и уменьшает время решения клиентского запроса.
Безусловно, IVR – системы бывают разные. В крупном бизнесе, дорогие IVR - системы имеют возможность в реальном времени синтезировать речь (ASR), проговаривать текст (TTS), имеют интерфейсы к базам данных (DB), через которые «парсят» запрашиваемую информацию. Такие решения предлагают крупные игроки рынка контактных центров, такие как Cisco Systems, Genesys и Avaya. IVR – системы в таких случаях состоят из сложных скриптов, созданных в специальных графических редакторах.
В малом и среднем бизнесе, зачастую, потребности в сложных системах нет. В большинстве случаев, голосовое приветствие с предложением нажать одну из кнопок на телефоне, чтобы соединиться с отделом, или ввести номер для соединения с конкретным сотрудником – является самым оптимальном в соотношение стоимости к результативности.
Давайте рассмотрим технологию VXML (Voice eXtensible Markup Language). Язык программирования XML является гибким инструментом для решения ряда задач. Благодаря не сложному синтаксису, нашел повсеместное применение. VXML – это адаптация XML для голосовых приложений.
Давайте взглянем на схему ниже.
Этот пример реализован на базе технологий Cisco. На базе шлюза, функционирует телефонная платформа CME (Call Manager Express). Предположим, к нам приходит звонок из ТфОП c номера +7-495-2234567 (Телефонная сеть общего пользования), я входящий Dial-Peer видит совпадение.
gateway#configure terminal
gateway(config)#dial-peer voice 100 pots
gateway(config-dial-peer)#description VXML-IVR-TEST
gateway(config-dial-peer)#incoming called-number 74952234567
gateway(config-dial-peer)#service VXML-IVR
Как только dial-peer совпал, шлюз обращается к flash памяти и запускает выполнение скрипта с названием VXML-IVR. При нажатии кнопок телефона события обрабатываются по DTMF.
Ниже показан простейший пример:
<?xml version="1.0" encoding="UTF-8"?>
<vxml version="2.1" xmlns="http://www.w3.org/2001/vxml" xml:lang="ru-RU">
<form id=" Greeting">
<block>
<prompt>
Здравствуйте! Вы позвонили в компанию…
</prompt>
</block>
</form>
</vxml>
Логика обработки входящего звонка диктуется только заказчиком. Стоимость такого решения гораздо ниже, чем серьезные голосовые платформы специально разработанные вендорами.
IVR позволяет массово информировать клиентов о каких-либо изменениях, сокращает время обслуживания, повышает лояльность клиента.
Мы с радостью поможем создать для Вашего бизнеса голосовое меню, составить техническое задание, написать VXML скрипты.
В одной из вышедших ранее статей мы разбирали такой инструмент сетевого администратора, как Chef. В этой статье мы рассмотрим конкретные примеры использования Chef на примерах компаний, применяющих это решение в своей деятельности.
Для начала, вспомним, что же это такое. Chef это система конфигурирования сети, то есть программа, работающая на клиент-серверной архитектуре, предназначенная для быстрого развертывания, управления, сбора данных, анализа и оптимизации компьютерной сети. Инструментарий Chef позволяет сделать настройку более оперативной, за счет горизонтального масштабирования сети. Также при помощи Chef можно подготовить несколько сценариев управления сетью, что позволяет решить большинство задач, возникающих перед современной командой сетевых инженеров в крупной корпорации
Одним из ярких примеров применения Chef для расширения деятельности компаний является южноафриканский Standard Bank. С расширением его деятельности возникла проблема замедления работы системы, в связи с тем, что у компании появилось слишком много хранилищ данных. Это делало систему управления сетью достаточно громоздкой и неповоротливой, поэтому руководство организации решилось на внедрение системы Chef. Это решение позволило повысить эффективность развертывания сети, а также решило проблему медленной работы. Сетевые инженеры разработали несколько сценариев работы сети, и выбрали основную "поваренную книгу" и несколько резервных на случай возникновения нештатных ситуаций. В результате Standard Bank до сих пор удерживает позиции в верхней половине финансовых организаций, действующих на развивающихся рынках.
Также интересен опыт применения Chef в компании Rakuten создателях популярного мессенджера Viber. В своё время здесь столкнулись с проблемой низкой эффективности в работе серверов связи, основанной на различных программных средах на клиентских устройствах. Последовательное внедрение автоматизации посредством применения Chef позволило привести работу серверов к единообразию, что позволило не только решить существующую проблему, но и существенно повысило скорость работы сервиса и удобство связи. Это позволяет до сих пор считать продукт компании Rakuten одним из самых популярных на рынке.
Всем известен такой гигант IT-индустрии, как IBM. Эта гигантская корпорация часто выступает в качестве спонсора крупных спортивных соревнований, а также предоставляет для них информационную поддержку. В ходе освещения спортивных событий на своих сайтах, компания столкнулась с чрезвычайной нагрузкой на свои сервера. Это приводило к задержкам и неполадкам в работе. Специалисты компании применили решение Chef для того, чтобы оперативно увеличить количество серверов, распределив обработку информации между ними. Это решение настолько пришлось по душе руководству компании IBM, что обе компании до сих пор поддерживают партнерские отношения, а IBM поддерживает развитие проекта Chef.
Корпорация Facebook является примером взрывного роста популярности социальных сетей. Различными сервисами от этой компании пользуются сотни миллионов людей по всему миру. И более десятка лет обслуживание серверов осуществлялось с помощью одного и того же движка. Кластерная структура сети Facebook насчитывала по десятку тысяч устройств в одном кластере. И расширение сервиса с течением времени привело к тому, что техническое решение по обслуживанию серверов сети было признано устаревшим. Технический отдел компании оценил гибкость решения Chef и скорость его работы, и было решено применить эту систему для обслуживания серверов компании, что обеспечило выравнивание темпов роста сети. С применением Chef на текущий момент компания имеет серверные мощности, чтобы обеспечить обслуживание не только существующих клиентов, но и привлечение новых.
В небольших компаниях, которые насчитывают несколько сотен рабочих станций, Chef также подтверждает свою эффективность. Конечно, есть варианты нанять нескольких сотрудников для оперативного обслуживания сети, мониторинга, расширения и сбора данных, однако на деле многие компании предпочитают иметь дело с одним-двумя администраторами сети, хорошо владеющими своим инструментом. Поскольку Chef в умелых руках - универсальный инструмент.
Таким образом, очевидно, что технология Chef опробована и одобрена по-настоящему серьезными компаниями. Это обеспечивает команде разработчиков Chef высокую репутацию, и позволяет с уверенностью сказать, что данный продукт имеет высокое качество.
Channel event logging (события на канале) – система, созданная для детального логирования телефонных событий. Система CEL позволяет пошагово отслеживать сложные сценарии вызовов, последовательно записывая их в таблицу данных. Сегодня расскажем о типах событий CEL и о содержимом таблицы ‘cel’
?
Как и обычно, подключаемся к базе данных asteriskcdrdb:
[root@asterisk]# mysql // подключаемся к MySQL
mysql> use asteriskcdrdb;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
Смотрим содержимое таблица cel, видим поля и типы данных:
mysql> show columns from cel;
+-------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| eventtype | varchar(30) | NO | | NULL | |
| eventtime | datetime | NO | | NULL | |
| cid_name | varchar(80) | NO | | NULL | |
| cid_num | varchar(80) | NO | | NULL | |
| cid_ani | varchar(80) | NO | | NULL | |
| cid_rdnis | varchar(80) | NO | | NULL | |
| cid_dnid | varchar(80) | NO | | NULL | |
| exten | varchar(80) | NO | | NULL | |
| context | varchar(80) | NO | MUL | NULL | |
| channame | varchar(80) | NO | | NULL | |
| appname | varchar(80) | NO | | NULL | |
| appdata | varchar(80) | NO | | NULL | |
| amaflags | int(11) | NO | | NULL | |
| accountcode | varchar(20) | NO | | NULL | |
| uniqueid | varchar(32) | NO | MUL | NULL | |
| linkedid | varchar(32) | NO | MUL | NULL | |
| peer | varchar(80) | NO | | NULL | |
| userdeftype | varchar(255) | NO | | NULL | |
| extra | varchar(512) | NO | | NULL | |
+-------------+--------------+------+-----+---------+----------------+
20 rows in set (0.00 sec)
К описанию таблицы CEL мы вернемся чуть позже, а сейчас давайте разберем возможные события в рамках системы Channel Event Logging :
Событие
Описание
CHAN_START
Канал связи был создан
CHAN_END
Канал связи был разорван
LINKEDID_END
Канал связи с указанным ID был разорван
ANSWER
На созданном канале связи ответили на звонок. При звонке в город, данное событие генерируется когда удаленный (вызываемый абонент) поднимет трубку
HANGUP
Была повешена трубка. Как правило, это событие сразу же сопровождается событием CHAN_END. Разница в том, что HANGUP происходит когда трубка положена, а CHAN_END, когда Asterisk освободил все ресурсы, занимаемые этим каналом
APP_START
Определенное приложение было запущено для этого канала. Например, это может быть Dial, Busy или Congestion
APP_END
Указанное приложение в событие APP_START завершило свое выполнение
PARK_START
Была произведена «Парковка» вызова. Функция парковки, представляет собой определенный номер, в который помещается вызов, работу с которым, могут продолжить другие сотрудники.
PARK_END
Вызов был снят с «Парковки»
BRIDGE_START
Между двумя каналами образовалось соединение (мост). Данное событие сопровождает такие приложения, как Dial() или Queue()
BRIDGE_END
Мост между каналами был разрушен
BRIDGE_UPDATE
В соединении между каналами произошло обновление. Это события появляется тогда, например, если изменится имя или прочая канальная информация
BLINDTRANSFER
Был выполнен «слепой» (без предварительной консультации) трансфер
ATTENDEDTRANSFER
На канале был выполнен трансфер с предварительной консультацией
USER_DEFINED
Кастомное событие, которое определяется в приложении CELGenUserEvent()
В таблице выше мы перечислили основные события в рамках системы CEL. Теперь перейдем к описанию таблицы ‘cel’ в рамках базы asteriskcdrdb:
Столбец
Пример значения
Описание
eventtype
CHAN_START
Имя произошедшего события (все события описаны в таблице выше)
eventtime
2016-04-01 14:53:54
Время, в которое произошло указанное выше событие
cidname
Oleg Ivanov
Имя, передаваемое в рамках CallerID (CID), закрепленное за данным каналом
cidnum
84991111111
Номер, передаваемый в рамках CallerID (CID), закрепленный за данным каналом в рамках соответствующего события
cidani
84991111111
Automatic Number Identification (ANI), или другими словами – автоматическое определение номера на данном канале в рамках соответствующего события
cidrdnis
84991111234
Номер перенаправления на данном канале в рамках соответствующего события
ciddnid
84993456458
Набранный номер на канале в рамках соответствующего события
exten
7057
Добавочный номер, который был набран, в рамках плана нумерации
context
Local
Контекст для добавочного номера, который был набран
channame
SIP/0007B3060EB4-00000010
Имя установленного канала
appname
Dial
Название приложения, которое было выполнено
appdata
SIP/0007B3060EB4
Параметры, которые были переданы в приложении согласно плана нумерации
amaflags
DOCUMENTATION
Метка Automatic Message Accounting (AMA) – автоматический учет стоимости вызова.
accountcode
6473
Идентификатор аккаунта. Данное значение пустое по умолчанию, и определяется параметрами конкретного пользователя.
uniqueid
6547653456.18332
Уникальный идентификатор для канала
userfield
Chto ugodno
Пользовательское поле
linkedid
6547653456.18332
Данный идентификатор, позволяет связать воедино звонок по частям. Например, если одна часть звонка была входящей из города, следом был трансфер, потом еще один – у все этих вызовов будет разный uniqueid, но одинаковый linkedid
peer
SIP/0007B306054F-00000020
Название канала, к которому, который соединен (bridge) с каналом с идентификатором channame
Теперь, давайте рассмотрим как выглядит запись в таблице ‘cel’. Для этого выполним нижеследующий запрос к базе данных asteriskcdrdb:
mysql> SELECT * FROM `cel` WHERE `uniqueid` = '1459503113.15';
+------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+
| id | eventtype | eventtime | cid_name | cid_num | cid_ani | cid_rdnis | cid_dnid | exten | context | channame | appname | appdata | amaflags | accountcode | uniqueid | linkedid | peer | userdeftype | extra |
+------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+
| 2339 | CHAN_START | 2016-04-01 12:31:53 | | | | | | 89641111111 | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | |
| 2346 | APP_START | 2016-04-01 12:31:53 | 79252222222 | 79252222222 | 79252222222 | | | recordcheck | sub-record-check | Local/89641111111@from-internal-00000004;2 | MixMonitor | 2016/04/01/out-89641111111-79252222222-20160401-123153-1459503113.15.wav,ai(LOCA | 3 | | 1459503113.15 | 1459503090.11 | | | |
| 2347 | APP_END | 2016-04-01 12:31:53 | 79252222222 | 79252222222 | 79252222222 | | | recordcheck | sub-record-check | Local/89641111111@from-internal-00000004;2 | MixMonitor | 2016/04/01/out-89641111111-79252222222-20160401-123153-1459503113.15.wav,ai(LOCA | 3 | | 1459503113.15 | 1459503090.11 | | | |
| 2364 | HANGUP | 2016-04-01 12:32:10 | | 79252222222 | 79252222222 | | | h | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | {"dialstatus":"CANCEL","hangupcause":16,"hangupsource":"dialplan/builtin"} |
| 2365 | CHAN_END | 2016-04-01 12:32:10 | | 79252222222 | 79252222222 | | | h | from-internal | Local/89641111111@from-internal-00000004;2 | | | 3 | | 1459503113.15 | 1459503090.11 | | | |
+------+------------+---------------------+-------------+-------------+-------------+-----------+----------+-------------+------------------+--------------------------------------------+------------+----------------------------------------------------------------------------------+----------+-------------+---------------+---------------+------+-------------+----------------------------------------------------------------------------+
5 rows in set (0.00 sec)
В указанном выше запросе мы извлекли все содержимое таблицы ‘cel’, где поле uniqueid = 1459503113.15. Полученные данные можно обрабатывать и использовать для глубокой аналитики