Project

General

Profile

Issue #1011

Feature #1485: Samsung-RIL missing features

USSD codes don't work

Added by dl lud over 4 years ago. Updated 23 days ago.

Status:
In Progress
Priority:
Normal
Category:
Telephony and mobile data
Target version:
Start date:
10/30/2014
Due date:
% Done:

0%

Resolution:
Device:

Description

As reported on bug #32 USSD codes aren't working on Replicant 4.2. I get:
Connection problem or invalid MMI code.

libsamsung-ril-i9300.so (190 KB) Wolfgang Wiedmeyer, 06/04/2017 03:35 PM

libsamsung-ril-i9300.so.asc (819 Bytes) Wolfgang Wiedmeyer, 06/04/2017 03:35 PM

libsamsung-ril-i9100.so (190 KB) Wolfgang Wiedmeyer, 06/04/2017 03:35 PM

libsamsung-ril-i9100.so.asc (819 Bytes) Wolfgang Wiedmeyer, 06/04/2017 03:35 PM

libsamsung-ril-n7100.so (190 KB) Wolfgang Wiedmeyer, 06/04/2017 03:35 PM

libsamsung-ril-n7100.so.asc (819 Bytes) Wolfgang Wiedmeyer, 06/04/2017 03:35 PM

adb logcat -b radio.txt.asc - Output of the radio buffer. Encrypted to Adonay Felipe Nogueira, Wolfgang Wiedmeyer and Denis 'GNUtoo' Carikli. (152 KB) Adonay Felipe Nogueira, 06/23/2019 11:35 PM

History

#1 Updated by David K almost 4 years ago

I have the same issue on an i9300 running replicant 4.2.
Is there a known way to get it working yet?
Without this feature querying the network operator for remaining prepaid credit might be somewhat difficult.

#2 Updated by My Self almost 4 years ago

I have the same issue on my i9100, running Replicant 4.2 (compiled with the current codebase).
Error: Connection problem or invalid MMI code.
Logcat:
[I] Diesplayed com.android.phone...
[D] placeCall()... intent = Intent {act=android.intent.action.CALL dat=tel:xxxxx (has extras) }
[D] System property doesn't provide any emergency numbers. Use embedded logic for determining ones.
[D] placeCall()... number: xxxxx, GW: null, emergency? false
[D] ==> placeCall(): failure code from placeCallInternal(): DIALED_MMI
[I] Start u0 {act=android.intent.action.MAIN...}

It would be really great if this functionality could be provided in the future.

It's a hassle to
  • check my prepaid-balance or
  • charge my prepaid-credit or
  • manage call forwardings
    (because the alternative way over the Phone app -> Call settings -> Call forwarding doesn't work for me neither, with the error: Call settings error: Network or SIM card error.)
  • you name it...

This kind of things are most comfortable (especially en route) over USSD codes...
So I would be really happy if somebody could help here in any way.

#3 Updated by Paul Kocialkowski almost 4 years ago

Well, there is no USSD support at all in Samsung-RIL. Some early work was done a while back but it was unclean and I couldn't merge it back when rewriting Samsung-RIL, last summer. This situation is due to the fact that my operator doesn't use USSD, so I have no way to test it myself. If someone was to provide logs of USSD in action on e.g. CyanogenMod 10.1, I could consider adding support for it. This will also involve testing binaries.

Development like this will be long and painful, but I don't really see any other solution…

#4 Updated by Denis 'GNUtoo' Carikli over 3 years ago

  • Device set to Multiple devices

#5 Updated by Kurtis Hanna over 2 years ago

  • Target version changed from Replicant 4.2 to Replicant 6.0
  • Device deleted (Multiple devices)

#6 Updated by Wolfgang Wiedmeyer over 2 years ago

  • Assignee changed from Paul Kocialkowski to Wolfgang Wiedmeyer

#7 Updated by Wolfgang Wiedmeyer about 2 years ago

  • Target version changed from Replicant 6.0 to Any version
  • Parent task set to #1485

#8 Updated by Wolfgang Wiedmeyer about 2 years ago

Support for USSD messages was added with this commit (WIP feature branch)

For testing purposes, I attached RILs for Galaxy S2, S3 and Note 2. You can test them on your device in the following way:
  1. Download *.so and *.asc file for your device
  2. Verify the signature:
    gpg --armor --verify path/to/libsamsung-ril-YOUR_DEVICE.so.asc path/to/libsamsung-ril-YOUR_DEVICE.so
    

    It should have the signature of the Replicant 6.0 release key.
  3. Set up ADB and make sure it's running as root
  4. Install the new RIL:
    adb remount
    adb push path/to/libsamsung-ril-YOUR_DEVICE.so /system/lib/libsamsung-ril.so
    adb shell killall rild
    

#9 Updated by Daniel Kulesz about 2 years ago

Sounds great! Will all USSD codes be supported or is it limited to some? Especially, is #31# support to work? (used for supressing caller-id)

#10 Updated by Wolfgang Wiedmeyer about 2 years ago

All general USSD messages should work. These are the ones that use RIL_REQUEST_SEND_USSD. There are some codes that have their own requests and these won't work with this patch. These requests need their own implementations. You can search the table on the Samsung-RIL page for the names of those. For caller id, I'd guess that RIL_REQUEST_SET_CLIR and RIL_REQUEST_GET_CLIR are needed. These are still missing.

#11 Updated by Adonay Felipe Nogueira 23 days ago

dl lud wrote:

As reported on bug #32 USSD codes aren't working on Replicant 4.2. I get:
Connection problem or invalid MMI code.

As I said to Kurtis Hanna in IRC, I'm using Samsung Galaxy Note II (GT-N7100) with Replicant 6.0.1 0003 (build date: 2017-12-10T16:07:40-00:00), and I have pre-paid plan with a Brazilian carrier called TIM CELULAR S.A.. They provide a phone number (*222#) that when called should give a text popup saying the number of credits available. However, calling such number gives "Connection problem or invalid MMI code" (of course localized to Brazilian portuguese). Attached is the output of adb logcat -b radio. Besides, this log is encrypted both to Wolfgang Wiedmeyer and to Denis 'GNUtoo' Carikli as suggested by Jeremy_Rand_Talo in IRC due to allegations that Wolfgang Wiedmeyer is currently not active in the project and since the radio log has sensible information.

---
Update: My home page is at https://libreplanet.org/wiki/User:Adfeno#vCard and it tells where to get my OpenPGP key.

Also available in: Atom PDF