How can we help?

Chan_SIP and Chan_PJSIP

Let’s look at the differences between chan_sip and chan_pjsip closer and try to point all the pros and cons out of both drivers to get a better understanding of what better fits your business or personal needs.

Some history

Asterisk-based PBX and servers use a channel driver to communicate along VoIP protocols. Asterisk, at its core, is agnostic and modular; meaning that it can be adapted to different signaling protocols. It utilizes channel drivers to communicate between the core and the outside world. Concerning SIP, the workhorse for the first eight releases has been chan_sip, but that has been retired beginning with Asterisk 12.x. Chan_pjsip has been the channel driver going forward with Asterisk development. It combines the development of the PJSIP open source project and the continued development of Asterisk to be more efficient, robust, and flexible. You may choose to use chan_pjsip solely, or along with chan_sip as needed.


  chan_sip chan_pjsip

Supportability

No longer receives core support from Asterisk (in 2017)

Has Core support from Asterisk

SRV Record Lookup

Only reads the first SRV entry

As many as assigned

Architecture

Integral

Modular (easy to modify for new feature support).

Functionality

Limited

 

- WebRTC
- More NAT Aware
- Better STUN/ICE Support

 

Usability/Migration

N/A

Requires some time for adaptation for CLI system users

Signaling throughput
(beg. Asterisk 13.x)

~300 calls per second

~500 calls per second

Resources

Uses less CPU Is more efficient with system resources

Conclusion

 

Chan_sip based systems don't properly resolve our PoPs' SRV records, which contain 16 IP addresses in each IP block. It only recognizes the first IP address and doesn't take advantage of our redundancy and load balancing capabilities, leading to intermittent inbound call failures. In certain configurations, chan_pjsip is more efficient. More importantly, Asterisk does not provide support, enhancements, or security updates for chan_sip any longer. Asterisk 13.x or newer build with chan_pjsip is what we recommend.

For additional information, please utilize these resources.