데이터 유형
API에 대한 data 유형 폴링에 대해 리턴 된 결과는 아래에 설명 된 형식 중 하나의 형식으로 정보를 리턴합니다.
결과 페이로드
속성
데이터 JSON 페이로드의 루트 구조에는 다음과 같은 속성이 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
data | 데이터 개체 목록 | 소스에서 검색된 데이터입니다. |
metadata | 메타데이터 개체 | 데이터와 관련된 메타 data . |
메타 데이터
속성
| 이름 | 유형 | 설명 |
|---|---|---|
count | 정수 | data 의 개체 수입니다. |
파일
API를 통해 files 유형 폴링을 통해 다운로드 할 수있는 파일에 대한 참조이므로 file 데이터 유형은 API 전체에서 볼 수 있습니다.
속성
| 이름 | 유형 | 설명 |
|---|---|---|
file_id | 끈 | API에서 파일을 요청하는 데 사용되는 식별자입니다. 값은 현재 소스의 범위 내에서만 고유함이 보장됩니다. |
type | 문자열, 항상 file | 데이터 유형 지정자. |
name | 끈 | 확장자를 제외한 파일 이름입니다. |
extension | 문자열, 선택 사항 | 가능한 경우 파일의 확장자입니다. |
mime_type | 문자열, 선택사항 | 사용 가능한 경우 파일의 MIME 유형입니다. |
size | 정수, 선택 사항 | 사용 가능한 경우 파일의 크기입니다. |
checksum | 문자열, 선택사항 | 사용 가능한 경우 md5 체크섬입니다. |
예
{
"file_id": "abc123",
"type": "file",
"name": "IMG_0003",
"extension": "jpg",
"mime_type": "image/jpeg",
"size": 2505426,
}
영상
| 이름 | 유형 | 설명 |
|---|---|---|
file_id | 끈 | API에서 파일을 요청하는 데 사용되는 식별자입니다. 값은 현재 소스의 범위 내에서만 고유함이 보장됩니다. |
type | 끈 | 항상 image . |
filename | 끈 | 파일의 원래 파일 이름입니다. 이 파일 이름의 확장자는 파일의 확장자와 일치해야 합니다. |
file_path | 끈 | 서비스 내의 다른 파일과 관련된 파일의 경로입니다. 예를 들어 백업 내의 경로입니다. |
width | 정수, 선택 사항 | 사용 가능한 경우 파일의 너비입니다. |
height | 정수, 선택 사항 | 가능한 경우 파일의 높이입니다. |
예
{
"file_id": "abc123",
"type": "image",
"filename": "IMG_0003.JPG",
"file_path": "Media/DCIM/100APPLE/IMG_0003.JPG",
"name": "IMG_0003",
"extension": "jpg",
"mime_type": "image/jpeg",
"width": 3000,
"height": 2002,
"size": 2505426,
}
비디오
| 이름 | 유형 | 설명 |
|---|---|---|
file_id | 끈 | API에서 파일을 요청하는 데 사용되는 식별자입니다. 값은 현재 소스의 범위 내에서만 고유함이 보장됩니다. |
type | 끈 | 항상 video . |
filename | 끈 | 파일의 원래 파일 이름입니다. 이 파일 이름의 확장자는 파일의 확장자와 일치해야 합니다. |
file_path | 끈 | 서비스 내의 다른 파일과 관련된 파일의 경로입니다. 예를 들어 백업 내의 경로입니다. |
width | 정수, 선택 사항 | 사용 가능한 경우 파일의 너비입니다. |
height | 정수, 선택 사항 | 가능한 경우 파일의 높이입니다. |
duration | 정수, 선택 사항 | 가능한 경우 동영상의 길이입니다. |
예
{
"file_id": "abc123",
"type": "video",
"filename": "IMG_0009.MOV",
"file_path": "Media/DCIM/100APPLE/IMG_0009.MOV",
"name": "IMG_0009",
"extension": "mov",
"mime_type": "video/quicktime",
"width": 1920,
"height": 1080,
"size": 5421796,
"duration": 9.135623
}
동영상
| 이름 | 유형 | 설명 |
|---|---|---|
file_id | 끈 | API에서 파일을 요청하는 데 사용되는 식별자입니다. 값은 현재 소스의 범위 내에서만 고유함이 보장됩니다. |
type | 끈 | 항상 audio . |
filename | 끈 | 파일의 원래 파일 이름입니다. 이 파일 이름의 확장자는 파일의 확장자와 일치해야 합니다. |
file_path | 끈 | 서비스 내의 다른 파일과 관련된 파일의 경로입니다. 예를 들어 백업 내의 경로입니다. |
transcription | 문자열, 선택사항 | 가능한 경우 오디오 메시지의 텍스트 전사입니다. |
예
{
"id": "abc123",
"type": "audio",
"filename": "Audio Message.caf",
"file_path": "Library/SMS/Attachments/.../Audio Message.caf",
"transcription": "Test voice message",
}
오디오 전사
백업 데이터에 사용 가능한 경우 오디오 메시지의 기록이 audio 개체의 일부로 반환됩니다. 이는 iOS 17 이후 iOS 메시지에서 작성된 오디오 메시지에서 사용할 수 있습니다.
메시지
속성
| 이름 | 유형 | 설명 |
|---|---|---|
id | 끈 | 메시지의 고유 식별자입니다. 필요한 경우 반환된 데이터를 중복 제거하는 데 사용합니다. |
data_type | 문자열, 항상 message | 데이터 유형 지정자. |
type | 문자열, 선택 사항 | 메시징 서비스가 다양한 메시지 유형을 처리할 때 사용됩니다. 예를 들어 iOS 메시지의 경우 SMS 및 iMessage 입니다. |
handle | 끈 | 대화의 두 번째 당사자이며 종종 메시징 앱에 고유한 식별자입니다. |
handle_name | 문자열, 선택 사항 | 사용 가능한 경우 핸들의 표시 이름입니다. |
contact | 중첩된 연락처, 선택 사항 | 대화의 두 번째 당사자의 iOS 연락처를 참조하는 개체입니다. |
conversation_id | 끈 | 대화별로 메시지를 그룹화하는 식별자입니다. |
from_me | 부울 | 메시지를 보냈는지 받았는지 여부입니다. |
user | 문자열, 선택 사항 | 여러 사용자/계정이 기기에서 메시징 앱을 사용 중인 경우 메시징 앱 사용자. |
text | 끈 | 메시지의 본문입니다. |
edits | 편집 목록, 선택 사항 | 메시지 편집이 지원되고 기록이 백업에 유지되는 앱의 메시지 내용 편집 목록입니다. |
translation | 번역 객체 (선택 사항) | 메시지가 iOS의 내장 번역 기능을 사용하여 번역된 경우 번역 데이터가 표시됩니다. |
attachments | 파일 목록, 선택 사항 | download_file 메서드와 함께 사용할 수 있는 file_id 값의 배열입니다. 메시지에 첨부 파일이 없으면 빈 배열이 반환됩니다. |
group | 문자열, 선택 사항 | 메시지가 전송된 시점의 그룹 이름입니다. |
group_id | 문자열, 선택 사항 | 해당 앱의 컨텍스트 내에서 그룹의 고유 식별자입니다. 정수가 아닐 수 있으며, 존재하는 경우 conversation_id 외에 정보만 제공합니다. |
group_handles | 문자열 목록, 선택 사항 | 이 값은 개인 간 메시지의 경우 null 이며 그룹 대화에서는 전화번호 또는 iMessage 이메일 주소를 나타내는 문자열 배열입니다. |
group_contacts | 문자열, 선택 사항 | 그룹의 iOS 연락처를 참조하는 개체 배열입니다. |
deleted | 부울, 선택 사항 | 메시지가 삭제되었는지 여부를 나타내는 부울 값입니다. |
marked_unread | 부울, 선택 사항 | 가능한 경우 사용자가 메시지를 읽지 않음으로 표시했는지 여부입니다. |
date | 날짜 시간 | 메시지를 보내거나 받은 시간입니다. |
date_read | 날짜/시간, 선택사항 | 가능한 경우 메시지를 처음 읽은 날짜입니다. |
date_edited | 날짜 시간, 선택 사항 | 해당되는 경우 메시지가 마지막으로 편집된 시간입니다. |
date_deleted | 날짜 시간, 선택 사항 | 메시지가 삭제된 경우(해당되는 경우). |
translation 속성
| 이름 | 유형 | 설명 |
|---|---|---|
translated_text | 끈 | 번역된 텍스트 내용. |
source_language | 끈 | 원래 언어 코드(예: en_US ). |
target_language | 끈 | 메시지가 번역된 언어(예: es_ES ). |
예
{
"id": "a1b2c3d4",
"data_type": "message",
"type": "SMS",
"handle": "reincubate",
"handle_name": "Reincubate",
"conversation_id": "w6x7y8z9",
"from_me": false,
"text": "Hi from London!",
"edits": [{
"text": "Hi!",
"date": "2023-06-27T10:20:00.000000Z"
}, {
"text": "Hi from London!",
"date": "2023-06-27T10:21:00.000000Z"
}],
"attachments": [],
"group_handles": [
"+441234567890",
"renate@reincubate.com"
],
"deleted": false,
"date": "2023-06-27T10:20:00.000000Z",
"date_edited": "2023-06-27T10:21:00.000000Z"
}
메시지 핸들 및 대화
API의 데이터 추출기는 역사적으로 광범위한 소스 데이터를 지원하며 시간이 지남에 따라 앱 및 iOS 업데이트를 통해 조각난 데이터를 재정렬하려고 시도합니다. 메시징 앱이 새로운 기능을 추가함에 따라 기본 데이터가 새 구조로 완벽하게 마이그레이션되도록 항상 주의를 기울이지는 않습니다. 따라서 API는 일관된 데이터를 반환하기 위해 특정 정보를 추론해야 합니다.
이러한 사례 중 하나는 메시징 앱, 특히 ios_messages.messages 데이터 모듈에서 반환된 핸들 및 대화 정보에 대한 것입니다. API는 해당 정보가 존재하거나 추론할 수 있는 경우 숫자 식별자로 conversation_id 를 채우거나, 제2자의 핸들을 사용하여 conversation_id 를 설정하도록 대체합니다. 따라서 이 필드를 사용하여 동일한 채팅의 메시지를 함께 묶는 것이 좋습니다.
수정 및 삭제된 메시지
편집 및 삭제된 메시지에 대한 정보는 iOS 16 이상을 실행하는 장치에서 만든 백업의 ios_messages.messages 에서 사용할 수 있습니다. 삭제된 메시지의 경우 백업이 생성된 시점( Apple에서는 삭제 후 30~40일) 에서 메시지를 복구할 수 있는 동안에만 정보를 사용할 수 있을 것으로 예상됩니다.
편집된 메시지의 경우 편집 기록이 edits 속성에 반환됩니다. 각 편집에는 text 상태와 편집이 커밋된 시간이 포함됩니다. 메시지 자체의 text 속성은 항상 최종 편집의 속성과 동일합니다.
번역된 메시지
iOS 26부터 사용 가능한 iOS의 내장 번역 기능을 사용하여 사용자가 수신 메시지를 번역하면 번역 데이터가 백업에 저장되고 translation 속성에 반환됩니다. 여기에는 다음이 포함됩니다.
- 번역된 텍스트 내용
- 원본 메시지의 원어
- 메시지가 번역된 대상 언어
언어 코드는 표준 로케일 형식을 따릅니다(예: en_US 는 미국 영어, es_ES 는 스페인어).
번역 데이터는 사용자가 기기에서 명시적으로 번역한 메시지에 대해서만 제공됩니다. 원문 메시지 텍스트는 항상 text 속성에 반환됩니다.
대화
대화 스레드.
| 이름 | 유형 | 설명 |
|---|---|---|
id | 끈 | 항목 ID. |
data_type | 문자열, 항상 conversation | 항목 데이터 유형 ID. |
group | 선택적 문자열 | 그룹의 이름입니다. |
members | contact 목록 | 대화 참가자. |
접촉
contact 속성
| 이름 | 유형 | 설명 |
|---|---|---|
id | 끈 | 항목 ID. |
data_type | 문자열, 항상 contact | 항목 데이터 유형 ID. |
name | 선택적 문자열 | 연락처의 전체 이름입니다. |
first_name | 선택적 문자열 | 연락처의 이름입니다. |
middle_name | 선택적 문자열 | 연락처의 중간 이름입니다. |
last_name | 선택적 문자열 | 연락처의 성입니다. |
prefix | 선택적 문자열 | 연락처의 이름 접두사입니다. |
suffix | 선택적 문자열 | 연락처의 이름 접미사입니다. |
nickname | 선택적 문자열 | 연락처의 닉네임입니다. |
records | contact.record 항목 목록 | 연락처와 연결된 연락처 레코드입니다. |
organisation | 선택적 문자열 | 연락처의 조직 이름입니다. |
department | 선택적 문자열 | 조직 내 연락처의 부서입니다. |
jobtitle | 선택적 문자열 | 조직 내 연락처의 직책입니다. |
birthday | 선택적 날짜 | 연락처의 생일입니다. |
contact.record 속성
연락처 레코드 항목에는 Phone , Email , URL , Social 및 Address 5 가지 유형이 있습니다. 전화 번호, 이메일 주소, 웹 사이트 URL, 소셜 미디어 계정 핸들 및 주소에 각각 해당합니다.
처음 4 개의 속성은 동일합니다.
| 이름 | 유형 | 설명 |
|---|---|---|
type | 끈 | Phone , Email , URL , Social 중 하나입니다. |
name | 선택적 문자열 | 레코드와 연결된 레이블입니다. |
value | 끈 | 레코드의 값입니다. |
Address 연락처 레코드 유형에는 추가 주소 필드가 있습니다.
| 이름 | 유형 | 설명 |
|---|---|---|
type | 문자열, 항상 Address | 전화번호 기록입니다. |
name | 선택적 문자열 | 번호와 관련된 레이블입니다. |
CountryCode | 선택적 문자열 | 국가 코드입니다. |
Country | 선택적 문자열 | 국가 이름입니다. |
ZIP | 선택적 문자열 | 우편 번호입니다. |
State | 선택적 문자열 | 주 이름 또는 약어입니다. |
City | 선택적 문자열 | 도시 이름입니다. |
Municipality | 선택적 문자열 | 시정촌 이름입니다. |
SubLocality | 선택적 문자열 | 이웃 또는 지역 이름. |
Street | 선택적 문자열 | 거리 주소 이름입니다. |
샘플 데이터
{
"id": "2cf6a837304d6614",
"data_type": "contact",
"first_name": "John",
"middle_name": "'Gala'",
"last_name": "Appleseed",
"prefix": "Mr.",
"suffix": "Jr.",
"nickname": "John'o",
"records": [
{
"type": "Phone",
"name": "MAIN",
"value": "1-800-MY-APPLE"
},
{
"type": "Phone",
"name": "UK",
"value": "0800 039 1010"
},
{
"type": "URL",
"name": "HOMEPAGE",
"value": "http://www.apple.com"
},
{
"type": "URL",
"name": "HOMEPAGE",
"value": "http://www.apple.com/uk/"
},
{
"City": "Cupertino",
"State": "CA",
"ZIP": "95014",
"name": "WORK",
"CountryCode": "US",
"Country": "United States",
"Street": "1 Infinite Loop",
"type": "Address",
"SubLocality": null,
"Municipality": null
}
],
"organisation": "Apple Inc.",
"department": "Marketing",
"jobtitle": "VP Juicing",
"birthday": "1976-04-01"
}
요구
call 속성
| 이름 | 유형 | 설명 |
|---|---|---|
id | 끈 | 항목 ID. |
data_type | 문자열, 항상 call | 항목 데이터 유형 ID. |
call_type | 끈 | 다음 중 하나: Phone , FaceTime Video , FaceTime Audio . |
address | 끈 | 통화 상대방입니다. 전화번호, Apple ID 또는 기타 식별자일 수 있습니다. 그룹 통화의 경우 통화를 시작한 사용자의 아이디와 관련됩니다. |
participants | 참가자 객체의 선택적 목록 | 그룹 통화의 경우, 모든 통화 참가자 목록이 표시됩니다. |
duration | 뜨다 | 통화 시간입니다. |
answered | 부울 | 전화를 받았는지 여부. |
from_me | 부울 | 통화가 발신 또는 수신되었는지 여부. |
video | 부울 | 영상 통화였는지 여부와 관계없이. |
date | 날짜 시간 | 전화를 걸었을 때. |
call.participant 속성
| 이름 | 유형 | 설명 |
|---|---|---|
handle | 끈 | 참가자와 연결된 식별자(예: 전화번호, WhatsApp ID, Apple ID 등) |
name | 선택적 문자열 | 이름은 손잡이와 관련이 있습니다. |
number | 선택적 문자열 | 해당 아이디와 연결된 전화번호입니다. |
answered | 부울 | 참가자가 전화를 받았는지 여부. |
샘플 데이터
{
"id": "24116c5b16b85217",
"data_type": "call",
"call_type": "Phone",
"address": "07123456789",
"participants": [{
"handle": "01234567890",
"number": "01234567890",
"answered": true
}, {
"handle": "09876543210",
"number": "09876543210",
"answered": false
}],
"duration": 5.131359,
"answered": true,
"from_me": true,
"video": false,
"date": "2015-07-20 10:23:27.538011"
}
행사
event 속성
| 이름 | 유형 | 설명 |
|---|---|---|
id | 끈 | 항목 ID. |
data_type | 문자열, 항상 event | 항목 데이터 유형 ID. |
unique_identifier | 선택적 문자열 | 여러 이벤트 데이터 소스에서 중복 제거를 위한 항목 UID입니다. |
calendar | 선택적 문자열 | 달력 이름. |
calendar_uid | 선택적 문자열 | 캘린더 UID. |
calendar_store | 선택적 문자열 | 캘린더 저장소 유형, 즉 iCloud , Default . |
summary | 선택적 문자열 | 이벤트 요약 또는 제목입니다. |
description | 선택적 문자열 | 이벤트 설명입니다. |
start_date | 선택적 날짜/시간 | 이벤트가 시작되면. |
end_date | 선택적 날짜/시간 | 이벤트가 종료되면. |
start_time_zone | 선택적 문자열 | start_date 의 시간대입니다. |
end_time_zone | 선택적 문자열 | end_date 의 timeone입니다. |
all_day | 부울 | 이벤트가 하루 종일 지속되는지 여부. |
travel_time | 선택적 기간 | 이벤트의 이동 시간 기간입니다. |
recurrence | 선택적 중첩 event.recurrence | 이벤트의 반복 설정입니다. |
location | 선택적 문자열 | 이벤트가 진행되는 곳입니다. |
start_location | 선택적 문자열 | 이벤트가 시작되는 곳. |
attendees | 선택적 문자열 목록 | 이벤트 참석자의 이름. |
attached_url | 선택적 문자열 | 이벤트와 연결된 URL입니다. |
creation_date | 선택적 날짜/시간 | 이벤트가 생성된 시간입니다. 공휴일과 같은 기본 캘린더 항목인 경우 설정되지 않습니다. |
event.recurrence 속성
| 이름 | 유형 | 설명 |
|---|---|---|
interval | 정수 | repeat 할 반복 횟수, 즉 1년마다(1년에 한 번). |
repeat | 끈 | OneTime , Daily , Weekly , Monthly , Yearly 중 하나입니다. |
repeat_end_date | 선택적 날짜/시간 | 반복을 멈출 때. |
샘플 데이터
{
"id": "3",
"unique_identifier": "f5fcf872-34f6-3f60-ba03-74d5a7a3bbbb",
"calendar": "Home",
"calendar_id": "477a2001537fe178d6b77cdceb8bac2e",
"calendar_store": "Default",
"summary": "Christmas Day",
"description": "Bank holiday in the UK",
"start_date": "2017-12-25T00:00:00.000000",
"end_date": "2017-12-25T23:59:59.000000",
"start_time_zone": None,
"end_time_zone": None,
"all_day": True,
"travel_time": None,
"recurrence": {
"interval": 1,
"repeat": "Yearly",
"repeat_end_date": None,
"specifier": ""
},
"location": None,
"start_location": None,
"attendees": ["John Appleseed"],
"attached_url": None,
"creation_date": None
}
노트
{
"title": "Monday meeting:",
"note": "Monday meeting:\n Discuss X,\n discuss Y.",
"summary": null,
"folder": "icloud",
"sub_folder": "work",
"attachments": [
{
"type": "image",
"file_id": "8e22cf6e524357b4eb3da775d193072ebba9543f",
"file_path": "Media/80DDDEAD-B33F-37B2-7219432C0359/Image.jpeg"
}
],
"creation_date": "2016-06-06 13:23:20.000000",
"last_modified": "2016-06-07 15:21:25.000000"
}
방문
웹 사이트 페이지 방문 기록.
속성
| 이름 | 유형 | 설명 |
|---|---|---|
data_type | 문자열, 항상 visit | 항목 데이터 유형 ID. |
url | 끈 | 방문한 페이지의 URL입니다. |
title | 끈 | 방문한 페이지의 제목입니다. |
date_created | 날짜 시간 | 방문이 발생한 시기. |
{
"data_type": "visit",
"url": "https://reincubate.com/",
"title": "Reincubate: the app data company",
"date_created": "2020-01-01T00:00:00.000000Z"
}
쿠키
HTTP 쿠키.
속성
| 이름 | 유형 | 설명 |
|---|---|---|
data_type | 문자열, 항상 cookie | 항목 데이터 유형 ID. |
name | 끈 | 쿠키의 이름입니다. |
value | 끈 | 쿠키의 값입니다. |
domain | 끈 | 쿠키의 도메인 지정자입니다. |
path | 끈 | 쿠키의 경로 지정자입니다. |
flags | 끈 | 쿠키에 설정된 모든 플래그입니다. |
creation_date | 날짜 시간 | 쿠키가 생성된 시기입니다. |
expiry_date | 날짜 시간 | 쿠키가 만료될 때. |
{
"data_type": "cookie",
"name": "sample_cookies",
"value": "sample_value",
"domain": "reincubate.com",
"path": "/",
"flags": "",
"creation_date": "2020-01-01T00:00:00.000000Z",
"expiry_date": "2020-01-01T00:00:00.000000Z"
}
위치
데이터 속성
| 이름 | 유형 | 설명 |
|---|---|---|
data_type | 문자열, 항상 location | 데이터 유형 식별자. |
latitude | 뜨다 | 위치의 위도 좌표입니다. |
longitude | 뜨다 | 위치의 경도 좌표입니다. |
altitude | 뜨다 | 위치의 고도 좌표입니다. |
horizontal_accuracy | 뜨다 | 측정의 수평 정확도입니다. |
vertical_accuracy | 뜨다 | 측정의 수직 정확도입니다. |
position_type | 끈 | 사용된 측정 방법의 식별자입니다. |
date_created | 날짜 시간 | 측정이 이루어진 때. |
샘플 데이터
{
"data_type": "location",
"latitude": 51.507452392689146,
"longitude": -0.07398372304584414,
"altitude": 0.0,
"horizontal_accuracy": 65.0,
"vertical_accuracy": 0.0,
"positioning_type": "Wifi",
"date_created": "2020-01-01T00:00:00.000000Z"
}
음성메일
기기에서 녹음된 음성 메시지를 나타냅니다.
속성
| 이름 | 유형 | 설명 |
|---|---|---|
rowid | 정수 | 데이터베이스 내에서 음성 메일을 고유하게 식별하는 식별자입니다. |
filename | 끈 | 음성 메시지가 담긴 오디오 파일의 이름입니다. |
file_id | 끈 | API에서 오디오 파일을 요청할 때 사용되는 식별자입니다. |
file_path | 끈 | 백업 파일을 기준으로 한 음성 메일 파일의 경로입니다. |
date | 끈 | 음성메일 수신 날짜 및 시간(ISO 8601 형식). |
token | 끈 | 음성 메일의 상태 토큰(예: "완료"). |
sender | 끈 | 음성 메시지를 남긴 발신자의 전화번호입니다. |
callback_num | 끈 | 음성메일에 연결된 콜백 번호입니다. |
duration | 정수 | 음성 메시지 재생 시간(초). |
expiration | 문자열, 선택 사항 | 음성메일 만료일(ISO 8601 형식). |
trashed_date | 문자열 또는 정수 | 음성메일이 휴지통으로 이동된 날짜 또는 이동되지 않은 경우 0 . |
flags | 정수 | 음성 메일과 관련된 시스템 플래그입니다. |
sim_slot | 문자열, 선택 사항 | 멀티 SIM 기기의 SIM 슬롯 식별자(예: "A-98ACC814-BDB0-51F8-A098-CB63A6A60E9F")입니다. 싱글 SIM 기기 또는 기본 SIM 슬롯의 경우 null . |
예
{
"rowid": 50,
"filename": "50.amr",
"file_id": "4ff0327d0148e7fa175a12f5a25ed7148a29de6d",
"file_path": "Library/Voicemail/50.amr",
"date": "2024-01-15 14:30:00.000000",
"token": "Complete",
"sender": "+123456789",
"callback_num": "+123456789",
"duration": 45,
"expiration": "2024-02-14 14:30:00.000000",
"trashed_date": 0,
"flags": 3,
"sim_slot": null
}
예시 (다중 SIM 기기)
{
"rowid": 28,
"filename": "28.amr",
"file_id": "a1b2c3d4e5f6...",
"file_path": "Library/Voicemail/A-98ACC814-BDB0-51F8-A098-CB63A6A60E9F/28.amr",
"date": "2024-01-15 14:30:00.000000",
"token": "Complete",
"sender": "+123456789",
"callback_num": "+123456789",
"duration": 30,
"expiration": "2024-02-14 14:30:00.000000",
"trashed_date": 0,
"flags": 3,
"sim_slot": "A-98ACC814-BDB0-51F8-A098-CB63A6A60E9F"
}