0
こんにちは私は、以下のコードで、 "SipManagerが閉じています"とトーストが "登録されていません"という回答を得て、コールを呼び出して電話に出ます。SIP登録 - Androidスタジオ
私は例外がなく、 "setRegistrationListener"のToastは起動されませんでした。
どうしたのですか?何が問題ですか?
private void inicializarPerfilLocal(){
if(mSipManager == null){
Toast.makeText(getApplicationContext(), "Error al iniciar administrador SIP", Toast.LENGTH_LONG);
return;
}
String username = COUNTRYCODE+PHONE_NUMBER;
String domain = "xx.yy.zz";
String password = "ABCABCABC";
try{
SipProfile.Builder builder = new SipProfile.Builder(username, domain);
builder.setPassword(password);
builder.setAuthUserName(username+"@"+domain);
builder.setOutboundProxy("255.255.255.0");
builder.setProfileName(username + "@" + domain);
builder.setDisplayName("Test");
builder.setProtocol("TCP");
builder.setAutoRegistration(true);
mSipProfile = builder.build();
Intent i = new Intent();
i.setAction("android.SipDemo.INCOMING_CALL");
PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, Intent.FILL_IN_DATA);
mSipManager.open(mSipProfile, pi, null);
if (mSipManager.isOpened(mSipProfile.getUriString())){
Toast.makeText(getApplicationContext(), "Administrador abierto", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "Administrador cerrado", Toast.LENGTH_LONG).show();
}
mSipManager.setRegistrationListener(mSipProfile.getUriString(), new SipRegistrationListener() {
public void onRegistering(String localProfileUri) {
Toast.makeText(getApplicationContext(), "Registrando...",
Toast.LENGTH_LONG).show();
}
public void onRegistrationDone(String localProfileUri, long expiryTime) {
Toast.makeText(getApplicationContext(), "Registrado",
Toast.LENGTH_LONG).show();
}
public void onRegistrationFailed(String localProfileUri, int errorCode,
String errorMessage) {
Toast.makeText(getApplicationContext(), "Error en registro errorCode :: "+errorMessage,
Toast.LENGTH_LONG).show();
}
});
if (mSipManager.isRegistered(mSipProfile.getUriString())){
Toast.makeText(getApplicationContext(), "Registrado", Toast.LENGTH_LONG).show();
}else{
Toast.makeText(getApplicationContext(), "No registrado", Toast.LENGTH_LONG).show();
}
}catch(ParseException pe){
Toast.makeText(getApplicationContext(), "Excepcion de parseo", Toast.LENGTH_LONG).show();
}catch(SipException se){
Toast.makeText(getApplicationContext(), "Excepcion SIP", Toast.LENGTH_LONG);
}
}
こんにちは!あなたの勧告については、CSIPSimpleでサービスを設定しているので、IPとポートが開かれています。 2番目の勧告について、私は "UDP"に変更しましたが、今は "SipManagerが開いています"が登録されていません。ログに「-9」(RegistrationFailed -9 :: 0)と「-4」(RegistrationFailed -4 ::登録が実行されていません)エラーが表示されます。 –
tcpdumpでログをチェックし、tcpdumpでどのようなエラーが表示されているかを確認してください。うまくいけば、CSIPSimpleはすべての種類のヘッダを受け入れなければならないが、あなたのアプリケーションはそうではない – Ravi