- 博客(88)
- 资源 (65)
- 收藏
- 关注
原创 Asterisk的SIP type和身份认证
<br />在Asterisk中对某个peer的类型分为3种:peer, user和friend<br />看看voip-info对这三种类型的解释<br /><br />peer : A SIP entity to which Asterisk sends calls (a SIP provider for example). If you want a user (extension) to have multiple phones, define an extension that calls two
2010-12-31 16:01:00 1878
原创 SIP穿越NAT&FireWall解决方案
<br />SIP从私网到公网会遇到什么样的问题呢?<br />包的地址转换。<br />SIP消息里面的SIP地址转换。<br />SIP消息里面的SDP中的RTP地址转换。<br /> <br />网络现存结构复杂,SIP服务提供商并不一定是NETWORK提供商,很难要求客户只能使用某种方式的NAT&FireWall。如何找出一种可以满足各种网络的SIP应用解决方案呢?<br /> <br />NAT和Firewall的基本原理<br />首先,NAT的几种方式:<br />Full Cone:当一台私
2010-12-31 15:56:00 1907
原创 asterisk和sip终端都在NAT后面 问题解决方案
<br />网络结构如下:<br />asterisk(192.168.1.99) <--> 无线路由器(公网IP: 55.66.77.88) <-----------------------> 无线路由器(公网IP: 21.31.41.51) <--> eyeBeam(sip软电话: 192.168.12.43)<br />也就是说asterisk和sip终端都在NAT后面。<br /><br />解决方法如下:<br />1。修改sip分机设置,在sip_.conf中<br />nat=yes<br
2010-12-31 15:53:00 4657
原创 jWebSocket for Android
Why WebSockets?<br />The multitude of WebSockets benefits can be expected to gradually replace traditional mechanisms such as AJAX, XHR, comet or polling. First, the communication is streamlined, because WebSockets are based on TCP instead of on HTTP. The
2010-12-30 23:11:00 4241
原创 WebSocket
What is the WebSocket API?<br />The WebSocket API is the next generation method of asynchronous communication from client to server. Communication takes place over single TCP socket using the ws (unsecure) or wss (secure) protocol and can be used by any cl
2010-12-30 23:01:00 2209
原创 深入理解sizeof
<br />1.0 回答下列问题:[答案在文章末尾]<br />1. sizeof(char) = <br />2. sizeof 'a' = <br />3. sizeof "a" = <br />4. strlen("a")) =<br /> 如果你答对了全部四道题,那么你可以不用细看下面关于sizeof的论述。如果你答错了部分题目,那么就跟着我
2010-12-29 00:06:00 938
原创 浅析malloc()的几种实现方式
<br />malloc()是C语言中动态存储管理的一组标准库函数之一。其作用是在内存的动态存储区中分配一个长度为size的连续空间。其参数是一个无符号整形数,返回值是一个指向所分配的连续存储域的起始地址的指针。<br /> 动态内存分配就是指在程序执行的过程中动态地分配或者回收存储空间的分配内存的方法。动态内存分配不像数组等静态内存分配方法那样需要预先分配存储空间,而是由系统根据程序的需要即时分配,且分配的大小就是程序要求的大小。本文简单介绍动态内存分配函数malloc()及几种实现方法。<br />
2010-12-28 23:59:00 881
原创 函数指针和指针函数
<br />【函数指针】<br /><br /> 在程序运行中,函数代码是程序的算法指令部分,它们和数组一样也占用存储空间,都有相应的地址。可以使用指针变量指向数组的首地址,也可以使用指针变量指向函数代码的首地址,指向函数代码首地址的指针变量称为函数指针。<br />1.函数指针定义<br />函数类型 (*指针变量名)(形参列表);<br />“函数类型”说明函数的返回类型,由于“()”的优先级高于“*”,所以指针变量名外的括号必不可少,后面的“形参列表”表示指针变量指向的函数所带的参数列表。
2010-12-28 23:57:00 1076
原创 回调函数
<br /> 程序员常常需要实现回调。本文将讨论函数指针的基本原则并说明如何使用函数指针实现回调。注意这里针对的是普通的函数,不包括完全依赖于不同语法和语义规则的类成员函数(类成员指针将在另文中讨论)。<br />声明函数指针<br /> 回调函数是一个程序员不能显式调用的函数;通过将回调函数的地址传给调用者从而实现调用。要实现回调,必须首先定义函数指针。尽管定义的语法有点不可思议,但如果你熟悉函数声明的一般方法,便会发现函数指针的声明与函数声明非常类似。请看下面的例子:<br />void f();
2010-12-28 23:56:00 1050
原创 函数可重入性及编写规范
<br />一、可重入函数<br />1)什么是可重入性?<br />可重入(reentrant)函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入(non-reentrant)函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用本地变量,要么在使用全局变量时保护自己的数据。<br /><br />2)可重入函数:<br />不为连续的调用持有静态数据。 <br
2010-12-28 23:49:00 1318
原创 基于SIP的VoIP相关协议、协议栈及应用
<br />基于SIP的VoIP相关协议、协议栈及应用<br /> 相关协议<br />SIP(Session Initiation Protocol)协议是IETF多媒体数据和控制体系结构的一个组成部分,是一个基于文本的协议。<br />SIP协议的出发点是想借鉴Web业务成功的经验,以现有的Internet为基础来构架IP电话业务网,因此SIP有着与H.323完全不同的设计思想。它是一个分散式的协议,它将网络设备的复杂性向网络边缘推,使核心网络仍是一个“Best Effort″的传送通道,这就是SIP系
2010-12-28 22:03:00 2518
原创 数据库编程接口Libpq 3
<br />.10 在多线程程序中使用libpq libpq的函数是线程安全的,可以在多线程程序中使用libpq。但编译libpq共享库时,必须使用特殊的选项才能保证生成的libpq共享库是线程安全的。Libpq提供了一个特殊的函数PQisthreadsafe,应用程序可以调用这个函数确定自己使用的libpq共享库是不是线程安全的。<br /><br /><br />PQisthreadsafe<br /><br />返回1表示libpq共享库是线程安全的,返回0表示libpq共享库不是线程安全的.
2010-12-23 15:19:00 2913 2
原创 数据库编程接口Libpq 2
1.4 异步函数<br /> 使用函数PQexec执行SQL命令很方便,但也有下面的缺点:<br />· PQexec 必须等到发出的命令执行结束才会返回,如果命令执行的时间比较长,应用程序将长时间处于等待状态,不能响应用户的其它请求,降低了程序的交互性。 <br />· PQexec如果一次执行多条命令,只有最后一条命令的PGresult才会被返回,前面的命令的PGresult会被丢弃。<br /> Libpq同时提供了异步函数来执行SQL命令,这些函数不
2010-12-23 15:09:00 2514
原创 数据库编程接口Libpq
Libpq是PostgreSQL提供的C语言数据库编程接口,用户可以使用Libpq的API来访问数据库,开发应用程序。1.1 数据库连接控制函数应用程序在连接数据库时必须使用本节介绍的数据库连接控制函数。应用程序可以同时建立多个数据库连接,一个连接只能访问一个数据库中的数据。每个数据库连接用一个PGconn对象表示,函数PQconnectdb或PQsetdbLogin会返回一个PGconn对象。函数PQconnectdb和PQsetdbLogin总是返回一个非空的对象指针,除非整个内存都被耗尽,无法为PGc
2010-12-23 13:41:00 3042
原创 Asterisk 1.8 队列 分析
上一篇文章 讨论了 invite请求最终 走到 dialplan,走到拨号方案后 具体做什么动作由用户决定,对于呼叫中心应用,队列是必不可少的功能,本篇文档分析一下主叫打进系统,走到dialplan后 进队列,呼叫坐席。。一切从队列开始。。。。queue(nama,timout,tT,,.),queue_exec为队列入口函数。首先解析 队列参数。AST_DECLARE_APP_ARGS(args, AST_APP_ARG(queuename); AST_APP_ARG(options); AST
2010-12-22 12:37:00 4506 5
原创 Asterisk 1.8 sip 协议栈分析 2
上一篇文章分析了 sip注册消息的流程,下面分析一下 invite请求的处理流程。从handle_request_invite入口,invite请求此处处理replace请求头,如果为replace则认为是咨询,此时不会创建新的通道,而是找到一个通道植入(masqued),大多数情况下是根据invite创建新的请求,所以此处我们从这里开始,不考虑咨询情况首先检查此请求是否为重复请求,if (!req->ignore) ,接下来调用check_via检查via头域,这个函数涉及到nat穿越问题,此函数解析rp
2010-12-21 18:32:00 2129
原创 sip 消息 解惑
记录几个关键的地方,经常容易忘掉。1。rport :VIA头域的一个字段,一种解决nat穿透方案,sip扩展。2。虽然ack属于Invite的一个确认响应,但ACK与invite不属于一个 transaction。属于一个会话。3。 sip 中的事务 branch IDs 都由固定字符串z9hG4bK开始4。call-id ,实际上call-id唯一标识一路通话,但是在某些sip proxy 里同一个会话可能同时发出(proxy forking),所以又添加了 from-tag, 及to-tag ,用来
2010-12-21 15:57:00 2085
原创 C++ Style Guide
Common Rules<br />The following style guidelines will be followed for both Slice and C++ code:<br />C1. Braces for compound statements will be on their own lines, at the same indentation level as the statement they are part of. Code and declarations in the
2010-12-17 00:05:00 1181
原创 STUN
<br />STUN (Simple Traversal of UDP through NATs (Network Address Translation)) is a protocol for assisting devices behind a NAT firewall or router with their packet routing. RFC 5389 redefines the term STUN as 'Session Traversal Utilities for NAT'.<br />N
2010-12-16 23:19:00 2286
原创 Asterisk SIP channels
SIP Channel Module <br />The SIP Channel Module enables Asterisk to communicate via VOIP with SIP telephones and exchanges. Asterisk is able to act as <br />a SIP client: This means that Asterisk registers as a client to another SIP server and receives and
2010-12-16 23:16:00 2034 1
原创 Asterisk SIP media path
<br />In a normal SIP proxy, the server is not involved in the media between the phones. With Asterisk, sometimes Asterisk stays in the path. It depends on many variables and configurations. <br /><br />Asterisk mostly sets up the SIP phone call with itsel
2010-12-16 23:14:00 1138
原创 Asterisk SIP user vs peer
<br />Asterisk SIP 'users' and 'peers' are have been the source of much confusion for Asterisk users. <br /><br />With newer versions of Asterisk the concept of SIP 'users' will be phased out. <br /><br />Quotes from Kevin Fleming of Digium on Asterisk Mai
2010-12-16 23:11:00 965
原创 Asterisk sip canreinvite
Asterisk sip.conf, peer definition: canreinvite option <br /><br />This peer option in sip.conf is used to tell the Asterisk server to not issue a reinvite to the client unless really necessary. This is used to interoperate with some (buggy) hardware that
2010-12-16 23:04:00 1324
原创 Asterisk Letting SIP clients connect directly
<br />Asterisk by default connects all media streams through asterisk to be able to connect various protocols and media to each other. <br /><br />If you have two SIP phones, the media path can be connected directly between the phones without going through
2010-12-16 23:00:00 907
原创 port forwarding
<br />Port Forwarding is configured on the router (machine making nat) and will forward connections originated from external clients to internal machine running asterisk. <br /><br />If using Linux/Netfilter, run, on router: <br /><br /># SET SIP SERVER IN
2010-12-16 22:55:00 1136
原创 SIP with NAT or Firewalls
Most conventional voip protocols (SIP, h323, …) are not programmed with NAT in mind, on itself they only carry call signaling (call setup, teardown,… and use RTP to carry the audio samples.The signaling usually uses fixed and standardized ports, but the RT
2010-12-16 22:50:00 1550
原创 Asterisk SIP NAT solutions
Asterisk, SIP and NAT <br /><br />Asterisk can both act as a SIP client and a SIP server. Asterisk as a SIP client is configured with type=peer (or type=friend) in one or more client sections of sip.conf and, optionally, one or more register=> lines in the
2010-12-16 22:47:00 1626
原创 SIP基本应用方案
本系统中提到的是SIP在企业网络种的应用,可以适应各种情况下的企业网络,对VOIP在企业网络中的普及,起到很大的推进作用。同时系统的设计是完全参照相关规范来制定的,可以和标准设备完全互通,对现有网络结构不需要任何修改。推广到所有VOIP协议上,对于H323,MEGACO协议的应用,本公司也可以提供相应的方案来解决在企业网络上应用的局限。<br /> <br />SIP基本应用<br />SIP协议作为VOIP通信的主要协议之一,以起简单,灵活,开放性而逐渐在VOIP通信领域内占据主导地位。使用SIP
2010-12-16 18:36:00 1436
原创 Asterisk 1.8 meetme 改进
1、MeetMe应用现在打开了一个DENOISE()功能,每一方都是。这可以显著降低背景噪音(特别是在嘈杂的数据中心机房里)。 Qp!J:YV <br />2、MeetMe有一个新的参数选项 'G' ,在加入会议桥之前播放一个宣告。 Jz$ >k$!UD <br />3、MeetMe无需设置参数选项 'o',默认已经启用。 e2Jp'93o' <br />4、MeetMe增加一个‘C’选项,当一个用户被踢出来的时候,可以继续执行dialplan PU+1=%'V <br />5、Meet
2010-12-16 15:48:00 1529
原创 Asterisk 1.8 提高了大型Dialplan的效率
<br />如果用Asterisk开发一个大型的IVR或其它的业务系统,比如托管式通讯服务或者外包呼叫中心或者大型声讯平台,那么Dialplan的解析效率确实是一个问题。 -&Gfh/_NW <br /> 1.8版本引入了一个新的分机模式匹配模式,基于trie技术(Trie,又称单词查找树,是一种树形结构,用于保存大量的字符串。它的优点是:利用字符串的公共前缀来节约存储空间。)。可以显著地加速中型和大型dialplan的效率。 ~7SH4Cr <br /> 因为以前的
2010-12-16 15:47:00 1246
原创 Asterisk 1.8 Dialplan里获取SIP响应编码
<br />Asterisk里调试SIP确实挺麻烦的,一般使用另外的网络协议分析工具。从1.8版本开始,可以直接在Dialplan里拿到详细的SIP交互信息,从而更加准确地获取拨号状态、网络状态、用户状态(UA)等。 gxmc| <br /> 以前版本里,拨号后的状态DIALSTATUS一般返回值有ANSWER、BUSY、NOANSWER、CANCEL、CONGESTION、CHANUNAVAIL、DONTCALL、TORTURE、INVALIDARGS。 # X/Q <
2010-12-16 15:46:00 2218
原创 SIP通过NAT的实例解析
<br />下面对SIP协议产生NAT穿透问题,作一些解释;及提出解决的办法。 <br />1、大致有4种类型的NAT。<br />a) Full Cone 完全圆锥体<br />b) restricted cone 受限制的圆锥体<br />c) port restricted 端口受限制的圆锥体<br />d) symmetric 对称的<br />其中a,b,c 也称作非对称的NAT。<br />2、SIP终端在NAT后面,其工作有可能出现问题。原因是SIP信令走的路径,和媒体流走的路径不一样。<br
2010-12-16 12:20:00 1740
原创 Asterisk 1.8 sip 协议栈分析
协议栈初始化:load_module() 函数加载SIP配置信息,解析sip.conf挂载到全局变量中。 首先初始化user,peer,register全局链表(1.6 版本中已经改为hash存储 估计性能提高不少),这三个链表分别存储用户,peer,register三个实体。 接下来创建 调度器,IO管理器,这里IO即监听socket fd句柄上的IO事件,chan_sip用poll异步IO实现此功能,io_context 结构封装了此功能。 创建IO调度器后注册各种app, load_mod
2010-12-15 13:30:00 2405
原创 Firewalls and NAT Interaction
<br />Most corporate LANs or intranets connect to the public Internet through a firewall. A firewall is filtering software usually in a router or hub that is used to protect the LAN behind it from various kinds of attacks and unauthorized access. Firewalls
2010-12-13 21:21:00 1367
原创 IMS技术
<br />1.移动网络的发展--引子 <br />20世纪80年代,商业性移动通信网络得到发展<br />第一代移动通信系统:TACS、NMT等模拟系统<br />第二代移动通信系统:GSM、IS-95、DECT、IS-136等数字系统,目前建设的2G移动网络使用两种主要技术,GSM网络使用TDMA技术,大约占70%,IS-95网络基于CDMA技术,大约占25%。<br />1992年开始对3G移动通信系统进行研究:R99、R4、R5、R6、R7、R8、R9……<br />2G (GSM), 基于电路交换
2010-12-13 18:07:00 2662
原创 b2bua 与proxy区别
<br />1. 什么是Proxy模式? <br />按照RFC3261中的定义,Proxy服务器是一个中间的实体,它本身即作为客户端也作为服务端,为其他客户端提供请求的转发服务。一个Proxy服务器首先提供的是路由服务,也就是说保证请求被发到更加”靠近”目标用户的地方。Proxy服务器在施行某些强制政策时也有用(比如,确认一个用户是否允许建立一个呼叫等)。而一个Proxy服务器翻译,如果有需要的话在转发消息前会重写该请求消息。<br />2. 什么是B2BUA? <br />按照RFC3261中的定义,背
2010-12-13 17:12:00 2674
原创 SDP
SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. SDP is used from VOIP signalling protocols like SIP, H.323 and some minor VOIP protocols to t
2010-12-12 22:57:00 1044
原创 jabber
目录1 历史2 优点3 运作方式 4 连接其他协定5 Jabber客户端软件列表1 历史2 优点3 运作方式 4 连接其他协定5 Jabber客户端软件列表6 Jabber服务器端软件7 使用Jabber协议的客户端与服务器端对话的例子<br /> jabberJabber是一个开放的、基于XML的协议。它的用途在即时通讯及Presence资讯方面。<br /> jabber - 历史<br />JeremieMiller于1998年开始了这个项目。第一个公开版本于2000年5月发行。这个项目的主要
2010-12-12 18:49:00 2222
原创 Open Source SIP Stack and Media Links
Recommended Open Source Portability Framework<br />http://www.pjsip.org/links.htm<br /> <br /> <br />If you're looking for the base portability/framework library for building your application, then I can recommend the following fine libraries:APRApache Por
2010-12-12 18:29:00 1970
名企笔试相关(IT类)
2009-12-04
46家公司笔试题.pdf 包括 C C++
2009-12-04
C++名家精华.chm
2009-04-01
c C++算法大全详解(付代码)
2009-04-01
Linux_C函数详细解析.pdf
2009-04-01
C案例分析-开发综合程序
2009-03-22
java设计模式迷你手册(普通下载).chm
2008-11-22
2009年C#面试题库.rar
2008-11-20
700多个API函数的详细介绍.rar
2008-11-20
精华游戏算法整理(经典)
2008-11-19
组件技术综合资料库.chm
2008-10-31
.Net 多线程详解
2008-10-31
C/C++面试题目及解答.doc
2008-05-12
经典C/C++面试题目大汇总(全附答案).doc
2008-05-12
先进算法讲义(中科大)
2008-05-10
若干 经典算法 的探讨及C语言实现.chm格式
2009-12-04
全面介绍Windows内存管理机制及C++内存分配实例
2009-12-04
CSDN 论坛 算法 精华 chm 格式
2009-12-04
各种算法的C语言实现
2009-12-04
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人