answered
2015-01-14 00:27:02 +0200
I may have found the problem source while digging into oFono.
Can anyone with this problem confirm they have the same behavior, and people without it confirm it works differently with their operator ?
So, basically, when I leave a message in the voicemail, I see this DBus signal :
signal sender=:1.14 -> dest=(null destination) serial=15213 path=/ril_0; interface=org.ofono.MessageWaiting; member=PropertyChanged
string "VoicemailWaiting"
variant boolean true
Calling the voicemail to delete the message generates this new signal:
signal sender=:1.14 -> dest=(null destination) serial=15192 path=/ril_0; interface=org.ofono.MessageWaiting; member=PropertyChanged
string "VoicemailWaiting"
variant boolean false
So, here is what we are looking for. The voicemail message is signaled through this interface, but nothing happens in the upper layers.
Digging a bit more, I can see something strange here. If I request the properties of the "message waiting" interface, the boolean is ok, but not the message count which stays at zero (there was 2 new unread message in the voicemail while doing this):
[nemo@Jolla ~]$ dbus-send --system --type=method_call --print-reply --dest=org.ofono /ril_0 org.ofono.MessageWaiting.GetProperties
method return sender=:1.14 -> dest=:1.3016 reply_serial=2
array [
dict entry(
string "VoicemailWaiting"
variant boolean true
)
dict entry(
string "VoicemailMessageCount"
variant byte 0
)
dict entry(
string "VoicemailMailboxNumber"
variant string "660"
)
]
Can this be the problem ? phone looking at (messageCount != 0) and not (waiting==true) to display the voicemail icon ?
Jolla, @cybette : can we solve this together ? Let me know what more I can do to finally close this ticket, or give me the name of the sailor that would know what to do on this. Thanks.
Update (20/01/2015):
I am reaching the proof of concept app to show how to make it "work" (may not be solving the real problem, but making it work despites it), using the following code (libqofono-qt5 needed):
// Create Ofono manager, and get list of modems
QOfonoManager* manager = new QOfonoManager(this);
QStringList modems = manager->modems();
// Create the interesting part for voicemail management : QOfonoMessageWaiting
QOfonoMessageWaiting* omw = new QOfonoMessageWaiting(this);
omw->setModemPath(modems.at(0)); // Attach to the first and only modem on Jolla Phone ("/ril_0" for me)
// To register for next event (voicemail being emptied or at least a voicemail being unread) :
connect(omw,SIGNAL(voicemailWaitingChanged(bool)), this, SLOT(voicemailWaitingChanged(bool)));
// To avoid missing message at startup, simulate a change with the initial value
voicemailWaitingChanged(omw->voicemailWaiting());
// By the way omw->voicemailMailboxNumber() can be checked to get the phone number to call the voicemail, if needed in the action when pressing the notification
You then simply have to put the code in the slot voicemailWaiting() to handle the state of the icon.
This can be done with QML in the same way, but I don't know it enough yet to be able to do it as fast as in C++, so I anyone want to help on this (QML could be more easily intergrated in lockscreen as a patch), feel free to help me.
@cybette, or other sailors from Jolla, Any thoughts about doing this ? Still no ETA on your side ?
Update 2:
Finally, it works !!!!
This is the patch for the lockscreen (ugly as hell graphically, but it shows the icon !) :
--- /usr/share/lipstick-jolla-home-qt5/lockscreen/Lockscreen.qml.orig 2015-01-20 20:55:32.224928108 +0100
+++ /usr/share/lipstick-jolla-home-qt5/lockscreen/Lockscreen.qml 2015-01-20 22:22:28.496361601 +0100
@@ -12,6 +12,7 @@
import org.nemomobile.time 1.0
import "../notifications"
import "../scripts/desktop.js" as Desktop
+import MeeGo.QOfono 0.2
MouseArea {
id: lockScreen
@@ -254,6 +255,20 @@
anchors.bottom: clock.top
}
+ OfonoManager { id: ofonoManager }
+
+ OfonoMessageWaiting {
+ id: ofonoMessageWaiting
+ modemPath: ofonoManager.modems.length > 0 ? ofonoManager.modems[0] : ""
+ }
+
+ Image {
+ anchors.bottom: clock.top
+ source: "/usr/share/themes/jolla-ambient/meegotouch/icons/icon-lock-voicemail.png"
+ visible: ofonoMessageWaiting.voicemailWaiting
+ }
+
+
SneakPeekHint {
id: sneakPeekHint
}
Still looking for a feedback from Jolla about how it should have been done correctly by me graphically (I used what I found to show it...), and for a real solution (with notification led, ...). @cybette : are you around ?
From now on, I will create a thread in TMO to continue this, and see how we can propose this as a patch in patch manager through warehouse....
Update 3:
Patch is uploaded on openrepos:
https://openrepos.net/content/zeta/p...l-notification
You can now download it directly from warehouse (search for "voicemail") and apply it with patch-manager !
Same here - I usually receive a text message telling me that someone left me a voicemail. If I remove my SIM card and put it in another phone (Android / iPhone / basic Nokia), I do receive this text notification. Quite annoying, as I have to call my VM to check if someone left me a VM...
cartron ( 2014-01-02 17:27:52 +0200 )editi just tested it, i get a sms with voicemail notice .. maybe it is a operator thing. i am on T-mobile
teun ( 2014-01-02 17:50:18 +0200 )edit@teun: Yes nothing coming from the OS apparently. Android, iOS, BB10 or WP8 (to verify) delivers a sytem notification. It looks like Sailfish OS doesn't.
juju_des_highlands ( 2014-01-02 17:53:23 +0200 )editI also have wp8, this also gives me only the sms, I will check gf's Iphone.
teun ( 2014-01-02 17:57:29 +0200 )editOnly familiair with sms notification coming from my provider, just like I had on the N9 and those still work. On Simyo (KPN) in the Netherlands.
Jarno ( 2014-01-03 09:52:54 +0200 )edit