Сучасны бізнес успрымае гарадскія тэлефоны як састарэлую тэхналогію: сотавая сувязь забяспечвае мабільнасць і пастаянную даступнасць супрацоўнікаў, сацсеткі і месэнджары з'яўляюцца больш лёгкім і хуткім каналам зносін. Каб не адставаць ад сваіх канкурэнтаў, офісныя АТС усё больш становяцца падобнымі да іх: яны пераходзяць у аблокі, кіруюцца праз web-інтэрфейс і інтэгруюцца з іншымі сістэмамі праз API. У гэтым пасце мы раскажам, якія ёсць функцыі ў API віртуальнай АТС "Ростелекома" і як праз яго працаваць з асноўнымі функцыямі віртуальнай АТС.
Асноўная задача API віртуальнай АТС "Ростелекома" – узаемадзеянне з CRM або сайтамі кампаній. Напрыклад, на API рэалізаваны фішкі "зваротны званок" і "званок з сайта" для асноўных сістэм кіравання: WordPress, Bitrix, OpenCart. API дазваляе:
- Атрымліваць інфармацыю, апавяшчаць аб статусе і здзяйсняць выклікі па запыце з знешняй сістэмы;
- Атрымаць часовую спасылку на запіс размовы;
- Кіраваць і атрымліваць параметры абмежаванняў у карыстальнікаў;
- Атрымаць інфармацыю аб карыстальніку віртуальнай АТС;
- Запытаць гісторыі спісанняў і налічэнняў па выкліках;
- Выгрузіць часопіс званкоў.
Як працуе API
Інтэграцыйны API і знешняя сістэма ўзаемадзейнічаюць паміж сабой пры дапамозе HTTP-запытаў. У асабістым кабінеце адміністратар задае адрасы, куды павінны прыходзіць запыты да API і куды павінны адпраўляцца запыты ад API. У знешняй сістэмы павінен быць публічны адрас, даступны з інтэрнэту, з усталяваным SSL-сертыфікатам.
Таксама ў асабістым кабінеце адміністратар дамена можа абмежаваць па 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', які паведамляе карыстальніка аб статусе запісу: праўда азначае, што функцыя запісу размовы ў карыстальніка падключана.
Каб спампаваць запіс, трэба па ідэнтыфікатару сесіі выкліку ідэнтыфікатар_сесіі адправіць запыт на 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