As empresas modernas percebem os telefones fixos como uma tecnologia ultrapassada: as comunicações celulares garantem a mobilidade e a disponibilidade constante dos funcionários, as redes sociais e os mensageiros instantâneos são um canal de comunicação mais fácil e rápido. Para acompanhar seus concorrentes, os PBXs de escritório estão se tornando cada vez mais parecidos com eles: estão migrando para a nuvem, gerenciados por meio de uma interface web e integrados a outros sistemas via API. Neste post iremos contar quais funções possui a API do PABX virtual Rostelecom e como trabalhar com as principais funções do PABX virtual através dela.
A principal tarefa da API do PABX virtual Rostelecom é a interação com o CRM ou sites da empresa. Por exemplo, a API implementa widgets de “call back” e “call from site” para os principais sistemas de gerenciamento: WordPress, Bitrix, OpenCart. A API permite:
- Receber informações, notificar status e realizar chamadas mediante solicitação de um sistema externo;
- Obtenha um link temporário para gravar a conversa;
- Gerenciar e receber parâmetros de restrição dos usuários;
- Obter informações sobre o usuário do PABX virtual;
- Solicitar o histórico de débitos e cobranças de ligações;
- Carregar registro de chamadas.
Como funciona a API
A API de integração e o sistema externo interagem entre si por meio de solicitações HTTP. Na conta pessoal, o administrador define os endereços para onde as solicitações da API devem chegar e para onde as solicitações da API devem ser enviadas. O sistema externo deve possuir um endereço público acessível pela Internet com certificado SSL instalado.
Ainda na conta pessoal, o administrador do domínio pode limitar as fontes de solicitações no acesso à API por IP.
Recebemos informações sobre usuários de PABX virtual
Para obter uma lista de usuários ou grupos, você precisa enviar uma solicitação ao PABX virtual usando o método /users_info.
{
"domain":"example.ru"
}
Em resposta, você receberá uma lista que poderá salvar.
{
"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 passa dois arrays. Um com usuários de domínio, outro com grupos de domínio. O grupo também tem a oportunidade de especificar um e-mail que será enviado na solicitação.
Processando informações sobre uma chamada recebida
Conectar a telefonia corporativa a diversos sistemas de CRM economiza tempo dos funcionários que interagem com os clientes e agiliza o processamento das chamadas recebidas. Por exemplo, ao receber uma ligação de um cliente atual, o CRM pode abrir seu cartão, e a partir do CRM você pode enviar uma ligação para o cliente e conectá-lo a um funcionário.
Para obter informações sobre chamadas de API, você precisa usar o método /get_number_info, que gera uma lista de chamadas com informações sobre o grupo para o qual a chamada é distribuída. Vamos supor que o número do PABX virtual receba uma chamada do número 1234567890. Em seguida, o PABX enviará a seguinte solicitação:
{
"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":""
}
Em seguida, você precisa conectar o manipulador /get_number_info. A solicitação deve ser executada quando uma chamada chega na linha de entrada antes que as chamadas sejam roteadas. Se a resposta a uma solicitação não for recebida dentro do tempo especificado, a chamada será roteada de acordo com as regras estabelecidas no domínio.
Exemplo de manipulador 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 manipulador.
{
"result":0,
"resultMessage":"Абонент найден",
"displayName":"Иванов Иван Иванович +1</i> 234-56-78-90<i>"
}
Rastreamos o status e baixamos gravações de chamadas
No PABX virtual da Rostelecom, a gravação de chamadas é ativada na sua conta pessoal. Usando a API, você pode acompanhar o status desta função. Ao processar uma terminação de chamada em call_events você pode ver a bandeira 'é_registro', que notifica o usuário sobre o status da entrada: verdadeiro significa que a função de gravação de chamadas do usuário está habilitada.
Para baixar uma gravação, você precisa usar o ID da sessão de chamada session_id envie uma solicitação para api.cloudpbx.rt.ru/get_record.
{
"session_id":"SDsnZugDFmTW7Sec"
}
Em resposta, você receberá um link temporário para baixar um arquivo com a gravação da conversa.
{
"result": ^_^quot�quot^_^,
"resultMessage": "Операция выполнена успешно",
"url": "https://api.cloudpbx.rt.ru/records_new_scheme/record/download/501a8fc4a4aca86eb35955419157921d/188254033036"
}
O tempo de armazenamento do arquivo é definido nas configurações da sua conta pessoal. Depois o arquivo será excluído.
Estatísticas e relatórios
Na sua conta pessoal, em uma página separada, você pode ver estatísticas e relatórios de todas as chamadas e aplicar filtros por status e horário. Através da API, você deve primeiro processar a chamada com o método /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"
}
Então chame o método call_info para processar a matriz e exibir a chamada no sistema CRM.
{
"session_id":"SDsnZugDFmTW7Sec"
}
Em resposta, você receberá uma série de dados que podem ser processados para armazenar dados no log do 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":""
}
}
Outros recursos úteis de PABX virtual
Além da API, um PBX virtual possui vários outros recursos úteis que você pode usar. Por exemplo, este é um menu de voz interativo e a integração de comunicações celulares e fixas.
Resposta de voz interativa (IVR) é o que ouvimos no aparelho antes de a pessoa atender. Essencialmente, trata-se de uma operadora eletrônica que redireciona as ligações para os departamentos competentes e responde algumas dúvidas automaticamente. Em breve será possível trabalhar com IVR via API: atualmente estamos desenvolvendo um software que permitirá acompanhar o andamento de uma chamada através do IVR e receber informações sobre as teclas digitadas quando o assinante estiver no menu de voz.
Para transferir a telefonia corporativa para celulares, você pode usar aplicativos de softphone ou ativar separadamente o serviço Convergência Fixo-Móvel (FMC). Com qualquer um dos métodos, as chamadas dentro da rede são gratuitas, é possível trabalhar com números curtos, as chamadas podem ser gravadas e mantidas estatísticas gerais sobre elas.
A diferença é que os softphones precisam de Internet para se comunicar, mas não estão vinculados a uma operadora, enquanto o FMC está vinculado a uma operadora específica, mas pode ser usado até mesmo em telefones de botão antigos.
Fonte: habr.com