2015-06-15 38 views
-2

我在會議中使用confBridge作爲星號。我想在正在進行的呼叫中檢測用戶數是否小於或等於1,然後終止電話會議。如果任何用戶離開配置,在星號dialplan上生成事件

我已經試過這 -

exten => ConfTest,1,System(asterisk -rx "confbridge kick ${DB(CONF/NUM)} ${DB(CONF/ConfTest)}") 
exten => ConfTest,n,Set(DB(CONF/ConfTest)=${CHANNEL}) 
exten => ConfTest,n,Set(ID=${RAND(1,500)}) 
exten => ConfTest,n,Set(DB(CONF/NUM)=${ID}) 
exten => ConfTest,n,Set(target=ConfTest1) 
exten => ConfTest,n,Originate(SIP/${target},app,confBridge,${ID},default_user) 
exten => ConfTest,n,Set(target=ConfTest2) 
exten => ConfTest,n,Originate(SIP/${target},app,confBridge,${ID},default_user) 
exten => ConfTest,n,Macro(dialout-trunk-predial-hook-test) 
exten => ConfTest,n,confbridge(${ID},,src_user) 
exten => ConfTest,n,Answer() 
exten => ConfTest,n,Set(i=1) 
exten => ConfTest,n,While($[${i} = 1]) 
exten => ConfTest,n,GoToIf($[0${CONFBRIDGE_INFO(parties,${ID})} <= 1]?18:15) 
exten => ConfTest,n,NoOp(number of participants in conference call = ${CONFBRIDGE_INFO(parties,${ID})}) 
exten => ConfTest,n,Wait(1000) 
exten => ConfTest,n,EndWhile() 
exten => ConfTest,n,System(asterisk -rx "confbridge kick ${DB(CONF/NUM)} ${DB(CONF/ConfTest)) 

此行不會從while循環執行。

是否有任何東西可用於爲涉及電話會議的所有頻道註冊掛斷處理程序。 對於示例 -

debianpc08*CLI> confbridge list 1 
Channel      User Profile  Bridge Profile Menu    CallerID 
============================= ================ ================ ================ ================ 
SIP/ConfTest1-0000009c  default_user  default_bridge     ConfTest1 
SIP/ConfTest2-0000009d  default_user  default_bridge     ConfTest2 
SIP/ConfTest3-0000009b  src_user   default_bridge     ConfTest3 

在這裏,我要像SIP/ConfTest1-0000009c所有通道註冊掛斷處理。

回答

0

您可以使用默認的掛機處理(H-擴展),以趕上

;record situation 
exten => ConfTest,n,Set(HANGUP_OK=NO) 
exten => ConfTest,n,confbridge(${ID},,src_user) 
; if user exit confbridge, clear it 
exten => ConfTest,n,Set(HANGUP_OK=YES) 

; if hanguped in confbridge, do something 
exten => h,1,GotoIF($[ "${HANGUP_OK}" == "NO" ]?dosomething,s,1) 
0

你走錯了。這項任務的最佳選擇是使用Asterisk ARI和網橋API。這個想法將非常簡單,啓動一個Stasis應用程序來處理您的橋,並將這些通道放入橋中。當他們進出橋時,聽WebSocket事件以查看誰離開了誰以及誰進來了。

你可以看看http://www.phpari.org瞭解更多關於如何編寫這樣的應用程序的演示撥號應用程序應該給你充足的信息如何做到這一點。

尼爾