4091 Commits

Author SHA1 Message Date
34661f4ca6 Wear SIP: stop handing incoming calls to system telecom (fixes 2s drop)
The experiment of calling TelecomManager.addNewIncomingCall() for our
COMPANION PhoneAccount caused Samsung Wear's telecom stack to auto-reject
the incoming WearConnection within ~2s; its onReject() then hung up the
native baresip call, so Asterisk dropped to voicemail immediately instead
of ringing for the configured 25s.

Remove the handoff from the 'call incoming' path. The in-app InCallScreen
+ full-screen-intent notification remain the alert UI. The native call now
stays alive and rings for the full window (verified: no more 2s reject +
re-register cycle).
2026-08-20 23:12:23 +01:00
c88bee33d8 Wear SIP: register over UDP (NAT-friendly Contact)
Switch outbound transport from tcp to udp. With Asterisk peer
nat=yes, Asterisk now sends the INVITE to the public source address
(78.141.29.181:<port>) instead of the watch's private Contact, so
incoming calls traverse the NAT and reach the watch.

Verified: external incoming calls now arrive (uaEvent: incoming call
from external caller logged on the watch).
2026-08-20 23:03:15 +01:00
106ef4ed9d Wear SIP: switch account to 01273961147 + NAT-survival settings
- Account line now uses 01273961147 (same credential).
- sipnat=outbound + natpinhole=yes + regint=60 keep the NAT
  mapping/keep-alive fresh so Asterisk's INVITE (sent to the public
  Contact) reaches the watch behind NAT.

Note: sipnat=outbound is ineffective here because the outbound proxy
is the server itself (no edge STUN to learn the watch's public NAT
IP); the actual NAT fix is Asterisk-side (nat=force_rport,comedia on
the peer), which makes Asterisk target the public source address.
2026-08-20 22:40:59 +01:00
bd5b5efa3b Wear SIP: incoming-call alert (full-screen intent + screen wake + vibrate)
- High-importance (IMPORTANCE_MAX) call channel; on incoming call post a
  PRIORITY_MAX / CATEGORY_CALL notification with a full-screen intent that
  launches the InCallScreen over the watch face.
- MainActivity: setShowWhenLocked/setTurnScreenOn + FLAG_SHOW_WHEN_LOCKED
  so the in-call UI presents over the dimmed screen / keyguard.
- Request POST_NOTIFICATIONS at runtime (API 33+ silently drops
  notifications without it) alongside RECORD_AUDIO.
- Vibration ring pattern + wake-lock on incoming call; dismiss the
  heads-up when the call closes.

Note: on Samsung Galaxy Watch the watch notification manager blocks
alerting for apps not in its allowed-notifications list; the device
setting (Settings > Notifications > App notifications > Baresip Wear)
must be enabled for the heads-up to fire. Foreground/app-open case
verified working (call answered, audio -> onboard speaker).
2026-08-20 22:25:42 +01:00
15e266cb43 Wear SIP: audio routing, stock-style dialer, DTMF, incoming-call handling, telecom scaffold
- AudioRouteManager: route to onboard speaker when no BT headset is
  connected, BT SCO when one is; set MODE_IN_COMMUNICATION + focus.
- aaudio: build with AAUDIO_PERFORMANCE_MODE_NONE so Android routing
  (speakerphone) is honoured instead of being bypassed by low-latency.
- DialerScreen: restyled to a stock-dialer layout (large number display,
  3x4 keypad with sub-letters, green call FAB, backspace, recent chips).
- InCallScreen: added DTMF keypad (sendDigit) for voicemail/IVR.
- WearBaresipService: on incoming call, wake screen + vibrate + bring
  activity to foreground so Answer/Decline is visible.
- Fixed dial normalization (bare extension -> full SIP URI with domain)
  and the uap parse in uaEvent so defaultUap is set and calls connect.
- config.static: load g711/opus codecs to resolve 488 Not Acceptable Here.
- Telecom scaffold (experiment): PhoneAccount + ConnectionService handed
  incoming calls via addNewIncomingCall to test stock Wear dialer pickup.
- Submodule libbaresip-android rebuilt with g711/opus/aaudio changes.

Verified: assembleDebug green, installs and registers on Galaxy Watch,
incoming call event fires and is handled without crashing.
2026-08-20 22:06:15 +01:00
a849d98b5e Wear UI: dialer, in-call, debug accounts, baresip: provisioning
- Wear Compose dialer with recent calls and in-call answer/decline/hangup/mute
- Debug accounts screen (scrollable ScalingLazyColumn) for manual SIP config
- baresip:// provisioning intent mirroring phone app (RSA/AES bundle decrypt)
- Physical button (STEM_1/BACK) returns from Accounts via onKeyDown
- Native event handler now emits uap/callp for incoming/registration events
- Writes accounts/auth files in baresip format; verified REGISTER attempt on watch
2026-08-19 04:05:40 +01:00
9f94e72b1e Add Wear OS SIP client module running baresip NDK stack
- New :wear application module (Wear Compose, minSdk 30)
- Second JNI lib 'wearbaresip' reusing distribution static libs
- Watch-side service initializes baresip via full init path
  (libre_init -> conf_configure -> baresip_init -> ua_init)
- FGS started from MainActivity foreground state with mic type
  only (phoneCall requires default-dialer, rejected on watch)
- Runtime-verified: builds, installs, native lib loads and SIP
  stack starts on armeabi-v7a Wear OS device
