[Asterisk-Users] Pops in Call Recordings Tied to Dropped Audio in Calls

Matt Roth mroth at imminc.com
Thu Dec 15 10:40:29 MST 2005


Kevin P. Fleming wrote:

> On 2.6 kernels, ztdummy can use either the kernel ticks (jiffies) for 
> timing, or the hardware realtime clock (RTC). By default it uses the 
> RTC when built against kernel headers for 2.6.13 or newer; it can be 
> manually configured to use the RTC for older kernels. The RTC is a 
> more reliable timing source than kernel ticks, because they can be 
> delayed small amounts due to the kernel performing process switches 
> and the like, although usually there is not a great deal of 
> difference. Also, on recent 2.6 kernels the jiffy frequency is 
> adjustable at configuration time and no longer defaults to 1000 per 
> second; if RTC mode is not used, then the kernel frequency _must_ be 
> 1000Hz for ztdummy to work correctly.

We're running a 2.6.12 kernel (Murphy's Law!), so I could use some tips 
for manually configuring ztdummy for RTC.  We're running ABE (A.2-1), 
but that shouldn't be a problem since all of the zaptel related stuff is 
still built from source.  Our kernel is a stock Fedora Core 3 kernel 
(2.6.12-1.1376_FC3smp), so the frequency is most likely not set at 
1000Hz.  Is there an easy way to verify this?

Would we be better off buying a Digium card to use solely as a timing 
source, or is ztdummy adequate?  We tried putting an X100P in the box, 
but the BIOS didn't recognize it.  We have an extra quad-span card, but 
it's 5-volt and our PCI slots are 3.3 (Murphy's Law!).  I was under the 
impression that timing was only an issue for MOH, IAX trunking, and 
MeetMe conferencing, then I found this while doing some research on 
configuring ztdummy for RTC:

