Віртуальна АТС Ростелекому: що і як можна зробити через API

Віртуальна АТС Ростелекому: що і як можна зробити через API

Сучасний бізнес сприймає міські телефони як застарілу технологію: стільниковий зв'язок забезпечує мобільність та постійну доступність співробітників, соцмережі та месенджери є більш легким та швидким каналом спілкування. Щоб не відставати від своїх конкурентів, офісні АТС все більше стають схожими на них: вони переходять у хмари, керуються через web-інтерфейс та інтегруються з іншими системами через API. У цьому пості ми розповімо, які функції у API віртуальної АТС «Ростелекома» і як через нього працювати з основними функціями віртуальної АТС.

Основне завдання API віртуальної АТС "Ростелекому" - взаємодія з CRM або сайтами компаній. Наприклад, на API реалізовані віджети «зворотний дзвінок» та «дзвінок із сайту» для основних систем керування: WordPress, Bitrix, OpenCart. API дозволяє:

  • Отримувати інформацію, повідомляти про статус та здійснювати виклики на запит із зовнішньої системи;
  • Отримати тимчасове посилання запису розмови;
  • Керувати та отримувати параметри обмежень у користувачів;
  • Отримати інформацію про користувача віртуальної АТС;
  • Запитати історії списань та нарахувань за викликами;
  • Вивантажити журнал дзвінків.

Як працює API

Інтеграційний API та зовнішня система взаємодіють між собою за допомогою HTTP-запитів. В особистому кабінеті адміністратор задає адреси, куди повинні надходити запити до API та куди повинні надсилатися запити від API. Зовнішня система має мати публічну адресу, доступну з інтернету, з встановленим SSL-сертифікатом.

Віртуальна АТС Ростелекому: що і як можна зробити через API

Також в особистому кабінеті адміністратор домену може обмежити IP джерела запитів при зверненні до API. 

Отримуємо інформацію про користувачів віртуальної АТС 

Щоб отримати список користувачів чи груп, потрібно надіслати у віртуальній АТС запит методом /users_info.

{
        "domain":"example.ru"
}

У відповідь надійде список, який можна зберегти.

