Asterisk-queue

From 탱이의 잡동사니
Revision as of 10:04, 11 November 2015 by Pchero (talk | contribs) (→‎show)
Jump to navigation Jump to search

Overview

Asterisk queue 명령어 정리

Basic

Asterisk 의 Queue 는 디바이스(채널)의 상태 정보에 따라 민감하게 반응한다. 이런 이유로, 각각의 Asterisk 에서 Queue 에 채널을 추가하기 위해서는 먼저 채널 드라이버에서 Queue 모듈에 적절한 상태정보를 줄 수 있는지를 확인해야 한다. 하지만, 각각의 채널드라이버(SIP, IAX, ...)에서 사용되는 채널의 상태 정보들이 다를 수 있다. 그리고, 각각의 모듈에서 Queue 로 채널(디바이스)상태 정보를 전달할 수 있도록 하는 적절한 옵션을 설정해줘야 한다.

chan_sip

sip.conf 파일에 다음을 추가해야 한다.

[general]
callcounter=yes                 ; enable device states for SIP devices

show

현재 등록된 모든 queue 정보를 확인한다. show 뒤에 특정 Queue 이름을 입력하면 입력된 queue에 대한 내용만 나타난다.

vpbx11*CLI> queue show Camp200
Camp200 has 0 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:100, C:0, A:0, SL:0.0% within 0s
   Members: 
      user1 (Local/200@DialCamp) (Not in use) has taken no calls yet
   No Callers
Camp200 : 큐 이름.
has 0 calls : 현재 큐에 인입되어 분배 대기중인 콜의 갯수.
(max unlimited) : 큐에 인입되어 대기 가능한 최대 콜의 갯수.
'ringall' stratergy : 큐에 설정된 콜 분배 방식.
0s holdtime : 큐에 인입되는 콜들의 분배되기까지의 평균 대기 시간.
0s talktime : 큐에 인입되는 콜들의 분배 후 평균 통화 시간.
W : 큐 가중치. 하나의 상담원(채널)이, 여러개의 큐에 대기중이고, 여러개의 큐에 동시에 콜이 인입되었을 경우, 가중치가 높은(많은) 수록, 큐에 인입된 콜이 먼저 분배될 확률이 높아진다.
C : 큐에 인입되어 정상적으로 분배된 콜 수.
A : 큐에 인입되었지만 정상적으로 분배되지 못한 콜 수.
SL : Service level check interval 시간동안 인입된 콜의 정상 분배율 %.
within 0s : Service level check interval

add

queue 에 Member 를 추가한다.

*CLI> queue add member <channel> to <queue> [[[penalty <penalty>] as <membername>] state_interface <interface>]
<channel> : Queue 에 추가하고자 하는 channel 정보. SIP/0000FFFF0003 과 같은 정보를 말한다.
<queue> : 멤버가 추가될 Queue 이름.
<penalty> : 추가되는 멤버가 가지게 될 패널티
<membername> : 추가되는 멤버에 설정하고자 하는 이름
state_interface : 추가되는 채널의 상태정보를 설정한다
*CLI> queue add member SIP/0000FFFF0001 to support
Added interface 'SIP/0000FFFF0001' to queue 'support'

*CLI> queue show support
support
has 0 calls (max unlimited) in 'rrmemory' strategy
(0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
Members:
SIP/0000FFFF0001 (dynamic) (Not in use) has taken no calls yet
No Callers

remove

queue에서 멤버를 삭제한다.

queue remove member SIP/0000FFFF0001 from support
Removed interface 'SIP/0000FFFF0001' from queue 'support'

pause

queue 에 설정된 멤버를 일시정지 한다

*CLI> queue pause member SIP/0000FFFF0001 queue support reason DoingCallbacks
paused interface 'SIP/0000FFFF0001' in queue 'support' for reason 'DoingCallBacks'

*CLI> queue show support
support
has 0 calls (max unlimited) in 'rrmemory' strategy
(0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
Members:
SIP/0000FFFF0001 (dynamic) (paused) (Not in use) has taken no calls yet
No Callers

unpause

일시정지 되어 있는 멤버를 다시 복귀시킨다.

*CLI> queue unpause member SIP/0000FFFF0001 queue support reason off-break
unpaused interface 'SIP/0000FFFF0001' in queue 'support' for reason 'off-break'

*CLI> queue show support
support
has 0 calls (max unlimited) in 'rrmemory' strategy
(0s holdtime, 0s talktime), W:0, C:0, A:0, SL:0.0% within 0s
Members:
SIP/0000FFFF0001 (dynamic) (Not in use) has taken no calls yet
No Callers