Commit 1b21c045 authored by Jehan Monnier's avatar Jehan Monnier
Browse files

audio port to mingw32ce static libraries only

parent fa2477ed
install arm-mingw32ce from 0.55 from http://cegcc.sourceforge.net/
install arm-mingw32ce 0.55 from from http://cegcc.sourceforge.net/
Modify the file errno.h found in
"/mingw/opt/mingw32ce/arm-wince-mingw32ce/include/errno.h"
Remove lines 11-14:
#ifdef __COREDLL__
# include_next <errno.h>
#else /* __COREDLL__ */
and lines 106-107:
#endif /* Not __COREDLL__ */
get dependencies:
cd scripts
make -f builder-arm-ming32ce.mk get_dependencies
build:
from scripts:
make -f builder-arm-ming32ce.mk build-linphone
for ortp:
cd oRTP
./configure --host=arm-mingw32ce --enable-strict=no --enable-ipv6=no
......@@ -36,13 +36,14 @@ AM_PROG_CC_C_O
case $target_os in
*mingw32ce)
CFLAGS="$CFLAGS -D_WIN32_WCE"
LIBS="$LIBS -lws2 -liphlpapi"
CFLAGS="$CFLAGS -D_WIN32_WCE -DORTP_STATIC -D_WIN32_WINNT=0x0501 -Dstrerror="
CXXFLAGS="$CXXFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501"
LIBS="$LIBS -lws2 -liphlpapi"
mingw_found=yes
mingwce_found=yes
;;
*mingw*)
CFLAGS="$CFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501"
CFLAGS="$CFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501 "
CXXFLAGS="$CXXFLAGS -DORTP_STATIC -D_WIN32_WINNT=0x0501"
LIBS="$LIBS -lws2_32"
GUI_FLAGS="-mwindows"
......@@ -326,6 +327,19 @@ dnl compilation of gtk-glade user interface
AM_CONDITIONAL(BUILD_GLADE_UI, [test x$gtk_ui = xtrue ] )
AM_CONDITIONAL(BUILD_WIN32, test x$mingw_found = xyes )
dnl check getenv
AH_TEMPLATE([HAVE_GETENV])
AC_CHECK_FUNC([getenv], AC_DEFINE([HAVE_GETENV], [1], [If present, the getenv function allows fim to read environment variables.]))
dnl
AC_MSG_CHECKING([for sighandler_t])
AC_TRY_COMPILE([#include <signal.h>],[sighandler_t *f;],
has_sighandler_t=yes,has_sighandler_t=no)
AC_MSG_RESULT($has_sighandler_t)
if test "$has_sighandler_t" = "yes" ; then
AC_DEFINE( HAVE_SIGHANDLER_T, 1, [Define if sighandler_t available] )
fi
##################################################
# Stricter build options (after external packages)
##################################################
......
......@@ -31,9 +31,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include "exevents.h"
#ifdef INET6
#ifdef INET6
#ifndef WIN32
#include <netdb.h>
#include <netdb.h>
#endif
#endif
......@@ -50,7 +50,7 @@ static void toggle_video_preview(LinphoneCore *lc, bool_t val);
/* relative path where is stored local ring*/
#define LOCAL_RING "rings/oldphone.wav"
/* same for remote ring (ringback)*/
#define REMOTE_RING "ringback.wav"
#define REMOTE_RING "ringback.wav"
sdp_handler_t linphone_sdphandler={
......@@ -79,7 +79,7 @@ static void linphone_call_init_common(LinphoneCall *call, char *from, char *to)
call->media_start_time=0;
call->log=linphone_call_log_new(call, from, to);
linphone_core_notify_all_friends(call->core,LINPHONE_STATUS_ONTHEPHONE);
if (linphone_core_get_firewall_policy(call->core)==LINPHONE_POLICY_USE_STUN)
if (linphone_core_get_firewall_policy(call->core)==LINPHONE_POLICY_USE_STUN)
linphone_core_run_stun_tests(call->core,call);
call->profile=rtp_profile_new("Call RTP profile");
}
......@@ -280,7 +280,7 @@ void _osip_trace_func(char *fi, int li, osip_trace_level_t level, char *chfr, va
ortp_level=ORTP_FATAL;
break;
case END_TRACE_LEVEL:
break;
break;
}
if (ortp_log_level_enabled(level)){
int len=strlen(chfr);
......@@ -376,13 +376,13 @@ void sound_config_read(LinphoneCore *lc)
devid=lp_config_get_string(lc->config,"sound","playback_dev_id",NULL);
linphone_core_set_playback_device(lc,devid);
devid=lp_config_get_string(lc->config,"sound","ringer_dev_id",NULL);
linphone_core_set_ringer_device(lc,devid);
devid=lp_config_get_string(lc->config,"sound","capture_dev_id",NULL);
linphone_core_set_capture_device(lc,devid);
/*
tmp=lp_config_get_int(lc->config,"sound","play_lev",80);
linphone_core_set_play_level(lc,tmp);
......@@ -393,7 +393,7 @@ void sound_config_read(LinphoneCore *lc)
tmpbuf=lp_config_get_string(lc->config,"sound","source","m");
linphone_core_set_sound_source(lc,tmpbuf[0]);
*/
tmpbuf=PACKAGE_SOUND_DIR "/" LOCAL_RING;
tmpbuf=lp_config_get_string(lc->config,"sound","local_ring",tmpbuf);
if (access(tmpbuf,F_OK)==-1) {
......@@ -403,9 +403,9 @@ void sound_config_read(LinphoneCore *lc)
/* it currently uses old sound files, so replace them */
tmpbuf=PACKAGE_SOUND_DIR "/" LOCAL_RING;
}
linphone_core_set_ring(lc,tmpbuf);
tmpbuf=PACKAGE_SOUND_DIR "/" REMOTE_RING;
tmpbuf=lp_config_get_string(lc->config,"sound","remote_ring",tmpbuf);
if (access(tmpbuf,F_OK)==-1){
......@@ -448,12 +448,16 @@ void sip_config_read(LinphoneCore *lc)
linphone_core_enable_ipv6(lc,ipv6);
port=lp_config_get_int(lc->config,"sip","sip_port",5060);
linphone_core_set_sip_port(lc,port);
tmpstr=lp_config_get_string(lc->config,"sip","contact",NULL);
if (tmpstr==NULL || linphone_core_set_primary_contact(lc,tmpstr)==-1) {
char *hostname=NULL;
char *username=NULL;
#ifdef HAVE_GETENV
char *hostname=getenv("HOST");
char *username=getenv("USER");
if (hostname==NULL) hostname=getenv("HOSTNAME");
#endif /*HAVE_GETENV*/
if (hostname==NULL)
hostname="unknown-host";
if (username==NULL){
......@@ -466,8 +470,8 @@ void sip_config_read(LinphoneCore *lc)
tmp=lp_config_get_int(lc->config,"sip","guess_hostname",1);
linphone_core_set_guess_hostname(lc,tmp);
tmp=lp_config_get_int(lc->config,"sip","inc_timeout",15);
linphone_core_set_inc_timeout(lc,tmp);
......@@ -483,7 +487,7 @@ void sip_config_read(LinphoneCore *lc)
/* get the default proxy */
tmp=lp_config_get_int(lc->config,"sip","default_proxy",-1);
linphone_core_set_default_proxy_index(lc,tmp);
/* read authentication information */
for(i=0;; i++){
LinphoneAuthInfo *ai=linphone_auth_info_new_from_config_file(lc->config,i);
......@@ -507,16 +511,16 @@ void rtp_config_read(LinphoneCore *lc)
int nortp_timeout;
port=lp_config_get_int(lc->config,"rtp","audio_rtp_port",7078);
linphone_core_set_audio_port(lc,port);
port=lp_config_get_int(lc->config,"rtp","video_rtp_port",9078);
if (port==0) port=9078;
linphone_core_set_video_port(lc,port);
jitt_comp=lp_config_get_int(lc->config,"rtp","audio_jitt_comp",60);
linphone_core_set_audio_jittcomp(lc,jitt_comp);
linphone_core_set_audio_jittcomp(lc,jitt_comp);
jitt_comp=lp_config_get_int(lc->config,"rtp","video_jitt_comp",60);
nortp_timeout=lp_config_get_int(lc->config,"rtp","nortp_timeout",30);
linphone_core_set_nortp_timeout(lc,nortp_timeout);
linphone_core_set_nortp_timeout(lc,nortp_timeout);
}
......@@ -525,14 +529,14 @@ PayloadType * get_codec(LpConfig *config, char* type,int index){
const char *mime,*fmtp;
int rate,enabled;
PayloadType *pt;
snprintf(codeckey,50,"%s_%i",type,index);
mime=lp_config_get_string(config,codeckey,"mime",NULL);
if (mime==NULL || strlen(mime)==0 ) return NULL;
pt=payload_type_new();
pt->mime_type=ms_strdup(mime);
rate=lp_config_get_int(config,codeckey,"rate",8000);
pt->clock_rate=rate;
fmtp=lp_config_get_string(config,codeckey,"recv_fmtp",NULL);
......@@ -587,7 +591,7 @@ void video_config_read(LinphoneCore *lc)
str=lp_config_get_string(lc->config,"video","device",NULL);
if (str && str[0]==0) str=NULL;
linphone_core_set_video_device(lc,str);
linphone_core_set_preferred_video_size_by_name(lc,
lp_config_get_string(lc->config,"video","size","cif"));
......@@ -607,7 +611,7 @@ void ui_config_read(LinphoneCore *lc)
for (i=0;(lf=linphone_friend_new_from_config_file(lc,i))!=NULL;i++){
linphone_core_add_friend(lc,lf);
}
}
void autoreplier_config_init(LinphoneCore *lc)
......@@ -681,7 +685,7 @@ void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vtable, co
gstate_initialize(lc);
gstate_new_state(lc, GSTATE_POWER_STARTUP, NULL);
ortp_init();
linphone_core_assign_payload_type(&payload_type_lpc1015,115,NULL);
linphone_core_assign_payload_type(&payload_type_speex_nb,110,"vbr=on");
......@@ -715,9 +719,9 @@ void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vtable, co
#endif
ms_init();
lc->config=lp_config_new(config_path);
#ifdef VINCENT_MAURY_RSVP
/* default qos parameters : rsvp on, rpc off */
lc->rsvp_enable = 1;
......@@ -796,7 +800,7 @@ void linphone_core_get_local_ip(LinphoneCore *lc, const char *dest, char *result
if (eXosip_guess_localip(lc->sip_conf.ipv6_enabled ? AF_INET6 : AF_INET,result,LINPHONE_IPADDR_SIZE)<0){
/*default to something */
strncpy(result,lc->sip_conf.ipv6_enabled ? "::1" : "127.0.0.1",LINPHONE_IPADDR_SIZE);
ms_error("Could not find default routable ip address !");
ms_error("Could not find default routable ip address !");
}
}
......@@ -812,10 +816,10 @@ const char *linphone_core_get_primary_contact(LinphoneCore *lc)
ms_free(lc->sip_conf.guessed_contact);
lc->sip_conf.guessed_contact=NULL;
}
osip_from_init(&url);
if (osip_from_parse(url,lc->sip_conf.contact)==0){
}else ms_error("Could not parse identity contact !");
linphone_core_get_local_ip(lc, NULL, tmp);
if (strcmp(tmp,"127.0.0.1")==0 || strcmp(tmp,"::1")==0 ){
......@@ -833,9 +837,9 @@ const char *linphone_core_get_primary_contact(LinphoneCore *lc)
}
osip_from_to_str(url,&guessed);
lc->sip_conf.guessed_contact=guessed;
osip_from_free(url);
}
identity=lc->sip_conf.guessed_contact;
}else{
......@@ -847,7 +851,7 @@ const char *linphone_core_get_primary_contact(LinphoneCore *lc)
void linphone_core_set_guess_hostname(LinphoneCore *lc, bool_t val){
lc->sip_conf.guess_hostname=val;
}
bool_t linphone_core_get_guess_hostname(LinphoneCore *lc){
return lc->sip_conf.guess_hostname;
}
......@@ -1040,11 +1044,11 @@ void linphone_core_iterate(LinphoneCore *lc)
{
eXosip_event_t *ev;
bool_t disconnected=FALSE;
int disconnect_timeout = linphone_core_get_nortp_timeout(lc);
int disconnect_timeout = linphone_core_get_nortp_timeout(lc);
time_t curtime=time(NULL);
int elapsed;
bool_t one_second_elapsed=FALSE;
if (curtime-lc->prevtime>=1){
lc->prevtime=curtime;
one_second_elapsed=TRUE;
......@@ -1056,7 +1060,7 @@ void linphone_core_iterate(LinphoneCore *lc)
lc->ringstream=NULL;
lc_callback_obj_invoke(&lc->preview_finished_cb,lc);
}
if (exosip_running){
while((ev=eXosip_event_wait(0,0))!=NULL){
linphone_core_process_event(lc,ev);
......@@ -1072,7 +1076,7 @@ void linphone_core_iterate(LinphoneCore *lc)
if (lc->call!=NULL){
LinphoneCall *call=lc->call;
if (call->dir==LinphoneCallIncoming && call->state==LCStateRinging){
elapsed=curtime-call->start_time;
ms_message("incoming call ringing for %i seconds",elapsed);
......@@ -1167,7 +1171,7 @@ bool_t linphone_core_interpret_url(LinphoneCore *lc, const char *url, char **rea
if (real_parsed_url!=NULL) *real_parsed_url=NULL;
*route=NULL;
tmproute=linphone_core_get_route(lc);
if (is_enum(url,&enum_domain)){
lc->vtable.display_status(lc,_("Looking for telephone number destination..."));
if (enum_lookup(enum_domain,&enumres)<0){
......@@ -1335,7 +1339,7 @@ int linphone_core_invite(LinphoneCore *lc, const char *url)
osip_to_t *real_parsed_url=NULL;
char *real_url=NULL;
LinphoneProxyConfig *dest_proxy=NULL;
if (lc->call!=NULL){
lc->vtable.display_warning(lc,_("Sorry, having multiple simultaneous calls is not supported yet !"));
return -1;
......@@ -1355,7 +1359,7 @@ int linphone_core_invite(LinphoneCore *lc, const char *url)
ms_message("The used identity will be %s",linphone_proxy_config_get_identity(dest_proxy));
}
if (dest_proxy!=NULL)
if (dest_proxy!=NULL)
from=linphone_proxy_config_get_identity(dest_proxy);
else if (proxy!=NULL)
from=linphone_proxy_config_get_identity(proxy);
......@@ -1374,10 +1378,10 @@ int linphone_core_invite(LinphoneCore *lc, const char *url)
osip_message_set_supported(invite, "timer");
}
/* make sdp message */
osip_from_init(&parsed_url2);
osip_from_parse(parsed_url2,from);
lc->call=linphone_call_new_outgoing(lc,parsed_url2,real_parsed_url);
/*try to be best-effort in giving real local or routable contact address,
except when the user choosed to override the ipaddress */
......@@ -1404,7 +1408,7 @@ int linphone_core_invite(LinphoneCore *lc, const char *url)
lc->call=NULL;
linphone_core_stop_media_streams(lc);
}
goto end;
end:
if (real_url!=NULL) ms_free(real_url);
......@@ -1454,7 +1458,7 @@ int linphone_core_set_rpc_mode(LinphoneCore *lc, int on)
{
if (on==1)
printf("RPC_ENABLE set on\n");
else
else
printf("RPC_ENABLE set off\n");
lc->rpc_enable = (on==1);
/* need to tell eXosip the new setting */
......@@ -1468,7 +1472,7 @@ int linphone_core_set_rsvp_mode(LinphoneCore *lc, int on)
{
if (on==1)
printf("RSVP_ENABLE set on\n");
else
else
printf("RSVP_ENABLE set off\n");
lc->rsvp_enable = (on==1);
/* need to tell eXosip the new setting */
......@@ -1484,10 +1488,10 @@ int linphone_core_change_qos(LinphoneCore *lc, int answer)
if (lc->call==NULL){
return -1;
}
if (lc->rsvp_enable && answer==1)
{
/* answer is yes, local setting is with qos, so
/* answer is yes, local setting is with qos, so
* the user chose to continue with no qos ! */
/* so switch in normal mode : ring and 180 */
lc->rsvp_enable = 0; /* no more rsvp */
......@@ -1604,7 +1608,7 @@ static void post_configure_audio_streams(LinphoneCore *lc){
ms_filter_call_method(f,MS_VOLUME_SET_EA_FORCE,&force);
if (sustain!=-1)
ms_filter_call_method(f,MS_VOLUME_SET_EA_SUSTAIN,&sustain);
}
parametrize_equalizer(lc,st);
if (lc->vtable.dtmf_received!=NULL){
......@@ -1636,7 +1640,7 @@ void linphone_core_start_media_streams(LinphoneCore *lc, LinphoneCall *call){
ms_warning("No card defined for capture !");
goto end;
}
if (audio_params->relay_session_id!=NULL)
if (audio_params->relay_session_id!=NULL)
audio_stream_set_relay_session_id(lc->audiostream,audio_params->relay_session_id);
audio_stream_start_now(
lc->audiostream,
......@@ -1661,7 +1665,7 @@ void linphone_core_start_media_streams(LinphoneCore *lc, LinphoneCall *call){
lc->play_file,
lc->rec_file);
}
post_configure_audio_streams(lc);
post_configure_audio_streams(lc);
audio_stream_set_rtcp_information(lc->audiostream, cname, tool);
}
#ifdef VIDEO_ENABLED
......@@ -1673,9 +1677,9 @@ void linphone_core_start_media_streams(LinphoneCore *lc, LinphoneCall *call){
}
if (lc->video_conf.display || lc->video_conf.capture) {
StreamParams *video_params=&call->video_params;
if (video_params->remoteport>0){
if (video_params->relay_session_id!=NULL)
if (video_params->relay_session_id!=NULL)
video_stream_set_relay_session_id(lc->videostream,video_params->relay_session_id);
video_stream_set_sent_video_size(lc->videostream,linphone_core_get_preferred_video_size(lc));
video_stream_enable_self_view(lc->videostream,lc->video_conf.selfview);
......@@ -1735,11 +1739,11 @@ int linphone_core_accept_call(LinphoneCore *lc, const char *url)
LinphoneCall *call=lc->call;
int err;
bool_t offering=FALSE;
if (call==NULL){
return -1;
}
if (lc->call->state==LCStateAVRunning){
/*call already accepted*/
return -1;
......@@ -1771,7 +1775,7 @@ int linphone_core_accept_call(LinphoneCore *lc, const char *url)
offering=TRUE;
ms_message("generating sdp offer");
sdpmesg=sdp_context_get_offer(call->sdpctx);
if (sdpmesg==NULL){
ms_error("fail to generate sdp offer !");
return -1;
......@@ -1786,7 +1790,7 @@ int linphone_core_accept_call(LinphoneCore *lc, const char *url)
eXosip_unlock();
lc->vtable.display_status(lc,_("Connected."));
gstate_new_state(lc, GSTATE_CALL_IN_CONNECTED, NULL);
if (!offering) linphone_core_start_media_streams(lc, lc->call);
ms_message("call answered.");
return 0;
......@@ -1799,11 +1803,11 @@ int linphone_core_terminate_call(LinphoneCore *lc, const char *url)
return -1;
}
lc->call=NULL;
eXosip_lock();
eXosip_call_terminate(call->cid,call->did);
eXosip_unlock();
/*stop ringing*/
if (lc->ringstream!=NULL) {
ring_stop(lc->ringstream);
......@@ -1853,7 +1857,7 @@ void linphone_core_set_presence_info(LinphoneCore *lc,int minutes_away,
ms_message("contact url is correct.");
}
osip_from_free(url);
}
if (contactok>=0){
if (lc->alt_contact!=NULL) ms_free(lc->alt_contact);
......@@ -1861,7 +1865,7 @@ void linphone_core_set_presence_info(LinphoneCore *lc,int minutes_away,
}
if (lc->presence_mode!=presence_mode){
linphone_core_notify_all_friends(lc,presence_mode);
/*
/*
Improve the use of all LINPHONE_STATUS available.
!TODO Do not mix "presence status" with "answer status code"..
Use correct parameter to follow sip_if_match/sip_etag.
......@@ -1870,7 +1874,7 @@ void linphone_core_set_presence_info(LinphoneCore *lc,int minutes_away,
}
lc->prev_mode=lc->presence_mode;
lc->presence_mode=presence_mode;
}
LinphoneOnlineStatus linphone_core_get_presence_info(const LinphoneCore *lc){
......@@ -1915,7 +1919,7 @@ static MSSndCard *get_card_from_string_id(const char *devid, unsigned int cap){
MSSndCard *sndcard=NULL;
if (devid!=NULL){
sndcard=ms_snd_card_manager_get_card(ms_snd_card_manager_get(),devid);
if (sndcard!=NULL &&
if (sndcard!=NULL &&
(ms_snd_card_get_capabilities(sndcard) & cap)==0 ){
ms_warning("%s card does not have the %s capability, ignoring.",
devid,
......@@ -1997,7 +2001,7 @@ const char * linphone_core_get_capture_device(LinphoneCore *lc)
return lc->sound_conf.capt_sndcard ? ms_snd_card_get_string_id(lc->sound_conf.capt_sndcard) : NULL;
}
/* returns a static array of string describing the sound devices */
/* returns a static array of string describing the sound devices */
const char** linphone_core_get_sound_devices(LinphoneCore *lc){
build_sound_devices_table(lc);
return lc->sound_conf.cards;
......@@ -2025,7 +2029,7 @@ void linphone_core_set_sound_source(LinphoneCore *lc, char source)
ms_snd_card_set_capture(sndcard,MS_SND_CARD_LINE);
break;
}
}
void linphone_core_set_ring(LinphoneCore *lc,const char *path){
......@@ -2128,7 +2132,7 @@ void linphone_core_send_dtmf(LinphoneCore *lc,char dtmf)
osip_message_set_content_type(msg,"application/dtmf-relay");
snprintf(clen,sizeof(clen),"%lu",(unsigned long)strlen(dtmf_body));
osip_message_set_content_length(msg,clen);
eXosip_lock();
eXosip_call_send_request(call->did,msg);
eXosip_unlock();
......@@ -2169,7 +2173,7 @@ static void apply_nat_settings(LinphoneCore *lc){
int err;
struct addrinfo hints,*res;
const char *addr=lc->net_conf.nat_address;
if (lc->net_conf.firewall_policy==LINPHONE_POLICY_USE_NAT_ADDRESS){
if (addr==NULL || strlen(addr)==0){
lc->vtable.display_warning(lc,_("No nat/firewall address supplied !"));
......@@ -2179,7 +2183,7 @@ static void apply_nat_settings(LinphoneCore *lc){
memset(&hints,0,sizeof(struct addrinfo));
if (lc->sip_conf.ipv6_enabled)
hints.ai_family=AF_INET6;
else
else
hints.ai_family=AF_INET;
hints.ai_socktype = SOCK_DGRAM;
err=getaddrinfo(addr,NULL,&hints,&res);
......@@ -2227,7 +2231,7 @@ static void apply_nat_settings(LinphoneCore *lc){
}
else {
eXosip_set_option(EXOSIP_OPT_SET_IPV4_FOR_GATEWAY,NULL);
eXosip_masquerade_contact("",0);
eXosip_masquerade_contact("",0);
}
}
......@@ -2452,7 +2456,7 @@ void linphone_core_set_record_file(LinphoneCore *lc, const char *file){
}
if (file!=NULL) {
lc->rec_file=ms_strdup(file);
if (lc->audiostream)
if (lc->audiostream)
audio_stream_record(lc->audiostream,file);
}
}
......@@ -2512,7 +2516,7 @@ void net_config_uninit(LinphoneCore *lc)
net_config_t *config=&lc->net_conf;
lp_config_set_int(lc->config,"net","download_bw",config->download_bw);
lp_config_set_int(lc->config,"net","upload_bw",config->upload_bw);
if (config->stun_server!=NULL)
lp_config_set_string(lc->config,"net","stun_server",config->stun_server);
if (config->nat_address!=NULL)
......@@ -2557,9 +2561,9 @@ void sip_config_uninit(LinphoneCore *lc)
#endif
}
}
linphone_proxy_config_write_to_config_file(lc->config,NULL,i); /*mark the end */
for(elem=lc->auth_info,i=0;elem!=NULL;elem=ms_list_next(elem),i++){
LinphoneAuthInfo *ai=(LinphoneAuthInfo*)(elem->data);
linphone_auth_info_write_config(lc->config,ai,i);
......@@ -2581,9 +2585,9 @@ void sound_config_uninit(LinphoneCore *lc)
{
sound_config_t *config=&lc->sound_conf;
ms_free(config->cards);
lp_config_set_string(lc->config,"sound","remote_ring",config->remote_ring);
if (config->local_ring) ms_free(config->local_ring);
if (config->remote_ring) ms_free(config->remote_ring);
ms_snd_card_manager_destroy();
......@@ -2591,7 +2595,7 @@ void sound_config_uninit(LinphoneCore *lc)
void video_config_uninit(LinphoneCore *lc)
{
}
void codecs_config_uninit(LinphoneCore *lc)
......@@ -2670,7 +2674,7 @@ void linphone_core_uninit(LinphoneCore *lc)
sip_setup_unregister_all();
linphone_core_free_payload_types();