http://blog.zndev.com/blog.php?do=showone&uid=2&type=blog&itemid=849

标题: SIP、IAX内外网与PSTN线路及手机互相通讯的实例 [打印本页] ,69547#o1  
?xTppX=  
-------------------------------------------------------------------------------- 3yO %=]~`  
作者: alanpeng   时间: 2006-11-5 02:54   标题: SIP、IAX内外网与PSTN线路及手机互相通讯的实例 ;/s|uL,  
8|'+C|  
应dynaguy兄弟的要求,为各位还在摸索中的同仁们贴上一例相对比较完整的实验: 4i!V`x!g7  
(2.0beta的实验有些问题,因此我以最稳定的1.2.3示范) yN'Pr!X?]  
在此次试验中,并没有讨论不安装板卡,直接由SIP Trunk连接其他SIP服务器来使得SIP用户拨打外部电话的问题。 l]'rvQ  
本篇仅用于讨论使用FXO卡测试内外线进出的相关问题。 ZdX)H$  
#r=iH nS  
一、实验环境 M>fs;y0  
1. Trixbox服务器硬件 e"j%QhW  
(1) 奔腾III500MHz / 192MB SDRAM / 13G HardDisk / BX主板 with 4PCI插槽 B/1!JT*  
(2) 在两个PCI插槽中各安装一片X100P FXO克隆卡 j aNtyz  
2. 电话线路及话机 0UBeaQ  
(1) 两路普通PSTN市话线路分别接入两片FXO卡的Line口 qY!=.f}  
(2) 若干路其他PSTN线路及模拟话机(可选项) mT2G35b#  
(3) IAX及SIP Softphone软件,例如X-Lite及KIAX等 '$Ek=2+  
(4) 手机两部(可选项 ) ~ Y,cBu1  
3. 宽带网络ADSL环境 mWIoQ1Z3y  
Linux代理及防火墙服务器外网卡接了Linksys宽带路由器,内网卡与Trixbox服务器相连,拓扑结构如下: 46'7.uIQ`  
Switch-----Linux NAT Server-----Linksys ADSL Router-----Internet   ~- ~- ~- ~- ~- ~   PC with IAX/SIP softphone (remote) "`AZw{xr  
| Shn$ V  
|---------------Trixbox Server===============2 PSTN Line===== Ypv}8+  
|---------------PC with SIP softphone (local) P]fo mG9W  
|---------------PC with IAX softphone (local) mf^f7?CG#s  
|...... lSR/'  
8:$c](-ck)  
二、安装过程 G7m4#|  
1. Trixbox1.2.3.iso镜像文件、刻录光盘、启动、回车自动安装,清除所有原硬盘数据 =wf2fdqth  
千万不可接上其他有资料的硬盘,这种方式所有硬盘的数据都会丢失,即便你在BIOS中屏蔽了你的其他硬盘!!! ,<:s=*s  
d>j@H>,  
(如果你没有多的硬盘来做实验,例如在已经装有Windows的硬盘上加装Trixbox系统,光盘启动后就敲expert回车吧,自定义分区安装的方式 与直接回车的最后结果对于Trixbox系统来讲,除了留住原有数据及Windows外没有什么区别。不过需要更长时间而已。 选择安装所有包,重启后解压光盘上的trixbox1.2.3.tar.gz到/var/trixbox_load,然后运行/var /trixbox_load/install_all.sh即可,这种手动模式有的机器运气不好,在munin模块安装时可能需要多等待1-2个小时,需 要耐性,呵呵) 2 h�Qe-a  
2. 定义时区、root密码后,一切按照默认选项,机器第一次重启后取出光盘,第二次重启后完成安装,停在登陆模式 @Ujoc[Jw  
O0qW0%pyW  
三、调试配置各参数 Ui~T7.) kC  
1. 需要升级 FreePBX及清除Kernel Panic错误隐患的朋友们,可以参考dynaguy兄弟相应的帖子进行第一步动作,我的实例没有对FreePBX升级,但是由于机器会发生重启死机,于 是首先修改/etc/rc.d/rc6.d/K92zaptel解决隐患! c@0 f@=  
2. 由于安装了两片FXO卡,则修改/etc/zaptel.conf,加入两行蓝色语句如下: @{33c{1m  
fxsks=1 M/ 4'Cf h(  
fxsks=2 V(,Q[+gyx  
loadzone     = us UT *"@[/n  
defaultzone   = us T}o56$Eb*$  
3. 修改/etc/asterisk/zapata.conf,加入三行蓝色语句如下: iOQEY?;>  
[trunkgroups] hL/ua^C  
[channels] vR8cS^j  
busydetect=yes !KQ_h)7  
language=en ~OP@#ul.e  
context=from-zaptel {|?5eF?l  
signalling=fxs_ks r7ALU  
usecallerid=yes aE3l-Co:E  
hidecallerid=no )gI |~= ]=  
callwaiting=yes aHXS6vS  
usecallingpres=yes B tiSc=  
callwaitingcallerid=yes ]HrQ^r  
threewaycalling=yes RhWyMc  
transfer=yes z&C3y7!  
cancallforward=yes "M^I:Bl  
callreturn=yes |VmIzmq  
echocancel=yes B"(]KENA  
echocancelwhenbridged=no ?T8/Gw-  
echotraining=800 iZ*[3hw  
rxgain=0.0 PQj7qiK_  
txgain=0.0 X1qI 74  
group=0 @vKdOk/Qv  
channel=1 5Y!G]  
callgroup=1 gYtX#0  
pickupgroup=1 H/yM}wk5F  
immediate=no 2w1(w$#38  
faxdetect=incoming "I(66fT !  
group=1 &5k+'i~9  
channel=2 U8'|VUZV  
到此为止,需要手动修改配置文件的部分已经全面完成! }tTUBK hO"  
-}v*8{GTD  
四、通话试验 t~snzzM  
下面的操作全部由FreePBX图形化操作完成,非常方便: $w`<71g  
t5DYic  
1. PC软电话之间互相通话 3i?5Bj|O  
(1) FreePBX --> Tools --> Module Admin --> 选择全部模块 --> Enable --> Submit 3O=iqgD9  
(2) FreePBX --> Setup --> Extensions 添加四个分机号用于PC软电话测试 (SIP分机号2201、2202; IAX2分机号2101、2102) eeNx~Z,S  
(3) 为外网用户拨入做好SIP及IAX的防火墙端口映射 dw>P$B|9  
此时内外网软电话之间完全可以正常通话 k=dP 0  
>HU0Y0lF  
2. 由内部分机或任意地方的软电话分机拨打其他PSTN电话或手机,即内线拨打外线: #EMnhR(6j  
(1) 系统已经默认设置了9作为outside拨号规则,如果你只装了一片FXO卡,这时系统无需作调整,应该已经可以拨打外线电话及手机了。 )6jV4�  
例如使用X-Lite登陆系统,注册2201分机后,先拨9再直拨外线号或手机即可成功。 l(<nH.jC  
注意: 如果你接在FXO卡上用来测试的线路是电信汇线通,那么就要拨2个9再拨外线号了。第一个9是Trixbox要求的,第二个9是电信汇线通呼叫外线要求的。其他类型的线路原理相同。一般来说使用家用电话线路测试则只需拨第一个9。 [MJ:GMvI  
(2)我使用两片FXO卡以解决呼叫转移的测试,此时我们最好定义一下呼出路由使用的Trunk顺序 #pzZd-sa!-  
先修正两个ZAP Trunk的设置: C0`S7 )24  
在FreePBX中修改系统默认的Trunk Zap/g0的名称为1,即:FreePBX --> Setup --> Trunks --> Trunk Zap/g0 --> Zap Identifier (trunk name)的值由g0改为1 he{)Z0avo  
然后再添加一个Zap Trunk,将Zap Identifier (trunk name)的值设定为2 uM[Y`qV42  
最后在Outbound Routes中修改0号路由9_outside的设置:将Trunk Sequence的值定为ZAP/2,即:我们固定由2号线路/FXO卡做呼叫转移(呼出)的动作,那么我们拨打1号线路/FXO卡时,如果设置了呼叫转 移,Trixbox就能把拨到1号线路的电话由2号线路转移出去了! S%A~ B  
至少到现在为止,我还不能将拨到1号线路的电话还是由1号线路转移出去。我个人觉得PSTN信号的单FXO卡是无法完成的! *.N@n;  
LEfcZ(e  
3. 由外部PSTN线路或手机呼叫Trixbox所连接的两个PSTN电话号码 f,8b+ie=  
此时呼叫,系统不会正确处理,不信你用软电话拨打7777或直接用手机拨打Trixbox的两条线路看看。 aK},D&3,  
<?'GPwJ2  
我们现在来进行最精彩的实验部分: ']Ok#�a]  
实验目标:外线呼叫,首先由一级IVR处理,给出语音提示(欢迎致电xxxx,请直拨分机号,或请拨0由总机为您服务。联系小张,请按1;联系小王,请按2;客服座席排队测试,请按3;试听背景音乐,请按4;返回,请按5) 6|?M/$�  
按0,来电转移至某个固定电话或手机A; }'BT/0=x  
按1,由二级IVR处理,给出语音提示(办公电话请按1;手机请按2;返回请按0) ev_*J+v"  
按2,由二级IVR处理,给出语音提示(办公电话请按1;手机请按2;返回请按0) "y~a^rJ  
按3,由自定义的Quere处理 W& ,  
按4,播放一段音乐(播放音乐过程中,按0重新播放、按1返回一级IVR) 'Wc@1}[r  
按5,回至一级IVR NtuTGmS  
2<lA `C,  
各位,先准备wav格式的语音提示文件吧,最简单的方法就是直接反复使用X-Lite拨打*77录音,然后拨打*99测试,满意则将/tmp /unmamedivrrecording.wav通过scp拷贝出来改名保存吧。这样你可以很快的制作出一系列的语音文件留以后用。 z2!%i  
)MrxekDP  
具体步骤: hKd'nWY)  
先添加System Recordings:强烈建议你直接使用upload with .wav format方式,然后给这些录音在系统中命名,例如Main IVR Menu, Layer2 Menu等 d$A&~'6m:  
_�P- 8W>j  
然后通过Digital Receptionist添加IVR U^Dw$_i2  
注意Enable Direct Dial很重要,允许用户直接拨打分机号 WW'Y@F~e  
R$L Q/)H  
再建立一个Queue用于排队测试,例如让这些分机加入排队 e~|'(/  
2101 _TG zO4[  
2102 uzW #_  
2201 T tv'r<|Z  
2202 )ZKDbWu  
2804 `]k`f3>z  
提交后系统会自动将格式修正: 4albp~hn!Z  
2101,0 3N)>4bQ%L(  
2102,0 w7=O  
2201,0 B7Hg"~,9c  
2202,0 Su%Mee v!J  
2804,0 92~JS"I  
XI |Swk  
以上操作,还有多层IVR菜单应用,通过FreePBX操作,应该没有什么难度,我再次就不细述了。如果需要,我另外再补充。 [f@O3u z  
注意别忘了最后设置Inbound Route,将所有来电设置到第一级IVR上,即首层欢迎菜单上。这样才能使外线拨入后首先听到语音提示。 !/En^>o&  
lXX1AwiS31  
下面看看重点难题:如何将外线呼叫转移到另外的外线(或手机)上? G{aS` wC  
有两种方法: E�UR`2N  
1. 建立Queue,然后在Queue中的static agents中输入需要转接的目的外线号,记得前面加9,然后将这个Queue放至IVR中处理。 9!Efq?"r  
例如将前台的号码前面加9后定义为QueueQT,然后把QueueQT做为Welcome IVR的按0动作 visuQr7.  
2p?W�npL8  
2. 建立一个无用户使用的SIP或IAX分机号,然后为该号码设置Follow Me, 在Follow Me中的Extension List中输入9加外线号再加#结束,然后把这个Follow Me项目提供给IVR处理。 &vZ@J6nU[  
例如将前台的号码前面加9后面加#后定义为FollowQT,然后把FollowQT做为Welcome IVR的按0动作 :p`(D4(D  
{H)U�!Q@I  
有没有更直接、更简便的方法?我不知道。 E;rG2iC  
88$oDT7  
(完) jBOZvj  
�]7C#uC#  
[ 本帖最后由 alanpeng 于 2006-11-5 03:11 AM 编辑 ] 9*CA;8!S  
-------------------------------------------------------------------------------- @ !vI  
作者: dynaguy   时间: 2006-11-5 10:22 `S>:gA9  
Z$tbt6|  
先赞一个! -#U$r'Z  
DZSB6kyf  
晚上有时间,再交流一下。 zs[G D9t  
-------------------------------------------------------------------------------- Y+>NG~dE  
作者: flow   时间: 2006-11-5 12:25 - Pgw^1  
X&X4p4CQ1  
搂主辛苦了,我代表仍在苦苦摸索的弟兄们向你致敬!! 16` �ug5  
-------------------------------------------------------------------------------- P>7G`^}B{  
作者: dynaguy   时间: 2006-11-5 12:36 ~3O,+ h  
Gb (6q?I  
^4=8d(SM  
^k''];et  
InM:Iv%d)5  
QUOTE: vfGh"OS6  
如何将外线呼叫转移到另外的外线(或手机)上? %#h9et|T;O  
$vAR[/  
我是这样做的: TKR]&fh  
FreePBX-->Setup-->Extensions-->Custom <|^J$  
[X6Wg~v  
6CFC;A  
QUOTE: UQ^YlN5  
Extension Number: 188 iu&u(18/  
dial: SIP/DigiVoice/6042222188 VG5^CUb[n  
`0_t67@`  
Submit-->red bar Save N|24* 9A  
/'.ea  
上面,DigiVoice是一个SIP Trunk ,6042222188则是手机号,我取其后3位作为分机号。(当然,你已可以干脆建一个6042222188分机!) EXE�[A&e  
"OlcH!z<1  
如果从内部分机拨打188,TrixBox则接通此手机。 5'O=uc  
CL �LRAj(  
这样,外线打进来的电话,你就可转到188,于是TrixBox就会拨转到手机。 X n"@47V,  
@E.z/pJ/7  
因为这时手机号已经几乎等同于分机号,所有对分机的操作几乎也就对手机都适用。试试看,手机也可以放在Queue里。但也还是有一些例外,像打到手机的电话就不能直接转回倒另一个分机(还是有办法实现,但要复杂一点)。 ;r6A,KnV  
!k ^]T  
同理,你也可以用ZAP(PSTN)或IAX来实现,分机设置时要用 ZAP/ZAP Trunk/手机号 或 IAX/IAX Trunk/手机号 #ow#0tko  
,)JK/L  
[ 本帖最后由 dynaguy 于 2006-11-4 10:01 PM 编辑 ] gSjmlO"  
-------------------------------------------------------------------------------- z:#neN  
作者: alanpeng   时间: 2006-11-5 13:23   标题: 回复 #4 dynaguy 的帖子 (@JzQ)NO  
C 9Dk%{  
谢谢dynaguy提出的第三种方法(自定义分机号),非常好! K1c!|(M&  
我用下面这种格式通过了测试: #;n7w<E  
Local/9我的手机号码@outbound-allroutes W'q-Xop0  
. Yhq?'g5  
同时,想问一个别的问题: Xwg1aP$  
平时,电信汇线通群内的用户如果使用支持转接键的电话机,是可以将接通的外部来电由R键转给另一个用户(四位内线短号)的,Trixbox接到来电时可否也作类似的动作呢?即: w1 %H  
EJx3G|Ns  
如果我的实验环境是在一个汇线通群内部,只利用一片FXO卡在做转接时,可否仅仅送一个短叉簧音(即:<=0.1秒的叉簧中断信号)+分机短号给局 端,模拟转接键R的功能?这样我的Trixbox就可以纯粹作为一个话务台了,接到来电将其转移至别的电话后立即释放通道。 uFX|7t  
/4&!PF '  
现在我的Trixbox放在公司汇线通群内,想把它替换原来的前台话务台,可是用户打入电话后,虽然能听到语音提示,也能选按分机号码,但转接成功后该线路通道一直没有释放,此时再有电话打进,则忙音了。除非前面那个电话讲完。 M].Zc8`d  
'!TSl.  
这是不理想的。因为话务台只需要负责将来电信号成功转接至另外的电话,而不是一只占用通道直至通话结束。 e/K`Yab  
8Z:/p>heis  
[ 本帖最后由 alanpeng 于 2006-11-5 06:46 PM 编辑 ] PHL;WI(  
-------------------------------------------------------------------------------- Yps)X  
作者: flow   时间: 2006-11-6 21:50 /z xa}R)  
gPN4Pn  
请问两位高手,你们的x100p支持来电显示吗?可以显示拨入trixbox的callerid吗? V:}1@ q=K  
-------------------------------------------------------------------------------- c3j~b2N  
作者: dynaguy   时间: 2006-11-7 02:02 F_#�u.*_  
&*J=7W  
y^lngNP$  
9UzPs4 &n  
|5|2`"fe  
QUOTE: ;@^cLZ  
原帖由 flow 于 2006-11-6 05:50 AM 发表 yo 4Hf/+l  
请问两位高手,你们的x100p支持来电显示吗?可以显示拨入trixbox的callerid吗? ?w @k`},>  
|,&L9kzR  
可以 vLaAzZ*  
-------------------------------------------------------------------------------- sUUJ2131  
作者: flow   时间: 2006-11-7 10:46 } _  
5xG}9xh  
dynaguy兄,我给你发了一封短消息,麻烦看一下。 =Jfo`)E  
-------------------------------------------------------------------------------- HGt@.[6�  
作者: flow   时间: 2006-11-7 10:49 h)ywoof  
@LH^q%WT)%  
dynaguy兄,我的邮箱是magicsci@gmail.com ,能告诉我你的msn吗?可以发到我的邮箱里。 ij/_.L@  
-------------------------------------------------------------------------------- &)=WsN  
作者: o123321o   时间: 2006-11-7 17:22 SGGwh  
/y(b"  
我折腾了半天,一直显示unknown,貌似是PSTN没有来电显示,nnd YYY|{&r}  
-------------------------------------------------------------------------------- qGg~::/Yc  
作者: alanpeng   时间: 2006-11-10 18:19 @Jju ,-  
bGj3?oP}j  
关于转接后释放通道资源的问题 Z0gN!ED  
2`IAoV|7$f  
终于知道我的问题有解了: Ot_-k794Mi  
http://www.voip-info.org/wiki/index.php?page=Asterisk+cmd+Flash .-�pi`= _H  
I%.BBIFM0  
不过具体设置还得花点时间看看能否成功。如果调试完,Trixbox就完全成为一个自动话务总机了,呵呵。 FU3)Q/WG  
L=MBrvV%.  
建议大家花点时间学习一下Dialplan,这样才能做出复杂应用。 *d1{k  
SA) Y"_0_  
我的环境正好要Trixbox发送flash很短的闪断信号作为转接功能,这样的转接与我在最初试验中的使用第二个通道呼出是完全不同的,它转接后立即释放通道资源。 SWUn' v

