Recipient Events

Recipient events can be used to track the state and actions that affect a recipient in Qubicle. The following are the currently emitted events.

Login

The login event is emitted when a recipient logs into Qubicle via any means.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"create",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "create",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "pid": "{PROCESS_PID}",
        "recipient_id": "{USER_ID}",
        "state": "away",
        "username": "{USERNAME}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Logout

The logout event is emitted when a recipient logs out of Qubicle via any means.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"delete",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "delete",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "reason": "{REASON}",
        "recipient_id": "{USER_ID}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Ready

The ready event indicates that a recipient is now is the ‘ready’ state, and thus can receive sessions from a queue.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"ready",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "away_time": {TIME_RECIPIENT_WAS_AWAY_IN_SECONDS}
        "event_category": "qubicle-recipient",
        "event_name": "ready",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "recipient_id": "{USER_ID}",
        "state": "ready",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Away

The away event indicates that a recipient is in the ‘away’ state and thus will not be considered for session delivery from a queue.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"away",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "away",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "state": "away",
        "recipient_id": "{USER_ID}",
        "reason": "{REASON}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Pause

The pause event indicates that a recipient has paused call delivery from a given queue.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"pause",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "pause",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "recipient_id": "{USER_ID}",
        "queue_id": "{QUEUE_ID}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Resume

The resume event indicates that a recipient has resumed call delivery from a given queue.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"resume",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "resume",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "recipient_id": "{USER_ID}",
        "queue_id": "{QUEUE_ID}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Wrapup Start

The wrapup start event indicates the start of wrap-up time. Which is a configurable (per-queue) amount of time after handling a session that the recipient will not be offered additional sessions.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"wrapup_start",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "wrapup-start",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "state": {STATE},
        "recipient_id": "{USER_ID}",
        "queue_id": "{QUEUE_ID}",
        "wrapup_time_seconds": {TIME_IN_SECONDS_OF_WRAPUP},
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Wrapup Complete

The wrapup complete event indicates the end of wrap-up time.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"wrapup_complete",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "available": {BOOLEAN IF AVAILABLE},
        "availability_state": "{STRING_AVAIL_STATE}",
        "event_category": "qubicle-recipient",
        "event_name": "wrapup-complete",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "state": {STATE},
        "recipient_id": "{USER_ID}",
        "queue_id": "{QUEUE_ID}",
        "total_time": {TOTAL_WRAPUP_TIME},
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Offer

The offer event indicates that a session is being offered to the recipient from a queue.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"offer",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "caller_id_name": "{CALLER_ID_NAME}",
        "caller_id_num": "{CALLER_ID_NUM}",
        "enter_pos": {QUEUE_ENTER_POSITION},
        "queue_enter_time": {QUEUE_ENTER_TIME},
        "est_wait": {QUEUE_ESTIMATED_WAIT},
        "force_away_on_reject": {FORCE_AWAY_FLAG},
        "event_category": "qubicle-recipient",
        "event_name": "offer",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "queue_id": "{QUEUE_ID}",
        "queue_wrapup": {QUEUE_WRAPUP_TIME},
        "recipient_id": "{USER_ID}",
        "ring_timeout": {RING_TIMEOUT},
        "session_id": "{SESSION_ID}",
        "session_zone": "{SESSION_ZONE}",
        "caller_id_name": {CALLER_ID_NAME},
        "caller_id_number": {CALLER_ID_NUMBER},
        "queue_enter_time": {QUEUE_ENTER_TIME},
        "state": "{STATE}",
        "offer_data": {PRIV_OFFER_DATA},
        "session": {SESSION_CALL_OBJECT},
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Reject

The reject event indicates that a recipient has rejected a call.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"reject",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"reject",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "app_version": "{VERSION}",
        "app_name":"qubicle",
        "queue_id": "{QUEUE_ID}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Rescind

The rescind event indicates that an offer has been rescinded from the recipient. This could happen for example if a session hung-up while it was being offered.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"rescind",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "state":"{STATE}",
        "session_id":"{SESSION_ID}",
        "recipient_id":"{RECIPIENT_ID}",
        "queue_id": "{QUEUE_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"rescind",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Delivered

