Inside the Asterisk

Asterisk 13.8.0: Now With Easier PJSIP Install Method!

Asterisk 13.8.0 will come with a new option for enabling PJSIP functionality. This functionality is called bundling and comes courtesy of a community member, George Joseph, who you can also thank for such PJSIP additions as wizards for configuration and the PJSIP_HEADER dialplan function. Before we talk about bundling let’s take a look at the history

Read More

Push it Real Good! (or ARI Push Configuration)

Veterans of Asterisk configuration have likely dealt with static configuration files or realtime before. Since Asterisk 13.5.0, there is a new player in town: ARI push configuration. How does ARI push configuration work? ARI push configuration uses a subsystem of Asterisk called sorcery. This is the first mention of sorcery on this blog, and I

Read More

How To: Unit Testing Asterisk

So you’ve written some code for Asterisk and now you need to test it. The Asterisk project has support for both integration and unit testing. In this post we’ll talk about the latter, how to write a unit test. Luckily, for someone already modifying, or adding to, the Asterisk source writing a unit test has

Read More

Debugging SIP message traffic with PJSIP History

Debugging SIP Messages the Traditional Way Since its release, the PJSIP stack has provided logging of SIP message traffic via the pjsip set logger  CLI command. This dumps all received and transmitted SIP messages as a VERBOSE message. This is useful for two scenarios: When wanting to log all SIP messages in an Asterisk log

Read More

The Gutting of ODBC in Asterisk

When Asterisk 13.8.0 gets released, it will contain a large-scale change to the ODBC code. Those of you that use ODBC for your realtime configuration will either see no change or a performance improvement. The big change is how Asterisk manages ODBC connections: it doesn’t do it anymore. Why remove ODBC connection management? Like most

Read More

Converting from chan_agent to app_agent_pool

The move from chan_agent to app_agent_pool The idea behind chan_agent  was simple.  The agent channel created by chan_agent  acts as a proxy for the corresponding “real” channel which is logged in as the agent.  When the call connected to the agent channel is done, the proxied “real” channel goes back to waiting for the next

Read More

Integrating Asterisk with StatsD

Statistics all the Things It’s often useful to know what is happening on a production Asterisk server. While gathering machine statistics – such as disk I/O, CPU and memory usage, and other characteristics – is a relatively well understood problem, that isn’t always sufficient. It’s often useful to correlate what is happening inside of Asterisk

Read More

The PJSIP Outbound Registration ‘line’ Option

Outbound SIP registrations are a commonly used practice in Asterisk. They allow an upstream server, such as one in use by an ITSP, to know where you are and to route calls to you. This is easy to configure and see in practice. Where many people have difficulty though is identifying calls from that upstream

Read More

How to Contribute to Asterisk: Part Three

In the previous post on contributing to Asterisk, we set up the Asterisk Test Suite and wrote a test for the CDR  dialplan function that reproduced the bug in ASTERISK-25179 and failed. In this post, we will: Figure out where the bug is in the code base Write a patch that fixes it, and passes

Read More

How to Contribute to Asterisk: Part Two

In the previous post, we: Picked out a bug to fix, ASTERISK-25179 Signed up for an Asterisk account, signed a CLA, and created our profile in Gerrit Cloned Asterisk from its Git repo, installed its dependencies, built and installed it Run the Asterisk unit tests After doing all that, we concluded that we’d be better

Read More
Scroll to Top