As empresas modernas perciben os teléfonos fixos como unha tecnoloxía obsoleta: as comunicacións móbiles garanten a mobilidade e a dispoñibilidade constante dos empregados, as redes sociais e a mensaxería instantánea son unha canle de comunicación máis sinxela e rápida. Para estar ao día dos seus competidores, as PBX de oficina son cada vez máis semellantes a elas: están pasando á nube, xestionadas a través dunha interface web e integradas con outros sistemas mediante API. Neste post dirémosche que funcións ten a API de PBX virtual de Rostelecom e como traballar coas principais funcións da PBX virtual a través dela.
A principal tarefa da API de PBX virtual de Rostelecom é a interacción con CRM ou sitios web da empresa. Por exemplo, a API implementa widgets de "chamada de volta" e "chamada desde o sitio" para os principais sistemas de xestión: WordPress, Bitrix, OpenCart. A API permite:
- Recibir información, notificar o estado e realizar chamadas a petición dun sistema externo;
- Obtén unha ligazón temporal para gravar a conversa;
- Xestionar e recibir parámetros de restrición dos usuarios;
- Obter información sobre o usuario da PBX virtual;
- Solicitar o historial de cargos e débitos de chamadas;
- Cargar rexistro de chamadas.
Como funciona a API
A API de integración e o sistema externo interactúan entre si mediante solicitudes HTTP. Na conta persoal, o administrador establece os enderezos onde deben chegar as solicitudes á API e onde se deben enviar as solicitudes da API. O sistema externo debe ter un enderezo público accesible desde Internet cun certificado SSL instalado.
Tamén na conta persoal, o administrador do dominio pode limitar as fontes de solicitudes ao acceder á API por IP.
Recibimos información sobre usuarios de PBX virtual
Para obter unha lista de usuarios ou grupos, cómpre enviar unha solicitude á PBX virtual mediante o método /información_usuarios.
{
"domain":"example.ru"
}
Como resposta, recibirá unha lista que pode gardar.
{
"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^_^]
}
]
Este método pasa dúas matrices. Un con usuarios de dominios, outro con grupos de dominios. O grupo tamén ten a oportunidade de especificar un correo electrónico que se enviará na solicitude.
Procesando información sobre unha chamada entrante
Conectar a telefonía corporativa a varios sistemas CRM aforra tempo para os empregados que interactúan cos clientes e acelera o procesamento das chamadas entrantes. Por exemplo, tras unha chamada dun cliente actual, CRM pode abrir a súa tarxeta e desde CRM pode enviar unha chamada ao cliente e conectalo cun empregado.
Para obter información sobre as chamadas API, cómpre utilizar o método /obter_número_información, que xera unha lista de chamadas con información sobre o grupo ao que se distribúe a chamada. Supoñamos que o número de PBX virtual recibe unha chamada entrante do número 1234567890. A continuación, a PBX enviará a seguinte solicitude:
{
"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":""
}
A continuación, cómpre conectar o controlador /obter_número_información. A solicitude debe executarse cando chega unha chamada entrante á liña de entrada antes de que as chamadas sexan encamiñadas. Se non se recibe unha resposta a unha solicitude no prazo especificado, a chamada envíase segundo as regras establecidas no dominio.
Exemplo de manejador no lado do 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;
Resposta do xestor.
{
"result":0,
"resultMessage":"Абонент найден",
"displayName":"Иванов Иван Иванович +1</i> 234-56-78-90<i>"
}
Seguimos o estado e descargamos as gravacións das chamadas
Na central virtual de Rostelecom, a gravación de chamadas está activada na túa conta persoal. Usando a API, pode seguir o estado desta función. Ao procesar unha terminación de chamada en chamada_eventos podes ver a bandeira 'est_record', que notifica ao usuario o estado da entrada: certo significa que a función de gravación de chamadas do usuario está activada.
Para descargar unha gravación, cómpre utilizar o ID da sesión de chamada sesión_id enviar unha solicitude a api.cloudpbx.rt.ru/get_record.
{
"session_id":"SDsnZugDFmTW7Sec"
}
Como resposta, recibirás unha ligazón temporal para descargar un ficheiro cunha gravación da conversa.
{
"result": ^_^quot�quot^_^,
"resultMessage": "Операция выполнена успешно",
"url": "https://api.cloudpbx.rt.ru/records_new_scheme/record/download/501a8fc4a4aca86eb35955419157921d/188254033036"
}
O tempo de almacenamento dos ficheiros establécese na configuración da túa conta persoal. Despois, o ficheiro será eliminado.
Estatística e informes
Na túa conta persoal nunha páxina separada podes ver estatísticas e informes de todas as chamadas e aplicar filtros por estado e hora. A través da API, primeiro debes procesar a chamada co método /chamar_eventos:
{
"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"
}
A continuación, chame ao método info_chamada para procesar a matriz e mostrar a chamada no sistema CRM.
{
"session_id":"SDsnZugDFmTW7Sec"
}
Como resposta, recibirá unha serie de datos que se poden procesar para almacenar datos no rexistro de 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":""
}
}
Outras funcións útiles da PBX virtual
Ademais da API, unha central virtual ten outras funcións útiles que podes usar. Por exemplo, este é un menú de voz interactivo e a integración de comunicacións móbiles e fixas.
A resposta de voz interactiva (IVR) é o que escoitamos no teléfono antes de que a persoa conteste. Esencialmente, trátase dun operador electrónico que redirixe as chamadas aos departamentos correspondentes e responde a algunhas preguntas automaticamente. En breve será posible traballar con IVR a través da API: actualmente estamos a desenvolver un software que che permitirá seguir o progreso dunha chamada a través do IVR e recibir información sobre as pulsacións de teclas de tons táctiles cando o abonado estea no menú de voz.
Para transferir a telefonía corporativa a teléfonos móbiles, pode utilizar aplicacións de softphone ou activar por separado o servizo Fixed Mobile Convergence (FMC). Con calquera dos métodos, as chamadas dentro da rede son gratuítas, faise posible traballar con números curtos e pódense gravar as chamadas e manter estatísticas xerais sobre elas.
A diferenza é que os softphones necesitan Internet para comunicarse, pero non están ligados a un operador, mentres que FMC está ligado a un operador específico, pero pódese usar incluso en teléfonos antigos con botóns.
Fonte: www.habr.com