Home | History | Annotate | Download | only in AppRTCDemo
      1 /*
      2  *  Copyright 2014 The WebRTC Project Authors. All rights reserved.
      3  *
      4  *  Use of this source code is governed by a BSD-style license
      5  *  that can be found in the LICENSE file in the root of the source
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 #import "RTCICEServer+JSON.h"
     12 
     13 static NSString const *kRTCICEServerUsernameKey = @"username";
     14 static NSString const *kRTCICEServerPasswordKey = @"password";
     15 static NSString const *kRTCICEServerUrisKey = @"uris";
     16 static NSString const *kRTCICEServerUrlKey = @"urls";
     17 static NSString const *kRTCICEServerCredentialKey = @"credential";
     18 
     19 @implementation RTCICEServer (JSON)
     20 
     21 + (RTCICEServer *)serverFromJSONDictionary:(NSDictionary *)dictionary {
     22   NSString *url = dictionary[kRTCICEServerUrlKey];
     23   NSString *username = dictionary[kRTCICEServerUsernameKey];
     24   NSString *credential = dictionary[kRTCICEServerCredentialKey];
     25   username = username ? username : @"";
     26   credential = credential ? credential : @"";
     27   return [[RTCICEServer alloc] initWithURI:[NSURL URLWithString:url]
     28                                   username:username
     29                                   password:credential];
     30 }
     31 
     32 + (NSArray *)serversFromCEODJSONDictionary:(NSDictionary *)dictionary {
     33   NSString *username = dictionary[kRTCICEServerUsernameKey];
     34   NSString *password = dictionary[kRTCICEServerPasswordKey];
     35   NSArray *uris = dictionary[kRTCICEServerUrisKey];
     36   NSMutableArray *servers = [NSMutableArray arrayWithCapacity:uris.count];
     37   for (NSString *uri in uris) {
     38     RTCICEServer *server =
     39         [[RTCICEServer alloc] initWithURI:[NSURL URLWithString:uri]
     40                                  username:username
     41                                  password:password];
     42     [servers addObject:server];
     43   }
     44   return servers;
     45 }
     46 
     47 @end
     48