Modify

Opened 7 years ago

Closed 3 years ago

#9491 closed defect (moved_to_github)

Asterisk, dahdi, meetme and realtime compilation

Reported by: quentindeldycke@… Owned by: developers
Priority: normal Milestone: Barrier Breaker 14.07
Component: packages Version: Trunk
Keywords: asterisk 1.8 dahdi meetme realtime Cc: casius91@…

Description

Hi,

In our goal of integration Asterisk and some functionalities inside openwrt, we found some problem in the actual asterisk compilation in openwrt.

Actually, dahdi is not available in asterisk. We manage to create the openwrt makefiles for dahditools and dahdilinux.

I send you both packages in the linked .tar archives. Actually, dahdi have one bug, it create files badly in /dev. Files are created as /dev/dahdi![filename] instead of /dev/dahdi/[filename]. As for Zaptel, we provide a hotplug script for correcting this behavior.

When both packages are available, we can now modify asterisk for compiling the meetme application. I send you with this ticket the patch for meetme.

I also included patch for installing realtime. In my patch there is references to asterisk.init. this file is used to create initialisation rules at startup of the OS. It seems that, with realtime, errors can occur when mysqld is not started when asterisk try to use it. I modified the start order of asterisk according to such behavior.

Also, and this is i think more hard to solve, asterisk can't compile the meetme application when the host compiler is gcc4.5 or gcc4.6 (host is a debian). Asterisk fail to test weakref for both version. Working correctly on gcc4.4. Asterisk is using weakref as a big part of their API.

I am available to all comments and modification.

I tested on a owrt trunk for x86 and another trunk for Atheros AR71xx/AR7240/AR913x/AR934x. (netgear WNDR3700).

Quentin Deldycke

Attachments (3)

dahdilinux.tar (10.0 KB) - added by quentindeldycke@… 7 years ago.
dahdilinux openwrt makefile.
dahditools.tar (10.0 KB) - added by quentindeldycke@… 7 years ago.
dahditools openwrt makefile
asterisk_realtime_dahdi.patch (3.1 KB) - added by quentindeldycke@… 7 years ago.
asterisk dahdi realtime patch

Download all attachments as: .zip

Change History (23)

Changed 7 years ago by quentindeldycke@…

dahdilinux openwrt makefile.

Changed 7 years ago by quentindeldycke@…

dahditools openwrt makefile

Changed 7 years ago by quentindeldycke@…

asterisk dahdi realtime patch

comment:1 follow-ups: Changed 6 years ago by zandbelt

  • Resolution set to wontfix
  • Status changed from new to closed

I don't think we should include this because dahdi requires hardware that does not match OpenWRT installations; the requirement that dahdi would be needed as a dummy timer device in order to be able to use app_meetme is obsolete in kernels 2.6 and upwards

if you want to discuss other reasons for including this you can contact me

comment:2 in reply to: ↑ 1 Changed 6 years ago by anonymous

  • Resolution wontfix deleted
  • Status changed from closed to reopened

Dahdi is used for conference in asterisk.

If we want to have such system in our box, without it is impossible. Or are there other tools for having conference in asterisk with actual stuff?

We have tested with a netgear router and it can successfully manage more than 6-7 calls at the same time without problems. It can be quite nice to have conference also.

In fact we are interested by dahdi for it's internal dummy timer. Which is used without any particular hardware.

comment:3 Changed 6 years ago by quentindeldycke@…

Sorry for anonymous. Reply to my mail address.

comment:4 Changed 6 years ago by zandbelt

  • Resolution set to obsolete
  • Status changed from reopened to closed

please read the comment: using dahdi for dummy timer purposes is obsolete

comment:5 follow-up: Changed 6 years ago by quentindeldycke@…

Meetme is needed on asterisk for conference. But Meetme need dahdi. How can we do conference without dahdi?

Thanks for your help.

comment:6 Changed 6 years ago by zandbelt

  • Resolution obsolete deleted
  • Status changed from closed to reopened

duh, I got confused: you need the dummy timer from dahdi...; I reopen the ticket but you'll need to take it up on IRC/openwrt-devel to get it in the packages tree

comment:7 in reply to: ↑ 5 Changed 6 years ago by anonymous

Replying to quentindeldycke@…:

Meetme is needed on asterisk for conference. But Meetme need dahdi. How can we do conference without dahdi?

Thanks for your help.

Hello,
I used your Makefiles to compile dahdi-linux and dahdi-tools.
I still need help with hotplug code. I still see the files in /dev are bad for dahdi.
Thanks

comment:8 Changed 6 years ago by h_surjuse@…

Hello,
I used your Makefiles to compile dahdi-linux and dahdi-tools.
I still need help with hotplug code. I still see the files in /dev are bad for dahdi.
Thanks

comment:9 in reply to: ↑ 1 Changed 6 years ago by philipp@…

Replying to zandbelt:

I don't think we should include this because dahdi requires hardware that does not match OpenWRT installations; the requirement that dahdi would be needed as a dummy timer device in order to be able to use app_meetme is obsolete in kernels 2.6 and upwards

if you want to discuss other reasons for including this you can contact me

