统计 |
blog名称:人在旅途 日志总数:175 评论数量:505 留言数量:13 访问次数:1661510 建立时间: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技术]<<A JAIN-SIP Applet Phone>>学习笔记 |
人在旅途 发表于 2006/3/2 10:10:53 | 这个程序和InstantMessaging不同,它可以用来观察IP电话从拨打(invite)到挂机(bye)的一系列SIP消息.
1.安装
从http://snad.ncsl.nist.gov/proj/iptel/下载该软件(含原程序)和JAIN-SIP库.
从SUN网站下载并安装JMF,JavaMail,JAF.
2.用NetBeans5.0编译和运行(Windows环境)
编辑build.windows.properties,设置其中java.home,jmf.home,tomcat.home,mail.home,jaf.home到合适值.
编辑build.xml,设置第二行为<property file="build.windows.properties"/>.
启动NetBeans5.0,使用AntScript形式打开本项目,运行build中的all项目,再运行build中的messenger项目,可看见<NIST Message>画面出现.
3.和NIST-SIP Proxy连接
启动<NIST-SIP Proxy>.
打开<NIST Message>的Configuration画面,在URI中输入<NIST-SIP Proxy>中存在的用户ID(格式:XXX@XXX2.XXX3).在ProxyAddress和ProxyPort中输入<NIST-SIP Proxy>的地址信息.执行Register菜单命令.执行AddContact按钮命令,输入<NIST-SIP Proxy>中存在的另一用户ID(格式:XXX@XXX2.XXX3).
4.实时音频呼叫时的SIP消息分析
准备:
启动一个<NIST-SIP Proxy>,地址192.168.1.2:4000;
启动两个<NIST Message>,dog@192.168.1.2:3250和cat@192.168.1.3:9385;在configuration中设为Realtime选项并设置PROXY参数为192.168.1.2:4000.
在dog的通讯录中双击cat打开对话框,单击Audio按钮,cat会弹出确认框,单打ACCEPT按钮接受邀请.
一段时间后在henrik处的对话框中单击STOP按钮关闭这次通话.
以下分析<NIST-SIP Proxy>的LOG和两个<NIST Message>的LOG,<NIST Message>的LOG可从NetBeans的TraceWindowCOPY来.
From
To
Command
Message
说明
dog
Proxy
INVITE
INVITE sip:cat@nist.gov;transport=udp SIP/2.0Call-ID: 3a82d615f5028ce47d53e40c363e48c9@192.168.1.2CSeq: 1 INVITEFrom: <sip:dog@nist.gov>;tag=9242To: <sip:cat@nist.gov>Via: SIP/2.0/UDP 192.168.1.2:3250;branch=z9hG4bKe40eac54e444c4faec30b0df09ddd55cMax-Forwards: 2Contact: <sip:dog@192.168.1.2:3250;transport=udp>Content-Type: application/sdpContent-Length: 109
v=0o=dog 878212 879581 IN IP4 192.168.1.2s=-c=IN IP4 192.168.1.2t=0 0m=audio 8376 RTP/AVP 5 4 3 0
Content中给出了dog的音频通道信息
Proxy
dog
Trying
SIP/2.0 100 TryingCall-ID: 3a82d615f5028ce47d53e40c363e48c9@192.168.1.2CSeq: 1 INVITEFrom: <sip:dog@nist.gov>;tag=9242To: <sip:cat@nist.gov>Via: SIP/2.0/UDP 192.168.1.2:3250;branch=z9hG4bKe40eac54e444c4faec30b0df09ddd55cMax-Forwards: 2Content-Length: 0
Proxy
cat
INVITE sip:cat@192.168.1.3:9385 SIP/2.0Call-ID: 3a82d615f5028ce47d53e40c363e48c9@192.168.1.2CSeq: 1 INVITEFrom: <sip:dog@nist.gov>;tag=9242To: <sip:cat@nist.gov>Via: SIP/2.0/UDP 192.168.1.2:4000;branch=z9hG4bK83376d784f617e7d1326103a2cf0a9b4,SIP/2.0/UDP 192.168.1.2:3250;branch=z9hG4bKe40eac54e444c4faec30b0df09ddd55cMax-Forwards: 1Contact: <sip:dog@192.168.1.2:3250;transport=udp>Content-Type: application/sdpRecord-Route: <sip:192.168.1.2:4000>Content-Length: 109
Proxy向cat转送上一消息
cat
Proxy
Ringing
Response 180 Ringing received:SIP/2.0 180 RingingCall-ID: 3a82d615f5028ce47d53e40c363e48c9@192.168.1.2CSeq: 1 INVITEFrom: <sip:dog@nist.gov>;tag=9242To: <sip:cat@nist.gov>Via: SIP/2.0/UDP 192.168.1.2:4000;branch=z9hG4bKc202584ca6e6447cf37713092e2d109b,SIP/2.0/UDP 192.168.1.2:3250;branch=z9hG4bKe40eac54e444c4faec30b0df09ddd55cMax-Forwards: 1Record-Route: <sip:192.168.1.2:4000>Content-Length: 0
此时cat处弹出接受确认框.
Proxy
dog
SIP/2.0 180 RingingCall-ID: 3a82d615f5028ce47d53e40c363e48c9@192.168.1.2CSeq: 1 INVITEFrom: <sip:dog@nist.gov>;tag=9242To: <sip:cat@nist.gov>Via: SIP/2.0/UDP 192.168.1.2:3250;branch=z9hG4bKe40eac54e444c4faec30b0df09ddd55cMax-Forwards: 1Record-Route: <sip:192.168.1.2:4000>Content-Length: 0
Proxy向dog转送上一消息
cat
Proxy
OK
SIP/2.0 200 OKCall-ID: 3a82d615f5028ce47d53e40c363e48c9@192.168.1.2CSeq: 1 INVITEFrom: <sip:dog@nist.gov>;tag=9242To: <sip:cat@nist.gov>;tag=2312Via: SIP/2.0/UDP 192.168.1.2:4000;branch=z9hG4bKc202584ca6e6447cf37713092e2d109b,SIP/2.0/UDP 192.168.1.2:3250;branch=z9hG4bKe40eac54e444c4faec30b0df09ddd55cMax-Forwards: 1Record-Route: <sip:192.168.1.2:4000>Contact: <sip:cat@192.168.1.3:9385;transport=udp>Content-Type: application/sdpContent-Length: 99
v=0o=cat 7787 9156 IN IP4 192.168.1.3s=-c=IN IP4 192.168.1.3t=0 0m=audio 2262 RTP/AVP 5
cat的接受确认框被确认(按OK按钮).
注意Content的内容和dog的Invite消息已经不同,已经是cat的音频通道信息了.
Proxy向dog转送上一消息
dog
Proxy
ACK
ACK sip:192.168.1.2:4000;transport=udp SIP/2.0Call-ID: 3a82d615f5028ce47d53e40c363e48c9@192.168.1.2CSeq: 1 ACKFrom: <sip:dog@nist.gov>;tag=9242To: <sip:cat@nist.gov>;tag=2312Via: SIP/2.0/UDP 192.168.1.2:3250;branch=-2015693566Max-Forwards: 2Route: <sip:cat@192.168.1.3:9385;transport=udp>Content-Length: 0
Proxy向cat转送上一消息
dog侧
Get chat session: cat@nist.govcallee cat@nist.gov:chatFrame gov.nist.applet.phone.ua.gui.ChatFrame[frame0,229,163,750x430,invalid,layout=java.awt.BorderLayout,title=In conversation with cat@nist.gov,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,4,30,742x396,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]:status Ringing...Local listening audio port : 8376Remote listening audio port : 2262Init UDP TransmitterThreshold enabled : truebuf length : 0minimum Threshold : 2147483647 - Waiting for RTP data to arrive... - Open RTP session for: Address: 192.168.1.3 localPort: 8376 destPort : 2262 Time To Live: 1- number of capture devices: 2Track 0 is set to transmit as: dvi/rtp, 22050.0 Hz, 4-bit, MonoCreated RTP session: 192.168.1.3 dest 2262Media Transmission started!!!Get chat session: cat@nist.govcallee cat@nist.gov:chatFrame gov.nist.applet.phone.ua.gui.ChatFrame[frame0,229,163,750x430,invalid,layout=java.awt.BorderLayout,title=In conversation with cat@nist.gov,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,4,30,742x396,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]:status In a call - Received new RTP stream: dvi/rtp, 22050.0 Hz, 4-bit, Mono The sender of this stream had yet to be identified.1format list : 1mpegControl::::null - A new participant had just joined: zhou@hp9010mpegControl::::nullmpegControl::::nullmpegControl::::nullmpegControl::::nullClass for gain contolcom.sun.media.renderer.audio.DirectAudioRenderer$MCA@6db33cClass for componentnull - A new participant had just joined: zhou@hp9010 - The previously unidentified stream dvi/rtp, 22050.0 Hz, 4-bit, Mono had now been identified as sent by: zhou@hp9010
dog和cat进行直接RTP通信,不经过Proxy
cat侧
- Waiting for RTP data to arrive...from="192.168.1.2:4000" to="192.168.1.3:9385" time="1141344698968" isSender="false" transactionId="z9hg4bk97119ae84b4364caad83f7759147d4a5" callId="3a82d615f5028ce47d53e40c363e48c9@192.168.1.2" firstLine="ACK sip:cat@192.168.1.3:9385 SIP/2.0" - Received new RTP stream: dvi/rtp, 22050.0 Hz, 4-bit, Mono The sender of this stream had yet to be identified.debugLine="0" ><![CDATA[ACK sip:cat@192.168.1.3:9385 SIP/2.0Call-ID: 3a82d615f5028ce47d53e40c363e48c9@192.168.1.2CSeq: 1 ACKFrom: <sip:dog@nist.gov>;tag=9242To: <sip:cat@nist.gov>;tag=2312Via: SIP/2.0/UDP 192.168.1.2:4000;branch=z9hG4bK97119ae84b4364caad83f7759147d4a5,SIP/2.0/UDP 192.168.1.2:3250;branch=-2015693566Max-Forwards: 1Record-Route: <sip:192.168.1.2:4000>Content-Length: 0
]]></message>
Init UDP TransmitterThreshold enabled : truebuf length : 0minimum Threshold : 2147483647 - Open RTP session for: Address: 192.168.1.2 localPort: 2262 destPort : 8376 Time To Live: 1- number of capture devices: 21format list : 1mpegControl::::nullTrack 0 is set to transmit as: dvi/rtp, 22050.0 Hz, 4-bit, MonoCreated RTP session: 192.168.1.2 dest 8376mpegControl::::nullmpegControl::::nullmpegControl::::nullmpegControl::::nullClass for gain contolcom.sun.media.renderer.audio.DirectAudioRenderer$MCA@22ab57Class for componentnullMedia Transmission started!!!Get chat session: dog@nist.govcallee dog@nist.gov:chatFrame gov.nist.applet.phone.ua.gui.ChatFrame[frame0,0,0,750x430,invalid,layout=java.awt.BorderLayout,title=In conversation with dog@nist.gov,resizable,normal,defaultCloseOperation=DISPOSE_ON_CLOSE,rootPane=javax.swing.JRootPane[,4,30,742x396,invalid,layout=javax.swing.JRootPane$RootLayout,alignmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,preferredSize=],rootPaneCheckingEnabled=true]:status In a call - A new participant had just joined: zhou@desktop - A new participant had just joined: zhou@desktop - The previously unidentified stream dvi/rtp, 22050.0 Hz, 4-bit, Mono had now been identified as sent by: zhou@desktop
dog和cat进行直接RTP通信,不经过Proxy.
dog
Proxy
BYE
BYE sip:192.168.1.2:4000;transport=udp SIP/2.0Call-ID: 3a82d615f5028ce47d53e40c363e48c9@192.168.1.2CSeq: 2 BYEFrom: <sip:dog@nist.gov>;tag=9242To: <sip:cat@nist.gov>;tag=2312Via: SIP/2.0/UDP 192.168.1.2:3250;branch=z9hG4bKe553a3a2689bc91df1ec554e21f51309Max-Forwards: 2Route: <sip:cat@192.168.1.3:9385;transport=udp>Content-Length: 0
dog册按下STOP按钮.消息发出后RTP读写终止.
Proxy向cat转送上一消息
cat
Proxy
OK
SIP/2.0 200 OKCall-ID: 3a82d615f5028ce47d53e40c363e48c9@192.168.1.2CSeq: 2 BYEFrom: <sip:dog@nist.gov>;tag=9242To: <sip:cat@nist.gov>;tag=2312Via: SIP/2.0/UDP 192.168.1.2:4000;branch=z9hG4bK26c72e5e7e444f3482fcce6ae0cc9451,SIP/2.0/UDP 192.168.1.2:3250;branch=z9hG4bKe553a3a2689bc91df1ec554e21f51309Max-Forwards: 2Content-Length: 0
消息发出后RTP读写终止.
Proxy向dog转送上一消息
如果两边的<NIST Message>的Configuration设置中都使用了MessageAudio(非RealtimeAudio),那么上面表格中的RTP通信部分要给下面样子的带有音频数据的SIP消息替,这种SIP消息还是要走SIPProxy的(因为是用SIP消息来传送音频数据,所以即使在同一台机器上开两个<NIST Message>互相通信,仍然没有问题.).
************************************************************************************************
Request MESSAGE received:MESSAGE sip:192.168.1.2:4000;transport=udp SIP/2.0Call-ID: 34fd5cabb7b241ab16a8dfd3ea72bd30@192.168.1.26CSeq: 4 MESSAGEFrom: <sip:dog@nist.gov>;tag=832To: <sip:cat@nist.gov>;tag=8664Via: SIP/2.0/UDP 192.168.1.2:3250;branch=z9hG4bKc5f13997a614055784d833a491b18038Max-Forwards: 2Route: <sip:cat@192.168.1.3:9385;transport=udp>Content-Type: audio/x-gsmContact: <sip:dog@192.168.1.2:3250;transport=udp>Content-Length: 6435
?jT?P ??m??@6?m???@6?m??? 6?m??И?%??@6?m?? 6?m??d 6?m??? 6?m?????Y?@6?m?? 6?m??@6?m??? 6?m???raZ?`6?m??@6?m??? 6?m??@6?m???Wr]?r 6?m???@6?m??@6?m?? 6?m???z?Z?`6?m?? 6?m??|`6?m??? 6?m???r\?@6?m......................................
************************************************************************************************
如果cat拒绝了dog的邀请,则如下:
From
To
Command
Message
说明
dog
Proxy
INVITE
INVITE sip:cat@nist.gov;transport=udp SIP/2.0Call-ID: 1cf141e7e76a90905602764164de10da@192.168.1.2CSeq: 1 INVITEFrom: <sip:dog@nist.gov>;tag=8040To: <sip:cat@nist.gov>Via: SIP/2.0/UDP 192.168.1.2:9266;branch=z9hG4bK47cce90fb03443d2767efcf77d4e2b80Max-Forwards: 2Contact: <sip:dog@192.168.1.2:9266;transport=udp>Content-Type: application/sdpContent-Length: 109
v=0o=dog 940810 942179 IN IP4 192.168.1.2s=-c=IN IP4 192.168.1.2t=0 0m=audio 6836 RTP/AVP 5 4 3 0
Content中给出了dog的音频通道信息
Proxy
dog
Trying
SIP/2.0 100 TryingCall-ID: 1cf141e7e76a90905602764164de10da@192.168.1.2CSeq: 1 INVITEFrom: <sip:dog@nist.gov>;tag=8040To: <sip:cat@nist.gov>Via: SIP/2.0/UDP 192.168.1.2:9266;branch=z9hG4bK47cce90fb03443d2767efcf77d4e2b80Max-Forwards: 2Content-Length: 0
Proxy
cat
Proxy向cat转送上一消息
cat
Proxy
Ringing
SIP/2.0 180 RingingCall-ID: 1cf141e7e76a90905602764164de10da@192.168.1.2CSeq: 1 INVITEFrom: <sip:dog@nist.gov>;tag=8040To: <sip:cat@nist.gov>Via: SIP/2.0/UDP 192.168.1.2:4000;branch=z9hG4bK0437f73dd530f56022856f57cc55c49e,SIP/2.0/UDP 192.168.1.2:9266;branch=z9hG4bK47cce90fb03443d2767efcf77d4e2b80Max-Forwards: 1Record-Route: <sip:192.168.1.2:4000>Content-Length: 0
此时cat处弹出接受确认框.
Proxy
dog
Proxy向dog转送上一消息
cat
Proxy
Busy
SIP/2.0 486 Busy hereCall-ID: 1cf141e7e76a90905602764164de10da@192.168.1.2CSeq: 1 INVITEFrom: <sip:dog@nist.gov>;tag=8040To: <sip:cat@nist.gov>Via: SIP/2.0/UDP 192.168.1.2:4000;branch=z9hG4bK0437f73dd530f56022856f57cc55c49e,SIP/2.0/UDP 192.168.1.2:9266;branch=z9hG4bK47cce90fb03443d2767efcf77d4e2b80Max-Forwards: 1Record-Route: <sip:192.168.1.2:4000>Call-Info: <http://www.google.com>Content-Length: 0
cat的确认框被拒绝(按Cancel按钮).
Proxy向dog转送上一消息
|
阅读全文(34680) | 回复(16) | 编辑 | 精华 |
回复:<<A JAIN-SIP Applet Phone>>学习笔记 |
huashan1122@163.com(游客)发表评论于2008/12/17 2:09:31 | 请教您个问题,我再重新解压jain-sip-1.2以后,例子程序都运行不了了,说是
Target 'Shootme' does not exist in the project "null"
以前没出现过这个问题,不知道怎么解决
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
问题 |
飞翔的云(游客)发表评论于2008/10/10 11:38:44 | 为什么当sip采用udp传输时,其不会记udp包的长度,当时如何采用tcp传输时,会记住tcp包的长度
谢谢
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:<<A JAIN-SIP Applet Phone>>学习笔记 |
yxskkk(游客)发表评论于2008/8/5 12:13:26 | 以下引用不留名(游客)在2007-8-1 14:08:12的评论:javax.sip.SipException: Connection refused: connect at gov.nist.javax.sip.stack.SIPClientTransaction.sendRequest(SIPClientTransaction.java:866) at gov.nist.applet.phone.ua.MessengerManager.deRegister(MessengerManager.java:565) at gov.nist.applet.phone.ua.MessengerManager.unRegisterAndReRegister(MessengerManager.java:523) at gov.nist.applet.phone.ua.gui.NISTMessengerApplet.start(NISTMessengerApplet.java:241) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)我出的就是这个错误,不知道怎么解决了..
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:<<A JAIN-SIP Applet Phone>>学习笔记 |
yxskkk(游客)发表评论于2008/8/5 8:42:40 | 楼主好,我的applet中,在ClientTransaction.sendRequest()的时候一直在报SipException,Connection refused: connect因为没有相关的API,实在是找不出来了,但如果以application运行的话拨号都很正常...
以下为blog主人的回复:
APPLET好象是有安全限制的,即APPLET只能和下载该APPLET的主机通讯(SOCEKT).
时间过得真快,一晃都两年半了(该贴的发布日开始).
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:<<A JAIN-SIP Applet Phone>>学习笔记 |
不留名(游客)发表评论于2007/8/1 14:08:12 | javax.sip.SipException: Connection refused: connect at gov.nist.javax.sip.stack.SIPClientTransaction.sendRequest(SIPClientTransaction.java:866) at gov.nist.applet.phone.ua.MessengerManager.deRegister(MessengerManager.java:565) at gov.nist.applet.phone.ua.MessengerManager.unRegisterAndReRegister(MessengerManager.java:523) at gov.nist.applet.phone.ua.gui.NISTMessengerApplet.start(NISTMessengerApplet.java:241) at sun.applet.AppletPanel.run(Unknown Source) at java.lang.Thread.run(Unknown Source)
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:<<A JAIN-SIP Applet Phone>>学习笔记 |
不留名(游客)发表评论于2007/8/1 14:07:22 | 具体的是:
REGISTER sip:172.20.23.100:4000 SIP/2.0Call-ID: f92f36d57b99947401cb9fdf88b8cae1@172.20.22.29CSeq: 1 REGISTERFrom: <sip:mranga@nist.gov>;tag=8544To: <sip:mranga@nist.gov>Via: SIP/2.0/TCP 172.20.22.29:3590;branch=z9hG4bKd5ddcafab069ece0474400299d1e00e3Max-Forwards: 2Expires: 0Contact: *Content-Length: 0
Could not send out the un-register request! javax.sip.SipException: Connection refused: connect
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:<<A JAIN-SIP Applet Phone>>学习笔记 |
不留名(游客)发表评论于2007/8/1 14:06:08 | 刚看了你的blog ,我也下载了试试,,结果消息都不能发送,如果发一个 a 字符,窗口返回消息如下:
mranga@nist.gov> aYour buddy is currently unavailable
同时,我在另一台机器上访问applet页面的时候,Applet控制台报错
Could not send out the un-register request! javax.sip.SipException: Connection refused: connect
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:<<A JAIN-SIP Applet Phone>>学习笔记 |
xiaoyu(游客)发表评论于2007/3/28 20:32:42 | 我现在也在学习JAIN-SIP Applet Phone。请问楼主,你使用时效果怎么样?例如real time的通话质量。当我使用jain-sip-presence-proxy作为server时,我的messenger只能register,其它事的都不能做。我把proxy换成Brekeke sip server之后, 我能使用voice messaging的功能,但是还是不能使用real time和发送文本消息。不知道时怎么了?
当我用applet时,连register都不能了。不知道楼主有没有碰到这种情况?
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:<<A JAIN-SIP Applet Phone>>学习笔记 |
xiaoyu(游客)发表评论于2007/3/28 20:31:28 | 我现在也在学习JAIN-SIP Applet Phone。请问楼主,你使用时效果怎么样?例如real time的通话质量。当我使用jain-sip-presence-proxy作为server时,我的messenger只能register,其它事的都不能做。我把proxy换成Brekeke sip server之后, 我能使用voice messaging的功能,但是还是不能使用real time和发送文本消息。不知道时怎么了?
当我用applet时,连register都不能了。不知道楼主有没有碰到这种情况?
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
回复:<<A JAIN-SIP Applet Phone>>学习笔记 |
小雨(游客)发表评论于2007/3/28 19:52:28 | 请问楼主,当你运行messenger时,如果选择real time能不能通话。我只有在选择voice messaging才能听到声音。而起不管选择哪个选项都不能发送短消息
|
个人主页 | 引用回复 | 主人回复 | 返回 | 编辑 | 删除 |
|