Hello,

 

I’ve setup two Kamailio machines, one which does all the processing and the second one which always replies with a 500 Server Internal Error, to test my Dispatcher fail-over.

When routing a call, the call is always routed to the second Kamailio first, to test the fail-over.

 

What happens in this scenario is the 500 is received by the main Kamailio and the 500 message is duplicated to the capture server. After this the failure_route kicks in and the 500 is obviously never sent back to the initiator.

The changes made to the 500 message  (adding a new header), in onreply_route, aren’t present when the message is duplicated to the capture server, because the original 500 message is duplicated instead of the modified one.

 

I tried the following things, but none of them worked:

-          Adding the header and calling sip_trace();, but this doesn’t work since sip_trace() duplicated the message prior to changes made to it.

-          Msg_apply_changes(), doesn’t work either, since I can’t use it in onreply_route

-          Append_to_reply(), cannot be used from onreply_route

 

Appending new headers to replies works, but only when the reply is also sent back to the initiator, since I have the setflag(22) set. This makes sure the processed messages are also duplicated.

In this case the 500 is never sent back.

 

Anyone have an idea how to solve this?

 

Regards,


Grant