diff --git a/src/mod/endpoints/mod_dingaling/mod_dingaling.c b/src/mod/endpoints/mod_dingaling/mod_dingaling.c index 1de7693cfa..eaf7d8b9bf 100644 --- a/src/mod/endpoints/mod_dingaling/mod_dingaling.c +++ b/src/mod/endpoints/mod_dingaling/mod_dingaling.c @@ -33,6 +33,7 @@ #include #define DL_CAND_WAIT 10000000 +#define DL_CAND_INITIAL_WAIT 2000000 static const char modname[] = "mod_dingaling"; @@ -237,9 +238,10 @@ static void *SWITCH_THREAD_FUNC negotiate_thread_run(switch_thread *thread, void started = switch_time_now(); - if (!tech_pvt->last_cand) { + + if (switch_test_flag(tech_pvt, TFLAG_OUTBOUND)) { tech_pvt->last_cand = switch_time_now(); - next_cand = tech_pvt->last_cand; + next_cand = tech_pvt->last_cand + DL_CAND_INITIAL_WAIT; } else { next_cand = tech_pvt->last_cand + DL_CAND_WAIT; } @@ -343,7 +345,7 @@ static void *SWITCH_THREAD_FUNC negotiate_thread_run(switch_thread *thread, void return NULL; } switch_yield(1000); - //printf("WAIT %s %d %d %d\n", switch_channel_get_name(channel), switch_test_flag(tech_pvt, TFLAG_INIT), switch_test_flag(tech_pvt, TFLAG_CODEC_READY), switch_test_flag(tech_pvt, TFLAG_RTP_READY)); + printf("WAIT %s %d %d %d\n", switch_channel_get_name(channel), switch_test_flag(tech_pvt, TFLAG_INIT), switch_test_flag(tech_pvt, TFLAG_CODEC_READY), switch_test_flag(tech_pvt, TFLAG_RTP_READY)); } diff --git a/src/switch_rtp.c b/src/switch_rtp.c index c80df57386..eda5398def 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -135,6 +135,7 @@ static void handle_ice(switch_rtp *rtp_session, void *data, switch_size_t len) packet = switch_stun_packet_parse(buf, sizeof(buf)); rtp_session->last_stun = switch_time_now(); + switch_stun_packet_first_attribute(packet, attr); do { @@ -155,7 +156,7 @@ static void handle_ice(switch_rtp *rtp_session, void *data, switch_size_t len) } while (switch_stun_packet_next_attribute(attr)); - if (packet->header.type == SWITCH_STUN_BINDING_REQUEST && !strcmp(rtp_session->user_ice, username)) { + if (packet->header.type == SWITCH_STUN_BINDING_REQUEST) {// && !strcmp(rtp_session->user_ice, username)) { uint8_t buf[512]; switch_stun_packet_t *rpacket; char *remote_ip;