Freepbx

在freepbx中程式Asterisk IVR問題在職員掛斷時繼續程序

  • November 1, 2016

我正在嘗試解決我的 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)

引用自:https://unix.stackexchange.com/questions/306723