DEX 1.x

С чего начать изучение DEX? Есть ли какая-нибудь инструкция по работе?

Смотрите этот файл. Однако он устарел, поэтому рекомендуем посмотреть запись вебинара в разделе Видео, а также почитать ответы на вопросы, собранные на этой странице.

Где найти журналы работы Рабочего места?

В правом верхнем углу нажмите кнопку с изображением блокнота:

В открывшейся папке находятся журналы за текущий день, а в папке archive – за предыдущие дни:

При загрузке в базу контактов файла с контактами появляется сообщение «Ошибка сервера в приложении '/'». Что делать?

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

Какие данные DEX может передавать в ссылку?

Ниже полный список возможных подстановок для формирования ссылки или параметров запускаемой программы:

  • userId - id пользователя в системе
  • userName - имя пользователя
  • loginName - логин пользователя
  • sipIdentity - sip-идентификатор оператора, указанный в настройках рабочего места
  • CID - id контакта (это будет или id контакта в системе, или значение поля CID при загрузке базы, если нужны свои идентификаторы контакта)
  • phone - телефон (в том виде, в котором был загружен)
  • projectCode - код проекта (указывается в свойствах проекта, если нужно)
  • tag - метка из свойств баз контактов (если там задана)
  • name - имя/название (если грузили базу контактов и там было помечено такое поле)
  • comment - комментарий
  • additionalComment
  • P1, P2, P3 - параметры выборки

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

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

http://example.com/?p={phone}&id={CID}

К параметру можно добавить модификатор :raw, чтобы данные не кодировались, а передавались в исходном виде, например {Ссылка:raw}.

В нашем проекте много ссылок на анкету, для каждого респондента должна открываться своя ссылка. Как это реализовать в DEX?

Добавьте в отдельную колонку файла с телефонами все ссылки. Назовите её, например, Link.

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

  • Телефон – Телефон,
  • Link – Поле с данными.

Перейдите в свойства проекта DEX, в списке Режим обработки выберите Ссылка в браузере и в поле ПО обработки укажите {Link:raw}

Как изменить формат имени файла аудиозаписи интервью?

Формат можно изменить как для всех проектов, в параметрах DEX, так и для одного проекта. Для изменения формата имён в проекте откройте его свойства и найдите поле Шаблон имени записи:

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

  • {0} - год
  • {1} - месяц
  • {2} - день
  • {3} - час
  • {4} - минута
  • {5} - секунда
  • {6} - уникальный идентификатор звонка (actionId)
  • {7} - набранный номер
  • {8} - код проекта
  • {9} - sip-идентификация оператора
  • {10} - идентификатор оператора (operatorId)
  • {11} - имя оператора
  • {12} - логин оператора
  • {13} - расширение файла (должно быть в шаблоне всегда)
  • {CID} - ID контакта

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

Формат чисел можно задать модификатором :d

Пример:

Опрос о колбасе-{Город}-{7}-{0:d4}{1:d2}{2:d2}-{3:d2}{4:d2}-{11}.{13}

Опрос о колбасе – статичный текст, {Город} – поле из базы контактов, :d4 – 4 цифры, :d2 – 2 цифры.

Как запустить Рабочее место на Linux?

Необходимо установить Mono, если ещё не установлен, и запускать файл SIISLtd.DEX.WWPLoader.exe через него.

На Ubuntu желательно устанавливать пакет mono-complete из стандартного репозитория.

Можно воспользоваться готовым скриптом, проверенным на Ubuntu 16.04, который автоматически устанавливает Mono и Рабочее место.

Каким образом происходит набор номеров: в случайном порядке, по очереди или для каждого освободившегося оператора?

Номера по разным проектам набираются независимо, в случайном порядке. Каждую секунду набирается пул номеров в зависимости от CPS (количество звонков в секунду) на каналах связи.

Например, на двух проектах используется один оператор IP-телефонии, и у него CPS – 8. Соответственно, каждую секунду будут набираться 8 номеров по обоим проектам в равной степени. Таким образом, на проекте, где работает мало операторов, они быстро уйдут из состояния "Готов" и освободят место в пуле для проектов, где операторов больше.

