<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
		<id>https://mioficinaweb.duocom.es/wiki/index.php?action=history&amp;feed=atom&amp;title=API_de_campa%C3%B1as</id>
		<title>API de campañas - Historial de revisiones</title>
		<link rel="self" type="application/atom+xml" href="https://mioficinaweb.duocom.es/wiki/index.php?action=history&amp;feed=atom&amp;title=API_de_campa%C3%B1as"/>
		<link rel="alternate" type="text/html" href="https://mioficinaweb.duocom.es/wiki/index.php?title=API_de_campa%C3%B1as&amp;action=history"/>
		<updated>2026-04-23T01:02:14Z</updated>
		<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
		<generator>MediaWiki 1.30.2</generator>

	<entry>
		<id>https://mioficinaweb.duocom.es/wiki/index.php?title=API_de_campa%C3%B1as&amp;diff=18939&amp;oldid=prev</id>
		<title>Dbetancor: Página creada con «{{#seo: |title= API de campañas {{PROD_TILDE}}. |titlemode=append |keywords=API, campañas, llamadas, html, API, servicios web, desarrollo web, VOIP, campañas de llamadas...»</title>
		<link rel="alternate" type="text/html" href="https://mioficinaweb.duocom.es/wiki/index.php?title=API_de_campa%C3%B1as&amp;diff=18939&amp;oldid=prev"/>
				<updated>2026-04-22T15:00:10Z</updated>
		
		<summary type="html">&lt;p&gt;Página creada con «{{#seo: |title= API de campañas {{PROD_TILDE}}. |titlemode=append |keywords=API, campañas, llamadas, html, API, servicios web, desarrollo web, VOIP, campañas de llamadas...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{#seo:&lt;br /&gt;
|title= API de campañas {{PROD_TILDE}}.&lt;br /&gt;
|titlemode=append&lt;br /&gt;
|keywords=API, campañas, llamadas, html, API, servicios web, desarrollo web, VOIP, campañas de llamadas, url&lt;br /&gt;
|description= Con la API de campañas se pueden gestionar campañas de llamadas salientes: crear, listar, añadir números, lanzar llamadas y guardar resultados.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==¿Qué es la API de campañas?==&lt;br /&gt;
&lt;br /&gt;
===Descripción API de campañas===&lt;br /&gt;
&lt;br /&gt;
Este servicio web nos permite gestionar campañas de llamadas salientes en una cuenta {{PRODUCTO}}: crear campañas, listar las existentes, añadir números, iniciar llamadas y guardar los resultados de cada una.&lt;br /&gt;
&lt;br /&gt;
Si no sabe lo que es una API lea [[que es una api|¿Qué son las APIs de {{PRODUCTO}}?]]&lt;br /&gt;
&lt;br /&gt;
==Autenticación==&lt;br /&gt;
&lt;br /&gt;
Todas las llamadas a esta API requieren los parámetros de autenticación:&lt;br /&gt;
&lt;br /&gt;
* 'principal' es su número de usuario de la cuenta {{PRODUCTO}} (o teléfono principal).&lt;br /&gt;
* 'pass' es la contraseña de la cuenta {{PRODUCTO}}.&lt;br /&gt;
&lt;br /&gt;
La URL base para todas las operaciones es:&lt;br /&gt;
&lt;br /&gt;
 https://scgi.duocom.es/cgi-bin/{{DIR_CGI}}/apicampanyas?principal=xxxxxxxxx&amp;amp;pass=xxxxxxxx&amp;amp;accion=...&lt;br /&gt;
&lt;br /&gt;
==Forma de uso==&lt;br /&gt;
&lt;br /&gt;
===Listar campañas (accion=listar)===&lt;br /&gt;
&lt;br /&gt;
Devuelve la lista de campañas de la cuenta (en XML). Esta es también la acción por defecto si se omite el parámetro 'accion'.&lt;br /&gt;
&lt;br /&gt;
 https://scgi.duocom.es/cgi-bin/{{DIR_CGI}}/apicampanyas?principal=xxxxxxxxx&amp;amp;pass=xxxxxxxx&amp;amp;accion=listar&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;campanya&amp;gt;&lt;br /&gt;
     &amp;lt;id&amp;gt;2024-03-15_10-30-00_p12345.sqlite&amp;lt;/id&amp;gt;&lt;br /&gt;
     &amp;lt;nombre&amp;gt;Clientes marzo&amp;lt;/nombre&amp;gt;&lt;br /&gt;
     &amp;lt;llamante&amp;gt;912345678&amp;lt;/llamante&amp;gt;&lt;br /&gt;
     &amp;lt;mascara&amp;gt;900123456&amp;lt;/mascara&amp;gt;&lt;br /&gt;
     &amp;lt;estado&amp;gt;0&amp;lt;/estado&amp;gt;&lt;br /&gt;
     &amp;lt;grabamos&amp;gt;0&amp;lt;/grabamos&amp;gt;&lt;br /&gt;
     &amp;lt;total&amp;gt;150&amp;lt;/total&amp;gt;&lt;br /&gt;
     &amp;lt;pendientes&amp;gt;87&amp;lt;/pendientes&amp;gt;&lt;br /&gt;
     &amp;lt;acabadas&amp;gt;63&amp;lt;/acabadas&amp;gt;&lt;br /&gt;
   &amp;lt;/campanya&amp;gt;&lt;br /&gt;
   &amp;lt;campanya&amp;gt;&lt;br /&gt;
     &amp;lt;id&amp;gt;2024-02-01_09-00-00_p54321.sqlite&amp;lt;/id&amp;gt;&lt;br /&gt;
     &amp;lt;nombre&amp;gt;Campaña febrero&amp;lt;/nombre&amp;gt;&lt;br /&gt;
     &amp;lt;llamante&amp;gt;912345678&amp;lt;/llamante&amp;gt;&lt;br /&gt;
     &amp;lt;mascara&amp;gt;900123456&amp;lt;/mascara&amp;gt;&lt;br /&gt;
     &amp;lt;estado&amp;gt;1&amp;lt;/estado&amp;gt;&lt;br /&gt;
     &amp;lt;grabamos&amp;gt;0&amp;lt;/grabamos&amp;gt;&lt;br /&gt;
     &amp;lt;total&amp;gt;200&amp;lt;/total&amp;gt;&lt;br /&gt;
     &amp;lt;pendientes&amp;gt;0&amp;lt;/pendientes&amp;gt;&lt;br /&gt;
     &amp;lt;acabadas&amp;gt;200&amp;lt;/acabadas&amp;gt;&lt;br /&gt;
   &amp;lt;/campanya&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El campo 'estado' indica si la campaña está abierta (0) o cerrada (1).&lt;br /&gt;
&lt;br /&gt;
===Crear una campaña (accion=nueva)===&lt;br /&gt;
&lt;br /&gt;
Crea una nueva campaña con la lista de números indicada.&lt;br /&gt;
&lt;br /&gt;
 https://scgi.duocom.es/cgi-bin/{{DIR_CGI}}/apicampanyas?principal=xxxxxxxxx&amp;amp;pass=xxxxxxxx&amp;amp;accion=nueva&amp;amp;nombre=...&amp;amp;llamante=...&amp;amp;mascara=...&amp;amp;numeros=...&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
* 'nombre' es el nombre descriptivo de la campaña.&lt;br /&gt;
* 'llamante' es el número desde el que se realizarán las llamadas (debe ser un número activado de la cuenta).&lt;br /&gt;
* 'mascara' es el número que verá el destinatario de la llamada (debe ser una máscara válida de la cuenta).&lt;br /&gt;
* 'numeros' es la lista de números a llamar, un número por línea. Opcionalmente, separado por coma o tabulador, se puede incluir información adicional sobre el contacto.&lt;br /&gt;
* 'repes' (opcional): si se incluye este parámetro, se eliminan los números duplicados.&lt;br /&gt;
* 'grabamos' (opcional): si se incluye este parámetro, las llamadas se grabarán.&lt;br /&gt;
&lt;br /&gt;
El número puede incluir prefijo internacional con + (se convierte automáticamente a 00) o ser una extensión VoIP del tipo usuario@telefacil.com. Se admite un máximo de 5.000 números por campaña.&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;id&amp;gt;2024-03-15_10-30-00_p12345.sqlite&amp;lt;/id&amp;gt;&lt;br /&gt;
   &amp;lt;telefonos&amp;gt;150&amp;lt;/telefonos&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El campo 'id' es el identificador de la campaña creada, que se usará en el resto de operaciones. El campo 'telefonos' indica cuántos números se insertaron correctamente.&lt;br /&gt;
&lt;br /&gt;
===Ver una campaña (accion=ver)===&lt;br /&gt;
&lt;br /&gt;
Devuelve los datos completos de una campaña y la lista de todos sus números.&lt;br /&gt;
&lt;br /&gt;
 https://scgi.duocom.es/cgi-bin/{{DIR_CGI}}/apicampanyas?principal=xxxxxxxxx&amp;amp;pass=xxxxxxxx&amp;amp;accion=ver&amp;amp;campanya=...&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
* 'campanya' es el identificador de la campaña (campo 'id' devuelto por 'listar' o 'nueva').&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;campanya&amp;gt;&lt;br /&gt;
     &amp;lt;id&amp;gt;2024-03-15_10-30-00_p12345.sqlite&amp;lt;/id&amp;gt;&lt;br /&gt;
     &amp;lt;nombre&amp;gt;Clientes marzo&amp;lt;/nombre&amp;gt;&lt;br /&gt;
     &amp;lt;llamante&amp;gt;912345678&amp;lt;/llamante&amp;gt;&lt;br /&gt;
     &amp;lt;mascara&amp;gt;900123456&amp;lt;/mascara&amp;gt;&lt;br /&gt;
     &amp;lt;estado&amp;gt;0&amp;lt;/estado&amp;gt;&lt;br /&gt;
     &amp;lt;grabamos&amp;gt;0&amp;lt;/grabamos&amp;gt;&lt;br /&gt;
     &amp;lt;minutos&amp;gt;0&amp;lt;/minutos&amp;gt;&lt;br /&gt;
     &amp;lt;telefono&amp;gt;&lt;br /&gt;
       &amp;lt;oid&amp;gt;1&amp;lt;/oid&amp;gt;&lt;br /&gt;
       &amp;lt;numero&amp;gt;666111222&amp;lt;/numero&amp;gt;&lt;br /&gt;
       &amp;lt;info&amp;gt;Juan García&amp;lt;/info&amp;gt;&lt;br /&gt;
       &amp;lt;comentario&amp;gt;Interesado en tarifa plana&amp;lt;/comentario&amp;gt;&lt;br /&gt;
       &amp;lt;estado&amp;gt;3&amp;lt;/estado&amp;gt;&lt;br /&gt;
       &amp;lt;resultado&amp;gt;4&amp;lt;/resultado&amp;gt;&lt;br /&gt;
       &amp;lt;llamante&amp;gt;912345678&amp;lt;/llamante&amp;gt;&lt;br /&gt;
       &amp;lt;mascara&amp;gt;900123456&amp;lt;/mascara&amp;gt;&lt;br /&gt;
       &amp;lt;momento&amp;gt;2024-03-15 11:05:32&amp;lt;/momento&amp;gt;&lt;br /&gt;
       &amp;lt;ref&amp;gt;abc123&amp;lt;/ref&amp;gt;&lt;br /&gt;
       &amp;lt;usuario&amp;gt;912345678&amp;lt;/usuario&amp;gt;&lt;br /&gt;
       &amp;lt;recordar&amp;gt;&amp;lt;/recordar&amp;gt;&lt;br /&gt;
     &amp;lt;/telefono&amp;gt;&lt;br /&gt;
     &amp;lt;telefono&amp;gt;&lt;br /&gt;
       &amp;lt;oid&amp;gt;2&amp;lt;/oid&amp;gt;&lt;br /&gt;
       &amp;lt;numero&amp;gt;666333444&amp;lt;/numero&amp;gt;&lt;br /&gt;
       &amp;lt;info&amp;gt;María López&amp;lt;/info&amp;gt;&lt;br /&gt;
       &amp;lt;comentario&amp;gt;&amp;lt;/comentario&amp;gt;&lt;br /&gt;
       &amp;lt;estado&amp;gt;0&amp;lt;/estado&amp;gt;&lt;br /&gt;
       &amp;lt;resultado&amp;gt;0&amp;lt;/resultado&amp;gt;&lt;br /&gt;
       &amp;lt;llamante&amp;gt;&amp;lt;/llamante&amp;gt;&lt;br /&gt;
       &amp;lt;mascara&amp;gt;&amp;lt;/mascara&amp;gt;&lt;br /&gt;
       &amp;lt;momento&amp;gt;&amp;lt;/momento&amp;gt;&lt;br /&gt;
       &amp;lt;ref&amp;gt;&amp;lt;/ref&amp;gt;&lt;br /&gt;
       &amp;lt;usuario&amp;gt;&amp;lt;/usuario&amp;gt;&lt;br /&gt;
       &amp;lt;recordar&amp;gt;&amp;lt;/recordar&amp;gt;&lt;br /&gt;
     &amp;lt;/telefono&amp;gt;&lt;br /&gt;
   &amp;lt;/campanya&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Los valores del campo 'estado' de cada teléfono son: 0=libre, 1=intentando, 2=cogida, 3=acabada.&lt;br /&gt;
&lt;br /&gt;
Los valores del campo 'resultado' son: 0=Sin resultado, 1=No contestada, 2=Comunicando, 3=Buzón, 4=Contestada.&lt;br /&gt;
&lt;br /&gt;
===Añadir números a una campaña (accion=anyadir)===&lt;br /&gt;
&lt;br /&gt;
Añade números a una campaña existente. Solo se pueden añadir números si la campaña está abierta (estado=0).&lt;br /&gt;
&lt;br /&gt;
 https://scgi.duocom.es/cgi-bin/{{DIR_CGI}}/apicampanyas?principal=xxxxxxxxx&amp;amp;pass=xxxxxxxx&amp;amp;accion=anyadir&amp;amp;campanya=...&amp;amp;numeros=...&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
* 'campanya' es el identificador de la campaña.&lt;br /&gt;
* 'numeros' es la lista de números a añadir, uno por línea (mismo formato que en 'nueva').&lt;br /&gt;
* 'repes' (opcional): si se incluye, se omiten números ya existentes en la campaña.&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;telefonos&amp;gt;25&amp;lt;/telefonos&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cambiar datos de una campaña (accion=cambiar)===&lt;br /&gt;
&lt;br /&gt;
Modifica el nombre, llamante y máscara de una campaña existente.&lt;br /&gt;
&lt;br /&gt;
 https://scgi.duocom.es/cgi-bin/{{DIR_CGI}}/apicampanyas?principal=xxxxxxxxx&amp;amp;pass=xxxxxxxx&amp;amp;accion=cambiar&amp;amp;campanya=...&amp;amp;nombre=...&amp;amp;llamante=...&amp;amp;mascara=...&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
* 'campanya' es el identificador de la campaña.&lt;br /&gt;
* 'nombre' es el nuevo nombre de la campaña.&lt;br /&gt;
* 'llamante' es el nuevo número llamante.&lt;br /&gt;
* 'mascara' es la nueva máscara.&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Cerrar una campaña (accion=cerrar)===&lt;br /&gt;
&lt;br /&gt;
Marca la campaña como cerrada. Una vez cerrada no se pueden añadir números ni iniciar nuevas llamadas.&lt;br /&gt;
&lt;br /&gt;
 https://scgi.duocom.es/cgi-bin/{{DIR_CGI}}/apicampanyas?principal=xxxxxxxxx&amp;amp;pass=xxxxxxxx&amp;amp;accion=cerrar&amp;amp;campanya=...&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
* 'campanya' es el identificador de la campaña.&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Siguiente llamada (accion=siguiente)===&lt;br /&gt;
&lt;br /&gt;
Selecciona el siguiente número pendiente de la campaña e inicia la llamada mediante callback: primero se llama al número 'llamante' y, cuando descuelga, se conecta automáticamente con el número de destino de la campaña.&lt;br /&gt;
&lt;br /&gt;
 https://scgi.duocom.es/cgi-bin/{{DIR_CGI}}/apicampanyas?principal=xxxxxxxxx&amp;amp;pass=xxxxxxxx&amp;amp;accion=siguiente&amp;amp;campanya=...&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
* 'campanya' es el identificador de la campaña.&lt;br /&gt;
* 'llamante' (opcional): sobreescribe el llamante almacenado en la campaña para esta llamada.&lt;br /&gt;
* 'mascara' (opcional): sobreescribe la máscara almacenada en la campaña para esta llamada.&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta cuando la llamada se inicia correctamente:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;resultado&amp;gt;1&amp;lt;/resultado&amp;gt;&lt;br /&gt;
   &amp;lt;oid&amp;gt;42&amp;lt;/oid&amp;gt;&lt;br /&gt;
   &amp;lt;numero&amp;gt;666111222&amp;lt;/numero&amp;gt;&lt;br /&gt;
   &amp;lt;info&amp;gt;Juan García&amp;lt;/info&amp;gt;&lt;br /&gt;
   &amp;lt;comentario&amp;gt;&amp;lt;/comentario&amp;gt;&lt;br /&gt;
   &amp;lt;ref&amp;gt;abc123&amp;lt;/ref&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
El campo 'oid' identifica el registro del número llamado y debe usarse en la operación 'guardar' para guardar el resultado. El campo 'ref' es la referencia interna de la llamada. Si no hay más números pendientes:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;resultado&amp;gt;0&amp;lt;/resultado&amp;gt;&lt;br /&gt;
   &amp;lt;msgerr&amp;gt;No hay mas llamadas en esta campanya&amp;lt;/msgerr&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Guardar resultado de una llamada (accion=guardar)===&lt;br /&gt;
&lt;br /&gt;
Guarda el resultado de una llamada iniciada con 'siguiente'. Debe llamarse después de que el agente haya completado la llamada.&lt;br /&gt;
&lt;br /&gt;
 https://scgi.duocom.es/cgi-bin/{{DIR_CGI}}/apicampanyas?principal=xxxxxxxxx&amp;amp;pass=xxxxxxxx&amp;amp;accion=guardar&amp;amp;campanya=...&amp;amp;oid=...&amp;amp;resultado=...&amp;amp;comentario=...&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
* 'campanya' es el identificador de la campaña.&lt;br /&gt;
* 'oid' es el identificador del número devuelto por 'siguiente'.&lt;br /&gt;
* 'resultado' es el resultado de la llamada: 0=Sin resultado, 1=No contestada, 2=Comunicando, 3=Buzón, 4=Contestada.&lt;br /&gt;
* 'comentario' (opcional): comentario libre sobre la llamada.&lt;br /&gt;
* 'llamante' (opcional): llamante usado en la llamada.&lt;br /&gt;
* 'mascara' (opcional): máscara usada en la llamada.&lt;br /&gt;
* 'dejar_para_despues' (opcional): si se incluye, el número vuelve a la cola para ser llamado de nuevo.&lt;br /&gt;
* 'recordar' (opcional, requiere 'dejar_para_despues'): si se incluye, se crea un recordatorio.&lt;br /&gt;
* 'fechayhora' (opcional, requiere 'recordar'): fecha y hora del recordatorio en formato DD/MM/AAAA HH:MM.&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Eliminar una campaña (accion=eliminar)===&lt;br /&gt;
&lt;br /&gt;
Elimina permanentemente una campaña y todos sus datos. Esta operación no se puede deshacer.&lt;br /&gt;
&lt;br /&gt;
 https://scgi.duocom.es/cgi-bin/{{DIR_CGI}}/apicampanyas?principal=xxxxxxxxx&amp;amp;pass=xxxxxxxx&amp;amp;accion=eliminar&amp;amp;campanya=...&lt;br /&gt;
&lt;br /&gt;
donde:&lt;br /&gt;
&lt;br /&gt;
* 'campanya' es el identificador de la campaña.&lt;br /&gt;
&lt;br /&gt;
Ejemplo de respuesta:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Respuesta del servicio===&lt;br /&gt;
&lt;br /&gt;
El servicio web retorna todas las respuestas en formato [https://es.wikipedia.org/wiki/Extensible_Markup_Language XML]. Todas las respuestas están encerradas en la raíz 'campanyas', y contienen siempre un campo 'error' que será 0 si el comando o petición enviado al servidor se ejecutó con éxito, o 1 si hubo algún error, en cuyo caso habrá también un campo 'msgerr' que explica dicho error.&lt;br /&gt;
&lt;br /&gt;
Una respuesta de error sería:&lt;br /&gt;
&lt;br /&gt;
 HTTP/1.1 200 OK&lt;br /&gt;
 Content-Type: text/xml&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;1&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;msgerr&amp;gt;Registro incorrecto. Compruebe que el usuario y la clave sean validos (1).&amp;lt;/msgerr&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Ejemplos API de campañas==&lt;br /&gt;
&lt;br /&gt;
====Ejemplo de flujo completo en PHP + CURL====&lt;br /&gt;
&lt;br /&gt;
Tenga presente que, aunque la aplicación web es accesible mediante una URL, no debe poner nunca enlaces a esta aplicación directamente en el código fuente de sus páginas web, ya que sus visitantes podrían descubrir datos sensibles como su número de usuario y su contraseña simplemente mirando el código HTML.&lt;br /&gt;
&lt;br /&gt;
La aplicación web debe ser llamada siempre desde el servidor, usando para ello alguna de las librerías que permite llamadas a servicios HTTPS.&lt;br /&gt;
&lt;br /&gt;
He aquí un ejemplo en PHP usando cURL que crea una campaña, inicia una llamada y guarda el resultado:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
  $principal = '912345678';&lt;br /&gt;
  $pass      = 'MiPass123';&lt;br /&gt;
  $base_url  = 'https://scgi.duocom.es/cgi-bin/telefacil2/apicampanyas';&lt;br /&gt;
&lt;br /&gt;
  function api_campanyas($base_url, $params) {&lt;br /&gt;
    $url  = $base_url . '?' . http_build_query($params);&lt;br /&gt;
    $curl = curl_init($url);&lt;br /&gt;
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);&lt;br /&gt;
    curl_setopt($curl, CURLOPT_HEADER, false);&lt;br /&gt;
    curl_setopt($curl, CURLOPT_TIMEOUT, 30);&lt;br /&gt;
    $output = curl_exec($curl);&lt;br /&gt;
    curl_close($curl);&lt;br /&gt;
    return simplexml_load_string($output);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // 1. Crear una campaña&lt;br /&gt;
  $xml = api_campanyas($base_url, [&lt;br /&gt;
    'principal' =&amp;gt; $principal,&lt;br /&gt;
    'pass'      =&amp;gt; $pass,&lt;br /&gt;
    'accion'    =&amp;gt; 'nueva',&lt;br /&gt;
    'nombre'    =&amp;gt; 'Campaña de prueba',&lt;br /&gt;
    'llamante'  =&amp;gt; '912345678',&lt;br /&gt;
    'mascara'   =&amp;gt; '900123456',&lt;br /&gt;
    'numeros'   =&amp;gt; &amp;quot;666111222,Juan García\n666333444,María López\n&amp;quot;,&lt;br /&gt;
    'repes'     =&amp;gt; '1',&lt;br /&gt;
  ]);&lt;br /&gt;
  if ((int)$xml-&amp;gt;error !== 0) die('Error: ' . $xml-&amp;gt;msgerr);&lt;br /&gt;
  $campanya_id = (string)$xml-&amp;gt;id;&lt;br /&gt;
  echo &amp;quot;Campaña creada: $campanya_id con {$xml-&amp;gt;telefonos} teléfonos\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // 2. Iniciar la siguiente llamada&lt;br /&gt;
  $xml = api_campanyas($base_url, [&lt;br /&gt;
    'principal' =&amp;gt; $principal,&lt;br /&gt;
    'pass'      =&amp;gt; $pass,&lt;br /&gt;
    'accion'    =&amp;gt; 'siguiente',&lt;br /&gt;
    'campanya'  =&amp;gt; $campanya_id,&lt;br /&gt;
  ]);&lt;br /&gt;
  if ((int)$xml-&amp;gt;error !== 0) die('Error: ' . $xml-&amp;gt;msgerr);&lt;br /&gt;
  if ((int)$xml-&amp;gt;resultado === 0) die(&amp;quot;No hay más llamadas pendientes\n&amp;quot;);&lt;br /&gt;
  $oid    = (int)$xml-&amp;gt;oid;&lt;br /&gt;
  $numero = (string)$xml-&amp;gt;numero;&lt;br /&gt;
  echo &amp;quot;Llamando a $numero (oid=$oid)...\n&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
  // 3. Guardar el resultado (tras que el agente complete la llamada)&lt;br /&gt;
  $xml = api_campanyas($base_url, [&lt;br /&gt;
    'principal'  =&amp;gt; $principal,&lt;br /&gt;
    'pass'       =&amp;gt; $pass,&lt;br /&gt;
    'accion'     =&amp;gt; 'guardar',&lt;br /&gt;
    'campanya'   =&amp;gt; $campanya_id,&lt;br /&gt;
    'oid'        =&amp;gt; $oid,&lt;br /&gt;
    'resultado'  =&amp;gt; 4,   // 4 = Contestada&lt;br /&gt;
    'comentario' =&amp;gt; 'Cliente interesado, enviar oferta',&lt;br /&gt;
  ]);&lt;br /&gt;
  if ((int)$xml-&amp;gt;error !== 0) die('Error: ' . $xml-&amp;gt;msgerr);&lt;br /&gt;
  echo &amp;quot;Resultado guardado correctamente\n&amp;quot;;&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Ejemplo de listado de campañas en XML====&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot; ?&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;campanyas&amp;gt;&lt;br /&gt;
   &amp;lt;error&amp;gt;0&amp;lt;/error&amp;gt;&lt;br /&gt;
   &amp;lt;campanya&amp;gt;&lt;br /&gt;
     &amp;lt;id&amp;gt;2024-03-15_10-30-00_p12345.sqlite&amp;lt;/id&amp;gt;&lt;br /&gt;
     &amp;lt;nombre&amp;gt;Clientes marzo&amp;lt;/nombre&amp;gt;&lt;br /&gt;
     &amp;lt;llamante&amp;gt;912345678&amp;lt;/llamante&amp;gt;&lt;br /&gt;
     &amp;lt;mascara&amp;gt;900123456&amp;lt;/mascara&amp;gt;&lt;br /&gt;
     &amp;lt;estado&amp;gt;0&amp;lt;/estado&amp;gt;&lt;br /&gt;
     &amp;lt;grabamos&amp;gt;0&amp;lt;/grabamos&amp;gt;&lt;br /&gt;
     &amp;lt;total&amp;gt;150&amp;lt;/total&amp;gt;&lt;br /&gt;
     &amp;lt;pendientes&amp;gt;87&amp;lt;/pendientes&amp;gt;&lt;br /&gt;
     &amp;lt;acabadas&amp;gt;63&amp;lt;/acabadas&amp;gt;&lt;br /&gt;
   &amp;lt;/campanya&amp;gt;&lt;br /&gt;
 &amp;lt;/campanyas&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
'''Indice'''&lt;br /&gt;
&lt;br /&gt;
[[Página principal]]  &amp;gt;&amp;gt;  [[Desarrolladores]]  &amp;gt;&amp;gt;  API de campañas.&lt;/div&gt;</summary>
		<author><name>Dbetancor</name></author>	</entry>

	</feed>