Correct call swapping logic to account for connection manager.
Some connection managers have been known to add connections using their own phone accounts other than the telephony ones. This causes a problem when trying to unhold one call and hold another because one call could be from telephony, and another from the connection manager. Further, there was an issue where existing connections and conferences were not being assigned a connection manager. This bug: 1. Redefines what it means to be from the same "source" as another call. In the context of telecom we assume that the target phone accounts are the same package (existing behavior) they're the same source. We also assume if the calls have the same package for their connection manager, they're from the same source. This allows for scenarios like the one described above. 2. Ensures existing connections and conferences are assigned a connection manager phone account. This is inferred using existing logic in the PHoneAccountRegistrar which can look up a sim call manager based on the target phone account for a call. The logic is enhanced so that if a target phone account is in fact already a connection manager, it is found as well. 3. Updates the telecom event logging to log the connection manager, and also updates telecom Call toString to better log details on the calls. Test: Performed manual live network testing with connection manager to ensure correct assignment of connection mgr phone accounts in dumpsys. Test: Wrote unit test to verify same source matching. Test: Wrote unit test to verify that the hold/unhold swap logic works when the connection manager matches but the target phone account does not. Fixes: 151221531 Change-Id: I263e706e8b6a99a9a79fb63dfc7dc10f4b271eb5
Loading
Please register or sign in to comment