大家好,我是来自北京的asterisk用户,从HKEPC看到角色的帖子,就感兴趣自己build asterisk学习,以下是我手上所有的asterisk相关资源的情况:
台式机X1,7*24开机,做asterisk用,以及挂BT用,硬件配置如下:
intel core2 e2140
2g ddr2 memory
320g wd harddisk
1000M onboard realtek nic
TDM400p 2fxo 2fxs
因为是作为server使用,所以没有配置显卡/keyboard/mouse,除开tdm400p是新购入之外,其他均为以前升级下来的淘汰货。tdm400p从淘宝购得,总价280包运费,相当划算
软件方面:
ubuntu 11.04
asterisk 1.8.5.0 build from source
因为本人对command line 比较熟悉,所以没有使用任何asterisk的相关gui,配置通过编辑*.conf完成
终端方面:
cisco 7940 sip (基本全新,250元从北京同城网友处淘来)
cisco 7912 sip (外观有些许划痕,75元从淘宝一商家处购得,因为商家没有测试环境,不知好坏,所以低价卖我。幸好回来测试一切正常)
以及Android/Iphone/Ipad上的软电话,这些免钱
网络状况:
北京联通提供的2M ADSL,不知香港的朋友有没有使用过ADSL,这种连接的特点是上下行不对称。我这个contract的下行在2048kbps,上行在512kbps。至于能够同时稳定提供多少路的sip通话,还没有测试过(我的codec为g729)
下面是连接至各sip provider的速度(sip show peers):
iptel/johnnie502home 213.192.59.75 5060 OK (492 ms)
newik/8613581861611 64.22.82.3 5060 OK (438 ms)
sip3g/30676582 63.220.4.67 5060 OK (68 ms)
sipgateuk/1347003 217.10.79.23 5060 OK (494 ms)
线路方面:
北京当地的门号 010-XXXXXXXX
--此线接入TDM400P的FXO1,可以接打大陆座机/手机/800/400等等号码,每个月有300分钟的非长途免费时间
sip3g.net的sip账户
--此账户主要用来拨打大陆长途以及除美国之外的国际电话,价格低廉,而且可以让对方显示自己定义的电话号码。(很多情况下,如果voip账户打到别人的电话上时,来电号码不显示,非常不方便)
google voice
--此账户用来拨打免费的美国加拿大电话,非常方便,我时常用来拨打任职公司的con call。而且google voice对应一个美国的电话号码,这样在美国的友人拨打这个号码,可以直接接通我注册在cisco 7940上的号码,和直接拨打电话无异。
我的使用场景:
1.在家用cisco 7940拨打北京的号码
--直接拨打区号+号码: 010 XXXXXXXX
--dialplan: exten => _010XXXXXXXX,n,Dial(DAHDI/1/${EXTEN:3},,r) ;直接走FXO
2.在家用cisco 7940拨打大陆的长途
--直接拨打区号+号码: 0724 XXXXXXX
--dialplan: exten => _0724XXXXXXX,1,Dial(SIP/sip3g/6${EXTEN:0},,r) ; 走sip3g提供的落地服务,同时在号码前+6穿透号码
3.在家用cisco 7940拨打美国电话
--直接拨打001+美国号码: 001 XXXXXXXXXXX
--dialplan: exten => _001XXX.,1,Dial(Gtalk/johnnievoip/${EXTEN}@voice.google.com) ;通过GV拨出
4.在家用cisco 7940拨打美国之外的世界各国号码:
--和拨打大陆长途类似,通过sip3g
--
这样一来,我对外的资费如下:
大陆本地:每个月300分钟免费,超出后0.2元3分钟,可被叫
大陆长途:0.1元每分钟,可被叫,不带显示号码则为0.05元,不可被叫
美国:0元每分钟,可被叫
美国之外国家:不定,例如德国为0.15元每分钟
我夫人的使用场景:
我夫人为一名在北京工作的律师,工作时间自由,经常在家办公处理客户的工作,于是我利用asterisk,将我的北京市话变成她个人的工作用电话,效果非常好。
她的客户拨打我们的市话号码时:
1.先提示一段欢迎语,并提示对方:按1直接通话,按2发传真
--dialplan: exten => s,n,Background(nana-welcome)
--这段语音是我协助她通过asterisk的Record命令录制的
2.客户按键盘上的1键,我们书房的cisco 7940开始响铃
--dialplan: exten => 1,1,Goto(internal-base,2001,1)
--cisco的register number为2001
3.客户按键盘上的2键,asterisk通过FXO发出FAX相关指令,等待FAX信号
--dialplan: exten => 2,n,Goto(fax-rx,receive,1)
--这段dialplan将fax传送到对应的macro
--处理完毕之后,通过下面的脚本将收到的fax发送到我夫人的邮箱
--dialplan: exten => h,n,System(sendEmail -f "johnnie502@gmail.com" -t "leeyatong@gmail.com" -u You have a FAX from ${FXN} -a /var/www/html/fax/${FAXFILE} -m You have a new FAX. Find attached. -s 127.0.0.1)
--我夫人的iphone会提示有新邮件,fax到达,打开tiff附件即可以查看对方发来的传真
上面说的都是在家的情况,有稳定的internet连接和硬件sip电话。那如果在大街上如何使用呢?用3G也许是个选择,但是大陆的3G流量价格不算亲民,速度也不稳定,所以并不推荐。
但是我们仍然可以借其他的方式使用voip,需要有一个前提,就是你有一只移动电话和TDM400P FXO接入的市话号码相互绑定,直接通话免钱(中国联通有这样的套餐)
假设我的移动电话号码是A,FXO上的号码是B,相互通话免钱。
1.用A号码呼叫B,接通后,拨99+长途号码
--dialplan: exten => _99XX.,1,Dial(SIP/sip3g/${EXTEN:2},,r)
--长途号码会转到sip3g的服务呼出,然后asterisk将sip3g与号码A连接,通话开始
如此以来,我在大街上拨这一通长途电话,收的依然是0.1元每分钟。
以上就是我的使用经验,希望对大家能有所帮助和启发。用了很多大陆这边的语言习惯,如有不便清谅解。
我的联系方式是:johnnie502@gmail.com,欢迎和我交流。
帮我夫人打一个小广告,如果大家在北京有法律方面的业务,请和她联系,保证服务和效率,联系leeyatong@gmail.com详谈。
Johnnie |