2015-10-19 36 views
1

有什麼辦法來刷新pbx_spools的緩存? pbx_spool.so也不支持通過CLI重新加載。星號 - 終止預定的自動撥號電話文件假脫機

實施例:

#!/bin/bash 
cat >/tmp/wakeup.call <<EOF 
Channel: SIP/telefon 
CallerID: "Weckruf" <9999> 
MaxRetries: 3 
WaitTime: 60 
Context: wecker 
Extension: s 
Priority: 1 
EOF 
touch -d "7 hours" /tmp/wakeup.call 

# At this point Asterisk learns his task 
mv /tmp/wakeup.call /var/spool/asterisk/outgoing/ 

# for demonstration I decided to not want to be waken later 
sleep 10 && rm /var/spool/asterisk/outgoing/wakeup.call 

最後的Asterisk確實環7小時後...

我期望,如果我手動從在/ var /閥芯/星號/呼出刪除.CALL文件/在應該撥打Asterisk不再撥打電話之前。但它確實如此。

+0

刪除文件會阻止呼叫。 Asterisk控制檯說什麼? – miken32

+0

即使在調試和詳細情況下,控制檯也沒有提及任何東西1000 – Sprinterfreak

+0

我發現Asterisk不可能在沒有任何東西出現在控制檯的情況下撥打電話! – miken32

回答

1

此行爲的解決方案是使用唯一的文件名。

Asterisk在創建時讀取調用文件,並且只在執行時檢查具有相同名稱的文件是否仍然存在。無論那裏有什麼。

Asterisk沒有提及兩者之間的文件刪除。 其內容的文件名仍然在堆棧中被敲打,甚至具有相同文件名的新創建的文件被忽略。在執行時僅存在具有該名稱的文件會使星號觸發初始的callfile內容。

+0

很高興知道;你有沒有找到這些信息的來源,或只是試驗和錯誤? – miken32

+0

太晚讀了。 Sry基因。此行爲已通過嘗試錯誤進行了測試,稍後在pbx_spool.c的源代碼中進行了驗證。我沒有檢查它今天是否仍然適用。我發現這是無證的。 – Sprinterfreak