Hi Henning
did you played already with
- local_cancel_reason
- e2e_cancel_reason
from the tm module?
No, but thank you for hinting towards the possibilities and documentation on how TM handles cancel.
So documenting my findings for the mail archive :-)
Cancel is not routed, but always generated locally (as a result of an answered branch or of an inbound CANCEL). In the case of e2e cancel the Reason header is copied from the inbound cancel to the generated outbound branch CANCEL. This is why remove_hf() does not work.
I would prefer not to disable copying the reason e2e_cancel_reason => 0
But rather only disable it, when the wrong reason, causing missed calls not to be logged at the destination, sent by iPhones, is encountered.
t_set_no_e2e_cancel_reason(1) would require to be set at the start of the transaction (INVITE) when the bogus reason is not yet known.
I reverted to call msg_apply_changes() after removing the header in the inbound CANCEL matching the iPhone text and cause. This works.
I just hope calling msg_apply_changes() on something as simple as CANCEL will not break anything else. I guess not, as only the Reason header is copied from the original cancel request.
Mit freundlichen Grüssen
-Benoît Panizzon-