Есть ли какие-то универсальные настройки проекта, которые максимально оптимизируют работу?

Тут всё зависит от необходимости. Именно из-за этого в системе так много настроек.

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

Собственно, там внизу написано, что если какое-то из полей пустое, то контакты с этим статусом будут исключены из дальнейшего дозвона.

Что касается коэффициентов и автоматики, то тут нужно решать исходя из качества баз и приоритетов на проекте.

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

Если база сгенерированная, то для ускорения в ход можно пустить как предиктив, так и автоматику, которая будет решать понижать или повышать коэффициент на прогрессив (предиктив она не трогает). Автоматику тоже можно настроить, чтобы она, например, не повышала выше какого-то коэффициента. Если поле пустое, то максимальный коэффициент - 10.

В каком формате должны быть номера телефонов в файле для загрузки в DEX?

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

Очистка телефонов отключается в глобальных параметрах DEX флагом Очищать номера телефонов при загрузке контактов (оставлять только цифры), однако этот флаг лучше не снимать. Если для каких-то целей телефоны нужны в исходном виде, то перед загрузкой файла необходимо сделать копию колонки с телефонами и загрузить этот файл, выбрав в форме загрузки пункт Телефоны, а также поля с дополнительными данными и на следующем шаге указав типы значений:

  • первое поле – Телефон,
  • второе – Поле с данными.

Далее телефон в исходном виде можно получать по имени второго поля.

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

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

  • https://<адрес DEX>/state/calls
  • https://<адрес DEX>/statistics/calls

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

Чтобы как-то понять, почему так - идете на вторую страницу и смотрите результаты по последним попыткам вызова. Например, там может оказаться, что номера идут в "Занято" с 0 секунд временем вызова. Т.е. дозвон идет впустую.

Заходите в любой такой вызов и смотрите причину отключения звонка - часто со статусом "Занято" здесь можно увидеть "Call Rejected", т.е. вызов отклонен сразу. Причин обычно несколько, но основные - нет денег или оператор связи заблокировал аккаунт из-за каких-то других причин.

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

Что такое CPS и каким оно может быть?

CPS (Calls per Second) – значение предельного количества звонков в секунду, то есть сколько звонков можно совершить за 1 секунду и не быть заблокированным. Операторы связи обычно ограничивают это число (1-10 или более по договорённости), так как большое количество звонков существенно нагружает оборудование. Этот параметр напрямую влияет на скорость подачи номеров для дозвона.

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

Почему телефоны с проставленными вручную статусами снова попадают в работу?

Наиболее вероятная причина – контакты загружались в DEX без проверки на дубли.

Проверить это просто. В разделе Звонки найдите все звонки по проблемному номеру телефона. Здесь можно поставить фильтр по периоду.

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

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

Как посмотреть ответы в сохранённом интервью из DEX?

Если в свойствах проекта DEX Режим обработкиПроект Survey-Studio (версия 2), то в разделе Звонки можно нажать на интересующий звонок, и в нём будет ссылка Просмотр, нажав на которую можно увидеть ответы, полученные во время этого звонка.

Как дать клиенту доступ к его проекту?

Добавьте нового пользователя с правами Супервайзер (чтобы этот пользователь мог войти в панель администрирования по вашей ссылке DEX) и Доступ только к разрешенным проектам:

Затем откройте свойства проекта, который пользователь должен видеть, и в поле Пользователи укажите созданный логин:

Почему система переводит на операторов звонки, где автомат говорит «вызываемый абонент недоступен» или отвечает автоответчик, или просто тишина?

Система переводит звонок на оператора, когда получает от сервера провайдера IP-телефонии ответ, что абонент взял трубку. К сожалению, по каким-то причинам этот ответ бывает ошибочным.

Если такие вызовы доставляют много неудобств, мы можем добавить вам направление с функцией Антиавтоответчик (AMD). Количество ложных переводов сократится, но в то же время могут начать сбрасываться звонки с реальными людьми. Перед переводом звонка оператору, если ответил человек, или разрывом соединения, если на другом конце автоответчик, система будет слушать звук - это время будет тарифицироваться вашим оператором связи, так как при «снятии трубки» происходит соединение.

