Using asterisk as a waiting queue for agents registered to an outside IPBX // Display problems

Home » Asterisk Users » Using asterisk as a waiting queue for agents registered to an outside IPBX // Display problems
Asterisk Users No Comments

Hi,

I’m new to Asterisk and I would like your views on my beginning of solution.
What I wanted to acheive is for Asterisk to be a simple incoming call queue
before transferring to specific phones which are not in the scope of
asterisk, but registered to the IPBX

My current constraints by the IPBX:
– I can only receive one call per line and can only place one outgoing call
per line (the second call is possible but the caller will be in hold and
will hear an other hold music…)
– IPBX does not let me place SIP Invite on behalf of the caller to the
member of the queue, it’s ok using “fromuser”
– When using “fromuser” for outgoing sip peers, phones registered to the
IPBX does not display the name of the original caller (default behavior of
asterisk when using fromuser) because when receiving a call, the phones
does an ldap request to get the caller name based on the number)

What I tried to do and it seems to be working (with my current
configuration, I have Asterisk 1.6.2.9-2+squeeze4):
– Each incoming call is redirected to a queue “simplequeue” with dynamic
member which login and logout by calling a phone number
– the phone call is passed to the agent via a local channel using Dial to
call the agent with different outgoing lines (depending if the outgoing
line is used)

First, Am i in the right way with this solution ? This was the only
solution in my mind but I don’t know much about Asterisk possibilities 🙂
This solution seems to be working except that the display of the incoming
caller id on the agent is the outgoing line of asterisk and not the
original caller id.
To bypass this, instead of using Dial inside the local channel, I tried to
use the “Transfer” command to do a SIP REFER and the display should works
correctly on my system.

Using Transfer() inside a local channel seems to be not working, i tried to
use “sip set debug on” but i can’t see any sip messages transmitted after
the “Transfer” line…

Thanks for your help.
Regards,

I have the following configuration:

[general]

# 5 incoming lines
register => 8301@192.168.1.14/in
register => 8314@192.168.1.14/in
register => 8327@192.168.1.14/in
register => 8334@192.168.1.14/in
register => 8341@192.168.1.14/in
# 3 outgoing lines
register => 8348@192.168.1.14/out
register => 8349@192.168.1.14/out
register => 8366@192.168.1.14/out
#login/logout
register => 8350@192.168.1.14/login
register => 8351@192.168.1.14/logout
defaultexpiry=3600
disallow=all
allow=alaw

[8348]
type=peer
host=192.168.1.14
fromuser=8348
fromdomain=192.168.1.14
disallow=all
allow=alaw
call-limit = 1

[8366]
type=peer
host=192.168.1.14
fromuser=8366
fromdomain=192.168.1.14
disallow=all
allow=alaw
call-limit = 1

[8349]
type=peer
host=192.168.1.14
fromdomain=192.168.1.14
fromuser=8349
disallow=all
allow=alaw
call-limit = 1

[default]
exten => in,1,Wait(1) ; Wait a second, just for fun
exten => in,n,Answer ; Answer the line
exten => in,n,Queue(simplequeue,tT);
exten => in,n(end),Hangup

exten => login,1,Answer
exten =>
login,n,AddQueueMember(simplequeue,Local/${CALLERID(num)}@support/n,1,)
exten => login,n,Playback(agent-loginok)
exten => login,n,Hangup

exten => logout,1,Answer
exten =>
logout,n,RemoveQueueMember(simplequeue,Local/${CALLERID(num)}@support/n,1,)
exten => logout,n,Playback(agent-loggedoff)
exten => logout,n,Hangup

[support]
exten => _[A-Za-z0-9].,1, Dial(SIP/${EXTEN}@8349)
exten => _[A-Za-z0-9].,n, Dial(SIP/${EXTEN}@8348)
exten => _[A-Za-z0-9].,n, Dial(SIP/${EXTEN}@8366)

[simplequeue]
musicclass=rhapsody
strategy=random