![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
LINUX
文章平均质量分 79
yine
在通信领域深耕16+年,精通C/C++/Java/Go/lua/py等编程语言,精通各类运营商协议如:SIP/T1/E1/PRI/H.323/SMGP/CMPP/SGIP/CNGP等,精通开源通信框架如:FreeSWITCH/Asterisk/Kamailio/OpenSIPS/WebRTC/JsSIP的配置使用及模块扩展及源码修改,掌握VoIP领域的音视频编解码,压缩算法,PLC,FEC,NACK等丢包补偿技术,ICE技术,QoS技术等,掌握主流模拟及数字中继网关配置接入,掌握主流微服务,存储引擎、搜索引擎、分布式、并行计算等框架,曾从事IM核心系统、消息推送平台、VoIP媒体交换平台...
展开
-
NAS使用docker+wordpress快速搭建个人博客
1. nas上的docker安装就不多说了,直接点开【套件中心】->【Docker】中下载并安装2. 打开界面或命令行先拉取一个mysql5.7的镜像:sudo docker pull mysql:5.73. 再从wordpress的dockerhub上拉取博客源码镜像:sudo docker pull workpress:latestwordpress数据存储...原创 2020-04-03 18:07:33 · 5324 阅读 · 1 评论 -
DEB包制作流程-Debian9+FreeSWITCH1.10.1
本文主要描述如何使用自定义git分支制作稳定deb安装包.一、准备bugfix后的git分支:1. 从FreeSWITCH主站fork到自己的git站点https://github.com/signalwire/freeswitch.git2. 自己的特性分支修复bug,然后合并到 v1.10分支3. 打出自己的release稳定tag v1.10.1-we二、编译deb包...原创 2019-11-12 16:46:46 · 626 阅读 · 0 评论 -
一次Java调用OS命令的优化过程实录
1前言1.1优化目标人脸识别(FaceRecognition)服务运行在Windows系统的bat文件中,其计算量非常大,运行耗时也比较长(10-20小时),并且在Java程序中使用Runtime执行命令,比直接运行cmd命令耗时更多,因此必须采取必要的手段对整个Server进行优化。主要优化目标是降低Java程序中的执行时间,以提高吞吐率。1.2系统环境1转载 2017-07-25 16:02:11 · 605 阅读 · 0 评论 -
SoX-linux里操作音频的瑞士军刀
Sox是最为著名的Open Source声音文件格式转换工具。已经被广泛移植到Dos、windows、OS2、Sun、Next、Unix、Linux等多个操作系统平台。Sox项目是由Lance Norskog创立的,后来被众多的开发者逐步完善,现在已经能够支持很多种声音文件格式和声音处理效果。基本上常见的声音格式都能够支持。更加有用的是,Sox能够进行声音滤波、采样频率转换,这对那转载 2017-06-14 16:16:11 · 13362 阅读 · 1 评论 -
zookeeper原理
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等。Zookeeper是hadoop的一个子项目,其发展历程无需赘述。在分布式应用中,由于工程师不能很好地使用锁机制,以及基于消息的协调机制不适合在某些应用中使用,因此需要有一种可靠的、可扩展的、分布式的、可配置的协调机制来统一系统的状态。Zookee转载 2017-04-26 11:18:36 · 520 阅读 · 0 评论 -
SIP: From ,Contact, Via 和 Record-Route/Route head字段详解
本文对SIP 消息中from, contact, via, record-route 和route 字段进行详细的解释,便于大家对SIP信令进行分析和排错From: 如果一个SIP消息中没有Contact或者Record-Route头域,那么callee就会根据From头域产生后续的Request。比如:如果 Alice打一个电话给Bob,From头域的内容是 From:Alice转载 2017-04-25 11:42:41 · 6483 阅读 · 0 评论 -
webrtc中的网络反馈与控制
webrtc中的网络反馈与控制引言站在风口上,猪都能飞起来。雷布斯的这句名言,已经被大家传的家喻户晓了,说起当下站在风口上的猪,除了丁老板的未央猪,这头实实在在的猪,视频直播应该可以算一个。今年各种直播平台,各个轮次的融资消息应接不暇。对于互联网技术从业者来说,RTC(Real Time Communication,实时通信)这个站着视频直播背后的技术也重新开始变得火热起来。视频直转载 2016-12-29 15:50:47 · 1167 阅读 · 0 评论 -
ASTERISK–E1–DAHDI–PRI的配置和调试
E1语音板卡+ pri的电信线路。1)先在asterisk中把e1驱动配置好,配置好后一般要去掉dahdi的CRC校验,在 /etc/dahdi/system.conf 这个配置文件中去掉CRC4的校验,有几个E1模块,就去掉几个CRC4的参数。如下:把 #span=1,1,0,ccs,hdb3,crc4 改为 #span=1,1,0,ccs,hdb3 ,然后停掉asteris转载 2016-06-14 11:29:50 · 5547 阅读 · 1 评论 -
netty3升级到4后由于线程模型的变化引起的问题
1|Netty的特点Netty入门比较简单,主要原因有如下几点:Netty的API封装比较简单,将复杂的网络通信通过BootStrap等工具类做了二次封装,用户使用起来比较简单;Netty源码自带的Demo比较多,通过Demo可以很快入门;Netty社区资料、相关学习书籍也比较多,学习资料比较丰富。但是很多入门之后的Netty学习者遇到了很多困惑,例如不知道原创 2015-09-10 12:51:18 · 2709 阅读 · 0 评论 -
轻运维工具-salt-使用相关
一、使用场景:1. 需要通过日志或cap包等线上机器的日志产出物来进行问题定位分析;2. 有多台主机, 不同主机需要不同vpn要来回不停切换进行查询;3. 自主开发的应用,需要持续的改进,不断的更新、发布、部署、调整配置,这不是运维部门喜欢的状态4. 软件商提供的“产品”无法满足运维部门的要求:无法通过简单的 Q&A 文档保证系统的正常运行,经常需要有一定技术能力的人员解决系统运行原创 2017-07-27 12:39:36 · 970 阅读 · 0 评论 -
FreeSWITCH源码分析之主函数main()
Freeswitch的主函数是在文件switch.c中定义的,该文件的260行是整个程序的入口,主函数主要完成的功能是包括,命令行解析,初始化apr库,构建全局内存池,模块加载和初始化核心组件。 初始化apr库是由apr_initialize()函数完成的,apr库是apache的可移植动态库,完成相关的内存池,线程管理的跨平台工作。该函数的调用在主函数的659行。745行的原创 2017-08-21 16:19:54 · 2197 阅读 · 2 评论 -
FreeSWITCH落地的配置总结
[+]简介首先先说明一下落地的含义。用我简单粗糙的理解,就是通过SIP接入运营商呼到手机或者固话。在FreeSWITCH中使用SIP和运营商对接达到落地的效果。对接方式简单介绍一下,FreeSWITCH里Gateway(网关)的概念。网关又成协议转换器,通常都是进行协议转换。这里说的网关指的是语音网关,如常用的SIP网关,负责SIP协议和七号信令或ISDN原创 2017-05-18 10:06:27 · 1513 阅读 · 0 评论 -
高性能stun服务器搭建
项目中使用WebRtc,需要使用stun服务器,网上倒是共享了许多免费可用的stun服务地址,但是稳定性无法保障,所以提前预研了一下; 使用Stuntman搭建,地址:http://www.stunprotocol.org/搭建过程该项目的github上也是有的在这简单阐述一下:首先:[javascript] view plain copy原创 2017-09-05 11:31:49 · 3720 阅读 · 4 评论 -
FreeSWITCH源码分析之mod_xml_curl
近期又开始了我的FreeSWITCH研究之路, 因为项目中需要, 使用sip_profile中的internal端点来处理sipUA的注册及在线保持做被叫, 打开了登录及呼叫认证的开关, 我们都知道FreeSWITCH默认的directory中有1000-1019这20个默认用户, 如果新增用户也有一个批处理脚本能快速的生成出来新的用户, 但是我们做为一个统一平台的操作, 有一个分布式的FS集群原创 2017-06-20 20:24:35 · 3042 阅读 · 1 评论 -
nc指令开启tcp/udp端口及端品扫描
有时候我们的主机是在内网的, 但是为了线上业务功能会开放防火墙端口, 为了让公网上的用户能正常使用服务, 在IT同事配置好后检测他的工作是否完成, 不可能直接把自己的服务给部署上去, 因为还没开发好或没有达到上线标准, 那么我们就可以用nc这个指令在远程服务上模拟运行端口, 然后在本机上探测或扫描端口以达到判断的目的;1. 在服务端开启udp端口监听: nc -ulp 255原创 2017-09-30 11:42:03 · 11340 阅读 · 0 评论 -
FreeSWITCH线上一次Crashes分析定位过程-ldns库问题
FS线上一次Crashes分析定位过程-ldns库问题– by yine 2018-04-10 15:33:05一、故障发生时间点2018-04-10 09:54:07二、堆栈查看结果warning: .dynamic section for "/usr/lib/x86_64-linux-gnu/librtmp.so.1" is not at the expected address (wrong...原创 2018-04-10 16:01:06 · 2668 阅读 · 3 评论 -
FreeSWITCH中DESTINATION_OUT_OF_ORDER原因分析
问题:在话单中会产生DESTINATION_OUT_OF_ORDER这种挂断原因, 但是A, B leg都有通话时长, 但是貌似时长都比较短, 不知道这个会引起什么问题, 在FS里是正常还是异常的?产生过程:先originate Aleg, park住, 再originate Bleg, 当B按听后, 再将ABLeg桥接, uuid_bridge auuid, buuid , 这样会有一定小概率的...原创 2018-04-20 15:32:56 · 10719 阅读 · 1 评论 -
SIP 定时器 总结
SIP 定时器的总结定时器缺省值节含义T1500 ms17.1.1.1经历来回时间(RTT)T24 秒17.1.2.2非 INVITE 请求和 INVITE 响应的最长重新传输时间间隔T45 秒17.1.2.2消息可保留在网络中的最长持续时间计时器 A最初为 T117.1.1.2INVITE 请求重新传输时间间隔(仅适用于 UDP)计时器 B64*T117.1.1.2INVITE 事务超时计时器...转载 2018-05-14 17:57:06 · 3005 阅读 · 2 评论 -
Alfred效率神器-iTerm Workflows插件应用小记
一、先了解一下Alfred是什么:话不多说, 先看一下这篇文章:https://sspai.com/post/44624二、先安装上吧:下载地址:下载点这里三、Tunnelblick插件: 搜索:Yunnelblick.alfredworkflow 下载双击安装,插件在g.hz.xxx.com内网git上面0. 初次使用配置方式安装依赖项 (Python 依赖)sud...原创 2019-09-19 17:24:47 · 4356 阅读 · 1 评论 -
性能测试工具
压力测试工具Grinder:http://grinder.sourceforge.net/PTP自动化性能测试平台: http://perf.hz.netease.com/Jmeter: http://jmeter.apache.org/Gatling: http://www.infoq.com/cn/articles/new-generation-server-testing转载 2015-08-26 11:29:18 · 6738 阅读 · 0 评论 -
使用OpenSSL生成证书
1.生成CA证书和私钥如果你准备使用公共CA则不需要这一步,但是如果这个证书只是在我们自己的服务端和客户端之间使用则只需要使用自己的CA使用openssl之前先要在当前目录下准备一个临时目录结构,如下结构 --demoA/ |-- index.txt |-- serial |-- newcerts/ |-- priv原创 2015-08-26 14:21:39 · 2809 阅读 · 0 评论 -
程序员必备的七大面向对象设计原则(一)
花絮 每天都在和面向对象打交道,但是我们在应用面向对象的时候感觉自己的面向对象技术应用的很合理?理解的很到位?应用的很到位?用的时候恰到好处?用的是否符合软件的发展趋势? 上面很多一连串的问题,没有把你搞晕吧!我想说的面向对象的应用也有面向对象的原则,一个程序员的编程素质从一个小例子几十行代码就可以展现出来。面向对象编程是是面向对象的基础中的基础,废话不多说,你转载 2012-06-04 22:11:10 · 512 阅读 · 0 评论 -
ActiveSync编程总结(三)
冲突处理如果一个对象同时在设备和桌面端被改换,在它被同步之前。这儿产生了冲突。ActiveSync manager首先发布一个命令给设备来获得对象到桌面???设备上的IReplObjHandler中的方法被调用,ActiveSync provider从设备store中读取数据,数据被送到桌面端,桌面端的IReplObjHandler被调用来创建一个临时对象。在设备和桌面端都被调用中,RSF翻译 2012-06-05 14:10:27 · 772 阅读 · 0 评论 -
程序员必备的七大面向对象设计原则(三)
五、接口隔离原则1. 定义 i. 客户端不应该依赖那些它不需要的接口。 ii. 一旦一个接口太大,则需要将它分割成一些更细小的接口,使用该接口的客户端仅需知道与之相关的方法即可。 2.分析 i. 接口隔离原则是指使用多个专门的接口,而不使用单一的总接口。每一个接口应该承担一种相对独立的角色,不多不少,不干不该干的事,该干的事转载 2012-06-04 23:09:48 · 477 阅读 · 0 评论 -
ActiveSync编程总结(四)
Question & Answer问题1:ActiveSync manager如何识别出由来自设备的数据创建出来的一个新桌面端对象?回答:IReplObjHandler::SetPacket一定创建一个新的HREPLITEM句柄,并把结构REPLSETUP的成员hItem设置成它,传入IReplObjHandler::Setup调用。典型的,ActiveSync provider在翻译 2012-06-05 14:11:48 · 1026 阅读 · 0 评论 -
ActiveSync编程总结(一)
(参考MSDN Programmer’s guide of ActiveSync)WindowsPE设备和桌面端作同步,在每一端都有ActiveSync manager(管理器)和ActiveSync provider(提供者)两部分组成,我们要编写的是ActiveSync provider部分。桌面端需要继承俩接口IReplStore,IReplObjHandler;而CE端只需要继承一翻译 2012-06-05 14:08:00 · 1552 阅读 · 0 评论 -
Tim【后端技术】
技术工程师的能力与目标Thursday, Feb 23rd, 2012 by Tim | 16 CommentsFiled under: 技术管理曾经有这样试验,随机选择一组对象进行工作的自评,几乎所有对象的自评分都在实际成绩的平均分以上。在工程师团队中也不例外,许多工程师有这样的困惑,自己觉得工作已经做得不错,但是上司好像察觉不到,甚至还对自己的工作吹毛求疵。如果有个合适参转载 2012-04-20 13:15:02 · 1026 阅读 · 0 评论 -
准确生成电信、联通、移动IP地址段
有时搞一些跨网段的工程和应用,需要尽量准确的知道电信、网通、铁通等电信运营商的IP地址段分配情况,可网上的资料不但很少,而且经常都是N个月前的过期资料…… APNIC是管理亚太地区IP地址分配的机构,它有着丰富准确的IP地址分配库,同时这些信息也是对外公开的!下面就让我们看看如何在Linux下获得一些电信运营商的IP地址分配情况:代码:shell> wget http:/原创 2012-04-12 19:06:05 · 9218 阅读 · 1 评论 -
Linux 高并发环境设置
一、 文件数限制修改(1) vi /etc/security/limits.conf* soft nofile 10240 * hard nofile 10240(2) vi /etc/pam.d/loginsession required /lib/security/pam_limits.so二、 网络端口限制修转载 2011-12-15 13:39:23 · 823 阅读 · 0 评论 -
程序员必备的七大面向对象设计原则(二)
二、依赖倒转原则 1.依赖倒转原则定义 i. 高层模块不应该依赖低层模块,它们都应该依赖抽象。抽象不应该依赖于细节,细节应该依赖于抽象。 ii. 要针对接口编程,不要针对实现编程。 2. 依赖倒转原则分析a) 简转载 2012-06-04 23:08:37 · 668 阅读 · 0 评论 -
ActiveSync编程总结(二)
HREPLITEM和HREPLFLD(这俩句柄虽然都以H开头,但往往会通过强制类型转换转换为指针,另外注意,这俩句柄都只跟桌面端provider相关)对于ActiveSync provider来讲,HREPLITEM是一个重要的数据类型,每个句柄唯一标示一个对象(通常就是一个指向item对象的指针。ActiveSync manager可以把这个句柄作为参数传递给IReplStore翻译 2012-06-05 14:09:15 · 689 阅读 · 0 评论 -
FreeSWITCH呼叫保持思路
场景介绍该篇文章主要用于介绍如何使用FreeSWITCH实现通讯系统中常见的多人来电功能。 具体场景如下: A与B正在通话中,此时C拨打A/B,FreeSWITCH发送消息给A/B提示有新电话进来,A/B收到提示后,可以选择不予理睬或者保持当前通话接通C。在与C通话完毕后,在还没挂断的情况下,可以继续返回与B/A继续通话。设置拨号方案在文件/usr/local/fr转载 2015-07-28 12:29:13 · 4038 阅读 · 2 评论 -
Chef 环境的安装及使用
官方地址 (http://docs.getchef.com/install_server.html)Chef 环境的安装步骤一般是:先安装 Chef Server,然后配置 Chef Workstation, 最后根据需要在客户端机器上安装 Chef Client 并将其注册成 Chef Node。Chef Server 和 Chef Workstation 可以配在一台机器上,也可以分开原创 2014-08-20 16:02:41 · 3320 阅读 · 0 评论 -
经典论文翻译导读之《Finding a needle in Haystack: Facebook’s photo storage》
http://www.importnew.com/3292.html转载 2013-03-12 09:10:48 · 1112 阅读 · 0 评论 -
UML类图关系大全
1、关联双向关联:C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射为对象引用或指针。对象引用本身就是有向的,更适合表达我们所讨论的那种关系。所以这种关系在设计的时候比较少用到,关联一般都是有向的。转载 2013-02-01 18:39:13 · 502 阅读 · 0 评论 -
ZooKeeper管理员指南——部署与管理ZooKeeper
本文以ZooKeeper3.4.3版本的官方指南为基础:http://zookeeper.apache.org/doc/r3.4.3/zookeeperAdmin.html,补充一些作者运维实践中的要点,围绕ZK的部署和运维两个方面讲一些管理员需要知道的东西。本文并非一个ZK搭建的快速入门,关于这方面,可以查看《ZooKeeper快速搭建》。1.部署本章节主要讲述如何部署ZooKeeper转载 2012-11-16 11:06:15 · 5683 阅读 · 0 评论 -
ZooKeeper典型应用场景一览
查看PDF版本ZooKeeper是一个高可用的分布式数据管理与系统协调框架。基于对Paxos算法的实现,使该框架保证了分布式环境中数据的强一致性,也正是基于这样的特性,使得ZooKeeper解决很多分布式问题。网上对ZK的应用场景也有不少介绍,本文将结合作者身边的项目例子,系统地对ZK的应用场景进行一个分门归类的介绍。值得注意的是,ZK并非天生就是为这些应用场景设计的,都是后来众多开发者根转载 2012-11-16 13:03:20 · 1927 阅读 · 0 评论 -
ZooKeeper监控
在公司内部,有不少应用已经强依赖zookeeper,zookeeper的工作状态直接影响它们的正常工作。目前开源世界中暂没有一个比较成熟的zookeeper-monitor, 于是开始zookeeper监控这块工作。目前zookeeper-monitor能做哪些事情,讲到这个,首先来看看哪些因素对zookeeper正常工作比较大的影响:用于zookeeper写日志的目录要有足够大小,并转载 2012-11-16 12:42:22 · 1279 阅读 · 0 评论 -
稳定性思考-强弱依赖
系统依赖关系比较复杂情况: A系统依赖B系统资源,当B系统发生故障的时候,A系统势必会被拖累,导致A系统也发生故障 。这里的依赖要区分两种情况: 1、A强依赖于B 任何强依赖都要尽可能的转化成弱依赖,因为强依赖本身意味着一荣俱荣,一损俱损。 对于强依赖B这个场景,从稳定性来说我们还是可以做一些事情: 当B发生故障,虽然A系统不能正常执行业务,但是A不原创 2012-11-16 10:58:11 · 3278 阅读 · 0 评论 -
Linux shell 远程协助
liunx shell 远程协助 ,允许两个shell 实时同步。(kibitz - allow two people to interact with one shell )官方网址http://linux.die.net/man/1/kibitz安装 kibitz 需要的包有tcl 和expecet。什么是tcl http://www.tcl.tk/ Tc翻译 2011-12-10 22:54:26 · 848 阅读 · 0 评论