![]() |
| Página Principal | Asistencia | Productos | Mapa del Sitio |
Kit de desarrollo de software IVMEsta es la página del kit de desarrollo de software (SDK) de IVM, el contestador telefónico automático. Debería ser usado por programadores quienes desean escribir sus propios complementos o usar el API de IVM. Este tema del SDK es de carácter avanzado. Para crear los sistemas IVR más comunes, no debería necesitar de ningún tipo de programación. Siga las instrucciones en el manual de IVM, compare los ejemplos de IVR y, de ser necesario, use uno de los complementos listos. Antes de intentar la escritura de un código, debería familiarizarse con:
Temas del kit de desarrollo de software IVM
Acerca de los complementosLos complementos IVM pueden ser usados para procesar información de una llamada recibida o para proporcionar información a una llamada (o ambos). Los ejemplos típicos son acceso a base de datos, autorización de tarjetas de crédito o detección de hardware pero existe un sinnúmero de posibilidades.
Una cantidad de complementos útiles que han sido creados por nuestros programados están disponibles para ser descargados gratis en www.nch.com.au/ivm/es/plugins.html. Para más información sobre el uso de los complementos, por favor consulte el manual de ayuda de IVM usando la página de complementos (ayuda->contenidos de ayuda). Escribir complementos IVMEsta documentación está dirigida a los programadores que deseen desarrollas sus propios complementos para IVM. Los complementos pueden ser escritos en cualquier lenguaje que pueda hacer un ejecutable de línea de comandos en consola de 32 bits para Windows. Los ejemplos de abajo están escritos en C++ y Perl pero Dephi, VB y otra cantidad de lenguajes son adecuados. Un complemento es un ejecutable de línea de comandos en modo de consola. Se ejecuta como una canal anónimo por IVM cuando se abre un mensaje saliente. Las variables de llamada se pasan a los complementos como argumentos de línea de comandos. Por ejemplo, si crea un complemento llamado "plugin.exe" puede establecer que IVM abra "plugin.exe %linenumber% %cid% %variable1% %variable2%". Cuando se ejecuta un exe como un complemento, IVM espera que el complemento vuelva (salir). El ejecutable del complemento debería volver cuando el mensaje saliente haya terminado de reproducirse. Si se deben de realizar más tareas que requieran más tiempo, su complemento debe crear/ejecutar otro proceso y salir. El valor devuelto puede ser cualquier número de variables que son enviadas ("printed") por el complemento a STDOUT en pares de datos de nombre en el formato usado por HTTP. Por ejemplo, "numbervariable=101&textvariable=Space+as+plus". Para más información, consulte los libros sobre secuencia de comandos cgi. Generalmente, el valor devuelto más útil es el nombre del mensaje saliente que debería reproducirse a continuación. Esta variable puede ser usada como el nombre del "ir a MS..." Ejemplos usando C++Este pequeño complemento devuelve un número al azar. Puede ser útil si desea que se reproduzcan distintos mensajes salientes a las llamadas entrantes de manera aleatoria.El complemento tiene dos argumentos opcionales. El primero determina el rango de los valores devueltos. El valor predeterminado es 10 que ofrece los resultados posibles de 0 a 9. El segundo es el nombre de la variable devuelta (predeterminado "rand"). #include <stdlib.h>
#include <iostream>
int main(int argc, char *argv[], char *[])
{
cout << ((argc > 2) ? argv[2] : "rand");
cout << "=";
int RandomModulus = (argc > 1) ? atoi(argv[1]) : 10;
randomize();
cout << rand() % RandomModulus;
}
Ejemplos usando Perlprint @ARGV > 1 ? $ARGV[1] : "rand"; print "="; $RandomModulus = (@ARGV > 0) ? int($ARGV[0]) : 10; print (int(rand($RandomModulus))); Ejemplos usando Visual BasicNota: No se muestra la función GetRandomNumber aquí.Public Sub Main() Dim StdIO As clsStdIO Set StdIO = New clsStdIO StdIO.StdOut "rand=" & GetRandomNumber End Sub Ejemplos usando PHPPara ejecutar el complemento use:Ejecutable: C:\PHP\php.exe (o donde sea que instaló php - descargar desde www.php.net) Argumento 1: -q (evita el envío de encabezados HTTP ) Argumento 2: Argumentos 3+: Argumentos para pasar a una secuencia de comandos PHP Para comenzar, se puede usar una secuencia de comandos PHP simple como el siguiente: <?php
if (argv[1] == 1234)
{
print NextOGM=CorrectPIN ;
}
else
{
print NextOGM=IncorrectPIN ;
}
?>
Luego establezca Argumento 3 a %PIN% por ejemplo (habiendo recolectado el PIN en esta variable en un mensaje saliente anterior) y establezca la opción para ir a MS& a %NextOGM%. Ejemplos usando JavaEste es un complemento similar al de C++ pero en java. Para usar un complemento java, java debe ser el nombre del complemento que la clase de compilación el primer argumento seguido por otros argumentos.
public class RandNumGen {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance(java.util.TimeZone.getDefault());
Random rand = new Random();
rand.setSeed(cal.getTimeInMillis());
int numberOfOptions = Integer.parseInt(args[0])+1;
System.out.print("rand=" + rand.nextInt(numberOfOptions));
}
}
Depuración de complementosSi tiene problemas al intentar el uso de este complemento:
Servicios de desarrollo de complementosSi no puede escribir sus propio complemento (o no tiene tiempo), puede consultar uno de nuestros programadores asociados para que lo desarrollen en su lugar. Dependiendo de la complejidad de la función, esto puede costar alrededor de $150 dólares estadounidenses. Para solicitar un presupuesto, por favor visite www.nch.com.au/development/es. Si lo prefiere, puede consultar a un experto en IVM desde la conexión con expertos IVM www.nch.com.au/ivm/es/experts.html.Usar el API de IVMLa API de IVM es usada para permitir que otros programas controlen IVM ( a diferencia de los complementos donde IVM ejecuta otros programas).Necesita IVM versión 2,30 o superior para usar esta API. Todos los ejemplos y demostraciones que se mostraron anteriormente son mostradas en C++ pero esperamos que no tenga dificultades implementando las mismas funciones usando otros lenguajes (por ejemplo Visual Basic). Los procedimientos a continuación usan un número de funciones API de Windows (ej. FindWindowEx, SendMessage etc.). Si necesita saber más acerca de estas funciones y cómo usarlas, consulte la documentación de API de Microsoft Windows. Ejecutar IVMAntes que cualquier función de llamada pueda realizarse, IVM debe estar ejecutándose. La manera más fácil de hacerlo es establecer que IVM se ejecute automáticamente (ver las configuraciones).
Sin embargo, si por alguna razón necesita abrirlo desde su programa use WinExec, ShellExecute o CreateProcess para abrir: Envío de comandos a IVMLos comandos son enviados a la ventana principal de IVM. Primero necesita encontra la ventana "IVM, contestador automático" usando FindWindowEx y luego usar SendMessage para enviarle un mensaje de comando de IVM (hex 7fff). Use un código como este:
#define IVMAPI_WINDOWCAPTION "IVM Answering Attendant"
#define WM_IVMAPI_COMMAND 0x7fff
int IVMAPISendCommand(int iIVMCommand, LPARAM ExtraData)
{
HWND hwndIVM = FindWindowEx(NULL, NULL, NULL, IVMAPI_WINDOWCAPTION);
if (hwndIVM == NULL) {
// IVM not running.
// Either attempt to run IVM
// or spit out error message here...
return 0;
}
return SendMessage(hwndIVM, WM_IVMAPI_COMMAND, iIVMCommand, ExtraData);
}
La mayoría de los comandos no usan parámetos ExtraData, así que también podemos definir:
inline int IVMAPISendCommandSimple(int iIVMCommand)
{ return IVMAPISendCommand(iIVMCommand, 0); }
Si el comando requiere de una cadena, debe usar un objeto Windows ATOM para pasar la cadena como se muestra en el siguiente código. Es importante resaltar que su código debe eliminar el ATOM usando GlobalDeleteAtom después que SendMessage vuelve.
int IVMAPISendCommandString(int iIVMCommand, const char* szStringToSend)
{
ATOM atomExtraInfo = GlobalAddAtom(szStringToSend);
int iReturnValue = IVMAPISendCommand(iIVMCommand, (LPARAM)atomExtraInfo);
GlobalDeleteAtom(atomExtraInfo);
return iReturnValue;
}
Comandos IVMAPICada comando tiene un número el cual es enviado a IVM usando uno de las funciones IVMAPISendCommand anteriores.
inline int IVMAPIGetVersion() { return IVMAPISendCommandSimple(0); }
// Returns the current API version which is currently 1.
// If 0 is returned the IVM or API is not available.
// If 2 or above is returned please contact us for updated documentation.
inline void IVMAPITurnOn() { IVMAPISendCommandSimple(1); }
// Turns IVM On (so it answers calls).
inline void IVMAPITurnOff() { IVMAPISendCommandSimple(2); }
// Turns IVM Of (so it will not answer calls).
inline void IVMAPISelectAnswerOGM(const char* szOGMName)
{ IVMAPISendCommandString(3, szOGMName); }
// Selects the current default answer OGM.
inline void IVMAPIAddOutboundNumber(const char* szNumber)
{ IVMAPISendCommandString(4, szNumber); }
// Adds another number to call in the outbound calls list.
// szNumber can include the number to call
// and extra variables for use during the call.
// eg. 5551234567&msgid=666&customer=999
inline void IVMAPISetGlobalVariable(const char* szVariables)
{ IVMAPISendCommandString(5, szVariables); }
// Sets IVM Global variables. The variables are http encoded in the format
// variable=value&variable2=value2&variable3=value3
// eg. site=mainnch&SystemPromptsFolder=c:\defaultIVM
Cambiar configuraciones de IVMTodas las configuraciones IVM están contenidas en el registro. Ejecute regedit.exe para ver las configuraciones 'sin procesar'. Para cambiar estas configuraciones desde dentro de su programa use el comando API de Windows RegSetValueEx.Añadiendo otras funciones al API de IVMSi necesita tener control de otras funciones de IVM desde su programa (lo cual no se puede hacer sin un complemento), puede consultarnos para añadir la funcionalidad que necesita. El precio puede costar alrededor de $300 dólares estadounidenses, dependiendo de su complejidad. Para solicitar un presupuesto, por favor visite www.nch.com.au/development/es.Opciones de la línea de comandosLas opciones de la línea de comandos son usadas para controlar la ejecución de IVM desde un archivo por lotes u otra aplicación. Son admitidas las siguientes opciones: -on -off -ogm ogmname -outbound nnnnnnnn -ogmoutboundanswer ogmname -ogmoutboundmachine ogmname -outboundlist filename filename -set variables Ejemplos: IVM.exe -ogm OGM1 -on IVM.exe -outbound 5551234567 IVM.exe phonesystem.ivr -on Otra informaciónSi tiene problemas para escribir una aplicación, por favor visite www.nch.com.au/support/es.Ahora contamos con una lista de expertos en IVM en la nueva conexión con expertos de IVM www.nch.com.au/ivm/es/experts.html. Estos son profesionales de la informática quienes conocen cómo programar IVM y pueden ser consultados para que lo ayuden a configurar el sistema IVM complejo. Igualmente puede solicitar que sea añadido a la lista si es uno de esos profesionales. También ofrecemos servicios de desarrollo de software corporativo, si desea que lo hagamos o si necesita cambios más sustanciales en IVM. Los precios van desde $100 dólares estadounidenses por una función simple pero se pueden incrementar hasta los $10,000 o más por el desarrollo de una nueva versión completa de la aplicación. Solicite un presupuesto desde www.nch.com.au/development/es. También podemos personalizar y posicionar su marca en IVM con su logotipo e información por un pequeño cargo adicional (visite http://www.nch.com.au/reseller/es por más información). Puede distribuir el archivo de instalación de IVM con su software (pero no puede, bajo ninguna circunstancia, distribuir las claves de registro o socavar y perjudicar el sistema de registro. Consulte las condiciones de licencia de IVM (en el archivo de ayuda). Generalmente sus clientes comprarían IVM directamente a través de nosotros. Igualmente, proporcionamos fáciles condiciones de licencia si necesita distribuir versiones registradas de IVM. Por favor visite http://www.nch.com.au/reseller/es bajo el título de licencia de software. |
|
Enlaces útiles
introducción a IVM |
Arriba | Privacidad | Términos legales | Página principal © NCH Software |