cURL
Como invocar un servicio externo
Para invocar un servicio externo a través de workflow se necesitan las siguientes 3 actividades:
1- Set HTTP HEADER: Usado principalmente para definir el API-KEY:
2- CURL el cual invoca el servicio (en caso de ser una pegada a una api con el metodo POST se debe poner true en isPost y si se piden datos como x-www-form-urlencoded en postdata se debe de poner en formato key=value&key2=value2):
3- ParseJSON: Para parsear si la respuesta esta en el formato JSON (si se quiere usar un valor especifico que viene de la respuesta del servicio):
Como usar SOAP webservices desde cURL
1- Debemos setear (application set en asterisk) los headers que requiera el cURL a ser realizado.
2- Se debe definir el envelope a ser utilizado por el SOAP en formato xml. Para esto basta con definir el contenido del mismo en una variable.
El contenido de ${envelope} es:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:acc="http://accesa.webservice.com"> <soapenv:Header></soapenv:Header> <soapenv:Body> <acc:isVipCustomer> <!--Optional:--> <acc:numservice>000${Ani2}</acc:numservice> <!--Optional:--> <acc:dnis>333</acc:dnis> </acc:isVipCustomer> </soapenv:Body> </soapenv:Envelope>
En el mismo se invoca a la variable ${Ani2} la cual contiene el caller id de la persona que llama al contact center. Cabe aclarar que cada soap va a tener un formato de envelope basado en sus actions y parámetros a recibir.
3 - Utilizamos el cURL
En el campo data ingresamos el envelope preparado de antemano y se aloja la respuesta en resultado. Cabe destacar que va a venir un string con formato xml y a partir del mismo habrá que desglosarlo para extraer la información que nos competa.