统计 |
blog名称:人在旅途 日志总数:175 评论数量:505 留言数量:13 访问次数:1660150 建立时间:2005年12月7日 |
生命是过客,人在旅途。奶奶是信基督教的,没啥文化,却养育了四子二女,还带过九个孙辈。老人家对生命的看法就是“人都是客人,迟早要回去的。”就以《人在旅途》来纪念她。

« | July 2025 | » | 日 | 一 | 二 | 三 | 四 | 五 | 六 | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | | | |
|
公告 |
本人上传的源程序中可能引用或使用了第三方的库或程序,也可能是修改了第三方的例程甚至是源程序.所以本人上传的源程序禁止在以单纯学习为目的的任何以外场合使用,不然如果引起任何版权问题,本人不负任何责任. | |

|
本站首页 管理页面 写新日志 退出
调整中...
[SIP技术]mjSip学习笔记 |
人在旅途 发表于 2006/3/13 15:38:48 |
1.URL:http://www.mjsip.org/
2.它也是用JAVA编写的,唯一要求的外部库是客户端使用的JMF(只要安装了JMF就可以了,编译和执行都不用特殊处理).它比SUN的JAIN的STACK简单,而且新,上次RELEASE估计在2005年十月份,所对应的SIP功能也比JAIN多,包括支持REFER等消息格式.它也提供源程序,源程序结构比JAIN简单多了,三个部分:包括SIP的STACK和SIP的SERVER和SIP的客户端.它也有BIN的下载,服务器和客户端配置都很简单,基本上看着配置文件内部说明就可以了.从我看到该网站到学习下栽编译测试和分析LOG基本上不用一天工作时间就完成了.
3.不过它的MAKE文件是GNU的不是ANT的,对NETBEANS来说使用不便,不过由于它结构简单,我很方便的用NETBEANS5.0生成了三个PRJ(STACK,SERVER,UA),再从源程序中拷贝JAVA文件和配置文件到这三个PRJ中,很方便地就再编译和执行成功了.
这三个NETBEANS5.0的PRJ源程序和项目文件在这里:500)this.width=500'>MjSIP.rar(只用于学习,版权问题盖不负责,请去http://www.mjsip.org/查询).
4.它的SERVER缺省运行在STATELESS中,当然也可是STATEFUL的.
5.和JAIN的SAMPLE一样,大概是JMF的缘故它的UA在通话中也有很大的延迟,大约一秒多吧.
6.可惜没有商业开发的免费许可(要购买).
7.测试了下,一次INITE对话大概要用0.2秒多点时间,其他简单的TRANSACTION只要用0.1妙左右.
8.2006年4月13日,发现各致命的错误:
当INVITE或REGISTER等消息因为认证(407,401)而被打回后,再加入了认证HEADER
再送时,消息的BRANCH值仍然和第一次的一样.这样一来就和第一次同一个TRANSACTION了(尽管程序是NEW了个新TRANSACTION,但它是用上次消息经过加工后NEW的,所以BRANCH值仍然是上次旧的),而RFC要求是两个不同的TRANSACTION,这样一来服务器就可能因为新消息仍然属于旧TRANSACTION而拒绝响应.
我在ExtendedInviteDialog.onTransFailureResponse中把旧消息的BRANCH值更新了下(在BaseMessage.refreshBranch()中增加了更新函数),测试了下INVITE或REGISTER的情况,正常.
|
阅读全文(69405) | 回复(52) | 编辑 | 精华 |
回复:mjSip学习笔记 |
jian(游客)发表评论于2011/6/14 16:56:01 | 请问如何在mjsipserver 上添加用户?
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
tommy(游客)发表评论于2009/12/25 14:59:35 | 楼主:ua.jar要去哪里下载,执行时候出现错误讯息ERROR: can't read the file jar:file D:\NetBeans_AP\mjsip\SipUa\nbproject/lib/ua.jar!/media/local/ua/on.wav
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
tommy(游客)发表评论于2009/12/25 14:56:05 | ua.jar在哪里下载,执行后找不到这个jar档,出现错误
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
air(游客)发表评论于2009/3/25 13:55:57 | 您好,mjsip的源码,我该从哪里开始阅读较好,我本身不是很了解SIP协议,并且想通过阅读它后对SIP协议进行一点扩展,请指教,谢谢
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
jinjin(游客)发表评论于2008/10/13 18:50:11 | 有人在研究这个代码么?我目前在看,发现店问题,需要找人一块研究.
qq:125043150
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
mcpolo(游客)发表评论于2006/8/28 10:48:00 | 怎么回recevied的时候要认证呢?楼主看看,是不是要加认证?
12:43:07.153 Fri 25 Aug 2006, 172.16.1.117:5060/tcp (417 bytes): sentMESSAGE sip:test001@172.16.1.117 SIP/2.0Via: SIP/2.0/TCP 172.16.1.117:5060;rport;branch=z9hG4bK64585Max-Forwards: 70To: <sip:test001@172.16.1.117>From: "test002@appresearch.wonders" <sip:test002@appresearch.wonders>;tag=z9hG4bK74971811Call-ID: 819141189102@172.16.1.117CSeq: 1 MESSAGEExpires: 3600User-Agent: mjsip stack 1.6Content-Length: 21Content-Type: application/text
sdfsdfsdfaaaaaaaaaaaa-----End-of-message-----
12:43:07.163 Fri 25 Aug 2006, 172.16.1.117:5060/tcp (636 bytes): receivedSIP/2.0 401 UnauthorizedDate: Fri,25 Aug 2006 04:43:07 GMTWWW-Authenticate: NTLM realm="SIP Communications Service", targetname="app-research.appresearch.wonders"WWW-Authenticate: Kerberos realm="SIP Communications Service", targetname="sip/app-research.appresearch.wonders"Via: SIP/2.0/TCP 172.16.1.117:5060;rport;branch=z9hG4bK64585;received=172.16.1.243;received-port=1718;received-cid=100From: "test002@appresearch.wonders" <sip:test002@appresearch.wonders>;tag=z9hG4bK74971811To: <sip:test001@172.16.1.117>;tag=f19a9d98ae5d232961250984a41c4cf9Call-ID: 819141189102@172.16.1.117CSeq: 1 MESSAGEContent-Length: 0
-----End-of-message-----
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
mcpolo(游客)发表评论于2006/8/25 12:56:43 | 用CommandLineMA 发送了一些文本,怎么在接收的时候报401错了?
大家帮我看看是怎么回事
12:43:07.153 Fri 25 Aug 2006, 172.16.1.117:5060/tcp (417 bytes): sentMESSAGE sip:test001@172.16.1.117 SIP/2.0Via: SIP/2.0/TCP 172.16.1.117:5060;rport;branch=z9hG4bK64585Max-Forwards: 70To: <sip:test001@172.16.1.117>From: "test002@appresearch.wonders" <sip:test002@appresearch.wonders>;tag=z9hG4bK74971811Call-ID: 819141189102@172.16.1.117CSeq: 1 MESSAGEExpires: 3600User-Agent: mjsip stack 1.6Content-Length: 21Content-Type: application/text
sdfsdfsdfaaaaaaaaaaaa-----End-of-message-----
12:43:07.163 Fri 25 Aug 2006, 172.16.1.117:5060/tcp (636 bytes): receivedSIP/2.0 401 UnauthorizedDate: Fri,25 Aug 2006 04:43:07 GMTWWW-Authenticate: NTLM realm="SIP Communications Service", targetname="app-research.appresearch.wonders"WWW-Authenticate: Kerberos realm="SIP Communications Service", targetname="sip/app-research.appresearch.wonders"Via: SIP/2.0/TCP 172.16.1.117:5060;rport;branch=z9hG4bK64585;received=172.16.1.243;received-port=1718;received-cid=100From: "test002@appresearch.wonders" <sip:test002@appresearch.wonders>;tag=z9hG4bK74971811To: <sip:test001@172.16.1.117>;tag=f19a9d98ae5d232961250984a41c4cf9Call-ID: 819141189102@172.16.1.117CSeq: 1 MESSAGEContent-Length: 0
-----End-of-message-----
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
naples(游客)发表评论于2006/8/13 5:03:47 |
你好!很感谢搂主搭建了这个Blog.对于学Mjsip真的很有帮助。我有个问题想请教。
我有两台机器,一台UA, 一台在Asterisk上注册了的Windows Messenger.
1) UA call Windows Messenger
2) SIP 握手成功。UA 收到从 Windows Messenger 发过来的 200 OK.
3) Windows Messenger 能听到从UA 传来的声音。
4)问题 : UA 不能听到从 Windows Messenger 传来的声音。
Console 信息:
UA: RINGINGUA: ACCEPTED/CALLSelected format: LINEAR, 8000.0 Hz, 8-bit, MonoList of devices: 1device 0:DirectSoundCaptureMediaLocator: dsound://Processor createdProcessor configuredContentDescriptor=raw.rtpProcessor realizedReceiver URL= rtp://:21000/audioJMFAudioLauncher: launching JMF-Audio...streams is [Lcom.sun.media.multiplexer.RawBufferMux$RawBufferSourceStream;@97a560 : 1sink: setOutputLocator rtp://XXX.XXX.XXX.175:56990/audio/1DataSink createdDest= rtp://XXX.XXX.XXX.175:56990/audio/1 , RTPDataSink openedStart sendingTrying to realize the playerPlayer realized
我已选择了Recording Control里的Mono Mix选项。所以这应该不是问题。我怀疑RTP没有建立起来。我猜这原因来自SDP里的Media Port. 不知对不对。
UA INVITE message 的 SDP
v=0o=sip:user@XXX.XXX.XXX.232 0 0 IN IP4 XXX.XXX.XXX.232s=Session SIP/SDPc=IN IP4 XXX.XXX.XXX.232t=0 0m=audio 21000 RTP/AVP 0a=rtpmap:0 PCMU/8000
Windows Messenger 发回的 200 OK 里的 SDP
v=0o=- 0 0 IN IP4 XXX.XXX.XXX.175s=Session SIP/SDPc=IN IP4 XXX.XXX.XXX.175b=CT:1000t=0 0m=audio 56990 RTP/AVP 0a=rtpmap:0 PCMU/8000
UA call Windows Messenger
UDP Src Port: 31440(31440), Dst Port: 56990(56990) Windows Messenger 听不到声音
Windows Messenger 回答 UA
UDP Src Port: 56990(56990), Dst Port: 21000(21000) Windows Messenger 能听到声音
我怀疑UA call Windows Messenger 时,UDP media port 应该用21000而不是31440。21000 是在configuration file里定义的。31440应该是随机产生的。不知我的怀疑对不对? 怎样去解决? 谢谢!
以下为blog主人的回复:
抱歉,该项目已经暂停小半年了,不能帮你.
做软件的,项目调查要比项目完成多得多.
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
|