Hello,
I am trying to set simple no-answer forward scenario: Alice calls Bob and after timeout 5s forward to Carol (and additionally Carol timeout forward to Dave).
I am using Kamailio 3.2.2 default config. There is part of routing logic for no-answer forwarding:
route[RELAY] { if(is_method("INVITE")) { t_set_fr(5000); t_on_branch("BRANCH_ONE"); t_on_reply("REPLY_ONE"); t_on_failure("FAIL_ONE"); } if(!t_relay()) { sl_reply_error(); } }
branch_route[BRANCH_ONE] { $avp(divert) = $null; if($rU == "bob") { $avp(divert) = "carol"; } # second problem if($rU == "carol") { $avp(divert) = "dave"; } }
failure_route[FAIL_ONE] { if($avp(divert) != $null) { add_diversion("no-answer"); $rU = $avp(divert); route(LOOKUP); route(RELAY); } }
First problem I encountered is that I can't check $rU in failure_route (it is always set to original Request-URI - bob). Is this normal behavior or am I missing something? Because of that I have to set divert destination in branch route.
Second problem is when Carol's no-answer forward to Dave happens. Then add_diversion adds invalid diversion header because it uses Request-URI which is still set to bob.
Kind Regards, Jan