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

« | August 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的情况,正常.
|
阅读全文(69920) | 回复(52) | 编辑 | 精华 |
回复:mjSip学习笔记 |
liyong1024(游客)发表评论于2006/4/19 10:07:04 |
有人遇到过没有没有声音的情况吗?显示一切正常就是听不到声音。
以下为blog主人的回复:
经常碰到啊,打第一次好的,第二次就没声音了.你有什么招吗?
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
fchenscut(游客)发表评论于2006/4/5 15:59:27 |
"它的SERVER缺省运行在STATELESS中,当然也可是STATEFUL的".
楼主可以解释一下STATELESS和STATEFUL是什么意思吗?
以下为blog主人的回复:
在RFC3261对SERVER的STATELESS和STATEFUL有解释,STATELESS时SERVER只是简单转送SIP消息;STATEFUL时,SERVER可对SIP的传输过程进行控制,比如呼叫转移.如同网络中的HUB和ROUTER的区别.
凭记忆写的,可能不够精确.
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
feige(游客)发表评论于2006/3/31 15:01:44 | 楼主,你好
你有遇到过这种情况吗,用UA打到一个IPPhone(hard)电话机上,在UA这边可以听到IPPhone那边传过来的声音,但在IPPhone上却无法听到UA这边的声音
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
fchenscut(游客)发表评论于2006/3/30 11:32:13 |
在CommandLineMA的模式下,请问是怎样进行文本消息的传输的?我遇到的每次都是这样的:
UA: UAC: CALLING dog@127.0.0.2:5070UA: ONLY SIGNALING, NO MEDIAUA: RINGINGpress 'enter' to hangupUA: ACCEPTED/CALLhiUA: CLOSE/OK
没有传输文本消息的提示,而源代码里面是有这样的提示的.
以下为blog主人的回复:
哈哈,还真没用过DOS模式的,没法回答你.
xain
现在国内SIP用得多吗?日本很热,正在淘汰传统电话.
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
fchenscut(游客)发表评论于2006/3/30 10:29:19 | blog主人不是已经写了一个MjSip_refer供下载了吗?
你参考了吗?
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
fchenscut(游客)发表评论于2006/3/30 10:25:00 | 就是问您的.
以下引用feige(游客)在2006-3-30 10:20:33的评论:
对不起,看错啦,那帖子不是问我的,Sorry!
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
feige(游客)发表评论于2006/3/30 10:24:56 | 其实我觉得,只要Server提供了Allow REFER 用哪个服务器应该不是主要问题,因为,我不可能要求公司去用MJServer,你知道这很难。
以下引用fchenscut(游客)在2006-3-30 10:15:35的评论:
你看过了MjSip里面的server那部分代码了吗?要实现转接,用这个mjSever应该可以。
你会不会大胆尝试一下将那个Server(SoftPBX Asterisk)换成mjSever呢?
以下引用feige(游客)在2006-3-30 10:08:02的评论:
但我看了MJSIP是基于SIP开发的,Jain-Sip也是基于SIP的,我想Jain-Sip能做的事MJSIP应该没有问题。
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
feige(游客)发表评论于2006/3/30 10:20:33 | 对不起,看错啦,那帖子不是问我的,Sorry!
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
feige(游客)发表评论于2006/3/30 10:19:21 | 谢谢,我不是研究生
我只是一般的大学生,现在从事软件开发
以下引用fchenscut(游客)在2006-3-30 10:17:22的评论:
你是不是一个研究生,而正在实验室里面做毕业设计和论文呢?呵呵!!!
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:mjSip学习笔记 |
fchenscut(游客)发表评论于2006/3/30 10:17:22 | 你是不是一个研究生,而正在实验室里面做毕业设计和论文呢?呵呵!!!
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
|