【发布时间】:2012-01-27 05:25:42
【问题描述】:
我正在创建一个带有 RTP 并通过 SIP 连接的 J2ME 实时流音频播放器。我对这些东西也很陌生。我想深入看看那些东西。如果有人知道一个很好的工作示例代码来演示 使用 RTP 进行音频播放器流式传输(这意味着如何通过 SIP 向服务器发送 REGISTER 消息以进行注册并发送 INVITE 消息和得到响应并播放)。请告诉我,非常感谢。
我也看了here
如果
我的服务器端口是 6060
ip 111.111.111.1
id是myid密码123
我是否正确使用了代码?如果我错了,请纠正我。
public void doRegister(String username, String password, String realm) {
SipClientConnection scc = null;
SipConnectionNotifier scn = null;
String contact = null;
try {
scn = (SipConnectionNotifier) Connector.open("sip:5080");
contact = new String("sip:myid:123@"+scn.getLocalAddress()+":"+scn.getLocalPort());
scc = (SipClientConnection) Connector.open("sip:111.111.111.1+"transport=tcp") ;
scc.initRequest("REGISTER", scn);
scc.setHeader("From", "sip:myid:123@"+scn.getLocalAddress()+":5080");
scc.setHeader("To", "sip:myid:123@111.111.111.1");
scc.setHeader("Contact", contact);
scc.send();
boolean handled = false;
int scode = 0;
while(!handled) {
SipHeader sh;
scc.receive(30000);
scode = scc.getStatusCode();
switch(scode){
case 401:
sh = new SipHeader("WWW-Authenticate",
scc.getHeader("WWW-Authenticate"));
realm = sh.getParameter("realm");
scc.setCredentials(username, password, realm);
break;
case 407:
sh = new SipHeader("Proxy-Authenticate",
scc.getHeader("Proxy-Authenticate"));
realm = sh.getParameter("realm");
scc.setCredentials(username, password, realm);
break;
case 200:
handled = true;
break;
default:
handled = true;
}
}
scc.close();
} catch(Exception ex) {
// handle Exceptions
}
}
我收到了180 Rigging 消息的回复。也让我知道这里的 realm 是什么。 scc.setCredentials(username, password, realm);
【问题讨论】:
-
仅供参考:SIP 和 RTSP 是两种不同的会话信令协议。 SDP 与发送请求无关:它以基于文本的格式描述媒体会话。 RTSP 和 SIP 可以使用 SDP 来建立会话。我建议阅读 IETF RFC 以更好地理解协议。 (RTP:RFC3550,SDP:RFC4566,RTSP:RFC2326,SIP:RFC3261)
-
谢谢拉尔夫。我对这些东西还是陌生的。我会看看你的建议。您能否让我知道一台服务器是否可以同时处理 SIP 和 RTSP,并发送响应。(这意味着如果服务器有音频文件,服务器可以根据请求发送 RTSP 或 SIP 中的音频文件吗?)。另一件事是,SDP 是否总是与 SIP 和 RTSP 一起描述会话/请求或响应内容?
-
SIP 和 RTSP 在不同的端口上运行并且是完全不同的协议,我会说服务器不太可能同时支持两者,RTSP 通常用于基于文件的 VOD 媒体以及实时流媒体(它被描述为具有播放、停止、暂停功能的虚拟 VCR 遥控器),而 SIP 通常用于电话会议、会话场景。尽管存在其他标准化工作,但通常 SDP 是描述媒体会话的广泛使用的协议。 SDP 通常是 RTSP DESCRIBE 的答案,是 SIP 提议/答案交换中的特征。
-
非常感谢拉尔夫。我有个主意。如果我不妨碍你的话,你能否让我了解更多关于 SDP 和 RTSP 如何与示例函数一起工作的信息。(我有一个清晰的图片从您的解释中了解 SIP 和 RTSP,并再次感谢)
标签: java-me audio-streaming sip rtp sdp