Comparing Asterisk and OpenSER

於英朗
2023-12-01

If you work with IP telephony, maybe you haven’t heard about OpenSER, but certainly you have heard about Asterisk. Well, I love a polemic headline and I have seen this question asked in the forums many times. So, I will dare to compare these two very popular software’s dedicated to the VoIP market. The idea here is not to show you which one is the best, but mainly how they are different from each other. Below is a comparison topic by topic.

Architecture

Asterisk is a Back to Back User Agent (B2BUA), while OpenSER is a SIP Proxy. This makes all the difference between them. The SIP proxy architecture is faster than a B2BUA because it deals only with signaling. In the other hand, the B2BUA, even being slower, handles the media and it is capable of several services not available in a SIP proxy such as Codec Translation (i.e. G729G.711), Protocol Translation (SIPH323) and services related to media such as IVR, Queuing, Text to Speech and Voice Recognition.

Nat Traversal

OpenSER deals a lot better with NAT traversal then Asterisk. You can send the media from your customer directly to the provider using OpenSER in most cases (non-symmetric NAT). Manipulating directly the SIP protocol allows you to handle special cases such as when you have two customers behind the same NAT device and want to send the media directly between them.

Load Balancing

OpenSER has specific load balancing algorithms with hash. So it can load balance by the “ruri”, “username”, “call-id” and some other properties. It can use redirect messages consuming very few resources from the load balancer machine. Failover is part of the solution, things you won’t find on Asterisk, but are complementary. Low level access to SIP header and transactionsOpenSER gives you low level access to the protocol. You can handle all the requests and responses. So it is possible, most times, to translate between two incompatible versions of SIP, handling directly the SIP headers, requests and responses. An important feature when you have SIP implementations from different manufacturers, sometimes, incompatible between each other.

Integration with Radius, Diameter and LDAP

OpenSER has built-in integration with LDAP, Radius and Diameter. While this is also possible with Asterisk, the implementation on OpenSER is developed in C, integrated as a module and is part of the OpenSER distribution, (no perl, no python, no third-party modules).

Carrier class routing

The module CARRIERROUTE implements sophisticated algorithms to route calls to the PSTN. Some times VoIP providers have tables with more then 40.000 routes. In this case you will absolutely need an specific routing module capable of failback, blacklists and some other features specific to VoIP providers.

Media Services

OpenSER is a SIP Proxy and is not capable of any media related services. So it is not possible to create, using OpenSER, systems such as VoiceMail, IVR, TTS and Voice Recognition. However, it is possible to integrate any of these services to the platform using a separate Media Server (usually, Asterisk, Yate and FreeSwitch). This is by design, and it is the way the SIP protocol is defined in the standards (RFC3261). Connectivity to the PSTN

OpenSER always need a SIP gateway to connect to the PSTN. There is no possibility to install telephony cards in the server. In several cases Asterisk is used as the PSTN gateway for OpenSER.

Conclusion

I love this discussion, because Asterisk and OpenSER completes one another. OpenSER provides rock solid SIP services to VoIP providers, it is capable to handle large volumes of calls, to load balance SIP, to solve advanced NAT scenarios and to deal with SIP signaling as no other. Asterisk is a B2BUA, very strong in the PBX market. It is simpler to configure and can handle low to medium volumes. Asterisk can be used as a “single box does it all”, while OpenSER requires all the architectural components of SIP to work. OpenSER is a “hit” in the VoIP provider market and in Universities. Asterisk PBX is a success in the IP PBX market, and it is getting a piece of the small to medium VoIP providers. Usually you start using OpenSER when you have some special need, such as load balancing or when you have large volumes such as more than a thousand registered users. Choose wisely

 类似资料:

相关阅读

相关文章

相关问答