With SER i had a config with some logic that would, in a certain situation, route a call to itself, eventually timeout and then route the call elsewhere (cancelling the transaction with the initial client). In this situation SER would add One VIA header per message passing through its script (meaning there would be two VIA headers pointing to the SER proxy when the message was sent out), however when the call timed out SER would send the CANCEL message directly to the endpoint instead of using the VIA header fields as one would expect them to be used (ie, first sending the message back to itself and then onto the destination).
With OpenSER, using the same config, in the same situation it would send the CANCEL first to itself and then to the endpoint.
I was just curious if there is a configuration option that controls this behaviour (it seems an optimization of sorts, if the next via is to myself then skip it) or is it a core difference?
Tavis
Tavis P writes:
With OpenSER, using the same config, in the same situation it would send the CANCEL first to itself and then to the endpoint.
this is the correct behavior and avoiding it would be difficult, for example, when the request is forked by the second ser instance.
-- juha
I agree, although when porting from SER to OpenSER it broke some of my logic
Which led me to discover the wonders of branch routing, which was a much better solution to my problem
Juha Heinanen wrote:
Tavis P writes:
With OpenSER, using the same config, in the same situation it would send the CANCEL first to itself and then to the endpoint.
this is the correct behavior and avoiding it would be difficult, for example, when the request is forked by the second ser instance.
-- juha