Swifter {Swift Developer}

메뉴

Call Directory Extension 일부 정리

관련 원문: https://developer.apple.com/reference/callkit#overview

CallKit

개요

identification이란 의미에 대해 정확하게 알지 못하지만 읽어보니 발신자를 식별하여 전화번호 및 발신자명을 쌍으로 미리 등록하는 것이 Call Directory Extension기능으로 제공된다. Call blocking도 Call Directory Extension기능중 하나로 수신거부 목록에 등록하는 기능이 있다. 그외 다양한 기능이 있지만 차단관련 기능을 구현하기 위해 원문내용을 번역해 보았다.

차단 및 확인 전화

앱은 전화번호를 근거로 그것을 거부하거나 누구로부터 들어오는지를 특정하기 위해 Call Directory Exntesion을 사용할 수 있다.

수신 발신자 확인

전화를 받을 때 시스템은 우선 사용자 연락처를 참조하여 해당 전화번호가 있는지 확인하고 일치한 것이 없으면 시스템은 고객의 앱에서 Call Directory Extension에서 해당 전화번호가 일치하는 항목이 있는지 검사한다. 이는 앱이 시스템의 연락처와 별도로 연락처를 관리할 때 유용하다. 예로 소셜네트워크 연락처 및 앱에서 발신 ID가 초기화되는 경우에 해당하는 고객서비스등이 있다.

에로 Jane의 SNS친구는 그녀의 전화번호가 연라처에 없을 때가 있다. 이때 SNS앱은 Call Directory extension을 사용하여 SNS에서 친구 전화번호를 모두 다운로드해두고 발신자 식별정보를 추가하여 Jane에게서 전화가 오면 화면에 “알수없는 번호” 대신 “(앱이름) Call ID: Jane Appleseed”라고 표시할 수 있다.

발신자 식별정보를 제공하려면 addIdentificationEntry(withNextSequentialPhoneNumber:label:)을 beginRequest(wih:)에서 실제 전화를 하게 한다.

이 방법은 개별 발신이 아닌 시스템에 extension이 시작할 때 한번만 호출하지 않기 때문에 발신자 식별정보의 부여는 모두 일회성을 수행해야 한다. 예로 웹서비스에 대한 정보 검색 요청하는 것은 할 수 없다.

테스트용으로 만들어보니

  • 전화번호: 010-XXXX-XXXX
  • CXCallDirectoryPhoneNumber: 8210xxxxxxxx

전화번호는 국가코드가 자동으로 부여되어 시작된다. 한국에서 휴대전화라면 위와 같이 구성된다. Call Directory Extension에는 샘플코드가 있기 때문에 이를 참고하면 쉽게 개발이 가능하다.

걸려오는 전화 차단하기

전화를 받을 때 우선 시스템은 저신이 가진 수신거부목록을 참조한다. (설정-전화-수신거부설정된 곳) 만약 시스템이 정의하고 있는 수신거부 목록에 해당 번호가 없으면 앱은 Call Directory extension을 참조하여 수신거부 번호를 인지하여 검색한다. 이는 이미 공개된 스팸전화 데이터를 가지고 전화번호를 자동으로 차단할 때 유용하다.

 

 

 

 

Facebook Comments

카테고리:   Swift 3.0

댓글

죄송하지만 댓글은 닫혀 있습니다.