Віртуальная АТС Ростелекома: што і як можна зрабіць праз 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', які паведамляе карыстальніка аб статусе запісу: праўда азначае, што функцыя запісу размовы ў карыстальніка падключана.

Каб спампаваць запіс, трэба па ідэнтыфікатару сесіі выкліку ідэнтыфікатар_сесіі адправіць запыт на 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

Дадаць каментар