Nov
03
2011
0

Asterisk: How to setup Agent Status on Polycom Idle Display

Polycom Soundpoint IP 550 idle display screen


 

This tutorial describes how to configure the idle display screens on Polycom phones to subscribe to a XHTML file that reads their Agent status from Asterisk.  When the phone is not in active use it displays the web page.

My tutorial has three components.  A specific Polycom option(found in sip.cfg) added to the configuration file of each phone, a BASH script I wrote, and a little Asterisk configuration.  This tutorial assumes you have a working Asterisk 1.6+ PBX with a basic queue setup.  It also assumes you are using automatic web provisioning of your Polycom phones.

Here is a link to my previous article on  configuring Polycom SoundPoint IP phones for Asterisk:

How to configure a Polycom SoundPoint IP phone for Asterisk on Fedora 10

To get the idle display screen to work correctly we will need to modify our standard configuration file a bit.  Navigate to the FTP/HTPP directory you provision your phones from.  Edit an Agent phone similar to the following,
(more…)

Written by mattb in: Asterisk,Scripts | Tags: , , , ,
May
04
2009
4

Asterisk 1.4.23 and Queuemetrics 1.5.2 fully support Dynamic Agent Login

The standard method of configuring users in Asterisk 1.2 and early 1.4 was to define an agent in the agents.conf configuration file.  This agent is tied to no particular phone or SIP extension.  When the Agent log’s in he is prompted for three things by the dial plan application, ‘AgentCallBackLogin()’:

1. Agent Number
2. Agent password(defined in agents.conf
3. Dial Back Extension

AgentCallBackLogin makes a lot of sense if CSR’s(Customer Service Representatives) switch phones frequently.  For some of my customers this is the case.  However, most of the Call Centers I’ve deployed have assigned seating.

So I commonly get the question,  “Is it possible to have ‘one touch login/logout’ for my agents?”  The sad answer is no.  It’s a valid question; for agents that never leave their desk why do they need to enter three prompts to login?

(more…)

May
04
2009
0

queues.conf – Asterisk 1.4.23 and Queuemetrics 1.5.2 fully support Dynamic Agent Login

[general]

monitor-type=MixMonitor
eventmemberstatus=no
eventwhencalled=no

;[default]
;
; Default settings for queues (currently unused)
;

[savelono-support]

context = savelono-queue-out
musiconhold = default
strategy = leastrecent
timeout = 10
retry = 5
wrapuptime=20
announce-frequency = 90
announce-holdtime = no
announce-round-seconds = 30
queue-youarenext = queue-youarenext
queue-thereare = queue-thereare
queue-callswaiting = queue-callswaiting
queue-thankyou = queue-thankyou
monitor-format = wav
monitor-join = yes
joinempty = yes
eventmemberstatus=no
autofill=yes
;memberdelay = 1

May
04
2009
1

extensions.conf – Asterisk 1.4.23 and Queuemetrics 1.5.2

[general]

static=yes
writeprotect=no

[bogon-calls]

exten => _x.,1,Congestion

[macro-stdexten]
;
;for dialing internal extensions

exten => s,1,Set(dynext=${DB(dynext/${ARG1})})
exten => s,n,NoOp(${dynext})
exten => s,n,NoOp(${LEN(${dynext})})
exten => s,n,GotoIf($[“${LEN(${dynext})}” = “7”]?s,100)
exten => s,n,GotoIf($[“${LEN(${dynext})}” = “10”]?s,100)
exten => s,n,GotoIf($[“${LEN(${dynext})}” = “11”]?s,100)
exten => s,n,GotoIf($[“${LEN(${dynext})}” = “6”]?s,200) ; Calls 6-digit Extension
exten => s,n,GotoIf($[“${LEN(${dynext})}” = “0”]?s,300) ; Calls 6-digit Extension
exten => s,n(dial),Dial(SIP/${dynext},20,twW) ; Ring the interface, 20 seconds maximum
exten => s,n,Goto(s-${DIALSTATUS},1) ; Jump based on status
exten => s,100,Dial(ZAP/g1/${dynext},20,twW) ; Ring the interface, 20 seconds maximum
exten => s,101,Goto(s-${DIALSTATUS},1) ; Jump based on status
exten => s,200,Goto(from-sip,${dynext},1); Calls 6-digit Extension
exten => s,300,Set(dynext=${ARG1})
exten => s,301,Goto(dial)

exten => s-BUSY,1,Voicemail(b${ARG1}) ; If busy, send to voicemail w/ busy announce
exten => s-BUSY,2,Hangup
exten => s-NOANSWER,1,Voicemail(u${ARG1}) ; If unavailable, send to voicemail
exten => s-NOANSWER,2,Hangup
exten => _s-.,1,Goto(s-NOANSWER,1) ; Treat anything else as no answer

[from-sip]

include => test
include => from-internal

[test]

exten => 1234,1,agi(matts-test.agi)
exten => 1234,2,wait(2)
;exten => 1234,n,voicemail(8888)
exten => 1234,n,hangup
[from-internal]

;Standard Internal Extensions

exten => _888X,1,Macro(stdexten,${EXTEN},sip/${EXTEN})
exten => _888X,2,Hangup

; Add Member SIP/${CALLERID(num)}
exten => 2000,1,Answer
exten => 2000,n,VMauthenticate(${CALLERID(num)}@default)
exten => 2000,n,AddQueueMember(savelono-support|SIP/${CALLERID(num)}|1|)
exten => 2000,n,Playback(agent-loginok)
exten => 2000,n,Hangup

; Remove Member – Dynamic Agent SIP/${CALLERID(num)}
exten => 2001,1,Answer
exten => 2001,n,VMauthenticate(${CALLERID(num)}@default)
exten => 2001,n,RemoveQueueMember(savelono-support|SIP/${CALLERID(num)})
exten => 2001,n,Playback(agent-loggedoff)
exten => 2001,n,Hangup

exten => 5000,1,goto(test-queue,s,1)

[savelono-queue-out]

include => from-internal

[test-queue]

exten => s,1,Queue(savelono-support)
exten => s,2,hangup