Hello List,
i answering myself - just for the records.
For my issues i found an solution.
1.) If sips from broken client, save "sip://" scheme to record-route (like described before) and then reformat it to the old $ru
2.) Attach a FLT_Flag to this
3.) On my dispatcher route i force "transport=udp" to it, if my FLT_Flag there is
The 60 second sound problem was an rfc4028 - session timer issue between UAC and target B2BUA (FreeSWITCH).
I could solve this with 'param name="enable-timer" value="false"' within FreeSWITCH sip-profile.
#!define FLT_SRCSIPS 19
request_route {
...
remove_hf("Route");
if (is_method("INVITE|SUBSCRIBE")) {
if ($ru =~ "^sips:") {
route(FIX_SIPS);
} else {
record_route();
}
}
...
}
route[FIX_SIPS] {
if ($ru =~ "^sips:") {
xlog("L_INFO","---FIX_SIPS-before: ru:($ru)");
$var(orig_uri) = $ru;
$ru = "sip:" + $rU + "@" + $td;
xlog("L_INFO","---FIX_SIPS-now: $rU $td ru:($ru) orig_uri:($var(orig_uri))");
record_route();
$ru = $var(orig_uri);
xlog("L_INFO","---FIX_SIPS-after: ru:($ru)");
setflag(FLT_SRCSIPS);
}
}
route[DISPATCHIVR] {
...
if(isflagset(FLT_SRCSIPS)) {
$var(orig_du) = $du;
$du = "sip:" + $rd + ":" + $rp + ";transport=udp";
xlog("L_INFO","reformate ($var(orig_du)) to ($du)");
}
...
}