freeswitch透传号码

百问和权威指南中,都说明bridge送主叫号码使用origination_caller_id_number或effective_caller_id_number ,我被害了哭


应该用origination_caller_id_name或effective_caller_id_name


今天研究freeswitch向外透传号码,账号是sip账号注册到对方的vos平台上


原来对方vos平台没有开通透传号码权限,只能透传一个设置好的号码,开通透传权限后,如果送到vos的号码有问题,将会呼叫失败。


vos平台开通透传权限后,在cli下使用   originate {ignore_early_media=true,origination_caller_id_number=87653150}sofia/gateway/out_gw1/18901056365可以拨通手机,并显示87653150这个号码


配置dialplan:

将原有的bridge   <action application="bridge" data="sofia/gateway/out_gw1/$1"/>

改为:

<action application="bridge" data="{origination_caller_id_number=87653150}sofia/gateway/out_gw1/$1"/>

但是使用注册到freeswitch的eyebeam拨打手机,则提示 UNALLOCATED_NUMBER 错误,无法完成呼叫


然后使用以下两个cli命令测试


originate {ignore_early_media=true,origination_caller_id_number=87653150}sofia/gateway/out_gw1/18901056365 &bridge(user/1008)   没问题


originate user/1008 &bridge({ignore_early_media=true,origination_caller_id_number=87653150}sofia/gateway/out_gw1/18901056365)   有问题


测试的结果是先执行originate 将中继呼通后,bridge内部分机没有问题

但是先呼通内部分机,再bridge中继线路,则会失败,咨询过群里的余老大和老李同志也没解决,后来通过抓包对比Remote-Party-ID



下面是没有问题的Remote-Party-ID


发现呼叫失败的Remote-Party-ID前面多了个Extension 1008    这部分只有在sip账号的配置文件中有


通过改动每一个caller_id_name  和caller_id_number确定了问题所在,只有改动effective_caller_id_name时,才可以正确呼叫并显示号码



FreeSWITCH中,你可以使用Dialplan来配置号码变化前的路由。Dialplan是一种用于定义呼叫路由、接和其它呼叫处理规则的配置语言。 要在号码变化前进行路由,可以使用`<extension>`标签来定义一个扩展,然后在其中配置相关的路由规则。 以下是一个示例的Dialplan配置,用于在号码变化前进行路由: ```xml <include> <extension name="pre_route"> <condition field="${destination_number}" expression="^(\d{4})$"> <action application="bridge" data="sofia/gateway/gateway1/$1"/> </condition> <condition field="${destination_number}" expression="^(\d{3})(\d{4})$"> <action application="bridge" data="sofia/gateway/gateway2/$1$2"/> </condition> </extension> </include> ``` 在上述示例中,我们定义了一个名为`pre_route`的扩展。在这个扩展中,我们使用正则表达式来匹配不同长度的目标号码。 第一个`<condition>`标签中的正则表达式`^(\d{4})$`匹配4位数字的目标号码。如果匹配成功,将执行`<action>`标签中的`bridge`应用程序,并将呼叫路由到名为`gateway1`的SIP网关,并将目标号码作为参数传递。 第二个`<condition>`标签中的正则表达式`^(\d{3})(\d{4})$`匹配7位数字的目标号码。如果匹配成功,同样会执行`<action>`标签中的`bridge`应用程序,并将呼叫路由到名为`gateway2`的SIP网关,并将目标号码作为参数传递。 你可以根据自己的需求和环境进行自定义配置,添加更多的条件和动作来实现你想要的号码变化前的路由逻辑。 需要注意的是,以上只是一个简单示例,实际配置可能会根据你的具体环境和需求而有所不同。建议参考FreeSWITCH的官方文档或相关资源以获取更详细和准确的信息。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值