Cause codes between call legs

Hi,

We have developed a queue system, running on FreeSWITCH, and we are running into an issue with cause codes, when calling agents.

Here is how we dial agents:

Caller → FreeSWITCH:5060
FreeSWITCH:5060 runs IVR part of call, playing back prompts etc.
FreeSWITCH:5060 dials FreeSWITCH:5080 on another SIP profile (to avoid using loopback channels)
FreeSWITCH:5080 generates a bridge string, for dialing the specific agent, as well as call pickup channels and some other items.

Now, if the caller hangs up, we want to send ORIGINATOR_CANCEL to the agents, so the call gets noted as a missed call on the agents phones.
If the one agent answers, we want to send LOSE_RACE to the other agents, so the call DOESNT get noted as a missed call.

If we use enterprise originate, to dial the individual agents, the cause code from :5060 is ignored, and LOSE_RACE is always used.
If we use “standard” originate to dial the individual agents, the cause code from :5060 is also ignored, and ORIGINATOR_CANCEL is always used.

Is there a way where we can control this better? Or is this actually a bug?

Kind Regards
Jon Schøpzinsky
StableLogic

you can’t accomplish that with enterprise originate, can you show me the bridge lines you’re using?