From 400b71a140ce9910439766cd850ecaa3636d287a Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Thu, 25 Aug 2011 23:37:44 +0200 Subject: [PATCH 1/3] implement automatic retry in case of "Interval too brief" for registers. --- coreapi/sal_eXosip2.c | 16 ++++++++++++++++ mediastreamer2 | 2 +- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/coreapi/sal_eXosip2.c b/coreapi/sal_eXosip2.c index 389179008..9720d27c4 100644 --- a/coreapi/sal_eXosip2.c +++ b/coreapi/sal_eXosip2.c @@ -1769,6 +1769,22 @@ static bool_t registration_failure(Sal *sal, eXosip_event_t *ev){ case 407: return process_authentication(sal,ev); break; + case 423: /*interval too brief*/ + {/*retry with greater interval */ + osip_header_t *h=NULL; + osip_message_t *msg=NULL; + osip_message_header_get_byname(ev->response,"min-expires",0,&h); + if (h && h->hvalue && h->hvalue[0]!='\0'){ + int val=atoi(h->hvalue); + if (val>op->expires) + op->expires=val; + }else op->expires*=2; + eXosip_lock(); + eXosip_register_build_register(op->rid,op->expires,&msg); + eXosip_register_send_register(op->rid,msg); + eXosip_unlock(); + } + break; case 606: /*Not acceptable, workaround for proxies that don't like private addresses in vias, such as ekiga.net On the opposite, freephonie.net bugs when via are masqueraded. diff --git a/mediastreamer2 b/mediastreamer2 index 340acff00..83459cfa1 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 340acff0001e92d1f126b484d100e1c1d0746b34 +Subproject commit 83459cfa169478fc563b606fb141b60fa07ab861 From 20709fc5f1b06c04f2311e1f6ec4ff45f76f4de8 Mon Sep 17 00:00:00 2001 From: Guillaume Beraudo Date: Fri, 26 Aug 2011 14:30:36 +0200 Subject: [PATCH 2/3] Fix compilation on iPhone srtp/zrtp (disable tests) --- configure.ac | 9 +++++++++ coreapi/Makefile.am | 3 ++- coreapi/help/Makefile.am | 2 ++ coreapi/linphonecall.c | 15 ++++++--------- mediastreamer2 | 2 +- oRTP | 2 +- 6 files changed, 21 insertions(+), 12 deletions(-) diff --git a/configure.ac b/configure.ac index dd0c4d946..379f23491 100644 --- a/configure.ac +++ b/configure.ac @@ -462,6 +462,15 @@ AC_SUBST(ORTP_LIBS) AC_SUBST([ORTP_VERSION]) AC_SUBST([ORTP_DIR]) +AC_ARG_ENABLE(tests_enabled, + [ --disable-tests Disable compilation of tests], + [case "${enableval}" in + yes) tests_enabled=true ;; + no) tests_enabled=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-tests) ;; + esac],[tests_enabled=false]) +AM_CONDITIONAL(ENABLE_TESTS, test x$tests_enabled = xyes) + dnl ################################################## dnl # Check for doxygen dnl ################################################## diff --git a/coreapi/Makefile.am b/coreapi/Makefile.am index a362dda83..6ea151e0a 100644 --- a/coreapi/Makefile.am +++ b/coreapi/Makefile.am @@ -50,6 +50,7 @@ if BUILD_WIN32 liblinphone_la_LIBADD+=$(top_builddir)/oRTP/src/libortp.la endif +if ENABLE_TESTS noinst_PROGRAMS=test_lsd test_ecc test_lsd_SOURCES=test_lsd.c @@ -59,7 +60,7 @@ test_lsd_LDADD=liblinphone.la $(liblinphone_la_LIBADD) test_ecc_SOURCES=test_ecc.c test_ecc_LDADD=liblinphone.la $(liblinphone_la_LIBADD) - +endif AM_CFLAGS=$(STRICT_OPTIONS) -DIN_LINPHONE \ diff --git a/coreapi/help/Makefile.am b/coreapi/help/Makefile.am index 74767bea3..6690fd4a6 100644 --- a/coreapi/help/Makefile.am +++ b/coreapi/help/Makefile.am @@ -32,6 +32,7 @@ endif clean-local: rm -rf doc +if ENABLE_TESTS #tutorials noinst_PROGRAMS=helloworld registration buddy_status chatroom @@ -57,6 +58,7 @@ chatroom_SOURCES=chatroom.c LINPHONE_TUTOS+=$(chatroom_SOURCES) chatroom_LDADD=$(helloworld_LDADD) +endif diff --git a/coreapi/linphonecall.c b/coreapi/linphonecall.c index 393d43d8f..210c2c453 100644 --- a/coreapi/linphonecall.c +++ b/coreapi/linphonecall.c @@ -41,17 +41,14 @@ static MSWebCam *get_nowebcam_device(){ } #endif -static const char* get_zrtp_identifier(LinphoneCore *lc){ +static const char* get_hexa_zrtp_identifier(LinphoneCore *lc){ const char *confZid=lp_config_get_string(lc->config,"rtp","zid",NULL); if (confZid != NULL) { return confZid; } else { - int32_t *zid=calloc(3,32); - int i=0; - for(;i<3;i++) { - zid[i]=rand(); - } - lp_config_set_string(lc->config,"rtp","zid",(char*)zid); + char zidstr[128]; + snprintf(zidstr,sizeof(zidstr),"%x-%x-%x",rand(),rand(),rand()); + lp_config_set_string(lc->config,"rtp","zid",zidstr); return lp_config_get_string(lc->config,"rtp","zid",NULL); } } @@ -123,7 +120,7 @@ static void linphone_call_audiostream_encryption_changed(void *data, bool_t encr if (params->has_video) { ms_message("Trying to enable encryption on video stream"); OrtpZrtpParams params; - params.zid=get_zrtp_identifier(call->core); + params.zid=get_hexa_zrtp_identifier(call->core); params.zid_file=NULL; //unused video_stream_enable_zrtp(call->videostream,call->audiostream,¶ms); } @@ -1130,7 +1127,7 @@ void linphone_call_start_media_streams(LinphoneCall *call, bool_t all_inputs_mut if (ortp_zrtp_available()) { OrtpZrtpParams params; - params.zid=get_zrtp_identifier(lc); + params.zid=get_hexa_zrtp_identifier(lc); params.zid_file=lc->zrtp_secrets_cache; audio_stream_enable_zrtp(call->audiostream,¶ms); } diff --git a/mediastreamer2 b/mediastreamer2 index 83459cfa1..45067312f 160000 --- a/mediastreamer2 +++ b/mediastreamer2 @@ -1 +1 @@ -Subproject commit 83459cfa169478fc563b606fb141b60fa07ab861 +Subproject commit 45067312fd5296d01ea66c851a0f87f9a993b52b diff --git a/oRTP b/oRTP index 6eabe8e04..e16102322 160000 --- a/oRTP +++ b/oRTP @@ -1 +1 @@ -Subproject commit 6eabe8e0490f3c88becfaf403444bb1285edde9d +Subproject commit e16102322baf5bc6079216c44722f79d1a6202d4 From aa438045b5ec256bc3b8f6155bb9480f7ddbb669 Mon Sep 17 00:00:00 2001 From: Simon Morlat Date: Mon, 29 Aug 2011 00:28:43 +0200 Subject: [PATCH 3/3] fix missing coma in table. --- coreapi/linphonecore.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index e6fc1ef1e..aa33e668f 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -641,7 +641,7 @@ static const char *codec_pref_order[]={ "gsm", "pcmu", "pcma", - "VP8-DRAFT-0-3-2" + "VP8-DRAFT-0-3-2", "H264", "MP4V-ES", "H263-1998",