Recording with MixMonitor in Dialplan

Hello, I’m working on configuring my Dialplan to enable recording for outbound calls. My Asterisk 18 system uses ARI to dial into one context (outbound_calls), and once the call is answered, it jumps to another context that contains an AGI script, which performs actions such as playing an audio file.

I would like to record the entire call, including the ringing tones when the provider is dialing the destination. However, with my current setup, I can only record the conversation after the other party has answered.

After reviewing the documentation, I found that MixMonitor requires an Answer() or Progress() to initiate recording. Is there a way to capture the entire call, including the ringing phase, before the destination answers?

I’ve already tried placing an Answer() before the Dial and MixMonitor commands, which successfully starts the recording and captures the ringing tones. However, this causes the actions in the AGI Context (such as playing the audio) to execute before the other party answers the call. Additionally, using Progress() does not trigger the MixMonitor to start recording.

[outbound-calls]
exten => _X.,1,NoOp(Outbound Call Started)
same => n,MixMonitor(/var/spool/asterisk/monitor/test.wav)
same => n,Dial(SIP/${EXTEN}@provider)

You could close your message like this:

Any guidance or suggestions would be greatly appreciated. Thank you!

Generally the ringing is not sent as audio, so therefore isn’t recorded. It’s passed back as signaling and the calling party generates the ringing locally. Using Progress() or Answer() forces Asterisk to generate the ringing internally instead. Progress() would keep the call unanswered, but media would be flowing.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.