https://github.com/shubhamv108/ood-interactive-v-response
https://github.com/shubhamv108/ood-interactive-v-response
ivr object-oriented-design
Last synced: 7 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/shubhamv108/ood-interactive-v-response
- Owner: shubhamv108
- Created: 2021-10-23T02:43:23.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2021-10-23T02:45:11.000Z (almost 4 years ago)
- Last Synced: 2025-01-29T22:44:47.201Z (8 months ago)
- Topics: ivr, object-oriented-design
- Language: Java
- Homepage:
- Size: 308 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## IVR for Call
### Problem Statement
When a user contacts Customer Support, there are a set of options (called IVR - interactive Voice Response) that are presented to the user to help narrow down the issue and reach out to the right Support Agent that can help them.#### Eg: IVR session for Telecom:
Please press 1 for Prepaid connection
Please press 2 for Postpaid connection
Please press 3 for Broadband
On pressing an option, eg: 1
Please press 1 for new Prepaid connection
Please press 2 to know your current Bill amount
(and so on)
Press 8 to go back to the previous menu
Op pressing - say 2
Voice says: Your current bill is ₹ 245
Press 8 to go back to the previous menu
Press 9 to go back to the main menu
Please disconnect to end this callIn this question, we are going to develop a simple IVR service that:
Starts a new IVR for a user if there is no IVR in progress
Returns initial set of options for the user
Each option has a numeric identifier to indicate the selected option
At every level of the IVR there can be an option to go back 1 step (fixed at digit 8) and go back to start of the IVR (fixed at digit 9)
actors.User can either choose an option by pressing an appropriate number or can disconnect the call
When the user chooses an option, then system processes the input and moves to the next level of IVR or move back to the previous level (option 8) or first level (option 9)
When the user disconnects the call, IVR will endExtension scenario (Bonus)
Build retry for the following scenario:If actors.User waits for more than 1 minute before providing their input.
Candidate can chose to model timeout in the code; or
Can expect a timeout event
provides a wrong input
Retry spec:
Max number of tries = 3
on retry, return the same options with an optional message = "You have not provided the right input. Please try again"
Notes:
IVR menus/levels are not fixed and hence do not hard code IVR menu options.
For the purpose of this question, assume that for a given user, IVR levels and menu items are fixed
Assume that the following events are triggered by calling system:
Start of call
actors.User Input
End of call
IVR may contain
A message
A list of options
Continue with IVR or not