{
"result":0,
"resultMessage":"",
"users":[
                           {
                            "display_name":"test_user_1",
                            "name":"admin",
                            "pin":^_^quotʚquot^_^,
                           "is_supervisor":true,
                            "is_operator":false,
                            "email":"[email protected]","recording":1
                             },
                            {
                            "display_name":"test_user_2",
                            "name":"test",
                            "pin":^_^quotʿquot^_^,
                            "is_supervisor":true,
                            "is_operator":false,
                            "email":"",
                           "recording":1
                            }
              ],
"groups":
              [
                            {
                            "name":"testAPI",
                            "pin":^_^quotǴquot^_^,
                            "email":"[email protected]",
                            "distribution":1,
                           "users_list":[^_^quotʚquot^_^,^_^quotʿquot^_^]
                            }
              ]

У цьому методі передається два масиви. Один із користувачами домену, один із групами домену. Група також має можливість вказати електронну пошту, яка буде передаватися в запиті.

Обробляємо інформацію про вхідний виклик

Підключення корпоративної телефонії до різних систем CRM заощаджує час співробітників, які взаємодіють із клієнтами, та прискорює обробку вхідних дзвінків. Наприклад, за дзвінком від поточного клієнта CRM може відкрити його картку, а з CRM можна надіслати виклик клієнту та з'єднати його зі співробітником.

Щоб отримати інформацію про виклики через API, потрібно використовувати метод /get_number_info, який формує список дзвінків з інформацією про групу, до якої розподіляється виклик. Припустимо, що номер віртуальної АТС надійшов вхідний виклик з номера 1234567890. Тоді від АТС відправиться запит:

{
        "session_id":"SDsnZugDFmTW7Sec",
        "timestamp":"2019-12-27 15:34:44.461",
        "type":"incoming",
        "state":"new",
        "from_number":"sip:</i^_^gt�lt&i;gt^_^@192.168.0.1",
        "from_pin":"",
        "request_number":"sip:</i^_^gt�lt&i;gt^_^@1192.168.0.1",
        "request_pin":^_^quotɟquot^_^,
        "disconnect_reason":"",
        "is_record":""
}

Далі потрібно підключити обробник /get_number_info. Запит повинен виконуватися при надходженні дзвінка на вхідну лінію до маршрутизації дзвінків. Якщо відповідь на запит не отримано за встановлений час, то дзвінок маршрутизується за встановленими в домені правилами.

Приклад обробника на стороні CRM.

if ($account) {
        	$data = [
            	'result' => 0,
            	'resultMessage' => 'Абонент найден',
            	'displayName' => $account->name,
            	//'PIN' => $crm_users,
        	];
    	} 
        else 
                {
        	$data = [
            	'result' => 0,
            	'resultMessage' => 'Абонент не найден',
            	'displayName' => 'Неизвестный абонент '.$contact,
            	//'PIN' => crm_users,
        	];
    	}
    	return $data;

Відповідь від оброблювача.

{
        "result":0,
        "resultMessage":"Абонент найден",
        "displayName":"Иванов Иван Иванович +1</i> 234-56-78-90<i>"
}

Відстежуємо статус та завантажуємо записи розмов

У віртуальній АТС "Ростелекому" запис розмов активується в особистому кабінеті. За допомогою API можна відстежувати статус цієї функції. При обробці завершення дзвінка в call_events можна побачити прапор 'is_record', який повідомляє користувача про статус запису: правда означає, що функція запису розмови користувача підключена.

Щоб скачати запис, потрібно за ідентифікатором сесії виклику session_id надіслати запит на api.cloudpbx.rt.ru/get_record.

{
        "session_id":"SDsnZugDFmTW7Sec"
}

У відповідь прийде тимчасове посилання на завантаження файлу із записом розмови.

{
        "result": ^_^quot�quot^_^,
        "resultMessage": "Операция выполнена успешно",
    	"url": "https://api.cloudpbx.rt.ru/records_new_scheme/record/download/501a8fc4a4aca86eb35955419157921d/188254033036"
}

Час зберігання файлу встановлюється в налаштуваннях особистого кабінету. Після цього файл буде видалено.

Статистика та звітність

В особистому кабінеті на окремій сторінці можна побачити статистику та звітність за всіма викликами та застосувати фільтри за статусом та часом. Через API потрібно спочатку обробити виклик методом /call_events:

       {
        "session_id":"SDsnZugDFmTW7Sec",
        "timestamp":"2019-12-27 15:34:59.349",
        "type":"incoming",
        "state":"end",
        "from_number":"sip:</i^_^gt�lt&i;gt^_^@192.168.0.1",
        "from_pin":"",
        "request_number":"sip:</i^_^gt�lt&i;gt^_^@192.168.0.1",
        "request_pin":^_^quotʚquot^_^,
        "disconnect_reason":"",
        "is_record":"true"
        }

Потім викликати метод call_info для обробки масиву та відображення виклику в CRM системі.

     {
        "session_id":"SDsnZugDFmTW7Sec"
}

У відповідь прийде масив даних, який можна обробити для зберігання даних у журналі CRM.

{
        "result":0,
        "resultMessage":"",
        "info":
        {
                "call_type":1,
                "direction":1,
                "state":1,
                "orig_number":"sip:</i^_^gt�lt&i;gt^_^@192.168.0.1",
                "orig_pin":null,
                "dest_number":"sip:</i^_^gt�lt&i;gt^_^@192.168.0.1",
                "answering_sipuri":"[email protected]",
                "answering_pin":^_^quotɟquot^_^,
                "start_call_date":^_^quot�quot^_^,
                "duration":14,
                 "session_log":"0:el:123456789;0:ru:admin;7:ct:admin;9:cc:admin;14:cd:admin;",
                "is_voicemail":false,
                "is_record":true,
                "is_fax":false,
                "status_code":^_^quot�quot^_^,
                "status_string":""
        }
}

Інші корисні функції віртуальної АТС

Крім API, віртуальна АТС має ще кілька корисних функцій, які можна використовувати. Наприклад, це інтерактивне голосове меню та об'єднання стільникового та фіксованого зв'язку.

Інтерактивне голосове меню (IVR – Interactive Voice Response) – те, що ми чуємо у слухавці до того, як відповість людина. По суті, це електронний оператор, який перенаправляє виклики до відповідних відділів та відповідає на частину питань в автоматичному режимі. Скоро з IVR можна буде працювати через API: зараз ми розробляємо програмне забезпечення, яке дозволить відстежувати проходження виклику через IVR та отримувати інформацію про натискання клавіш тонального набору при знаходженні абонента в голосовому меню.

Для перенесення корпоративної телефонії на мобільні телефони можна використовувати програми-софтфони або окремо підключити послугу Fixed Mobile Convergence (FMC). За будь-якого зі способів дзвінки всередині мережі безкоштовні, з'являється можливість працювати з короткими номерами, а дзвінки можна записувати і вести загальну статистику. 

Відмінність полягає в тому, що софтфонам для зв'язку потрібний інтернет, але вони не прив'язані до оператора, а FMC прив'язана до певного оператора, але може використовуватися навіть на старих телефонах кнопок.

Джерело: habr.com

Додати коментар або відгук