Я создаю потоковый аудиоплеер J2ME в реальном времени с RTP и через SIP соединение. Также я новичок в этих вещах. Я хочу глубоко взглянуть на эти вещи. Если кто-то знает хороший рабочий пример кода, демонстрирующий потоковый аудиоплеер с RTP (это означает, как отправить сообщение REGISTER
на сервер через SIP, чтобы зарегистрироваться, отправить сообщение INVITE
и получить ответ и игра). Пожалуйста, дайте мне знать, высоко ценится.
Также я посмотрел здесь
если
Мой порт сервера 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);