Skip to main content



NDLB: No Device Left behind

Click here to expand Table of Contents

NDLB: No Device Left behind

List of all NDLB Option


Rewrites contact IP and port
Enables 'NATHACK'


<user id="100" mailbox="100">
<param name="password" value="1234"/>
<param name="vm-password" value="4321"/>
<variable name="sip-force-contact" value="NDLB-connectile-dysfunction"/>


Rewrites contact port
Enables 'TLSHACK'


This will force FreeSWITCH to send SIP responses to the network port from which they were received. Use at your own risk! For more information see NAT Traversal.

<param name="NDLB-force-rport" value="true"/>

Param that does force-rport behavior only on endpoints we know are safe to do so on ex. Polycom. This is a dirty hack to try to work with certain endpoints behind NAT which does not use the same port when it does nat, when the devices do not support rport, while not breaking devices that acutally use different ports that force-rport will break.

<param name="NDLB-force-rport" value="safe"/>


Used for when phones respond to a challenged ACK with method INVITE in the hash

<param name="NDLB-broken-auth-hash" value="true"/>


add a ;received="<ip>:<port>" to the contact when replying to register for nat handling

<param name="NDLB-received-in-nat-reg-contact" value="true"/>


By default, "a=sendrecv" is only included in the media portion of the SDP. While this is RFC-compliant, it may break functionality for some SIP devices. To also include "a=sendrecv" in the session portion of the SDP, set this parameter to true.

<param name="NDLB-sendrecv-in-session" value="true"/>


  • Introduced in rev. 15401, this was enabled by default prior to new param.

Will allow codecs to match respective name even if the given string is not correct.

ie: Linksys and Sipura phones will pass G729a by default instead of G729 as codec string therefore not matching.

If you wish to allow bad IANA names to match respective codec string, add the following param to your sip profile.

<param name="NDLB-allow-bad-iananame" value="true"/>


  • To indicate you want to parse a different SDP in 200-OK from 1XX (previous default) this is a RFC violation; Therefore, FS does not support it by default anymore. Enable this if you want that broken behaviour.
<param name="NDLB-allow-nondup-sdp" value="true"/>	


  • To allow crypto in an AVP vs SAVP which is in violation ([ERR] a=crypto in RTP/AVP, refer to rfc3711).
  • For channel variable, use rtp_allow_crypto_in_avp.
<param name="NDLB-allow-crypto-in-avp" value="true"/>


  • To add Expires header in SIP registration response
  • Please refer to FS-4708