돼지왕 왕돼지 2018. 3. 4. 08:30
반응형

[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 을 참조하시길..




반응형