libmm-glib: call_deleted signal not working properly
I'm using libmm-glib with python to interact with ModemManager (similar to the ModemWatcher.py example) and trying to register and track (arriving) calls.
As soon as a new modem is found by ModemManager I connect/subscribe to several signals - for example to receive new calls I use this code-snippet:
call_added_id = obj.get_modem_voice().connect('call_added', self.on_call_added, obj)
The above callback for call_added works as expected. When subscribing the same way to the call_deleted signal I would expect to get notified as soon as the caller stops calling/hangs up the call which does not work. I also tried receiving callstate-updates by subscribing to the calls array using the notify option:
call_notify_id = obj.get_modem_voice().connect('notify::calls', self.on_call_notify, obj)
Again my callback is being executed during call creation but not when the call is dropped/terminated.
I also checked the debug output of ModemManager when I was having this issue:
When I started to call the modem:
ModemManager[23329]: <debug> [1568291924.889933] (ttyUSB0): <-- '<CR><LF>+CRING: VOICE<CR><LF><CR><LF>+CLIP: "+43699********",145,,,,0<CR><LF>'
ModemManager[23329]: <debug> [1568291924.890059] Creating new incoming call...
ModemManager[23329]: <info> [1568291924.890452] Call state changed: unknown -> ringing-in (incoming-new)
ModemManager[23329]: <debug> [1568291924.890513] Setting up in-call unsolicited events...
ModemManager[23329]: <debug> [1568291924.890759] Added CALL at '/org/freedesktop/ModemManager1/Call/0'
ModemManager[23329]: <debug> [1568291924.891093] Ringing (VOICE)
ModemManager[23329]: <debug> [1568291924.891228] (ttyUSB2): <-- '<CR><LF>+CRING: VOICE<CR><LF><CR><LF>+CLIP: "+43699********",145,,,,0<CR><LF>'
ModemManager[23329]: <debug> [1568291924.891305] Ringing (VOICE)
ModemManager[23329]: <debug> [1568291925.005931] (ttyUSB2): <-- '<CR><LF>^ECCLIST: 112,911,122,133,140,144<CR><LF>'
ModemManager[23329]: <debug> [1568291925.020940] (ttyUSB0): <-- '<CR><LF>^ECCLIST: 112,911,122,133,140,144<CR><LF>'
ModemManager[23329]: <debug> [1568291925.552104] (ttyUSB2): <-- '<CR><LF>^MODE: 5,4<CR><LF>'
ModemManager[23329]: <debug> [1568291925.552238] Access Technology: 'umts'
ModemManager[23329]: <debug> [1568291925.552337] Modem /org/freedesktop/ModemManager1/Modem/0: access technology changed (lte -> umts)
ModemManager[23329]: <debug> [1568291925.552444] (ttyUSB2): <-- '<CR><LF>+CGREG: 5,"426F","00000000",2<CR><LF>'
ModemManager[23329]: <debug> [1568291925.553498] (ttyUSB2): <-- '<CR><LF>^RSSI: 17<CR><LF>'
ModemManager[23329]: <debug> [1568291925.553590] 3GPP signal quality: 54
ModemManager[23329]: <debug> [1568291925.553694] Modem /org/freedesktop/ModemManager1/Modem/0: signal quality updated (54)
ModemManager[23329]: <debug> [1568291925.554603] (ttyUSB2): <-- '<CR><LF>^HCSQ: "WCDMA",47,43,57<CR><LF>'
ModemManager[23329]: <debug> [1568291925.556992] (ttyUSB0): <-- '<CR><LF>^MODE: 5,4<CR><LF><CR><LF>+CGREG: 5,"426F","00000000",2<CR><LF><CR><LF>^RSSI: 17<CR><LF><CR><LF>^HCSQ: "WCDMA",47,43,57<CR><LF>'
ModemManager[23329]: <debug> [1568291925.557268] Access Technology: 'umts'
ModemManager[23329]: <debug> [1568291925.557329] 3GPP signal quality: 54
ModemManager[23329]: <debug> [1568291925.557405] Modem /org/freedesktop/ModemManager1/Modem/0: signal quality updated (54)
ModemManager[23329]: <debug> [1568291929.757431] (ttyUSB0): <-- '<CR><LF>+CRING: VOICE<CR><LF><CR><LF>+CLIP: "+43699********",145,,,,0<CR><LF>'
ModemManager[23329]: <debug> [1568291929.757602] Ringing (VOICE)
ModemManager[23329]: <debug> [1568291929.757706] (ttyUSB2): <-- '<CR><LF>+CRING: VOICE<CR><LF><CR><LF>+CLIP: "+43699********",145,,,,0<CR><LF>'
ModemManager[23329]: <debug> [1568291929.757764] Ringing (VOICE)
When I dropped the call:
ModemManager[23329]: <debug> [1568291932.002296] (ttyUSB2): <-- '<CR><LF>^CEND: 1,0,104,16<CR><LF>'
ModemManager[23329]: <debug> [1568291932.002404] Call id '1' terminated with status '104' and cause '16'. Duration of call '0'
ModemManager[23329]: <info> [1568291932.002461] Call state changed: ringing-in -> terminated (terminated)
ModemManager[23329]: <debug> [1568291932.002491] Cleaning up in-call unsolicited events...
ModemManager[23329]: <debug> [1568291932.002838] (ttyUSB0): <-- '<CR><LF>^CEND: 1,0,104,16<CR><LF>'
ModemManager[23329]: <debug> [1568291933.717766] (ttyUSB2): <-- '<CR><LF>^MODE: 5,4<CR><LF>'
ModemManager[23329]: <debug> [1568291933.717887] Access Technology: 'umts'
ModemManager[23329]: <debug> [1568291933.718007] (ttyUSB2): <-- '<CR><LF>+CREG: 5,"426F","00011303",7<CR><LF>'
ModemManager[23329]: <debug> [1568291933.718137] Modem /org/freedesktop/ModemManager1/Modem/0: 3GPP location updated (MCC: '232', MNC: '1', Location area code: '0', Tracking area code: '426F', Cell ID: '11303')
ModemManager[23329]: <debug> [1568291933.719016] (ttyUSB2): <-- '<CR><LF>+CGREG: 5,"426F","00011303",7<CR><LF>'
ModemManager[23329]: <debug> [1568291933.719171] Modem /org/freedesktop/ModemManager1/Modem/0: 3GPP location updated (MCC: '232', MNC: '1', Location area code: '426F', Tracking area code: '0', Cell ID: '11303')
ModemManager[23329]: <debug> [1568291933.721899] (ttyUSB0): <-- '<CR><LF>^MODE: 5,4<CR><LF><CR><LF>+CREG: 5,"426F","00011303",7<CR><LF><CR><LF>+CGREG: 5,"426F","00011303",7<CR><LF>'
ModemManager[23329]: <debug> [1568291933.722002] Access Technology: 'umts'
ModemManager[23329]: <debug> [1568291933.722136] Modem /org/freedesktop/ModemManager1/Modem/0: 3GPP location updated (MCC: '232', MNC: '1', Location area code: '0', Tracking area code: '426F', Cell ID: '11303')
ModemManager[23329]: <debug> [1568291933.722189] Modem /org/freedesktop/ModemManager1/Modem/0: 3GPP location updated (MCC: '232', MNC: '1', Location area code: '426F', Tracking area code: '0', Cell ID: '11303')
ModemManager[23329]: <debug> [1568291933.844673] (ttyUSB2): <-- '<CR><LF>^ECCLIST: 112,911,122,133,140,144<CR><LF>'
ModemManager[23329]: <debug> [1568291933.844936] (ttyUSB0): <-- '<CR><LF>^ECCLIST: 112,911,122,133,140,144<CR><LF>'
ModemManager[23329]: <debug> [1568291934.471329] (ttyUSB2): <-- '<CR><LF>^RSSI: 18<CR><LF><CR><LF>^HCSQ: "LTE",45,35,141,20<CR><LF>'
ModemManager[23329]: <debug> [1568291934.471553] 3GPP signal quality: 58
ModemManager[23329]: <debug> [1568291934.471674] Modem /org/freedesktop/ModemManager1/Modem/0: signal quality updated (58)
ModemManager[23329]: <debug> [1568291934.472034] (ttyUSB0): <-- '<CR><LF>^RSSI: 18<CR><LF><CR><LF>^HCSQ: "LTE",45,35,141,20<CR><LF>'
ModemManager[23329]: <debug> [1568291934.472195] 3GPP signal quality: 58
ModemManager[23329]: <debug> [1568291934.472279] Modem /org/freedesktop/ModemManager1/Modem/0: signal quality updated (58)
ModemManager[23329]: <info> [1568291940.131324] incoming call timed out: no response
Any idea why the callback does not work or any other suggestion how I could track callstate transitions?