Hello!
We use a similar mechanism and everything works fine. A new branch is
formed with RURI from 302 Contact:
failure_route[N_DISPATCH] {
if ( t_check_status("302") ) {
get_redirects("*:1");
route(RELAY);
exit;
}
...
}
ср, 21 июн. 2023 г. в 00:51, Trey Ormsbee <
Trey.Ormsbee(a)interoptechnologies.com>gt;:
Actually, I sent this way too soon. I think I tried
a bunch of different
things and got confused. This is config is working correctly and sending
correctly.
*From: *Trey Ormsbee <Trey.Ormsbee(a)interoptechnologies.com>
*Date: *Tuesday, June 20, 2023 at 2:54 PM
*To: *sr-users(a)lists.kamailio.org <sr-users(a)lists.kamailio.org>
*Subject: *How to handle 302 redirects
Hello,
Im having a hard time figuring out how to handle a 302 reidrect, the
uac_redirect modules shows a simple configuration. However for me, what it
is not doing is changing the 302 back to invite. It is sending the 302 as
is on.
if(!t_check_status("3[0-9][0-9]")) {
exit;
}
get_redirects("3:1");
t_relay();
This code just relays the 302 for me. I should add I am using this with
the DISPATCHER module so perhaps that has something to do with my issue.
Setup is this, kamailio is sitting between to sip servers, so the flow
goes like this, sip_server_a -> kamailio -> sip_server_b. sip_server_b
only responds with 302 redirects, sip_server_a does not handle 302’s at
all. Kamailio will only get invites from sip_server_a, and the redirects
from sip_server_b will only have one contact. How can I get kamailio to
reply to sip_server_a’s invite with the updated INVITE?
My config is a mesh of the dispatcher example and uac_redirect example
with this specific section handling the redirect:
# Sample failure route
failure_route[RTF_DISPATCH] {
xlog("L_NOTICE", "RTF_DISPATCH: ");
if (t_is_canceled()) {
exit;
}
# next DST - only for 500 or local timeout
if (t_check_status("500")
or (t_branch_timeout() and !t_branch_replied()))
{
if(ds_next_dst())
{
t_on_failure("RTF_DISPATCH");
route(RELAY);
exit;
}
}
if (t_check_status("302")) {
xlog("L_NOTICE", "RTF_DISPATCH: 302 ");
if (!get_redirects("1:1")) {
xlog("L_NOTICE", "RTF_DISPATCH: failed to get_redirects
");
t_reply("480", "Temporarily Unavailable");
exit;
}
xlog("L_NOTICE", "RTF_DISPATCH: got redirects ");
t_relay(“sip_server_a”,”5060”);
}
}
Any ideas what I am doing wrong is this supported? Im expecting once I
relay this message that it should be an INVITE not a 302 redirect. I cant
find any examples of anyone else really doing this.
__________________________________________________________
Kamailio - Users Mailing List - Non Commercial Discussions
To unsubscribe send an email to sr-users-leave(a)lists.kamailio.org
Important: keep the mailing list in the recipients, do not reply only to
the sender!
Edit mailing list options or unsubscribe:
--
BR,
Denys Pozniak