Asterisk-queue: Difference between revisions
(→show) |
(→show) |
||
(12 intermediate revisions by the same user not shown) | |||
Line 3: | Line 3: | ||
== Basic == | == Basic == | ||
queue 명령어는 생성되어 있는 Queue 의 멤버 및 현재 상황 정보를 확인/추가/수정/삭제 할 때 사용하는 명령어이다. | |||
=== Channel state === | |||
Asterisk 의 Queue 는 디바이스(채널)의 상태 정보에 따라 민감하게 반응한다. 이런 이유로, 각각의 Asterisk 에서 Queue 에 채널을 추가하기 위해서는 먼저 채널 드라이버에서 Queue 모듈에 적절한 상태정보를 줄 수 있는지를 확인해야 한다. 하지만, 각각의 채널드라이버(SIP, IAX, ...)에서 사용되는 채널의 상태 정보들이 다를 수 있다. 그리고, 각각의 모듈에서 Queue 로 채널(디바이스)상태 정보를 전달할 수 있도록 하는 적절한 옵션을 설정해줘야 한다. | Asterisk 의 Queue 는 디바이스(채널)의 상태 정보에 따라 민감하게 반응한다. 이런 이유로, 각각의 Asterisk 에서 Queue 에 채널을 추가하기 위해서는 먼저 채널 드라이버에서 Queue 모듈에 적절한 상태정보를 줄 수 있는지를 확인해야 한다. 하지만, 각각의 채널드라이버(SIP, IAX, ...)에서 사용되는 채널의 상태 정보들이 다를 수 있다. 그리고, 각각의 모듈에서 Queue 로 채널(디바이스)상태 정보를 전달할 수 있도록 하는 적절한 옵션을 설정해줘야 한다. | ||
chan_sip.so 모듈의 경우, sip.conf 파일에 다음 옵션을 활성화해야 한다. | |||
sip.conf 파일에 | |||
<pre> | <pre> | ||
[general] | [general] | ||
callcounter=yes ; enable device states for SIP devices | callcounter=yes ; enable device states for SIP devices | ||
</pre> | |||
=== Create Queue === | |||
Queue 의 생성 및 삭제 를 위해서는 queues.conf 설정파일을 수정해야한다. cli 로는 생성/삭제가 불가능하다. | |||
자세한 내용은 [[Asterisk-queues.conf]]를 참고하면 된다. | |||
== Module == | |||
Queue 모듈 load/unload/reload 를 위해서는 다음의 명령어를 입력하면 된다. | |||
<pre> | |||
pluto*CLI> module load app_queue.so | |||
pluto*CLI> module unload app_queue.so | |||
pluto*CLI> module reload app_queue.so | |||
</pre> | |||
== help == | |||
<pre> | |||
pluto*CLI> help queue | |||
queue add member -- Add a channel to a specified queue | |||
queue reload {parameters|members|rules|all} -- Reload queues, members, queue rules, or parameters | |||
queue remove member -- Removes a channel from a specified queue | |||
queue reset stats -- Reset statistics for a queue | |||
queue set penalty -- Set penalty for a channel of a specified queue | |||
queue set ringinuse -- Set ringinuse for a channel of a specified queue | |||
queue show -- Show status of a specified queue | |||
queue show rules -- Show the rules defined in queuerules.conf | |||
queue {pause|unpause} member -- Pause or unpause a queue member | |||
</pre> | </pre> | ||
== show == | == show == | ||
현재 등록된 모든 queue 정보를 확인한다. show 뒤에 특정 Queue 이름을 입력하면 입력된 queue에 대한 내용만 나타난다. | 현재 등록된 모든 queue 정보를 확인한다. show 뒤에 특정 Queue 이름을 입력하면 입력된 queue에 대한 내용만 나타난다. 큐/멤버/콜 세가지 항목으로 구분되어 나타낸다. | ||
<pre> | <pre> | ||
vpbx11*CLI> queue show Camp200 | |||
Camp200 has 1 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:100, C:0, A:2, SL:0.0% within 0s | |||
Members: | |||
user1 (Local/200@DialCamp) (Ringing) has taken 1 calls (last was 6 secs ago) | |||
Callers: | |||
1. SIP/201-test-1-0000001b (wait: 0:03, prio: 0) | |||
</pre> | |||
'''Queue info''' | |||
큐 정보를 나타낸다. | |||
: Camp200 : 큐 이름. | |||
: has 1 calls : 현재 큐에 인입되어 분배 대기중인 콜의 갯수. | |||
: (max unlimited) : 큐에 인입되어 대기 가능한 최대 콜의 갯수. | |||
: 'ringall' stratergy : 큐에 설정된 콜 분배 방식. | |||
: 0s holdtime : 큐에 인입되는 콜들의 분배되기까지의 평균 대기 시간. Exponential average 방식을 사용해서 평균 시간을 계산하기 때문에 일반적인 평균 구하는 시간과는 다를 수 있다. | |||
: 0s talktime : 큐에 인입되는 콜들의 분배 후 평균 통화 시간. Exponential average 방식을 사용해서 평균 시간을 계산하기 때문에 일반적인 평균 구하는 시간과는 다를 수 있다. | |||
: W : 큐 가중치. 하나의 상담원(채널)이, 여러개의 큐에 대기중이고, 여러개의 큐에 동시에 콜이 인입되었을 경우, 가중치가 높은(많은) 수록, 큐에 인입된 콜이 먼저 분배될 확률이 높아진다. | : W : 큐 가중치. 하나의 상담원(채널)이, 여러개의 큐에 대기중이고, 여러개의 큐에 동시에 콜이 인입되었을 경우, 가중치가 높은(많은) 수록, 큐에 인입된 콜이 먼저 분배될 확률이 높아진다. | ||
: C : | : C : 큐에 인입되어 정상적으로 분배된 콜 수. | ||
: A : 큐에 | : A : 큐에 인입되었지만 정상적으로 분배되지 못한 콜 수. | ||
: SL : Service level check interval 시간동안 인입된 콜의 정상 분배율 %. | : SL : Service level check interval 시간동안 인입된 콜의 정상 분배율 %. | ||
: within 0s : Service level check interval | |||
'''Members info''' | |||
큐에 등록된 멤버 정보를 나타낸다. | |||
: user1 : Username | |||
: (Local/200@DialCamp) : 큐에 등록된 채널 정보 | |||
: (Ringing) : 채널 state | |||
: taken 1 calls : 수신한 콜 갯수. 받은 콜수가 0일 경우, "taken no calls yet" 이라고 나타난다. | |||
: (last was 6 secs ago) : 마지막으로 분배받아서 통화 종료한 콜 시각으로부터의 시간. | |||
'''Callers''' | |||
현재 분배 대기중인 콜의 내용을 나타낸다. | |||
: 1. index 번호 | |||
: SIP/201-test-1-0000001b : 큐에 인입된 Channel 이름. | |||
: wait: 0:03 : 큐에 인입되어 대기중인 시간 | |||
: prio: 우선순위 가중치. 높은 우선순위 가중치를 가진 콜(채널) 일 수록, 분배가 빨리 된다. | |||
== add == | == add member == | ||
queue 에 Member 를 추가한다. | queue 에 Member 를 추가한다. | ||
<pre> | <pre> | ||
Line 51: | Line 107: | ||
</pre> | </pre> | ||
== remove == | == remove member == | ||
queue에서 멤버를 삭제한다. | queue에서 멤버를 삭제한다. | ||
<pre> | <pre> | ||
Line 87: | Line 143: | ||
No Callers | No Callers | ||
</pre> | </pre> | ||
[[category:asterisk]] | [[category:asterisk]] |
Latest revision as of 14:03, 10 August 2017
Overview
Asterisk queue 명령어 정리
Basic
queue 명령어는 생성되어 있는 Queue 의 멤버 및 현재 상황 정보를 확인/추가/수정/삭제 할 때 사용하는 명령어이다.
Channel state
Asterisk 의 Queue 는 디바이스(채널)의 상태 정보에 따라 민감하게 반응한다. 이런 이유로, 각각의 Asterisk 에서 Queue 에 채널을 추가하기 위해서는 먼저 채널 드라이버에서 Queue 모듈에 적절한 상태정보를 줄 수 있는지를 확인해야 한다. 하지만, 각각의 채널드라이버(SIP, IAX, ...)에서 사용되는 채널의 상태 정보들이 다를 수 있다. 그리고, 각각의 모듈에서 Queue 로 채널(디바이스)상태 정보를 전달할 수 있도록 하는 적절한 옵션을 설정해줘야 한다.
chan_sip.so 모듈의 경우, sip.conf 파일에 다음 옵션을 활성화해야 한다.
[general] callcounter=yes ; enable device states for SIP devices
Create Queue
Queue 의 생성 및 삭제 를 위해서는 queues.conf 설정파일을 수정해야한다. cli 로는 생성/삭제가 불가능하다.
자세한 내용은 Asterisk-queues.conf를 참고하면 된다.
Module
Queue 모듈 load/unload/reload 를 위해서는 다음의 명령어를 입력하면 된다.
pluto*CLI> module load app_queue.so pluto*CLI> module unload app_queue.so pluto*CLI> module reload app_queue.so
help
pluto*CLI> help queue queue add member -- Add a channel to a specified queue queue reload {parameters|members|rules|all} -- Reload queues, members, queue rules, or parameters queue remove member -- Removes a channel from a specified queue queue reset stats -- Reset statistics for a queue queue set penalty -- Set penalty for a channel of a specified queue queue set ringinuse -- Set ringinuse for a channel of a specified queue queue show -- Show status of a specified queue queue show rules -- Show the rules defined in queuerules.conf queue {pause|unpause} member -- Pause or unpause a queue member
show
현재 등록된 모든 queue 정보를 확인한다. show 뒤에 특정 Queue 이름을 입력하면 입력된 queue에 대한 내용만 나타난다. 큐/멤버/콜 세가지 항목으로 구분되어 나타낸다.
vpbx11*CLI> queue show Camp200 Camp200 has 1 calls (max unlimited) in 'ringall' strategy (0s holdtime, 0s talktime), W:100, C:0, A:2, SL:0.0% within 0s Members: user1 (Local/200@DialCamp) (Ringing) has taken 1 calls (last was 6 secs ago) Callers: 1. SIP/201-test-1-0000001b (wait: 0:03, prio: 0)
Queue info
큐 정보를 나타낸다.
- Camp200 : 큐 이름.
- has 1 calls : 현재 큐에 인입되어 분배 대기중인 콜의 갯수.
- (max unlimited) : 큐에 인입되어 대기 가능한 최대 콜의 갯수.
- 'ringall' stratergy : 큐에 설정된 콜 분배 방식.
- 0s holdtime : 큐에 인입되는 콜들의 분배되기까지의 평균 대기 시간. Exponential average 방식을 사용해서 평균 시간을 계산하기 때문에 일반적인 평균 구하는 시간과는 다를 수 있다.
- 0s talktime : 큐에 인입되는 콜들의 분배 후 평균 통화 시간. Exponential average 방식을 사용해서 평균 시간을 계산하기 때문에 일반적인 평균 구하는 시간과는 다를 수 있다.
- W : 큐 가중치. 하나의 상담원(채널)이, 여러개의 큐에 대기중이고, 여러개의 큐에 동시에 콜이 인입되었을 경우, 가중치가 높은(많은) 수록, 큐에 인입된 콜이 먼저 분배될 확률이 높아진다.
- C : 큐에 인입되어 정상적으로 분배된 콜 수.
- A : 큐에 인입되었지만 정상적으로 분배되지 못한 콜 수.
- SL : Service level check interval 시간동안 인입된 콜의 정상 분배율 %.
- within 0s : Service level check interval
Members info
큐에 등록된 멤버 정보를 나타낸다.
- user1 : Username
- (Local/200@DialCamp) : 큐에 등록된 채널 정보
- (Ringing) : 채널 state
- taken 1 calls : 수신한 콜 갯수. 받은 콜수가 0일 경우, "taken no calls yet" 이라고 나타난다.
- (last was 6 secs ago) : 마지막으로 분배받아서 통화 종료한 콜 시각으로부터의 시간.
Callers
현재 분배 대기중인 콜의 내용을 나타낸다.
- 1. index 번호
- SIP/201-test-1-0000001b : 큐에 인입된 Channel 이름.
- wait: 0:03 : 큐에 인입되어 대기중인 시간
- prio: 우선순위 가중치. 높은 우선순위 가중치를 가진 콜(채널) 일 수록, 분배가 빨리 된다.
add member
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 member
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