`

SIP、IAX内外网与PSTN线路及手机互相通讯的实例

    博客分类:
  • SIP
阅读更多

在此次试验中,并没有讨论不安装板卡,直接由SIP Trunk连接其他SIP服务器来使得SIP用户拨打外部电话的问题。
本篇仅用于讨论使用FXO卡测试内外线进出的相关问题。

一、实验环境
1. Trixbox服务器硬件
(1) 奔腾III500MHz / 192MB SDRAM / 13G HardDisk / BX主板 with 4PCI插槽
(2) 在两个PCI插槽中各安装一片X100P FXO克隆卡
2. 电话线路及话机
(1) 两路普通PSTN市话线路分别接入两片FXO卡的Line口
(2) 若干路其他PSTN线路及模拟话机(可选项)
(3) IAX及SIP Softphone软件,例如X-Lite及KIAX等
(4) 手机两部(可选项 )
3. 宽带网络ADSL环境
Linux代理及防火墙服务器外网卡接了Linksys宽带路由器,内网卡与Trixbox服务器相连,拓扑结构如下:
Switch-----Linux NAT Server-----Linksys ADSL Router-----Internet   ~- ~- ~- ~- ~- ~   PC with IAX/SIP softphone (remote)
|
|---------------Trixbox Server===============2 PSTN Line=====
|---------------PC with SIP softphone (local)
|---------------PC with IAX softphone (local)
|......

二、安装过程
1. Trixbox1.2.3.iso镜像文件、刻录光盘、启动、回车自动安装,清除所有原硬盘数据
千万不可接上其他有资料的硬盘,这种方式所有硬盘的数据都会丢失,即便你在BIOS中屏蔽了你的其他硬盘!!!

(如果你没有多的硬盘来做实验,例如在已经装有Windows的硬盘上加装Trixbox系统,光盘启动后就敲expert回车吧,自定义分区安装的方式与直接回车的最后结果对于Trixbox系统来讲,除了留住原有数据及Windows外没有什么区别。不过需要更长时间而已。 选择安装所有包,重启后解压光盘上的trixbox1.2.3.tar.gz到/var/trixbox_load,然后运行/var/trixbox_load/install_all.sh即可,这种手动模式有的机器运气不好,在munin模块安装时可能需要多等待1-2个小时,需要耐性,呵呵)
2. 定义时区、root密码后,一切按照默认选项,机器第一次重启后取出光盘,第二次重启后完成安装,停在登陆模式

三、调试配置各参数
1. 需要升级 FreePBX及清除Kernel Panic错误隐患的朋友们,可以参考dynaguy兄弟相应的帖子进行第一步动作,我的实例没有对FreePBX升级,但是由于机器会发生重启死机,于是首先修改/etc/rc.d/rc6.d/K92zaptel解决隐患!
2. 由于安装了两片FXO卡,则修改/etc/zaptel.conf,加入两行蓝色语句如下:
fxsks=1
fxsks=2
loadzone        = us
defaultzone     = us
3. 修改/etc/asterisk/zapata.conf,加入三行蓝色语句如下:
[trunkgroups]
[channels]
busydetect=yes
language=en
context=from-zaptel
signalling=fxs_ks
usecallerid=yes
hidecallerid=no
callwaiting=yes
usecallingpres=yes
callwaitingcallerid=yes
threewaycalling=yes
transfer=yes
cancallforward=yes
callreturn=yes
echocancel=yes
echocancelwhenbridged=no
echotraining=800
rxgain=0.0
txgain=0.0
group=0
channel=1
callgroup=1
pickupgroup=1
immediate=no
faxdetect=incoming
group=1
channel=2
到此为止,需要手动修改配置文件的部分已经全面完成!

四、通话试验
下面的操作全部由FreePBX图形化操作完成,非常方便:

1. PC软电话之间互相通话
(1) FreePBX --> Tools --> Module Admin --> 选择全部模块 --> Enable --> Submit
(2) FreePBX --> Setup --> Extensions 添加四个分机号用于PC软电话测试 (SIP分机号2201、2202; IAX2分机号2101、2102)
(3) 为外网用户拨入做好SIP及IAX的防火墙端口映射
此时内外网软电话之间完全可以正常通话

2. 由内部分机或任意地方的软电话分机拨打其他PSTN电话或手机,即内线拨打外线:
(1) 系统已经默认设置了9作为outside拨号规则,如果你只装了一片FXO卡,这时系统无需作调整,应该已经可以拨打外线电话及手机了。
例如使用X-Lite登陆系统,注册2201分机后,先拨9再直拨外线号或手机即可成功。
注意: 如果你接在FXO卡上用来测试的线路是电信汇线通,那么就要拨2个9再拨外线号了。第一个9是Trixbox要求的,第二个9是电信汇线通呼叫外线要求的。其他类型的线路原理相同。一般来说使用家用电话线路测试则只需拨第一个9。
(2)我使用两片FXO卡以解决呼叫转移的测试,此时我们最好定义一下呼出路由使用的Trunk顺序
先修正两个ZAP Trunk的设置:
在FreePBX中修改系统默认的Trunk Zap/g0的名称为1,即:FreePBX --> Setup --> Trunks --> Trunk Zap/g0 --> Zap Identifier (trunk name)的值由g0改为1
然后再添加一个Zap Trunk,将Zap Identifier (trunk name)的值设定为2
最后在Outbound Routes中修改0号路由9_outside的设置:将Trunk Sequence的值定为ZAP/2,即:我们固定由2号线路/FXO卡做呼叫转移(呼出)的动作,那么我们拨打1号线路/FXO卡时,如果设置了呼叫转移,Trixbox就能把拨到1号线路的电话由2号线路转移出去了!
至少到现在为止,我还不能将拨到1号线路的电话还是由1号线路转移出去。我个人觉得PSTN信号的单FXO卡是无法完成的!

3. 由外部PSTN线路或手机呼叫Trixbox所连接的两个PSTN电话号码
此时呼叫,系统不会正确处理,不信你用软电话拨打7777或直接用手机拨打Trixbox的两条线路看看。

我们现在来进行最精彩的实验部分:
实验目标:外线呼叫,首先由一级IVR处理,给出语音提示(欢迎致电xxxx,请直拨分机号,或请拨0由总机为您服务。联系小张,请按1;联系小王,请按2;客服座席排队测试,请按3;试听背景音乐,请按4;返回,请按5)
按0,来电转移至某个固定电话或手机A;
按1,由二级IVR处理,给出语音提示(办公电话请按1;手机请按2;返回请按0)
按2,由二级IVR处理,给出语音提示(办公电话请按1;手机请按2;返回请按0)
按3,由自定义的Quere处理
按4,播放一段音乐(播放音乐过程中,按0重新播放、按1返回一级IVR)
按5,回至一级IVR

各位,先准备wav格式的语音提示文件吧,最简单的方法就是直接反复使用X-Lite拨打*77录音,然后拨打*99测试,满意则将/tmp/unmamedivrrecording.wav通过scp拷贝出来改名保存吧。这样你可以很快的制作出一系列的语音文件留以后用。

具体步骤:
先添加System Recordings:强烈建议你直接使用upload with .wav format方式,然后给这些录音在系统中命名,例如Main IVR Menu, Layer2 Menu等

然后通过Digital Receptionist添加IVR
注意Enable Direct Dial很重要,允许用户直接拨打分机号

再建立一个Queue用于排队测试,例如让这些分机加入排队
2101
2102
2201
2202
2804
提交后系统会自动将格式修正:
2101,0
2102,0
2201,0
2202,0
2804,0

以上操作,还有多层IVR菜单应用,通过FreePBX操作,应该没有什么难度,我再次就不细述了。如果需要,我另外再补充。
注意别忘了最后设置Inbound Route,将所有来电设置到第一级IVR上,即首层欢迎菜单上。这样才能使外线拨入后首先听到语音提示。

下面看看重点难题:如何将外线呼叫转移到另外的外线(或手机)上?
有两种方法:
1. 建立Queue,然后在Queue中的static agents中输入需要转接的目的外线号,记得前面加9,然后将这个Queue放至IVR中处理。
例如将前台的号码前面加9后定义为QueueQT,然后把QueueQT做为Welcome IVR的按0动作

2. 建立一个无用户使用的SIP或IAX分机号,然后为该号码设置Follow Me, 在Follow Me中的Extension List中输入9加外线号再加#结束,然后把这个Follow Me项目提供给IVR处理。
例如将前台的号码前面加9后面加#后定义为FollowQT,然后把FollowQT做为Welcome IVR的按0动作

有没有更直接、更简便的方法?我不知道。

分享到:
评论

相关推荐

    asterisk技术文档

    4. **iax.conf.pdf**:Inter-Asterisk eXchange(IAX)配置文件,是Asterisk内部通信协议,用于连接多台Asterisk服务器或者支持与IAX兼容的软电话。配置文件涉及信令、认证、编码和路由设置。 5. **extensions.conf...

    Asterisk教程

    - **context=from-pstn**:指定上下文为从PSTN(Public Switched Telephone Network,公共交换电话网络)来电。 - **signalling=pri_cpe**:指定信令方式为PRI CPE模式。 - **switchtype=euroisdn**:指定交换类型为...

    freeswitch

    - **多协议支持**:支持SIP、IAX2、Skype for Business、XMPP等多种通信协议,方便与其他通信系统集成。 - **会议和桥接**:可创建大规模的音频和视频会议,支持多用户同时参与。 - **媒体处理**:包括编解码、混音...

    支持pyramid2.x的kotti web代码

    Kotti 是一个基于 Pyramid 框架的 Python 内容管理系统(CMS),适合用来搭建中小型网站、文档库、企业展示平台、知识库等需要灵活内容结构和权限模型的项目。它本身更像一个可以二次开发的 CMS 框架,比 WordPress、Drupal 这类“一装就用”的系统更倾向于开发者定制和扩展。 这是支持pyramid2.x版本的kotti! tar -xzvf kotti1.0.tar.gz 解压缩 进入目录执行 pip install -e . 来安装, 然后执行pserve app.ini 启动。 用浏览器浏览127.0.0.1:5000 即可浏览。 用户名admin ,口令qwerty

    cmd-bat-批处理-脚本-hello world.zip

    cmd-bat-批处理-脚本-hello world.zip

    知识付费系统自动采集V3.0 跳转不卡顿+搭建教程

    知识付费系统自动采集V3.0 跳转不卡顿+搭建教程,不和外面的一样跳转卡顿,这个跳转不卡顿,支持三级分销。

    基于Matlab实现图像形状纹理颜色特征提取

    在Matlab环境下,对图像进行特征提取时,主要涵盖形状、纹理以及颜色这三大关键特征。其中,对于纹理特征的提取,采用灰度梯度共生矩阵这一方法来实现。通过灰度梯度共生矩阵,可以有效地捕捉图像中像素灰度值之间在不同方向和距离上的相互关系,进而量化地反映出图像的纹理特性,为后续的图像分析、分类等任务提供重要的纹理信息依据。

    实证数据-2010-2023年上市公司-管理层情感语调数据-社科经管.rar

    该数据集为2010-2023年中国A股上市公司管理层情感语调的年度面板数据,覆盖45,320条样本,数据源自年报及半年报的"管理层讨论与分析"部分。通过构建中文金融情感词典(融合《知网情感分析用词典》与L&M金融词汇表),采用文本分析方法计算情感语调指标,包括:正面/负面词汇数量、文本相似度、情感语调1((积极词-消极词)/总词数)和情感语调2((积极词-消极词)/(积极词+消极词))。同时包含盈利预测偏差、审计意见类型等衍生指标,可用于研究信息披露质量、市场反应及代理问题。该数据复刻了《管理世界》《财经研究》等期刊的变量构建方法,被应用于分析语调操纵对债券市场的影响,学术常用度与稀缺度较高。

    cmd-bat-批处理-脚本-FTIME.zip

    cmd-bat-批处理-脚本-FTIME.zip

    1747829038637.png

    1747829038637.png

    2025年自动化X光检查机项目大数据研究报告.docx

    2025年自动化X光检查机项目大数据研究报告.docx

    基于Logisim的原码与补码一位乘法器设计

    在计算机组成原理课程设计中,我全程跟随老师的指导,独立完成了以下两项任务:一是利用Logisim软件进行原码一位乘法器的仿真设计,通过逐步搭建电路、配置逻辑单元,实现了原码乘法运算的完整流程,深入理解了原码乘法的原理和实现机制;二是完成了补码一位乘法器的Logisim仿真,同样按照老师讲解的步骤,精心设计电路,确保补码乘法运算的正确性,进一步掌握了补码乘法的运算规则和电路实现方法。通过这两个项目,我不仅巩固了理论知识,还提升了动手实践能力和逻辑思维能力。

    cmd-bat-批处理-脚本-msvc2017.zip

    cmd-bat-批处理-脚本-msvc2017.zip

    cmd-bat-批处理-脚本-virtualcam-install.zip

    cmd-bat-批处理-脚本-virtualcam-install.zip

    二十四节气之立秋介绍.pptx

    二十四节气之立秋介绍.pptx

    cmd-bat-批处理-脚本-shift.zip

    cmd-bat-批处理-脚本-shift.zip

    二十四节气之小雪介绍.pptx

    二十四节气之小雪介绍.pptx

    java、SpringBoot面试专题,6页面试题

    java、SpringBoot面试专题,6页面试题

    cmd-bat-批处理-脚本-GenerateUnionWinMD.zip

    cmd-bat-批处理-脚本-GenerateUnionWinMD.zip

    二十四节气之大暑节气.pptx

    二十四节气之大暑节气.pptx

Global site tag (gtag.js) - Google Analytics