Hello,
I’m trying to make openser process 302 messages though
I have problems(part of .cfg file below). I’ll briefly explain the call
flow I’d like to have:
UA1 ---INVITE---> Session border controller ---INVITE--->SIP
PROXY1
SIP PROXY1---INVITE--->REDIRECT SERVER---302 MOVED--->SIP
PROXY1
SIP PROXY1---INVITE--->SIP PROXY2---INVITE---> Session
border controller---INVITE-à UA2
This is how I want it to work. However managed to get a
weird call flow were the 302 is forwarded back to the session border controller
by the proxy1 which then trigger an INVITE sent to the SIP proxy2. But that is
not what I want.
My 302 message looks like this
20:12:34.314705 IP 192.168.200.101.sip >
192.168.200.102.sip: SIP, length: 488
E.....@.@.%....e...f........SIP/2.0 302 Moved temporarily
Via: SIP/2.0/UDP 192.168.200.102;branch=z9hG4bK1658.2543f3d6.0
Via: SIP/2.0/UDP
192.168.200.10:5060;branch=z9hG4bKpis9m130dgj04b08v7k1.1
To:
"22222"<sip:22222@btsip.bt.com>;tag=cc0e227ef05fff2dd833db745f3905a6.25f2
From:
"111"<sip:11111@btsip.bt.com>;tag=SDvto0501-df614a6e
Call-ID: SDvto0501-515b91532ff7927a8345f39add52762f-06ahc50
CSeq: 1 INVITE
Contact: , sip:22222@mydomain.com;maddr=192.168.200.103:5060;side=term>
Content-Length: 0
192.168.200.101 is redirect server
192.168.200.102 is the proxy1
192.168.200.103 is proxy2
192.168.200.10 is session border controller
Here are the relevant part of the logic I use in proxy1 to
handle the 302
I’m using this to trigger the forward to the redirect
server:
lookup("aliases");
#dest is remote
if (!lookup("location")) {
t_on_failure("3");
xlog("L_INFO","redirect invite to SLS\n");
#change orig to term in request URI
$avp(s:request_uri_to_use)=$ru;
avp_subst("$avp(s:request_uri_to_use)", "/orig/term/");
avp_pushto("$ru","$avp(s:request_uri_to_use)");
#forward("udp:192.168.200.101:5060");
#exit;
rewritehostport("192.168.200.101:5060");
if(!t_relay())
{
sl_reply_error();
}
return;
and this to try to handle the 302 that is received but it
does not behave like I want:
failure_route[3]
{
xlog("L_WARN","redirect FAILUREROUTE: time_t=$Ts messageid=$mi
remark=here we are $bR\n");
if(t_check_status("3[0-9][0-9]"))
{
get_redirects("*");
xlog("L_WARN","^method=$rm ^ruri=$ru
^messageid=$mi^remark=2status is 3xx\n--$br--\nbR((($bR)))\n");
#rewritehost("$(ru{uri.maddr})");
serialize_branches(0);
}
xlog("L_WARN","nextbranch\n");
#next_branches();
#t_on_failure("3");
#t_relay();
return;
#t_reply("404", "No branches left");
}
Help would be appreciated
Cheers
erik
This message is for the designated recipient only and may contain privileged, proprietary, or otherwise private information. If you have received it in error, please notify the sender immediately and delete the original. Any other use of the email by you is prohibited.