diff options
Diffstat (limited to 'channels')
-rw-r--r-- | channels/chan_sip.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 52e7cdd83..9364a1158 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -12775,7 +12775,13 @@ static void add_ice_to_sdp(struct ast_rtp_instance *instance, struct ast_str **a while ((candidate = ao2_iterator_next(&i))) { ast_str_append(a_buf, 0, "a=candidate:%s %d %s %d ", candidate->foundation, candidate->id, candidate->transport, candidate->priority); ast_str_append(a_buf, 0, "%s ", ast_sockaddr_stringify_host(&candidate->address)); - ast_str_append(a_buf, 0, "%s typ ", ast_sockaddr_stringify_port(&candidate->address)); + + if (candidate->type == AST_RTP_ICE_CANDIDATE_TYPE_SRFLX + && candidate->id == AST_RTP_ICE_COMPONENT_RTCP) { + ast_str_append(a_buf, 0, "%d typ ", ast_sockaddr_port(&candidate->address) + 1); + } else { + ast_str_append(a_buf, 0, "%s typ ", ast_sockaddr_stringify_port(&candidate->address)); + } if (candidate->type == AST_RTP_ICE_CANDIDATE_TYPE_HOST) { ast_str_append(a_buf, 0, "host"); |