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.