Asterisk 1.6, Now with a New Timing API

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.

Timing API

res_timing_dahdi

res_timing_pthread

Josh’s bridging code:

$ svn co http://svn.digium.com/svn/asterisk/team/file/bridging

25 thoughts on “Asterisk 1.6, Now with a New Timing API

  1. 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.

  2. Pingback: รธ A New Timing API for Asterisk, Silencing Digium Critics รธ

  3. 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?

  4. 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! ๐Ÿ˜€

  5. 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.

  6. 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!

  7. 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?

  8. Pingback: VoIP is Everywhere! » Blog Archives » ะ’ั€ะตะผั ะธ Asterisk

  9. Pingback: A New Timing API for Asterisk, Silencing Digium Critics

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s