[android] Visual Voicemail
http://source.android.com/devices/tech/config/voicemail.html
-
Android 6.0 (MOS) 부터 VVM (Visual Voice Mail) 가 Dialer 에 통합되어 나왔다.
VVM 은 user 가 voicemail 을 phone call 없이 확인할 수 있게 만든다.
User 는 message list 를 볼 수 있고, 어떤 순서로든 들을 수 있고, 원한다면 삭제도 가능하다.
-
Android 7.0 (NOS) 부터는 다음과 같은 config param 이 추가되었다.
Prefetching voicemail : KEY_VVM_PREFETCH_BOOLEAN
Celluar data connection : KEY_VVM_CELLUAR_DATA_REQUIRED_BOOLEAN
Voicmail transcription fetch
Voicemail quota fetch
VVM Client
-
Android 6.0 (MOS) 이상부터는 VVM client 가 들어가 있다.
이 녀석은 설정이 잘 되어있다면 AOSP Dialer 를 통해 Carrier VVM server 에 접속하여 voicemail message 를 수집해온다.
VVM client 는 다음과 같은 일을 한다.
SMS message 를 관리한다.
IMAP server 와 mailbox 를 sync 한다.
voice mail 을 download 한다. ( user 가 골랐을 때 )
voicemail 의 transcription 을 fetch
voicemail quota fetch
dialer 에 통합 (call back, 미확인 메시지 보기, 메시지 삭제)
Integrate with the VVM Client
-
Carrier 는 OMTP(Open Mobile Terminal Platform) VVM spec 을 따르는 VVM server 를 제공해야 한다.
현재의 AOSP VVM client 는 core feature 인 읽기, 삭제하기, 다운로드, 싱크, 듣기 기능을 제공하며,
비밀번호 변경, VM 인사, 언어 등은 제공하지 않는다.
현재는 OMTP version 1.1 만 제공하며 IMAP auth 에는 암호화를 제공하지 않는다.
transcription 을 제공하기 위해서는 transcript attachment format 인 MIME type plain/text 를 OMTP 1.3 spec item 2.1.3 에 맞춰 구현해야 한다.
-
VVM service 통합을 위해서는 Carrier 는 VVM client 가 사용할 다음의 파라미터들을 반드시 제공해야 한다.
SMS 의 destination number, port number
carrier 가 제공하는 visual voicemail app package name
위의 값들은 Carrier Config API 를 통해 제공할 수 있다.
아래 key 들이 정의되어야 한다.
KEY_VVM_DESTINATION_NUMBER_STRING
KEY_VVM_PORT_NUMBER_INT
KEY_VVM_TYPE_STRING
KEY_CARRIER_VVM_PACKAGE_NAME_STRING
KEY_VVM_PREFETCH_BOOLEAN
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
Implementation
-
OMTP VVM client 는 packages/services/Telephony 와 src/com/android/phone/vvm 에 구현되어 있다.
-
여러가지 설정을 통해 Setup, Syncing, Voicemail download, Disabling VVm, User interaction, SIM removal, Replaced by carrier VVM 등에 대한 대응을 해야 하며,
이에 대한 자세한 내용은 위 ref doc 을 참조하시길..
'프로그래밍 놀이터 > 안드로이드, Java' 카테고리의 다른 글
[android] Resource Merging 에 대한 이야기.. (0) | 2018.03.06 |
---|---|
[android] ArrayMap 과 SparseArray 를 이용한 최적화 (0) | 2018.03.05 |
[android] ConstraintLayout Tutorial (0) | 2018.03.03 |
[android] Bundled Notification Tutorial (3) | 2018.03.02 |
[android] Messaging Style Notification Tutorial (0) | 2018.03.01 |
댓글