That's not actually correct: you can have a Soekris net5501 which includes a PCI slot which many use for BRI or PRI hardware (and still fit into a 27x20x3cm package, and a 65W power envelope).

comment:10 Changed 5 years ago by juan@…

I disagree with this approach.

I'm using OpenWRT on x86 virtualized environments. For example, with KVM(x86) on Proxmox I can't use the DAHDI hardware :(

And this is only one example;)

Best of OpenWRT is to be able to install what the user needs.
It seems to me excessive to use PHP 5 ar71xx environments ;)

In some cases is necessary.

Why? Why not?

Thanks

comment:11 Changed 4 years ago by anest

actually this is wide spreaded MYTH, what about asterisk don't need dahdi in most cases! asterisk *still* used it in 99% cases!
Please re-read *carefully* this:
https://wiki.asterisk.org/wiki/display/AST/Timing+Interfaces:

"The only functionality that requires internal timing is IAX2 trunking. It may also be used when generating audio for playback, such as from a file. Even though internal timing is not a requirement for most Asterisk functionality, it may be advantageous to use it since the alternative is to use timing based on incoming frames of audio. If there are no incoming frames or if the incoming frames of audio are from an unreliable or jittery source, then the corresponding outgoing audio will also be unreliable, or even worse, nonexistent. Using internal timing prevents such unreliability."

The first phrase is creating this myth. But the last one is destroying it! and i afraid, not many people get it cause not pay attention. making sense?

so, please, PLEASE, add the dahdi back to the trunk ASAP, we need it all, who still have choppy sound in phones! its just really pain in a$$. :( and i not understand why you so resist to do so. what the real reason?
thnks

comment:12 Changed 4 years ago by anest

actually this is wide spreaded MYTH, what about asterisk don't need dahdi in most cases! asterisk *still* used it in 99% cases!
Please re-read *carefully* this:
https://wiki.asterisk.org/wiki/display/AST/Timing+Interfaces:

"The only functionality that requires internal timing is IAX2 trunking. It may also be used when generating audio for playback, such as from a file. Even though internal timing is not a requirement for most Asterisk functionality, it may be advantageous to use it since the alternative is to use timing based on incoming frames of audio. If there are no incoming frames or if the incoming frames of audio are from an unreliable or jittery source, then the corresponding outgoing audio will also be unreliable, or even worse, nonexistent. Using internal timing prevents such unreliability."

The first phrase is creating this myth. But the last one is destroying it! and i afraid, not many people get it cause not pay attention. making sense?

so, please, PLEASE, add the dahdi back to the trunk ASAP, we need it all, who still have choppy sound in phones! its just really pain in a$$. :( and i not understand why you so resist to do so. what the real reason?
thnks

comment:13 follow-up: Changed 4 years ago by anonymous

sorry for glitch with second post, remove it plz.
anyway, the dahdi works like a functional cap, between asterisk and kernel. so its still needed for timings. and timings very imported for voip.
thnx

comment:14 in reply to: ↑ 13 Changed 4 years ago by anonymous

https://wiki.asterisk.org/wiki/display/AST/Timing+Interfaces:

res_timing_dahdi - As long as the dahdi module is loaded, it will provide timing to Asterisk either through installed telephony hardware OR utilizing the kernel timing facilities when separate hardware is not available.

comment:15 Changed 4 years ago by anonymous

I tried also to install meetme, but see it's not available in attitude adjustment, what a disappointment!! What are my options ??

comment:17 Changed 4 years ago by rob@…

I think the key point here that everyone seems to be missing is:
MeetMe - Requires DAHDI for audio mixing and timing
ConfBridge - Uses Asterisk Internal timing modules (i.e. any timing source)

So if you really, really need MeetMe, then DAHDI (at least the dummy module) is required, as there is nothing in the MeetMe application that was ever updated to asterisk internal timings. (They basically abandoned it and moved onto ConfBridge).

On the other hand, ConfBridge will work without DAHDI and provides the same type of function... it just requires you to re-write your dial plans and configurations. I've also seen reports that in 1.8 ConfBridge is a bit flakey and can crash frequently...

Not sure on the best approach for OpenWRT to take in regards to this, but at least that helps clarify the information a bit.

comment:18 Changed 4 years ago by oej_edvina

As an Asterisk developer I can clarify a bit. Meetme is the primary conference application in 1.8. Confbridge is alpha-level in 1.8 add misses a lot of features that Meetme has. In later versions, confbridge is getting up to par with meetme.

A Dahdi kernel timer, like said above, improves all audio handling in Asterisk as well as powers Meetme. It can also be used for IAX2 trunking.

I see a need for a dahdi kernel module and Asterisk compiled with timing support.

comment:19 Changed 4 years ago by jow

  • Milestone changed from Attitude Adjustment 12.09 to Barrier Breaker 14.07

Milestone Attitude Adjustment 12.09 deleted

comment:20 Changed 3 years ago by jogo

  • Resolution set to moved_to_github
  • Status changed from reopened to closed

ASterisk and dahdi are now maintained here: https://github.com/openwrt/telephony.

Add Comment

Modify Ticket

Action
as closed .
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.