freeswitch反注册记录

时间:2022-01-10 04:38:16

应用情景: 使用阿里服务器,落地使用本地的模拟线路(O口网关)。

1、FreeSWITCH 服务器开一个账号,比如 5000 internal , O口 SIP设置页面按照网关注册 5000 的账号信息。

2、dialplan 中添加拨号规则:

<condition field="destination_number" expression="^(\d{8,12})$">
<action application="lua" data="reregister.lua 5000 $1"/>
</condition>

3、FreeSWITCH scripts/ 目录下 生产如下 reregister.lua :

gatewayNumber = argv[]
destNumber = argv[] api = freeswitch.API();
-- 获取网关注册的地址,主叫号码替换
local domain = freeswitch.getGlobalVariable("domain");
local sofiaContactStr = api:executeString("sofia_contact " .. gatewayNumber .."@" .. domain);
local dialStr = string.gsub(sofiaContactStr, gatewayNumber, destNumber); -- bridge到被叫号码
session:execute("bridge" , dialStr);

当然还有最方便和直接的方式,直接在dialplan中进行替换:

最直接方式还是在拨号规则中直接配置:
<include>
<extension name="gopstn">
<condition field="destination_number" expression="^9(.*)$">
<action application="bridge" data="sofia/internal/sip:$1${regex(${sofia_contact(user/3000)}|^sofia/internal/sip:(\d+)(.*)|$2)}"/>
</condition>
</extension>
</include>
如:

    ${sofia_contact(user/3000)} ==> sofia/internal/sip:3000@192.168.5.58:5060
    ${regex(${sofia_contact(user/3000)}|^sofia/internal/sip:(\d+)(.*)|$2)}  ==> @192.168.5.58:5060

    经过拼接和组装,一个替换过的呼叫字符串就组装好了。

或者:

<include>
<extension name="gopstn">
<condition field="destination_number" expression="^9(.*)$">
<action application="bridge" data="${replace(${sofia_contact(user/6003)}|6003|$1)}"/>
</condition>
</extension>
</include>

freeswitch反注册记录的更多相关文章

  1. 【Demo 0025】注册&sol;反注册窗体类RegisterClassEx&sol;UnregisterClass

    所有窗体在创建前都必须注册窗体类,只有注册的窗体类才被系统认知并允许实例化,换句话说通过注册告诉进程窗体管理器此类窗体的属性如: 背景色,窗体上的鼠标样式以及窗体事件处理函数等;  有一些控件类系统自 ...

  2. springcloud 服务注册、反注册 AOP 拦截,实现自定义功能

    @Aspect@Component@Order(1000)public class EurekaServerAspect {private Logger logger = Logger.getLogg ...

  3. Android BroadcastReceiver 注册和反注册

    说起来这个问题很简单,只要注册和反注册成对出现就行,好像很多教材都是如此介绍.但实际开发中,对广播注册和反注册的时机把握还是很重要的. 关于广BroadcastReceiver注册和反注册时机,主要有 ...

  4. 7&period;Go退出向Consuk反注册服务&comma;优雅关闭服务

    注册和反注册代码 package utils import ( consulapi "github.com/hashicorp/consul/api" "log&quot ...

  5. ActiveX控件的注册和反注册

    原文转自 https://blog.csdn.net/piaopiaopiaopiaopiao/article/details/41649495 ActiveX控件,需要注册之后才能使用. 注意:注册 ...

  6. dll的注册与反注册

    regsvr32.exe是32位系统下使用的DLL注册和反注册工具,使用它必须通过命令行的方式使用,格式是:regsvr32 [/i[:cmdline]] DLL文件名命令可以在"开始→运行 ...

  7. apply-register-acl 参数允许FreeSWITCH分机注册&sol;拨打不验证密码

    今天调试 发现 注册的分机 的 `Auth-User` 居然是 `unknown` !!! 怎么回事? 仔细对比检查 发现, internal profile 指定了 `apply-register- ...

  8. FreeSwitch安装配置记录

    安装FreeSwitch 主要命令如下: git clone -b v1.2.stable git://git.freeswitch.org/freeswitch.gitcd freeswitch/. ...

  9. RedGate &period;NET Reflector注册问题(反注册)

    Reflector分为桌面版和VS集成版本,当我们使用注册机注册的时候如果注册了Standvard版本,那么我们的VS就不能集成查看,也不能Debug,那么这 显然不是我们想要的,我们会选择重新注册, ...

随机推荐

  1. ubuntu用下载的文件替换即可更新

    ./usr/lib/flashplugin-installer/libflashplayer.so 也有可能是 /usr/lib/firefox-addons/plugins

  2. DBCP数据源连接池实现原理分析

    前些天在调试公司系统的时候发现这样的一个问题:mysql数据库服务停止一段时间后再次重启后吗,tomcat服务无法请求数据库服务,调试了半天对这个问题进行定位解决,期间也搞了很多有关mysql数据库的 ...

  3. Rs2008内存管理策略

    Rs2008 在内存管理方面已经有了很大的改变.主要增加了文件缓存,允许把内存数据卸载到文件缓存中.而Rs2005 都是把数据放到内存中.对于大数据量的报表而言,很容易出现OutOfMemory 错误 ...

  4. Docker:云栖社区开源论题及Spark开源论题

    https://yq.aliyun.com/topic/78?spm=5176.8290451.656547.7.rMYhAF https://yq.aliyun.com/activity/155?u ...

  5. Java 8 中为什么要引出default方法

    (原) default方法是java 8中新引入进的,它充许接口中除了有抽象方法以外,还可以拥用具有实现体的方法,这一点跟jdk8之前的版本已经完全不一样了,为什么要这样做呢? 拿List接口举例,在 ...

  6. How to monitor tempdb in MS SQL

    Error: tempdb is full due to active_transaction. select ss.[host_name], ss.login_name, ss.original_l ...

  7. Hive&vert; DDL&vert; DML

    类型转换 可以使用CAST操作显示进行数据类型转换 例如CAST(' 转换成整数1:如果强制类型转换失败,如执行CAST('X' AS INT),表达式返回空值 NULL. : jdbc:hive2: ...

  8. 点线特征双目视觉SLAM---暑期笔记

    1.由于以后可能研究有关基于特征方面的SLAM研究,所以近期看了一篇文章[基于点线综合特征的双目视觉SLAM方法--谢晓佳],由于之前对SLAM的模块比较模糊,所以认真阅读了此论文,并对主要的3个线程 ...

  9. Hibernate和Spring整合出现懒加载异常:org&period;hibernate&period;LazyInitializationException&colon; could not initialize proxy - no Session

    出现问题:  SSH整合项目里,项目目录结构如下: 在EmployeeAction.java的list()方法里将employees的list放入到request的Map中. EmployeeActi ...

  10. 请教Amazon FBA里面Label Service&comma; Stickerless&comma; Commingled Inventory是什么意思&quest;

    Accept Label Service接受标签服务,选择了以后下面的操作中会有一个让您打印标签的流程,您就可以按照FBA流程提示进行每一步标签服务的操作. Accept Stickless, Com ...

相关文章