From a952f7724f127d361080af6b822d147b9a5d6389 Mon Sep 17 00:00:00 2001 From: Paul Cartier Date: Thu, 7 May 2020 16:15:44 +0200 Subject: [PATCH] Fix fast addr book : callback can be called with tel number or sip uri containing tel number --- Classes/Utils/FastAddressBook.m | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/Classes/Utils/FastAddressBook.m b/Classes/Utils/FastAddressBook.m index 6de2b9479..b6b8af7da 100644 --- a/Classes/Utils/FastAddressBook.m +++ b/Classes/Utils/FastAddressBook.m @@ -579,9 +579,20 @@ - (void)onPresenceChanged:(NSNotification *)k { NSString *uri = [NSString stringWithUTF8String:[[k.userInfo valueForKey:@"uri"] pointerValue]]; - if (![FastAddressBook isSipURI:uri]) { - LOGD(@"presence changed for tel [%s]", uri.UTF8String); - NSString *telAddr = [FastAddressBook normalizeSipURI:uri]; + NSString *telAddr; + + if ([FastAddressBook isSipURI:uri]) { + LinphoneAddress *addr = linphone_address_new(uri.UTF8String); + if (linphone_proxy_config_is_phone_number(linphone_core_get_default_proxy_config(LC), linphone_address_get_username(addr))) { + telAddr = uri; + } + linphone_address_unref(addr); + } else { + telAddr = [FastAddressBook normalizeSipURI:uri]; + } + + if (telAddr) { + LOGD(@"presence changed for tel [%s]", telAddr.UTF8String); NSUserDefaults *defaults = [[NSUserDefaults alloc] initWithSuiteName:kLinphoneMsgNotificationAppGroupId]; NSMutableDictionary *displayNames = [[NSMutableDictionary alloc] initWithDictionary:[defaults dictionaryForKey:@"addressBook"]];