附件: Asterisk.pdf (2322 K)

附件: trixbox_without_tears.pdf (2910 K)

trixbox不相信眼泪相关推荐

  1. FreeSWITCH权威指南-前言

    文章目录 前言 为什么写这本书 本书面向的读者 本书的内容及特色 排版及约定 如何阅读本书 实验环境及软.硬件设备选择 资源和勘误 致谢 特别鸣谢 前言 我们已经步入了一个新的时代. 当前, VoIP ...

  2. WannaCry 不相信眼泪 它需要你的安全防御与响应能力

    在过去的几天里,WannaCry恶意软件及其变体影响了全球数百家组织与机构. 尽管每个组织都会因各种各样的原因没能及时对存在漏洞的系统做更新保护,或者担心更新实时系统的风险,两个月对于任何组织来用于采 ...

  3. 儿科医生的眼泪,全被数据看见了

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」,购票请扫码咨询 ↑↑↑ 作者 | AlfredWu 来源 | Alfred数据室(ID:Alfred_Lab) <人间世> ...

  4. unity天空盒渐变_「是日美好事物」野兽派带来“金色眼泪”治愈新香,LV耳机印上蓝色天空...

    记者 | 龚婧徽 编辑 | 楼婍沁 野兽派带来"金色眼泪"全新香氛系列 也许在人类共情的特殊时刻,大家对于色彩的感知比往常更为敏锐且心照不宣.日前潘通发布了2021年度代表色,其中 ...

  5. 关于项目重构,知道真相的程序员眼泪笑了出来

    本文授权转载,作者:非著名程序员(公众号:smart_android) 其实过完年回来,我们的项目也一直在强调重构,在实践重构中,但是到目前为止,基本没啥进度.关于项目的重构,我说:基本上大部分都是骗 ...

  6. 生命不能承受之轻——沉重的眼泪

    有人哭,代表着爱! 一场灾难使这两个孩子永远的失去了母亲,他们将怎样面对将来的生活呢?(他们的母亲在广东揭西鞭炮厂的爆炸事件中身亡) document.body.clientWidth-333)thi ...

  7. 唏嘘!知名音乐站再传倒闭:官网、App挂掉,“留下了时代的眼泪...”

    国内知名MV在线欣赏与传播平台音悦台昨天又上热搜了,疑似倒闭. 据多位网友反映,音悦台官网出现故障,仅首页和部分页面可以访问,视频MV无法播放. 音悦台官MV播放页面 App也疑似挂掉了. 还有人反映 ...

  8. swiper 上滑触发_新知 | 为何红酒杯壁挂“眼泪”,骑自行车不会倒,冰面那么滑?...

    pixabay.com 撰文 | 二宗主 图片 | 岳   岳 ●         ●         ● 无论是宇宙深处神秘的黑洞的样子,还是微观世界中的亚原子粒子的行为,科学家已经解锁了许多我们甚 ...

  9. 离人计算机乐谱,离人简谱 林志炫离人挥霍着眼泪,回避还在眼前的离别

    离人 - 林志炫 (Terry Lin) 词:厉曼婷 曲:何家文 编曲:林庭逸/韩贤光 银色小船摇摇晃晃弯弯 悬在绒绒的天上 你的心事三三两两蓝蓝 停在我幽幽心上 你说情到深处人怎能不孤独 爱到浓时就 ...

