From c8f4f8f296baa01f5839104327f1707626b7cf63 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Wed, 22 Jun 2011 13:06:13 +0200 Subject: [PATCH 1/3] add missing jni --- coreapi/linphonecore_jni.cc | 9 +++++++++ java/common/org/linphone/core/LinphoneCore.java | 12 ++++++++++++ 2 files changed, 21 insertions(+) diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 2492e8f61..f858f8d17 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -1206,6 +1206,15 @@ extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setDownloadBandwidth(JNI extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setUploadBandwidth(JNIEnv *env, jobject thiz, jlong lc, jint bw){ linphone_core_set_upload_bandwidth((LinphoneCore *)lc, (int) bw); } + +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setDownloadPtime(JNIEnv *env, jobject thiz, jlong lc, jint ptime){ + linphone_core_set_download_ptime((LinphoneCore *)lc, (int) ptime); +} + +extern "C" void Java_org_linphone_core_LinphoneCoreImpl_setUploadPtime(JNIEnv *env, jobject thiz, jlong lc, jint ptime){ + linphone_core_set_upload_ptime((LinphoneCore *)lc, (int) ptime); +} + 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); } diff --git a/java/common/org/linphone/core/LinphoneCore.java b/java/common/org/linphone/core/LinphoneCore.java index 1c7dd2ff9..4afe7182f 100644 --- a/java/common/org/linphone/core/LinphoneCore.java +++ b/java/common/org/linphone/core/LinphoneCore.java @@ -531,6 +531,18 @@ public interface LinphoneCore { void setUploadBandwidth(int bw); void setDownloadBandwidth(int bw); + + /** + * Sets audio packetization interval suggested for remote end. + * @param ptime packetization interval in milliseconds + */ + void setDownloadPtime(int ptime); + + /** + * Sets audio packetization interval sent to remote end. + * @param ptime packetization interval in milliseconds + */ + void setUploadPtime(int ptime); void setPreferredVideoSize(VideoSize vSize); From 044ddc63edfa92cfd4de8f91f344ec4d2bcbb2a6 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Wed, 22 Jun 2011 20:28:40 +0200 Subject: [PATCH 2/3] add sip option reuse_authorization to reuse authorization header for subsequente register --- coreapi/linphonecore.c | 1 + coreapi/sal.c | 1 + coreapi/sal.h | 1 + coreapi/sal_eXosip2.c | 8 ++++++-- coreapi/sal_eXosip2.h | 1 + 5 files changed, 10 insertions(+), 2 deletions(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 651eca134..ee7c7b90c 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -466,6 +466,7 @@ static void sip_config_read(LinphoneCore *lc) sal_use_rport(lc->sal,lp_config_get_int(lc->config,"sip","use_rport",1)); sal_use_101(lc->sal,lp_config_get_int(lc->config,"sip","use_101",1)); + sal_reuse_authorization(lc->sal, lp_config_get_int(lc->config,"sip","reuse_authorization",0)); tmp=lp_config_get_int(lc->config,"sip","use_rfc2833",0); linphone_core_set_use_rfc2833_for_dtmf(lc,tmp); diff --git a/coreapi/sal.c b/coreapi/sal.c index 92b82d52c..b237e9ad9 100644 --- a/coreapi/sal.c +++ b/coreapi/sal.c @@ -329,3 +329,4 @@ void sal_auth_info_delete(const SalAuthInfo* auth_info) { if (auth_info->password) ms_free(auth_info->password); ms_free((void*)auth_info); } + diff --git a/coreapi/sal.h b/coreapi/sal.h index af1ddc367..647353214 100644 --- a/coreapi/sal.h +++ b/coreapi/sal.h @@ -267,6 +267,7 @@ void sal_set_keepalive_period(Sal *ctx,unsigned int value); unsigned int sal_get_keepalive_period(Sal *ctx); void sal_use_session_timers(Sal *ctx, int expires); void sal_use_double_registrations(Sal *ctx, bool_t enabled); +void sal_reuse_authorization(Sal *ctx, bool_t enabled); void sal_use_one_matching_codec_policy(Sal *ctx, bool_t one_matching_codec); void sal_use_rport(Sal *ctx, bool_t use_rports); void sal_use_101(Sal *ctx, bool_t use_101); diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index 42574dc8f..9836c7dfe 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -279,6 +279,7 @@ Sal * sal_init(){ sal->double_reg=TRUE; sal->use_rports=TRUE; sal->use_101=TRUE; + sal->reuse_authorization=FALSE; return sal; } @@ -793,7 +794,7 @@ int sal_call_terminate(SalOp *h){ eXosip_lock(); err=eXosip_call_terminate(h->cid,h->did); eXosip_unlock(); - pop_auth_from_exosip(); + if (!h->base.root->reuse_authorization) pop_auth_from_exosip(); if (err!=0){ ms_warning("Exosip could not terminate the call: cid=%i did=%i", h->cid,h->did); } @@ -816,7 +817,7 @@ void sal_op_authenticate(SalOp *h, const SalAuthInfo *info){ eXosip_default_action(h->pending_auth); eXosip_unlock(); ms_message("eXosip_default_action() done"); - pop_auth_from_exosip(); + if (!h->base.root->reuse_authorization) pop_auth_from_exosip(); if (h->auth_info) sal_auth_info_delete(h->auth_info); /*if already exist*/ h->auth_info=sal_auth_info_clone(info); /*store auth info for subsequent request*/ @@ -2206,3 +2207,6 @@ int sal_call_update(SalOp *h, const char *subject){ eXosip_unlock(); return err; } +void sal_reuse_authorization(Sal *ctx, bool_t value) { + ctx->reuse_authorization=value; +} diff --git a/coreapi/sal_eXosip2.h b/coreapi/sal_eXosip2.h index a050f5133..201cb65a9 100644 --- a/coreapi/sal_eXosip2.h +++ b/coreapi/sal_eXosip2.h @@ -44,6 +44,7 @@ struct Sal{ bool_t double_reg; bool_t use_rports; bool_t use_101; + bool_t reuse_authorization; }; struct SalOp{ From 818c21196d1abaecb2fffd7726038060f818fe79 Mon Sep 17 00:00:00 2001 From: Jehan Monnier Date: Fri, 24 Jun 2011 11:55:06 +0200 Subject: [PATCH 3/3] remove register transaction in sal_op_release --- coreapi/sal_eXosip2.c | 1 + 1 file changed, 1 insertion(+) diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index 88a378da0..2bdb5ec29 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -193,6 +193,7 @@ void sal_op_release(SalOp *op){ eXosip_event_free(op->pending_auth); if (op->rid!=-1){ sal_remove_register(op->base.root,op->rid); + eXosip_register_remove(op->rid); } if (op->cid!=-1){ ms_message("Cleaning cid %i",op->cid);