-
Notifications
You must be signed in to change notification settings - Fork 231
Expand file tree
/
Copy pathAKSIPURI.m
More file actions
94 lines (75 loc) · 2.83 KB
/
AKSIPURI.m
File metadata and controls
94 lines (75 loc) · 2.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
//
// AKSIPURI.m
// Telephone
//
// Copyright © 2008-2016 Alexey Kuznetsov
// Copyright © 2016-2022 64 Characters
//
// Telephone is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Telephone is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
#import "AKSIPURI.h"
@import UseCases;
#import <pjsua-lib/pjsua.h>
#import "AKNSString+PJSUA.h"
#import "AKSIPUserAgent.h"
@implementation AKSIPURI
- (NSString *)SIPAddress {
return [[SIPAddress alloc] initWithUser:self.user host:self.host].stringValue;
}
#pragma mark -
+ (instancetype)SIPURIWithUser:(NSString *)user host:(NSString *)host displayName:(NSString *)displayName {
return [[self alloc] initWithUser:user host:host displayName:displayName];
}
+ (nullable instancetype)SIPURIWithString:(NSString *)SIPURIString {
return [[self alloc] initWithString:SIPURIString];
}
- (instancetype)initWithUser:(NSString *)user host:(NSString *)host displayName:(NSString *)displayName port:(NSInteger)port {
NSParameterAssert(user);
NSParameterAssert(host);
NSParameterAssert(displayName);
self = [super init];
if ((self != nil)) {
_user = [user copy];
_host = [host copy];
_displayName = [displayName copy];
}
return self;
}
- (instancetype)initWithUser:(NSString *)user host:(NSString *)host displayName:(NSString *)displayName {
return [self initWithUser:user host:host displayName:displayName port:0];
}
- (instancetype)init {
return [self initWithUser:@"" host:@"" displayName:@""];
}
- (nullable instancetype)initWithString:(NSString *)SIPURIString {
URI *uri = [[URI alloc] initWithString:SIPURIString];
if (uri) {
return [self initWithUser:uri.user host:uri.host displayName:uri.displayName];
} else {
return nil;
}
}
- (NSString *)description {
NSString *port = self.port > 0 ? @(self.port).stringValue : @"";
return [[URI alloc] initWithUser:self.user
address:[[ServiceAddress alloc] initWithHost:self.host port:port]
displayName:self.displayName
transport:TransportUDP].stringValue;
}
#pragma mark -
#pragma mark NSCopying protocol
- (id)copyWithZone:(NSZone *)zone {
return [[AKSIPURI allocWithZone:zone] initWithUser:self.user
host:self.host
displayName:self.displayName
port:self.port];
}
@end