【通讯笔记】Freeswitch 多端桥接

Freeswitch 多端桥接

示意图

在这里插入图片描述

模拟情况简述:

用A 的1001 呼叫 c1002 ,实现 呼到 C的1002 分机上.

1.1 IP 模拟分配情况

A: 10.10.1.101

B: 10.10.1.102 , 10.10.2.201

C: 10.10.2.202

网络打通,添加相关路由.

1.2 A的呼出拨号计划(dialplan/default.xml)
<extension name="SIP">
     <condition field="destination_number" expression="^c1002$">
         <action application="bridge" data="sofia/external/1002@10.10.1.102:5280"/>
     </condition>
</extension>
1.3 B创建两个sip_profiles

操作:

  1. sip_profiles/external.xml 重命名为ex_net1.xml .
  2. 复制一份 , 重命名为 ex_net2.xml
1.3.1 sip_profiles/ex_net1.xml 将对应变量改为对应的固定值:
name=ex_net1

<param name="rtp-ip" value="10.10.1.102"/>
<param name="sip-ip" value="10.10.1.102"/>
<param name="ext-rtp-ip" value="10.10.1.102"/>
<param name="ext-sip-ip" value="10.10.1.102"/>
<param name="sip-port" value="5280"/>
1.3.2 sip_profiles/ex_net2.xml 将对应变量改为对应的固定值:
name=ex_net2

<param name="rtp-ip" value="10.10.2.201"/>
<param name="sip-ip" value="10.10.2.201"/>
<param name="ext-rtp-ip" value="10.10.2.201"/>
<param name="ext-sip-ip" value="10.10.2.201"/>
<param name="sip-port" value="5080"/>
1.4 B的呼入拨号计划(dialplan/public.xml) 桥接计划
<extension name="test_name">
	<condition field="network_addr" expression="^10\.10\.1\.101$"/>
	<condition field="caller_id_number" expression="^1002$">
		<action application="bridge" data="{origination_caller_id_number=1001}sofia/external/${destination_number}@10.10.2.202:5080"/>
	</condition>
</extension>
1.5 C的呼入拨号计划(dialplan/public.xml)
<extension name="test_name">
	<condition field="network_addr" expression="^10\.10\.2\.201$"/>
	<condition field="caller_id_number" expression="^1002$">
		<action application="bridge" data="{origination_caller_id_number=1001}user/1002"/>
	</condition>
</extension>
1.6 呼叫测试
1.6.1 分别登录 A的1001 和 C的1002
1.6.2 A的分机 1002 输入 c1002 呼叫,接通测试相关情况.

核心点

1. URI

SIP URI是通过SIP呼叫他人的SIP地址方案。换句话说,一个SIP URL就是一个用户的SIP电话号码。

SIP-URL按以下格式书写:

sip[s]:username@domain:port

sip 为协议

username 被叫

domain 域

port 端口

例如:

sip:1001@10.10.10.101:5060

2. dialplan(拨号计划)

dialplan(拨号计划)分为 default.xml (出方向) 和 public.xml (入方向) .

此处主要用到 public.xml ,配置路径如下

/usr/local/freeswitch/conf/dialplan/public.xml

配置内容如下:

<extension name="test_name">
	<condition field="network_addr" expression="^10\.10\.10\.201$"/>
	<condition field="caller_id_number" expression="^101001$">
		<action application="bridge" data="{origination_caller_id_number=1001}sofia/external/92${destination_number}@10.10.10.202:5060"/>
	</condition>
</extension>

示例解释:收到来自 10.10.10.201 的 主叫为 101001 呼叫时,将呼叫桥接至 10.10.10.202 并修改主叫为 1001,被叫加前缀92.

其中:

test_name 为计划名-自定义.

network_addr 为 对方IP.

caller_id_number 为 对方的主叫号码.

bridge 是 桥接应用,(关键),将 匹配中的呼叫转接到指定地址.

  • origination_caller_id_number 上游主叫.
  • destination_number 上游被叫号码.
sofia/external/
# 表示 使用 sofia 模块 external 配置

3. 场景假设

假设有三台设备:A,B,C

A 呼叫 B 转接 到 C .

在B上配置 public.xml ,将满足条件的呼叫 桥接(bridge) 至 C .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值