摘要: 一直都是使用vim作为我的主要编辑器,它大大提高了我的代码编辑效率。vim的配置高度灵活、插件丰富,恐怕100个人就有99种配置方法,网上关于vim配置的所谓“最强大的vimrc”之类的文章不少,博人眼球,无可厚非,不过我相信,永远没有最强大的配置,只有更合理的配置。毕竟vim的学习曲线还是比较陡的... 阅读全文
posted @ 2015-04-24 23:37 闯爷88 阅读(1556) 评论(0) 推荐(0) 编辑
摘要: 在开始分析之前,先对编码协商中可能涉及的asterisk数据结构和变量作些说明。ast_channel:定义一个通用的通道数据结构struct ast_channel { const struct ast_channel_tech *tech; /*!peercapability... 阅读全文
posted @ 2015-04-24 23:33 闯爷88 阅读(982) 评论(0) 推荐(0) 编辑
摘要: 双音多频DTMF(Dual Tone Multi-Frequency)信令,因其提供更高的拨号速率,迅速取代了传统转盘式电话机使用的拨号脉冲信令。DTMF也应用在交互式控制中,诸如语言菜单、语言邮件、电话银行和ATM终端等。由于DTMF在传统通信领域中的广泛使用,所以在VOIP中,DTMF仍是发挥着... 阅读全文
posted @ 2015-04-24 23:29 闯爷88 阅读(3757) 评论(0) 推荐(0) 编辑
摘要: 1、DTMF(双音多频)定义:由高频音和低频音的两个正弦波合成表示数字按键(0~9 * # A B C D)。2、SIP中检测DTMF数据的方法:SIPINFO、RFC2833、INBAND1)SIPINFO为带外检测方式,通过SIP信令通道传输DTMF数据。没有统一的实现标准,目前以Cisco S... 阅读全文
posted @ 2015-04-24 23:28 闯爷88 阅读(21317) 评论(0) 推荐(0) 编辑
摘要: 一个实际应用例子: 在awk中,通过system调用连接数据库并作select操作,select语句中where条件来自于一个文件(file)的第一个域($1)。$ cat file ... 1001 1002 1003 1004 ...1. 用awk实现:awk '{system("mysql -... 阅读全文
posted @ 2015-04-24 23:27 闯爷88 阅读(1324) 评论(0) 推荐(0) 编辑
摘要: BNF:巴科斯范式ABNF(Augmented Backus-Naur Form):扩充巴科斯范式ABNF是由第68号互联网标准(”STD 68″,大小写样式按照原文)定义的,也就是RFC 5234,经常用于互联网工程任务组(IETF)通信协议的定义语言。RFC 5234 取代了 RFC 4234(... 阅读全文
posted @ 2015-04-24 23:22 闯爷88 阅读(620) 评论(0) 推荐(0) 编辑
摘要: 作为进程间通信及网络通信的一种重要技术,在实际的开发中,socket编程是经常被用到的。关于socket编程的一般步骤,这里不再赘述,相关资料和文章很多,google/baidu即可。本文主要是探讨如何更好地进行socket读写处理,以及如何检测连接断开。首先,有以下几点需要注意:对于全双工的soc... 阅读全文
posted @ 2015-04-24 23:21 闯爷88 阅读(8863) 评论(0) 推荐(0) 编辑
摘要: pthread_cond_wait的使用:pthread_mutex_t qlock;pthread_cond_t qready;/************pthread_cond_wait()的使用方法**********/pthread_mutex_lock(&qlock); /*loc... 阅读全文
posted @ 2015-04-24 23:18 闯爷88 阅读(811) 评论(0) 推荐(0) 编辑
摘要: 最近在修改asterisk转码和编码协商的问题,发现asterisk的转码策略的选择还是有些问题的(基于1.8.9.3版本)。——————————————相关的CLI命令转码路径的调试命令:core show channelscore show channel ${CHANNEL}查看不同编码之间进... 阅读全文
posted @ 2015-04-24 23:14 闯爷88 阅读(797) 评论(0) 推荐(0) 编辑
摘要: linux下的epoll(7)函数,其有着良好的就绪事件通知机制。Epoll 是被linux2.6开始引进的,但是不被其他的类UNIX系统支持,它提供了一种类似select或poll函数的机制:a. Select(2)只能够同时管理FD_SETSIZE(默认为1024)数目的文件描述符,并且必须遍历... 阅读全文
posted @ 2015-04-24 23:10 闯爷88 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 最近项目中涉及到sqlite并发读写的问题,参考一些文档并结合自己的实践,对sqlite3并发问题总结了几点:sqlite3的锁及事务类型sqlite3总共有三种事务类型:BEGIN[DEFERRED /IMMEDIATE/ EXCLUSIVE] TRANSCATION,五种锁,按锁的级别依次是:U... 阅读全文
posted @ 2015-04-24 23:07 闯爷88 阅读(29554) 评论(0) 推荐(0) 编辑
摘要: 在sqlite3 shell下,按上下方向键可以浏览历史命令,按左右方向键则可以将光标移动到命令中任意字符位置,从而可以修改错误的语句或误敲的字符。所以方向键是sqlite3 shell下最常用的功能。在debian(包含ubuntu)下,sqlite3 shell方向键默认是不工作的。​这个问题是... 阅读全文
posted @ 2015-04-24 23:05 闯爷88 阅读(2701) 评论(0) 推荐(0) 编辑
摘要: 1. 线程使用场景(1)流水线方式。根据业务特点,将一个流程的处理分割成多个线程,形成流水线的处理方式。产生的结果:延长单一流程的处理时间,提高系统整体的吞吐能力。(2)线程池方式。针对处理时间比较长且没有内蕴状态的线程,使用线程池方式分流消息,加快对线程消息的处理,避免其成为系统瓶颈。线程使用的关... 阅读全文
posted @ 2015-04-24 23:03 闯爷88 阅读(13368) 评论(0) 推荐(0) 编辑
摘要: 一、流媒体简介流媒体是指在internet中使用流媒体技术的连续时基媒体,例如视频、音频或多媒体文件。流式传输方式是将音视频、动画等多媒体文件经过压缩后分成一个个小数据包,当用户端发出请求时,由服务器端向用户端实时、连续传送这些小数据包,动态变化的网络可能使各个包选择不同的路由,故到达用户端的时间延... 阅读全文
posted @ 2015-04-24 23:01 闯爷88 阅读(1222) 评论(0) 推荐(0) 编辑
摘要: Dekker algorithm是一种著名的并发编程的算法,Dekker算法的核心部分是一组对称的代码来访问一组共享变量,使得两个线程不可能同时进入临界区(只要cpu内存模型是遵循顺序一致性的),从而达到线程同步的目的。以下是该算法的一种实现:static volatile int flag1 = ... 阅读全文
posted @ 2015-04-24 22:58 闯爷88 阅读(800) 评论(0) 推荐(0) 编辑
摘要: B树即二叉查找树(二叉排序树 或 二叉搜索树):1.所有非叶子结点至多拥有两个儿子(Left和Right);2.所有结点存储一个关键字;3.非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树;如:B树的搜索,从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果... 阅读全文
posted @ 2015-04-24 22:55 闯爷88 阅读(169) 评论(0) 推荐(0) 编辑
摘要: Michael-Scott非阻塞队列算法,即MS-queue算法,是1 9 9 6 年由Maged . M .Michael and M. L. Scott提出的,是最为经典的并发FIFO队列上的算法,目前很多对并发FIFO队列的研究都是基于这个算法来加以改进的。在共享内存的多核处理器上,这种基于C... 阅读全文
posted @ 2015-04-24 22:46 闯爷88 阅读(1554) 评论(0) 推荐(0) 编辑
摘要: 1. openldap编译如果需要openldap支持SASL认证,需要在编译时加上–enable-spasswd选项安装完cyrus-sasl,openssl(可选),BDB包后执行:12$ sudo ldconfig$ export LD_LIBRARY_PATH="/usr/local/lib... 阅读全文
posted @ 2015-04-24 22:37 闯爷88 阅读(4545) 评论(1) 推荐(0) 编辑