유료콜 무료콜 버튼 분리 로그에서 주소부분 무력화
- (void)touchUp:(id)sender {
NSString *address = addressField.text; //어드레스필드값을 address로가져온다
if (address.length == 0) { //어드레스값이 없다면 0이면
LinphoneCallLog *log = linphone_core_get_last_outgoing_call_log(LC); //아웃고잉콜로그에서 로그를가져온다 로그가있다면
if (log) {. //로그값이 존재하면
const LinphoneAddress *to = linphone_call_log_get_to_address(log); // 콜로그에서 to 어드레스를 가져온다
const char *domain = linphone_address_get_domain(to); // 어드레스에서 도메인을가져온다
char *bis_address = NULL;
LinphoneAccount *def_account = linphone_core_get_default_account(LC); //코아에서 디펄트 어카운트를 가져온다
// if the 'to' address is on the default proxy, only present the username
if (def_account) { //디펄트 어카운트 존재하면
const char *def_domain = linphone_account_params_get_domain(linphone_account_get_params(def_account));
// 디펄트어카운트에서 파라메터를 가져온 다음에 파라메터에서 도메인을 가져온다
if (def_domain && domain && !strcmp(domain, def_domain)) {// 디펄트 도메인과 로그에서 가져온 도메인이 존재하고 그값이 같으면
bis_address = ms_strdup(linphone_address_get_username(to)); //to 어드레스에서 username 만을 가져와서 bis_address에넣는다
}
}
if (bis_address == NULL) { //디폴트 어드레스가 아니면
bis_address = linphone_address_as_string_uri_only(to); // to 어드레스에서 url address 스트링을 가져와서 어드레스값에저장한다
}
[addressField setText:[NSString stringWithUTF8String:bis_address]]; //어드레스값을 addressField 에 저장한다
ms_free(bis_address); // 풀어준다
// return after filling the address, let the user confirm the call by pressing again
return;
}
}
if ([address length] > 0) { // 어드레스값 존재하면 0보다크면
LinphoneAddress *addr = [LinphoneUtils normalizeSipOrPhoneAddress:address]; // normalizeSipOrPhoneAddress
[LinphoneManager.instance call:addr]; // 전화를건다 call:addr
if (addr)
linphone_address_unref(addr); // addr 해제
}
}