Forzar el cierre de sesión de los extremos del agente

El extremo de agentes de cierre de sesión forzado te permite cerrar la sesión de los agentes en línea de forma forzada. Los agentes que participan en llamadas o chats activos se desconectan automáticamente cuando completan sus interacciones actuales. Los agentes inactivos se desconectan de inmediato. Este extremo admite el cierre de sesión forzado de agentes específicos, equipos completos o agentes identificados por direcciones IP con notación CIDR, una lista de direcciones IPv4/IPv6 o rangos de IP. Para una gran cantidad de agentes, se crea un trabajo en segundo plano para administrar el proceso de cierre de sesión de manera eficiente.

Los siguientes son los endpoints de la API de cierre de sesión forzado del agente:

Forzar el cierre de sesión de los agentes

Este endpoint permite cerrar la sesión de agentes específicos. Los agentes se pueden identificar de las siguientes maneras:

  • ID del agente

  • ID del equipo

  • una dirección IP externa.

Endpoint:

Method: POST
Type: RAW
URL: https://{subdomain}.{domain}/apps/api/v1/agent_statuses/force_logout

Encabezados:

Clave Valor Descripción
Content-Type application/json
Aceptar application/json

Cuerpo:

{
    "agent_ids": [
        11,
        12
    ],
    "team_ids": [
        1
    ],
    "ip_addrs": [
        "34.211.11.0/24"
    ]
}

Ejemplo de solicitud y respuestas

En las siguientes secciones, se proporcionan ejemplos de solicitudes al extremo.

Cerrar la sesión de los agentes correctamente

En este ejemplo, se muestra cómo cerrar la sesión de agentes específicos según el ID del agente y el ID del equipo. En este caso, eran los IDs de agente 11 y 12, así como el ID de equipo 1.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "agent_ids": [
        11,
        12
    ],
    "team_ids": [
        1
    ]
}
Respuesta
[
    {
        "agent_id": 11,
        "name": "Darth Vader",
        "email": "notanakinskywalker@empire.com",
        "agent_number": "Agent No.111",
        "previous_status": "lunch",
        "current_status": "Offline"
    },
    {
        "agent_id": 12,
        "name": "Craig T",
        "email": "craigT@nelson.com",
        "agent_number": "Agent No.112",
        "previous_status": "Unavailable",
        "current_status": "Offline"
    },
    {
        "agent_id": 13,
        "name": "Raymond D",
        "email": "rayd@nelson.com",
        "agent_number": "Agent No.113",
        "previous_status": "Break",
        "current_status": "Offline"
    }
]

Código de estado: 200

Se cerró la sesión de los agentes correctamente con la dirección IP

En este ejemplo, se muestra cómo cerrar la sesión de los agentes especificando un rango de direcciones IP. En este caso, el rango de direcciones IP proporcionado es 34.211.11.0/24.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "agent_ids": [
        11,
        12
    ],
    "team_ids": [
        1
    ],
    "ip_addrs": [
        "34.211.11.0/24"
    ]
}

Código de estado: 200

Se creó el trabajo del agente de cierre de sesión

En este ejemplo, se muestra cómo solicitar los cierres de sesión del agente y el trabajo resultante que se crea.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "agent_ids": [
        11,
        12
    ],
    "team_ids": [
        1
    ],
    "ip_addrs": [
        "34.211.11.0/24"
    ]
}
Respuesta
{
    "ip_addrs": [
        "34.211.11.0/16"
    ]
}

Código de estado: 200

Los agentes que estén en una llamada o un chat se desconectarán más tarde

En este ejemplo, se muestra cómo los agentes que están en una llamada o en un chat cerrarán sesión más tarde, después de que finalice el chat o la llamada.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "agent_ids": [
        11,
        12
    ],
    "team_ids": []
}
Respuesta
[
    {
        "agent_id": 11,
        "name": "Darth Vader",
        "email": "notanakinskywalker@empire.com",
        "agent_number": "Agent No.111",
        "previous_status": "In-call",
        "current_status": "In-call",
        "message": "will force logout as soon as the ongoing call/chat is completed"
    },
    {
        "agent_id": 12,
        "name": "Craig T",
        "email": "craigT@nelson.com",
        "agent_number": "Agent No.112",
        "previous_status": "In-chat",
        "current_status": "In-chat",
        "message": "will force logout as soon as the ongoing call/chat is completed"
    }
]

Código de estado: 400

Error: No se pueden encontrar agentes

En este ejemplo, se muestra la situación de falla en la que no se pudieron encontrar los agentes proporcionados.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Cuerpo:

{
    "ip_addrs": [
        "34.211.11.0/24"
    ]
}
Respuesta: Error : No se puede encontrar ningún agente con los parámetros de entrada
{
    "message": "cannot find any agent by input params"
}

Código de estado: 400

Forzar trabajos de cierre de sesión del agente

Este extremo te permite obtener el estado de la solicitud de cierre de sesión forzado de un agente.

{
    "identifier": "string",
    "email": "string",
    "name": "string",
    "phone": "string"
}

Endpoint:

Method: GET
Type: 
URL: https://{subdomain}.{domain}/apps/api/v1/agent_statuses/force_logout/jobs/:id

Encabezados:

Clave Valor Descripción
id Es el ID de trabajo de una solicitud de cierre de sesión forzado enviada.

Ejemplo de solicitud y respuestas

En las siguientes secciones, se proporcionan ejemplos de solicitudes al extremo.

Se completó correctamente

En este ejemplo, se muestra cómo recuperar un trabajo que se completó correctamente.

Solicitud

Encabezados:

Clave Valor Descripción
Content-Type application/json

Consulta:

Method: GET
Type: 
URL: https://{subdomain}.{domain}/apps/api/v1/agent_statuses/force_logout/jobs/105
Respuesta
{
    "id": 105,
    "status": "completed"
}

Código de estado: 200