Skip to content
Snippets Groups Projects
  1. Jan 26, 2024
    • Hui Wang's avatar
      Update OWNERS file · 1c888b45
      Hui Wang authored
      Test: Manual
      Change-Id: Ia72b2cd3a3b50acad0139bad929ea5c57491851e
      1c888b45
  2. Nov 22, 2023
    • xiaotonj's avatar
      DO NOT MERGE · 8d552499
      xiaotonj authored
      Fix areBundleEqual in Call.
      
      Currently the sentence in areBundleEqual arranged in a wrong order.
      Fixed this by moving the check sentence before the actual query
      sentence.
      
      Bug: b/312604549
      Test: cts call tests
      Change-Id: Id8caa5719b4df724cbe03edd75b99a2b2e3882b5
      8d552499
    • Rana Mouawi's avatar
      Add DO_NOT_LOG_CALL extra definition for omitting a call from the call log. · ce746778
      Rana Mouawi authored
      Bug: b/295530944
      Test: Unit tests pass.
      Defer-CP-To-Master: 297157687
      
      Change-Id: I70197f1393bc77dfbf29056192fde6c8be8d1009
      (cherry picked from commit c92465b603f5d294473308f85c9cfc441665037a)
      ce746778
  3. Nov 17, 2023
    • Pranav Madapurmath's avatar
      Avoid resetting InCallAdapter when set. · 74319651
      Pranav Madapurmath authored
      This causes issues, for instance, when we have a MO and MT call
      ongoing. The associated users for both calls would be different
      based on the logic that was added for work profiles (MT calls
      associated with target phone account handle user while MO calls
      are associated with the profile user). As a result, resetting
      the adapter puts Telecom in a state where it is unable to update
      the existing calls.
      
      The framework changes ensure that the phone instance (which provides
      the in-call information to the user) is not being reset when it's
      already instantiated.
      
      Bug: 308856446
      Bug: 294699269
      Test: Manual
      Test: New unit test to verify that call updates are persevered when
      MO/MT call are placed from the secondary/guest user.
      Test: v2/android-platinum/telephony-platinum-tests-ATT
      
      Change-Id: I4976c0ec67d515e96f6d4df53c79ac500eb6a06e
      74319651
  4. Nov 16, 2023
    • Priyanka Advani's avatar
      Revert "Avoid resetting InCallAdapter when set." · fd53c96b
      Priyanka Advani authored
      Revert submission 24838577-cherrypick-MT-MO-secondaryUserCallUpdateFix-udc-qpr-dev-70l1hzdwrmf
      
      Reason for revert: Probable culprit for b/311270644.
      
      Reverted changes: /q/submissionid:24838577-cherrypick-MT-MO-secondaryUserCallUpdateFix-udc-qpr-dev-70l1hzdwrmf
      
      Change-Id: Ic0a30f091de2bdf06f6c4ffc8c1a2725b64ac871
      fd53c96b
  5. Nov 10, 2023
    • Anton Hansson's avatar
      Make all typedefs SOURCE retention · faf2ba91
      Anton Hansson authored
      The default retention is CLASS, but the correct retention is SOURCE.
      There is a metalava check for typedef annotations correctly, but that
      check is currently disabled. This is part of the work required to
      re-enable that check.
      
      Bug: 309971481
      Test: m checkapi
      Change-Id: I386efea9321bd2adb2722710056b1d57dd5401f5
      faf2ba91
  6. Nov 01, 2023
  7. Oct 30, 2023
    • Brad Ebinger's avatar
      Modify docs to clarify rules around placing calls to CF MMI codes · 8ad07c82
      Brad Ebinger authored
      Clarify in the docs that only the system/default dialer can
      directly place call forwarding MMI codes. For other applications,
      placing a call using these mmi codes will cause the dialer to
      pop up with the MMI code populated so that the user can manually
      confirm  before the call is placed.
      
      Bug: 306380262
      Test: docs only change
      Flag: DOCS_ONLY
      Change-Id: Id486304020b12e01785c5d98a1496d3bd9cfac43
      8ad07c82
  8. Oct 10, 2023
    • Grant Menke's avatar
      Guarded relevant call id API changes with flagging. · 37155c88
      Grant Menke authored
      This change guards CallDetails#getId and StreamingCall#EXTRA_CALL_ID with the newly added telecom flag FLAG_CALL_DETAILS_ID_CHANGES.
      
      Bug: 301713560
      Test: Updated CallDetailsTest#testCallId and CallStreamingTest
      Change-Id: I3819fa9eda5995d7ef354e71d2b4c7d5a4423e66
      37155c88
  9. Oct 05, 2023
    • Anton Hansson's avatar
      Fix broken documentation in telephony and telecomm · 84d6d75d
      Anton Hansson authored
      Due to a bug in the build system, broken @see/@link references have not
      failed to build for a while, so many errors have accumulated.
      
      This is an attempt to patch up the telephony and telecomm docs. The
      most common errors and fixes were:
      - @link-ing IntDef constants from javadoc. IntDefs are not present
        in the docs, so rewrite those to natural english, or point to the
        constant prefixes
      - Javadoc for public symbols referencing SystemApi symbols. Change those
        to @code instead of @link
      
      There were various other fixes too, and I'm not sure they're all
      perfect, but certainly an improvement over the brokenness we have
      currently.
      
      Bug: 303184203
      Test: m docs
      Change-Id: I5cefc72074ced29c0b046cf59deb7ee371e74bf0
      84d6d75d
  10. Sep 22, 2023
    • Pranav Madapurmath's avatar
      Avoid resetting InCallAdapter when set. · d67d2a5c
      Pranav Madapurmath authored
      This causes issues, for instance, when we have a MO and MT call ongoing. The associated users for both calls would be different based on the logic that was added for work profiles (MT calls associated with target phone account handle user while MO calls are associated with the profile user). As a result, resetting the adapter puts Telecom in a
      state where it is unable to update the existing calls. This is being fixed in packages to ensure that MT calls adhere to the profile association as well, so Telecom would not try to set the adapter again in InCallController.
      
      Bug: 294699269
      Test: Manual
      Test: New unit test to verify that call updates are persevered when
      MO/MT call are placed from the secondary/guest user.
      
      Change-Id: Ic771acab949f2ee6b47a5a32ffb02c0cddf0a8dc
      d67d2a5c
  11. Sep 05, 2023
    • Grant Menke's avatar
      Cleanup string comparison in CallEndpoint class. · 5c1f88cb
      Grant Menke authored
      This CL cleans up the equals method that i sused for string comparison by the CallEndpoint class. This change updates that method to rely on the standard .equals method provided by the java.utils.Objects class.
      
      Test: this method is widely used so PS should provide coverage of this change
      Bug: 288897277
      Change-Id: I5863f323f921f146e46513a0f1b29631779f76af
      5c1f88cb
  12. Sep 01, 2023
  13. Aug 23, 2023
    • Grant Menke's avatar
      Define PROPERTY_IS_TRANSACTIONAL in Call#Details. · 6ca706b8
      Grant Menke authored
      Defined the new PROPERTY_IS_TRANSACTIONAL in Call#Details for tracking when a call is transactional or not.
      
      Test: manually using the transactional VoIP app and added new CTS tests in TransactionalApisTest
      Bug: 296934278
      Change-Id: I50707a4026a93064e9f0763ed180bc8e7bd91184
      6ca706b8
  14. Aug 21, 2023
  15. Aug 17, 2023
    • Tyler Gunn's avatar
      Update Telecom OWNERS. · 725e737e
      Tyler Gunn authored
      Test: Owners only change.
      Bug: 296459098
      Change-Id: Ib97b6c3c155e0eee0529089f08ac87ebdd27e95a
      725e737e
  16. Aug 16, 2023
    • Mateus Azis's avatar
      Avoid duplicate map lookups in RemoteConnectionManager. · ddcbe639
      Mateus Azis authored
      Use Map.computeIfAbsent or the result of get() calls to interact with
      the map via a single access, avoiding duplicate lookups.
      
      Test: atest cts/tests/tests/telecom/src/android/telecom/cts/RemoteConnectionTest.java
      Bug: 274764512
      Change-Id: I1e6b10381f0c9b408c4a734384e550dfaefc1f40
      ddcbe639
  17. Aug 14, 2023
    • Thomas Stuart's avatar
      update docs for Connection#onHold() · 792a50a3
      Thomas Stuart authored
      The topic adds a transactional way to verify call state changes.
      Connection#onHold can now lead to the call being disconnected if the
      Connection#setOnHold is not called within the 2 second timeframe. The
      docs should be updated to reflect this behavior change.
      
      Test: build + existing Telecom test suite
      Fixes: b/267234374
      Change-Id: I910843d4e8adec8d38cd32915f223540cefb9ac6
      792a50a3
  18. Aug 03, 2023
    • qing's avatar
      Add Call answered key in TelecomManager.java · 90c40cf3
      qing authored
      The key is used for dialer apps to know when call is answered by user.
      
      Test: N/A
      Change-Id: Idfef41b88df21a9a39032fdbb4090a181b164f73
      Skip-CP-To-Master: pending on telecom review
      Bug: 242074284
      90c40cf3
  19. Aug 02, 2023
    • qing's avatar
      Make call back order right for DISCONNECTED call · 278fdb13
      qing authored
      If call is initially a DISCONNECTED call, the callback will be fire in wrong sequence where onCallRemoved is fired before onCallAdded.
      Bug: 203563157
      Test: manual test
      
      
      Change-Id: I4b13dc13b34a1547f0c68ced01b3c1177dfa9eb3
      (cherry picked from commit 5495c83fb5dbf833082ce4c9c21c415580420a7f)
      (cherry picked from commit fb9aec0c1175618759f5d7328fc42ec3c152cbe2)
      278fdb13
  20. Jul 24, 2023
    • Grant Menke's avatar
      Add API to get the telecom call id from Call.Details. · 626dd261
      Grant Menke authored
      This CL unhides StreamingCall#EXTRA_CALL_ID and adds an API to Call Details to get the telecom call ID. Updated CTS tests accordingly to account for these changes.
      
      Fixes: 286457948
      Test: atest CallDetailsTest && atest CallStreamingTest
      Change-Id: Ibf9dbe38224b9710eb79aa68812f3a185f7e297d
      626dd261
  21. Jul 21, 2023
    • Thomas Stuart's avatar
      CTS to ensure telecom can bind to NonUiInCallService wo export prop. · e2e79d98
      Thomas Stuart authored
      This CL is a postmortem action which is detailed in the linked bug.
      In short, an OEM had the telecom stack outside of the system process
      and had a non-ui InCallService it wanted to bind.  However, the
      InCallService set the Exported property to false.  This combo caused
      a calling outage that prevented users from making/receiving calls.
      
      To prevent the above scenaro from occuring again, this new CTS test
      was created. It tests the Telecom stack of the OEM against a
      non-ui InCallService that has it's exported property set to false.
      
      Bug: 198715680
      
      Test: 1 new CTS test,
            NonUiInCallServiceWoExportTest
            #testTelecomCanBindToNonUiInCallServiceThatIsNotExported
      
      Change-Id: I5b99aa9c7e989a1c20a7b086f65782286a8be575
      e2e79d98
  22. Jun 20, 2023
  23. Jun 12, 2023
    • Pranav Madapurmath's avatar
      Handle endpoint name nullability in constructor · f39d60bc
      Pranav Madapurmath authored
      Throws an IllegalArgumentException when the endpoint name passed into
      the constructor is null. This will help prevent the error from being
      invoked later down the line and instead throws it at the first sign
      of detection.
      
      Fixes: 286310499
      Test: atest TelecomUnitTests
      Change-Id: Ic128d0e3577591d54cf9c4309844e4580af220c1
      f39d60bc
  24. Jun 01, 2023
    • Pranav Madapurmath's avatar
      Resolve StatusHints image exploit across user. · f043c230
      Pranav Madapurmath authored
      Because of the INTERACT_ACROSS_USERS permission, an app that implements
      a ConnectionService can upload an image icon belonging to another user
      by setting it in the StatusHints. Validating the construction of the
      StatusHints on the calling user would prevent a malicious app from
      registering a connection service with the embedded image icon from a
      different user.
      
      From additional feedback, this CL also addresses potential
      vulnerabilities in an app being able to directly invoke the binder for a
      means to manipulate the contents of the bundle that are passed with it.
      The targeted points of entry are in ConnectionServiceWrapper for the
      following APIs: handleCreateConnectionComplete, setStatusHints,
      addConferenceCall, and addExistingConnection.
      
      Fixes: 280797684
      Test: Manual (verified that original exploit is no longer an issue).
      Test: Unit test for validating image in StatusHints constructor.
      Test: Unit tests to address vulnerabilities via the binder.
      Change-Id: I6e70e238b3a5ace1cab41ec5796a6bb4d79769f2
      Merged-In: I6e70e238b3a5ace1cab41ec5796a6bb4d79769f2
      f043c230
  25. May 29, 2023
    • Pranav Madapurmath's avatar
      Resolve StatusHints image exploit across user. · ac29a0cf
      Pranav Madapurmath authored
      Because of the INTERACT_ACROSS_USERS permission, an app that implements
      a ConnectionService can upload an image icon belonging to another user
      by setting it in the StatusHints. Validating the construction of the
      StatusHints on the calling user would prevent a malicious app from
      registering a connection service with the embedded image icon from a
      different user.
      
      From additional feedback, this CL also addresses potential
      vulnerabilities in an app being able to directly invoke the binder for a
      means to manipulate the contents of the bundle that are passed with it.
      The targeted points of entry are in ConnectionServiceWrapper for the
      following APIs: handleCreateConnectionComplete, setStatusHints,
      addConferenceCall, and addExistingConnection.
      
      Fixes: 280797684
      Test: Manual (verified that original exploit is no longer an issue).
      Test: Unit test for validating image in StatusHints constructor.
      Test: Unit tests to address vulnerabilities via the binder.
      Change-Id: I6e70e238b3a5ace1cab41ec5796a6bb4d79769f2
      Merged-In: I6e70e238b3a5ace1cab41ec5796a6bb4d79769f2
      ac29a0cf
  26. May 28, 2023
    • Pranav Madapurmath's avatar
      Resolve StatusHints image exploit across user. · c51386a0
      Pranav Madapurmath authored
      Because of the INTERACT_ACROSS_USERS permission, an app that implements
      a ConnectionService can upload an image icon belonging to another user
      by setting it in the StatusHints. Validating the construction of the
      StatusHints on the calling user would prevent a malicious app from
      registering a connection service with the embedded image icon from a
      different user.
      
      From additional feedback, this CL also addresses potential
      vulnerabilities in an app being able to directly invoke the binder for a
      means to manipulate the contents of the bundle that are passed with it.
      The targeted points of entry are in ConnectionServiceWrapper for the
      following APIs: handleCreateConnectionComplete, setStatusHints,
      addConferenceCall, and addExistingConnection.
      
      Fixes: 280797684
      Test: Manual (verified that original exploit is no longer an issue).
      Test: Unit test for validating image in StatusHints constructor.
      Test: Unit tests to address vulnerabilities via the binder.
      Change-Id: I6e70e238b3a5ace1cab41ec5796a6bb4d79769f2
      Merged-In: I6e70e238b3a5ace1cab41ec5796a6bb4d79769f2
      c51386a0
  27. May 26, 2023
    • Pranav Madapurmath's avatar
      Resolve StatusHints image exploit across user. · 48223d60
      Pranav Madapurmath authored
      Because of the INTERACT_ACROSS_USERS permission, an app that implements
      a ConnectionService can upload an image icon belonging to another user
      by setting it in the StatusHints. Validating the construction of the
      StatusHints on the calling user would prevent a malicious app from
      registering a connection service with the embedded image icon from a
      different user.
      
      From additional feedback, this CL also addresses potential
      vulnerabilities in an app being able to directly invoke the binder for a
      means to manipulate the contents of the bundle that are passed with it.
      The targeted points of entry are in ConnectionServiceWrapper for the
      following APIs: handleCreateConnectionComplete, setStatusHints,
      addConferenceCall, and addExistingConnection.
      
      Fixes: 280797684
      Test: Manual (verified that original exploit is no longer an issue).
      Test: Unit test for validating image in StatusHints constructor.
      Test: Unit tests to address vulnerabilities via the binder.
      Change-Id: I6e70e238b3a5ace1cab41ec5796a6bb4d79769f2
      Merged-In: I6e70e238b3a5ace1cab41ec5796a6bb4d79769f2
      48223d60
    • Pranav Madapurmath's avatar
      Resolve StatusHints image exploit across user. · 3a756602
      Pranav Madapurmath authored
      Because of the INTERACT_ACROSS_USERS permission, an app that implements
      a ConnectionService can upload an image icon belonging to another user
      by setting it in the StatusHints. Validating the construction of the
      StatusHints on the calling user would prevent a malicious app from
      registering a connection service with the embedded image icon from a
      different user.
      
      From additional feedback, this CL also addresses potential
      vulnerabilities in an app being able to directly invoke the binder for a
      means to manipulate the contents of the bundle that are passed with it.
      The targeted points of entry are in ConnectionServiceWrapper for the
      following APIs: handleCreateConnectionComplete, setStatusHints,
      addConferenceCall, and addExistingConnection.
      
      Fixes: 280797684
      Test: Manual (verified that original exploit is no longer an issue).
      Test: Unit test for validating image in StatusHints constructor.
      Test: Unit tests to address vulnerabilities via the binder.
      Change-Id: I6e70e238b3a5ace1cab41ec5796a6bb4d79769f2
      3a756602
  28. May 11, 2023
    • Tyler Gunn's avatar
      Add extra key for call attributes. · 545b5d83
      Tyler Gunn authored
      Add an extra key used internally with call attributes when setting up a
      call.
      
      Test: Manual testing.
      Bug: 277232336
      Merged-In: Ic8b5d57df88cf9c1d8a82a11ad4934ed4ef5fd78
      Change-Id: Ic8b5d57df88cf9c1d8a82a11ad4934ed4ef5fd78
      545b5d83
  29. May 09, 2023
    • Tyler Gunn's avatar
      Add extra key for call attributes. · dd2001ce
      Tyler Gunn authored
      Add an extra key used internally with call attributes when setting up a
      call.
      
      Test: Manual testing.
      Bug: 277232336
      Change-Id: Ic8b5d57df88cf9c1d8a82a11ad4934ed4ef5fd78
      dd2001ce
  30. May 03, 2023
    • Thomas Stuart's avatar
      update CallControlCallback docs for the rejection case · 7c0864df
      Thomas Stuart authored
      TL;DR:
      - docs update for CallControlCallback rejection cases
      - CTS coverage for onAnswer#(wasCompleted(false)) case
      - CTS coverage for onSetActive#(wasCompleted(false)) case
      - TSW fix
      
      In most of the Transactional tests, it's expected that the client
      always completed the CallControlCallback. In adding these tests I
      noticed that the current logic will answer or set the call active if the
      client rejects the onAnswer or onSetActive. In order to prevent this two
      active call scenario, I've adjusted the appropriate code.
      
      Fixes: 279034589
      Test: CTS coverage for changes
      Change-Id: I97f6371d845e00e7708b8b65abd57591d7a01cb7
      7c0864df
  31. May 02, 2023
    • Tyler Gunn's avatar
      Clarify REMOTE disconnect cause API docs. · e8c5a298
      Tyler Gunn authored
      Update API docs for REMOTE to make it clear that this disconnect cause is
      used both for user-initiated disconnection on behalf of the remote party,
      and for cases where the remote party never answered the call.
      
      Test: Docs only change
      Fixes: 280505750
      Change-Id: Id718c75e2b748d2b5d5778f89d3dd7a420845418
      e8c5a298
  32. Apr 27, 2023
    • Tyler Gunn's avatar
      Add extra key to StreamingCall. · 8ae42776
      Tyler Gunn authored
      Also fix bug where CallStreamingService would never init the streaming
      adapter.  This caused the CallStreamingService to NEVER get notified of
      onCallStreamingstarted since the handleMessage method was checking to see
      if the adapter was set.
      
      Test: Added CTS test for this case.
      Bug: 279650527
      Change-Id: I389efacd7547439985caabc068be5413897cf128
      8ae42776
  33. Apr 21, 2023
  34. Apr 19, 2023
    • Thomas Stuart's avatar
      ignore call streaming msgs if the adapter is destroyed/not set · 6e377858
      Thomas Stuart authored
      The D2DI team hit an NPE while testing out the call transfer/streaming
      stuff. The NPE arises in StreamingCall whenever a call streaming changed
      msg comes in and the StreamingCallAdapter is null.
      
      Ideally, we should be wrapping any adapter request with an NPE check and
      ignoring messages if the adapter is destroyed or not set.
      
      bug: 277119309
      Test: manual
      Change-Id: I90a5c1dc16dfda9f3c92316b2f4f1655166a59b9
      6e377858
  35. Apr 06, 2023
    • Thomas Stuart's avatar
      improve the TelecomManager#addCall docs · 69bbffae
      Thomas Stuart authored
      API council had originally created a bug to add details on disconnecting
      a call and not needing to create a foreground service. I decided to
      completely redo the docs to improve the adpotion of the API surface.
      
      bug: 274957450
      Test: none
      Change-Id: I47dd84f8673ee7b81f1bd99ee6f42743d1d54b37
      69bbffae
    • Thomas Stuart's avatar
      fix security exception in VoipCallMonitor · f959db09
      Thomas Stuart authored
      While investigating how the VoipCallMonitor class treats transactional
      calls, I noticed a security exception was being thrown whenever
      startForegroundServiceDelegate was being called. Upon some further
      digging, an incorrect UID was being given to the activity manager class.
      
      The fix is to fetch the UID in TelecomServiceImpl#addCall and store it
      in the extras. Then, when the call is created in CallsManager, those
      values are stored in the Call object. VoipCallMonitor can then query the
      value and there is no longer a security exception.
      
      Fixes: 276802273
      Test: manual (start T-call and grep VoipCallMonitor)
            + unit test (ensure the CallingPackageIdentity is being set)
      Change-Id: I10a22df721d1c9c6f467a24fed2d1204e0db843f
      f959db09
  36. Apr 03, 2023
    • Grace Jia's avatar
      Add monitor related code · 13284d12
      Grace Jia authored
      Bug: 261877110
      Test: Telecom unit test
      Change-Id: I05258c0ce17de38fb220f97ddbdda75a6bab1a1f
      Merged-In: I05258c0ce17de38fb220f97ddbdda75a6bab1a1f
      13284d12
  37. Mar 28, 2023
Loading