最新文章

  1. 【基础知识】如何快速转发CSDN博客
  2. Java多线程系列七——ExecutorService
  3. npoi 设置单元格不能修改_真巧妙!没密码也能解锁 Excel 单元格保护
  4. Webservice开发之xsd文件示例代码
  5. 1390: 队列问题(1)(vector模拟)
  6. 保镖机器人作文_我的小保镖作文500字
  7. 联合体(union)和结构体(struct)的区别
  8. [PAT乙级]1019 数字黑洞
  9. kinect中psi是什么_PSI的完整形式是什么?
  10. python里面的循环语句
  11. 【资源】斯坦福李飞飞高徒Johnson博士论文: 组成式计算机视觉智能(附195页PDF)
  12. 3.性能测试通过标准
  13. 使用其它模块的头文件
  14. 看了有多个人格的人,自己拍的视频
  15. linux常用指令(持续更新……)
  16. docker常用命令
  17. ntfs是什么硬盘?ntfs硬盘如何在苹果电脑使用
  18. Telink BLE MESH开发|ble mesh开发教程《四》telink_sig_mesh休眠与唤醒
  19. 史上最简单的 GitHub 教程
  20. 计算机网络图标不见了,电脑网络图标不见了怎么恢复

热门文章

  1. 隐私保护与数据利用的冲突,如何避免成为透明人
  2. Linux 的FHS
  3. 苹果待处理订单要多久_用苹果 iPhone 时操作失误被扣费,该如何申请退款?
  4. 企业集群平台架构设计与实现(lvs/haproxy/keepalived)-高俊峰-专题视频课程
  5. configure: error: OpenSSL library not found
  6. 心态崩了!税前2万4,到手1万4,年终奖扣税方式1月1日起施行~
  7. 阿里云MVP:开发者的超能力,用技术创造更好世界
  8. 配置nagios和nconf使用短信报警
  9. 焦耳小偷工作原理分析
  10. udp丢包原因和解决