freeswitch对接其它SIP设备

freeswitch对接其它SIP设备,第1张

这几天用到freeswitch对接其它设备方面的知识,这里整理下,也方便我以后查阅。

*** 作系统:debian8.5_x64

freeswitch 版本 : 1.6.8

一、freeswitch作为被叫设备

freeswitch作为被叫设备和其它设备对接的情况比较简单,可以直接通过5080端口呼入。

freeswitch默认配置默认开启5080端口的对接(conf/dialplan/public.xml中关于public):

<extension name="public_extensions">

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

        <action application="transfer" data="$1 XML default"/>

    </condition>

</extension>

二、freeswitch作为主叫设备

这里主要描述下freeswitch作为主叫设备怎么对接其它sip设备(使用sipp模拟)。

HostA : 192.168.1.100

HostB : 192.168.1.101

其中HostA上安装freeswitch,HostB使用sipp模拟其它设备。

使用sip uri格式对接

1、编辑A机中 conf/dialplan/public.xml 文件 ,添加如下extension :

<extension name="hostB">

        <condition field="destination_number" expression="^0(.*)$">

                <action application="bridge" data="sofia/external/sip:$1@192.168.168.101:5080"/>

        </condition>

</extension>

2、B机上使用sipp模拟uas设备,命令如下:

sipp -sn uas -p5080

A机重新加载xml文件( F6 或 reloadxml ),在A的1000话机上拨打号码 01234 即可看到对接效果。

使用网关对接

1、在A机上创建 conf/sip_profiles/external/gw_a.xml 文件,添加如下内容:

<include>

        <gateway name="gw_A">

                <param name="username" value="anonymous"/>

                <param name="from-user" value=""/>

                <param name="password" value=""/>

                <param name="outbound-proxy" value="192.168.1.101:5080"/>

                <param name="register-proxy" value="192.168.1.101:5080"/>

                <param name="expire-seconds" value="120"/>

                <param name="register" value="false"/>

                <param name="register-transport" value="UDP"/>

              拦桐  <param name="caller-id-in-from" value="true"/>

                <param name="extension-in-contact" value="true"/>

                <variables>

        搭贺                            <variable name="gateway_name" value="gw_A"/>

                </variables>

</gateway>

</include>

2、打开A机中 conf/dialplan/public.xml 文件 ,添加如下extension :

<extension name="gw_A">

            <condition field="destination_number" expression="^9(.*)$"><action application="bridge" data="sofia/gateway/gw_A/$1"/>          知衡派         

                 </condition>

</extension>

3、B机上使用sipp模拟uas设备,命令如下:

sipp -sn uas -p5080

4、加载网关配置,需在A机器执行如下命令:

sofia profile external rescan

A机重新加载xml文件( F6 或 reloadxml ),在A的1000话机上拨打号码 91234 即可看到对接效果。

本文github地址:

https://github.com/mike-zhang/mikeBlogEssays/blob/master/2016/20160916_freeswitch对接其它SIP设备.md

欢迎补充 

(1)使用安装包安装

Windows用户可以直接下载安装文件,下载地址为http://files.freeswitch.org/windows/installer/。然后根据自己的系统选择不同目录,32位系统的用户选择x86目录,64位系统的用户选择x64目录。freeswitch.msi是最新的安装程序,一般隔几天就会更新一次版本。笔者的测试环境是32位的Windows XP,下载界面如图3-3所示

如同安装其他程序一样,我们全部选择默认设置即可,也就是说只要连续单击“Next”按钮就能安装完毕。安装差雹完成后选择”开始菜单”→“所有程序”→“FreeSWITCH”→ “FreeSWITCH”便可以启动FreeSWITCH了,启动后的界面如图3-4所示。

如果安装过程中你没有修改默认安装路径的话,那么FreeSWITCH的实际安装路径是:c:\Program Files\FreeSWITCH,配置文件在该目录的conf目录下

(2)从源代码安装

如果从源代码安装,则首先要下载源代码。在此我们以1.2.10版为例,其下载地址是:http://files.freeswitch.org/freswitch-1.2.10.tar.gz。

除此之外,也可以Git仓库获取源代码。Git是FreeSWITCH使用的版本控制工具,从Git仓库获取源代码的好处是可以随时更新,并可以很方便地切换到不同的代码分支,甚至“倒回”到任意提交点。

