diff --git a/wear/src/main/java/com/tutpro/baresip/wear/WearBaresipService.kt b/wear/src/main/java/com/tutpro/baresip/wear/WearBaresipService.kt index 2085a551..bff0963c 100644 --- a/wear/src/main/java/com/tutpro/baresip/wear/WearBaresipService.kt +++ b/wear/src/main/java/com/tutpro/baresip/wear/WearBaresipService.kt @@ -230,13 +230,14 @@ class WearBaresipService : Service() { CallState.status.value = "Incoming call" // Surface the incoming-call UI even if the app was backgrounded, // and alert the wearer (the watch screen is usually dimmed). + // NOTE: we deliberately do NOT hand the call to the system + // telecom stack. On Samsung Wear the third-party COMPANION + // PhoneAccount is auto-rejected within ~2s, and that rejection + // propagated back to the native baresip call (hangup) — which + // made Asterisk drop to voicemail immediately instead of ringing + // for the configured 25s. The in-app InCallScreen + the + // full-screen-intent notification below are the real alert UI. alertIncomingCall(peer) - // Experiment: also hand the call to the system telecom stack so - // the stock Wear incoming UI can be used if the dialer honors - // our PhoneAccount. The in-app InCallScreen is shown regardless. - try { TelecomHelper.addIncomingCall(this, cp, uap, peer) } catch (e: Exception) { - Log.w("Baresip Wear", "telecom addIncomingCall failed: ${e.message}") - } } ev == "call outgoing" -> CallState.status.value = "Calling" ev == "call established" -> {