- 博客(334)
- 资源 (19)
- 收藏
- 关注
原创 vim搜索设置高亮
最近生产环境中,用VIM打开log后,发现搜索时字符串没有高亮显示。这种方式仅用于当前打开的文档,如果退出VIM后重新打开,还是不生效的。如果是自己的环境,直接在vimrc里加上。
2024-03-23 13:09:35 93
原创 FreeSwitch资源库
感谢杜老师的分享:GitHub - rts-cn/awesome-freeswitch: A curated list of awesome FreeSWITCH resources, modules, libraries and software. FreeSWITCH资源精选。
2024-03-16 15:54:31 212
原创 CentOS 7 devtoolset编译addressSanitizer版本失败的问题解决
这两天,要用Google的addressSanitizer检验内存问题,加上编译参数后,却发现编译不通过。系统是有安装libasan的,但是版本和devtoolset版本不同。在我的一个Cent OS7开发环境中,按。显然,在编译检测时,发现ibasan连接时找不到文件。的方法升级GCC版本到8.3.1。安装完毕后,重新编译就成了。
2024-03-09 10:38:10 541
原创 呼叫中心的ACD
ACD(Automatic Call Distribution)即自动呼叫分配设备。是把接入的呼叫按特定的转接规则和分配策略转接到正确的座席。其性能的优劣直接影响到呼叫中心的效率和顾客的满意度,是呼叫中心有别于一般的热线电话系统、自动应答系统、电话录音系统或其它类似号称呼叫中心但是其实不是真正呼叫中心的重要标志。
2024-03-01 16:46:58 293
转载 [转]WebRTC 人声检测与舒适噪音
早期版本的舒适噪音的格式定义在RFC 1890中,这个版本的格式只包含一个字段,就是噪音级别。舒适噪音生成器在接收端根据发送到给的参数,来产生类似接收端的舒适噪音, 用来模拟发送方的噪音环境。接收方在收到新的CN包后,会更新产生舒适噪音的参数。如果B具有VAD检测功能,那么B就可以在不说话的时候,发送特殊标记的语音流或者通过减少语音流发送的频率,来减少无意义语音的发送。除此以外,人声检测还能用于减少网络中语音包传输的数据量,从而极大的降低语音的带宽,极限情况下能降低50%的带宽。很少可能是两个人都说话的。
2024-01-27 13:32:32 84
原创 Windows git diff + beyound compare 文件夹比较
使用git difftool 命令时,发现,行为表现为一次打开一个差异文件,关闭窗口后自动打开下一个差异文件,如果需要在列表间切换,很不方便。那么,有什么办法进行文件夹比较吗?最近使用git 配置对比工具为beyound compare。
2024-01-13 15:16:42 503
原创 VIM合并两行
VIM删除命令不能直接删除换行符,如果需要把两行合并为一行,那么可以用下面命令。上面命令直接合并当前行和下面一行,之间加空格作为分隔符。如果需要连续重复操作,可以在命令前加数字n。重复命令.对合并操作也是生效的。
2024-01-06 13:41:04 556
原创 Linux报错:audit: backlog limit exceeded
今天,一台虚拟机上操作昨天打开的连接一直没响应,新打开连接连接不上。SSH校验不通过。通过IT的后台,可以看到满屏的audit服务记录的审计事件超出默认(或设置)数量 ,达到或超出容量的审计缓冲区队列也可能导致实例锁定或持续无响应状态。audit服务配置。
2023-12-29 10:52:12 693
翻译 第十二讲 打包Debug 及Release
默认条件下,CMake的模型是一个build目录仅包含一个配置,它可以是Debug、Release、MinSizeRel或RelWithDebInfo。但是,设置CPack来绑定多个build目录,以构建同一工程的多个配置是可行的。首先,我们需要确保debug和release所构建和使用的库具有不同的名字,可以用名字前缀来区分。现在,debug 和release的工程目录已经准备好了,我们可以用一个自定义配置文件来封装不同的工程配置。现在,我们需要分别设置debug和release的工程环境。
2023-12-23 13:20:42 141
原创 Vim 搜索多个关键字并高亮
在查看代码或日志的时候,经常会需要搜索某个关键字。VIM搜索时,会把关键字高亮显示,还是比较方便的。可是,一个关键字往往是不够的,能否支持多个关键字查找呢?
2023-12-13 16:37:09 869
原创 Linux地址空间随机化
ASLR(Address Space Layout Randomization)在2005年被引入到Linux的内核 kernel 2.6.12 中,早在2004年就以补丁的形式引入。内存地址的随机化,意味着同一应用多次执行所使用内存空间完全不同,也意味着简单的缓冲区溢出攻击无法达到目的。
2023-11-29 13:28:01 290
原创 Centos 64位环境下编译32位C程序
但是,在编译过程中,往往会碰到这样的错误:atal error: gnu/stubs-32.h: No such file or directory。在64位平台下,默认编译的是64位程序。如果需要编译32位程序,需要指定gcc 编译选项“-m32”。第一次编译32位程序,很可能有如下错误提示:cannot find -lgcc_s。
2023-11-10 08:43:10 889
原创 CentOS 7升级gcc/G++版本
Centos 7默认gcc版本为4.8,有时需要更高版本,只需要执行几条命令,无需下载源码编译编译。开发包缺省安装在/opt/rh下,每个版本的根目录下都有个enable脚本。选择需要的版本即可。注意,如果想安装7.*版本的,就改成devtoolset-7-gcc*,以此类推。这条激活命令只对本次会话有效,重启会话后还是会变回原来的4.8.5版本。
2023-11-02 13:16:00 937
翻译 第十讲 选择静态库还是动态库
如果你这时构建工程,你可能会发现链接失败,因为我们的代码中结合了一个没有位置独立的静态库和一个位置独立的(动态)库。的缺省行为,在没有显式指定类型(静态库,共享库,模块或对象)的前提下,控制库的构建。通过CMake文档,你能找出一个合适的模块来简化它吗?在教程里,我们将显式要求SqrtLibrary实现为静态库。里,我们需要创建一个SqrtLibrary,它会在构建安装过程中根据。为此目的,我们需要在顶层。的代码,让它变成一个真正的库,它封装了。库,我们需要修改库的实现逻辑。做些许修改,它不再使用。
2023-10-20 13:15:21 95
翻译 第九讲 : 打安装包
假设我们的工程已经完工,可以发布给其他人使用了。这和我们之前第五讲的内容不同,当时的安装是直接从源码构建的。在这一讲里,我们将创建一个安装包,它支持二进制安装及软件包管理功能。为此,我们会用到CPack来创建平台特定的安装包。接下来,设置一些CPack变量,它们存储了工程的版权和版本信息。模块,它将会使用之前设定的变量,还有当前系统的一些其它属性来设置安装包。像ZIP这样的归档生成器会归档压缩所有需要安装的文件。最后,安装得到的安装包,并验证安装的软件是否工作正常。接下来,和往常一样构建工程,并执行。
2023-09-28 15:44:34 93
原创 sed的不同执行方式
匹配root或nobody,或mail: 1.2 用\换行Shell的换行符依然有效,这有利于提高长命令的可读性。1.3 用 { }组合语句块2. sed脚本文件如果需要复用一组sed命令,可以把它们写入一个脚本文件,然后用命令行参数-f调用。数据文件data.txt内容:脚本文件cmd.sed执行命令sed脚本的注释行以井号#打头。为上面的脚本加上注释:如果sed脚本 的首行的前两个字符为#n,那么sed会自动使用-n选项(不打印),这时打印需要脚本中
2023-09-22 09:19:12 139
原创 nm: unimrcpserver: no symbols
elf(Executable and Linkable Format)文件有两个符号表,“.symtab”和“.dynsym”。“.dynsym”只保留“.symtab”中的全局符号(global symbols )。命令strip可以去掉elf文件中“.symtab”,但不会去掉“.dynsym”。近日使用官方的包安装了一个unimrcp的环境。想看一下和自己编译的符号表有什么不同。但是用nm查看时却显示不出来。还可以用readelf或 objdump。
2023-09-14 13:57:37 130
翻译 第六讲 : 添加测试 Dashboard的支持
把我们的测试结果提交到dashboard是很酷的,CMake也能支持,实现起来也很简单。我们已经为工程定义了一些测试,。现在,我们只需要执行这些测试用例,并把结果提交给CDash就可以。
2023-08-03 16:13:29 67
原创 unimrcp server的session资源分配与回收
这一行mrcp_session_t* session = sofia_agent->sig_agent->create_server_session(sofia_agent->sig_agent);又跳转到 mrcp_server_sig_agent_session_create()函数,它在mrcp_server.c里实现。这个nua_callback批向mrcp_sofia_event_callback()函数,它在mrcp_sofiasip_server_agent.c里实现。它分发处理SIP消息。
2023-07-27 18:08:30 278
翻译 第五讲 : 安装及测试
通常情况下,只构建可执行文件是不够的,我们还需要把它安装到系统上。通过CMake我们可以用命令指定安装规则。在CMake里为构建工程添加本地安装支持很简单,仅需要做两件事:指定安装位置和需要安装的目标文件。
2023-07-20 17:43:48 59
原创 CMake指定C++版本
现在使用CMake的项目越来越多,由于历史原因,编译C++代码时,往往需要指定C++的版本。这里记录CMake编译时指定C++版本的几种方法。
2023-06-13 15:48:27 3029
翻译 第二讲: 添加库
通过前面一讲,我们已经学会了如何通过CMake建立一个基础工程。在这一讲里,我们将学习如何在工程里创建和使用库。我们还将了解如何把库设置为可选库。
2023-06-08 09:19:08 132
转载 unimrcp in docker container
记录一下services:unimrcp:ports:volumes:networks:mynet:networks:mynet:ipam:config:- subnet:
2023-06-01 01:00:00 158
FreeSWITCH clustering with OpenSIPS
2020-04-22
SIP_ Understanding the Session Initiation Protocol 4 ediation.docx
2019-08-29
FreeSWITCH 1.2
2014-05-21
FreeSWITCH Cookbook
2013-07-01
Asterisk: The Definitive Guide, 3rd Edition
2013-01-25
Asterisk Cookbook
2013-01-25
FreeSWITCH 1.0.6
2012-04-13
VoiceXML基础教程
2011-09-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人