chan_sip: Fix RTCP port for SRFLX ICE candidates

This corrects one-way audio between Asterisk and Chrome/jssip as a
result of Asterisk inserting the incorrect RTCP port into RTCP SRFLX
ICE candidates. This also exposes an ICE component enumeration to
extract further details from candidates.

(closes issue ASTERISK-21383)
Reported by: Shaun Clark
Review: https://reviewboard.asterisk.org/r/2967/


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@402345 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kinsey Moore
2013-11-01 12:31:49 +00:00
parent 45a6969b3c
commit 2d5debf45c
3 changed files with 28 additions and 19 deletions

View File

@@ -322,10 +322,16 @@ enum ast_rtp_ice_candidate_type {
AST_RTP_ICE_CANDIDATE_TYPE_RELAYED, /*!< ICE relayed candidate, which represents the address allocated in TURN server. */
};
/*! \brief ICE component types */
enum ast_rtp_ice_component_type {
AST_RTP_ICE_COMPONENT_RTP = 1,
AST_RTP_ICE_COMPONENT_RTCP = 2,
};
/*! \brief Structure for an ICE candidate */
struct ast_rtp_engine_ice_candidate {
char *foundation; /*!< Foundation identifier */
unsigned int id; /*!< Component identifier */
enum ast_rtp_ice_component_type id; /*!< Component identifier */
char *transport; /*!< Transport for the media */
int priority; /*!< Priority which is used if multiple candidates can be used */
struct ast_sockaddr address; /*!< Address of the candidate */