Важный момент. При написании писем не используйте слово автоответчик, так как СПАМ-фильтры иногда блокируют такие письма, и мы можем не увидеть ваш вопрос. Можно использовать различные сокращения: AM, AMD, а-отв и так далее.

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

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

Для перемещения в архив необходимо в разделе Пользователи нажать на пользователя, поставить флаг Помещён в архив и нажать кнопку Сохранить.

Как загрузить контакты вместе с идентификаторами, которые есть в файле, а не присваивать контактам новые?

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

На следующем шаге нужно указать типы значений:

  • поле с телефонами – Телефон,
  • поле с ID – Идентификатор контакта.

Остальным полям (если есть) можно оставить Поле с данными:

Теперь DEX будет подставлять в рабочую ссылку эти идентификаторы автоматически, если в свойствах проекта установлен режим обработки Проект Survey-Studio (версия 2). Также их можно добавлять в любую ссылку с помощью подстановки {CID}.

Какой программный телефон лучше использовать для работы с DEX?

Для работы подойдет любой программный SIP-телефон, у которого есть функция автоответа на входящий звонок. Под Windows рекомендуем использовать MicroSIP.

Скачать MicroSIP можно тут (достаточно Lite версии):

https://www.microsip.org/downloads

Про настройку телефона можно почитать ниже.

Как настроить клиент MicroSIP?

Скачиваем клиент MicroSIP по ссылке, выбираем версию Lite (Без поддержки Видео), запускаем.

1 Настраиваем автозапуск при старте компьютера. Скорее всего не нужно.

2 Отключаем срабатывание по ссылке из браузера callto:

3 Нажимаем Установить.

4 Нажимаем Готово.

5 Проверяем наличие разрешения для частных сетей

6 Проверяем наличие разрешения для общественных сетей. Нажимаем Разрешить доступ.

7 Заходим в меню настроек.

8 Выбираем пункт "Добавить аккаунт..."

9 Настраиваем название аккаунта и своего пользователя, для удобства одинаковые, для примера использован testuser.

10 Настраиваем свой SIP сервер, для примера использован voip-firm.dialerex.ru

11 Вводим свой пароль

12 Пункт "Шифрование медиа" устанавливаем в "Необязательно SRTP (RTP/AVP)"

13 Устанавливаем галочки "Публиковать присутствие" и "Отключить таймеры сессии". Нажимаем Сохранить.

14 Клиент должен подключится и должна появиться надпись "Онлайн" в нижнем левом углу. Если не появилась - внимательно проверяем все настройки из предыдущего шага.

15 Заходим опять в меню, как это делалось в пункте 7 и выбираем пункт "Настройки".

Приводим настройки к следующему виду:

Нажимаем Сохранить, готово.

Статусы звонков в DEX

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

Занято - вызываемый номер занят, звонок будет отложен на время, указанное в настройках проекта.

Нет ответа - вызываемый номер не отвечает за указанный в настройках таймаут, звонок будет отложен на время, указанное в настройках проекта.

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

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

Статусы, которые проставляются в случае успешного дозвона до респондента, но на оператора вызов перевести не удалось:

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

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

Статусы, которые проставляет оператор, после получения вызова, с помощью "Рабочего места DEX":

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

Отказ - респондент отказался от разговора. Контакт также завершается.

Прервано - обрыв связи во время разговора. Работа по контакту завершается (!!!).

Не подходит - респондент не подходит по результатам ответов на отборочные вопросы. Работа по контакту завершается.

Неверный номер - по указанному номеру ответил не тот респондент, который ожидался (например другая организация, или человек больше не живет в этой квартире, и т.д.). Работа по контакту завершается.

Ошибка связи - плохо слышно, эхо, односторонняя слышимость и прочие проблемы со связью. Звонок будет отложен на время, указанное в настройках проекта (тоже самое, как и для "Ошибка вызова").

Перенос - оператор перенес звонок на другое время.

Перезвон - оператор перезвонил по контакту сразу, т.е. использовал функцию рабочего места "Перезвонить сейчас".

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

Настройка собственного Asterisk для работы с DEX.

Для настройки необходимо предоставить названия используемых для DEX транков c провайдерами телефонии. Количество линий и значение CPS.

Доступ к астериску по AMI

