diff --git a/NEWS b/NEWS index 68bbd71fa..169f91adc 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -linphone-3.3.2 -- June 25, 2010 +linphone-3.3.2 -- July 1st, 2010 * fix crash when setting firewall address in gtk interface * fix crash while closing video window on windows * fix un-sent BYE message in some rare cases. diff --git a/build/android/Android.mk b/build/android/Android.mk index 88dcb94c6..7432a7722 100755 --- a/build/android/Android.mk +++ b/build/android/Android.mk @@ -77,7 +77,10 @@ LOCAL_STATIC_LIBRARIES := \ libeXosip2 \ libosip2 \ libgsm -# libmsilbc \ +ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) + LOCAL_CFLAGS += -DHAVE_ILBC=1 + LOCAL_STATIC_LIBRARIES += libmsilbc +endif LOCAL_MODULE_CLASS = SHARED_LIBRARIES include $(BUILD_SHARED_LIBRARY) diff --git a/coreapi/callbacks.c b/coreapi/callbacks.c index 531f4542e..6833fba82 100644 --- a/coreapi/callbacks.c +++ b/coreapi/callbacks.c @@ -271,7 +271,7 @@ static void call_failure(SalOp *op, SalError error, SalReason sr, const char *de /*char *retrymsg=_("%s. Retry after %i minute(s).");*/ char *msg600=_("User does not want to be disturbed."); char *msg603=_("Call declined."); - char *msg=(char*)details; + const char *msg=details; LinphoneCall *call=lc->call; if (sal_op_get_user_pointer(op)!=lc->call){ @@ -281,11 +281,13 @@ static void call_failure(SalOp *op, SalError error, SalReason sr, const char *de if (lc->vtable.show) lc->vtable.show(lc); if (error==SalErrorNoResponse){ + msg=_("No response."); if (lc->vtable.display_status) - lc->vtable.display_status(lc,_("No response.")); + lc->vtable.display_status(lc,msg); }else if (error==SalErrorProtocol){ + msg=details ? details : _("Protocol error."); if (lc->vtable.display_status) - lc->vtable.display_status(lc, details ? details : _("Protocol error.")); + lc->vtable.display_status(lc, msg); }else if (error==SalErrorFailure){ switch(sr){ case SalReasonDeclined: @@ -336,7 +338,7 @@ static void call_failure(SalOp *op, SalError error, SalReason sr, const char *de if (call!=NULL) { linphone_call_destroy(call); if (sr!=SalReasonDeclined) gstate_new_state(lc, GSTATE_CALL_ERROR, msg); - else gstate_new_state(lc, GSTATE_CALL_END, NULL); + else gstate_new_state(lc, GSTATE_CALL_END, msg); lc->call=NULL; } } diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 2de23d239..121b32924 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -2246,6 +2246,7 @@ static void post_configure_audio_streams(LinphoneCore *lc){ float recv_gain; float ng_thres=lp_config_get_float(lc->config,"sound","ng_thres",0.05); float ng_floorgain=lp_config_get_float(lc->config,"sound","ng_floorgain",0); + int dc_removal=lp_config_get_int(lc->config,"sound","dc_removal",0); if (mic_gain!=-1) audio_stream_set_mic_gain(st,mic_gain); @@ -2255,6 +2256,9 @@ static void post_configure_audio_streams(LinphoneCore *lc){ if (recv_gain != 0) { linphone_core_set_playback_gain_db (lc,recv_gain); } + if (st->volsend){ + ms_filter_call_method(st->volsend,MS_VOLUME_REMOVE_DC,&dc_removal); + } if (linphone_core_echo_limiter_enabled(lc)){ float speed=lp_config_get_float(lc->config,"sound","el_speed",-1); thres=lp_config_get_float(lc->config,"sound","el_thres",-1); diff --git a/coreapi/linphonecore_jni.cc b/coreapi/linphonecore_jni.cc index 3a5511a00..fcf3cc1ce 100644 --- a/coreapi/linphonecore_jni.cc +++ b/coreapi/linphonecore_jni.cc @@ -83,7 +83,7 @@ public: /*displayStatus(LinphoneCore lc,String message);*/ displayStatusId = env->GetMethodID(listernerClass,"displayStatus","(Lorg/linphone/core/LinphoneCore;Ljava/lang/String;)V"); /*void generalState(LinphoneCore lc,int state); */ - generalStateId = env->GetMethodID(listernerClass,"generalState","(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneCore$GeneralState;)V"); + generalStateId = env->GetMethodID(listernerClass,"generalState","(Lorg/linphone/core/LinphoneCore;Lorg/linphone/core/LinphoneCore$GeneralState;Ljava/lang/String;)V"); generalStateClass = (jclass)env->NewGlobalRef(env->FindClass("org/linphone/core/LinphoneCore$GeneralState")); generalStateFromIntId = env->GetStaticMethodID(generalStateClass,"fromInt","(I)Lorg/linphone/core/LinphoneCore$GeneralState;"); @@ -145,7 +145,8 @@ public: env->CallVoidMethod(lcData->listener ,lcData->generalStateId ,lcData->core - ,env->CallStaticObjectMethod(lcData->generalStateClass,lcData->generalStateFromIntId,gstate->new_state)); + ,env->CallStaticObjectMethod(lcData->generalStateClass,lcData->generalStateFromIntId,gstate->new_state), + gstate->message ? env->NewStringUTF(gstate->message) : NULL); } }; @@ -161,9 +162,11 @@ extern "C" jlong Java_org_linphone_core_LinphoneCoreImpl_newLinphoneCore(JNIEnv* LinphoneCoreData* ldata = new LinphoneCoreData(env,thiz,jlistener,juserdata); #ifdef ANDROID ms_andsnd_register_card(jvm); - // requires an fpu libmsilbc_init(); #endif /*ANDROID*/ +#ifdef HAVE_ILBC + libmsilbc_init(); // requires an fpu +#endif jlong nativePtr = (jlong)linphone_core_new( &ldata->vTable ,userConfig ,factoryConfig diff --git a/coreapi/offeranswer.c b/coreapi/offeranswer.c index 2abf7174d..d69a22ddd 100644 --- a/coreapi/offeranswer.c +++ b/coreapi/offeranswer.c @@ -59,8 +59,8 @@ static MSList *match_payloads(const MSList *local, const MSList *remote){ matched=find_payload_type_best_match(local,p2); if (matched){ matched=payload_type_clone(matched); - if (p2->recv_fmtp) - payload_type_set_send_fmtp(matched,p2->recv_fmtp); + if (p2->send_fmtp) + payload_type_set_send_fmtp(matched,p2->send_fmtp); res=ms_list_append(res,matched); payload_type_set_number(matched,payload_type_get_number(p2)); }else{ diff --git a/coreapi/proxy.c b/coreapi/proxy.c index 59d767303..154ae06a2 100644 --- a/coreapi/proxy.c +++ b/coreapi/proxy.c @@ -90,22 +90,20 @@ bool_t linphone_proxy_config_is_registered(const LinphoneProxyConfig *obj){ * - hostnames : sip:sip.example.net **/ int linphone_proxy_config_set_server_addr(LinphoneProxyConfig *obj, const char *server_addr){ - LinphoneAddress *addr; - char *try=NULL; + LinphoneAddress *addr=NULL; + char *modified=NULL; if (obj->reg_proxy!=NULL) ms_free(obj->reg_proxy); obj->reg_proxy=NULL; if (server_addr!=NULL && strlen(server_addr)>0){ - addr=linphone_address_new(server_addr); - if (!addr){ - /*try to prepend 'sip:' */ - if (strstr(server_addr,"sip:")==NULL){ - try=ms_strdup_printf("sip:%s",server_addr); - addr=linphone_address_new(try); - ms_free(try); - } + if (strstr(server_addr,"sip:")==NULL){ + modified=ms_strdup_printf("sip:%s",server_addr); + addr=linphone_address_new(modified); + ms_free(modified); } + if (addr==NULL) + addr=linphone_address_new(server_addr); if (addr){ obj->reg_proxy=linphone_address_as_string_uri_only(addr); linphone_address_destroy(addr); @@ -167,7 +165,12 @@ int linphone_proxy_config_set_route(LinphoneProxyConfig *obj, const char *route) ms_free(obj->reg_route); obj->reg_route=NULL; } - obj->reg_route=ms_strdup(route); + if (route!=NULL){ + /*try to prepend 'sip:' */ + if (strstr(route,"sip:")==NULL){ + obj->reg_route=ms_strdup_printf("sip:%s",route); + }else obj->reg_route=ms_strdup(route); + } return 0; } diff --git a/java/common/org/linphone/core/LinphoneCoreListener.java b/java/common/org/linphone/core/LinphoneCoreListener.java index f48f8a9eb..be75b946d 100644 --- a/java/common/org/linphone/core/LinphoneCoreListener.java +++ b/java/common/org/linphone/core/LinphoneCoreListener.java @@ -47,5 +47,6 @@ public interface LinphoneCoreListener { * @param state LinphoneCore.GeneralState * @return * */ - public void generalState(LinphoneCore lc,LinphoneCore.GeneralState state); + public void generalState(LinphoneCore lc,LinphoneCore.GeneralState state, String message); } + diff --git a/mediastreamer2 b/mediastreamer2 index 5267b9b3e..c6d39ca3e 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 5267b9b3e66519a17d75735e65ae0534ebfe3ff1 +Subproject commit c6d39ca3e664ad89a8c437f630817334ada056ca diff --git a/oRTP b/oRTP index 18eccd4f3..a8076d948 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 18eccd4f3af64f3bd5293d635a1a169dc77c92ad +Subproject commit a8076d9487ee91d89df221256e0d3371e0fa3f50 diff --git a/pixmaps/Makefile.am b/pixmaps/Makefile.am index 6247f4d27..bf2f03a8c 100644 --- a/pixmaps/Makefile.am +++ b/pixmaps/Makefile.am @@ -10,7 +10,7 @@ status-green.png \ status-orange.png \ status-red.png \ status-offline.png \ -contact-orange.png dialer-orange.png \ +contact-orange.png dialer-orange.png history-orange.png\ startcall-green.png stopcall-red.png EXTRA_DIST=$(pixmap_DATA) diff --git a/po/POTFILES.in b/po/POTFILES.in index 2ca5440ea..2b0f2734f 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -71,4 +71,4 @@ mediastreamer2/src/drawdib-display.c mediastreamer2/src/audiomixer.c mediastreamer2/src/chanadapt.c mediastreamer2/src/itc.c - +mediastreamer2/src/extdisplay.c