Index: call.cpp =================================================================== --- call.cpp (revision 32) +++ call.cpp (working copy) @@ -1812,6 +1812,8 @@ dest += sprintf(dest, "%s", (media_ip_is_ipv6 ? "6" : "4")); } else if(!strcmp(keyword, "call_number")) { dest += sprintf(dest, "%lu", number); + } else if(!strcmp(keyword, "call_number_6")) { + dest += sprintf(dest, "%06lu", number); } else if(!strcmp(keyword, "call_id")) { dest += sprintf(dest, "%s", id); } else if(!strcmp(keyword, "cseq")) { @@ -2246,6 +2248,19 @@ return; } + /* quick hack for UAS and loose router - needed to use routes + * in the same order as Record-Routes */ + if (bRequestIncoming) { + dialog_route_set = (char *)calloc(1, strlen(rr) + 2); + sprintf(dialog_route_set, "%s", rr); + + if (strlen (contact)) { + strcpy (next_req_url, contact); + formatNextReqUrl (next_req_url); + } + return; + } + char actual_rr[MAX_HEADER_LEN]; char targetURI[MAX_HEADER_LEN]; memset(actual_rr, 0, sizeof(actual_rr));