Asterisk-queues.conf: Difference between revisions

From 탱이의 잡동사니
Jump to navigation Jump to search
No edit summary
No edit summary
Line 49: Line 49:
: linear : 설정파일에 설정되어 있는 채널 순서대로 벨을 울린다. 유동적인 상담원(채널)의 경우, 상담원(채널)이 추가된 위치 순서에 맞춰 벨이 울리게 된다.
: linear : 설정파일에 설정되어 있는 채널 순서대로 벨을 울린다. 유동적인 상담원(채널)의 경우, 상담원(채널)이 추가된 위치 순서에 맞춰 벨이 울리게 된다.
: wrandom : 랜덤하게 연결을 시도한다. 단, 상담원의 패널티에 따른 가중치를 고려한다. 만약 패널티가 0 이라면 가중치는 0 에서 1000 사이의 숫자가 된다. 만약 패널티가 1이 되면, 가중치는 0 에서 2000 사이의 숫자가 된다. 그리고 만약 패널티가 2이면 가중치는 0에서 3000 사이의 숫자가 된다. 이후, 가장 낮은 패널티를 가진 상담원에게 콜을 연결한다. 그리고 만약 wrandom 을 사용하고, 상담원이 하나 이상의 큐에 소속되어 있다면, 상담원에게 부과되는 패널티는 각각의 큐마다 서로 독립적으로 관리되게 된다.
: wrandom : 랜덤하게 연결을 시도한다. 단, 상담원의 패널티에 따른 가중치를 고려한다. 만약 패널티가 0 이라면 가중치는 0 에서 1000 사이의 숫자가 된다. 만약 패널티가 1이 되면, 가중치는 0 에서 2000 사이의 숫자가 된다. 그리고 만약 패널티가 2이면 가중치는 0에서 3000 사이의 숫자가 된다. 이후, 가장 낮은 패널티를 가진 상담원에게 콜을 연결한다. 그리고 만약 wrandom 을 사용하고, 상담원이 하나 이상의 큐에 소속되어 있다면, 상담원에게 부과되는 패널티는 각각의 큐마다 서로 독립적으로 관리되게 된다.
=== joinempty ===
<pre>
; This setting controls whether callers can join a queue with no members.
; There are three choices:
;
; yes - callers can join a queue with no members or only unavailable members
; no - callers cannot join a queue with no members
; strict - callers cannot join a queue with no members or only unavailable members
; loose - same as strict, but paused queue members do not count as unavailable (new in 1.6)
;
; joinempty = yes
</pre>


=== leavewhenempty ===
=== leavewhenempty ===
Queue 에 응답할 수 있는 채널이 없어도 콜을 인입시킬지 말지를 결정한다.
<pre>
<pre>
;leavewhenempty = inuse,ringing
;leavewhenempty = inuse,ringing
Line 96: Line 110:
member => SIP/0000FFFF0006
member => SIP/0000FFFF0006
</pre>
</pre>


== See also ==
== See also ==
* http://www.voip-info.org/wiki/view/Asterisk+config+queues.conf - Asterisk config queues.conf
* http://www.voip-info.org/wiki/view/Asterisk+config+queues.conf - Asterisk config queues.conf
[[category:asterisk]]
[[category:asterisk]]

Revision as of 22:07, 16 November 2015

Overview

Asterisk queues.conf 파일 설정 내용 정리

[general]

[general]섹션은 Queue의 기본 동작 설정과 전역 옵션을 설정한다.

persistentmembers

; Persistent Members
;    Store each dynamic member in each queue in the astdb so that
;    when asterisk is restarted, each member will be automatically
;    read into their recorded queues. Default is 'no'.
;
persistentmembers = yes

동적으로 Queue에 멤버들을 영구적으로 추가시킨다. 영구 추가된 멤버들 정보는 astdb에 저장되며 Asterisk 재시작 후에도 자동으로 Queue 에 추가가 된다.

autofill

autofill=yes    ; distribute all waiting callers to available members

autofill 옵션은 큐에 대기중인 콜들이 있고, 현재 가용한 상담원이 있다면, 그 즉시 콜을 상담원으로 분배하게 하는 옵션이다. 어찌보면 당연한 옵션이지만, 예전 버전의 Asterisk 에서는 한번에 한콜씩만 상담원에게 분배가 되었었다. 무슨 말인가 하면, 콜 하나가 상담원에게 완전히 분배가 완료될 때 까지, 다른 콜들은 대기해야만 했었다는 뜻이다. 작은 규모의 시스템이라면 문제가 아니었겠지만, 시스템의 크기가 커질 수록 병목현상이 생기는 건 당연했다. 특별한 일이 없다면 반드시 yes 로 설정해야 한다.

shared_lastcall

shared_lastcall=yes    ; respect the wrapup time for members logged into more
                       ; than one queue

