Voip en Español

[[asterisk_funcion_agentcallbacklogin]]

Traza: » asterisk_configuracion_skinny.conf » asterisk_configuracion_voicemail.conf » asterisk_configuracion_vpb.conf » asterisk_configuracion_zaptel.conf » asterisk_estacionamiento_de_llamadas » asterisk_facturacion » asterisk_funcion_absolutetimeout » asterisk_funcion_addqueuemember » asterisk_funcion_adsiprog » asterisk_funcion_agentcallbacklogin

Login

¡Actualmente no estás identificado! Introduce abajo tus datos de identificación para abrir una sesión. Necesitas tener las cookies activadas para identificarte.

Ingresar

Has olvidado tu contraseña? Obten una nueva.: Enviar nueva contraseña

Funcion agentcallbacklogin de Asterisk

ARREGLAR

Sinopsis: Conexión del servicio repetido del agente de la llamada

Descripción: AgentCallbackLogin ([AgentNo|] [exten] @context) AgentCallbackLogin ([AgentNo|] [Options|] [exten] @context)

Pide el agente a la conexión al sistema con servicio repetido. La extensión del servicio repetido del agente se llama con el contexto especificado. El contexto se debe especificar, al menos el sistema incitará para el número, la contraseña, y la extensión del agente si no se han proveído.

Nuevo en el asterisco v1.2.0: El uso de AgentCallBackLogin ahora requiere un segundo “|” antes de especificar un extension@context. Éste es distinguir la secuencia de las opciones de la extensión, de modo que no estén en conflicto. Ver el “uso AgentCallbackLogin de la demostración” para más detalles.

Nuevo para el lanzamiento próximo del asterisco v1.4.0: (Julio de 2006) debido a las varias ediciones con AgentCallbackLogin esta característica es probable ser desaprobada por Digium (según Kevin P. Fleming). La funcionalidad similar se puede alcanzar a través de miembros dinámicos que usan functionatliy dialplan existentes.

Más Info Desemejante con de AgentLogin el agente no es permanentemente off-hook (en línea). En lugar el agente será llamado en la extensión señalada cuando te han asignado un nuevo llamador de la coleta. El agente va off-hook y si el ackcall se fija al sí, debe confirmar con # que ella es lista tomar la llamada (puede ser que sea elegante incluir esta instrucción en el aviso opcional de la coleta). Prensa * al retraso en el llamador.

Observar por favor que el contexto refiere a la sección del extensions.conf que contiene las extensiones para tus agentes. ¡Si no especificas correctamente esto, el entrar no funcionará! También cerciorarte de configurar agentes del asterisco correctamente.

Muestrear la entrada de extensions.conf que pasa tu número de la extensión a la rutina de la conexión: “exten el ⇒ 700.1, AgentCallbackLogin (|$ {CALLERIDNUM} @local)”

Muestrear el aviso de CLI: “Local/ext@default-89d6,1 contestado, para “# que espera” para reconocer”

