Package javax.microedition.sip

  • Creatore Discussione Creatore Discussione poker
  • Data di inizio Data di inizio

poker

Nuovo Utente
10 Gen 2008
2
0
0
Sto cercando di sviluppare un client SIP utilizzando J2ME con il package javax.microedition.sip. Questo client deve comunicare con una macchina virtuale Trixbox (un centralino Asterisk). Sto usando NetBeans 5.5.1 con il Mobility Pack e l’emulatore di cellulare. Ho anche provato con NetBeans 6.
Qualcuno ha mai usato il pacchetto microedition.sip per comunicare con un server Asterisk PBX?
Non riesco ad ottenere risposta alle mie richieste sip, tranne quando tento di inviare una richiesta con un ID utente inesistente. Infatti in questo caso ottengo un codice d’errore 404 (non trovato). Ecco una parte della mia midlet java:

scn = (SipConnectionNotifier) Connector.open("sip:5060");

// build the contact URI
String realm;
String contact =
new String("sip:101@"+scn.getLocalAddress()+":"+scn.getLocalPort());

// open client connection to the SIP registrar in this case "host.com"
sc = (SipClientConnection) Connector.open("sip:172.17.25.110");
// initialize REGISTER with appropriate headers
sc.initRequest("REGISTER", scn);
sc.setHeader("From", "sip:[email protected]");
sc.setHeader("To", "sip:[email protected]");
sc.setHeader("Contact", contact);
sc.send();
boolean handled = false;
int scode = 0;

while(!handled) {
SipHeader sh;
// wait max 30 secs for response
sc.receive(30000);
scode = sc.getStatusCode();
switch(scode)
{
case 401:
sh = new SipHeader("WWW-Authenticate",
sc.getHeader("WWW-Authenticate"));
realm = sh.getParameter("realm");
// here for example, prompt user for password for this realm
// set credentials to initiate re-REGISTER
sc.setCredentials("101", "101", realm);
break;

case 407:
sh = new SipHeader("Proxy-Authenticate",
sc.getHeader("Proxy-Authenticate"));
realm = sh.getParameter("realm");
// here for example, prompt user for password for this realm
// set credentials to initiate re-REGISTER
sc.setCredentials("101", "101", realm);
break;

case 200:
// handle OK response
handled = true;
break;
default:
// handle other responses
handled = true;
}
}
sc.close();

Qualcuno potrebbe aiutarmi?