Hey list,
ice_strans can wind up in a position where the local default candidate is IPv6 when (IPv6 media is enabled), but the server responds with IPv4 (if the particular server doesn't support IPv6, or its primary address is IPv4 - even if it has V6 candidates)
This patch adds a check to pj_ice_strans_sendto. When ICE negotiation has not completed successfully yet (and thus we don't have a confirmed ICE candidate pair), the patch will check to see if the address family for the address it's about to send to matches the currently selected default candidate. If not, it will attempt to elect a new local default candidate to use until ICE negotiation is complete and an actual pair is nominated.
This makes media setup much faster when pjsip offers an IPv6 but the server responds with an IPv4 default.
I don't believe this patch is quite ready as-is. It can easily wind up in a scenario where every single RTP packet iterates the candidate list to find a matching one (if no candidates match the address family needed), but I figured I'd post it here as a start.
Best,
Colin
Attachment:
ice_strans.patch
Description: Binary data
_______________________________________________ Visit our blog: http://blog.pjsip.org pjsip mailing list pjsip@xxxxxxxxxxxxxxx http://lists.pjsip.org/mailman/listinfo/pjsip_lists.pjsip.org