- Maintain state of all sessions:
- Authenticated Google session
- Attached clients by socketId
- Call ID
- Surface endpoint to link calls via Access Code, Call ID, Google ID
- Display all keypresses
- Display as chunks
- Display which node of the IVR the chunk came from
- If Account / PIN input, show validity of input
- Push or Pull?
- Using Call ID
- Listen for call status changes
- Poll for Risk Score
- Using Call ID
- Gather PRS Data
- With Fallover URI
- Communicate with OpenCNAM
- For now, should be handled / cached by PRS
- Determine Risk Reasons
- Hopefully for now.
- Maintain API Log
- Move this to server?
- Control Brutus
- Hook into Twilio's SIP Trunk
- Maintain state of all call data
- Call ID
- DTMF tones + metadata
- Call Status
- Calculate keypresses from DTMF tones and surface for Julius
- Send keypresses to Ingest with a Call ID
- Communicate Call Status to Julius for a given call ID
- Ask Julius about valid Access Codes
- Check validity of Account / PIN input
@randylaman Actually, the IVR will have to be aware / hold some of the state actually due to requirements of the front end that cannot be supported by back-end functionality currently available in the IVR.
The Front end needs to know which DTMF events occurred during different steps in the IVR for display, like showing "pin entered", "account entered" etc. This is functionality that the IVR system will not support and so asterisk will have to alert the Demo application when these occur.