Налаштування формату 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). Використовується в 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 для вхідних викликів. Потрібно, щоб в цьому полі в CDR потрапляли тільки цифри.
in-trk-code. (Incoming TAC). У цьому полі міститься код доступу до вхідної групи з’єднань. Це поле є обов’язковим для формування в Tariscope поля Originator для вхідних або транзитних викликів. Потрібно, щоб в цьому полі в CDR потрапляли тільки цифри.
out-crt-id. (Outgoing Circuit Identification). Для вихідних викликів це поле містить номер зовнішньої лінії в групі зовнішніх ліній, яка використовується під час виклику. Це поле порожнє для вхідних дзвінків. Це обов’язкове поле, в Tariscope воно використовується для формування поля Terminator для вихідних викликів. Потрібно, щоб в цьому полі в CDR потрапляли тільки цифри.
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 (AlcatelOXE), яке показано на малюнку 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 дивіться у розділі База знань Tariscope
Оновлення Tariscope для 3CX v.18
У жовтні 2021 року компанія 3CX випустила нову, 18 версію, своєї IP АТС. Оскільки в цій АТС було змінено API, то в систему обліку телефонних дзвінків (білінгову систему) Tariscope було внесено відповідні оновлення, пов'язані з роботою функції обмеження.
Нагадаємо користувачам 3CX, що використання Tariscope дозволяє не лише враховувати телефонні дзвінки, виконані через 3CX, але й керувати витрачанням бюджету на телефонні розмови. У Tariscope можна задати конкретним абонентам або групі абонентів ліміти у грошовій сумі або тривалості дзвінків за місяць. Після досягнення цього ліміту Tariscope закриє абоненту або групі абонентів вихід з АТС до кінця поточного місяця. На початку першого числа наступного місяця це обмеження Tariscope автоматично зніме. Таким чином, компанія, що має 3CX і Tariscope, може точно планувати витрати на телефонні розмови і виконувати запланований бюджет.
Але це не всі можливості, які надає спільне використання системи Tariscope із 3CX. Перелік додаткових можливостей наведено на сторінці налаштування параметрів АТС 3CX у системі Tariscope, приклад якої наведено нижче.
Як видно з цього малюнка, 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/uk/86-support_uk/tariscope-4-6-administrator-uk/1446-tariscope-4-6-admin-uk.html).
Створіть категорію, яка асоціюватиметься з функцією обмеження, як показано на малюнку 1. (http://www.tariscope.com/uk/79-support_ru/tariscope-web-administrator-ru/1009-calls-categories-uk.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
Контроль якості IP викликів через CUCM, використовуючи Tariscope
Налаштування функції обмеження в Tariscope при роботі з CUCM