IVR Queue announce implementation

Hello,

I would like to get information about how to get properly working queue simple implementation for my purpose.

Setup:
incoming trunk traffic via local operator - OK
terminated on Asterisk 16 using only sip/extensions/queue.conf files

sip.conf - just proper registrations - OK
extensions.conf - incoming/outgoing easy dialplan - OK
queue.conf via which Im trying to configure following:
incoming call -> play a generic sound #1

now if no agent is available -> play sound #2 (everyone is busy) with folowing periodic MOH sound #3 which should repeat cycle around 20sec and after each cycle repeat sound #2 about everyone is busy

if there is agent available it should start progress ringing while it actually is ringing on SIP friend.

Can anyone please give me an advice how its possible via queue or by diff solution?

Im able to set MOH and then each X seconds announce sound #2 but its not possible to announce it first if no agent is available.
Also its not progressing into ringing (caller still hear MOH) when it actualy ring on SIP friends (support line).

Just using dialplan its OK with Dial(SIP/reg1/{EXTEN}&SIP/reg2/{EXTEN})

BUT there is some bug in Asterisk which does NOT allow you to make outgoing call because of call-limit=1

Situation:
incoming call -> 1 & 2 is ringing, 1 picks up
2 wanna try outgoing call to call a customerwhile 1 is still talking
in logs it camplains about reached call-limit which is not true, reg no.2 does not have any active channel, because no. 1 picked up the incoming call.

Appreciate any useful helping hand, thanks
Zbynek

Friends should normally be peers.

For ringing to go through you need:

  1. the “R” option to have been given;
  2. the downstream peer to have sent a ringing indication, rather than ringback tone as early media.

There seems to me missing information (and not just a lack of a copy of the diallplan and queues.conf. You are referring to a Dial that could only be in a dialplan fragment. I suspect your queue member is a Local channel that you forgot to mention.

chan_sip is, effectively unsupported, so if it is mishandling calll count, you will need to upgrade to chan_pjsip for effective support.

call-limit is deprecated. Please see the comments in the sample sip.conf. This applies to all versions of Asterisk that are currently supported. Even if chan_sip had core support, call-limit would not be fixed.

I think you are over-specifying the queue announcement logic. Millions of man hours must go on forcing software to behave in a way it wasn’t designed to behave, just because the designer wanted to do something else and didn’t know what was already built in could do achieve the same overall goal more or less as well, but with a very much lower development cost.

Not sure I understand because my Dial is OK, call-counting is broken
As a workaround, I assume it should fit as queue.

But queue documentation is hard to understand.

So whats your suggestions?

Is it possible to somehow use simple Dialplan functions with multiple SIP Dial and achieve one incoming call per registration together with possibility to make outgoing call from available registrations?

Please see my example:

sip.conf

[trunk-pbx]
disallow=all
type=friend
username=trunk-pbx
host=[IP]
port=5060
insecure=invite,port
dtmfmode=rfc2833
context=from-pbx
directmedia=yes
qualify=yes
allow=alaw
allow=ulaw
nat=force_rport,comedia
progressinband=yes
secure=[pass]

IP phones (1-5):

[101]
type=friend
context=from-sip
host=dynamic
secret=[pass]
call-limit=1

extensions.conf

[from-pbx]
exten => _10[12345],1,Answer()
exten => _10[12345],2,Playback(sound_1)
exten => _10[12345],3,Queue(queue_test2)

queue.conf

[queue_test2]
monitor-format=wav
monitor-join
musicclass=default
strategy = ringall
periodic-announce-frequency=25
periodic-announce=sound_2
member => SIP/101
member => SIP/102
member => SIP/103
member => SIP/104
member => SIP/105

So is wanted behavior (typical IVR) possible to do via queue? Because I think Im very close.
In simple dialplan Dial(SIP/101&SIP/102 etc…) its a pitty that it doesnt behave correct and GroupCount is I think not applicable. Or am I wrong?

Thanks for suggestions.

The handling of call-limit is undefined as it is deprecated.

I can’t see why you have used it. If you want to use ringinuse=no, you should specify callcounters.

By which functionality to replace it?

Still dont know what to choose: simple Dialplan with checking availability of each SIP and dynamicly call them or dont invent the wheel and use something implemented in Asterisk.
What is the proper use for my case?

As I’ve already said, this is explained in sip.conf.sample, which is, effectively, the documentation for sip.conf. If you have not read it before, you should read it now. It is installed, as the initial contents of sip.conf, during a normal installation from source.

I suggest you use the queue call flow that Asterisk implements, rather than trying to force it to generate the exact message sequence that you have been trying to achieve.

Queue works, it rings, I can pickup.
I was jsut curirous about queue configuration coz there is too much parameters and it doesnt behave as I expect.

MOH - OK
periodic-announce OK
but dont know if I can put this announce about veryone is busy “sound” even at the beginning of queue while there is noone registered/available.
Instead of welcome and then 20sec MOH till first periodic-announce came.
Maybe I miss something.

EDIT:
like this:
announce - thanks to this option you can specify an announcement, which to be played to the agents, when they answer the incoming call. Usually this option is used to inform the agents, which queue exactly, they will answer. This is made for agents which are set in more than one queue.

but immediately when there is nobody available… havent found that option :frowning:

It looks like announce position is the nearest equivalent. The reference time for this is set to 0, rather than now() in the initialization code, so the position announcement should be made the first time round the wait my turn loop.

It’s done after the test for whether an agent can be called, so there won’t be an announcement if it goes directly into calling an agent.

Note that calls can miss a turn in some cases where an agent becomes available whilst an announcement is playing.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.