From 53f86de5d3872bcbe7e9d11b427a03f8dfb12695 Mon Sep 17 00:00:00 2001 From: Benny Prijono Date: Fri, 9 Dec 2011 07:19:25 +0000 Subject: Fixed #1416: Allow application to send data after ICE negotiation fails git-svn-id: http://svn.pjsip.org/repos/pjproject/branches/1.x@3906 74dad513-b988-da41-8d7b-12977e46ad98 --- pjmedia/src/pjmedia/transport_ice.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'pjmedia/src') diff --git a/pjmedia/src/pjmedia/transport_ice.c b/pjmedia/src/pjmedia/transport_ice.c index 3e6db887..9b777501 100644 --- a/pjmedia/src/pjmedia/transport_ice.c +++ b/pjmedia/src/pjmedia/transport_ice.c @@ -402,7 +402,9 @@ static pj_status_t encode_session_in_sdp(struct transport_ice *tp_ice, * the session, in this case we will answer with full ICE SDP and * new ufrag/pwd pair. */ - if (!restart_session && pj_ice_strans_sess_is_complete(tp_ice->ice_st)) { + if (!restart_session && pj_ice_strans_sess_is_complete(tp_ice->ice_st) && + pj_ice_strans_get_state(tp_ice->ice_st) != PJ_ICE_STRANS_STATE_FAILED) + { const pj_ice_sess_check *check; char *attr_buf; pjmedia_sdp_conn *conn; @@ -532,7 +534,10 @@ static pj_status_t encode_session_in_sdp(struct transport_ice *tp_ice, pjmedia_sdp_attr_add(&m->attr_count, m->attr, attr); } - } else if (pj_ice_strans_has_sess(tp_ice->ice_st)) { + } else if (pj_ice_strans_has_sess(tp_ice->ice_st) && + pj_ice_strans_get_state(tp_ice->ice_st) != + PJ_ICE_STRANS_STATE_FAILED) + { /* Encode all candidates to SDP media */ char *attr_buf; unsigned comp; -- cgit v1.2.3