2026-08-19 03:22:05 +01:00
2372b7fe05 Add provisioning server docs, agentbridge state, and update submodule 2026-08-18 19:58:11 +01:00
e572b2df53 Ignore nested submodule repos and Android build outputs 2026-08-18 19:54:02 +01:00
ed39535e05 Restore x86_64 debug ABI coverage 2026-08-18 19:41:17 +01:00
77bfe351f2 Add baresip:// provisioning link support via encrypted bundle fetch 2026-08-18 19:35:20 +01:00
11619a9130 New version 89.1.1 2026-08-18 12:54:57 +03:00
196205200c Merge pull request #733 from weblate/weblate-baresip-baresip-app
Translations update from Hosted Weblate
2026-08-18 12:49:53 +03:00
78aab58051 Translated using Weblate (Russian)
Currently translated at 44.4% (177 of 398 strings)

Translation: Baresip/store metadata
Translate-URL: https://hosted.weblate.org/projects/baresip/store-metadata/ru/
2026-08-18 11:45:57 +02:00
06f6705450 Show contact name and SIP URI in call URI field if label has not been given 2026-08-18 12:44:36 +03:00
925f0340d0 Submodule update 2026-08-18 10:34:15 +03:00
79ea123143 Submodule update 2026-08-18 10:16:38 +03:00
b29ab2acd3 New version 89.1.0 2026-08-17 08:16:51 +03:00
3c19160bcb Fixed error that sometimes caused two mobile accounts to appear after restart 2026-08-16 20:21:49 +03:00
70a6868606 Submodule update 2026-08-16 18:44:01 +03:00
74d82c08e2 Removed iLBC Mode audio setting 2026-08-16 18:36:28 +03:00
6f2734df0f Submodule update due to ilbc 2026-08-16 17:07:54 +03:00
37d99b4848 Added iLBC audio codec 2026-08-16 17:02:32 +03:00
d6f6bd37d3 Direct to Android settings when Default Phone app is disabled 2026-08-15 16:50:45 +03:00
4faf23c82c New version 89.0.1 2026-08-15 16:32:06 +03:00
c25c93d4a5 Prevent crash at start when baresip is not default phone app 2026-08-15 16:28:09 +03:00
8fb718fdd2 According to help text. apply account's Country Code setting only to contact lookup 2026-08-15 10:09:15 +03:00
57bbc20af7 New version 89.0.0 2026-08-14 16:07:19 +03:00
1232aebec0 Improved showing of contact suggestions 2026-08-14 15:52:51 +03:00
fd959082ce Show contact name and label in call uri field when a suggestion is selected 2026-08-14 10:05:04 +03:00
b9c8443aea Reject incoming mobile call if SIP call is already active and vice versa 2026-08-14 10:04:14 +03:00
b8fae2d349 Uri parsing fix 2026-08-14 09:38:26 +03:00
3af45d8efd Mobile account and calling related fixes and enhancements
Search and show also contact URIs in suggestions
2026-08-14 09:14:33 +03:00
a8edd0f234 Unique Contact URI setting now defaults to disabled 2026-08-12 16:03:59 +03:00
1cfb9bc9b0 Merge pull request #729 from weblate/weblate-baresip-baresip-app
Translations update from Hosted Weblate (Chinese)
2026-08-12 15:43:02 +03:00
c535604754 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (399 of 399 strings)

Translation: Baresip/baresip app
Translate-URL: https://hosted.weblate.org/projects/baresip/baresip-app/zh_Hans/
2026-08-12 07:55:43 +02:00
e9222c0787 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (397 of 397 strings)

Translation: Baresip/baresip app
Translate-URL: https://hosted.weblate.org/projects/baresip/baresip-app/zh_Hans/
2026-08-12 07:55:42 +02:00
760179ad27 Added start padding to account's sub-settings and Authentication Password setting 2026-08-12 08:53:56 +03:00
09a1f26500 Made SIP Trace setting sub-setting of Debug setting 2026-08-12 08:36:31 +03:00
e82d40a842 New version 88.1.5 2026-08-11 13:32:08 +03:00
efb3a594a3 Added Greate Mobile Account sub-setting to Default Phone App setting 2026-08-11 13:23:19 +03:00
2f51e48276 Avoid bogus "No network connection" notice 2026-08-10 15:57:07 +03:00
e93162d7c8 New version 88.1.4 2026-08-10 15:44:07 +03:00
fb952c98a4 No need to set audio source when call is (un)muted
Do not set audio source to nil when call is closed
2026-08-10 15:20:22 +03:00
ff8f9045eb Merge pull request #727 from weblate/weblate-baresip-baresip-app
Translations update from Hosted Weblate
2026-08-09 20:29:01 +03:00
93a2fb2985 Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 100.0% (397 of 397 strings)

Translation: Baresip/baresip app
Translate-URL: https://hosted.weblate.org/projects/baresip/baresip-app/zh_Hans/
2026-08-09 19:26:50 +02:00
bcc08f293e Improved Unique Contact URI help text 2026-08-09 20:26:14 +03:00
8ef21948c1 Do not create Mobile account if SIM is data-only 2026-08-09 11:27:51 +03:00
1712853d8d New version 88.1.3 2026-08-08 11:36:07 +03:00
2eeaea706e Introduced new string mobile_service_not_available and corresponding alert
Fixed restore of call and message history
2026-08-08 11:29:32 +03:00