iOS에서 수신 전화를 코드로 자동 응답할 수 있을까?
결론부터 말씀드리면, Apple의 공식 iPhone SDK는 앱이 수신 전화를 프로그래밍 방식으로 자동으로 응답하는 기능을 지원하지 않습니다. 통화 제어는 사용자의 개인정보와 보안에 직결되는 민감한 영역이기 때문에, Apple은 서드파티 앱이 임의로 전화를 받거나 끊는 것을 철저히 차단하고 있습니다.
기술적으로 가능한 우회 방법: 비공개 API
공식적인 경로는 없지만, 비공개(Private) API를 사용하면 기술적으로는 구현이 가능합니다. 대표적인 예가 다음과 같은 CoreTelephony 계열의 비공개 함수입니다.
CTCallAnswer(call);이런 내부 API를 호출하면 실제로 수신 전화를 자동으로 응답 처리할 수 있습니다. 다만 이는 어디까지나 Apple이 외부 개발자에게 공개하지 않은 내부 기능을 활용하는 방식입니다.
반드시 알아야 할 주의사항
비공개 API를 사용한 앱은 App Store 심사에서 거부(rejection)됩니다. Apple은 앱 심사 과정에서 비공개 API 사용 여부를 정적 분석 등을 통해 확인하며, 적발될 경우 앱이 반려되고 반복적으로 위반하면 개발자 계정 자체가 제재받을 수도 있습니다.
따라서 App Store 배포를 목표로 하는 앱이라면 이 방법은 현실적으로 사용할 수 없으며, 엔터프라이즈 배포나 탈옥(jailbreak) 환경처럼 심사 규정의 제약을 받지 않는 특수한 경우에만 고려해볼 수 있습니다.
정리
- 공식 SDK에는 수신 전화 자동 응답 기능이 존재하지 않습니다.
- CTCallAnswer 같은 비공개 API로 구현은 가능하지만, App Store 심사에서 확실하게 거부됩니다.
- 합법적인 대체 수단은 CallKit을 활용한 착신 표시·차단 정도로 한정됩니다.