Only do native lookup if it's supported

Also fix as bug where we were checking the wrong field to check
for native/virtual support: oops.
pull/21833/head
David Baker 2021-06-02 17:47:29 +01:00
parent 2c4fa73a45
commit 0aeddea30f
1 changed files with 10 additions and 5 deletions

View File

@ -264,7 +264,7 @@ export default class CallHandler extends EventEmitter {
} }
public getSupportsVirtualRooms() { public getSupportsVirtualRooms() {
return this.supportsPstnProtocol; return this.supportsSipNativeVirtual;
} }
public pstnLookup(phoneNumber: string): Promise<ThirdpartyLookupResponse[]> { public pstnLookup(phoneNumber: string): Promise<ThirdpartyLookupResponse[]> {
@ -883,10 +883,15 @@ export default class CallHandler extends EventEmitter {
// Now check to see if this is a virtual user, in which case we should find the // Now check to see if this is a virtual user, in which case we should find the
// native user // native user
const nativeLookupResults = await this.sipNativeLookup(userId); let nativeUserId;
const lookupSuccess = nativeLookupResults.length > 0 && nativeLookupResults[0].fields.lookup_success; if (this.getSupportsVirtualRooms()) {
const nativeUserId = lookupSuccess ? nativeLookupResults[0].userid : userId; const nativeLookupResults = await this.sipNativeLookup(userId);
console.log("Looked up " + number + " to " + userId + " and mapped to native user " + nativeUserId); const lookupSuccess = nativeLookupResults.length > 0 && nativeLookupResults[0].fields.lookup_success;
nativeUserId = lookupSuccess ? nativeLookupResults[0].userid : userId;
console.log("Looked up " + number + " to " + userId + " and mapped to native user " + nativeUserId);
} else {
nativeUserId = userId;
}
const roomId = await ensureDMExists(MatrixClientPeg.get(), nativeUserId); const roomId = await ensureDMExists(MatrixClientPeg.get(), nativeUserId);