[help] "Unable to open DAHDI pseudo device"

Hello all,

My company is experiencing an odd issue. We only us the meeting rooms once per week for our weekly management meeting and the last 3 times we have tried logging into them (last three weeks, every Tuesday) you are immediately dropped after connecting to the room. All other phone calls work fine, incoming and outgoing, transfering, etc…

Restarting dahdi, asterisk, and rebooting the machine do not fix anything. The only thing that I have found that “fixes” the issue is that I have to reinstall dahdi. All the dahdi files are still in the machine, i just navigate to usr/src/asterisk/dahdi-linux-complete-VERSION and make install, restart the dahdi service and we are back in business.

The thing here is that I have NO IDEA what is causing this to happen…I have looked at a few log files trying to grep words that I think might hit on something but so far I have got nothing. I would really appreciate if someone could tell me where I might want to look for an idea of what is going wrong, it is almost as if the modules are uninstalling themselves or something because if I try and restart the service when it is NOT working, the “loading hardware modules” step does not give OK’s

I have tried researching forums for the CAUSE of the issue and have been unable to find anyone even talking about that, the two places I found just recommended re-installing Dahdi and the discussion stopped there.

I have attached the code from the moment I dialed our conference room extension, to the moment it hangs up on me. If anyone needs any logs, or for me to provide any additional info I would be more then happy too. I am fairly new to helping administer Asterisk and this is the first real issue that my boss has had me look into alone. I feel it is almost a try-out :smile:

Thank You,
Jim

-- Executing [702@from-inside:1] Macro("SIP/118-00000003", "tl-set-variables2,from-inside-redir,") in new stack -- Executing [s@macro-tl-set-variables2:1] Set("SIP/118-00000003", "__tenant=") in new stack -- Executing [s@macro-tl-set-variables2:2] Set("SIP/118-00000003", "CDR(userfield)=") in new stack -- Executing [s@macro-tl-set-variables2:3] Set("SIP/118-00000003", "__FROM_INSIDE=1") in new stack -- Executing [s@macro-tl-set-variables2:4] Set("SIP/118-00000003", "__MOH=default") in new stack -- Executing [s@macro-tl-set-variables2:5] GotoIf("SIP/118-00000003", "1 ?setmoh") in new stack -- Goto (macro-tl-set-variables2,s,7) -- Executing [s@macro-tl-set-variables2:7] Set("SIP/118-00000003", "CHANNEL(musicclass)=default") in new stack -- Executing [s@macro-tl-set-variables2:8] Goto("SIP/118-00000003", "from-inside-redir,702,1") in new stack -- Goto (from-inside-redir,702,1) == Channel 'SIP/118-00000003' jumping out of macro 'tl-set-variables2' -- Executing [702@from-inside-redir:1] Macro("SIP/118-00000003", "tl-dialconference,702,,") in new stack -- Executing [s@macro-tl-dialconference:1] Wait("SIP/118-00000003", "1") in new stack -- Executing [s@macro-tl-dialconference:2] Set("SIP/118-00000003", "CALLERID(name)=Jim Hough") in new stack -- Executing [s@macro-tl-dialconference:3] MeetMe("SIP/118-00000003", "702,") in new stack == Parsing '/etc/asterisk/meetme.conf': == Found [2012-01-24 11:30:20] WARNING[3263]: app_meetme.c:1221 build_conf: Unable to open DAHDI pseudo device == Spawn extension (macro-tl-dialconference, s, 3) exited non-zero on 'SIP/118-00000003' in macro 'tl-dialconference' == Spawn extension (from-inside-redir, 702, 1) exited non-zero on 'SIP/118-00000003' -- Executing [h@from-inside-redir:1] Hangup("SIP/118-00000003", "") in new stack == Spawn extension (from-inside-redir, h, 1) exited non-zero on 'SIP/118-00000003'

You need to find out whether the dahdi modules are being damaged/removed in the kernel modules directory, or whether the init script for dahdi is getting disabled, then remove the culprit. This really is not going to be caused by Asterisk.

