Asterisk 1.8 cutting silence from Voicemail recordings

This is a problem I’m encountering while upgrading to Asterisk 1.8. I am pretty sure it’s a bug but as requested by the bug tracker I’m trying these forums first to see if someone else has had this issue.

Problem

When recording voicemails from an old T1 (EM Wink encoded) all the silence is cut from the message. Recording voicemails from an internal sip phone works fine and normal phone calls coming in from the T1 work great too. Just the voicemail recording is affected. The mixmonitor recording has issues too but instead of being too short it has really brief cutoffs, almost like packets dropping or aggressive silence detection.

While this problem may sound similar to issue 16981 (issues.asterisk.org/jira/browse/ASTERISK-16981) I have tested with 1.8.18 and my problem still exists.

Hardware setup

  • Dell T310 server
  • Sangoma A101 digital T1 card
  • T1 is EM wink encoded NOT your standard PRI
  • These problems are coming in straight off the T1 into the asterisk box, there is no network being traversed.

Software setup

  • Elastix 2.3.0 (although this is purely an asterisk problem)
  • Asterisk 1.6.2.20, Asterisk 1.8.7.0, Asterisk 1.8.12.0, Asterisk 1.8.18.0
  • Sangoma wanpipe 3.5.28 (with hardware echo canceller. I tested with it on and off)
  • Centos 5.8 64bit (kernel 2.6.18-238.12.1)
  • Dahdi 2.4.1 and 2.6.1

Full problem description

We have been running for a long time on asterisk 1.6.2.X. Everything has worked great. I decided to upgrade our system. Everything went well except for the voicemail issue. I then selectively downgraded software and spent a long time testing different versions. The only thing that solved the problem was downgrading asterisk from the 1.8 branch to the 1.6 branch. I can easily replicate the problem by changing only the asterisk install.

I have played with a bunch of settings including maxsilence, minsecs, silencethreshold but none of them have changed anything.

I also tested a fresh install of elastix 2.3.0 in case a little default setting was making a difference. There was no change in the buggy voicemail behavior.

Attachments

[Nov 11 11:42:21] VERBOSE[8803] file.c:     -- <DAHDI/1-1> Playing 'beep.gsm' (language 'en')
[Nov 11 11:42:21] VERBOSE[8803] app_voicemail.c:     -- Recording the message
[Nov 11 11:42:21] VERBOSE[8803] app.c:     -- x=0, open writing:  /var/spool/asterisk/voicemail/default/228/tmp/t6PXi3 format: wav49, 0x2aaad02012a8
[Nov 11 11:42:21] VERBOSE[8803] app.c:     -- x=1, open writing:  /var/spool/asterisk/voicemail/default/228/tmp/t6PXi3 format: wav, 0x2aaad02018e8
[Nov 11 11:42:36] VERBOSE[8803] app.c:     -- User hung up
[Nov 11 11:42:36] VERBOSE[8803] config.c:   == Parsing '/var/spool/asterisk/voicemail/default/228/INBOX/msg0002.txt': [Nov 11 11:42:36] VERBOSE[8803] config.c:   == Found
[Nov 11 11:42:36] VERBOSE[8803] config.c:   == Parsing '/var/spool/asterisk/voicemail/default/228/INBOX/msg0002.txt': [Nov 11 11:42:36] VERBOSE[8803] config.c:   == Found
[Nov 11 11:42:36] VERBOSE[8803] app_macro.c:   == Spawn extension (macro-vm, s-BUSY, 3) exited non-zero on 'DAHDI/1-1' in macro 'vm'
[Nov 11 11:42:36] VERBOSE[8803] app_macro.c:   == Spawn extension (macro-exten-vm, s, 18) exited non-zero on 'DAHDI/1-1' in macro 'exten-vm'
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:   == Spawn extension (from-did-direct, 228, 1) exited non-zero on 'DAHDI/1-1'
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [h@from-did-direct:1] Macro("DAHDI/1-1", "hangupcall,") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:1] GotoIf("DAHDI/1-1", "0?endmixmoncheck") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:2] Set("DAHDI/1-1", "MIXMON_CALLFILENAME=/var/spool/asterisk/monitor/20121111-114218-1352659336.0.WAV") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:3] GotoIf("DAHDI/1-1", "1?defaultmixmondir") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Goto (macro-hangupcall,s,5)
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:5] System("DAHDI/1-1", "test -e /var/spool/asterisk/monitor/20121111-114218-1352659336.0.WAV") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:6] NoOp("DAHDI/1-1", "SYSTEMSTATUS = SUCCESS") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:7] GotoIf("DAHDI/1-1", "1?endmixmoncheck") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Goto (macro-hangupcall,s,9)
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:9] NoOp("DAHDI/1-1", "End of MIXMON check") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:10] GotoIf("DAHDI/1-1", "1?nomeetmemon") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Goto (macro-hangupcall,s,28)
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:28] NoOp("DAHDI/1-1", "End of MEETME check") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:29] GotoIf("DAHDI/1-1", "1?noautomon") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Goto (macro-hangupcall,s,34)
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:34] NoOp("DAHDI/1-1", "TOUCH_MONITOR_OUTPUT=") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:35] GotoIf("DAHDI/1-1", "1?noautomon2") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Goto (macro-hangupcall,s,41)
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:41] NoOp("DAHDI/1-1", "MONITOR_FILENAME=") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:42] GotoIf("DAHDI/1-1", "1?skiprg") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Goto (macro-hangupcall,s,45)
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:45] GotoIf("DAHDI/1-1", "1?skipblkvm") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Goto (macro-hangupcall,s,48)
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:48] GotoIf("DAHDI/1-1", "1?theend") in new stack
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Goto (macro-hangupcall,s,50)
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:50] AGI("DAHDI/1-1", "hangup.agi") in new stack
[Nov 11 11:42:36] VERBOSE[8803] res_agi.c:     -- Launched AGI Script /var/lib/asterisk/agi-bin/hangup.agi
[Nov 11 11:42:36] VERBOSE[8803] res_agi.c:     -- <DAHDI/1-1>AGI Script hangup.agi completed, returning 0
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:     -- Executing [s@macro-hangupcall:51] Hangup("DAHDI/1-1", "") in new stack
[Nov 11 11:42:36] VERBOSE[8803] app_macro.c:   == Spawn extension (macro-hangupcall, s, 51) exited non-zero on 'DAHDI/1-1' in macro 'hangupcall'
[Nov 11 11:42:36] VERBOSE[8803] pbx.c:   == Spawn extension (from-did-direct, h, 1) exited non-zero on 'DAHDI/1-1'
[Nov 11 11:42:36] VERBOSE[8804] app_mixmonitor.c:   == MixMonitor close filestream
[Nov 11 11:42:36] VERBOSE[8803] chan_dahdi.c:     -- Hungup 'DAHDI/1-1'
[Nov 11 11:42:36] VERBOSE[8804] app_mixmonitor.c:   == End MixMonitor Recording DAHDI/1-1