I realized that that even with Mark Cancelled Calls as Answered disabled, if the call was actually answered by another agent in the queue / ring group it will mark the call as answered (completed elsewhere),
After doing some research I found that asterisk default cancel cause is “completed elsewhere” and you can change it by adding the Q dial option, so I created a custom dial profile with the Q option but it still didn’t work since VitalPBX is only applying the custom dial profile when dialing the endpoint/peer and not when dialing the local channel which in our case is the channel sending the Cancel,
So I created a custom ring group which calls the local channel with the Q option and it works.
same => n,Dial(Local/102@T52_ring-group-dial/n&Local/104@T52_ring-group-dial/n,15,rtTU(clean-variables)Q(NO_ANSWER))
Can this please be implemented in he ring groups for when Mark Cancelled Calls as Answered is disabled, or can there perhaps be an additional option in the ring group to Not Mark Answered Calls as Answered Elsewhere ?
I would suggest even further, to perhaps allow selecting in a ring group or queue one of the custom dial profiles, and that should apply to the initial dial string as mentioned above.
Are the VitalPBX team considering adding this option?
The best would probably be like @PitzKey said, to allow adding custom dial options for ring groups, and custom queue options (like gosub etc.) for queues.
In January, I had raised a ticket for it and they said they would consider the request, and to add it as a wishlist, which I did. It would be such a fantastic feature, as lots of customers ask if the system can do just this.
We thought we could turn on ‘Notify Missed Calls’ for queues under the extension and so that any missed calls made to the queue would be notified to the agent by email.
In testing it seems that if another agent answers the calls, then the missed call notification still fires, even though technically the call was not missed. It appears that it does not honor the ‘call answered elsewhere’ header from asterisk. It would be great if the queue had the option to email about missed calls , that would be perfect.
EDIT:
Rereading the original post this may not be exactly the same thing as the original poster is asking…not sure.
It is possible to customize the SIP hangup cause using the Q(cause) option when working with Ring Groups, as they leverage the Dial() application directly. However, this is not currently supported in Queues, due to how Asterisk handles call distribution internally.
Here are the key reasons:
Queues use internal Asterisk logic to dial agents, which wraps around the Dial() application but does not expose all its parameters in the same way.
Specifically, the Queue application does not support passing options like Q(cause) to the individual agent dial attempts, which limits control over the SIP Reason headers sent when a call is cancelled or answered elsewhere.
That said, based on our testing:
When one agent answers and others are cancelled, Asterisk sends the following header: