CDRs are sent after every call, whether or not it was answered/handled. These are used for call accounting both on the providers side as well as in the 3rd party application. As CDRs are critical we make use of a persistent Redis List to send them. A single worker must exist which handles/processes these notifications.
# get cdr's for all campaigns
brpop enigma:notifications:campaigns
When will you get a CDR?
You will receive a CDR for each call that the dialer makes, at the end of the call.
If a callee has multiple numbers, it will try the numbers in order and send a CDR for each number it tried to call, if a call is connected then the callee has been contacted and the rest of the numbers won't be called.
Key CDR Indicators
Conditions
Meaning
extension is null
Callee hangup in queue (before being connected to an agent)
Only one integrator can consume CDR's currently. This is a limitation in how a Redis List was designed, and we use a Redis List here to be reliable. Its an unfortunate limitation that will be fixed in the future but requires a lot of planned features to be implemented first and the completion of a fairly large rearchitecting of the application.