- [Asterisk-Users] Popping and Clicking on Local WAN with X-Lite 
(http://lists.digium.com/pipermail/asterisk-users/2004-October/065807.html)

It sounds curiously similar to our issue, but I've pointed out some 
areas where we're unique below.  Could this be the source of our problem?

- We're using a Cisco AS5400 Universal Gateway to terminate our Ts (it 
forwards all calls to Asterisk via SIP), so IRQ sharing shouldn't be a 
problem (it's also why we have no Zap hardware in the box).  Things look 
pretty good in /proc/interrupts as well.

[root at immlx15 ~]# cat /proc/interrupts
           CPU0       CPU1       CPU2       CPU3
  0:   10513090   15234131   15354631   15354147    IO-APIC-edge  timer
  1:          2          1          6          4    IO-APIC-edge  i8042
  8:         33         48         40         68    IO-APIC-edge  rtc
  9:          0          0          0          0   IO-APIC-level  acpi
 12:         22         25         25         27    IO-APIC-edge  i8042
 14:       6566      71549       5166      29898    IO-APIC-edge  ide0
 50:         30       9369     424384     159692   IO-APIC-level  ide2
 58:      46301      29337      41320      43009   IO-APIC-level  megaraid
 82:   25736221          3          4          3   IO-APIC-level  eth2
 90:          2     314496          2          3   IO-APIC-level  eth3
 98:          5          5          7          5   IO-APIC-level  
ehci_hcd:usb1
106:         13         15         13         17   IO-APIC-level  
uhci_hcd:usb2
114:          0          0          0          0   IO-APIC-level  
uhci_hcd:usb3
122:        120       3319        582       2536   IO-APIC-level  
uhci_hcd:usb4
NMI:       1305        674        737        642
LOC:   56440137   56450200   56450713   56450888
ERR:          3
MIS:          0

- Some of the information I read pointed out that RTC must be loaded as 
a module, and not compiled directly into the kernel.  I'm unsure if this 
is still the case, and I'm also not sure how to check whether it's 
compiled in or not.  lsmod and /proc/modules/ don't show it, but it is 
in /proc/interrupts as shown above.

[root at immlx15 ~]# lsmod
Module                  Size  Used by
ztdummy                 8800  0
zaptel                204328  79 ztdummy
crc_ccitt               6593  1 zaptel
md5                     9025  1
ipv6                  306305  22
parport_pc             35497  0
lp                     19473  0
parport                47693  2 parport_pc,lp
autofs4                27081  0
i2c_dev                16577  0
i2c_core               29889  1 i2c_dev
nfs                   223729  2
lockd                  77297  2 nfs
sunrpc                166457  3 nfs,lockd
pcmcia                 35925  0
yenta_socket           28617  0
rsrc_nonstatic         17857  1 yenta_socket
pcmcia_core            60109  3 pcmcia,yenta_socket,rsrc_nonstatic
dm_mod                 68257  0
joydev                 15553  0
video                  23241  0
button                  9025  0
battery                15305  0
ac                      9929  0
uhci_hcd               39265  0
ehci_hcd               41037  0
e1000                 119341  0
tg3                   103109  0
floppy                 72857  0
sg                     46969  0
ext3                  148049  5
jbd                    71153  1 ext3
megaraid_mbox          44241  6
megaraid_mm            17273  1 megaraid_mbox
sd_mod                 24512  7
scsi_mod              162961  3 sg,megaraid_mbox,sd_mod              
              
[root at immlx15 ~]# cat /proc/modules
ztdummy 8800 0 - Live 0xffffffff88271000
zaptel 204328 65 ztdummy, Live 0xffffffff8823e000
crc_ccitt 6593 1 zaptel, Live 0xffffffff8823b000
md5 9025 1 - Live 0xffffffff88237000
ipv6 306305 22 - Live 0xffffffff881eb000
parport_pc 35497 0 - Live 0xffffffff881e1000
lp 19473 0 - Live 0xffffffff881d9000
parport 47693 2 parport_pc,lp, Live 0xffffffff881cc000
autofs4 27081 0 - Live 0xffffffff881c4000
i2c_dev 16577 0 - Live 0xffffffff881be000
i2c_core 29889 1 i2c_dev, Live 0xffffffff881b5000
nfs 223729 2 - Live 0xffffffff8817d000
lockd 77297 2 nfs, Live 0xffffffff88169000
sunrpc 166457 3 nfs,lockd, Live 0xffffffff8813f000
pcmcia 35925 0 - Live 0xffffffff88135000
yenta_socket 28617 0 - Live 0xffffffff8812d000
rsrc_nonstatic 17857 1 yenta_socket, Live 0xffffffff88127000
pcmcia_core 60109 3 pcmcia,yenta_socket,rsrc_nonstatic, Live 
0xffffffff88117000
dm_mod 68257 0 - Live 0xffffffff88105000
joydev 15553 0 - Live 0xffffffff88100000
video 23241 0 - Live 0xffffffff880f9000
button 9025 0 - Live 0xffffffff880f5000
battery 15305 0 - Live 0xffffffff880f0000
ac 9929 0 - Live 0xffffffff880ec000
uhci_hcd 39265 0 - Live 0xffffffff880e1000
ehci_hcd 41037 0 - Live 0xffffffff880d5000
e1000 119341 0 - Live 0xffffffff880b6000
tg3 103109 0 - Live 0xffffffff8809b000
floppy 72857 0 - Live 0xffffffff88088000
sg 46969 0 - Live 0xffffffff8807b000
ext3 148049 5 - Live 0xffffffff88055000
jbd 71153 1 ext3, Live 0xffffffff88042000
megaraid_mbox 44241 6 - Live 0xffffffff88036000
megaraid_mm 17273 1 megaraid_mbox, Live 0xffffffff88030000
sd_mod 24512 7 - Live 0xffffffff88029000
scsi_mod 162961 3 sg,megaraid_mbox,sd_mod, Live 0xffffffff88000000   

Thank you,

Matthew Roth
InterMedia Marketing Solutions
Software Engineer and Systems Developer



More information about the asterisk-users mailing list