如果从Git仓库获取源代码,需要先在Windows上安装Git。使用哪个Git版本不是很重要,笔者用的是从

https://code.google.com/p/msysgit/downloads

/list?q=full+installer+official+git下载的 1.8.3-preview 版。

安装Git很简单,一般来说双击安装文件并连续单击“Next”按钮即可安装完毕。不过,在Windows平台编译FreeSWITCH有几个要注意的事情,因此在安装Git的过程中我们也需要注意以下问题,并做适当的选择:

将FreeSWITCH的源代码放到一个“干净”的目录下。为避免有时候遇到奇怪的问题,最好把代码放到一个比较桐圆不容易出问题的目录下,如可以放到

C:\src\freeswitch 或D:\src\freeswitch下,这两个都是比较好的目录。而像 C:\My

Documents(有空格)或C:\源代码中文目录\freeswitch(有中文)之类的则在编译或使用时可能会有问题。

Git相关的环境变量。Git是从UNIX系统上移植过来的一个命令行工具,因此需要一些相关的环境变量。在安装时有三个选项(见图3-5),笔者

建议使用第三项,这样最省心。当然,第三项与Windows系统的命令会有少量冲突,如find等。但实际上,你可能永远不会用到Windows上的命令

行工具,因此,在安装过程中果断选择第三项可以省去不少麻烦

关闭Git的自动换行符转换。众所周知,Widows使用“回车+换行”(“\r\n”,又称作“CRLF”)做换行符,而UNIX仅使用“

\n”。Git可以自动在不同的换行符间转换。但问题是,有时候自动转换不靠谱,尤其是对于FreeSWITCH这样大型的项目,所以笔者一般在安装

Git时就关掉这一选项(否则在编译阶段可能会出奇怪的错误),如图3-6所示

接下来可以连续按“Next”按钮直到安装完毕。Git安装完毕后就可以切换到命令行方式,使用git clone命令把远程的版本仓库复制到本地了:

git clone git@git.freeswitch.org/freeswitch.git

复制完毕后,默认的分支是master分支,即最新的分支。FreeSWITCH对不同版本的安装包在Git仓库中有不同标签与之相对应。使用如下命令可以列出所有的标签(tag,为节省篇幅,省略了一部分输出):

C:\src\freeswitch>git tag

v1.2.0

v1.2.1

v1.2.10

v1.2.21

v1.2.22

v1.2.9

v1.5.7

可以用以下命令检出对应的标签并建立一个新的本地分支,(我局庆塌们在这里仍然使用1.2.10版):

C:\src\freeswitch>git checkout -b v1.2.10

Switched to a new branch 'v1.2.10'

当然,如果你不习惯使用这种命令和工具,则可以下载Tortoise Git图形界面工具

Tortoise Git也允许通过AutoCrlf复选框选择是否开启自动换行符转换,为避免它自动转换,我们应该保证该复选框是非选中状态的,如图3-7所示

使用图形界面的方式对FreeSWITCH的源代码进行复制会比命令行方式直观一些,如图3-8所示

复制完毕后,可以使用右键菜单,通过选择相应的菜单项检出(checkout)相应的标签或分支,在这里就不多介绍了。

有了FreeSWITCH源代码,接下来还需要下载编译工具。Microsoft提供Visual

Studio工具进行开发。FreeSWITCH中有VS2005、VS2008、VS2010以及VS2012的工程文件。VS2008及以前的支持已

经不再更新了,因此不推荐使用。VS2010和VS2012目前是官方支持的版本。在此,笔者使用VS2010 Express版为例加以说明。

FreeSWITCH的源代码目录下有一个名为Freeswitch.express.2010.sln的Solution文件,双击鼠标打开它,

然后选择菜单项“调试”→“生成解决方案”,或按快捷键F7,就可以进行编译了。不出问题的话,编译成功后将会在源代码目录下的Win32目录下出现

Debug或Release目录(取决于编译前的选择,默认为Debug),编译完成的目标文件都会在这些目录下。

通过Websocket衔接的

softphone 从freeswitch接受消息,通过Websocket发空凯送给CRM系统

详细可敏扮咨询苏州大斗拿唤宇宙信息创造 呼叫中心CRM系统


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12551114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存