chenqiyang
2021-08-20 7b95fb4d4549d3452ee17165236186afc1f2b393
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
//
//  HDLLinPhoneSDK.m
//  HDLLinPhoneSDK
//
//  Created by 陈启扬 on 2021/8/3.
//  Copyright © 2021 陈启扬. All rights reserved.
//
 
#import "HDLLinPhoneSDK.h"
#import "HDLLinphoneManager.h"
#import "HDLLinphoneIntercomVC.h"
#import "HDLLinPhoneCommon.h"
#import "HDLLPOnMonitorViewController.h"
@implementation HDLLinPhoneSDK
 
+ (instancetype)instance{
     static  HDLLinPhoneSDK *service = nil;
     static dispatch_once_t onceToken;
    
     dispatch_once(&onceToken, ^{
         service = [[HDLLinPhoneSDK alloc] init];
         [NSNotificationCenter.defaultCenter addObserver:service
                                                selector:@selector(registrationUpdate:)
                                                    name:@"LinphoneRegistrationUpdate"
                                                  object:nil];
         
     });
     return service;
}
 
-(void)dealloc{
//    [NSNotificationCenter.defaultCenter remo];
}
 
-(void)login:(NSString*)username password:(NSString*)pwd domain:(NSString*) domain{
    [HDLLinphoneManager.instance login:username password:pwd domain:domain];
}
 
- (void)registrationUpdate:(NSNotification *)notif {
    LinphoneRegistrationState state = [[notif.userInfo objectForKey:@"state"] intValue];
    if (state == LinphoneRegistrationFailed){
        
    } else if (state == LinphoneRegistrationOk) {
        
//        HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init];
//        [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{
//            
//        }];
        NSLog(@"登录成功啦");
    }else if (state==10){//接收到呼叫通知
        self.IsAutoJumpCallView=YES;
        if(self.IsAutoJumpCallView){
                    NSString *callId=[NSString stringWithFormat:@"%@",[notif.userInfo objectForKey:@"callID"]];
                    BOOL hasVideo=(BOOL)[notif.userInfo objectForKey:@"hasVideo"];
            
                    HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init];
                    vc.CallId=callId;
                    vc.hasVideo=hasVideo;
                    vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate;
                    [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{
            
                    }];
        }
 
        
    }
}
 
-(void)initalLinPhone{
    [HDLLinphoneManager.instance initalLinPhonal];
}
 
-(void)callWithUserName:(NSString*)username title:(NSString *)title{
    
    HDLLPOnMonitorViewController *vc=[[HDLLPOnMonitorViewController alloc]init];
//    vc.CallId=callId;
//    vc.hasVideo=YES;
    vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate;
    vc.modalPresentationStyle = UIModalPresentationFullScreen;
    vc.userName=username;
    vc.titleName=title;
    [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{
        
    }];
    
}
/**
*  跳转呼叫页面
*
*  @param titleName   标题
*/
-(void)gotoHDLLinphoneIntercomVC:(NSString*)titleName{
    
//    NSString *callId=[NSString stringWithFormat:@"%@",[notif.userInfo objectForKey:@"callID"]];
//    BOOL hasVideo=(BOOL)[notif.userInfo objectForKey:@"hasVideo"];
 
    HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init];
//    vc.CallId=callId;
    vc.hasVideo=YES;
    vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate;
    vc.titleName=titleName;
    vc.modalPresentationStyle = UIModalPresentationFullScreen;
    [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{
        
    }];
}
 
-(void)logoutAllLinphoneUser{
    
}
 
-(void)clearAllConfigs{
    
}
@end