*/
public void registrationState(LinphoneCore lc, LinphoneProxyConfig cfg,RegistrationState cstate, String smessage) {
write(cfg.getIdentity() + " : "+smessage+"\n");
-
- if (RegistrationState.RegistrationOk.equals(cstate))
- running = false;
}
public void show(LinphoneCore lc) {}
// create proxy config
LinphoneProxyConfig proxyCfg = lcFactory.createProxyConfig(sipAddress, domain, null, true);
+ proxyCfg.setExpires(2000);
lc.addProxyConfig(proxyCfg); // add it to linphone
lc.setDefaultProxyConfig(proxyCfg);
-
-
+
// main loop for receiving notifications and doing background linphonecore work
running = true;
while (running) {
lc.iterate(); // first iterate initiates registration
- try{
- Thread.sleep(50);
- } catch(InterruptedException ie) {
- write("Interrupted!\nAborting");
- return;
- }
+ sleep(50);
+ }
+
+
+ // Unregister
+ lc.getDefaultProxyConfig().edit();
+ lc.getDefaultProxyConfig().enableRegister(false);
+ lc.getDefaultProxyConfig().done();
+ while(lc.getDefaultProxyConfig().getState() != RegistrationState.RegistrationCleared) {
+ lc.iterate();
+ sleep(50);
+ }
+
+ // Then register again
+ lc.getDefaultProxyConfig().edit();
+ lc.getDefaultProxyConfig().enableRegister(true);
+ lc.getDefaultProxyConfig().done();
+
+ while(lc.getDefaultProxyConfig().getState() != RegistrationState.RegistrationOk
+ && lc.getDefaultProxyConfig().getState() != RegistrationState.RegistrationFailed) {
+ lc.iterate();
+ sleep(50);
}
// Automatic unregistration on exit
-
-
} finally {
- write("Shutting down...");
+ write("Shutting down linphone...");
// You need to destroy the LinphoneCore object when no longer used
lc.destroy();
- write("Exited");
}
}
+ private void sleep(int ms) {
+ try {
+ Thread.sleep(ms);
+ } catch(InterruptedException ie) {
+ write("Interrupted!\nAborting");
+ return;
+ }
+ }
public void stopMainLoop() {
running=false;
}
+extern "C" int Java_org_linphone_core_LinphoneProxyConfigImpl_getState(JNIEnv* env,jobject thiz,jlong ptr) {
+ return (int) linphone_proxy_config_get_state((const LinphoneProxyConfig *) ptr);
+}
+extern "C" void Java_org_linphone_core_LinphoneProxyConfigImpl_setExpires(JNIEnv* env,jobject thiz,jlong ptr,jint delay) {
+ linphone_proxy_config_expires((LinphoneProxyConfig *) ptr, (int) delay);
+}
+