Inside the Asterisk

Category: Architecture

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

An Asterisk Video Update

Over the past few years we’ve been working to improve the video support in Asterisk. We initially started with adding stream support[1] in a backwards compatible fashion so we could individually address streams and add/remove them. Next we added support for REMB[2] to be able to control the video bitrate with supported clients. We continued

Read More

PJSIP Configuration Design

A comment that I see frequently when helping people with PJSIP is the lack of a general section (with global options) and how this causes their configuration to be larger than it needs to be. I thought I would take this blog post to explain some of the design choices that went into PJSIP configuration

Read More
Scroll to Top