Не удается зарегистрировать sipcall на Android 7.0 с динамическим номером порта sip
Я реализовал простой SIP-вызов с помощью Android Api SipManager. Когда я использую SIP-порт по умолчанию 5060 (поскольку мне не нужно упоминать об этом в коде подробности), он хорошо работает как на Android 4.4, так и на Android 7. Но когда я использую другой SIP-порт, такой как (5090), у меня есть Explicity упомянул их в коде. В этом случае я могу создать sip call только для Android 4.4 (API 19), но отказался зарегистрироваться для sip call на Android 7 с (API 24). Любая помощь будет высоко ценится.
/ *: makeSipProfile * Описание: создает экземпляр пользовательского SipProfile и позволяет приложению * принимать вызовы. */
private void makeSipProfile() {
if (manager != null) {
// Creates a SipProfile for the User
try {
SipProfile.Builder builder = new SipProfile.Builder(USERNAME, DOMAIN);
builder.setPassword(PASSWORD);
builder.setProtocol("UDP"); //explicitily mentioning sip port
builder.setPort(5090); // port 5090
profile = builder.build();
Log.e("$$", "SipProfile was built.");
// Creates an intent to receive calls
Intent intent = new Intent();
intent.setAction("android.VOIPDEMO.INCOMING_CALL");
PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, Intent.FILL_IN_DATA);
manager.open(profile, pendingIntent, null);
// Determines if the SipProfile successfully registered
manager.setRegistrationListener(profile.getUriString(),
new SipRegistrationListener() {
/**
* Name: onRegistering
* Description: Logs a status message indicating the
* SipProfile is registering.
*/
public void onRegistering(String localProfileUri) {
Log.e("$$", "Sip Profile <" + localProfileUri + " is registering");
}
/**
* Name: onRegistrationDone
* Description: Logs a status message indicating the
* SipProfile successfully registered.
*/
public void onRegistrationDone(String localProfileUri, long expiryTime) {
Log.e("$$", "Sip Profile <" + localProfileUri + "> successfully registered");
VoipActivity.setText(localProfileUri + " login successful");
}
/**
* Name: onRegistrationFailed
* Description: Logs a status message indicating the
* SipProfile failed to register.
*/
public void onRegistrationFailed(String localProfileUri, int errorCode, String errorMessage) {
Log.e("$$", "Sip Profile failed to register <" + localProfileUri + "> " +
" Error message: " + errorMessage);
VoipActivity.setText(localProfileUri + " login unsuccessful. Error message:" + errorMessage);
}
});
} catch (ParseException e) {
Log.e("$$", "SipProfile was not built.");
e.printStackTrace();
} catch (SipException e) {
e.printStackTrace();
}
}
}