Inside the Asterisk

Category: Architecture

A Video Update

Video has been a continued theme of Asterisk for some years now. We put into place the foundation to allow us to do video better, and have over time taken advantage of this and advanced things further. I thought I would take a little bit of time to reflect back on what has been done.

Read More

Asterisk ACN: Advanced Codec Negotiation

Codec negotiation in Asterisk has been one of its deepest darkest secrets.  It’s been around since the beginning and over the past two decades it’s grown and mutated into one of the least understood parts of Asterisk.  With Advanced Codec Negotiation that’s about to change!  One of the Asterisk team’s goals for 2020 was to dig

Read More

Local Channel Multistream and Re-Negotiation Support

When stream support was initially added to Asterisk we did it in the most backwards compatible way possible to ensure that we did not have to modify the entirety of Asterisk. This has allowed us to gradually improve parts of Asterisk as we’ve expanded our stream and video support. To that end the next part

Read More

Improving Core Dump Analysis

Within the Asterisk project we are constantly trying to improve our processes and data collection when a problem is encountered to reduce the back and forth for getting information. This initially started with the ast_coredumper script that is now the recommended way to collect information from a running Asterisk process or from a core dump

Read More

A Little Glimpse Into ConfBridge

The ConfBridge dialplan application is used countless times each day by people to do conferencing. Long ago this was done using the MeetMe dialplan application that utilized DAHDI functionality but with the requirement on DAHDI for it to operate an alternative was needed and ConfBridge came into existence. Have you ever wondered how it actually

Read More

Building a Channel Driver – Part 3

Review If you’ve been following this blog post series, then you should have a channel driver that’s ready to be integrated with ARI. If not, then check out Part 1 and Part 2 first. The purpose of this final chapter in the series will be to get your channel driver working with ARI, which is

Read More

Adding and Removing Media Streams

When stream support was added to Asterisk it was initially done with the focus being for SFU with a single video stream from each participant with the call starting out with video. This is a use case which is useful for a lot of people and has worked well. Coming soon, however, is the ability

Read More

PJSIP Body Generator Persistence

When PJSIP publish and subscribe functionality was created we knew we wanted to provide a pluggable mechanism to allow modules to easily extend and add new bodies. The result of this is what is known as body generators. Given a set of data they convert it into a format expected by a device, such as

Read More

Building a Channel Driver – Part 2

Review This blog post is the follow up to part 1, which can be found here. If you haven’t read it yet, that would be a good place to start, especially if you want to build your own channel driver. Here’s a recap of what we’ve done so far. We created chan_groovy.c, res_groovy.c, and res_groovy.h,

Read More

Building a Channel Driver – Part 1

Overview Today we’re going to be talking about channel drivers and how to get started on creating your own. This topic is going to be covered in three separate blog posts, so keep an eye out for the next two! In the first one, we will cover the following: some basic tips, some template code,

Read More
Scroll to Top