Llamadas automáticas - CallCenter y Asterisk 1.6

Discussion in 'Elastix 2.x' started by nicotorres, Mar 10, 2011.

  1. nicotorres

    Joined:
    Jul 4, 2010
    Messages:
    4
    Likes Received:
    0
    En este documento se intenta explicar como hacer campañas automatizadas con Elastix 2.0, que llamen a los números contenidos en un archivo CSV, y digan los datos que en él figuran.

    Los archivos CSV tendrían que tener un formato como el siguiente:
    Teléfono,Dato1,Dato2,... etc.

    Antes de empezar, cabe aclarar que para realizar campañas salientes automatizadas con Elastix 1.6 y Asterisk 1.4, se utilizaba el modulo AgentCallbackLogin para el logueo de los agentes virtuales, los cuales son necesarios para este tipo de campañas.

    Elastix 2.0 utiliza Asterisk 1.6, en el cual el modulo AgentCallbackLogin fue removido.

    Para poder loguear los agentes se creo un script que genera las llamadas para el logueo y deslogueo utilizando agentes virtuales.

    Resumen de las tareas realizadas para configurar las campañas salientes con Elastix 2.0:

    1.Se crearon los agentes virtuales (A3000, A3001, A3002, … , A3009)

    2.Se crearon colas para los diferentes tipos de campañas (2001, 2002, 2003, 2004), a las cuales se le asignaron los agentes virtuales.

    3.Se creo el script “agentes-virtuales.agi” para loguear y desloguear a los agentes virtuales.

    4.Se modifico el “extension_custom.conf” para agregar los contextos correspondientes a cada tipo de campaña, los contextos que tienen que ver con el logueo de agentes virtuales y finalmente un contexto para que los supervisores puedan loguear y desloguear, con una llamada, a los agentes virtuales ejecutando el script del punto anterior.

    5.Se creo el script “outgoing-tipox.agi” para parsear un archivo CSV con los diferentes números y datos de la campaña que se quiere realizar.

    6.Se compartió un directorio para que los supervisores coloquen los diferentes audios, y los archivos CSV de cada tipo de campaña.

    7.Crear la campaña desde el modulo CallCenter desde la Interfaz web.


    A continuación, detallamos un poco mas cada punto.

    1.Para que un agente funcione como virtual, una vez creados, tenemos que editar el archivo “/etc/asterisk/agents.conf” y borrarles la password.

    2.Se crean diferentes colas para que se reproduzcan diferentes cantidad de audios y datos.
    Por ejemplo:
    La Cola 2001 reproduce solo un audio.
    La Cola 2002 reproduce un audio y un dato.
    La Cola 2003 reproduce un audio, dos datos, y otro audio.
    Dentro de cada cola se agregan los agentes virtuales por su nombre, no por su numero.

    3.El script bash “agentes-virtuales.agi”, genera archivos .call para loguear los agentes del A3000 al A3009 utilizando el contexto “agentlogin” y “dummy”. Luego de generarlos, los mueve al directorio outgoing de asterisk para que se produzca la llamada.
    El script acepta los parámetros “log_in” y “log_out”.
    La cantidad de agentes virtuales que se logueen, va a ser proporcional a la cantidad de llamadas concurrentes que Asterisk intentara realizar.

    4.Se agregaron los contextos “Tipo1”, “Tipo2”, “Tipo3” y “Tipo4” correspondientes a los diferentes tipos de campañas que se pretenden hacer. Cada uno de los tipos, reproduce diferentes cantidades de datos del archivo CSV, y también diferentes audios.
    Esos audios, son colocados por los supervisores en un directorio especifico, compartido para tal fin.

    Se utilizaron los contextos “agentlogin”(para loguear los agentes) y “dummy”(para mantenerlos logueados en espera, de un modo similar al que hacia AgentCallbackLogin).

    Se agrego el contexto “AgentesVirtuales” para que, a través de una password, los supervisores puedan loguear y desloguear a los agentes virtuales.

    5.El script python “outgoing-tipox.agi” se creo para poder leer cada registro del CSV y reproducir, a través de la salida estándar, los datos del numero de teléfono correspondiente.

    Por ejemplo, para una campaña de Tipo3 (cola 2003), con un archivo CSV como el siguiente:

    123456,ABC,987

    El script haría que Asterisk nos diga un audio (audio1.wav), el primer dato (“A”,”B”,”C”), el segundo dato (“9”,”8”,”7”), y finalmente otro audio (audio2.wav).
    Este script guarda un registro por los casos en los que el numero de telefono se repita en el archivo CSV con diferentes datos. De esa forma, no repetiría una llamada con los mismos datos.

    6.Se compartió el directorio “/opt/outgoing-calls” en samba, y se crearon directorios para cada tipo de campaña. En resumen, quedaron así:

    /opt/outgoing-calls/tipo1
    /opt/outgoing-calls/tipo2
    /opt/outgoing-calls/tipo3
    /opt/outgoing-calls/tipo4

    Se debe asignar permisos a estos directorios al usuario “asterisk”. Este usuario es el que se fuerza en la configuración de samba, y es el que termina ejecutando el agi “outgoing-tipox.agi”

    Es necesario, que los audios a utilizar en la campaña y el archivo CSV ( este último debe ser el mismo que se utilizara para crear la campaña desde el modulo CallCenter), sean colocados en el directorio correspondiente al tipo de campaña.

    Es importante aclarar en este punto, que cada archivo que se coloque en estos directorios, tiene que tener el mismo nombre que tiene en el archivo “extension_custom.conf”.

    7.No hay nada que aclarar sobre este punto, solo que si los archivos no se encuentran con anterioridad en los directorios correspondientes, la campaña no funcionara correctamente.

    Todos los archivos utilizados van adjuntos en este archivo: http://forum.elastix.org/old_files/archivos.zip

    Andrea Pino
    Nicolás Torres​
     
  2. fmvillares

    Joined:
    Sep 8, 2007
    Messages:
    1,785
    Likes Received:
    0
    te ganaste un karma up por la buena onda
     
  3. tlmkperu

    Joined:
    Mar 9, 2011
    Messages:
    1
    Likes Received:
    0
    Exelente aporte, pero parece que el archivo adjunto esta dañado, no lo he podido descargar.

    Saludos

    tlmkperu
     
  4. ramoncio

    Joined:
    May 12, 2010
    Messages:
    1,663
    Likes Received:
    0
    Hola nicotorres, bienvenidísimo al foro!!

    Buen primer post, si señor. +1 a tu karma, te lo has ganado pero bien.
     
  5. nicotorres

    Joined:
    Jul 4, 2010
    Messages:
    4
    Likes Received:
    0
    Muchas gracias.

    Recién descargue el zip y veo bien los cuatro archivos que contiene. Probá descargarlo de otro lugar o con otro navegador.

    Saludos!
     
  6. Luis Diego

    Joined:
    Nov 1, 2010
    Messages:
    237
    Likes Received:
    0
    Esta padre tu aporte, haber si tienes mas ideas como estas para compartir, se te agradece mucho.
     
  7. ecaniz

    Joined:
    Apr 2, 2010
    Messages:
    22
    Likes Received:
    0
    Tambien se pueden realizar Llamadas automaticas utilizando un sophone en autoanswer extension esta que asignaras a un agente virtual de la siguiente manera
    Creas tu Cola.
    Asignas los agentes virtuales ya declarados a la cola , si quieres modificas el agent.conf y eliminas los passwords de los agentes.
    en La cola cola colocas tu anuncio a la entrada.
    te vas ala pestaña de Call Center espero que para este momento ya tengas los numeros a los cuales llamaras en tu archivo .csv
    Vas a Configuracion y procedes a configurar y arrancar tu dialer
    Vas a la pestaña Outgoing y creas tu formulario
    Creas tu campaña.

    Espero les sirva para 1.6 y 2.0
     
  8. victorriba

    Joined:
    Nov 15, 2010
    Messages:
    2
    Likes Received:
    0
    Hola, he realizado todos los paso pero no me reproduce los Datos del csv, al parecer llama al script outgoing-tipox despues de reproducir audio1, pero no pasa nada mas

    aqui el log.


    -- Executing [2002@from-internal:1] Set("SIP/redvoz-0000000c", "TIMEOUT(absolute)=40") in new stack
    Channel will hangup at 2011-05-16 17:33:17.305 EDT.
    -- Executing [2002@from-internal:2] Answer("SIP/redvoz-0000000c", "") in new stack
    -- Executing [2002@from-internal:3] Wait("SIP/redvoz-0000000c", "2") in new stack
    -- Executing [2002@from-internal:4] Set("SIP/redvoz-0000000c", "CHANNEL(language)=es") in new stack
    -- Executing [2002@from-internal:5] Playback("SIP/redvoz-0000000c", "/opt/outgoing-calls/tipo2/audio1") in new stack
    -- <SIP/redvoz-0000000c> Playing '/opt/outgoing-calls/tipo2/audio1.slin' (language 'es')
    -- Executing [2002@from-internal:6] AGI("SIP/redvoz-0000000c", "outgoing-tipox.agi,"" <>,/opt/outgoing-calls/tipo2/base.csv,tipo2") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/outgoing-tipox.agi
    -- <SIP/redvoz-0000000c>AGI Script outgoing-tipox.agi completed, returning 0
    -- Executing [2002@from-internal:7] Playback("SIP/redvoz-0000000c", "es/gracias") in new stack
    -- <SIP/redvoz-0000000c> Playing 'es/gracias.gsm' (language 'es')
    -- Executing [2002@from-internal:8] Hangup("SIP/redvoz-0000000c", "") in new stack
    == Spawn extension (from-internal, 2002, 8) exited non-zero on 'SIP/redvoz-0000000c'
    -- Executing [h@from-internal:1] Macro("SIP/redvoz-0000000c", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/redvoz-0000000c", "1?noautomon") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] NoOp("SIP/redvoz-0000000c", "TOUCH_MONITOR_OUTPUT=") in new stack
    -- Executing [s@macro-hangupcall:4] GotoIf("SIP/redvoz-0000000c", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("SIP/redvoz-0000000c", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,10)
    -- Executing [s@macro-hangupcall:10] GotoIf("SIP/redvoz-0000000c", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,12)
    -- Executing [s@macro-hangupcall:12] Hangup("SIP/redvoz-0000000c", "") in new stack
    == Spawn extension (macro-hangupcall, s, 12) exited non-zero on 'SIP/redvoz-0000000c' in macro 'hangupcall'

    Muchas Gracias
     
  9. nrobles

    Joined:
    Dec 4, 2010
    Messages:
    5
    Likes Received:
    0
    Saludos,

    el Archivo.zip solo tiene dentro 1 file, como podemos descargarlo de otro lado...
     
  10. victorriba

    Joined:
    Nov 15, 2010
    Messages:
    2
    Likes Received:
    0
    Hola Brother perdoname, pero entendi lo del archivo.zip, yo descargue el que esta al comienzo del blog y coloque cada uno en su debida carpeta, al hacer la campaña solo con audio funciona, pero al hacer la campaña con una variable no me reproduce la variable

    esta la configuracion de extension_custom.conf

    [Tipo2]
    exten => 2002,1,Set(TIMEOUT(absolute)=40) ; Max Call Time is 40 Seconds
    exten => 2002,n,Answer
    exten => 2002,n,Wait(2)
    exten => 2002,n,Set(CHANNEL(language)=es)
    exten => 2002,n,Playback(/opt/outgoing-calls/tipo2/audio1);
    exten => 2002,n,AGI(outgoing-tipox.agi,${CALLERID(all)},/opt/outgoing-calls/tipo2/base.csv,tipo2)
    exten => 2002,n,Playback(es/gracias);
    exten => 2002,n,Hangup()

    en la carpeta /opt/outgoing-calls/tipo2 agrege el base.csv que contiene

    573142711904,17000 (un numero de celular, una variable)

    y cree la campaña con el mismo numero de celular, el realiza la llamada, reproduce el audio1 pero no reproduce la variable.

    en el log observo <>,/opt/outgoing-calls/tipo2/base.csv,tipo2. en <> deberia asignar una variable?

    Gracias
     
  11. neer

    Joined:
    May 18, 2011
    Messages:
    7
    Likes Received:
    0
    Hola espero alguien podra ayudarme he probado el tuto y pues tengo el detalle que no se loguean los agentes.

    marco 2220 desde cualquier extension pero me manda el mensaje de "Unaviable"

    No se que revisar :( sorry por la ignorancia y gracias por la atención :)
     
  12. nicotorres

    Joined:
    Jul 4, 2010
    Messages:
    4
    Likes Received:
    0
    Buenas, disculpen que no haya respondido antes, pero recién veo el mail.

    El Lunes te respondo desde mi laburo, ya que ahí es donde tengo toda la data.

    Saludos!
    NicoTorres.-
     
  13. neer

    Joined:
    May 18, 2011
    Messages:
    7
    Likes Received:
    0
    Gracias Nico por tu Atencion:

    Abusando un poco de tu amabilidad, hay algo que me urge, habra algun comando que se pueda usar en el contexto para detectar que el cliente ya descolgo? estoy usando una linea analogica en Mexico.

    El detalle esta en que Elastix realiza la llamada y el contexto reproduce el audio,pero lo reproduce aun cuando el cliente no ha levantado la bocina. Se podra resolver desde el contexto?

    Bueno Gracias, mil gracias por tu atenció :woohoo: n.
     
  14. jgutierrez

    Joined:
    Feb 28, 2008
    Messages:
    5,737
    Likes Received:
    0
    En particular, asterisk no sabe si es cliente ya contestó o no la llamada, por eso la toma cuando contestada desde el instante en que se toma el canal analógico para marcar, en particular esto no sucede con líneas digitales.
    Lo que puedes hacer es contratar el servicio de polaridad reversa, y luego en el chan_dahdi.conf asegurarte que el busydetect, busycount estén comentados, y agregar:
    hanguponpolarityswitch=yes
    Y luego hacer un module reload desde el CLI
     
  15. joeljag19

    Joined:
    Jan 13, 2011
    Messages:
    12
    Likes Received:
    0
    :laugh: Excelente tu post... En realidad solo estoy utilizando la parte del login automatico de los usuarios y me funciona de maravillas, gracias tenia mucho tiempo buscando algo similar sin resultado. No me canso de dar las gracias por la ayuda. :laugh:
     
  16. diego478

    Joined:
    Aug 1, 2011
    Messages:
    28
    Likes Received:
    0
    Re: Re:Llamadas automáticas - CallCenter y Asterisk 1.6

    joeljag19 escribió:
    Hola buenos dias a todos, alguien me podria orientar en que carpeta debo crear los spripts que estan en el ZIP, dado que es la unica parte que no entiendo del tutorial.

    Les comento que yo solo quiero reproducir el audio para una campaña saliente con los agentes virtuales.

    Muchas gracias!
    Espero una pronta respuesta!!! 1000 gracias!
     
  17. diego478

    Joined:
    Aug 1, 2011
    Messages:
    28
    Likes Received:
    0
    Re: Re:Llamadas automáticas - CallCenter y Asterisk 1.6

    Hola, alguien podria ayudarme con esto, no se me loguen los agentes virtuales, al parecer es porque no tiene permisos para ejecutar el script AGI de agentes-virtuales, alguin podria decirme como puedo solucionar esto??
    A continuacion muestro, muestro en color la parte del error:
    -- Executing [2220@from-internal:1] Answer("SIP/2220-00000009", "") in new stack
    -- Executing [2220@from-internal:2] Wait("SIP/2220-00000009", "2") in new stack
    -- Executing [2220@from-internal:3] Set("SIP/2220-00000009", "PASSWORD=4321") in new stack
    -- Executing [2220@from-internal:4] Read("SIP/2220-00000009", "PW,es/you-sound-cute,4") in new stack
    -- Accepting a maximum of 4 digits.
    -- <SIP/2220-00000009> Playing 'es/you-sound-cute.gsm' (language 'en')
    -- User entered '4321'
    -- Executing [2220@from-internal:5] GotoIf("SIP/2220-00000009", "1?Ok:NotOk") in new stack
    -- Goto (from-internal,2220,6)
    -- Executing [2220@from-internal:6] AGI("SIP/2220-00000009", "agentes-virtuales.agi,log_in") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/agentes-virtuales.agi
    agentes-virtuales.agi,log_in: Failed to execute '/var/lib/asterisk/agi-bin/agentes-virtuales.agi': Permission denied

    -- Executing [2220@from-internal:7] Playback("SIP/2220-00000009", "es/muchas-gracias") in new stack
    -- Executing [2220@from-internal:8] Hangup("SIP/2220-00000009", "") in new stack
    == Spawn extension (from-internal, 2220, 8) exited non-zero on 'SIP/2220-00000009'
    -- Executing [h@from-internal:1] Macro("SIP/2220-00000009", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/2220-00000009", "1?noautomon") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] NoOp("SIP/2220-00000009", "TOUCH_MONITOR_OUTPUT=") in new stack
    -- Executing [s@macro-hangupcall:4] GotoIf("SIP/2220-00000009", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("SIP/2220-00000009", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,10)
    -- Executing [s@macro-hangupcall:10] GotoIf("SIP/2220-00000009", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,12)
    -- Executing [s@macro-hangupcall:12] Hangup("SIP/2220-00000009", "") in new stack
    == Spawn extension (macro-hangupcall, s, 12) exited non-zero on 'SIP/2220-00000009' in macro 'hangupcall'
    == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/2220-00000009'
     
  18. diego478

    Joined:
    Aug 1, 2011
    Messages:
    28
    Likes Received:
    0
    Re: Re:Llamadas automáticas - CallCenter y Asterisk 1.6

    Hola, aparentemente eh logrado que el AGI funcione dandole permisos a las carpetas pero aun asi me sigue diciendo que no hay agentes para realizar la llamada, alguien tiene alguna idea ???

    Remarco en azul lo que parece ser el log_in del agente virtual.
    ----------

    Connected to Asterisk 1.6.2.13 currently running on localhost (pid = 2742)
    Verbosity is at least 3
    == Using SIP RTP TOS bits 184
    == Using SIP RTP CoS mark 5
    -- Executing [2220@from-internal:1] Answer("SIP/5001-0000001d", "") in new stack
    -- Executing [2220@from-internal:2] Wait("SIP/5001-0000001d", "2") in new stack
    -- Executing [2220@from-internal:3] Set("SIP/5001-0000001d", "PASSWORD=4321") in new stack
    -- Executing [2220@from-internal:4] Read("SIP/5001-0000001d", "PW,es/you-sound-cute,4)") in new stack
    -- Accepting a maximum of 4 digits.
    -- <SIP/5001-0000001d> Playing 'es/you-sound-cute.gsm' (language 'en')
    -- User entered '4321'
    -- Executing [2220@from-internal:5] GotoIf("SIP/5001-0000001d", "1?Ok:NotOk") in new stack
    -- Goto (from-internal,2220,6)
    -- Executing [2220@from-internal:6] AGI("SIP/5001-0000001d", "agentes-virtuales.agi,log_in") in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/agentes-virtuales.agi
    -- <SIP/5001-0000001d>AGI Script agentes-virtuales.agi completed, returning 0

    -- Executing [2220@from-internal:7] Playback("SIP/5001-0000001d", "es/you-sound-cute") in new stack
    -- <SIP/5001-0000001d> Playing 'es/you-sound-cute.gsm' (language 'en')
    -- Attempting call on Local/*88883000@from-internal/n for 10@from-internal:1 (Retry 1)
    -- Executing [*88883000@from-internal:1] Set("Local/*88883000@from-internal-d179;2", "AGENTNUMBER=3000") in new stack
    -- Executing [*88883000@from-internal:2] NoOp("Local/*88883000@from-internal-d179;2", "AgentNumber is 3000") in new stack
    -- Executing [*88883000@from-internal:3] AgentLogin("Local/*88883000@from-internal-d179;2", "3000") in new stack
    -- Executing [10@from-internal:1] Answer("Local/*88883000@from-internal-d179;1", "") in new stack
    -- Executing [10@from-internal:2] Wait("Local/*88883000@from-internal-d179;1", "80000") in new stack
    -- <Local/*88883000@from-internal-d179;2> Playing 'agent-incorrect.gsm' (language 'en')
    -- Executing [2220@from-internal:8] Hangup("SIP/5001-0000001d", "") in new stack
    == Spawn extension (from-internal, 2220, 8) exited non-zero on 'SIP/5001-0000001d'
    -- Executing [h@from-internal:1] Macro("SIP/5001-0000001d", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("SIP/5001-0000001d", "1?noautomon") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] NoOp("SIP/5001-0000001d", "TOUCH_MONITOR_OUTPUT=") in new stack
    -- Executing [s@macro-hangupcall:4] GotoIf("SIP/5001-0000001d", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("SIP/5001-0000001d", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,10)
    -- Executing [s@macro-hangupcall:10] GotoIf("SIP/5001-0000001d", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,12)
    -- Executing [s@macro-hangupcall:12] Hangup("SIP/5001-0000001d", "") in new stack
    == Spawn extension (macro-hangupcall, s, 12) exited non-zero on 'SIP/5001-0000001d' in macro 'hangupcall'
    == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/5001-0000001d'
    == Spawn extension (from-internal, *88883000, 3) exited non-zero on 'Local/*88883000@from-internal-d179;2'
    -- Executing [h@from-internal:1] Macro("Local/*88883000@from-internal-d179;2", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("Local/*88883000@from-internal-d179;2", "1?noautomon") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] NoOp("Local/*88883000@from-internal-d179;2", "TOUCH_MONITOR_OUTPUT=") in new stack
    -- Executing [s@macro-hangupcall:4] GotoIf("Local/*88883000@from-internal-d179;2", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("Local/*88883000@from-internal-d179;2", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,10)
    -- Executing [s@macro-hangupcall:10] GotoIf("Local/*88883000@from-internal-d179;2", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,12)
    -- Executing [s@macro-hangupcall:12] Hangup("Local/*88883000@from-internal-d179;2", "") in new stack
    == Spawn extension (macro-hangupcall, s, 12) exited non-zero on 'Local/*88883000@from-internal-d179;2' in macro 'hangupcall'
    == Spawn extension (from-internal, h, 1) exited non-zero on 'Local/*88883000@from-internal-d179;2'
    == Spawn extension (from-internal, 10, 2) exited non-zero on 'Local/*88883000@from-internal-d179;1'
    -- Executing [h@from-internal:1] Macro("Local/*88883000@from-internal-d179;1", "hangupcall") in new stack
    -- Executing [s@macro-hangupcall:1] GotoIf("Local/*88883000@from-internal-d179;1", "1?noautomon") in new stack
    -- Goto (macro-hangupcall,s,3)
    -- Executing [s@macro-hangupcall:3] NoOp("Local/*88883000@from-internal-d179;1", "TOUCH_MONITOR_OUTPUT=") in new stack
    -- Executing [s@macro-hangupcall:4] GotoIf("Local/*88883000@from-internal-d179;1", "1?skiprg") in new stack
    -- Goto (macro-hangupcall,s,7)
    -- Executing [s@macro-hangupcall:7] GotoIf("Local/*88883000@from-internal-d179;1", "1?skipblkvm") in new stack
    -- Goto (macro-hangupcall,s,10)
    -- Executing [s@macro-hangupcall:10] GotoIf("Local/*88883000@from-internal-d179;1", "1?theend") in new stack
    -- Goto (macro-hangupcall,s,12)
    -- Executing [s@macro-hangupcall:12] Hangup("Local/*88883000@from-internal-d179;1", "") in new stack
    == Spawn extension (macro-hangupcall, s, 12) exited non-zero on 'Local/*88883000@from-internal-d179;1' in macro 'hangupcall
     
  19. jgutierrez

    Joined:
    Feb 28, 2008
    Messages:
    5,737
    Likes Received:
    0
    Tu observación es correcta.
    Mira tu mensaje de log:
    <Local/*88883000@from-internal-d179;2> Playing 'agent-incorrect.gsm' (language 'en')
    Eso quiere decir que intentas de hacer registrar un agente 3000, el cual no existe, lo debes crear en el menú de agentes dentro del módulo de callcenter
     
  20. diego478

    Joined:
    Aug 1, 2011
    Messages:
    28
    Likes Received:
    0
    Hola gracias por responder.
    Te cuento que lo tengo creado, lo raro es que dice by repair, pero eso sucedio desde que lo converti en agente virtual entrando en /etc/asterisk/agents.con y le borre el pass.
    Te adjunto una imagen de mi consola de Call Center.
    Tengo dudas de donde se deben guardar los scripts .agi, yo los guarde en /var/lib/asterisk/agi-bin, espero que sea asi, es asi ???


    Te agradezco mucho que me ayudes si puedes pues es muy importante para mi que se realicen las llamadas.

    MUCHAS GRACIAS
     

Share This Page