The delivered event indicates that a session was successfully delivered to a recipient and is now being handled.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"delivered",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "account_id": "{ACCOUNT_ID}",
        "app_name": "qubicle",
        "app_version": "{VERSION}",
        "event_category": "qubicle-recipient",
        "event_name": "delivered",
        "event_timestamp": {SERVER_TIMESTAMP},
        "msg_id": "{MSG_ID}",
        "recipient_id": "{RECIPIENT_ID}",
        "queue_id": "{QUEUE_ID}",
        "queue_name": "{QUEUE_NAME}",
        "session_id": "{SESSION_ID}",
        "caller_id_name": {CALLER_ID_NAME},
        "caller_id_number": {CALLER_ID_NUMBER},
        "queue_enter_time": {QUEUE_ENTER_TIME},
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Hangup

The hangup event indicates that a session has been hung-up after being handled by the recipient.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"hangup",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "queue_id":"{QUEUE_ID}",
        "session_id":"{SESSION_ID}",
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"hangup",
        "event_category":"qubicle-recipient",
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "talk_time": {TALK_TIME},
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

External Call Start

The external call start message indicates that a recipient has gone on a non-queue call.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"external_call_start",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"external_call_start",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "external_call_id": "{CALL_ID}",
        "state": "{STATE}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

External Call End

The external call end event indicates that a recipient is no longer on a non-queue call.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"external_call_end",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"external_call_end",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "state": "{STATE}",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Sync

The sync event is used to periodically propagate the state of a recipient so that clients can ensure that they have the most up-to-date state information. This event is used for internal purposes, and as such may change at any time.

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"sync",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"sync",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "availability_state": "{AVAILABILITY_STATE}",
        "available": {AVAILABLE_FLAG},
        "node": "{ORIGINATING_NODE}",
        "wrapup_time_seconds": {SECONDS_OF_WRAPUP},
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Wiretap Start

The wiretap start event indicates that the recipient is wiretapping / monitoring another recipient, or is being monitored

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"wiretap_start",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "monitoring-recipient-id": "{MONITORING_RECIPIENT_ID}",
        "target": "{TARGET_RECIPIENT_ID}",
        "mode:" "{WIRETAP_MODE}",
        "wiretap-call-id": "{WIRETAP_CALL_ID}",
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"wiretap_start",
        "event_category":"qubicle-recipient",
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Wiretap Stop

The wiretap stop event indicates that the recipient is no longer monitoring or being monitored

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"wiretap_stop",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "wiretap-call-id": "{WIRETAP_CALL_ID}",
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"wiretap_stop",
        "event_timestamp": {SERVER_TIMESTAMP},
        "event_category":"qubicle-recipient",
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

Wiretap Failed

The wiretap failed event indicates that an attempted monitor action has failed for some reason

{
    "action":"event",
    "subscribed_key":"qubicle.recipient",
    "subscription_key":"qubicle.recipient.{ACCOUNT_ID}.*",
    "name":"wiretap_failed",
    "routing_key":"qubicle.recipient.{ACCOUNT_ID}.{RECIPIENT_ID}",
    "data":{
        "recipient_id":"{RECIPIENT_ID}",
        "account_id":"{ACCOUNT_ID}",
        "msg_id":"{MSG_ID}",
        "event_name":"wiretap_failed",
        "event_category":"qubicle-recipient",
        "event_timestamp": {SERVER_TIMESTAMP},
        "app_version":"{VERSION}",
        "app_name":"qubicle",
        "stats": {
            "total_calls": {TOTAL_CALLS},
            "offered_calls": {OFFERED_CALLS},
            "missed_calls": {MISSED_CALLS},
            "avg_call_time": {AVG_CALL_TIME},
            "login_time": {LOGIN_TIME},
            "last_action_time": {LAST_ACTION_TIME},
            "last_handled_time": {LAST_HANDLED_TIME}
        }
    }
}

On this page