Inside the Asterisk

Using MALLOC_DEBUG to find memory misuse.

Asterisk’s MALLOC_DEBUG is a compile time tool that helps find some common memory usage problems such as memory corruption and memory leaks. The debug tool helps find similar things as valgrind but without the huge performance penalty. You enable MALLOC_DEBUG in menuselect’s “Compiler Flags” menu along with other useful compile time options like DONT_OPTIMIZE. With

Read More

RTP Security Vulnerabilities: A Retrospective

[dropshadowbox align=”none” effect=”lifted-both” width=”auto” height=”” background_color=”#ffffff” border_width=”1″ border_color=”#dddddd” ]tl;dr: We fixed the vulnerabilities. If you’d like to read the conclusion of this admittedly long saga, scroll down to the Conclusion at the end.[/dropshadowbox] Overview This month, the Asterisk project performed two security releases to address an unauthorized RTP data disclosure vulnerability in its real-time transport

Read More

Asterisk 15: Multi-stream Media and SFU

In a previous post some of the upcoming changes made for Asterisk 15 have been discussed. Specifically, one of the items mentioned is the beginnings of a multi-stream media framework. Starting in 15, groundwork has been laid that greatly enhances media flow in Asterisk. Taking advantage of this new architecture, changes have also been made

Read More

Upcoming WebRTC Improvements in Asterisk 15

In my previous post I talked about what WebRTC support is like in Asterisk 14. Since Asterisk 15 is going to be released soon let’s take a look at how WebRTC support differs in it from Asterisk 14. The “webrtc” PJSIP Configuration Option As the WebRTC specification has evolved and changed the functionality in Asterisk

Read More

WebRTC and Asterisk 14

WebRTC has been in Asterisk since Asterisk 11 and over time has evolved just as the WebRTC specification itself has evolved. The WebRTC implementation we started with is not the one we currently use. It is in thanks to the community that has contributed both issues and fixes that our WebRTC has continued to improve.

Read More

Asterisk 15 Beta Released

It is with great pleasure I wish to inform the world of the first beta release of the new Asterisk 15 branch. It’s a very exciting time to be a user of Asterisk! Asterisk 15 is arguably the biggest release of Asterisk that has happened in the last 10 or so years. There has been

Read More

Asterisk Containers and Objects (ao2)

For those of you budding Asterisk developers out there, you may find yourself browsing the source code. All over, you’ll find function calls prefixed with “ast”, like “ast_read” or “ast_poll”. But then you’ll come across something that starts with “ao2”, and you might wonder “What does that mean? Why does it have that name?”. This blog

Read More

Interview with new Asterisk developer, Ben Ford

Hello, my name is Matthew Fredrickson and I’m the project lead for the Asterisk project. We recently hired someone new onto the project to help with development. His name is Ben Ford. I’ll be interviewing him today so we can learn more about him, his background, and what brought him to want to work on

Read More

Continuous Integration with Asterisk and Docker

How much testing do we really do? A lot, and let’s face it,  Asterisk isn’t the easiest of software packages to test.  Our continuous integration environment could run over 1000 tests on a single change before it’s merged into the codebase.   Unfortunately, without a significant amount of work, mostly around directory and port coordination,

Read More

app_queue And The Case Of The In Call Agent

The app_queue module is one of the oldest modules in Asterisk and implements call queueing functionality. You configure a queue with members and a strategy and these members receive calls as appropriate. The queue knows whether a member is reachable or not by looking at the device state (the same thing you see if your

Read More
Scroll to Top