On 21.07.2014 14:59, Daniel-Constantin Mierla wrote:
Hello,
you may get similar results using t_cancel_callid(():
For each call you have to store the call-id, cseq and the target user somehow (e.g., using htable).
Then, when you have a registration, see if the user has an ongoing call towards him/her. If yes, cancel that transaction and you end up in failure route. Based the flags, you can see it was canceled on purpose and can do another lookup location to get now two branches.
You would need to store the initial caller address before looking up location, revert to it in failure route before looking up location again.
The behavior is not exactly the same as you requested, as first branch is canceled. But given that the branch will be called again in short time, the user might not notice anything in terms of ringing interruption.
The problem may be that there is a missed called on device 1. Maybe this can be avoided by adding the reason header with "cause=200" if the client supports it.
regards Klaus