Developer Area

Show
Ignore:
Timestamp:
07/27/09 16:15:47 (5 years ago)
Author:
henri
Message:

Fix to centralize proper filtering of .tel domains

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • apps/iphone/superbook/trunk/Classes/NaptrViewController.m

    r461 r470  
    7171        txtFont = [UIFont boldSystemFontOfSize:kTextFontSize]; 
    7272 
    73         self.title = [self telFromQueryString:telName]; 
     73        self.title = [[FriendsData sharedInstance] telFromQueryString:telName]; 
    7474        if (!self.title) 
    7575                return FALSE; 
     
    473473 
    474474#pragma mark ------ Custom Data Methods 
    475  
    476 - (NSString *)telFromQueryString:(NSString *)query { 
    477         if (!query) 
    478                 return nil; 
    479         NSMutableString *qry = [NSMutableString stringWithString:query]; 
    480         if ([qry length] == 0) 
    481                 return nil; 
    482         if ([qry hasPrefix:@"http://"]) { 
    483                 [qry deleteCharactersInRange:NSMakeRange(0, [@"http://" length])]; 
    484         } else if ([qry hasPrefix:@"https://"]) { 
    485                 [qry deleteCharactersInRange:NSMakeRange(0, [@"https://" length])]; 
    486         } 
    487         if ([qry hasPrefix:@"www."]) { 
    488                 [qry deleteCharactersInRange:NSMakeRange(0, [@"www." length])]; 
    489         } 
    490         if ([qry hasPrefix:@"+"]) { 
    491                 // Check if it's a phone number, try the sip version 
    492                 BOOL isValidNumber = YES; 
    493                 NSMutableString *enumStr = [NSMutableString stringWithCapacity:30]; 
    494                 NSRange prefixR = NSMakeRange(0, 0); 
    495                 for (int i = 1; i < [qry length]; i++) { 
    496                         unichar aChar = [qry characterAtIndex:i]; 
    497                         if ((aChar < 47) || (aChar > 58)) {     // Not in range of Unicode digits 0-9 
    498                                 isValidNumber = NO; 
    499                                 break; 
    500                         } 
    501                         [enumStr replaceCharactersInRange:prefixR withString:[NSString stringWithFormat:@"%c.", aChar]]; 
    502                 } 
    503                 if (isValidNumber) { 
    504                         [enumStr appendString:@"e164.arpa"]; 
    505                         qry = enumStr; 
    506                 } 
    507         } else if ([qry hasSuffix:@".tel"]) { 
    508                 // .tel domain, do nothing 
    509         } else if ([qry hasSuffix:@".e164.arpa"]) { 
    510                 // ENUM domain, let's add support for it, why not! 
    511                 // Superbook will be the best ENUM client too! :) 
    512         } else { 
    513                 qry = [NSString stringWithFormat:@"%@.tel", qry]; 
    514         } 
    515         return qry; 
    516 } 
    517475 
    518476- (void)getNaptrForTel:(NSString *)telName { 
Telnic
Search This Site
Partners
Neustar
ICANN
Main site | WHOIS | Sell .tel | FAQ | Archived Site | About Telnic | Contact Us