Usando a API de REST para controlar sessões SMS
SMS Gateway fornece uma API de REST que você pode usar em aplicativos da central de contato para que os agentes possam iniciar sessões SMS entre um cliente e o agente SMS. É possível incorporar a API de REST nos aplicativos usando seus comandos cURL. Para propósitos de teste, você também pode interagir com a API de REST diretamente por meio da interface com o usuário de seu Swagger.
Sobre a API de REST
Através da API de REST, é possível controlar sessões SMS executando as operações disponíveis, como criar uma sessão ou testar a configuração. A API de REST controla sessões SMS transmitindo dois tipos de dados JSON para o SMS Gateway:
- Dados da sessão SMS: os dados da sessão SMS definem a sessão, como o número de telefone do locatário do provedor SMS, o número do telefone do usuário e o valor de tempo limite da sessão opcional.
- Dados do usuário: estes dados opcionais são o contexto definido pelo aplicativo que é passado como dados opacos para o mecanismo de orquestração de serviço ou diretamente no Watson Assistant.
Você pode testar cada operação diretamente por meio da IU do Swagger da API de REST ou usar comandos cURL para cada operação dentro do aplicativo da central de contato.
As operações que você pode executar
Com a API de REST, é possível executar as seguintes operações.
- Gerenciar Sessões
- Criar sessão: cria uma sessão SMS entre os números de telefone do usuário e do locatário especificados.
- Excluir sessão: termina e remove uma sessão SMS existente.
-
Configurações de teste
- Testar a configuração do provedor SMS: envia uma mensagem SMS que diz "
mensagem Testar Conexão do SMS Gateway". Se a mensagem puder ser enviada, o teste será bem-sucedido. -
Testar a configuração de serviço do Watson Assistant: envia a solicitação para o espaço de trabalho Watson Assistant configurado. Se uma resposta não nula for recebida, o teste será bem-sucedido.
Lembre-se: para obter uma resposta, seu diálogo deve incluir um nó com a condição
conversation_starte um nó com uma resposta padrão. Você pode testar com a conversa de amostra ou criar seu próprio diálogo. - Testar a configuração do servidor de armazenamento em cache XSLD: envia a solicitação para os terminais do catálogo XSLD configurados. A solicitação cria uma entrada com um valor de teste na grade de dados XSLD, busca o valor e exclui a entrada. Se todas essas ações forem concluídas, o teste será bem-sucedido.
- Testar a configuração do provedor SMS: envia uma mensagem SMS que diz "
- Integrar o SMS Gateway durante as chamadas de voz: durante uma conversa com um responsável pela chamada, o IBM® Voice Gateway pode precisar interagir com o responsável pela chamada por meio de mensagens SMS. As operações a
seguir suportam a Integração do SMS Gateway com o Voice Gateway
- Criar o canal SMS: cria uma sessão de canal SMS entre o Voice Gateway e o SMS Gateway, o canal SMS, e cria um ID de Canal SMS criptografado que contém o número do telefone do usuário e o número do telefone do locatário. Isso ativa o sistema de mensagens SMS entre um agente de voz e o responsável pela chamada por meio do SMS Gateway.
- Enviar uma mensagem SMS usando o ID de canal SMS: após a sessão de canal SMS entre o Voice Gateway e o SMS Gateway ser criada, o Voice Gateway usa essa operação para enviar mensagens SMS para um responsável pela chamada.
- Enviar uma mensagem SMS sem o ID de canal SMS: esta operação envia somente a mensagem SMS de saída para o responsável pela chamada. O usuário fornece o número do telefone do locatário, o número do telefone do usuário e a mensagem.
- Excluir o canal SMS: termina e remove a sessão de canal SMS criada pelo Voice Gateway.
Se qualquer uma das operações não for bem-sucedida, verifique os logs do SMS Gateway para obter informações sobre o que deu errado.
Acessando a interface com o usuário do Swagger da API de REST
Depois de implementar SMS Gateway, você pode acessar a IU do Swagger da API de REST nas seguintes URLs:
-
Conexão segura:
https://<host-address:secured-port>/publicURL/apis/explorer/Por exemplo:
https://123.4.5.67:9443/publicURL/apis/explorer/ # Single instance deployment https://123.4.5.67:30043/publicURL/apis/explorer/ # Highly available deployment -
Conexão não segura:
http://<host-address:unsecured-port>/publicURL/apis/explorer/Por exemplo:
http://123.4.5.67:9080/publicURL/apis/explorer/ # Single-instance deployment http://123.4.5.67:30080/publicURL/apis/explorer/ # Highly available deployment
Na página APIs do SMS Gateway resultante, clique em Listar operações para visualizar as operações disponíveis para sessões SMS.
Testando uma operação
- Na coluna Tipo de dados, clique no exemplo para preencher previamente o campo Valor.
- Modifique os dados JSON no campo Valor inserindo o usuário e o número do telefone do locatário. Importante: o número de telefone do locatário deve corresponder exatamente ao número de telefone do locatário especificado na configuração do SMS Gateway.
- Clique em Experimente! para executar a operação.
- Se solicitado, insira o nome de usuário e senha. Você será solicitado a autenticar apenas se tiver ativado a autenticação para a API REST.
Depois de tentar a operação, a interface exibe as seguintes informações:
- O comando cURL que foi usado para executar a operação
- A URL da solicitação
- As informações de resposta do SMS Gateway
Usando os comandos cURL
Você pode executar operações API de REST usando comandos cURL na linha de comandos ou incorporando-as em um aplicativo. Os sistemas baseados em Linux geralmente incluem cURL, mas se seu sistema operacional não inclui cURL, você pode fazer download e instalar o pacote para seu sistema operacional a partir do curl.haxx.se.
Comandos para enviar solicitações são especificados no seguinte formato:
curl -X <HTTP request> --header 'Content-Type: application/json' --header 'Accept: application/json' -d <JSON data>
Você também pode especificar as opções a seguir. Para obter detalhes sobre cada opção, consulte a documentação do curl.
-k: efetue bypass na criptografia SSL/TLS para uma conexão não segura-u <user name:password>: envie o nome do usuário e a senha se você ativou a autenticação para a API de REST
Exemplos de comando
Os seguintes comandos curl de amostra demonstram várias operações que você pode executar com a API de REST. Ao executar os comandos de amostra, certifique-se de substituir os valores smsUserPhoneNumber e smsTenantPhoneNumber pelos seus próprios valores.
Importante: o número de telefone do locatário deve corresponder exatamente ao número de telefone do locatário especificado na configuração do SMS Gateway. O número de telefone do usuário deve ser especificado em um formato correspondente, conforme requerido por seu provedor SMS. Por exemplo, números de telefone do Twilio requerem um sinal de mais (+), mas os números de telefone do RestcommONE devem ser especificados sem um sinal de mais (+).
Gerenciar Sessões
Gerencie sessões com os seguintes comandos.
Criar uma Sessão
curl -X PUT --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{ \
"smsUserPhoneNumber": "+18765554321", \ "smsTenantPhoneNumber": "+12345556789", \
"smsUserData": { "data": "Data"}, \
"smsSessionTimeoutCount": 600 \ }' 'http://host:9080/sms.gateway/session'
Exclua uma sessão
curl -X DELETE --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{ \
"smsUserPhoneNumber": "+18765554321", \ "smsTenantPhoneNumber": "+12345556789" \
}' 'http://host:9080/sms.gateway/session'
Configuração de Teste
Teste sua configuração com os seguintes comandos.
Teste a configuração do provedor de SMS
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \ -d '{ \ "smsTenantPhoneNumber": "+18765554321", \ "smsUserPhoneNumber": "+12345556789" \
}' 'http://host:9080/sms.gateway/testConfig/SMSProvider'
Teste a configuração do serviço Watson Assistant
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \ -d '{ \ "smsTenantPhoneNumber": "+18765554321", \ "smsUserPhoneNumber": "+12345556789", \
"smsUserData": { "data": "Data" }, \
"smsSessionTimeoutCount": 600 \ }' 'http://host:9080/sms.gateway/testConfig/WCS'
Teste a configuração do servidor de armazenamento em cache XSLD
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \ -d '{ \ "smsTenantPhoneNumber": "+18765554321" \
}' 'http://host:9080/sms.gateway/testConfig/XS'
Integrando o SMS Gateway suporte para Voice Gateway exemplos de comando
Os comandos curl de amostra a seguir demonstram os comandos que o SMS Gateway usa para suportar os clientes enviarem e receberem mensagens SMS para o Voice Gateway durante uma chamada. Ao executar os comandos de amostra, substitua os
valores smsUserPhoneNumber e smsTenantPhoneNumber por seus próprios valores. Para que os comandos de amostra funcionem com êxito, deve-se também configurar o host e port em sua URL do servidor
SMS Gateway para enviar solicitações. A URL do servidor SMS Gateway pode ser http:// ou https://, dependendo de quando a porta segura é configurada, mas deve sempre incluir o /sms.gateway/smsPipe.
É possível localizar descrições da solicitação e variáveis de resposta na UI do Swagger da API de REST. Veja Acessando a interface com o usuário do Swagger da API de REST.
Importante: o número de telefone do locatário deve corresponder exatamente ao número de telefone do locatário especificado na configuração do SMS Gateway. O número de telefone do usuário deve ser especificado em um formato correspondente, conforme requerido por seu provedor SMS. Por exemplo, números de telefone do Twilio requerem um sinal de mais (+), mas os números de telefone do RestcommONE devem ser especificados sem um sinal de mais (+).
Crie o canal do SMS
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \ -d '{ \ "smsUserPhoneNumber": "+18765554321", \ "smsTenantPhoneNumber": "+12345556789", \
"smsResponseURL": "https://vgwServer:port/smsRecv", \
"SmsToken ":" tokenID ", \
"smsMediaURL": [ "https://media.com/media/l4JyRqcDU93S334KQ/first.gif", \
"https://media.com/media/l4JyRqcDU93S334KQ/second.gif" ], \
"smsMessage": "Hello this is a chat message sent from Voice Gateway.",\
"smsOpaqueData": { "data": "Data"} ,\
"SmsPipeTimeoutCount": 1200 \ } ''" Http://host:port/sms.gateway/smsPipe
Envie uma mensagem SMS ou MMS usando o ID do Canal SMS
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \ -d '{ \ "smsMessage": "Hello this is a chat message sent from Voice Gateway.",\
"smsMediaURL": [ "https://media.com/media/l4JyRqcDU93S334KQ/first.gif", \
"https://media.com/media/l4JyRqcDU93S334KQ/second.gif" ], \
"smsOpaqueData": { "data": "Data"}
} ''http://host:port/sms.gateway/smsPipe/pipeID/KzE1MTAzMzAyNTgyOisxOTE5Njk5MjYwzJjZmNhZC1lMzc/sms'
Envie uma mensagem SMS ou MMS sem o ID do Canal SMS
curl -X POST --header 'Content-Type: application/json' --header 'Accept: application/json' \ -d '{ \ "smsUserPhoneNumber": "+18765554321", \ "smsTenantPhoneNumber": "+12345556789", \
"smsMessage": "Hello this is a chat session starting from Voice Gateway."\
"smsMediaURL": [ "https://media.com/media/l4JyRqcDU93S334KQ/first.gif", \
"https://media.com/media/l4JyRqcDU93S334KQ/second.gif" ]
} ''http://host:port/sms.gateway/smsPipe/sms'
Exclua o Canal SMS
curl -X DELETE --header 'Content-Type: application/json' --header 'Accept: application/json' \
-d '{}' 'http://host:port/sms.gateway/smsPipe/pipeID/KzE1MTAzMzAyNTgyOisxOTE5Njk5MjYwzJjZmNhZC1lMzc'