我有一個工作的Asterisk 13撥號方案,其中一個呼叫進入的extensions.conf再內的extensions.conf成switch語句:繼續後撥號方案外卡賽
switch => Realtime
工程。該調用基於數據庫表的內容完成。
現在我想要做的是在呼叫進入實時表之前進行一點過濾。事情是這樣的:
exten => _X.,1,Set(GROUP()=${ACCOUNTCODE:0:4})
exten => _X.,n,GotoIf($[${GROUP_COUNT(ABCD)} > 2]?tooMany,1)
exten => _X.,n,Log(VERBOSE,Call Continuing. ${ACCOUNTCODE} is not a limited group)
switch => Realtime
exten => tooMany,1,Congestion(4)
exten => tooMany,n,hangup(503)
但是,什麼似乎發生的是,一旦擴展匹配(在_X)的處理繼續通過比賽,但不會繼續和處理「開關=>實時」行(其從不執行撥號方案的數據庫組件)
如何在通過過濾器後執行實時撥號方案?
- 其次有些相關的問題
順便說一句,我可以在全文字的extensions.conf,我想所有的呼叫,必須做的東西對他們有類似的問題,然後做具體事某些電話。例如
exten => _X.,1,<do something>
exten => 1122,1,<do some more stuff to the same call>
這是在文檔中處理,1122是更具體的行,將執行一個。但是,對所有呼叫做某事的正確方法是什麼,然後做具體的事情?
如果它的工作方式類似於include,那就好了,除非如果EXTEN匹配它永遠不會進入交換機/數據庫搜索的模式。這是爲什麼? – SchroedingersCat
,因爲它是開關。如果你想在相同的上下文中額外的擴展,你應該包括=> someothecontext,並切換到其他上下文。 – arheops