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 | ||||
| End user |
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
- PortaSwitch calls Caller B (position #11)
- 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