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?