User Story

As a caller waiting in a call queue, I want the option to request a callback — either to my current number or to a different one that I provide (e.g. I'm calling from my office line, while I want to be contacted later at my mobile number) — so I don’t have to stay on hold, but will still be called back when my turn in the queue arrives.

Example of use

A customer calls Sales queue at 10:00 AM, waits, opts for callback using their own number. At 10:10 AM, when an agent is free, PortaSwitch calls them and connects them with an agent—without losing their queue spot.

Business model

Call Center / Cloud PBX

Technology

IVR, Call queue

Current Solution

PortaSwitch supports queue announcements and exits but has no callback capabilities for call queues.

Stakeholders and their benefits

Benefit /
Stakeholders
More
Comfort
Increased
Efficiency
Saves
Time
Fewer Lost Calls
Customers
(tick) 
(tick) 
End user(tick) 
(tick) 

Use Cases

Use case #1: In‑Queue Callback Request

Roles: Caller, PortaSwitch, Agent

Preconditions: 

  • “AcmeCorp” has a main phone number routing calls to Sales queue

  • Agents 100-105 serve Sales queue
  • Sales queue is configured to:
    • make maximum 3 callbacks to the same number if it does not answer
    • make callbacks with an interval of 120 sec
    • process callbacks that are requested no more than 24 hours ago

Use scenario #1.1: Default ANI callback initiated by a caller

  • Sales queue is configured to announce the option to exit a call queue by requesting a callback after 60 seconds of waiting in the queue, e.g. "Press 1 to receive a prompt callback from our sales representative"
  • 09:00:00 – Caller (380501234567) calls the main phone number of AcmeCorp and enters queue position #10
  • After 60 sec, Caller hears "Press 1 to receive a prompt callback from our sales representative"
  • Caller presses 1 and hears “We’ll call you at 3-8-0-5-0-1-2-3-4-5-6-7. Press 1 to confirm or 2 to enter a different number”
  • Caller presses 1 and hears “Thank you. We will call you when an agent is available”
  • The call ends

Use scenario #1.2: Forced ANI callback without waiting for a caller's input (alternative to #1.1)

  • Sales queue is configured to initiate a callback to a caller's number without waiting for a caller's input
  • 09:00:00 – Caller (380501234567) calls the main phone number of AcmeCorp and reaches Sales queue
  • No agent is available to answer this call
  • Caller hears "We’ll call you at 3-8-0-5-0-1-2-3-4-5-6-7 when an agent is available"
  • The call ends

Use scenario #1.3: Alternate number entry (alternative to #1.1)

  • 09:00:00 – Caller (380501234567) calls the main phone number of AcmeCorp from his office phone and enters queue position #10
  • After 60 sec, Caller hears "Press 1 to receive a prompt callback from our sales representative"
  • Caller presses 1 and hears “We’ll call you at 3-8-0-5-0-1-2-3-4-5-6-7. Press 1 to confirm or 2 to enter a different number”
  • Since Caller wants to be contacted later at his mobile phone, Caller presses 2 and hears "Please enter a phone number and press pound"

  • Caller enters their mobile phone 380501200000# and hears “You entered 3-8-0-5-0-1-2-0-0-0-0-0. Press 1 to confirm or 2 to re-enter”

  • Caller presses 1 and hears “Thank you. We will call you when an agent is available”
  • The call ends

Use scenario #1.4: Alternate number is voiced (alternative to #1.3, nice-to-have)

  • 09:00:00 – Caller (380501234567) calls the main phone number of AcmeCorp and enters queue position #10
  • After 60 sec, Caller hears "Press 1 to receive a prompt callback from our sales representative"
  • Caller presses 1 and hears “We’ll call you at 3-8-0-5-0-1-2-3-4-5-6-7. Press 1 to confirm or 2 to enter a different number”
  • Caller presses 2 and hears "Please say the phone number you would like us to call"

  • Caller says "3-8-0-5-0-1-2-0-0-0-0-0" and hears “Your number is 3-8-0-5-0-1-2-0-0-0-0-0. Press 1 to confirm or 2 to re-enter”

  • Caller presses 1 and hears “Thank you. We will call you when an agent is available”
  • The call ends

Use scenario #1.5: Anonymous/missing caller's number (alternative to #1.1)

  • 09:00:00 – Caller (anonymous, no ANI) calls the main phone number of AcmeCorp and enters queue position #10.
  • After 60 sec, Caller hears: “Press 1 to receive a prompt callback from our sales representative. Since we cannot detect your number, you will need to enter it manually.”
  • Caller presses 1 and hears: “Please enter a phone number and press pound"
  • Caller enters 380501234567# and hears You entered 3-8-0-5-0-1-2-3-4-5-6-7. Press 1 to confirm or 2 to re-enter.”
  • Caller presses 1 and hears “Thank you. We will call you when an agent is available.”
  • The call ends.

Use scenario #1.6: Wrong input (alternative to #1.1)

  • Caller presses 9 (invalid) within same session and gets informed about unavailable selection

  • Caller presses 1 and the scenario proceeds as in #1.1

Use scenario #1.7: Order of processing pending callback requests

  • Three callers, A, B, and C, have requested callbacks from the same Sales queue callback queue.

  • Caller A: Enters at 09:00:00, position #10, requests callback at 09:01:00.

  • Caller B: Enters at 09:02:00, position #11, requests callback at 09:03:00.

  • Caller C: Enters at 09:02:15, position #12, but requests callback at 09:02:30 (before B's callback request).

  • At 09:15:10, Agent 100 finishes a call and becomes available:
    • PortaSwitch calls Caller A (position #10)

    • Caller A answers and is connected to Agent 100 at 09:15:15 as if it were a call from Call Queue "Sales"

    • when the call finished, PortaSwitch applies the charge to the account of AcmeCorp with the main phone number
  • At 09:25:00, Agent 101 finishes a call and becomes available:
    • PortaSwitch calls Caller B (position #11)
    • Caller B answers and is connected to Agent 101 at 09:25:05
  • At 09:35:00, Agent 102 finishes a call and becomes available:
    • PortaSwitch calls Caller C (position #12)
    • Caller C does not answer
    • PortaSwitch calls Caller C in (configurable) 120 seconds but the callback attempt fails again (i.e. failed to reach C)
    • PortaSwitch calls Caller C in 120 seconds but the callback attempt fails again
    • PortaSwitch no longer attempts to call Caller C

Use scenario #1.8: Expired callback requests (alternative to #1.4)

  • Caller (380501234567) enters at 09:00:00, position #10, requests callback at 09:01:00.
  • After 24 hours (configurable) since the callback request, no agent is available for the callback to 380501234567

  • After 26 hours since the callback request, Agent (ext 100) becomes available
  • PortaSwitch does not attempt to callback 380501234567 as the callback request is older than 24 hours


Non-functional requirements

  • Logging: All callback attempts and statuses should be logged for auditing purposes.

Peculiarities

N/A

Performance / Clustering, Geo Redundancy/ Dual-Version, Porter / Call Control API

  • Callbacks must be supported in standalone and dual-version setups (if the source system's MR already supports it)

ESPF / Monitoring

N/A