Hi,
We have the following setup, with a queue server, running our own queue software, a main switch and a SBC.
Queue FreeSWITCH -> Master FreeSWITCH -> OpenSIPS -> UA
When a queue dials multiple UA’s, an one of them answers, the rest is correctly sent a CANCEL with the LOOSE_RACE as X-Reason header.
This is sent from the Queue FreeSWITCH to the Master FreeSWITCH, but when the Master FreeSWITCH sends this on to the OpenSIPS, the X-Reason header gets changed to ORIGINATOR_CANCEL.
I found the code that does this, and it seems to be this block in switch_ivr_originate:
This always sets the reason to be ORIGINATOR_CANCEL, no matter what was set by the upstream server.
I know FreeSWITCH is not supposed behave like a proxy, and even OpenSIPS overwrites CANCEL reasons in its standard configuration, but would there be interest in us implementing proxying functionality, using a configuration item or channel variable, enabling this reason to be proxied through?
Kind Regards
Jon Schøpzinsky