Настройка формата CDR для Avaya Aura
Avaya Aura имеет формат CDR, который настраивается как по перечню полей, так и по их порядку. Чтобы понять, какие поля CDR следует использовать в Avaya Aura для обработки их в биллинговой системе Tariscope, приведем соответствующую информацию. Для корректной обработки CDR данных в Tariscope практически все из нижеперечисленных полей должны были в настройке CDR формата Avaya Aura.
acct-code. (Account Code). Это CDR поле может содержать либо код проекта, либо код счета. Если вы используете код проекта при вызовах, то в поле Tariscope будет попадать в ProjectCode. Это поле не является обязательным.
auth-code. (Authorization Code).Если в вашей системе при выполнении вызовов используется код авторизации, это поле следует добавить при настройке формата CDR в АТС. В Tariscope это поле попадает в поле с соответствующим названием. Если вызовы с кодом авторизации не используются, это поле не нужно.
calling-num. (Calling Number). В зависимости от типа вызова в Tariscope это поле соответствует одному из следующих полей: Originator, CLID или DialNumber. Это обязательное поле.
code-dial. (Code Dial). Это поле содержит код доступа, который абонент набирает при выполнении исходящих вызовов. Это поле необязательно.
code-used. (Access Code Used). Это поле используется только для исходящих вызовов, когда система использует группу соединительных каналов, которая отличается от кода доступа, набираемого абонентом. Если у вас есть такие случаи, то это поле обязательно. Оно используется при формировании поля Terminator в Tariscope.
cond-code. (Condition Code).(Condition Code). Используется в Tariscope для определения типа вызова.
date. Это поле содержит дату окончания вызова. Вместо него можно использовать поле start-date. Одно из этих полей является обязательным для обработки вызовов в Tariscope.
dialed-num. (Dialed Number). В зависимости от типа вызова в Tariscope это поле соответствует одному из следующих полей: Terminator или DialNumber.
duration. Это поле содержит продолжительность вызова в формате: часы (от 0 до 9), минуты (от 00 до 59), десятые доли минуты (от 0 до 9). Таким образом, при использовании этого поля точность определения продолжительности вызова составляет 6 секунд. Вместо этого поля можно использовать поле sec-dur. Использование одного из этих полей обязательно для определения продолжительности разговора в Tariscope.
in-crt-id. (Incoming Circuit Identification). Это поле содержит номер внешней линии в группе внешних линий, используемых для входящего вызова. Для исходящих звонков это поле пусто. Это обязательное поле, в Tariscope оно используется для формирования поля Originator для входящих вызовов.
in-trk-code. (Incoming TAC). В этом поле содержится код доступа к входящей группе соединений. Это поле обязательно для формирования в Tariscope поля Originator для входящих или транзитных вызовов.
out-crt-id. (Outgoing Circuit Identification). Для исходящих вызовов поле содержит номер внешней линии в группе внешних линий, которая используется во время вызова. Это поле пусто для входящих звонков. Это обязательное поле, в Tariscope оно используется для формирования поля Terminator для исходящих вызовов.
sec-dur. Это поле содержит продолжительность вызова в секундах с точностью до 1 секунды. Может использоваться вместо поля duration. Использование одного из этих полей обязательно для определения продолжительности разговора в Tariscope.
start-date. Это поле содержит дату начала вызова. Оно может использоваться вместо поля date. Использование одного из этих полей обязательно для определения даты начала вызова в Tariscope.
start-time. Это поле содержит время начала вызова. Оно может употребляться заместо поля time. Использование одного из этих полей обязательно для определения времени начала вызова в Tariscope.
time. Это поле содержит время окончания вызова. Она может использоваться вместо поля start-time. Использование одного из этих полей обязательно для определения времени начала вызова в Tariscope.
ucid. Это поле содержит уникальный идентификатор вызова. Оно необходимо для связывания в Tariscope отдельных CDR записей, формируемых при выполнении трансферных вызовов.
Все остальные CDR поля, доступные в CDR формате Avaya Aura, не используются в системе Tariscope.
Настройки обработки формата CDR от Avaya Aura в Tariscope описываются в документе Tariscope. Руководство администратора.
Alcatel-Lucent OXE. Получение CDR через TCP в Tariscope
Если вы администратор или владелец АТС Alcatel-Lucent OmniPCX Enterprise (Alcatel-Lucent OXE) и желаете получать информацию о вызовах (CDR) в онлайн режиме через IP сеть, то вы можете воспользоваться биллинговой системой Tariscope (SoftPI). Система Tariscope не только обеспечивает сбор CDR данных, но и обработку и анализ, а также имеет еще много функций..
В этой статье мы только опишем как настроить Tariscope для получения CDR через TCP протокол.
Для получения и первичной обработки CDR в системе Tariscope используются службы Tariscope Observer (или просто Observer). Одна служба предназначена для работы с одной телефонной системой. Полученные и обработанные CDR данные хранятся в базе данных Tariscope, а затем вы в Tariscope можете просматривать, фильтровать, сортировать, группировать информацию по вызовам, создавать различные отчеты, информировать администратора о наступлении каких-либо событий, связанных с вызовами, и т.д.
Создадим новую службу Tariscope Observer для получения CDR от Alcatel-Lucent OXE с использованием протокола TCP.
В меню приложения Tariscope выберите Сбор данных/Observer -> Управление сбором данных. Появится страница Сбор данных/Observer, пример которой приведен на рисунке 1.
Рисунок 1
Эта страница содержит в таблице список ранее созданных Observer-ов, а также панель инструментов.
Щелкните на панели инструментов по иконке Добавить (имя иконки появляется при наведении курсора на иконку). В появившемся меню выберите Новый Observer, в результате чего появится окно, показанное на рисунке 2.
Рисунок 2
В позиции Название введите название Observer-а. Например, это будет AlcatelOXE. Щелкните Сохранить. Появится новое окно, подтверждающее создание нового Observer. В этом окне нажмите кнопку Настройки.
Появится страница Настройка Tariscope Observer (Alcatel OXE), показанная на рисунке 3.
Рисунок 3
В позиции Устройство указано «не выбрано». Это означает, что вы должны выбрать ранее созданную в Tariscope телефонную систему, информацию о вызовах из которой будет получать и обрабатывать Observer. Для этого щелкните по ссылке «тут». Появится окно Выбор устройства, где следует выбрать ранее созданную АТС Alcatel-Lucent OXE.
В списке Источник данных выберите значение TCP/IP клиент. После этого щелкните по кнопке Настройка источника данных. Появится окно Настройка источника данных, пример которого приведен на рисунке 4.
Рисунок 4
В позиции Сервер укажите IP-адрес вашей АТС.
Если в Alcatel-Lucent OXE используется другой IP порт, чем указанный в позиции Порт, укажите его значение.
Во всех остальных позициях ничего указывать не нужно.
Щелкните Готово.
На странице Настройка Tariscope Observer все остальные параметры можно оставить без изменений. При необходимости их можно поменять. Подробное описание всех параметров Observer-а смотрите в документе Tariscope.4.6. Руководство администратора.
Щелкните по кнопке Готово. На странице Сбор данных/Observer в таблице появится новая строка с названием созданного Observer-а. Выберите эту строку и щелкните на панели инструментов по иконке Изменить. В появившемся меню выберите Сценарии Observer. Откроется соответствующая страница, пример которой приведен на рисунке 5.
Рисунок 5
Эта настройка требуется для того, чтобы выполнить при подключении к TCP/IP серверу Alcatel-Lucent OXE соединение с сервером для получения тикеров с CDR данными. Для этого типа АТС недостаточно обычного подключения TCP клиента к TCP серверу.
В списке Событие выберите значение Подключение источника данных, а в списке Сценарии выберите сценарий alcatelOXE-TCP-client.cs. Этот сценарий будет выполнять при подключении к TCP/IP серверу Alcatel-Lucent OXE соответствующий обмен данными, что позволит получать данные CDR.
Щелкните Сохранить.
На этом процесс создания и настройки Tariscope окончен. Его можно запускать для получения данных CDR.
Обновление Tariscope для 3CX v.18
В октябре 2021 компания 3CX выпустила новую, 18 версию, своей IP АТС. Поскольку в этой АТС был изменен API, то в систему учета телефонных вызовов (биллинговую систему) Tariscope были внесены соответствующие обновления, связанные с работой функции ограничения.
Напомним пользователям 3CX, что использование Tariscope позволяет не только учитывать телефонные вызовы, выполненные через 3CX, но и управлять расходованием бюджета на телефонные разговоры. В Tariscope можно задать конкретным абонентам или группе абонентов лимиты в денежной сумме или длительности вызовов за месяц. При достижении этого лимита Tariscope закроет абоненту или группе абонентов выход из АТС до конца текущего месяца. В начале первого числа следующего месяца это ограничение Tariscope автоматически снимет. Таким образом, компания, имеющая 3CX и Tariscope может точно планировать расходы на телефонные разговоры и выполнять запланированный бюджет.
Но это не все возможности, которые предоставляет совместное использование системы Tariscope с 3CX. Перечень дополнительных возможностей предоставлен на странице настройки параметров АТС 3CX, пример которой показан ниже.
Как видно из этого рисунка Tariscope позволяет:
- Отклонять вызовы абонентов, у которых баланс ниже заданной величины. Это настройка актуальна только для пользователей редакции Tariscope Provider.
- Прекращать звонки со стоимостью более заданной стоимости. Если такая настройка задана, то с момента начала вызова Tariscope рассчитывает максимально возможную длительность этого вызова, исходя из заданной допустимой стоимости вызова, и при превышении вызовов этой длительности, вызов прекращается.
- Прекращать звонки с длительностью более заданной величины. Принцип работы такой настройки аналогичен предыдущей настройки.
- Отклонять вызовы без кода доступа (кода авторизации). Код авторизации не используется в АТС 3CX, но его можно задать в Tariscope. В момент начала вызова Tariscope будет проверять, содержит ли набранный номер код авторизации или нет. Если его нет, то вызов отклоняется.
- Отклонять звонки по определенным направлениям. Коды городов, стран или мобильных операторов указаны как список в данной настройке.
- Экспортировать информацию об очередях вызовов для построения отчетов, которые содержатся в этих данных, а также в CDR данных.
- Исправлять продолжительность вызова для разных этапов выполнения трансферных вызовов. CDR данные от 3CX содержат только суммарную продолжительность для трансферных вызовов, не позволяя понять, сколько времени принимал участие в вызове каждый из абонентов. Поэтому для решения этого вопроса необходима дополнительная информация, которую можно получить от 3CX.
- Автоматически создавать и периодически синхронизировать информацию об абонентах на основании информации, содержащейся в 3CX.
Все эти возможности позволяют более эффективно использовать IP АТС 3CX, получать полную информацию о выполненных вызовах и управлять бюджетом компании на телефонные разговоры.
Функция ограничения Tariscope для 3CX
Система Tariscope предоставляет функцию ограничения для некоторых телефонных систем, включая 3CX. Функция ограничения позволяет администратору Tariscope установить ограничение на определенный тип вызовов для абонента, группы абонентов, маршрута или шлюза. Лимит может быть установлен в денежном или временном выражении. Конкретный тип вызовов определяется категорией вызова, которая назначается коду города (страны). Когда абонент или группа абонентов исчерпают установленный лимит, Tariscope запретит абоненту или группе абонентов совершать звонки до окончания периода.
Tariscope снимет это ограничение в начале нового периода. Базовая лицензия Tariscope не включает функцию ограничения. Чтобы использовать функцию ограничения, у вас должна быть лицензия Tariscope, которая включает эту функцию.
Ниже мы рассмотрим, как настроить функцию ограничения в Tariscope.
Во-первых, вы должны установить и настроить Tariscope в соответствии с документацией Tariscope. (http://www.tariscope.com/ru/87-support_ru/tariscope-4-6-administrator-ru/1451-tariscope-4-6-admin-ru.html).
Создайте категорию, которая будет ассоциироваться с функцией ограничения, как показано на рисунке 1. (http://www.tariscope.com/ru/79-support_ru/tariscope-web-administrator-ru/868-calls-categories.html).
Рисунок 1
В меню системы Tariscope, выберите Операторы и тарифы → требуемый оператор связи → Исходящие → Номера и коды. Отобразится страница Номера и коды. Выберите коды стран, городов, вызовы в которые должны ограничиваться и установите им созданную категорию вызова. Окно, где устанавливается категория вызова для конкретного телефонного кода, показано на рисунке 2.
Рисунок 2
В меню системы Tariscope, выберите Узлы связи → наименование вашего узла связи → Устройства → ваша 3CX → Классы ограничений. Отобразится страница Классы ограничений.
Создайте группу ограничений. Группа может включать несколько классов ограничений. Вы должны связать каждый из классов с определенной категорией вызовов, на которые установлено ограничение. В большинстве случаев достаточно одного класса ограничений. Создайте класс ограничения. Чтобы сделать это, выберите группу ограничений и щелкните по иконке Добавить класс на панели инструментов. Появится окно Класс ограничений, как показано на рисунке 3.
Рисунок 3
В позиции Имя введите имя класса ограничений.
В позиции Класс введите информацию, которая может использоваться в сценарии для этого ограничения. Обычно для 3CX эта информация не играет существенной роли.
Щелкните по кнопке Сохранить.
Чтобы связать класс ограничения с категорией вызова, выберите требуемый класс и щелкните по иконке Настроить категории, находящейся на панели инструментов. Появится окно Категории, пример которого показан на рисунке 4.
Рисунок 4
Включите переключатель возле категории, которую вы установили для телефонных кодов, и щелкните по кнопке Сохранить.
В меню системы Tariscope, выберите пункт Абоненты. Отобразится страница Активные абоненты. В зависимости от имеющейся у вас лицензии вы можете установить ограничения только для абонентов или также для групп абонентов. Если у вас есть лицензия Tariscope с функцией ограничения «Только для абонентов», то вы можете установить ограничения только для абонентов. Если у вас есть лицензия Tariscope с функцией ограничения «Только для абонентов или групп абонентов» или «Все», вы можете установить ограничения как для абонентов, так и для групп абонентов.
Чтобы установить ограничение для абонента, выберите абонента на странице и щелкните по иконке Ограничения на панели инструментов. Появится страница Правка. Щелкните по иконке Добавить на панели инструментов, чтобы добавить ограничение. Появится окно Новое ограничение, как показано на рисунке 5.
Рисунок 5
В списке Категории выберите категорию, которая используется для ограничения.
В Списке Тип ограничения выберите значение Деньги, если используется денежный лимит, или выберите значение Секунд, если используется временной лимит.
В списке Класс ограничения выберите класс, который вы создали на предыдущем шаге настройки.
В позиции Кредит задайте величину лимита.
Щелкните Сохранить.
Повторите описанные выше действия для других абонентов.
Если вам нужно установить ограничение для группы абонентов, выберите группу и щелкните по иконке Ограничения на панели инструментов. Повторите шаги, которые были описаны выше для абонента.
Последним шагом в установке ограничений является настройка Tariscope Observer. В меню Tariscope выберите Сбор данных/Observer → Управление сбором данных. Появится страница Сбор данных/Observer. Выберите строку для 3CX и щелкните по иконке Изменить на панели инструментов. Появится меню. Выберите пункт Сценарии Observer. Страница будет выглядит так, как показано на рисунке 6.
Рисунок 6
Если вы хотите ограничить только абонентов, в списке Событие выберите пункт Изменение класса абонента. В списке Сценарий выберите пункт setcos-subscriber-3cx-v18.cs.
Если вы хотите ограничить группу абонентов, в списке Событие выберите пункт Изменение класса группы. В списке Сценарий выберите пункт setcos-group-3cx-v18.cs.
Затем щелкните по кнопке Изменить, которая находится справа от списка Сценарий. Появится окно редактирования, пример которого показан на рисунке 7.
Рисунок 7
В сценарии вы должны изменить подчеркнутые величины на ваши значения. В следующей строке укажите имя пользователя (администратора), с которым вы подключаетесь к 3CX:
const string PBX_USERNAME = "username";
В следующей строке укажите пароль, который используется при подключении:
const string PBX_PASSWORD = "admin_password";
В следующей строке укажите IP адрес и IP порт вашего 3CX:
const string PBX_HOST = "http://your_pbx_address:5000";
Щелкните по кнопке Сохранить.
В списке Интервал автоподключения выберите желаемый интервал. По умолчанию предлагается значение Каждый месяц.
В календарном списке Дата автоподключения выберите день и время, когда установленные ограничения должны быть сброшены. Например, это может быть начало первого дня нового месяца, если в качестве интервала выбран каждый месяц.
Щелкните по кнопке Сохранить.
Запустите или перезапустите Tariscope Observer.
Кто первый положил трубку?
Такой вопрос порой возникает у компаний, которые занимаются обработкой вызовов, и, например, есть какие-то претензии от клиентов, сотрудники компании, недослушав их, кладут трубку. Если у вас современный центр обработки вызовов, то возможно он имеет соответствующий отчет. Но если такой отчет и есть, то в нем необходимая информация будет только в том случае, когда вызов не был передан за пределы Колл центра. Обычно Колл центр не располагает информацией по вызовам, которые были переданы из него, например, менеджерам компании. Если вам нужно иметь информацию, кто положил первый трубку, по всем вызовам, и вы используете в качестве телефонной системы Cisco Unified Communications Manager (CUCM), то можем предложить использование системы Tariscope, которая Дозол получить необходимую информацию.
Система Tariscope получает детальную информацию по вызовам (CDR и CMR) от CUCM и позволяет их анализировать в представлениях для вызовов.
Чтобы иметь информацию по тому, кто завершил вызов первый, надо в настройках Tariscope для CUCM указать, что обрабатываются все поля CDR, как показано на рисунке 1.
Рисунок 1
При этом следует иметь в виду, что это потребует дополнительного объема на диске и быстрее можно достичь ограничения на базу данных Tariscope, если используется Microsoft SQL Server редакции Express.
Обычное представление для вызовов в Tariscope не имеет поля для отображения информации по тому, кто первым положил трубку. Есть только информация по коду завершения вызова. Но соответствующую информацию можно найти в детальной информации, в которой есть все поля CDR (именно для этого и нужно задавать соответствующую настройку). Если интересуют данные по каким-то отдельным вызовам, то выберите их в представлении и щелкните по иконке Подробные сведения о записи на панели инструментов. Если интересует информация по всем вызовам, то щелкните по иконке Подробные сведения о всех записях. Представление с деталями о вызовах может отображаться вместо основного представления или в отдельном представлении, в зависимости от того, что выберет пользователь. Пример представления с деталями по записям приведен на рисунке 2.
Рисунок 2
Как и обычное представление для вызовов, это представление позволяет выбрать только те поля, которые интересны для анализа. Для выявления того, кто первым положил трубку, следует анализировать поля origCause_value и destCause_value, которые выделены на рисунке. Значение 0 в полях означает что, либо сторона создала вызов (origCause_value), или сторона, принявшая вызов (destCause_value) первой положила трубку. При этом в противоположном поле, при нормальном завершении вызова будет значение 16. По кодам завершения вызовов смотри статью.
Но это представление может быть не всегда удобным, потому что оно не содержит информации по абоненту, который есть в обычном представлении для вызовов. В Tariscope существует возможность объединить необходимую информацию по предоставлению по деталям вызова с обычным представлением. Обычное представление по вызовам содержит достаточно большой набор полей, который все не используется для каждой из телефонных систем, которые поддерживаются. Давайте, например, будем выводить название Number A или Number B, в зависимости от того абонент с каким номером инициировал окончания разговора, в поле предназначенного для кода проекта.
Для этого надо выполнить следующий SQL запрос:
ALTER VIEW dbo.viCalls as SELECT C.ID, PBXID, NodeID, RecType, CallDirection, CallType, Originator, OriginatorAuxId, Terminator, TerminatorAuxId, CONVERT(datetime2(0), CallDateTime) AS CallDateTime, CallSeconds, AccessCode, OriginalDialnumber, Dialnumber, OriginalCLID, CLID, DNIS, RingTimeSeconds, HoldTimeSeconds, ReleaseCause, NoAnswerReasonID, AuthCode, (CASE WHEN CCM.destCause_value = 0 THEN (CASE WHEN CCM.origCause_value = 0 THEN '' ELSE 'Number A' END) ELSE (CASE WHEN CCM.origCause_value = 0 THEN 'Number B' ELSE '' END) END) as ProjectCode, FromAbonentID, FromAbonentPlaneID, ToAbonentID, ToAbonentPlaneID, FromTelephoneID, ToTelephoneID, CategoryID, ParentCallID, Tarif, Cost, Cost2, FromDepartmentID, FromDepartment, ToDepartmentID, ToDepartment, FromTelephone, ToTelephone, CONVERT(datetime2(0), EndDateTime) AS EndDateTime, CallDate, CONVERT(datetime2(0), CallTime) AS CallTime, CallDuration, CallDurationDays, RingTime, HoldTime, NumberA, NumberB, FromAbonent, ToAbonent, ISNULL(ISNULL(FromAbonent, FromTelephone), NumberA) AS CallingParty, ISNULL(ISNULL(ToAbonent, ToTelephone), NumberB) AS CalledParty
FROM dbo.viCallsInternal AS C
left join dbo.CallsCCM as CCM on C.ID = CCM.CallID
GO
Красным цветом выделена та часть SQL запроса, которая была добавлена.
Этот запрос можно выполнить, выбрав в меню: Дополнительные опции → SQL-запросы и ставившим вышеприведенный запрос, как показано на рисунке 3.
Рисунок 3
Щелкните по кнопке Выполнить.
Все. После этого создайте новое представление, или в существующее представление для вызовов добавьте поле Код проекта. После чего представление будет иметь вид, подобный тому, который показан на рисунке 4.
Рисунок 4
Как видите на этом рисунке отображается информация по той стороне, которая первая положила трубку. В связи с тем, что мы использовали поле "Код проекта" для отображения этой информации, то остается предыдущий заголовок столбца. Его можно изменить на любой, например, "Кто завершил". Для этого в Проводнике Windows отыщите файл, который соответствует этому представлению. Файлы представлений находятся в папке:
... \ SoftPI \ Tariscope \ Views \ [user name] \, где [user name] - имя пользователя Tariscope, который создавал это представление.
В файлы представления, для которого нужно изменить название столбца "Код проекта", найдите теги <DisplayName>Код проекта</ DisplayName>, которые находятся после тегов <FullName>ProjectCode</ FullName> и замените значение в теге <DisplayName>, например на "Кто завершил". После этого обновите представление, и оно будет выглядеть, как показано на рисунке 5.
Рисунок 5
При необходимости можно создавать отчеты, которые будут содержать эту информацию, но это уже тема другой статьи.
Tariscope и Cisco Unified Communications Manager
Преимущества Tariscope для сбора и анализа данных CDR из CUCM
Обработка CDR от CUCM в Tariscope
Контроль качества VoIP вызовов через CUCM, используя Tariscope
Конфигурация функции ограничения в Tariscope при работе с CUCM