SIP network deployment made easy thanks to mDNS
Thanks to recent developments performed by our engineering team, Liblinphone and Flexisip are now able to use Multicast DNS in a local area network.
Multicast DNS, or simply abreviated mDNS, is IETF RFC 6762, and presents as follows:
"As networked devices become smaller, more portable, and more ubiquitous, the ability to operate with less configured infrastructure is increasingly important. In particular, the ability to look up DNS resource record data types (including, but not limited to, host names) in the absence of a conventional managed DNS server is useful. Multicast DNS (mDNS) provides the ability to perform DNS-like operations on the local link in the absence of any conventional Unicast DNS server."
What are the benefits of using mDNS for SIP communications ?
In many use-cases, SIP clients and servers are not deployed for an usage in public Internet, but for being used in a local area network. Typical examples includes: SIP cameras, door-entry panels, in a house or building, or SIP clients in a medium-size company office network.
In such use-cases it may be painful or not suitable to use unicast DNS, because it requires configuration to be performed by a network administrator who has the specific knowledge for the local network.
mDNS reduces configuration to its minimum, allowing a "plug and play" deployment of a SIP network in a local area network, without the need for an administator.
How does it work ?
A Liblinphone client application can dynamically resolve the SIP domain it belongs to in order to discover available SIP servers and connect to them. There can be of course several SIP servers advertised for the same domain in order to satisfy high availability constraints, in a way exactly similar to what Unicast DNS SRV records can do for public domains.
Our Flexisip SIP server has been added with mDNS capabilities so that the SIP service it is running gets advertised through mDNS, and in order to resolve other SIP nodes in the local network.
mDNS is available as a build-time option in Liblinphone mobile SDKs with versions greater than 4.0, and in development branch ("master") of Flexisip and Linphone-desktop projects.