case SWITCH_CAUSE_ORIGINATOR_CANCEL:
return 487;
default:
- return 500;
+ return 480;
}
}
char *req_user, *req_host, *req_port;
char *contact_user, *contact_host, *contact_port;
char *via_rport, *via_host, *via_port;
+ char *from_port;
char uri[1024];
if (!(tech_pvt = (private_object_t *) switch_core_session_alloc(session, sizeof(private_object_t)))) {
switch_channel_set_variable(channel, "sip_from_user_stripped", (char *)from->a_url->url_user);
}
switch_channel_set_variable(channel, "sip_from_host", (char *) from->a_url->url_host);
- switch_channel_set_variable(channel, "sip_from_port", (char *) from->a_url->url_port);
+
+
+ if (!(from_port = (char *) from->a_url->url_port)) {
+ from_port = "5060";
+ }
+
+ switch_channel_set_variable(channel, "sip_from_port", from_port);
- snprintf(uri, sizeof(uri), "%s@%s:%s", (char *) from->a_url->url_user, (char *) from->a_url->url_host, (char *) from->a_url->url_port);
+ snprintf(uri, sizeof(uri), "%s@%s:%s", (char *) from->a_url->url_user, (char *) from->a_url->url_host, from_port);
switch_channel_set_variable(channel, "sip_from_uri", uri);
size_t sp = 0, len = 0, olen = 0, vtype = 0, br = 0, cpos, block = 128;
char *sub_val = NULL, *func_val = NULL;
- if (!strchr(in, '$') && !strchr(in, '^')) {
+ if (!strchr(in, '$')) {
return in;
}
if (*p == '$') {
vtype = 1;
}
- if (*p == '^') {
+ if (*(p+1) != '{') {
vtype = 2;
}
len++;
}
- if (*p == '$' || *p == '^') {
+ if (*p == '$') {
p--;
} else {
*c++ = *p;
return;
} else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "No Dialplan, Aborting\n");
- switch_channel_hangup(session->channel, SWITCH_CAUSE_DESTINATION_OUT_OF_ORDER);
+ switch_channel_hangup(session->channel, SWITCH_CAUSE_NO_ROUTE_DESTINATION);
}
}
}