Has the system been around for a while and just started exhibiting this behaviour or has it done it since install?
Are you running Asterisk as a root user or non-root user?
When the problem is happening, what it the output of the command ‘lsmod | grep dahdi’ ?
When this is happening, what is the output of ‘ls -al /dev/dahdi/’ ?
After re-installing dahdi, what is the output of ‘ls -al /dev/dahdi/’ ?
What version of OS?

If this is a RedHat like system you also need to check the contents of init.d directory for your normal runlevel.

David and Dale,

Thank you so much for your responses!!

The server is CentOS, it hasn’t been doing it since install, it only started exhibiting this behavior a few weeks ago.

Asterisk is running as Root

Thank you for the suggestions of things to check when the problem is happening. This is EXACTLY what I was looking for! I will check init.d for run level info

I will run those commands as soon as the problem happens again and will reply with the output.

Thank you both very much,
Jim

The same problem (“Unable to open DAHDI pseudo device”) occurs.

OS: Debian 6.0.7
Linux: 2.6.32-5-686 #1 SMP Mon Feb 25 01:04:36 UTC 2013 i686 GNU/Linux
Asterisk: 1:1.8.11.1-1digium1~squeeze

sources.list:

deb http://security.debian.org/ squeeze/updates main contrib non-free
deb-src http://security.debian.org/ squeeze/updates main contrib non-free

deb http://ftp.debian.org/debian/ squeeze-updates main contrib non-free
deb-src http://ftp.debian.org/debian/ squeeze-updates main contrib non-free

deb http://mirror.yandex.ru/debian squeeze main contrib non-free

deb http://packages.asterisk.org/deb squeeze main contrib non-free
deb-src http://packages.asterisk.org/deb squeeze main contrib non-free

What I’ve installed (to be able to use Page application, which requires MeetMe, which requires timing working):

apt-get install dahdi
apt-get install dahdi-source
apt-get install dahdi-linux
apt-get install asterisk-dahdi

‘modprobe -l’ and ‘lsmod’ do not show anything like zapata/zaptel/ztdummy/dahdi.

So, when i use ‘Page’ application in my dialplan, I have an error (in fact, both phones, 1000 and 1004, ring when I dial ‘113’ from my 1001 phone, but for about 1 second only, then the call suddenly hangs up):

-- Executing [113@myphones:1] Page("SIP/1001-00000000", "SIP/1000&SIP/1004") in new stack == Using SIP RTP CoS mark 5 -- Called 1000 == Using SIP RTP CoS mark 5 -- Called 1004 -- SIP/1004-00000002 is ringing -- SIP/1000-00000001 is ringing -- <SIP/1001-00000000> Playing 'beep.gsm' (language 'ru') [May 16 11:26:06] WARNING[1115]: app_meetme.c:1228 build_conf: Unable to open DAHDI pseudo device == Spawn extension (myphones, 113, 1) exited non-zero on 'SIP/1001-00000000'

You do not appear to have the same problem, as yours has never worked.

You need to install dahdi for the exact kernel version that you are using. I have a feeling that Debian only installs the sources. In part that is because the fully installed package includes non-Debian-free firmware for various telephony cards. In part it is probably simply because they don’t want to have packages for every kernel version.

As this is likely to be a Debian packaging issue, you may need to take it up with the packager. Alternatively build everything from source (as noted, you may find you have no choice but to build dahdi from source).

Note that there are now conferencing applications that don’t need dahdi, but I’m not sure how they interact with Page.

[quote=“david55”]You do not appear to have the same problem, as yours has never worked.
[/quote]
I just decided not to start a new thread. I searched and posted here. ; )

Installing binaries from Debian repositories hadn’t helped:

apt-get install dahdi apt-get install dahdi-source apt-get install dahdi-linux apt-get install asterisk-dahdi
So, I purged these packages and compiled dahdi.

downloads.asterisk.org/pub/telep … ent.tar.gz
Extracted it to /usr/src/dahdi-linux-complete-2.6.2+2.6.2/
Ran make all; make install; make config, according to README. After that the modules appeared:

