X-Git-Url: http://sjero.net/git/?a=blobdiff_plain;f=coreapi%2Flinphonecore.c;h=12c8880b65a4068547ffacd35a07c984b4ab8304;hb=12a3d795131ab1b367ae000f8b70f9b8af684df6;hp=7b4d6a9984dc71d1463ddd3316b855e573a99efc;hpb=fe1f6272324192e625a983808baa1dc8de17ccbb;p=linphone diff --git a/coreapi/linphonecore.c b/coreapi/linphonecore.c index 7b4d6a99..12c8880b 100644 --- a/coreapi/linphonecore.c +++ b/coreapi/linphonecore.c @@ -116,6 +116,7 @@ LinphoneCallLog * linphone_call_log_new(LinphoneCall *call, LinphoneAddress *fro cl->from=from; cl->to=to; cl->status=LinphoneCallAborted; /*default status*/ + cl->quality=-1; return cl; } @@ -406,10 +407,24 @@ const LinphoneAddress *linphone_core_get_current_call_remote_address(struct _Lin return linphone_call_get_remote_address(call); } +void linphone_core_set_log_handler(OrtpLogFunc logfunc) { + ortp_set_log_handler(logfunc); +} + +void linphone_core_set_log_file(FILE *file) { + if (file == NULL) file = stdout; + ortp_set_log_file(file); +} + +void linphone_core_set_log_level(OrtpLogLevel loglevel) { + ortp_set_log_level_mask(loglevel); +} + /** * Enable logs in supplied FILE*. * * @ingroup misc + * @deprecated Use #linphone_core_set_log_file and #linphone_core_set_log_level instead. * * @param file a C FILE* where to fprintf logs. If null stdout is used. * @@ -424,6 +439,7 @@ void linphone_core_enable_logs(FILE *file){ * Enable logs through the user's supplied log callback. * * @ingroup misc + * @deprecated Use #linphone_core_set_log_handler and #linphone_core_set_log_level instead. * * @param logfunc The address of a OrtpLogFunc callback whose protoype is * typedef void (*OrtpLogFunc)(OrtpLogLevel lev, const char *fmt, va_list args); @@ -438,6 +454,7 @@ void linphone_core_enable_logs_with_cb(OrtpLogFunc logfunc){ * Entirely disable logging. * * @ingroup misc + * @deprecated Use #linphone_core_set_log_level instead. **/ void linphone_core_disable_logs(){ ortp_set_log_level_mask(ORTP_ERROR|ORTP_FATAL); @@ -581,9 +598,6 @@ static void sip_config_read(LinphoneCore *lc) int ipv6; int random_port; - tmp=lp_config_get_int(lc->config,"sip","use_info",0); - linphone_core_set_use_info_for_dtmf(lc,tmp); - if (lp_config_get_int(lc->config,"sip","use_session_timers",0)==1){ sal_use_session_timers(lc->sal,200); } @@ -593,9 +607,6 @@ static void sip_config_read(LinphoneCore *lc) sal_reuse_authorization(lc->sal, lp_config_get_int(lc->config,"sip","reuse_authorization",0)); sal_expire_old_registration_contacts(lc->sal,lp_config_get_int(lc->config,"sip","expire_old_registration_contacts",0)); - tmp=lp_config_get_int(lc->config,"sip","use_rfc2833",1); - linphone_core_set_use_rfc2833_for_dtmf(lc,tmp); - ipv6=lp_config_get_int(lc->config,"sip","use_ipv6",-1); if (ipv6==-1){ ipv6=0; @@ -1194,18 +1205,18 @@ void linphone_core_set_state(LinphoneCore *lc, LinphoneGlobalState gstate, const } static void misc_config_read (LinphoneCore *lc) { LpConfig *config=lc->config; - lc->max_call_logs=lp_config_get_int(config,"misc","history_max_size",15); - lc->max_calls=lp_config_get_int(config,"misc","max_calls",NB_MAX_CALLS); + lc->max_call_logs=lp_config_get_int(config,"misc","history_max_size",15); + lc->max_calls=lp_config_get_int(config,"misc","max_calls",NB_MAX_CALLS); } -static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vtable, const char *config_path, - const char *factory_config_path, void * userdata) +static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vtable, LpConfig *config, void * userdata) { ms_message("Initializing LinphoneCore %s", linphone_core_get_version()); memset (lc, 0, sizeof (LinphoneCore)); + lc->config=config; lc->data=userdata; lc->ringstream_autorelease=TRUE; @@ -1274,6 +1285,8 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta linphone_core_assign_payload_type(lc,&payload_type_silk_wb,-1,NULL); linphone_core_assign_payload_type(lc,&payload_type_silk_swb,-1,NULL); linphone_core_assign_payload_type(lc,&payload_type_g729,18,"annexb=no"); + linphone_core_assign_payload_type(lc,&payload_type_aaceld_22k,-1,"config=F8EE2000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5"); + linphone_core_assign_payload_type(lc,&payload_type_aaceld_44k,-1,"config=F8E82000; constantDuration=512; indexDeltaLength=3; indexLength=3; mode=AAC-hbr; profile-level-id=76; sizeLength=13; streamType=5"); linphone_core_handle_static_payloads(lc); ms_init(); @@ -1282,10 +1295,6 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta lc->msevq=ms_event_queue_new(); ms_set_global_event_queue(lc->msevq); - lc->config=lp_config_new(config_path); - if (factory_config_path) - lp_config_read_file(lc->config,factory_config_path); - lc->sal=sal_init(); sal_set_user_pointer(lc->sal,lc); sal_set_callbacks(lc->sal,&linphone_sal_callbacks); @@ -1331,13 +1340,19 @@ static void linphone_core_init (LinphoneCore * lc, const LinphoneCoreVTable *vta * It is OPTIONAL, use NULL if unneeded. * @param userdata an opaque user pointer that can be retrieved at any time (for example in * callbacks) using linphone_core_get_user_data(). - * + * @see linphone_core_new_with_config **/ LinphoneCore *linphone_core_new(const LinphoneCoreVTable *vtable, const char *config_path, const char *factory_config_path, void * userdata) { - LinphoneCore *core=ms_new(LinphoneCore,1); - linphone_core_init(core,vtable,config_path, factory_config_path, userdata); + LpConfig *config = lp_config_new_with_factory(config_path, factory_config_path); + return linphone_core_new_with_config(vtable, config, userdata); +} + +LinphoneCore *linphone_core_new_with_config(const LinphoneCoreVTable *vtable, struct _LpConfig *config, void *userdata) +{ + LinphoneCore *core = ms_new(LinphoneCore, 1); + linphone_core_init(core, vtable, config, userdata); return core; } @@ -1704,7 +1719,7 @@ void linphone_core_set_nortp_timeout(LinphoneCore *lc, int nortp_timeout){ **/ bool_t linphone_core_get_use_info_for_dtmf(LinphoneCore *lc) { - return lc->sip_conf.use_info; + return lp_config_get_int(lc->config, "sip", "use_info", 0); } /** @@ -1714,7 +1729,9 @@ bool_t linphone_core_get_use_info_for_dtmf(LinphoneCore *lc) **/ void linphone_core_set_use_info_for_dtmf(LinphoneCore *lc,bool_t use_info) { - lc->sip_conf.use_info=use_info; + if (linphone_core_ready(lc)) { + lp_config_set_int(lc->config, "sip", "use_info", use_info); + } } /** @@ -1724,7 +1741,7 @@ void linphone_core_set_use_info_for_dtmf(LinphoneCore *lc,bool_t use_info) **/ bool_t linphone_core_get_use_rfc2833_for_dtmf(LinphoneCore *lc) { - return lc->sip_conf.use_rfc2833; + return lp_config_get_int(lc->config, "sip", "use_rfc2833", 1); } /** @@ -1734,7 +1751,9 @@ bool_t linphone_core_get_use_rfc2833_for_dtmf(LinphoneCore *lc) **/ void linphone_core_set_use_rfc2833_for_dtmf(LinphoneCore *lc,bool_t use_rfc2833) { - lc->sip_conf.use_rfc2833=use_rfc2833; + if (linphone_core_ready(lc)) { + lp_config_set_int(lc->config, "sip", "use_rfc2833", use_rfc2833); + } } /** @@ -2151,8 +2170,10 @@ void linphone_core_iterate(LinphoneCore *lc){ lc->initial_subscribes_sent=TRUE; } - if (one_second_elapsed && lp_config_needs_commit(lc->config)){ - lp_config_sync(lc->config); + if (one_second_elapsed) { + if (lp_config_needs_commit(lc->config)) { + lp_config_sync(lc->config); + } } } @@ -4906,26 +4927,6 @@ void linphone_core_play_dtmf(LinphoneCore *lc, char dtmf, int duration_ms){ else ms_filter_call_method(f, MS_DTMF_GEN_START, &dtmf); } -/** - * @ingroup media_parameters - * Plays a repeated tone to the local user until next further call to #linphone_core_stop_dtmf() - * @param lc #LinphoneCore -**/ -void linphone_core_play_tone(LinphoneCore *lc){ - MSFilter *f=get_dtmf_gen(lc); - MSDtmfGenCustomTone def; - if (f==NULL){ - ms_error("No dtmf generator at this time !"); - return; - } - memset(&def,0,sizeof(def)); - def.duration=300; - def.frequencies[0]=500; - def.amplitude=1; - def.interval=2000; - ms_filter_call_method(f, MS_DTMF_GEN_PLAY_CUSTOM,&def); -} - void linphone_core_play_named_tone(LinphoneCore *lc, LinphoneToneID toneid){ if (linphone_core_tone_indications_enabled(lc)){ MSFilter *f=get_dtmf_gen(lc); @@ -5105,8 +5106,6 @@ void sip_config_uninit(LinphoneCore *lc) lp_config_set_int(lc->config,"sip","inc_timeout",config->inc_timeout); lp_config_set_int(lc->config,"sip","in_call_timeout",config->in_call_timeout); lp_config_set_int(lc->config,"sip","delayed_timeout",config->delayed_timeout); - lp_config_set_int(lc->config,"sip","use_info",config->use_info); - lp_config_set_int(lc->config,"sip","use_rfc2833",config->use_rfc2833); lp_config_set_int(lc->config,"sip","use_ipv6",config->ipv6_enabled); lp_config_set_int(lc->config,"sip","register_only_when_network_is_up",config->register_only_when_network_is_up); lp_config_set_int(lc->config,"sip","register_only_when_upnp_is_ok",config->register_only_when_upnp_is_ok);