返回列表 發帖

QNAP109+ Asterisk1.4.22 + oBI110 + Comnet Phone 設定心得

本帖最後由 harold 於 2016-8-11 16:38 編輯

先講背影
小弟有二部陳年舊的NAS, 一部Synology DS109j, 另一部係QNAP109+ !! 係NAS 來講, Synology 係好用過QNAP, 但唔再係到詳談!! 兩部都有Asterisk APP 可安裝!! 但 QNAP個QPKG 安裝檔案已經無得再download. 即QNAP唔再support TS109+.
我原先係用CallCentric + OBI110 + Comnet Phone 來玩VOIP, 但CallCentric 質數越來越差, 通話Delay 1-2秒, 所以決定起Asterisk Server.
平時我的Synology 只用來Data Backup, QNAP 只用來做 OpenVPN Server. 因為QNAP用無散熱扇的設計, 所以有利長時間開啟! QNAP 109+ Firmware update to 3.3.3 Build 1003T!
安裝Asterisk
先在Archive 地方download Asterisk_1.4.22.1b_arm_x09 安裝在QNAP 的QPKG!! 不要在QNAP109+ 上安裝 IPKG Asterisk, 因為QNAP 上的linux kernel 太舊, 有太多不足, 安裝後一大堆問題, 我搵咗好耐都無解決方法!!
安裝完成後, 你會看到Asterisk GUI版本!! 但這個GUI 有太多問題, 根本用不到啲個GUI! 唯一用到的, 只有GUI 內個的CLI !! 你必定要用它!! 因為在SSH 上, 你無可能用到Asterisk 上任何一個command 的!! 所以GUI 內個的CLI 係唯一一個途徑比你打CLI command 的地方!!
我用咗二個星期由Asterisk 零認識去到設定完成!!! 由摸不著頭到設定完成!! 真係嘔心瀝血!!!
有咗我啲個config, 時間會花少好多!! 因為我學藝未精, 唔一定最好!! 但我都叫好滿意!!
唔好對QNAP 的Asterisk  有咁大期望, 因為QNAP 比到你的Asterisk Function, 就可以用到, 但一啲要 Addon 安裝的, QNAP 的Asterisk  係唔會做到的!!
另外, 雖然通話質素滿意, 但當Asterisk 入到 OBI 的AA menu 時, 第一層(1,2,3 的選項)係無問題, 但去到第二層就出現Packet LOSS, 我未知乜事!! 但通話上係無問題的!
現今玩VOIP, 多數會係SmartPhone 到玩!!
IPhone 上, 免費選擇較少, 都都好穏定,設定不多 e.g. linphone, Zoiper
Android 上自身的SIP 是最好的, 但Andoird 6.0 後不再有啲個功能!!
Android上, 免費選擇較多, 都好壞一半半!! 有啲做都好複雜, 但一般來說基本設定就可以了!! e.g. csipsimple, linphone, Zoiper


Asterisk Config

Sip.conf
;Global Config
[general]
context = default
allowoverlap = no
bindport = 5060
bindaddr = 0.0.0.0
srvlookup = yes
allowexternaldomains = yes
allowguest = no
allowsubscribe = yes
allowtransfer = yes
alwaysauthreject = yes
autodomain = no
callevents = no
checkmwi = 10
defaultexpiry = 120
domain =
dtmfmode = auto
dumphistory = no
externrefresh = 10
fromdomain = “dynamic dns”
g726nonstandard = no
jbenable = yes
jbforce = yes
jbimpl = adaptive
jblog = yes
jbmaxsize = 200
jbresyncthreshold = 1000
language =
maxcallbitrate = 384
maxexpiry = 3600
minexpiry = 60
mohinterpret = default
mohsuggest =
nat = yes
notifyringing = yes
pedantic = no
progressinband = never
promiscredir = no
realm = asterisk
recordhistory = no
registerattempts = 0
registertimeout = 20
relaxdtmf = no
rtpholdtimeout =
rtptimeout =
sendrpid = no
sipdebug = no
subscribecontext =
t1min = 100
t38pt_udptl = no
trustrpid = no
useragent = IPPABX
usereqphone = no
videosupport =yes
icesupport=yes
stunaddr=stun.zoiper.com
disallow = all
allow=alaw
pedantic=yes
tos_sip=cs3
tos_audio=ef
tos_video=af41
notifymimetype=text/plain
vmexten=*9
language=en
compactheaders = yes
rtptimeout=60
rtpholdtimeout=300
externhost= “dynamic dns“
localnet=10.0.0.0/255.0.0.0
dtmfmode=rfc2833
srvlookup=yes

