- 博客(105)
- 资源 (8)
- 收藏
- 关注
转载 【转】Linux下的多线程编程
<br />1 引言<br /> 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。<br /> 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。<br /
2010-08-20 10:44:00 486
转载 【转】Linux下的C编程入门之“线程”控制与“线程”通信编程
1.Linux“线程”笔者曾经在《基于嵌入式操作系统VxWorks的多任务并发程序设计》(《软件报》2006年第5~12期)中详细叙述了进程和线程的区别,并曾经说明Linux是一种“多进程单线程”的操作系统。Linux本身只有进程的概念,而其所谓的“线程”本质上在内核里仍然是进程。大家知道,进程是资源分配的单位,同一进程中的多个线程共享该进程的资源(如作为共享内存的全局变量)。Linux中所谓的“线程”只是在被创建的时候“克隆”(clone)了父进程的资源,因此,clone出来的进程表现为“线程”,这一点一
2010-08-20 10:07:00 656
原创 RFC 要读完真累啊
<br />要把RFC都读完真累啊...<br />仔细看了RFC才发现,以前做的那些简直一点规范都没有...<br />要读完可能还要一周时间...囧死<br />关键是读完还不一定记得住<br /> <br />天气热了,人也浮躁起来了...<br />
2010-07-30 16:46:00 526
翻译 Querying for Capabilities -- 能力问询 (摘译自 RFC 3261)
SIP方法OPTIONS允许一个UA来查询另外一个UA或者proxy服务器的能力。这个提供个客户端一个手段来查询服务端支持的方法,内容类型,扩展,codecs等等。这些都不用”ringing”对方。比如,在客户端试图在INVITE请求头中增加一个请求字段选项的时候,它并不知道对方UAS能否支持这个选项,它就可以用OPTIONS来查询一下UAS,通过检查OPTIONS返回的Supported头域,就可以知道是否支持这个选项。所有的UA都必须支持OPTIONS方法。OPTIONS请求的目标是用Request-U
2010-07-28 16:27:00 761
原创 Asterisk OpenIMSCore EricssonSDS
Asterisk看來是不可能支持IMS標準了...倒是能夠支持SIP,可惜不能配置...如果有時間將其源碼研究一下,可能還是可以研究出點方法.OpenIMSCore,怎麼說呢,配置比較多,他也是使用OpenSER,也有SipServlet的味道,但是怎麼在其上面搞開發...目前還沒有很多資料.Ericsson SDS,這個功能很齊全,可惜不能作為服務器部署,還有就是其基礎的pcscf,icscf,scscf的代碼不開源,無法在其基礎上更改,全部自己寫,工作量太大了!~
2010-07-27 16:04:00 971
原创 AMI Asterisk Manager Interface
要激活AMI,需要在/etc/asterisk/manager.conf中,[general]块下设置enabled=yes然后添加用户,比如[admin]secret = admindeny = 0.0.0.0/0.0.0.0permit = 127.0.0.1/255.255.255.0read = all,system,call,log,verbose,command,agent,user,configwrite = all,system,call,log,verbose,command,agent,
2010-07-20 10:27:00 2890
原创 extension_dialplan.conf
<br /><br />;-----------------------------<br />; Test Dial<br />;-----------------------------<br />[from-exten-sip]<br />include = app-test<br />include = app-hints<br />include = parkedcalls<br /> <br /><br />[app-test]<br />;Dial successfully first<br
2010-07-16 09:11:00 607
原创 呼叫转接
<br />呼叫转接分两种情况<br />英文是:Transfer-Unattended和Transfer-Attented<br />中文是:呼叫转接(盲转)和呼叫转接(询问转接)<br /> <br />前者(Transfer-Unattended)的大致过程就是,B呼叫A,接通后,B被保持,A像服务器发送REFER请求(这里与http://tech-invite.com/Ti-sip-service-4.html中略有不同,因为是IMS结构,所有请求都需要通过服务器),A挂机,服务器通过订阅的流程(d
2010-07-14 16:58:00 2075
原创 居然是BUG~!
<br /> <br />Author Topic: Two simple questions <br />Nick Young<br /><br />China <br /><br /><br />Posted on 2010-07-07 05:37<br />Edited on 2010-07-07 06:20Hi all,<br />I have come across two questions:<br />1.If I use the Test Agent,how do I <br />creat
2010-07-12 10:04:00 1239
原创 RDP,doAck以及B2BUAServlet
<br />由于找不到MusicServer,所以比如呼叫等待/呼叫保持之类的需要MusicServer的SDP消息,都直接在服务器中写入到SipServletMessage中去,但是这个SDP中具体需要哪些header呢?参考http://tech-invite.com/Ti-sip-service-3.html#fig6,最简只需要v,o,s,c,t,m,a.查了一下RFC4566,RFC2327,确定了其中的内容格式,修补一下添加SDP的方法.<br /> private void addSDP(Si
2010-07-06 17:26:00 839
原创 在SipServlet中使用SipSession或SipApplicationSession来处理UA状态的改变
<br />先说点与本文无关的,今天终于用X-Lite注册上,原来是需要设置呼出经过的proxy服务器为"127.0.0.1:5081",当然了,这是本机,如果是其他电脑,需要将IP设置为服务器.5081是SDS中P-CSCF所使用的端口,如果只使用IP地址,也是不可以的!<br /> <br />如果是一个B2BUA,那么只需要一个全局容器Hashmap<SipSession,SipSession> map,保存所有"存活"的session,但是现在我的是一个proxy servlet和一个B2BUA s
2010-07-05 17:03:00 1810
转载 SIP消息路由机制
<br />原文地址http://blog.csdn.net/yetyongjin/archive/2009/09/23/4584669.aspx<br /><br />一:请求路由<br /> 松散路由(Loose Router)和严格路由(Strict Router),这是SIP协议(RFC3261)中的一个非常重要的概念。<br /> 在SIP消息的Route头域或Record-route头域中,携带的域值是SIP URI或SIPS URI,如果这个URI带有”lr”属性值,那么,就表示U
2010-06-30 17:02:00 1897
原创 一个信令流程测试服务器,需要做到的
<br />1.详细的日志.使用Java Logging API为程序构建一个完整的日志记录系统.日志不仅仅用来记录客户端发送的信令,也要记录服务器自己做出的操作.<br />2.可扩展.事无巨细,以一人之力在短期内搞出一个符合IMS规范的服务器,个人以为不太可能,这就要求成品必须能够满足当前主要feature,还必须能够扩展,所以必须要模块化之.比如,registar servlet只管Register request,proxy servlet只管proxy,其他的则交于B2BUAServlet来做(这
2010-06-30 10:24:00 1471
原创 Nokia S60v5的用户小心了
今天收到一条短信,一看是服务信息,信息内容:"NOKIA:您的手机系统软件需紧急升级2010版(免费).点击链接查看 http://NOKIAf.com/?ID=23 "于是我用电脑访问了上面的网址(为什么不用手机访问?你不觉得NOKIAf.com这地址很可疑吗?下载下来了一个网页文件,用editplus打开后,有如下代码
2010-06-29 11:27:00 2751 14
原创 为什么不用NetBeans?
<br />其实原因只有一个...SDS配置DNS和CSCF非常容易...<br />但是NetBean的很多功能很"活适"啊!<br />哎,不专业,一点都不专业<br />
2010-06-28 15:33:00 3457
原创 如何改写一个SIP Message中的SDP内容
<br />The message here is either a Request or a Response.<br />The sample code is as below:<br /><br />if(message.getContentLength() > 0)<br />{<br /> String contentType = message.getContentType();<br /> message.setContentType("text/plain"); /
2010-06-25 16:30:00 1178
原创 Sip 服务器行为初窥
<br />这两天看了一些Sip服务器行为发面的资料,主要还是forum,mail-list等,有一个模糊的概念,就是call waiting不必在服务器上实现,这是由UA来做出决定的,服务器所需要做的,只是对各种(不同状态的)信令做合适反馈或处理. 也就是说,服务器只是一个状态机?控制会话状态,根据状态来判断需要对信令流的操作...看起来像...还需要学习
2010-06-24 16:18:00 697
原创 Multiple Servlet 部署
<br />1.增加一个名为package-info.java的文件,其中代码如下(类似)<br />@javax.servlet.sip.annotation.SipApplication( description="Example Application", mainServlet="MainServlet", name="package-info", proxyTimeout=60, sessionTimeout=60)package or
2010-06-21 17:26:00 676
原创 理下思路
<br />分步进行,模拟环境.只是客户端不知道能不能自己模拟环境(比如呼叫保持时).其实这样搞完之后,还是需要一个总体测试的服务器,那么还是需要一个完整功能的服务器才行啊=.= Initial Invite收到,我回100,然后proxy掉;Response收到,182就加点SDP,改成183,proxy掉,200就判断,response.getRequest().isInitial(),false就发送ACK,其他的proxy掉;re-Invite收到,createResponse(200).send(
2010-06-18 14:39:00 543
原创 没事做,玩C++...
<br />/********************************** 双色球自动选号**********************************/ #include <cmath>#include <iostream>#include <ctime>using namespace std;int main(){ int *A = new int[6]; srand((unsigned int)time(0));
2010-06-13 15:13:00 449
原创 SuperServlet 完成度 40%
<br /><br />doInvite() done/missing status procession<br />doSucesseResponse() done/missing status procession<br />addSDPMRS() done<br />doRequest() done/missing status proces
2010-06-13 15:10:00 429
原创 Understanding SIP Servlet 1.1
一本这么好的书摆在我面前,我居然只看了几眼...悲剧了...现在才知道,前段时间所做的一切的一切都只是浮云~做人还是要脚踏实地的好,做什么,都要慢慢来,花时间在文档上,并不会拖累你的工作效率!急功近利...一定要改!
2010-06-09 17:29:00 609
原创 讨厌的时差
<br />急求国内专业Ericsson SDS论坛或者网站啊~<br />求国内专业Ericsson SDS论坛或者网站啊~<br />国内专业Ericsson SDS论坛或者网站啊~<br />专业Ericsson SDS论坛或者网站啊~<br />Ericsson SDS论坛或者网站啊~<br />SDS论坛或者网站啊~<br />坛或者网站啊~<br />网站啊~<br />站啊~<br />站啊~<br />啊~<br />啊~<br />啊~<br />
2010-06-07 14:09:00 536
原创 MyServlet source code v1
package myServlet;import javax.annotation.Resource;import javax.naming.Context;import javax.naming.InitialContext;import javax.naming.NamingException;import javax.servlet.sip.Address;import javax.servlet.sip.Proxy;import javax.servlet.sip.Sip
2010-06-03 09:26:00 669
原创 音乐给我灵感
<br />2个小时搞定MyServlet...一切都靠QQ音乐啊<br />发现服务器有问题在JRE5和JRE6上总是有问题,环境变量怎么改都不行<br />卸载了JRE5,重装了JRE6,还是不行...<br />看来得重装SDS了
2010-06-02 16:20:00 455
原创 果然还是没有开发的潜质么?
/********************************************************* * Store caller's information and session*********************************************************/package myServlet;import java.util.HashSet;import java.util.Iterator;import javax.servl
2010-06-01 14:34:00 432
原创 开启Authentication
Windows->preference->Ericsson SDS -> server -> Authentication choose All or Sets
2010-05-26 14:52:00 516
原创 doInvite() & doResponse()
This is modified base on the example of EricssonSDS B2BUA by Norz2010-05-25 15:49:35 /** * Name of the p-asserted-identity header. */ private static final String ASSERTED_IDENTITY_H
2010-05-25 15:50:00 1255
原创 B2BUAs
It seems that I need to built a B2BUA. but a Simple proxy server.There are some methods needed to be Override first of all.1.doInvite(). This method can process invite request.And if invited user
2010-05-25 14:14:00 580
转载 【转】SIP Servlet 概述及范例
SIP Servlets规范(JSR116, Java Community Process), 提供了一系列的Java API和一个基于容器(Container)/应用服务器(Application Server)的开发模型, 用于提高服务器端SIP应用的开发效率. SIP Servlets同样基于Java Servlet架构, 其API归属于javax.servlet.sip包,
2010-05-24 14:41:00 830
原创 Eclipse EricssonSDS中实现简单的代理服务器
一个简单的代理服务器的功能实现,摘自http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.express.doc/info/exp/ae/rsip_servclass1.html protected void doInvite(SipServletReques
2010-05-21 15:33:00 869
原创 5月20日,520
Not Found - Unresolved next hop address but expected OK 解决方法,在DNS中添加 URI = sip:ericsson.comDNS record = 127.0.0.1:5060 List of SIP Response CodesThe following SIP Response Codes may be s
2010-05-20 17:01:00 543
原创 Project facet Java version 6.0 is not supported. 的解决办法
在项目名上点右键,选Properties->project facet->java选择5.0
2010-05-19 10:02:00 590
原创 Ericsson SDS
说实话...不太清楚是个什么东西看介绍说的,既可以作为开发平台,又可以作为测试平台好像很强大的样子...而且在Windows下安装...一切都很简单,没有特别说明的必要 由于是全英文的界面和陌生的环境...感觉就是"摸不到火门"=.=按照Tutorial上的例子做都会出错...难道是因为直接解压,导致没有安装完全? 官方安装步骤Install SDS usi
2010-05-18 11:44:00 1269
转载 让台服客户端支持简体中文
方法:1.在台服客户端,主程序所在文件夹下,建立名称为Fonts的文件夹2.复制9个微软雅黑字体文件,或者您自己喜欢的ttf字体文件(最好是繁体简体双支持的),复制到这个fonts文件夹内.3.将这9个TTF字体文件改名为:ARIALN.TTFFRIZQT__.TTFFZBWJW.TTFFZJZJW.TTFFZLBJW.TTFFZXHJW.TTFFZXHLJW.TTFMORPHEUS.TTF
2010-05-14 14:46:00 3814
原创 Ubuntu 更新源
自己写一个,免得每次安装都去搜索 #gedit /etc/apt/sources.list deb http://Ubuntu.cn99.com/ubuntu/ lucid main universe restricted multiversedeb-src http://Ubuntu.cn99.com/ubuntu/ lucid main universe restricte
2010-05-14 10:15:00 489
原创 循环
感觉还得回到老路上来,选择Asterisk,毕竟成熟得多...Open IMS Core从主页上可以看到几乎有一两年没有更新(包括BUG修复),看来这个项目也搁置了很长时间了,现在我们拿来用,真的好吗?更何况,就我一个人,就算要在上面继续开发,也感觉力不从心啊
2010-05-13 10:57:00 397
原创 在指定路径中查找指定字符串
如果用C++写一个在指定路径下所有文件中查找指定字符串的程序,需要多少代码呢?#!/usr/bin/perl -wuse strict;my $str= shift @ARGV;print "Searching for $str.../n";my $flag = 0;print @ARGV."/n";my @result;foreach my $filename (
2010-05-12 15:03:00 585
原创 呼呼
和项目主管一起确认了一下,服务器没有问题,是客户端确实没有发送那什么"Authorization header"Ekiga没有,UCTIMSCLIENT没有.x-lite没有...真的假的0.0
2010-05-11 14:49:00 449
原创 Ubuntu10.04 安装EKIGA
基本步骤wiki上都有,见http://wiki.ekiga.org/index.php/Compile_your_own_SVN_version_of_Ekiga_on_Ubuntu在获取ekiga源码时有不一样的地方,现在ekiga在gnome上用的是git来管理source code,所以获取源码方式为#sudo git clone git://git.gnome.org/ek
2010-05-11 10:31:00 1501
RFC3261 中文讲解
2010-07-14
The 3G IP Multimedia Subsystem (IMS) 3rd Edition
2010-06-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人