El tutorial o código que verás en este artículo es la resolución más fácil y efectiva que hallamos a tus dudas o problema.
Solución:
Sé que esta es una vieja pregunta, pero recientemente cambiamos a Five9 y no pude encontrar ningún ejemplo de PHP con el que trabajar. A continuación, se ilustra cómo conectarse con credenciales estándar y ejecutar la lista de llamadas. He incluido toda la estructura de criterios de selección (comentada) para su referencia. Si incluye una propiedad de selección, debe especificar los criterios correspondientes.
$soap = null;
$wsdl = "https://api.five9.com/wsadmin/v2/AdminWebService?wsdl";
$user = "yourloginid";
$pass = "yourpassword";
$soap_options = array("login" => $user, "password" => $pass);
$soap = new SoapClient($wsdl, $soap_options);
/* create the callLogReportCriteria data selection structure */
$arryParams['time'] = array("start" => "2013-05-05T00:00:01",
"end" => "2013-05-05T09:00:00");
$arryParams['criteria'] = array("callTypes" => array("INBOUND","OUTBOUND"));
/************ Entire Structure for selection criteria *************/
/*$arryParams['criteria'] = array("ANI" => "6178752803",
"Agents" => "",
"callTypes" => array("INBOUND","OUTBOUND"),
"campaigns" => "",
"dispositions" => "",
"Lists" => "",
"skillGroups" => ""
);*/
$result = $soap->getCallLogReport($arryParams);
if(isset($result->return->records))
/* you have records returned */
$objRecords = $result->return->records;
for($i=0 ; $i < sizeof($objRecords) ; $i++)
/* do your processing */
printf("ANI: %s
", $objRecords[$i]->values->data[3]); //4th element has ANI
Ciertas líneas de código podrían combinarse, pero por el bien de la comprensión las dividí. También querrá utilizar una prueba/captura alrededor de la llamada SOAP real para el manejo de errores.
Esperemos que esto ayude a acortar la curva de aprendizaje de alguien. ¡Sé que me hubiera encantado tener esto hace un mes!
Parece que su problema es que está enviando su nombre de usuario/contraseña codificados en base64 en el encabezado del jabón. En realidad, debe incluirse en el encabezado http. Mi solución está en Ruby, pero espero que pueda ayudarte.
soap_client = Savon.client(
endpoint: "https://api.five9.com/wsadmin/AdminWebService/",
namespace: "http://service.admin.ws.five9.com/",
headers: "Authorization" => "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==" ,
env_namespace: :soapenv,
namespace_identifier: :ser,
ssl_verify_mode: :none
)
message =
"lookupCriteria" =>
"criteria" =>
"field" => "email_address",
"value" => "[email protected]"
response = soap_client.call(:getContactRecords, message: message)
p response.body
Entonces su XML termina luciendo así.
SOAP request: https://api.five9.com/wsadmin/AdminWebService/
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==, SOAPAction: "getContactRecords",
Content-Type: text/xml;charset=UTF-8, Content-Length: 471
email_address
[email protected]
HTTPI POST request to api.five9.com (httpclient)
SOAP response (status 200)
number1
email_address
5555555555
[email protected]
Aquí tienes las comentarios y calificaciones
Recuerda que puedes mostrar este artículo si te ayudó.