A2B 可以與多個 Asterisk 做連接,這樣的架構有以下好處:
總共需要兩部獨立的 Linux 主機,分別為主機 A,B。
主機 A) A2B 主管理系統
用途:
主機 B) FreePBX 系統 (可連接多個 FreePBX 系統)
用途:
設定 MySQL Server 可接收遠端的存取權限
編輯 /etc/mysql/my.cnf
將這行註解 #bind-address = 127.0.0.1
修改資料庫權限
mysql -uroot -p <<-END_SQL CREATE USER 'a2billinguser'@'%' IDENTIFIED BY 'a2billingpass'; GRANT ALL PRIVILEGES ON mya2billing.* TO 'a2billinguser'@'%'; flush privileges; END_SQL
extensions.conf:
[out-all] exten => _0011101XXX.,1,Noop(This is outbound call) exten => _0011101XXX.,n,Dial(SIP/voxbeam/${EXTEN}) exten => _0011101XXX.,n,Hangup [from-freepbx] include => out-all
Notes:
如果來自 FreePBX 的電話,號碼開頭是 0011101 的,路由到 voxbeam,這個 prefix code 是 voxbeam 訂定的。
sip.conf:
1. 當遠端 FreePBX 要外撥時,會經由這進入到 A2B 主機的 Asterisk
;Inbound Trunks ; Incoming Calls from FreePBX [PBX1] type=peer host=<FreePBX#1 內部 IP> context=from-freepbx qualify=yes insecure=port,invite canreinvite=no nat=no
Tips:
當有新增其他的 FreePBX 主機時,這裡要增加新主機的 SIP 連線資訊,例如 PBX2, PBX3,...
2. 這個連結到 SIP Provider 做 Outbound Trunk
;Outbound trunks ;this is for test [ccnet] defaultuser=070XXXXXXX type=friend secret=123456 port=7890 insecure=port,invite host=210.202.244.130 qualify=yes nat=yes fromuser=070XXXXXXX context=no-incoming
3. [選用] 需要做 Inbound DID 時的 Inbound Trunk
; Inbound Trunk for DIDs from Voxbeam ;Voxbeam [voxbeam-in-1] type=peer qualify=yes nat=yes insecure=port,invite host=95.211.119.240 dtmfmode=rfc2833 disallow=all context=a2billing-did canreinvite=no allow=alaw allow=ulaw
註:a2billing-did 是 A2Billing 內建的 dialplan。
流程如下:
編輯 extensions_custom.conf (註: 以 FreePBX 為例)
加上這一行 ;this is for A2B #include extensions_a2billing_1_6.conf
編輯 /etc/a2billing.conf
修改 A2B DB 的連線資訊 [database] hostname = <A2B DB Host> ; port for postgres is 5432 by default port = 3306 user = a2billinguser password = <DB password> dbname = mya2billing ; dbtype setting can either be mysql or postgres dbtype = mysql
安裝A2B語音檔
cd sounds/ sh install_a2b_sounds.sh chown -R asterisk:asterisk /var/lib/asterisk/sounds/
註: 如果預設語音檔目錄不是 /var/lib/asterisk/sounds,必須修改 script 檔。