Call Directory Extension 일부 정리

2016-10-19
25 Views

관련 원문: 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

You may be interested

모바일 앱 아키텍처
Swift
shares13 views
Swift
shares13 views

모바일 앱 아키텍처

MJ Kim - 4월 22, 2017

이 내용은 나름대로 개발해본 내용을 토대로 정리해본 모바일 앱 아키텍처에 대한 내용이다. 이를 정리한 이유는 오래된 아키텍처부터 최근 아키텍처까지 정리해보고…

시간차를 얻는 Date Extension
Swift 3.0
shares6 views
Swift 3.0
shares6 views

시간차를 얻는 Date Extension

MJ Kim - 4월 12, 2017

사용자가 남길 내용에 대한 시간표시를 할 때 일정한 시간차를 표현해주는 경우가 있어 이에 대한 Date Extention을 정리해 보았다. [crayon-58fc5817c7e92929677324/]  

Swift 3.1에서 없어진 문법 정리
Swift 3.0
shares34 views
Swift 3.0
shares34 views

Swift 3.1에서 없어진 문법 정리

MJ Kim - 3월 31, 2017

Swift언어는 무엇인가 나올때마다 없어지는 것들이 있어, Swift 3.1에서 컴파일할 수 없게 된 문법내용을 정리했다. switch문을 사용하여 enum에서 protocol을 여러가지 패턴으로…