FS-3192 FS-3191

This commit is contained in:
Brian West 2011-03-27 22:35:26 -05:00
parent 0cde6bc039
commit 4827374574
1 changed files with 23 additions and 16 deletions

View File

@ -65,19 +65,20 @@ typedef enum {
TFLAG_CODEC_READY = (1 << 8),
TFLAG_TRANSPORT = (1 << 9),
TFLAG_ANSWER = (1 << 10),
TFLAG_VAD_IN = (1 << 11),
TFLAG_VAD_OUT = (1 << 12),
TFLAG_VAD = (1 << 13),
TFLAG_DO_CAND = (1 << 14),
TFLAG_DO_DESC = (1 << 15),
TFLAG_LANADDR = (1 << 16),
TFLAG_AUTO = (1 << 17),
TFLAG_DTMF = (1 << 18),
TFLAG_TIMER = (1 << 19),
TFLAG_TERM = (1 << 20),
TFLAG_TRANSPORT_ACCEPT = (1 << 21),
TFLAG_READY = (1 << 22),
TFLAG_NAT_MAP = (1 << 22)
TFLAG_VAD_NONE = (1 << 11),
TFLAG_VAD_IN = (1 << 12),
TFLAG_VAD_OUT = (1 << 13),
TFLAG_VAD = (1 << 14),
TFLAG_DO_CAND = (1 << 15),
TFLAG_DO_DESC = (1 << 16),
TFLAG_LANADDR = (1 << 17),
TFLAG_AUTO = (1 << 18),
TFLAG_DTMF = (1 << 19),
TFLAG_TIMER = (1 << 20),
TFLAG_TERM = (1 << 21),
TFLAG_TRANSPORT_ACCEPT = (1 << 22),
TFLAG_READY = (1 << 23),
TFLAG_NAT_MAP = (1 << 24)
} TFLAGS;
typedef enum {
@ -966,7 +967,7 @@ static int do_candidates(struct private_object *tech_pvt, int force)
if (force || !switch_test_flag(tech_pvt, TFLAG_RTP_READY)) {
ldl_candidate_t cand[1];
char *advip = tech_pvt->profile->extip ? tech_pvt->profile->extip : tech_pvt->profile->ip;
char *err = NULL;
char *err = NULL, *address = NULL;
memset(cand, 0, sizeof(cand));
switch_stun_random_string(tech_pvt->local_user, 16, NULL);
@ -975,10 +976,14 @@ static int do_candidates(struct private_object *tech_pvt, int force)
if (switch_test_flag(tech_pvt, TFLAG_LANADDR)) {
advip = tech_pvt->profile->ip;
}
address = advip;
if(address && !strncasecmp(address, "host:", 5)) {
address = address + 5;
}
cand[0].port = tech_pvt->adv_local_port;
cand[0].address = advip;
cand[0].address = address;
if (!strncasecmp(advip, "stun:", 5)) {
char *stun_ip = advip + 5;
@ -2110,8 +2115,10 @@ static void set_profile_val(mdl_profile_t *profile, char *var, char *val)
} else if (!strcasecmp(val, "both")) {
switch_set_flag(profile, TFLAG_VAD_IN);
switch_set_flag(profile, TFLAG_VAD_OUT);
} else if (!strcasecmp(val, "none")) {
switch_set_flag(profile, TFLAG_VAD_NONE);
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invald option %s for VAD\n", val);
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid option %s for VAD\n", val);
}
}
}