- 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
Also, @rlayman, the answer to:
#5: In today's world we'd need a new end point (possibly already there in 1.4) in Call Service/Ingest that will allow Julius to poll the call and get the call information. The question becomes how does Julius know what call id to poll on? Possible answers:
should be
b. Use the access code for the alt_call_id field (which the UI already knows)
Since Asterisk will have to ask Julius if the access code is valid anyway, if it sends along a Call ID, we can link the sessions that way. (Which is essentially how the system works at the moment.)