register => 1777xxxxxxxxx@callcentric.com:YouPasword:1777xxxxxxxxx@callcentric.com/You Extension

[callcentric]
type=peer
context=from-callcentric
host=callcentric.com
fromdomain=callcentric.com
username=1777xxxxxxxxx
fromuser=1777xxxxxxxxx
secret=YourPassword
insecure=very
canreinvite=no
allow=all


[100]
callerid="OBITrunk" <100>
username=YouUserName
type=friend
context=my-group
secret=YourPasword
host=dynamic
nat=no
canreinvite=no
transport=udp
dtmfmode = auto
mailbox=100@default
jbenable = no
jbforce = no
disallow=all
allow=alaw
allow=ulaw



extensions.conf


[DirectoryService]
exten => *0,1,Answer
exten => *0,2,Wait(1)
exten => *0,3,Directory(default,my-group,ef)

[EchoTest]
exten => *1,1,Playback(demo-echotest) ; Let them know what's going on
exten => *1,2,Echo ; Do the echo test
exten => *1,3,Playback(demo-echodone) ; Let them know it's over
exten => *1,n,hangup()

[VMail]
exten => *9,1,wait(1)
exten => *9,n,VoiceMailMain(s${CALLERIDNUM})
exten => *9,n,hangup()

[from-callcentric]
exten => s,1,Dial(SIP/100)
exten => s,n,hangup()
[obitrunk01]
exten => _1XXX,1,Dial(SIP/**1133${EXTEN}@100)
exten => _1XXXX ,1,Dial(SIP/**1133${EXTEN}@100)
exten => _1XXXXXX ,1,Dial(SIP/**1133${EXTEN}@100)

exten => _[2356789]XXXXXXX,1,Answer(1)
exten => _[2356789]XXXXXXX,n,Dial(SIP/**1${EXTEN}@100)
exten => _[2356789]XXXXXXX,n,hangup()

[StarCode]
;-------------------- **02 Call out from callcentric
exten => _**02X.,1,Answer
exten => _**02X.,2,Wait(2)
exten => _**02X.,3,Read(password,enter-password,4)
exten => _**02X.,4,GotoIf($[${password} = 0000]?5:8)
exten => _**02X.,5,playback(pls-wait-connect-call)
exten => _**02X.,6,Dial(SIP/${EXTEN:4}@callcentric)
exten => _**02X.,7,hangup()
exten => _**02X.,8,playback(privacy-incorrect)
exten => _**02X.,9,playback(goodbye)
exten => _**02X.,10,Wait(1)
exten => _**02X.,11,hangup()

;-------------------- **09 OBITalk Call
exten => _**09X.,1,Wait(1)
exten => _**09X.,n,Dial(SIP/**9${EXTEN:4}@100)
exten => _**09X.,n,hangup()

[my-group]
include =>DirectoryService
include =>EchoTest
include =>VMail
include =>StarCode

exten => 100,1,Dial(SIP/100,30)
exten => 100,n,Dial(SIP/101&SIP/102,45)
exten => 100,n,hangup()

exten => _XXX,1,Dial(SIP/${EXTEN},45)
exten => _XXX,2,VoiceMail(${EXTEN},u)
exten => _XXX,n,hangup()

voicemail.conf
; Sendmail  not work on QNAP109
attach=yes
maxmsg=10
skipms=3000
maxsilence=10
saycid=yes
4200 => 9855,Mark Spencer,markster@linux-support.net,mypager@digium.com,

Rtp.conf
;要避開OBI110 的RTP Port
rtpstart=24000
rtpend=25000

dnsmgr.conf
enable=yes

設定完後到OBI 設定, OBItalk Website, 入ObiTalk Compatible Service Providers -> Generate SIP Setting, 入Comnet Config 係SP1
設定完後再入ObiTalk Compatible Service Providers -> Generate SIP Setting, 入Asterisk Account 係SP2
然後 Obi Expert Configuration -> Enter Obi Exprt -> Voice Service -> X_InboundCallRoute ,係value 入{@>(<**1:>xx.):sp1},{@>(<**2:>xx.):sp2}{@>(<**8:>xx.):li},{@>(<**9:>xx.):pp},{(100):aa},{>100:ph}

在router上, 記得Set 返 port forwarding
Asterisk UDP 5060 Port
Asterisk RTP UDP 24000-25000 port

希望幫到各位!!

返回列表