Summary:ASTERISK-19426: Mixmonitor does not create file and record anything
Reporter:Johan Wilfer (johan)Labels:
Date Opened:2012-02-23 06:45:21.000-0600Date Closed:2012-05-03 08:40:10
Versions: Frequency of
is related toASTERISK-19497 ConfBridge recording does not work reliably
is related toASTERISK-19727 MixMonitor does not work on local channels
Environment:Debian 6, Linux 2.6.32-5-686 #1 SMP i686 GNU/LinuxAttachments:( 0) 32-bit-time-overflow-2012-04-27.diff
( 1) mixmonitordebug.txt
Description:After upgrading a system from to we noticed in testing that Mixmonitor didn't record anything anymore.
There is no errors on the console, but the file isn't created, and nothing is recorded.

Dialplan snippet:
context mixmonitortest {
 s => {

   -- Executing [s@mixmonitortest:1] MixMonitor("SIP/trunk-00000002", "/tmp/test.wav") in new stack
   -- Executing [s@mixmonitortest:2] Wait("SIP/trunk-00000002", "20") in new stack
 == Begin MixMonitor Recording SIP/trunk-00000002
 == Spawn extension (mixmonitortest, s, 2) exited non-zero on 'SIP/trunk-00000002'
 == End MixMonitor Recording SIP/trunk-00000002

But no file is recorded in /tmp/test.wav
Comments:By: Matt Jordan (mjordan) 2012-02-23 08:54:05.114-0600

We require a complete debug log to help triage the issue. This document will provide instructions on how to collect debugging logs from an Asterisk machine for the purpose of helping bug marshals troubleshoot an issue: https://wiki.asterisk.org/wiki/display/AST/Collecting+Debug+Information

By: Johan Wilfer (johan) 2012-02-25 06:25:16.183-0600

Debug log

By: Johan Wilfer (johan) 2012-02-25 06:28:01.913-0600

A debug log is attatched. I've also tried this with a combination of Local/ and DAHDI/ -channels with the same results (no recording).

By: Johan Wilfer (johan) 2012-03-14 06:23:00.211-0500

I'll try to install a clean server with 1.8 in the next days to figure out if this is a upgrade issue or if it's always present.
I'v seen this on servers I try to upgrade from the 1.6.2-series to 1.8. I'm curious if it's the same to a 1.8 from the start.

By: Matt Behrens (mattbehrens) 2012-04-06 10:36:41.302-0500

Johan, I think I have a similar issue, on 1.8.11, clean AsteriskNOW 2.0 (no FreePBX) with very minimal configs.

exten => _X.,1,Answer()
same => n,MixMonitor(${UNIQUEID}.wav)
same => n,Wait(60)
same => n,Hangup()

does not record anything.  However,

exten => _X.,1,Answer()
same => n,MixMonitor(${UNIQUEID}.wav)
same => n,Playback(hello-world)
same => n,Wait(60)
same => n,Hangup()


By: Johan Wilfer (johan) 2012-04-06 11:33:27.528-0500

Interesting. In my use-case I use Originate() to create a call. One side of the call is attached to a Meetme()-conference. And the other side is a Local/-channel that MixMonitor() and use Wait() in a loop.

Did you get the bridged audio in the recording that succeed?
If so a workaround would be to play some short recording before waiting in the loop.

By: Matt Behrens (mattbehrens) 2012-04-06 14:53:52.307-0500

I did get both sides.  I'm now using Playback(beep) and can hear that mixed in with the incoming audio, which is just coming in via SIP--this is a setup that just records all incoming calls.

By way of workaround, this also works:

exten => _X.,1,Answer()
same => n,MixMonitor(${EXTEN}-${UNIQUEID}.wav)
same => n,Playback(silence/1)
same => n,Wait(59)
same => n,Hangup()

By: Matt Jordan (mjordan) 2012-04-27 10:10:37.132-0500

Hello -

I've attached a patch (32-bit-time-overflow-2012-04-27) which should resolve this issue.  If you could please test this to see if it resolves the problem you're having, I'd appreciate it.



By: Johan Wilfer (johan) 2012-04-28 03:54:45.391-0500

Yep! It works. Great work, thank you!
(Tested with asterisk + patch)

By: Santiago Ussher (ussher18) 2012-05-02 14:57:44.680-0500

Sorry, guys, I'm having this exact problem and feel terribly frustrated. I get to see the three things I point out. I'm pretty sure I should be seeing a file somewhere but I'm getting nothing.

Any explanation or ideas?


-- Executing [s@macro-record-enable:1] GotoIf("SIP/1818-00000006", "1?check") in new stack
   -- Goto (macro-record-enable,s,4)
   -- Executing [s@macro-record-enable:4] AGI("SIP/1818-00000006", "recordingcheck,20120502-155458,1335984898.12") in new stack
   -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
recordingcheck,20120502-155458,1335984898.12: Outbound recording enabled.
recordingcheck,20120502-155458,1335984898.12: CALLFILENAME=OUT1818-20120502-155458-1335984898.12
   -- <SIP/1818-00000006>AGI Script recordingcheck completed, returning 0
   -- Executing [s@macro-record-enable:999] MixMonitor("SIP/1818-00000006", "/var/spool/asterisk/monitor/OUT1818-20120502-155458-133             5984898.12.wav,,") in new stack
   -- Executing [01562041397@from-internal:4] Macro("SIP/1818-00000006", "dialout-trunk,1,1562041397,,") in new stack


== Begin MixMonitor Recording SIP/1818-00000006
      > fixlocalprefix: Using pattern .
 == fixlocalprefix: Dialpattern . matched. 1562041397 -> 1562041397
   -- <SIP/1818-00000006>AGI Script fixlocalprefix completed, returning 0
   -- Executing [s@macro-dialout-trunk:13] Set("SIP/1818-00000006", "OUTNUM=1562041397") in new stack
   -- Executing [s@macro-dialout-trunk:14] Set("SIP/1818-00000006", "custom=DAHDI/1") in new stack
   -- Executing [s@macro-dialout-trunk:15] ExecIf("SIP/1818-00000006", "0?Set(DIAL_TRUNK_OPTIONS=M(setmusic^))") in new stack
   -- Executing [s@macro-dialout-trunk:16] Macro("SIP/1818-00000006", "dialout-trunk-predial-hook,") in new stack
   -- Executing [s@macro-dialout-trunk-predial-hook:1] MacroExit("SIP/1818-00000006", "") in new stack
   -- Executing [s@macro-dialout-trunk:17] GotoIf("SIP/1818-00000006", "0?bypass,1") in new stack
   -- Executing [s@macro-dialout-trunk:18] GotoIf("SIP/1818-00000006", "0?customtrunk") in new stack
   -- Executing [s@macro-dialout-trunk:19] Dial("SIP/1818-00000006", "DAHDI/1/1562041397,300,") in new stack
   -- Called 1/1562041397

and finally....

3)   == End MixMonitor Recording SIP/1818-00000006

By: Johan Wilfer (johan) 2012-05-02 15:46:28.328-0500

Did you try the patch?

Does the code in the issue also fails with / without the patch for you?

By: Santiago Ussher (ussher18) 2012-05-02 15:51:13.767-0500

How is the patch applied? Sorry, not too good with linux.

By: Matt Jordan (mjordan) 2012-05-03 08:39:16.905-0500

Assuming the patch is placed into the same directory as your Asterisk 1.8 source directory:

# patch -p0 -i ./32-bit-time-overflow-2012-04-27.diff

Then rebuild and reinstall.

By: Santiago Ussher (ussher18) 2012-05-03 10:55:51.367-0500

Great, so I run that and then follow https://wiki.asterisk.org/wiki/display/AST/Building+and+Installing+Asterisk

right? I'll give it a try and let you know. Thanks!