Freepbx
在freepbx中程式Asterisk IVR問題在職員掛斷時繼續程序
我正在嘗試解決我的 IVR 的問題,我正在嘗試弄清楚當店員掛斷時如何繼續通話以進行評估。
好…
我發現隊列命令可以通過一些特定的選項來做到這一點,問題是隊列命令使用 100% 的 CPU 打破星號……(所以隊列命令根本不起作用)
如果我替換此工作程式碼:
exten => 1235,n,Goto(ext-queues,2026,1)
這樣:
exten => 1235,n,queue(2026,c)
隊列看起來很好,音樂開始播放,但沒有電話響起…… CPU 進入 100% 制動星號。
在 FreePBX 論壇中,我收到一些回饋,說我正在嘗試做的事情在新 FreePBX 版本的 FreePBX 上下文中是不可能的,所以如何逃避這個上下文或進行某種降級,或編輯一些嵌入式腳本來解決這個問題?
我有一些替代方法可以使用隊列命令,或者讓程序在店員應答掛斷之前繼續,並且星號程序繼續執行?
經過長時間的研究,我發現了一個解決方法:
在/usr/local/bin/freepbx_fix_queue_members.sh使用以下行創建一個腳本:
#!/bin/bash cp /etc/asterisk/queues_additional.conf /etc/asterisk/queues_additional.conf-freepbx sed 's/member=Local\/\([0-9a-zA-Z_]*\).*,\(.*\)/member=SIP\/\1,\2/' </etc/asterisk/queues_additional.conf-freepbx >/etc/asterisk/queues_additional.conf asterisk -rx "reload"
並賦予它執行權限。
chmod +x /usr/local/bin/freepbx_fix_queue_members.sh
更改 /etc/amportal.conf 上的 POST_RELOAD 參數,以載入新腳本:
# POST_RELOAD Script # Default Value: POST_RELOAD=/usr/local/bin/freepbx_fix_queue_members.sh
重新啟動 ASTERISK,並首次執行腳本:
/usr/local/bin/freepbx_fix_queue_members.sh
就是這樣,現在隊列命令將起作用!
現在,您可以在您的自定義程式碼中使用 queue c 選項,以便在職員掛斷後繼續執行腳本。
exten => 1235,n,queue(2026,c) exten => 1235,n,goto(evaluation)