Currently, I have been trying to resolve dial function in order to maker the dial plan more efficiently. The main goal is call one extension for short time, when no answer, then announce once the caller that next step is trying to reach a group of people to answer the call. So far, I have got two solutions for that:
First:
same => n,Dial(PJSIP/user,17,r) same => n,Playback(group_locate) same => n,Dial(PJSIP/user&PJSIP/user1&PJSIP/user2&PJSIP/user3,43,r) same => n,GotoIf($[ “${DIALSTATUS}” = “BUSY” ]?100-busy,1)
Second.
same => n,Dial(PJSIP/user,17,r) same => n,Dial(PJSIP/user&PJSIP/user1&PJSIP/user2&PJSIP/user3,9,m(once-announce)) same => n,Dial(PJSIP/user&PJSIP/user1&PJSIP/user2&PJSIP/user3,43,r) same => n,GotoIf($[ “${DIALSTATUS}” = “BUSY” ]?100-busy,1)
Both cases are far from satisfying outcome. Currently, it is working like that, however maybe is someone who can have a look at the problem and point out a simpler solution.
On Sunday 21 September 2025 at 17:20:21, jokantor via Asterisk Community
wrote:
The main goal is call one extension for short time, when no answer, then
announce once the caller that next step is trying to reach a group of people
to answer the call.
Both cases are far from satisfying outcome.
Please explain “far from satisfying”. What is not working the way you want /
expect? What is happening that you do not want / expect?
Currently, it is working like that, however maybe is someone who can have a
look at the problem and point out a simpler solution.
What is the problem you refer to?
Antony
–
“I estimate there’s a world market for about five computers.”
Well, in terms of stationary handset (wire connection) not much of a problem, however when It comes to VoIP apps on android and workstations it does cause problems.
First scenario:
Single phone rings 13 seconds, then goes off during the voice announcement, no ringing (9 seconds in this case) to the caller and then ring again.
The second scenario:
First extension is ringing 13s, then straight goes to the announcement, during that time it keeps ringing for the 9 seconds for the all group, subsequently, it rings again until it gets an answer, or goes to voicemail.
Answering the call just about when asterisk stop dialling and redial, creates double log, scenario 1 with a calling gap or 9 seconds for one extension, and triple log (in scenario 2 for one extension), and double log for each extension defined as a group.
Moreover, the receivers have double calling popups (android app) of the incoming call and network lag creates a concern itself.
I was thinking about one line of dial sequence that can ring one extension, then go to voice announcement, during that time is ringing for the extensions group and then go to voicemail is if unanswered. That avoid the double, of triple log problem and run the operation more smoothly.
There’s not really one Dial option that will accomplish this. Your current solutions seem to solve the problem, but if you are looking for alternatives, look at queues. You can specify timeouts, announcement intervals, ring strategies, etc. Maybe this will produce the outcome you are looking for.
I used a Local channel to play the prompt before dialing and set /n to prevent hangup. That way the prompt plays fully before the call bridges to the callee.