상담원이 하나 이상의 큐에 대기하고 있는 경우, 서로 다른 큐에서 동시에 콜이 오게되어 한번에 두 개 이상의 콜이 쌓이는 현상이 있을 수 있다. 이런 경우, shared_lastcall 을 설정하게 되면 남게되는 콜을 다른 상담원들과 공유하게 할 수 있다.

[template](!)

musicclass

musicclass=default    ; play [default] music

큐에 대기중인 콜에 들려주는 음악을 설정한다. musiconhold.conf 에 있는 default 클래스의 음악이 나오게된다.

strategy

strategy=rrmemory    ; use the Round Robin Memory strategy

strategy 는 큐에 대기중인 상담원 중에서 누가 콜을 받을 것인지를 결정한다. 다음의 옵션들이 사용 가능하다.

ringall : 가용한 모든 채널들에 벨을 울려서 처음으로 응답한 채널과 연결한다.(default)
roundrobin : 채널이 응답할 때 까지, 한번에 하나씩 가용한 채널들에게 순서대로 벨을 울린다.(1.4 에서는 사용되지 않는다. rrmemroy 를 사용한다)
leastrecent : 현재의 큐에서 가장 오랫동안 대기한 채널에 연결을 시도한다.
fewestcalls : 현재의 큐에서 가장 적은 콜을 받은 채널에 연결을 시도한다.
random : 랜덤하게 연결을 시도한다.
rrmemory : round robin 방식으로 벨을 울린다. 시작은 이전에 마지막으로 울린 채널 다음부터 시작해서 계속 이어간다.
linear : 설정파일에 설정되어 있는 채널 순서대로 벨을 울린다. 유동적인 상담원(채널)의 경우, 상담원(채널)이 추가된 위치 순서에 맞춰 벨이 울리게 된다.
wrandom : 랜덤하게 연결을 시도한다. 단, 상담원의 패널티에 따른 가중치를 고려한다. 만약 패널티가 0 이라면 가중치는 0 에서 1000 사이의 숫자가 된다. 만약 패널티가 1이 되면, 가중치는 0 에서 2000 사이의 숫자가 된다. 그리고 만약 패널티가 2이면 가중치는 0에서 3000 사이의 숫자가 된다. 이후, 가장 낮은 패널티를 가진 상담원에게 콜을 연결한다. 그리고 만약 wrandom 을 사용하고, 상담원이 하나 이상의 큐에 소속되어 있다면, 상담원에게 부과되는 패널티는 각각의 큐마다 서로 독립적으로 관리되게 된다.

joinempty

; This setting controls whether callers can join a queue with no members.
; There are three choices:
;
; yes - callers can join a queue with no members or only unavailable members
; no - callers cannot join a queue with no members
; strict - callers cannot join a queue with no members or only unavailable members
; loose - same as strict, but paused queue members do not count as unavailable (new in 1.6)
;
; joinempty = yes

leavewhenempty

Queue 에 응답할 수 있는 채널이 없어도 콜을 인입시킬지 말지를 결정한다.

;leavewhenempty = inuse,ringing
;
; A caller will be removed from the queue if at least one member cannot be found
; who is not on the phone, or whose phone is not ringing.
;
; For the sake of backwards-compatibility, the joinempty and leavewhenempty
; options also accept the strings "yes" "no" "strict" and "loose". The following
; serves as a translation for these values:
;
; yes - (empty) for joinempty; penalty,paused,invalid for leavewhenempty
; no - penalty,paused,invalid for joinempty; (empty) for leavewhenempty
; strict - penalty,paused,invalid,unavailable
; loose - penalty,invalid

만약 큐에 대기중인 상담원이 없다면, 큐에 인입된 콜을 큐에서 삭제하는 옵션이다.

ringinuse

; If you want the queue to avoid sending calls to members whose devices are
; known to be 'in use' (via the channel driver supporting that device state)
; uncomment this option. This can be controlled on a per member basis by
; setting 'ringinuse' on that member. This can be done in the member definition,
; in the 'ringinuse' field on a realtime member, via the QUEUE_MEMBER dialplan
; function, or with CLI/AMI. By default, the per member value will be the same
; as the queue's ringinuse value if it isn't set on the member deliberately.
; (Note: only the SIP channel driver currently is able to report 'in use'.)
; ringinuse = no

만약 상담원의 전화기 중 하나가 "사용 중" 상태라도, 콜을 연결하도록 하는 옵션이다. 기본값은 no 이다.

member

queue 에 멤버를 고정적으로 추가한다.

member => interface,[,penalty][,membername][,state_interface][,ringinuse]

queue 에 유동적으로 멤버를 추가하는 것이 아닌, app_queue 모듈이 올라올때마다 고정적으로 멤버가 추가되도록 할 때 사용하는 방법이다.

[sales](StandardQueue)
member => SIP/0000FFFF0005 ; or any other channel

[service](StandardQueue)
member => SIP/0000FFFF0006

See also