| | |
| | | const char *prefname; |
| | | }; |
| | | |
| | | struct codec_name_pref_table codec_pref_table[] = {{"speex", 8000, "speex_8k_preference"}, |
| | | struct codec_name_pref_table hdl_codec_pref_table[] = {{"speex", 8000, "speex_8k_preference"}, |
| | | {"speex", 16000, "speex_16k_preference"}, |
| | | {"silk", 24000, "silk_24k_preference"}, |
| | | {"silk", 16000, "silk_16k_preference"}, |
| | |
| | | |
| | | + (NSString *)getPreferenceForCodec:(const char *)name withRate:(int)rate { |
| | | int i; |
| | | for (i = 0; codec_pref_table[i].name != NULL; ++i) { |
| | | if (strcasecmp(codec_pref_table[i].name, name) == 0 && codec_pref_table[i].rate == rate) |
| | | return [NSString stringWithUTF8String:codec_pref_table[i].prefname]; |
| | | for (i = 0; hdl_codec_pref_table[i].name != NULL; ++i) { |
| | | if (strcasecmp(hdl_codec_pref_table[i].name, name) == 0 && hdl_codec_pref_table[i].rate == rate) |
| | | return [NSString stringWithUTF8String:hdl_codec_pref_table[i].prefname]; |
| | | } |
| | | return Nil; |
| | | } |
| | | |
| | | + (NSSet *)unsupportedCodecs { |
| | | NSMutableSet *set = [NSMutableSet set]; |
| | | for (int i = 0; codec_pref_table[i].name != NULL; ++i) { |
| | | for (int i = 0; hdl_codec_pref_table[i].name != NULL; ++i) { |
| | | PayloadType *available = linphone_core_find_payload_type( |
| | | theLinphoneCore, codec_pref_table[i].name, codec_pref_table[i].rate, LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS); |
| | | theLinphoneCore, hdl_codec_pref_table[i].name, hdl_codec_pref_table[i].rate, LINPHONE_FIND_PAYLOAD_IGNORE_CHANNELS); |
| | | if ((available == NULL) |
| | | // these two codecs should not be hidden, even if not supported |
| | | && strcmp(codec_pref_table[i].prefname, "h264_preference") != 0 && |
| | | strcmp(codec_pref_table[i].prefname, "mp4v-es_preference") != 0) { |
| | | [set addObject:[NSString stringWithUTF8String:codec_pref_table[i].prefname]]; |
| | | && strcmp(hdl_codec_pref_table[i].prefname, "h264_preference") != 0 && |
| | | strcmp(hdl_codec_pref_table[i].prefname, "mp4v-es_preference") != 0) { |
| | | [set addObject:[NSString stringWithUTF8String:hdl_codec_pref_table[i].prefname]]; |
| | | } |
| | | } |
| | | return set; |
| | |
| | | linphone_core_cbs_set_version_update_check_result_received(cbs, linphone_iphone_version_update_check_result_received); |
| | | linphone_core_cbs_set_qrcode_found(cbs, linphone_iphone_qr_code_found); |
| | | linphone_core_cbs_set_user_data(cbs, (__bridge void *)(self)); |
| | | // NSLog(@"Creating linphonecore1:%@",_configDb); |
| | | |
| | | lp_config_set_int(_configDb, [@"app" UTF8String], [@"random_port_preference" UTF8String], 1); |
| | | |
| | | |
| | | theLinphoneCore = linphone_factory_create_core_with_config_3(factory, _configDb, NULL); |
| | | linphone_core_add_callbacks(theLinphoneCore, cbs); |
| | | linphone_core_start(theLinphoneCore); |
| | | |
| | | //è®¾ç½®ä¸ºéæºç«¯å£ |
| | | LinphoneSipTransports transportValue = {-1, -1, -1, -1}; |
| | | // will also update the sip_*_port section of the config |
| | | if (linphone_core_set_sip_transports(theLinphoneCore, &transportValue)) { |
| | | LOGE(@"cannot set transport"); |
| | | } |
| | | |
| | | [self removeAllAccounts]; |
| | | // Let the core handle cbs |
| | | linphone_core_cbs_unref(cbs); |