Asterisk Music On Hold only while I am talking on the incomm

Dear All,
I set up Asterisk 1.8 on my TP link 1043 router with OpenWrt Backfire 10.03.1.
Music On Hold works in case of all internal calls and also in case I call my mobile phone from a SIP extension through a SIP provider. However if I initiate the call from my mobile phone and terminate it on a SIP extension through the same external SIP line, I can only hear the music while I talk or generate noise, otherwise not.

I have installed the kmod-zaptel14 and kmod-zaptel14-dummy kernel modules
root@noranet:~# lsmod | grep zt
ztdummy 1776 0
zaptel 186064 1 ztdummy

I also made sure that the following lines
internal_timing = yes
are uncommented in the asterisk.conf file.

Unfortunately the above actions didn’t help. I still cannot hear music on hold properly.

I recognized that although the ztdummy kernel module has been loaded the “timing test” asterisk CLI command generates an error message:
noranetCLI> timing test
Attempting to test a timer with 50 ticks per second.
Failed to open timing fd
Command 'timing test ’ failed.

If anyone has experience on this please share with me.

As far as I am aware, legacy support for zaptel has been removed. You should be using dahdi.

Thank you for your answer.
Unfortunately there is no dahdi kernel module available in the Openwrt repository. :frowning:

I think you need to take this up with the packager. Packaged versions of Asterisk starting at 1.6 or possibly even late 1.4, should be built against a system that already has dahdi installed. The exception to this is very recent versions of Asterisk that are being used on machines incapable of supporting dahdi hardware; timerfd timing may work properly on those.

I’m not 100% sure that zaptel support has been removed, but if it is till present, it will be via chan_dahdi.

Distributing zaptel packages is arguably a trademark violation, as one of the reasons for changing the name was a trademark issue.

I got MOH to work with Asterisk 1.8 on Backfire 10.03.1.

I noticed the module was being compiled for the router, but was not automatically copied to the final squashfs image.

I copied the module to the modules directory on my router, and added the following to the [modules] section of my modules.conf:
load =>

Also, in asterisk.conf:
internal_timing = yes

Now the timing test works, and MOH works.

Thank you scales. That sounds really great. But from where can I get the file? I didn’t find anything similar to that in the … /packages/ directory.

I followed the instructions to build Openwrt for my router (Buffalo WZR-HP-AG300H).

When the “make” was finished the module was located in the directory: