mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-02-08 08:51:50 +00:00
FS-3192 FS-3191
This commit is contained in:
parent
0cde6bc039
commit
4827374574
@ -65,19 +65,20 @@ typedef enum {
|
|||||||
TFLAG_CODEC_READY = (1 << 8),
|
TFLAG_CODEC_READY = (1 << 8),
|
||||||
TFLAG_TRANSPORT = (1 << 9),
|
TFLAG_TRANSPORT = (1 << 9),
|
||||||
TFLAG_ANSWER = (1 << 10),
|
TFLAG_ANSWER = (1 << 10),
|
||||||
TFLAG_VAD_IN = (1 << 11),
|
TFLAG_VAD_NONE = (1 << 11),
|
||||||
TFLAG_VAD_OUT = (1 << 12),
|
TFLAG_VAD_IN = (1 << 12),
|
||||||
TFLAG_VAD = (1 << 13),
|
TFLAG_VAD_OUT = (1 << 13),
|
||||||
TFLAG_DO_CAND = (1 << 14),
|
TFLAG_VAD = (1 << 14),
|
||||||
TFLAG_DO_DESC = (1 << 15),
|
TFLAG_DO_CAND = (1 << 15),
|
||||||
TFLAG_LANADDR = (1 << 16),
|
TFLAG_DO_DESC = (1 << 16),
|
||||||
TFLAG_AUTO = (1 << 17),
|
TFLAG_LANADDR = (1 << 17),
|
||||||
TFLAG_DTMF = (1 << 18),
|
TFLAG_AUTO = (1 << 18),
|
||||||
TFLAG_TIMER = (1 << 19),
|
TFLAG_DTMF = (1 << 19),
|
||||||
TFLAG_TERM = (1 << 20),
|
TFLAG_TIMER = (1 << 20),
|
||||||
TFLAG_TRANSPORT_ACCEPT = (1 << 21),
|
TFLAG_TERM = (1 << 21),
|
||||||
TFLAG_READY = (1 << 22),
|
TFLAG_TRANSPORT_ACCEPT = (1 << 22),
|
||||||
TFLAG_NAT_MAP = (1 << 22)
|
TFLAG_READY = (1 << 23),
|
||||||
|
TFLAG_NAT_MAP = (1 << 24)
|
||||||
} TFLAGS;
|
} TFLAGS;
|
||||||
|
|
||||||
typedef enum {
|
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)) {
|
if (force || !switch_test_flag(tech_pvt, TFLAG_RTP_READY)) {
|
||||||
ldl_candidate_t cand[1];
|
ldl_candidate_t cand[1];
|
||||||
char *advip = tech_pvt->profile->extip ? tech_pvt->profile->extip : tech_pvt->profile->ip;
|
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));
|
memset(cand, 0, sizeof(cand));
|
||||||
switch_stun_random_string(tech_pvt->local_user, 16, NULL);
|
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)) {
|
if (switch_test_flag(tech_pvt, TFLAG_LANADDR)) {
|
||||||
advip = tech_pvt->profile->ip;
|
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].port = tech_pvt->adv_local_port;
|
||||||
cand[0].address = advip;
|
cand[0].address = address;
|
||||||
|
|
||||||
if (!strncasecmp(advip, "stun:", 5)) {
|
if (!strncasecmp(advip, "stun:", 5)) {
|
||||||
char *stun_ip = advip + 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")) {
|
} else if (!strcasecmp(val, "both")) {
|
||||||
switch_set_flag(profile, TFLAG_VAD_IN);
|
switch_set_flag(profile, TFLAG_VAD_IN);
|
||||||
switch_set_flag(profile, TFLAG_VAD_OUT);
|
switch_set_flag(profile, TFLAG_VAD_OUT);
|
||||||
|
} else if (!strcasecmp(val, "none")) {
|
||||||
|
switch_set_flag(profile, TFLAG_VAD_NONE);
|
||||||
} else {
|
} 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);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user