For as long as I have been involved with the project, Asterisk has used DAHDI (Zaptel) to provide timing. This has worked great, since the timing was usually provided by telephony hardware. Then, we had the ztdummy kernel module to provide timing from other parts of the kernel.
However, a lot of people have not been happy with this. Most Asterisk users don’t have telephony hardware to provide timing. Also, ztdummy does not work on all systems. Also, DAHDI was originally only for Linux.
Starting with Asterisk 1.6.1, you will no longer need DAHDI installed at all to get proper timing in Asterisk. There is a new timing API, and there are already two implementations. There is a DAHDI timing interface (res_timing_dahdi) and another (res_timing_pthread) that has no special kernel requirements.
Keep in mind, that MeetMe, the Asterisk conferencing application, still requires DAHDI. MeetMe uses the DAHDI conference mixing. It doesn’t just use it for timing. However, do not worry! Coming soon, we will have a new bridging API that provides software conference mixing, among many other benefits. The code is pretty much done. It just needs some more documentation polish and a bit of code review. Then, you will not need DAHDI for conferencing either.
Josh’s bridging code:
$ svn co http://svn.digium.com/svn/asterisk/team/file/bridging
One word: SEXY!
I been waiting for this for a LONG TIME.
Keep up the great work! =D
Can MeetMe be adapted to use this new timing without the need to use DAHDI?
Nope, as I tried to explain, MeetMe() does not only use DAHDI for timing. MeetMe() uses DAHDI for the entire conference mixing engine. So, it would be a new conferencing application to remove DAHDI from the requirements.
However, Joshua Colp (file) has already done this. He has been working on a bridging API which includes a new conferencing application that uses it. The code is very close to being ready for merging. Once it is in, conferencing in Asterisk will no longer require DAHDI, if you use the conferencing application.
I mean, something like this:
“If present use DAHDI otherwise use the internal timing”
It would rock to have 100% soft-based conferencing already.
Oh I got it now.
Thanks for explaining Russell.
Will the app_confbridge be released in 1.6.1 as well?
Pingback: รธ A New Timing API for Asterisk, Silencing Digium Critics รธ
With this new timing API I confirm that Digium listen to their users.
Keep up the great work guys!
This will be very useful for me, I tried to use MeetMe() on a XEN VM once and ztdummy.ko failed to load there… so I had to move my asterisk server to a dedicated (real computer) machine.
This means that with the new timing API, when the new application for conferencing comes out, it will work well inside a virtual machine right?
Yes. In fact, it has already been tested in Xen by some community members and has been reported to work very well.
Does this means that on the future would be easier to run Asterisk on XEN enviroments ?
ztdummy was a nightmare on such as enviroments!
… yes. ๐
> It just needs some more documentation polish
You’ll reach a wider audience if you write the docs in English ๐
/me ducks
OMFG.
Can’t wait, Asterisk 1.6 WILL ROCK so much and is going to kick ass.
Thanks for the hard work you put into this Russell, I have no doubts that 1.6.0+ will be one of the best asterisk releases ever.
Your work is very recognized and admired.
Keep it up! ๐
Hello was reading your article about 1.6.1 rtp timing and was wondering how i could get the source for the 1.6.1 for testing with our voice application.
Thank you.
This code will be in Asterisk 1.6.1. However, 1.6.1 is still in full development and does not have its own branch yet. Basically, to get the current code that will eventually become 1.6.1, you should check out the main development trunk.
$ svn co http://svn.digium.com/svn/asterisk/trunk asterisk-trunk
Is iax2 trunking supported?
Yes, it is.
Does the current 1.6.1 beta now support a conferencing application that will run in Xen environments? Be it MeetMe or something else? If something else, whats the application, way to configure it and what branch should I grab.
Thanks!
I’ve just tried to compile this. Everything works fine except if I try to compile app_confbridge… really a matter to use conferencing!
How often should I try again?
How can I be useful?
Pingback: VoIP is Everywhere! » Blog Archives » ะัะตะผั ะธ Asterisk
What is the status of this now? Asterisk is now at 1.6.1.6 and I cannot find any more recent credible info on any of this?
The status is that it’s in 1.6.1 and later, and is working well. I don’t know what else to add. ๐
Pingback: A New Timing API for Asterisk, Silencing Digium Critics