FreePBX 問與答
問題說明
主機在 NAT 網路環境,且防火牆已做 port forwarding 對 5060 與 10000 - 20000。
遠端 SIP 分機也是在另一個 NAT 網路環境
偵錯技巧
開啟 RTP 偵錯模式,有出現 RTP 傳送接收訊息,但確使用了內網 IP。
解決方案:
問題說明
這通常發生在電話從 SIP Trunk 撥入後直接經由同一個 SIP trunk 轉送到另一個外部的電話號碼。
問題分析:
1. 主機不是在 NAT 網路環境上也可能會發生。
2. 不同 Asterisk 版本,其解決方式也都不同。
3. 沒有安裝 FreePBX 或沒有使用 Follow Me 功能,例如在純 Asterisk 環境下開發 IVR 時,只要運用到 外轉外 的通話模式,就有可能遇到一樣的問題。論壇的相關討論串:
偵錯技巧
開啟 RTP 偵錯模式後,沒有輸出任何訊息。
解決方案:
如果 Asterisk 放在 LAN 端,先檢查 sip_nat.conf 的外部 IP 是否正確,確認沒問題,問題一樣發生時,步驟如下:
適用:Asterisk 1.8
FreePBX > Tools > Asterisk SIP Settings
在 Other SIP Setting 加上
progressinband = yes
適用:Asterisk 13
NOTE:加上 progressinband=yes 也沒用。
以 Follow Me 為例
方法一:
在 Follow Me 設定裡,啟用 Confirm Call。
NOTE:此功能是讓受話方在接起電話後,必須要按下 1,才可以與發話方通話,如此可以迫使系統主動建立一個 RTP 通道。方法二:
在 Follow Me 設定裡,將 Play Music On Hold = Default。
NOTE:改用 music 來取代,可以迫使系統主動建立一個 RTP 通道。
錯誤:
file_put_contents(/var/log/asterisk/freepbx_security.log): failed to open stream: Permission denied
解決:
#> fwconsole chown
錯誤:No Conference Room App
解決:
檢查 Asterisk 模組
# asterisk -rx "module show like app_confbridge" Module Description Use Count Status Support Level app_confbridge.so Conference Bridge Application 0 Not Running core 1 modules loaded
安裝 FreePBX 模組
NOTE: 要安裝 Conference 必須依序先裝 Sound Languages -> Recordings -> Conferences
#> fwconsole ma download soundlang #> fwconsole ma install soundlang #> fwconsole reload #> fwconsole ma download recordings #> fwconsole ma install recordings #> fwconsole reload #> fwconsole ma download conferences #> fwconsole ma install conferences #> fwconsole reload #> fwconsole chown #> fwconsole restart
確認 Asterisk 模組的狀態是 Running
# asterisk -rx "module show like app_confbridge"
.htaccess files are disable on this webserver. Please enable them
This is a critical issue and should be resolved urgently
解決:
for Debian)
編輯 /etc/apache2/sites-available/default
<Directory /var/www/html/> Options Indexes FollowSymLinks MultiViews AllowOverride All <== 改這行 Order allow,deny allow from all </Directory>
重啟 Apache
A: 由於 extensions.conf & extensions_additional.conf 檔案無法手動變更其內容,當需要客製某部份的 dialplan 內容時,可以將它寫入 extensions_override_freepbx.conf,只要 [context name] 相同就會覆蓋原有的 context,不過必須注意,新內容的行數必須大於原有的內容,否則不會被覆蓋。
A:
Fetching FreePBX settings with gen_amp_conf.php..
PHP Fatal error: Call to undefined function posix_getpwuid() in /var/lib/asterisk/bin/gen_amp_conf.php on line 3
A:
A:在 2.10 版本不能使用傳統的修改檔案方式,而是必須用 UI 來完成。
Admin UI > Advanced Settings
A:將 sip_notify.conf 更名為 sip_notify.conf.orig,然後在 FreePBX 作一次 Apply Configuration Changes。
A:編輯 /etc/php5/apache2/php.ini
; Magic quotes for incoming GET/POST/Cookie data. magic_quotes_gpc = Off
重啟 apache2