第一部分-基础篇-第三章:初识FreeSWITCH

序言

  学习资料来源《FreeSWITCH权威指南》-作者杜金房这本书。

  本笔记仅供个人学习和研究使用,任何商业行为或者从中获利行为均属于侵权行为。若有侵权请及时联系作者删除。

上一篇文章:

FreeSWITCH安装视频

3.1 什么是FreeSWITCH?

  可以理解为软件电话之间通讯的服务软件,是一个最早先的通讯系统

3.1.1 FreeSWITCH的概念

  这里引用官网的一句话:
  FreeSWITCH是一个开源的电话交换平台。官方给它的定义是——世界上第一个跨平台的、伸缩性极好的、免费的、多协议的电话软交
换平台

坦白来说就是:

  1. ·FreeSWITCH是;跨平台的:各种系统都是兼容的
  2. FreeSWITCH具有很强的可伸缩性:就是即可以做客户端的电话又可以做中间等等等额交换的中间件
  3. FreeSWITCH是免费的。
  4. FreeSWITCH支持多协议:支持SIP、H323、Skype、Google Talk等多种通信协议,并能很容易地与各种开源的PBX系统通信
  5. 等等优势

在这里插入图片描述

从专业的角度来说,她是一个B2BUA,就是说他是个免费的中间商

在这里插入图片描述

3.2 快速体验

Centos7安装FreeSwitch-1.6

3.2.1安装声音文件

  我们通常用的都是Linux或者Mac系统,这里的安装声音特别的简单,只要是在源代码中执行:

make sounds-install
make moh-install

  安装过程中将自动从files.freeswitch.org下载相关的语音包,并解压缩到相关的安装路径中
(默认安装在/usr/local/freeswitch/sounds下)。

安装16K的音频命令为:

make cd-sounds-install
make cd-moh-install
安装中文声音

  上述方法是安装官网的,有时候我们需要中文的声音。
  相关资料我先放这里了。

链接: https://pan.baidu.com/s/1QwnYOR79XRnav4avGN8kng 提取码: 9fry 复制这段内容后打开百度网盘手机App,操作更方便哦
第一步:上传音频包

如果你是默认的安装路径,请创建目录

/usr/local/freeswitch/sounds/zh/cn/link
在这里插入图片描述
上传刚刚我给你们分享的音频文件

第二步:修改 /usr/local/freeswitch/conf/vars.xml

在53行左右修改

<X-PRE-PROCESS cmd="set" data="sound_prefix=$${sounds_dir}/zh/cn/link"/>

添加(不添加也没事,最好添加一下)

     <X-PRE-PROCESS cmd="set" data="default_language=zh"/>
     <X-PRE-PROCESS cmd="set" data="default_dialect=cn"/>
     <X-PRE-PROCESS cmd="set" data="default_voice=sue"/>

在这里插入图片描述

第三步:修改安装位置的文件(注意第四步是源文件,不一样的)

/usr/local/freeswitch/conf/autoload_configs/modules.conf.xml

在136 行左右 取消 <load module="mod_say_zh"/> 注释 
没有就直接添加<load module="mod_say_zh"/>
第四步:编译源码mod_say_zh 模块 (和第四步骤不是一个东西)

cd /usr/local/src/freeswitch-1.8.2/src/mod/say/mod_say_zh

    make && make install
第五步:增加配置
cd /usr/local/freeswitch/conf/lang/
cp -fr en zh
cd zh
mv en.xml zh.xml

修改zh.xml(注意修改的地方)

 <language name="zh" say-module="zh" sound-prefix="$${sound_prefix}/zh/cn/link" tts-engine="mod_tts_commandline" tts-voice="link">

修改 /usr/local/freeswitch/conf/freeswitch.xml
在61行增加

  <X-PRE-PROCESS cmd="include" data="lang/zh/*.xml"/>
第六步:生效

进入freeswitch控制台输入以下命令

 reloadxml

或者直接重启

3.2.2默认号码及说明

在这里插入图片描述
在这里插入图片描述

3.3 配置FreeSWITCH

表3-2 配置文件的目录结构

在这里插入图片描述

3.3.1 用户配置

原文中提到了用户的配置文件,其实视频里面也有说,这里就不再累赘了,给大家放个甜蜜包

快速创建用户

怎么让新加的用户可以通呢,这就需要配置拨号计划了

方法一:
打开conf/dialplan/default.xml
直接在里面修改正则表达式,这里拿新添加用户为1234举例

<condition field="destination_number" expression="^(10[01]
[0-9])|1234$">

在这里插入图片描述
回到控制台或启动fs_cli,执行reloadxml命令或按快捷
F6,使新的配置生效

3.4 配置SIP网关拨打外部电话

该SIP账号(或提供该账号的设备)在
FreeSWITCH中称为SIP网关(Gateway)。

方法一:

第一步:创建文件

在/usr/local/freeswitch/conf/sip_profiles/external文件下创建xxx,xml文件

在这里插入图片描述
在这里插入图片描述

<gateway name="gw1">
<param name="realm" value="SIP服务器地址,可以是IP
或IP:
端口号"/>
<param name="username" value="SIP用户名"/>
<param name="password" value="密码"/>
</gateway>
第二步:网关生效
 sofia profile external rescan
第三步:显示一下网关的注册状态
 sofia status
第四步:通过网关拨号

originate sofia/gateway/gw1/xxxxxx &echo

  以上命令会通过网关gw1呼叫号码xxxxxx(可能是你的手机号),被叫号码接听电话后,FreeSWITCH会执行echo程序,你应该就能听到自己的回音了

第五步:优化第四步骤:直接拨号使用

配置拨号计划
default文件夹一般用内部用户
新建一个文件,
在这里插入图片描述

<include>
  <extension name="call out">
    <condition field="destination_number" expression="^0(\d+)$">
      <action application="bridge" data="sofia/gateway/gw1/$1"/>
    </condition>
  </extension>
</include>
^0(\d+)$”为正则表达式

这个括号是为了$1这个变量提取电话号码的:就是除了前面的0,后面的都要

或者直接在default.xml上修改
在这里插入图片描述

3.5 呼入电话处理

  需要SIP网关支持打进来。什么意思呢?就像手机号码一样,有的支持电话出去和打进来,有的只支持打出去不支持打进来

第一步:创建文件

public一般用于接收外来呼叫

  在default和public中,又通过include预处理指令分别加入了default和include目录中的所有.xml文件
  这些文件的优先级一般比直接写在default.xml或public、xml中要低

在/usr/local/freeswitch/conf/dialplan/public/文件下创建xxx,xml文件

在这里插入图片描述
你的DID:就是网关的那个号码,有可能是手机号这样的

<include>
<extension name="public_did">
<condition field="destination_number" expression="^(
你的DID)$">
<action application="transfer" data="1000 XML
default"/>
</condition>
</extension>
</include>
第二步:网关生效

控制台F6或者reloadxml或者重启Freeswitch

fs_cli>reloadxml
第三步:测试

用你的手机拨打DID,就是sip网关

我们可以看到,这个脚本写的是转接到1000名称这个用户,他的电话就这样被我们打通了
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代码浪人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值