ModemManager doesn't realize that the other party has terminated a call
With BM818, libqmi 1.24.2 and MM 1.12.2:
ModemManager[3554]: <debug> [1579325102.744369] (ttyUSB1): <-- '<CR><LF>+CLCC: 1,1,0,1,0,"",128<CR><LF>+CLCC: 2,0,0,0,0,"666666666",129<CR><LF><CR><LF>OK<CR><LF>'
ModemManager[3554]: <debug> [1579325102.744751] Reported 2 ongoing calls
ModemManager[3554]: <debug> [1579325102.744823] call at index 1: direction incoming, state active, number n/a
ModemManager[3554]: <debug> [1579325102.744868] call at index 2: direction outgoing, state active, number 666666666
ModemManager[3554]: <debug> [1579325102.744936] call info matched (matched direction/state no, matched index yes, matched terminated no) with call at '/org/freedesktop/ModemManager1/Call/9'
ModemManager[3554]: <debug> [1579325102.744981] state updated: active
ModemManager[3554]: <info> [1579325102.745020] Call state changed: ringing-out -> active (unknown)
ModemManager[3554]: <warn> [1579325102.745338] unexpected incoming call to number 'n/a' reported in call list: state active
ModemManager[3554]: <debug> [1579325102.745409] (ttyUSB1) device open count is 2 (close)
ModemManager[3554]: <debug> [1579325105.467448] no calls being established: call list polling stopped
ModemManager[3554]: <debug> [1579325116.471543] Signal quality value not updated in 60s, marking as not being recent
ModemManager[3554]: <debug> [1579325120.920675] (ttyUSB2): <-- '<CR><LF>+DISC: 11,0,0,16,"666666666",129<CR><LF><CR><LF><CR><CR><LF>NO CARRIER<CR><CR><LF><CR><LF>'
ModemManager[3554]: <debug> [1579325120.920961] Got failure code 1: No carrier
ModemManager[3554]: <debug> [1579325122.204693] (ttyUSB2): <-- '<CR><LF>^MODE: 9<CR><LF>'
ModemManager[3554]: <debug> [1579325122.716671] (ttyUSB0): <-- 60 31 00 46 26 c6 74 31 ea b6 51 eb 00 06 46 26 01 74 85 eb b6 51 eb 00 02 46 a6 74 85 02 46 26 8d 81 8d eb b6 51 eb 00 03 46 26 d8 2a ab eb b6 51 eb 00 04 f3 db 7e
The call remains active indefinitely until terminated by the user.
Looks like MM completely ignores the +DISC
URC from the modem. It also happens on incoming unanswered call, but gets quickly adjusted by AT+CLCC
polling - and when the call is already active, MM does not poll on active calls anymore.