From 6590ad9f8c2fb42a9cd6d43c7f62aeb76ed5a22a Mon Sep 17 00:00:00 2001 From: Yann Diorcet Date: Wed, 17 Oct 2012 13:50:14 +0200 Subject: [PATCH] Fix AddressBook SIP addr normalization --- Classes/Utils/FastAddressBook.m | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/Classes/Utils/FastAddressBook.m b/Classes/Utils/FastAddressBook.m index 30cca6e36..bb22a149d 100644 --- a/Classes/Utils/FastAddressBook.m +++ b/Classes/Utils/FastAddressBook.m @@ -72,18 +72,17 @@ static void sync_address_book (ABAddressBookRef addressBook, CFDictionaryRef inf } + (NSString*)normalizeSipURI:(NSString*)address { - NSString* ret = address; - if([address rangeOfString:@"@"].location != NSNotFound) { - if([address rangeOfString:@"sip:" options:NSCaseInsensitiveSearch].location == 0) { - // have to be sure that start with sip: in lower case - ret = [ret substringFromIndex:4]; - } - ret = [@"sip:" stringByAppendingString:ret]; - if([ret hasSuffix:@":5060"]) { - ret = [ret substringToIndex:[ret length] - 5]; + NSString *normalizedSipAddress = nil; + LinphoneAddress* linphoneAddress = linphone_core_interpret_url([LinphoneManager getLc], [address UTF8String]); + if(linphoneAddress != NULL) { + char *tmp = linphone_address_as_string_uri_only(linphoneAddress); + if(tmp != NULL) { + normalizedSipAddress = [NSString stringWithUTF8String:tmp]; + ms_free(tmp); } + linphone_address_destroy(linphoneAddress); } - return ret; + return normalizedSipAddress; } + (NSString*)normalizePhoneNumber:(NSString*)address {