root@debianvoip:~# modprobe -l | grep dahdi
dahdi/wctdm.ko
dahdi/dahdi_dynamic_eth.ko
dahdi/wcb4xxp/wcb4xxp.ko
dahdi/wcte11xp.ko
dahdi/dahdi_echocan_kb1.ko
dahdi/wct4xxp/wct4xxp.ko
dahdi/wcfxo.ko
dahdi/dahdi_transcode.ko
dahdi/wctc4xxp/wctc4xxp.ko
dahdi/dahdi_echocan_sec.ko
dahdi/wct1xxp.ko
dahdi/tor2.ko
dahdi/xpp/xpd_pri.ko
dahdi/xpp/xpp_usb.ko
dahdi/xpp/xpp.ko
dahdi/xpp/xpd_bri.ko
dahdi/xpp/xpd_fxs.ko
dahdi/xpp/xpd_echo.ko
dahdi/xpp/xpd_fxo.ko
dahdi/dahdi_echocan_mg2.ko
dahdi/wctdm24xxp/wctdm24xxp.ko
dahdi/pciradio.ko
dahdi/voicebus/dahdi_voicebus.ko
dahdi/dahdi_echocan_jpah.ko
dahdi/dahdi_dynamic.ko
dahdi/dahdi_dynamic_ethmf.ko
dahdi/dahdi_dynamic_loc.ko
dahdi/dahdi.ko
dahdi/wcte12xp/wcte12xp.ko
dahdi/dahdi_echocan_sec2.ko
dahdi/dahdi_vpmadt032_loader.ko

But now app_meetme.so disappeared. But it was available before installing dahdi from source.

debianvoip*CLI> module load app_meetme
Unable to load module app_meetme
Command 'module load app_meetme' failed.
[May 16 15:04:11] WARNING[1039]: loader.c:404 load_dynamic_module: Error loading module 'app_meetme': /usr/lib/asterisk/modules/app_meetme.so: cannot open shared object file: No such file or directory
[May 16 15:04:11] WARNING[1039]: loader.c:856 load_resource: Module 'app_meetme' could not be loaded.

As I googled, it’s recommended to install Asterisk from source after installing dahdi from source:
asterisk-pbx.hk/2010/04/appm … -1422.html

That’s sad…

Building dahdi will not remove any Asterisk modules.

Whether you need to build Asterisk depends on whether the original Asterisk package was built with dahdi headers present.

Our senior VoIP technician told me that it was enough internal_timing = yes in asterisk.conf, to achieve working timing.

He set up a number of Asterisks on FreeBSD, it does not have dahdi, as he told.

But it’s too late, I’ve already compiled dahdi from source and now I’m compiling Asterisk 11.3 from source. :smile:

You generally need internal timing enabled even if using dahdi.

Also, you are, implicitly, using meetme and meetme requires conference bridging services from dahdi, even though there is a lot of misinformation that it only requires timing.

If you hadn’t been using meetme, I would have told you you didn’t need dahdi, and I believe I did tell you that there were alternative conferencing applications which didn’t need it, but which probably can’t be used by Page.

When setting internal timing, you should also make sure that you select a timing source.

David55, thank you for participating in the discussion.

After installing dahdi and Asterisk from source, I have such an error:

-- Executing [113@myphones:1] Page("SIP/1001-0000000c", "SIP/1004") in new stack == Using SIP RTP CoS mark 5 -- Called 1004 -- <SIP/1001-0000000c> Playing 'beep.slin' (language 'ru') -- SIP/1004-0000000d is ringing [May 16 18:01:38] ERROR[1183][C-0000000c]: app_confbridge.c:1169 join_conference_bridge: Conference '129391294' mixing bridge could not be created. == Spawn extension (myphones, 113, 1) exited non-zero on 'SIP/1001-0000000c

As we see, now it doesn’t need MeetMe (and app_meetme is not loaded).

So I’ll try to configure confbridge.conf. Now I know that it’s an alternative to MeetMe and it does not require DAHDI (correct me if I’m not right).