const char *from_tag = "";
char *sql = NULL;
char *acl_context = NULL;
+ int broken_device = 0;
+
profile->ib_calls++;
switch_channel_get_name(tech_pvt->channel), network_ip, network_port, SWITCH_VERSION_FULL_HUMAN);
- if (sofia_test_pflag(profile, PFLAG_AGGRESSIVE_NAT_DETECTION)) {
+ if (profile->server_rport_level >= 2 && sip->sip_user_agent && sip->sip_user_agent->g_string &&
+ (!strncasecmp(sip->sip_user_agent->g_string, "Polycom", 7) ||
+ !strncasecmp(sip->sip_user_agent->g_string, "KIRK Wireless Server", 20) )) {
+ broken_device = 1;
+ }
+
+ if (sofia_test_pflag(profile, PFLAG_AGGRESSIVE_NAT_DETECTION) || broken_device) {
if (sip && sip->sip_via) {
const char *port = sip->sip_via->v_port;
const char *host = sip->sip_via->v_host;
to_user = force_user;
}
- if (profile->server_rport_level == 3 && sip->sip_user_agent &&
+ if (profile->server_rport_level >= 2 && sip->sip_user_agent &&
sip->sip_user_agent->g_string &&
( !strncasecmp(sip->sip_user_agent->g_string, "Polycom", 7) || !strncasecmp(sip->sip_user_agent->g_string, "KIRK Wireless Server", 20) )) {
if (sip && sip->sip_via) {