(Nota: Sin una fuente válida de la sincronización del zaptel, el reconocimiento de “#” no sucederá.)

Saliendo la coleta manualmente

 1. llamar la extensión para AgentCallbackLogin --> AgentCallbackLogin (|l)
 2. incorporar tu user-id seguido por #
 3. incorporar tu contraseña seguida por #
 4. cuando está pedido la prensa justa # del número de la extensión 

Oirás un aviso de la voz que confirme que se ha salido el agente.

Y aquí está un corte minúsculo para la gente perezosa: Esto quita la necesidad del usuario de presionar la llave de # en su teléfono

exten el ⇒ 905.1, dial (Local/999/n, D (#)) exten el ⇒ 999.1, AgentCallbackLogin ($ {CALLERIDNUM} | ' # ‘) exten el ⇒ 999.2, retraso

Observar que esto envía “#” como la contraseña, así que no trabajará si el agente tiene realmente una contraseña. También, en el asterisco 1.0.3, AgentCallbackLogin (, “#”) no pasa la extensión “#” al tratante - te todavía incitan para una nueva extensión.

Otro possiblity minúsculo al término de sesión

exten el => _882., 1, la respuesta () 
exten el => _882., n, sistema (asterisco - término de sesión Agent/$ {EXTEN del agente del rx “: 3}”)

Otra manera de hacerla Esto asume que tus contraseñas son iguales que la identificación del llamador - no muy segura o flexible, sino bastante buena para el uso básico.

Conexión:

exten el => *02,1, AgentCallbackLogin (los @phones de ||$ {CALLERIDNUM})
exten el => *06,1, dial (Local/*04@fwtq/n, D (el ## de $ {CALLERIDNUM} #$ {CALLERIDNUM}))

Término de sesión:

exten el => *04,1, AgentCallbackLogin () 
exten el => *07,1, dial (Local/*02@fwtq/n, D ($ {CALLERIDNUM} #$ {CALLERIDNUM} #))

Conexión automática/término de sesión vía extensions.conf (es posible)

En la versión anterior de esta página describí el ejemplo para la más vieja versión 1.0.7 del asterisco. La he substituido por la descripción para que cómo la utilice con el asterisco 1.2.x haciendo uso variables del canal con herencia a través de los canales. (prepended con _ la raya) esto es necesario llevarlos encendido al canal local que se utiliza en este ejemplo. Cuando deseas ver la descripción anterior para pre 1.2.x por favor conseguir una más vieja versión de esta página del wiki.

En este ejemplo necesitas tener el agentcode y el pincode disponibles. Hice esto escribiendo una escritura de AGI que pide agentcode y pincode, esta escritura retroactúo los valores como variables del canal. (véase AGI: FIJAR el comando VARIABLE)

Sin la impresión del código entero de la escritura de AGI, demuestro cómo se utiliza: En mi dialplan hay la línea siguiente:

exten el ⇒ s, 1, AGI (My_own_authentication_script.agi)

En mi caso es un shell script del Unix y parece esto:

¡#! /bin/sh las piezas de la escritura saltadas, del #Major contiene demasiadas líneas y la lógica y él no es necesarios explicar este tema AGENTCODE= ejemplo de " 100 " #as fijó el AGENTCODE a 100 1313 " ejemplos de los #as de PINCODE= " fijaron el PINCODE a 1313 contenido variable de la cáscara del #push del _AGENTCODE $AGENTCODE VARIABLE del eco “FIJAR” en variable del canal con el mismo nombre checkresults contenido variable de la cáscara del #push del _PINCODE $PINCODE VARIABLE del eco “FIJAR” en variable del canal con el mismo nombre checkresults salir del #return de la escritura del agi, todas las variables entregadas a dialplan

Después de la ejecución de la escritura del agi, las variables se saben en el resto del dialplan. Ahora la materia siguiente en la voluntad dialplan hace el trabajo:

[macro-autologin] exten el ⇒ s, 1, sendDTMF ($ {PINCODE} #)

[macro-autologout] exten el ⇒ s, 1, sendDTMF (el ## de $ {PINCODE})

[localchanneldefs] exten la conexión del ⇒, 1, AgentCallbackLogin (los @agent_phones de $ {AGENTCODE} ||$ {AGENTCODE}) exten el registro de estado de la máquina del ⇒, 1, AgentCallbackLogin (el || de $ {AGENTCODE})

En la localización en tu dialplan donde deseas a la conexión auto el agente puso el siguiente:

exten el ⇒ 1.1, dial (Local/login@localchanneldefs/n, gM (el autologin))

En la localización en tu dialplan donde deseas al término de sesión auto el agente puso el siguiente:

exten el ⇒ 2.1, dial (Local/logout@localchanneldefs/n, gM (el autologout))

Conexión/registro de estado de la máquina usando al encargado API

Tenía una necesidad de poder a la conexión/a los agentes del registro de estado de la máquina de la consola de la gerencia que me convertí para manejar coletas del ACD.

Mi solución era setup una cierta extensión y utilizar al encargado originar el comando de marcar esas extensiones permitiéndome a los agentes de la conexión/del registro de estado de la máquina.

A extensions.conf agregar

exten el ⇒ 02000000001.1, AgentCallBackLogin (el @to-your-agent-context de $ {CALLERIDNUM} |s|$ {CALLERIDNUM}) exten el ⇒ 02000000002.1, dial (Local/02000000003/n, D (#)) exten el ⇒ 02000000003.1, AgentCallbackLogin (|s|’#’) de $ {CALLERIDNUM}

; para el canal local

exten el ⇒ 1234.1, respuesta exten el ⇒ 1234.2, retraso

utilizar a encargado que el API origina comando a la conexión/al registro de estado de la máquina considera el examplse abajo

 Acción: Originar
 Canal: Local/02000000001/n
 Contexto: default
 Exten: 1234
 Prioridad: 1
 Callerid: identificación de llamador del <enter del here> del agente
 Descanso: 30000 '

al registro de estado de la máquina hacer exactamente igual pero cambiar el canal a Local/02000000002/n según el dial-plan.

Esperar el otro hallazgo esto útil.

Umar Saliendo la coleta automáticamente

Alternativomente, puedes configurar el autologoff que fija en los config agents.conf del asterisco. Esto permitirá que tus agentes sean quitados automáticamente de la coleta después de algunos segundos si no contestan a llamadas de la coleta. Esto es muy útil para los agentes que se olvidan de registrar hacia fuera.

Descubrir la identificación del agente cuando están haciendo llamadas.

Apenas no deseo a cualquiera cosecha encima del teléfono y haciendo llama .......

Más bien que tengo que escribir un pedazo entero del código para hacer que un agente se abre una sesión cuando desean hacer llamadas de salida, pensé sería útil si podría utilizar el esquema existente de la autentificación del agente para validar el agente cuando están intentando hacer llamadas de salida. No hay referencia a ningún método de hacer esto - el código antedicho asume que la identificación de llamador es igual que la identificación del agente que (si se asume que los agentes ser hotdesking y de trabajo en cambios) no lo más ciertamente posible.

Después mucho de cavar, encontré que después de una conexión acertada, AgentCallBackLogin crea una variable global, “AGENTBYCALLERID_$ {CALLERID}” (e.g. si has colocado de un teléfono del SIP con la identificación de llamador “SIPPhone 205 <205>”, después la variable es $ {AGENTBYCALLERID_SIPPhone 205 <205>}) que contiene la identificación del agente. Cuando AgentCallbackLogin se utiliza para registrar el agente hacia fuera, se suprime la variable global.

Esto puede entonces ser utilizada cuando una llamada se recibe de un microteléfono para cerciorarse de que pertenece a un agente que ha entrado con éxito.

Desafortunadamente, esto no es tan fácil como suena. El asterisco analiza solamente el dialplan una vez para las variables, así que no puedes tener variable-dentro-variables, como $ {AGENTBYCALLERID_$ {CALLERID}}. Tienes que utilizar el comando de Eval de trabajar esto hacia fuera. Sin embargo, es difícil construir la secuencia para ser el eval’d (“$ {AGENTBYCALLERID_$ {CALLERID}}”), porque guarda el conseguir analizado. Éste es mi corte horriblemente feo:

[globals] DOLLAR=$ OQUOTE= { CQUOTE=} [phonecontext] ; conexión marcando cero, y entonces tu número del agente exten el ⇒ _0., 1, Goto (los servicios, 100$ {EXTEN: 1}, 1)

; registro de estado de la máquina directamente marcando 101 exten el ⇒ 101.1, Goto (servicios, 101.1)

; todo lo demás, cheque si $ {AGENTBYCALLERID_$ {CALLERIDNUM}} está fijado, y si es así remiten al contexto del defecto exten el _X del ⇒., 1, sistema (ABCID=$ {EVAL ($ {DÓLAR} $ {OQUOTE} AGENTBYCALLERID_$ {CALLERIDNUM} $ {CQUOTE})}) exten el _X del ⇒., n, GotoIf ($ {ISNULL ($ {ABCID})}¿? 3: omite, $ {EXTEN}, 1) exten el _X del ⇒., n, NoOp (la llamada desautorizada) exten el _X del ⇒., n, el aparato de lectura (agente-incorrecto) exten el _X del ⇒., n, aparato de lectura (vm-unknown-caller.gsm) exten el _X del ⇒., n, retraso

[servicios] exten el ⇒ _100., 1, AgentCallbackLogin ($ {EXTEN: 3} @users de ||$ {CALLERIDNUM})

; Registro de estado de la máquina del agente exten el ⇒ 101.1, fijar (ABCID=$ {EVAL ($ {DÓLAR} $ {OQUOTE} AGENTBYCALLERID_$ {CALLERIDNUM} $ {CQUOTE})}) exten el ⇒ 101, n, sistema (asterisco - rx “término de sesión Agent/$ {ABCID} del agente”) exten el ⇒ 101, n, aparato de lectura (el agente-loggedoff) exten el ⇒ 101, n, el aparato de lectura (VM-adiós) exten el ⇒ 101, n, retraso

Los teléfonos deben comenzar en “phonecontext”. Esta manera, las únicas llamadas que pueden hacer es conexión/registro de estado de la máquina. El resto de las llamadas consiguen emparejadas por el _X., que comprueba si él está entrado, y transmiten a esas llamadas la extensión del defecto, si tan. Para crear la secuencia “$ {AGENTBYCALLERID_$ {CALLERIDNUM}}”, tienes que tener $ {DÓLAR}, $ {OQUOTE} y $ {CQUOTE}, que consiguen analizados y dados vuelta en los pedacitos de esa secuencia, que pueden entonces ser eval’d. Si se fija, remitir el invitar, si no decir apesadumbrado, y colgar para arriba.

Al menos…. Hay algunas advertencias que podrían morderte:

  • Si se entra un agente y otro agente entra sin primer que registra hacia fuera, entonces la variable se pone al día con los detalles del segundo agente.
  • Si se entran dos agentes (como arriba), entonces cualquier agente que registra hacia fuera suprimirá la variable
  • Si dos o más dispositivos con las identificaciones del duplicado se utilizan para registrar agentes adentro, se utiliza el mismo nombre variable que lo hace inútil.

Ningunos de éstos son un problema verdadero si el código de AgentCallbackLogin se pone dentro de una envoltura que asegure un segundo agente no pueda abrirse una sesión si su entrado ya.

¡Hay más que una forma para hacerla! Crear una macro:

[macro-verifyncall] exten el ⇒ s, 1, GotoIf ($ [“$ {ISNULL ($ {ARG1})}¿” = “1”]? 2: 4) exten el ⇒ s, 2, aparato de lectura (no-auth-PSTN) exten el ⇒ s, 3, congestión exten el ⇒ s, 4, dial ($ {ARG2}/$ {ARG3})

Utilizar el marco cuando deseas verificar que la llamada sea hecha por un agente registrado.

exten el ⇒, 3, macro (verifyncall, $ {AGENTBYCALLERID_$ {CALLERID (numéricos)}}, $ {TRONCO}, $ {EXTEN})

QueueLog app (el julio de 2006) Apenas desear recordarte sobre QueueLog app que fijé en el insecto/el remiendo 7368 - con ésa puedes empujar entradas de AGENTLOGIN y del TÉRMINO DE SESIÓN a través al queue_log. Cuál resolvió una diferencia entre el agentcallbacklogon y los miembros dinámicos.

Características que vienen… Ver http://bugs.digium.com/bug_view_page.php?bug_id=0001693 para las características que vienen a AgentLogin y a AgentCallbackLogin…

Variables del agente Ver http://bugs.digium.com/view.php?id=5531 para un remiendo que te deje tener acceso a variables del agente en tu dialplan el sintaxis es AGENTE (agentid: artículo)

las opciones para el artículo son: estado (defecto) - el estado del agente contraseña - la contraseña del agente nombre - el nombre del agente mohclass - clase de MusicOnHold exten - la extensión del servicio repetido para el agente (AgentCallbackLogin) canal - el nombre del canal activo para el agente (AgentLogin)

Ejemplo - recuperación de la contraseña para el agente número 1234 AGENTE (1234: contraseña)

Ejemplo - registro de estado de la máquina passwordless marcando la extensión 8601 (esto consigue las variables y después pasa éstos exten 8602 para el registro de estado de la máquina real) exten el ⇒ 8601.1, dial (Local/8602/n, D ($ {AGENTBYCALLERID_$ {CALLERIDNUM}} #$ {AGENTE ($ {AGENTBYCALLERID_$ {CALLERIDNUM}}: contraseña)}##)) exten el ⇒ 8602.1, AgentCallbackLogin ()

Ver también

  • Marcar con asterisco a encargado API AgentCallBackLogin
  • Marcar con asterisco el cmd AgentLogin
  • Marcar con asterisco el cmd AgentMonitorOutgoing
  • Marcar con asterisco los agentes
  • Marcar con asterisco las coletas de la llamada
  • Marcar con asterisco la coleta del cmd
  • Marcar con asterisco los config agents.conf
  • marcar con asterisco los config queues.conf
  • OrderlyQ - extensión para marcar con asterisco las coletas que deja a llamadores colgar para arriba, entonces llamada detrás sin perder su lugar.