Review Board 1.7.16

ICE, STUN, and TURN Support

Review Request #1891 - Created April 30, 2012 and submitted

Joshua Colp
This patch adds support for the following:

ICE attribute parsing and generation in chan_sip
Usage of the ICE interface in chan_sip
ICE support within res_rtp_asterisk
STUN support within res_rtp_asterisk for getting the server reflexive address
TURN support within res_rtp_asterisk for relaying traffic when needed
Additional configuration options for the above

One area which could use some feedback is the pjproject integration. Should we try to use their build system as I have done to integrate things, or try to roll their stuff into ours further?

If you would like some background on ICE and the actual support here take a gander at the wiki page located at - hopefully it proves useful to you.
Tested various scenarios using Bria and X-Lite behind multiple NATs, different NATs, different internet connections but locally reachable, etc. It works well.
Review request changed
Updated (May 29, 2012, 9:16 a.m.)
Incorporated latest review feedback.
Posted (June 14, 2012, 4:41 a.m.)


/channels/chan_sip.c (Diff revision 3)
processed = TRUE; still needs to be set if any of these succeed.  If not, the message will claim that the parameter is unsupported.
  1. Fixed.
Ship it!
Posted (June 27, 2012, 8:59 a.m.)
Looks good!
/res/res_rtp_asterisk.c (Diff revision 3)
It would be nice if bzero was set to something unusable again here (preferably the warning used before) so that it can not be used later in the file. runs on a server provided by Digium, Inc. and uses bandwidth donated to the open source Asterisk community by API Digital Communications in Huntsville, AL USA.
Please report problems with this site to