Необходим адрес и порт, а также логин и пароль, для подключения по AMI к Asterisk (подключение будет выполняться с сервера с адреса dex.dialerex.ru).

Примерные настройки:

/etc/asterisk.newcati/manager.conf

[general]
enabled=yes
port=<port>
bindaddr=<ip address>

[dex]
secret=<password>
read=all
write=all
deny=0.0.0.0/0.0.0.0
permit=23.105.236.212/255.255.255.255
eventfilter=Event: *
eventfilter=!Event: VarSet
eventfilter=!Event: RTCP*

Примерные настройки, для компании firm.

в sip.conf

[firm](!)
type=friend
qualify=30000
host=dynamic
directmedia=no
nat=force_rport,comedia
context=local
disallow=all
allow=alaw

[firm001](firm)
secret=<some password>

extensions.conf

[local]
exten = _XXX,1,Dial(SIP/firm${EXTEN},30,t)
same = n,Hangup()
exten = _firmXXX,1,Dial(SIP/${EXTEN},30,t)
same = n,Hangup()
exten = _*firmXXX,1,ChanSpy(SIP/firm${EXTEN:-3},qb)
same = n,Hangup()
exten = _**firmXXX,1,ChanSpy(SIP/firm${EXTEN:-3},qbw)
same = n,Hangup()

[dex]
exten => s,1,NoOp()
same = n,ExecIf($["${recfile}" = ""]?Set(recfile=${STRFTIME(${EPOCH},,%Y/%m/%d)}/FAILED-${EPOCH}.alaw))
same = n,GotoIf($["${recfile}" = "disabled"]?select_operator)
same = n,MixMonitor(${recfile},,/home/robot/encode2mp3-ffmpeg.sh /var/spool/asterisk/monitor/${recfile})
same = n(select_operator),Set(OPERATOR=${CURL(http://dex.dialerex.ru:4580/dex_firm/?ac=${CDR(accountcode)})})
same = n,ExecIf($["${OPERATOR}" = ""]?HangUp())
same = n,Dial(SIP/${OPERATOR},5)
same = n,HangUp()

Скрипт конвертации записей, запускаемый астериском.

/home/robot/encode2mp3-ffmpeg.sh

#!/bin/bash
#
# WAV|ALAW to MP3 converter, v2017071101
#
# Requires ffmpeg:
# apt install ffmpeg
#
# Usage: encode2mp3-ffmpeg.sh <source_sile_name>

if [[ -s $1 ]]; then
if [[ "$1" =~ \.wav$ ]]; then
nice -n 19 ffmpeg -loglevel panic -f wav -i $1 -q:a 10 ${1%.*}.mp3 </dev/null
elif [[ "$1" =~ \.alaw$ ]]; then
nice -n 19 ffmpeg -loglevel panic -ar 8k -f alaw -i $1 -q:a 10 ${1%.*}.mp3 </dev/null
fi
fi

Так же необходим доступ по http/https к папке с записями с сервера DEX на сервер телефонии. Нам нужна ссылка по которой система DEX будет искать записи.

Получение доступа к ручным записям при помощи WinSCP

WinSCP позволяет скачивать папки целиком, а не по одному файлу, искать и исключать файлы по маске и т.п. Есть справка и примеры.

Скачиваем WinSCP с официального сайта: https://winscp.net/eng/download.php

Устанавливаем.

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

В примере показана настройка для клиента siisltd. После настройки и заполнения полей нажимаем Сохранить.

Название подключение можем указать какое удобно, "Запомнить пароль", "Создать ярлык на рабочем столе" - по желанию.

Нажимаем Войти.

Открывается рабочее окно программы. Фильтр по файлам вызывается кнопкой с воронкой вверху справа, или сочетанием клавиш Ctrl+Alt+F.

Не работает прослушивание текущих звонков

В системе должен быть прописан клиент SIP который используется с DEX как обработчик для SIP протокола. Обычно по-умолчанию при установке SIP-клиента это настраивается автоматически. Проверьте так ли это.

Параметры -> Приложения -> Приложения по-умолчанию -> Выбор стандартных приложения для протоколов -> SIP. Устанавливаем своего SIP-клиента.

Комментарии