Visual Voicemail Server
Supports GSMA TS.46 for Visual Voicemail
Activating on Android
From ADB we need to enable the VVM related keys:
adb shell
su
adb shell cmd phone cc set-value vvm_destination_number_string "123"
adb shell cmd phone cc set-value vvm_ssl_enabled_bool false
adb shell cmd phone cc set-value vvm_type_string "vvm_type_omtp"
Your Android Carrier config should look like:
vvm_cellular_data_required_bool BOOLEAN false
vvm_client_prefix_string STRING "//VVM"
vvm_destination_number_string STRING "123"
vvm_disabled_capabilities_string_array STRING_ARRAY null
vvm_legacy_mode_enabled_bool BOOLEAN false
vvm_port_number_int INT 0
vvm_prefetch_bool BOOLEAN true
vvm_ssl_enabled_bool BOOLEAN false
vvm_type_string STRING "vvm_type_omtp"
Android logcat should include something like:
TUI$VVM.VisualVmProtocol: startActivation requestVvmActivation
09-25 09:41:33.927 1503 1751 D RemoteVvmTaskManager: getRemotePackage - pkg : com.samsung.android.dialer
09-25 09:41:33.927 1503 1751 D RemoteVvmTaskManager: getRemotePackage - pkg :
09-25 09:41:33.927 1503 1751 D RemoteVvmTaskManager: getRemotePackage - pkg :
09-25 09:41:33.928 1503 1751 D RemoteVvmTaskManager: getRemotePackage - pkg : com.samsung.android.dialer
09-25 09:41:33.928 1503 1751 D RemoteVvmTaskManager: getRemotePackage - pkg : com.samsung.android.app.telephonyui
09-25 09:41:33.928 1503 1751 D RemoteVvmTaskManager: componentInfo.packageName : com.samsung.android.app.telephonyui componentInfo.name com.android.voicemail.impl.OmtpService
09-25 09:41:33.929 1503 1751 D VisualVoicemailSmsFilterConfig: getActiveVisualVoicemailSmsFilterSettings - packageName:com.samsung.android.app.telephonyui, subId:4
09-25 09:41:33.929 1503 1751 D VisualVoicemailSmsFilterConfig: getVisualVoicemailSmsFilterSettings - enabled_key:true, packageName:com.samsung.android.app.telephonyui, subId:4
09-25 09:41:33.929 1503 1751 D Settings: GET name: multi_sim_sms, value: 4, callingPackage: com.android.phone (Cached)
09-25 09:41:33.930 1503 1751 D Settings: GET name: multi_sim_sms, value: 4, callingPackage: com.android.phone (Cached)
09-25 09:41:33.931 1503 1751 I VvmSmsFilter: VVM SMS received
09-25 09:41:33.932 1503 1751 D TP/SmsProvider: delete, uri=content://sms/raw, calling pid = 1503
09-25 09:41:34.004 12582 12582 I OmtpVvmCarrierCfgHlpr: telephonyConfig is null
09-25 09:41:34.004 12582 12582 I OmtpVvmCarrierCfgHlpr: vvmType = vvm_type_omtp
09-25 09:41:34.004 12582 12582 I OmtpVvmCarrierCfgHlpr: isTmoMpcsCarrierPackage() : false
09-25 09:41:34.004 12582 12582 I OmtpVvmCarrierCfgHlpr: isTmoMpcsCarrierPackage() : false
09-25 09:41:34.004 12582 12582 I UT.SimInfo: isSimOperator(313380)
09-25 09:41:34.004 12582 12582 V UT.SimInfo: FRANCE_ORANGE.isInsertedSim[slot0] isInsertedSim = false
09-25 09:41:34.004 12582 12582 I UT.SimInfo: isSimOperator(313380)
09-25 09:41:34.004 12582 12582 V UT.SimInfo: BELGIUM_ORANGE.isInsertedSim[slot0] isInsertedSim = false
09-25 09:41:34.004 12582 12582 I OmtpVvmCarrierCfgHlpr: getCarrierVvmPackageNames() : bundle is null
09-25 09:41:34.004 12582 12582 I OmtpVvmCarrierCfgHlpr: getCarrierVvmPackageNamesWithoutValidation : case 2 = {}
09-25 09:41:34.005 12582 12582 I OmtpVvmCarrierCfgHlpr: isCarrierAppInstalled() : false
09-25 09:41:34.005 12582 12582 I OmtpVvmCarrierCfgHlpr: isEnabledByDefault() : true
You should then see an SMS sent by the phone to the vvm_destination_number_string:
*************************** 7. row ***************************
message_id: 253
send_time: 2023-09-25 09:28:38
deliver_time: NULL
expires: 2023-09-26 09:28:38
deadletter: NULL
source_msisdn: 19078720155
destinatination_msisdn: 6666123
message_body: Activate:pv=11;ct=samsung.SM-A536E.13
This tells us the SM-A536E wants to activate VVM supporting version 1.1 of the protocol.
Now we send the SMS STATUS message to inform the device it's provisioned, this puts the credentials into the UE to access, etc.
Now you should start seeing IMAP traffic.