随笔 - 272  文章 - 0  评论 - 283  阅读 - 142万

freeswitch对接其它SIP设备

这几天用到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 -p 5080

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 -p 5080

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

欢迎补充 

posted on   Mike_Zhang  阅读(4583)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

点击右上角即可分享
微信分享提示