2017-06-29 6 views
0

私はアスタリスク11にキューを使用しています:アスタリスク11、キュー&地域チャネル状態

CLI> core show version 
Asterisk 11.13.1~dfsg-2+b1 built by buildd @ brahms on a x86_64 running Linux on 2015-01-05 21:34:10 UTC 

しかし、メンバーがコールに答えた際、メンバーは「INUSE」

としてマークではありません - アスタリスクの内部データベースの実際のメンバーエクステンションに格納 - MemberはLocalChannel(Local/001 @ test-queue-memberのような)を持つ "偽の"内線番号でダイヤルされます。データベースからの実際のメンバ拡張 - そのメンバにアナウンスメントを再生 - t

[999] 
username=999 
Callerid="999" <999> 
secret=0999 
context=test-queue-ctx 
type=friend 
language=fr 
host=dynamic 
dtmfmode=RFC2833 
dtmfmode=info 
qualify=yes 
nat=yes 
canreinvite=no 
insecure=invite,port 
call-limit=1 
callcounter=yes 
deny=0.0.0.0/0.0.0.0 
permit=0.0.0.0/0.0.0.0 

キューconfに次の:ここ

[test-queue] 
music=blank 
strategy=rrmemory 
timeout=9 
retry=1 
wrapuptime=2 
maxlen=0 
announce-frequency=0 
announce-holdtime=no 
ringinuse=no 
setinterfacevar=yes 
setqueueentryvar=yes 
setqueuevar=yes 
eventwhencalled=yes 
eventmemberstatus=yes 
autofill=no 

そして、ダイヤルプラン:

[test-queue-ctx] 
exten => _X.,1,Noop() 
    same => n,Ringing() 
    ;; Queue options 
    ;;  c: continue in the dialplan if the callee hangs up 
    ;;  i: ignore call forward requests from queue members and do nothing when they are requested 
    ;;  r: ring instead of playing MOH 
    ;;  R: stops moh and rings once an agent is ringing 
    ;;  h: allow callee to hang up by pressing *. 
    ;;  H: allow caller to hang up by pressing *. 
    same => n,Queue(test-queue,cirRhH,,,300,,,test-announce) 
    same => n,NoOp("Dialstatus=${DIALSTATUS}") 

[test-announce] 
exten => s,1,NoOp() 
    same => n,Playback(hello-world) 
    same => n,Return() 

[test-queue-member] 
exten => _X.,1,NoOp(Dialling ${EXTEN}) 
    same => n,Macro(test-queue-dial,${EXTEN}) 

[macro-test-queue-dial] 
exten => s,1,NoOp(Dialling ARG1=${ARG1}) 
    same => n,GotoIf($["${DB(AGENT/${ARG1}/PHONE)}" != ""]?dial,1:dial-NOPHONE,1) 

exten => dial,1,NoOp(AgentDial,agent_id: ${ARG1},phone: ${DB(AGENT/${ARG1}/PHONE)}) 
    same => n,Dial(SIP/${DB(AGENT/${ARG1}/PHONE)},10,rotwhgU(test-queue-answer^${ARG1})) ; Ring the interface, 10 seconds maximum 
    same => n,NoOp("DialStatus=${DIALSTATUS}") 
    same => n,GotoIf($[${DIALSTATUS} != "ANSWER"]?dial-${DIALSTATUS},1) 
exten => dial-NOANSWER,1,Hangup() 
exten => dial-BUSY,1,Busy() 
exten => dial-CHANUNAVAIL,1,Hangup() 
exten => dial-CONGESTION,1,Congestion() 
exten => dial-NOPHONE,1,Hangup() 

[test-queue-answer] 
exten => s,1,NoOp("test-queue-answer") 
    same => n,Return() 
彼は、会員メンバーの拡張子、すべての

最初の(ログのような)答え

最後に、アスタリスクCLIのメンバーにキューを追加します:

CLI> database put AGENT/001 PHONE 999 
CLI> queue add member Local/[email protected] to test-queue 

しかし、私はこれを行う際に、時にユーザー・コール、待ち行列およびメンバーの答えを入力して、メンバーが「使用中(InUse)」ではない、と「いいえ発信者」

CLI> queue show test-queue 
test-queue has 0 calls (max unlimited) in 'rrmemory' strategy (1s holdtime, 3s talktime), W:0, C:1, A:5, SL:0.0% within 0s 
    Members: 
     Local/[email protected] (ringinuse disabled) (dynamic) (Not in use) has taken 1 calls (last was 916 secs ago) 
    No Callers 

どのように私はありませんこれを修正できますか?

答えて

0

あなた自身の "ペットキュー"を行う前に、freepbx.orgのソースコード/ dialplanなどのように、それがどうあるべきかを読んでみるとよいでしょう。

状態が必要な場合は、チャネルを状態とともに使用するか、ヒントを介して手動で状態を行う必要があります。 1回線接続用に設計されていないため、状態を持たないローカルチャネル。

ヒントの詳細については、このページを参照してください。https://wiki.asterisk.org/wiki/display/AST/Extension+State+and+Hints