Hi!
I have a Kamailio 1.5.2 handling 3XX messages. The commands below
are executed in a failure route. If the first contact is not reachable or
even a negative answer is received, the algorithm will call a second failure
route, executing the 't_next_contacts'. Following this logic, the server will
try several endpoints. The first 200 OK received from one this endpoints
will establish the call. If all the contacts are tried, the server will
finish the session with sending an error to the source.
get_redirects("15:15","Redirect");
if(!t_load_contacts())
{
t_reply("500", "Server Internal Error - Cannot load contacts");
exit;
};
if(!t_next_contacts())
t_reply("404", "Not found");
else
t_relay();
Ok... I found just one problem. If the 3XX message brings 5 different contacts,
(all them with different q value), Kamailio just try 4 of them.
Contact: sip:20182#556250982222@aaa.aaa.aaa.aaa;q=0.015,
sip:3441#556250982222@bbb.bbb.bbb.bbb;q=0.014,
sip:3441#556250982222@ccc.ccc.ccc.ccc;q=0.013,
sip:50014#556250982222@ddd.ddd.ddd.ddd;q=0.012,
sip:777#556250982222@eee.eee.eee.eee;q=0.011
After the 300 message, the server sends a invite to the first contact.
Seconds later, analysing the debug screen, I see:
DBG:tm:t_next_contacts: next contact is <sip:3441#556250982222@bbb.bbb.bbb.bbb
The INVITEs are sent to this IP. After some seconds the server calls the third contact:
DBG:tm:t_next_contacts: next contact is <sip:3441#556250982222@ccc.ccc.ccc.ccc
And so on until this, the last contact:
DBG:tm:t_next_contacts: next contact is <sip:777#556250982222@eee.eee.eee.eee
ERROR:core:add_avp: 0 ID or NULL NAME AVP
ERROR:tm:t_next_contacts: setting of fr_inv_timer_avp failed
The proxy sent INVITEs for all them, except the last one because this failure. The
function
't_next_contact' returns an error value. Somebody has a hint about this?
Regards,
bruno machado
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com