- 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
In the current plan (PB+Intercept on the same host as Asterisk), Asterisk will not be an active participant in the fraud analysis. It will simply be the IVR. This has the upside of looking (mostly) like how we intend to deploy the system.
There are several implications for this where the Asterisk/Call Service Requirements need to change....
#2: Intercept will maintain the state of the call -- call id, DTMF tones and durations, and call status. It will send those to the Call Service/Ingest (IVR application).
#3: This is Packet Broker and Intercept
#4: This is Packet Broker
#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:
a. New end point that allows searching by ANI/DNIS/datetime.
b. Use the access code for the alt_call_id field (which the UI already knows)
c. Asterisk call script performs a REST invocation as part of the dial plan to push the call id with enough information for Julius to know which user