2013-11-01 43 views
0

我正在使用Asterisk的隊列應用程序。當呼叫者的呼叫被隊列成員接收時,我想設置一些CDR變量。在「已連接」宏中設置CDR字段

但問題是,在「連接」宏在隊列成員的通道執行(這應該是在我看來,主叫方的通道)

exten => XXX, n,Queue(sales,tc,,,,,QueueConnected) 

[macro-QueueConnected] 
exten => s,1,NoOp() 
exten => s,n,Set(CDR(somevar)=someval) 

我可以用「C」選項隊列和撥號方案將在呼叫者或成員掛斷後繼續,但設置CDR值爲時已晚,因爲它已經發出。

任何人可以幫助我,謝謝。

回答

0

所以我想通了這一點,通過使用HangupHandlers

exten => XXX, n,Set(CHANNEL(hangup_handler_push)=_hnd,s,1); 
exten => XXX, n,Queue(sales,tc,,,,,QueueConnected) 

[_hnd] 
exten => s,1,NoOp() 
exten => s,n,Set(CDR(somevar)=someval) 

就像一個魅力