| | |
| | | #import "HDLLPOnMonitorViewController.h" |
| | | |
| | | @interface HDLLinPhoneSDK() |
| | | |
| | | @property (strong, nonatomic) HDLLinphoneIntercomVC* presentingIntercomVC;//å½åå±ç¤ºçæ¥ç¹æ§å¶å¨ï¼ç¨äºåæ¾æ£å¨å±ç¤ºçæ¥ç¹æ§å¶å¨ï¼é¿å
éå¤å¼¹åºçé¢ |
| | | @end |
| | | |
| | | @implementation HDLLinPhoneSDK |
| | |
| | | [HDLLinphoneManager.instance login:username password:pwd domain:domain]; |
| | | } |
| | | |
| | | -(void)tcpLogin:(NSString*)username password:(NSString*)pwd domain:(NSString*) domain { |
| | | [HDLLinphoneManager.instance tcpLogin:username password:pwd domain:domain ]; |
| | | } |
| | | |
| | | -(void)udpLogin:(NSString*)username password:(NSString*)pwd domain:(NSString*) domain { |
| | | [HDLLinphoneManager.instance udpLogin:username password:pwd domain:domain ]; |
| | | } |
| | | |
| | | - (void)registrationUpdate:(NSNotification *)notif { |
| | | LinphoneRegistrationState state = [[notif.userInfo objectForKey:@"state"] intValue]; |
| | | if (state == LinphoneRegistrationFailed){ |
| | |
| | | if (state == LinphoneCallIncomingReceived) { |
| | | [self.hdlLinphoneCallDelegate onIncomingCall:userName]; |
| | | 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=YES; |
| | | vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate; |
| | | vc.modalPresentationStyle = UIModalPresentationFullScreen; |
| | | // self.IntercomVC=vc; |
| | | [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{ |
| | | // HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init]; |
| | | //// vc.CallId=callId; |
| | | // vc.hasVideo=YES; |
| | | // vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate; |
| | | // vc.modalPresentationStyle = UIModalPresentationFullScreen; |
| | | //// self.IntercomVC=vc; |
| | | // [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{ |
| | | // |
| | | // }]; |
| | | |
| | | }]; |
| | | [self gotoHDLLinphoneIntercomVC:nil]; |
| | | } |
| | | } |
| | | } |
| | |
| | | vc.modalPresentationStyle = UIModalPresentationFullScreen; |
| | | vc.userName=username; |
| | | vc.titleName=title; |
| | | [HDLLinphoneManager instance].deviceType=HDLLPType_Default; |
| | | [HDLLinphoneManager instance].isResettingVideoEnable=NO; |
| | | // self.CallVC=vc; |
| | | [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{ |
| | | |
| | | }]; |
| | | |
| | | } |
| | | |
| | | /** |
| | | * å¼å«ï¼èªç å¯è§å¯¹è®²ï¼ |
| | | * |
| | | * @param username ç¨æ·è´¦å· |
| | | * @param title 页颿 é¢ |
| | | */ |
| | | -(void)callHDLSRWithUserName:(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; |
| | | [HDLLinphoneManager instance].deviceType=HDLLPType_HDLSR; |
| | | [HDLLinphoneManager instance].isResettingVideoEnable=NO; |
| | | // self.CallVC=vc; |
| | | [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{ |
| | | |
| | | }]; |
| | | } |
| | | |
| | | /** |
| | | * 跳转å¼å«é¡µé¢ |
| | | * |
| | |
| | | |
| | | // NSString *callId=[NSString stringWithFormat:@"%@",[notif.userInfo objectForKey:@"callID"]]; |
| | | // BOOL hasVideo=(BOOL)[notif.userInfo objectForKey:@"hasVideo"]; |
| | | // NSLog(@"é¡¶å±è§å¾ï¼%@",[HDLLinPhoneCommon topMostController]); |
| | | |
| | | if ([HDLLinPhoneCommon rootPresentVCContent:[HDLLinphoneIntercomVC class]]||[HDLLinPhoneCommon rootPresentVCContent:[HDLLPOnMonitorViewController class]]) { |
| | | if ([[HDLLinPhoneCommon topMostController] isKindOfClass:[UIAlertController class]]) { |
| | | NSLog(@"é¡¶å±è§å¾æ¯è§é¢éè¯é¡µ"); |
| | | __weak typeof(self) weakSelf = self; |
| | | |
| | | [[HDLLinPhoneCommon topMostController] dismissViewControllerAnimated:NO completion:^{ |
| | | UIViewController *topVC=[HDLLinPhoneCommon topMostController]; |
| | | if ([topVC isKindOfClass:[HDLLPOnMonitorViewController class]]) { |
| | | [topVC dismissViewControllerAnimated:NO completion:^{ |
| | | [weakSelf toLinphoneIntercomVC:titleName deviceType:HDLLPType_Default userName:@""]; |
| | | }]; |
| | | }else if ([topVC isKindOfClass:[HDLLinphoneIntercomVC class]]) { |
| | | [topVC dismissViewControllerAnimated:NO completion:^{ |
| | | [weakSelf toLinphoneIntercomVC:titleName deviceType:HDLLPType_Default userName:@""]; |
| | | }]; |
| | | } |
| | | }]; |
| | | } |
| | | // UIViewController *topVC=[HDLLinPhoneCommon topMostController]; |
| | | // if ([topVC isKindOfClass:[HDLLinphoneIntercomVC class]]) { |
| | | // [topVC dismissViewControllerAnimated:NO completion:nil]; |
| | | // } |
| | | return; |
| | | } |
| | | |
| | | [self toLinphoneIntercomVC:titleName deviceType:HDLLPType_Default userName:@""]; |
| | | |
| | | // if (self.presentingIntercomVC) { |
| | | // __weak typeof(self) weakSelf = self; |
| | | // [self.presentingIntercomVC dismissViewControllerAnimated:NO completion:^{ |
| | | // NSLog(@"页é¢éåºäº"); |
| | | // weakSelf.presentingIntercomVC=nil; |
| | | // [weakSelf toLinphoneIntercomVC:titleName]; |
| | | // }]; |
| | | // |
| | | // return; |
| | | // } |
| | | // NSLog(@"æ§è¡å°æäº"); |
| | | // [self toLinphoneIntercomVC:titleName]; |
| | | // HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init]; |
| | | //// vc.CallId=callId; |
| | | // vc.hasVideo=YES; |
| | | // vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate; |
| | | // if (titleName) { |
| | | // vc.titleName=titleName; |
| | | // } |
| | | // vc.modalPresentationStyle = UIModalPresentationFullScreen; |
| | | // self.presentingIntercomVC=vc; |
| | | // [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{ |
| | | // |
| | | // }]; |
| | | } |
| | | |
| | | /** |
| | | * 跳转èªç å¼å«é¡µé¢ |
| | | * |
| | | * @param titleName æ é¢ |
| | | */ |
| | | -(void)gotoHDLSRLinphoneIntercomVC:(NSString*)titleName userName:(NSString*)username{ |
| | | if ([HDLLinPhoneCommon rootPresentVCContent:[HDLLinphoneIntercomVC class]]||[HDLLinPhoneCommon rootPresentVCContent:[HDLLPOnMonitorViewController class]]) { |
| | | if ([[HDLLinPhoneCommon topMostController] isKindOfClass:[UIAlertController class]]) { |
| | | NSLog(@"é¡¶å±è§å¾æ¯è§é¢éè¯é¡µ"); |
| | | __weak typeof(self) weakSelf = self; |
| | | |
| | | [[HDLLinPhoneCommon topMostController] dismissViewControllerAnimated:NO completion:^{ |
| | | UIViewController *topVC=[HDLLinPhoneCommon topMostController]; |
| | | if ([topVC isKindOfClass:[HDLLPOnMonitorViewController class]]) { |
| | | [topVC dismissViewControllerAnimated:NO completion:^{ |
| | | [weakSelf toLinphoneIntercomVC:titleName deviceType:HDLLPType_HDLSR userName:username]; |
| | | }]; |
| | | }else if ([topVC isKindOfClass:[HDLLinphoneIntercomVC class]]) { |
| | | [topVC dismissViewControllerAnimated:NO completion:^{ |
| | | [weakSelf toLinphoneIntercomVC:titleName deviceType:HDLLPType_HDLSR userName:username]; |
| | | }]; |
| | | } |
| | | }]; |
| | | } |
| | | return; |
| | | } |
| | | |
| | | [self toLinphoneIntercomVC:titleName deviceType:HDLLPType_HDLSR userName:username]; |
| | | } |
| | | |
| | | -(void)hideIntercomeVC{ |
| | | if ([[HDLLinPhoneCommon topMostController] isKindOfClass:[HDLLinphoneIntercomVC class]]) { |
| | | [[HDLLinPhoneCommon topMostController] dismissViewControllerAnimated:YES completion:^{ |
| | | |
| | | }]; |
| | | } |
| | | } |
| | | /** |
| | | åésip message |
| | | */ |
| | | -(void)sendMessage:(NSString*)message sipAccount:(NSString*)sipAccount domain:(NSString*)domain{ |
| | | LinphoneAddress *tmpAddr = linphone_address_new([NSString stringWithFormat:@"sip:%@@%@",sipAccount,domain].UTF8String); |
| | | LinphoneChatRoom *chatRomm=linphone_core_get_chat_room([HDLLinphoneManager getLc], tmpAddr); |
| | | [[HDLLinphoneManager instance] send:message toChatRoom:chatRomm]; |
| | | } |
| | | |
| | | |
| | | |
| | | -(void)toLinphoneIntercomVC:(NSString*)titleName deviceType:(HDLLPType)deviceType userName:(NSString *)userName{ |
| | | HDLLinphoneIntercomVC *vc=[[HDLLinphoneIntercomVC alloc]init]; |
| | | // vc.CallId=callId; |
| | | vc.hasVideo=YES; |
| | | vc.hdlLinphoneCallDelegate=self.hdlLinphoneCallDelegate; |
| | | vc.titleName=titleName; |
| | | if (titleName) { |
| | | vc.titleName=titleName; |
| | | } |
| | | vc.deviceType=deviceType; |
| | | vc.userName=userName; |
| | | vc.modalPresentationStyle = UIModalPresentationFullScreen; |
| | | // self.IntercomVC=vc; |
| | | |
| | | [HDLLinphoneManager instance].deviceType=deviceType; |
| | | [HDLLinphoneManager instance].isResettingVideoEnable=NO; |
| | | // self.presentingIntercomVC=vc; |
| | | [[HDLLinPhoneCommon topMostController] presentViewController:vc animated:YES completion:^{ |
| | | |
| | | |
| | | }]; |
| | | } |
| | | |