- 博客(41)
- 资源 (26)
- 收藏
- 关注
原创 sip 协议 --PRACK
1. 概念 : sip 协议中的PRACK 英文全称:Provisional Response ACKnowledgement 。临时恢复确认。详细描述在:RFC3262中 http://www.ietf.org/rfc/rfc3262.txt2. 目的:确保sip中 1xx 响应的可靠传输。 PRACK一般是对收到183 call in progress/1
2013-09-04 16:25:23 6427 1
原创 MFC对话框里不能响应按键事件的解决办法
我们公司是做IP电话的。有一个以前做好的模拟话机的的软件。上面有好多按钮(仿真真实话机的)。每次测试软件要点击好多次按钮。听说是用鼠标多了手会残疾。所以打算用键盘的按键代替模拟电话上的按钮。按道理说只要在窗口上映射键盘消息就行了。按键消息响应的函数有: afx_msg void OnKeyDown (UINT nChar, UINT nRepCnt, UINT nFlags);
2013-08-16 17:49:53 13282 1
原创 MiniGUI.cfg 配置文件 路径
Minigui库首先从系统环境变量MG_CFG_PATH 获得MInigui.cfg的path。如果环境变量没有定义 从/ect中获得如果/etc中没有从/usr/local/ect下面获得定义环境变量export MG_CFG_PATH=
2013-05-17 15:18:56 2346
原创 MiniGUI 3.0 支持truetype 矢量字体问题解决
问题:研究开源Minigui-gpl-3.0.12 时遇到truetype 矢量字体显示的问题。问题解决步骤:1.调试查看Minigui-gpl-3.0.12,freetype 初始化是在 libminigui-gpl-3.0.12/src/newgdi/gdi.c 中mg_InitGDI 函数中font_InitFreetypeLibrary . 是否初始化取决于_MG_FONT
2013-05-17 11:40:44 4325 4
原创 unix 编程 共享内存总结
1.原理共享内存是IPC常用的一种形式。它的原理就是:一个进程首选调用系统调用shmget向内核申请一块内存。这时内核就维护了一个全局的共享内存的数据结构。如果一个进程要使用这块全局的数据结构。要调用shmat这个系统调用。把那块共享内存挂到自己的进程的内存空间。2.实现细节第一步:因为大家要共享一个全局的数据区域。就像几个人一块儿约会,前提是要知道这个约会的地
2013-03-20 10:30:34 900
转载 CLOSE_WAIT状态的生成原因
CLOSE_WAIT状态的生成原因首先我们知道,如果我们的Client程序处于CLOSE_WAIT状态的话,说明套接字是被动关闭的!因为如果是Server端主动断掉当前连接的话,那么双方关闭这个TCP连接共需要四个packet: Server ---> FIN ---> Client Server 这时候Server端处于FIN_WAI
2012-07-27 16:56:42 834
转载 mysql 远程访问
[导读]改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%" 解决方法: 1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入m
2012-06-27 16:32:26 687
转载 bash 的判断文件操作语句
-d file file存在并且是一个目录-e file file存在-f file file存在并且是普通文件-r file file有读权限-s file file存在且不为空-w file file写权限-x file file有执行权限-a FILE ] 如果 FILE 存在则为真。[ -b FILE ] 如果 FILE 存在
2012-06-26 16:06:28 3824
原创 shell 编程 重定向 read
#!/bin/bashFile=/etc/fstab # File和等号中间不能空格Result=1.test{ read line1 read line 2} {echo "$line1"echo "$line2"} > $Result
2012-06-25 17:01:32 1225
转载 用mkfs.jffs2 命令制作jffs2镜像文件 (转)
分类: Linux Kernel 2009-11-06 11:43 2659人阅读评论(1)收藏 举报 下载:ftp://sources.redhat.com/pub/jffs2/mkfs.jffs2或者使用命令:apt-get install mtd-utils命令使用实例:mkfs.jffs2 -s 0x1000 -e 0x40000 -p 0
2012-06-12 11:05:42 515
转载 sip payload
在SIP中需要携带媒体能力,主要是m=的参数中携带。一般格式是m=媒体类型 媒体端口 媒体原型,之后接若干个Payload ID。Payload ID需要在RFC3551中查找,典型的Payload ID是G.711 A率是8,G.711 Mu率为0,G.723为4,G.729为18,G.726_32为2。但需要注意的是G.726_32并不是RPC中定义的。这样的定义还有一部分,但很多属于约定俗成
2012-05-16 19:54:49 1534
原创 ubuntu 依赖库的应用
在利用开源项目中,往往有很多依赖。在编译链接和运行时,系统从一下三个路径去找依赖库:1.系统默认的库路径:一般是 /lib /usr/lib2.LD_LIBRARY_PATH 指定的路径3./etc/ld.so.conf 中指定的路径但是对于第三种方法,在程序编译和链接时已经足够了,在程序运行是是不行的。这时还要运行一下ldconfig . 我们在利用ubuntu的 ap
2012-03-23 13:57:30 1549
原创 ubuntu 中的 pkg-config
pkg-config 命令简介:pkg-config 是一个常用的库信息提取工具。pkg-config 工具从.pc文件中提取编译链接配置路径。pkg-config 从一个叫做PKG_CONFIG_PATH的环境变量中查找pc文件设置 环境变量命令:export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH应
2012-03-23 13:39:09 12374 1
原创 ubuntu network configer file
1. /etc/network/interfaceadd auto eth0iface eth0 inet staticaddress 192.168.1.115netmask 255.255.255.0geteway 192.168.1.2542./etc/init.d/networking restart3.dns/etc/re
2012-03-23 11:30:03 787
原创 sip 协议学习网站
www.osip.orgwww.pjsip.orgwww.tech-invite.comhttp://www.delveintotech.com/index.htmlhttp://www.vocal.com/sip/prack.htmlwww.itef.orgwww.voip-info.org
2012-03-16 11:41:54 911
原创 sip 协议扩展
今天学习了 sip 中的replace 头域。在rfc3261中没有查到replace头域。后来从网上收索RFC3891对replace头域做了描述。还有一个sip 方法扩展就是 info。在rfc2976中。
2012-03-15 09:41:43 1383
原创 hold 功能的实现
在ip电话中实现hold功能通过再次发送INVITE (第一次发送INVITE时 to头域的tag是没有的)在SDP里面改为sendonly通过再次发送INVITE可以实现改变媒体类型等修改会话的行为。一个应该看得网站是tech-invite.com
2012-03-15 09:41:29 956
原创 error LNK2019: 无法解析的外部符号 问题原因
在vc下面build 时,尤其是build别人的代码时会出现error LNK2019: 无法解析的外部符号。这个问题是出现在链接阶段,是在编译阶段没有问题,在链接时找不到函数实现的地方。我所经历的有两种情况:1.链接时相应的库文件没有找到。解决办法是 在项目属性里加入依赖库2.自己代码的问题,可能是因为自己添加的代码未放在工程里面。
2012-03-15 09:40:39 688
原创 window 和linux 文件共享 问题
开发跨平台的应用程序时,需要两套开发环境。为了使代码能够在window和linux两个平台中同步。可以有以下方法。1.在虚拟机中用共享文件夹2.在linux用smb服务其中smb服务的使用步骤如下a.在linux中装好smbb.启动smb /etc/init.d 中启动smbc.在window开始运行中\\linux ip地址 如\\192.168.1.100,即可在win
2012-03-15 09:34:20 480
原创 3des加密没那么简单
最近做一个项目,客户端登陆服务器时要用3DES加密。对3DES加密以前只是听说过,不是很熟悉。刚开始得知这个登陆过程是要用3DES加密。其简单过程是这样的,客户端发送一个认证请求给服务器。服务器发送一段随即数字。然后着串随即数字进行加密。 于是从网上下载3DES加密的源码。为了验证加密结果是否正确,于是下载了多个版本的源码。但是结果竟然不一样。最后得知。3DES加密要知道一
2012-03-05 23:08:31 1874
原创 select总是返回
select io 多路复用大家都很熟悉。一般是 可读,可写,有异常,或者超时时select会返回。但是当连接的对方程序退出时,select一直会返回。如果不进行处理程序会进入死循环。比如可读集中有一个sockfd,对方已经退出。select会一直返回可读。这时就应该判断一下读的字节数是否为零。如果为零证明对方已断。要消除这个sockfd。
2012-03-05 23:01:42 807
原创 结构体里的buf溢出浪费了我一天的时间
今天在做公司里的一个项目时,定义了一个业务处理接口。大致原理是这样的,实际应用比这里复杂的多,为了简单化描述struct transaction{ char rxbuf[MAX_RX_LEN]; int (*cb)();} rxbuf是从网络里接受数据的缓冲区。当要调用cb时发现cb的内容变了。经过调试发现是r
2012-03-05 22:50:32 2166
原创 怎么判断 TCP链接 是否断开了呢
今天用select IO复用时,发现 没有数据交互的情况下,select也返回(还未超时)。 查书得知,当fd在失去链接时select总是返回。并且read结果为空。那么怎么判断tcp链接是否断开呢。查质料如下: * Seems like the most portable way of detecting connect()* failure is to call getpeern
2012-03-02 13:44:45 5800
转载 如何在linux/unix中设置线程的优先级
在linux下我们可以通过int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine)(void*), void *arg);来创建线程,但是如何设置线程的优先级呢?在讨论这个问题的时候,我们先要确定当前线程使用的调度策略,posix提供了int pthread
2012-02-09 14:20:37 611
原创 per单引号和双引号的区别
1)单引号:single quotee.g.print'IMISSYOU"SOMUCH"';它将单引号中的内容包括Perl双引号完整输出,同时即使引号中包含了变量或标量,都将被作为字符处理,如下单引号里面可以包含双引号,并且可以包含变量。变量不取变量值。$a=5;print'$a';结果将输出$a。2)Perl双引号 double quotes如果用
2011-12-17 13:25:16 1337
翻译 kannel概述
当前有数以亿计的手机用户,以手机应用服务的市场大的令人吃惊。哪怕是很简单的一个应用,只要他对用户有用或者是好玩,它就会有很大的市场。能够随时随地的看新闻,发邮件,娱乐的功能会极大的吸引手机用户。 kannel是一个开源的无线应用协议网关。它致力于向任何人提供这种无线应用基础设施中不可缺少的一部分。无论是无线服务运营商还是个性化服务提供者都回感觉到它是非常有效的。kannle也可作
2011-12-16 11:17:53 1621
原创 Asterisk queue 和 ring group 功能的实现及测试
APBX ——Queue测试 测试Dial 'Queue number + '*'' to log in or 'Queue number + '**'' to log out the queue. For example, if the queue number is '6
2011-09-07 09:18:18 4252
原创 ERROR[5378]: res_musiconhold.c:645 monmp3thread: poll() failed: Interrupted system call
this error means the asterisk can not translation the mp3 file.after setup the mpg123 or mpg 321 to the system ,this errro was solved.
2011-08-24 15:12:22 7238
原创 win32 listctrl 的用法
请注意 :一定要用 LVS_REPORT 风格。 使用列表控制的步骤如下:调用CreateWindowEx函数来创建一个列表控件,指定它的类名为SysListView32。您还可以在此处指定控件初次显示时的方式。 创建和初始化用在列表控件中显示项目的图
2011-08-09 17:46:46 4457
原创 mysql 插入汉字问题
在命令行中插入汉字没有问题,而在调用Mysql_query时如果插入的是汉字则Mysql返回错误。这显然是字符集设置问题 。可以通过设置GB2312 来解决。mysql_set_character_set(mysql,"gb2312"); 下面是具体的实例代码。
2011-08-08 15:02:00 923
原创 vc win32 托盘 例子
#include #define IDR_PAUSE 12#define IDR_START 13/*#include #pragma comment(lib, "shell32.lib") */LPCTSTR szAppName = TEXT
2011-08-05 09:54:18 902
原创 c 语言 ","号运算符的用法
在C语言中,多个表达式可以用逗号分开,其中用逗号分开的表达式的值分别结算,但整个表达式的值是最后一个表达式的值。 假设b=2,c=7,d=5, a1=(++b,c--,d+3); a2=++b,c--,d+3; 对于第一行代码,有三个表达式
2011-07-30 19:04:04 1334
原创 c 语言文件操作函数
C语言的文件操作文件的基本概念 所谓“文件”是指一组相关数据的有序集合。 这个数据集有一个名称,叫做文件名。 实际上在前面的各章中我们已经多次使用了文件,例如源程序文件、目标文件、可执行文件、库文件 (头文件)等。文件通常是驻留在外部介质(如磁盘等)上的, 在使用时才调
2011-07-30 09:41:36 4449
原创 sqlite 数据类型总结
一般数据采用的固定的静态数据类型,而SQLite采用的是动态数据类型,会根据存入值自动判断。SQLite具有以下五种数据类型:1.NULL:空值。2.INTEGER:带符号的整型,具体取决有存入数字的范围大小。3.REAL:浮点数字,存储为8-byte IEEE浮点数
2011-07-29 16:11:11 612
原创 运行时 不显示对话框 只显示 对话框上面的控件
在写VC应用程序时有时候会遇到 Dialog 调用一个对话框时,不显示对话框,只显示对话框上面的控件,原因是对话框处理函数 没有返回 FALSE
2011-07-29 11:41:50 646
原创 iperf
Iperf 是一个网络性能测试工具。Iperf可以测试TCP和UDP带宽质量。Iperf可以测量最大TCP带宽,具有多种参数和UDP特性。Iperf可以报告带宽,延迟抖动和数据包丢失。Iperf使用方法与参数说明 参数说明-s 以server模式启动,eg:iperf -s-c
2011-07-28 09:58:57 453
原创 宽字符转为char *
DWORD dwNum = 0;char ipadd[30];dwNum = WideCharToMultiByte(CP_OEMCP,NULL,szIPAddr,-1,NULL,NULL,0,NULL); memset(ipadd,0,sizeof(ipadd)); Wid
2011-07-27 16:21:23 646
原创 listview get subitem
int get_dialhistory(HWND h_listview,char * dial_num){ HLVITEM hItemSelected; LVSUBITEM subitem; assert(dial_num!=NULL); memset(dial_nu
2011-07-21 16:58:18 701
openssl-examplel.rar
2019-12-30
合勤802.1x配置.jpg
2019-12-30
freetype 实例
2012-03-20
RTP 协议中文版
2011-09-19
RFC3261-中文版本
2011-07-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人