2012-03-13 2 views
2

мы хотим создать приложение SIP на Android 2.3.3 и иметь некоторые проблемы с стеком android.sip (стек sip по умолчанию). Наше мобильное приложение отправляет пакет sip для регистрации, но 1.) по умолчанию ответ OpenIMS core 400. Неверный запрос. Заголовок заголовка P-Посещенные-сети отсутствует. 2.) в том случае, если мы установили номер порта 4060 -PCSCF /builder.setPort (4060)/ядро ​​OpenIMS отправляет этот запрос от 4060 до 4060 (тот же порт, тот же IP, тот же CSCF, тот же пакет), и это cykling, пока ядро ​​OpenIMS не ответит на мобильное приложение - 504 Время ожидания сервера. Мы также попробовали SipDemo, CSipSimple, и у нас были такие же проблемы. Когда мы попробовали Monster Communicator или IMSDroid, тогда он работает!SIP пакет регистрации стека с авторизацией

Существует одна разница между рабочими и проблемными приложениями - рабочие приложения отправляют регистрационный пакет также с полем авторизации.

Часть кода:

public SipManager mSipManager = null; 
public SipProfile mSipProfile = null; 
SipProfile.Builder builder = new SipProfile.Builder(username, domain); 
builder.setPassword(password); 
builder.setDisplayName(username); 
builder.setProfileName(username + "@" + domain); 
port = Integer.parseInt(4060); 
builder.setProtocol(protocol); 
mSipProfile = builder.build(); 
... 
try { mSipManager.open(mSipProfile);} catch (SipException e) { ...} 
try { 
     mSipManager.register(mSipProfile, 30, new SipRegistrationListener(){ 
     public void onRegistering(String localProfileUri) { 
     } 
     public void onRegistrationDone(String localProfileUri, long expiryTime) { 
     } 
     public void onRegistrationFailed(String localProfileUri, int errorCode, String errorMessage) { 
     } 
     }); 
    } catch (SipException e) { 

.... }

Как дать поле авторизации для регистрации пакета в классическом стеке SIP?

Мы также попытались J-SIP, но отображать сообщение об ошибке: Преобразование в формат Dalvik завершилась с ошибкой 1.

Каждый ответ будет очень ценится.

ответ

0

Ваша проблема не связана с отсутствием заголовка авторизации.

Регистрация осуществляется в следующем вопросе:

  1. клиент посылает запрос Регистр без заголовка «авторизации».

  2. ответ сервера с кодом ответа 401, который включает заголовок с именем «WWW-Authnticate», который содержит параметры удержания заголовка как тип области, непрозрачности, qop и типа хеширования.

  3. Используя эти параметры с именем пользователя и паролем, заголовок автомата генерируется автоматически с помощью стеков SIP. и отправляется второй запрос Регистрации, который включает заголовок «Authorication».

  4. Если запрос отправлен правильно, сервер возвращает код ответа 200 OK, что означает, что вы сейчас зарегистрированы.

Ваша проблема что-то еще, вы не получите даже к шагу 3 (шаг авторизации), вы не в шаге 1, для первоначального REGISTER REQUEST Вы получаете 400 Bad Request код ответа - который почти всегда означает что у вас есть синтаксическая ошибка в вашем запросе.

Смежные вопросы