123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609 |
- #import "JXMeetingObject.h"
- // #import "MessagesViewController.h"
- //#import "ChatViewController.h"
- //#import "ContactsViewController.h"
- #import "AppDelegate.h"
- #import "versionManage.h"
- #import "acceptCallViewController.h"
- #import "JXAVCallViewController.h"
- #import "JXTalkModel.h"
- #ifdef Live_Version
- #import "JXLiveJidManager.h"
- #endif
- #undef TAG
- #define kTAG @"AppDelegate///: "
- #define TAG kTAG
- #define kTabBarIndex_Favorites 0
- #define kTabBarIndex_Recents 1
- #define kTabBarIndex_Contacts 2
- #define kTabBarIndex_Numpad 3
- #define kTabBarIndex_Messages 4
- #define kNotifKey @"key"
- #define kNotifKey_IncomingCall @"icall"
- #define kNotifKey_IncomingMsg @"imsg"
- #define kNotifIncomingCall_SessionId @"sid"
- #define kNetworkAlertMsgThreedGNotEnabled Localized(@"JXMeetingObject_3GNetWork")
- #define kNetworkAlertMsgNotReachable Localized(@"JXMeetingObject_NoNetWork")
- #define kNewMessageAlertText Localized(@"JXMeetingObject_NewMessage")
- #define kAlertMsgButtonOkText Localized(@"JX_Confirm")
- #define kAlertMsgButtonCancelText Localized(@"JX_Cencal")
- static UIBackgroundTaskIdentifier sBackgroundTask = UIBackgroundTaskInvalid;
- static dispatch_block_t sExpirationHandler = nil;
- @interface JXMeetingObject()
- @property (nonatomic, assign) BOOL isInCall;
- @property (nonatomic, copy) NSString *meetUrl;
- @end
- @implementation JXMeetingObject
- -(id)init{
- self = [super init];
- _count = 0;
- _lastConnectTime = 0;
- _showConnResult = NO;
- _checkCount = 0;
-
- [g_notify addObserver:self selector:@selector(newMsgCome:) name:kXMPPNewMsgNotifaction object:nil];
- [g_notify addObserver:self selector:@selector(callAnswerNotification:) name:kCallAnswerNotification object:nil];
- return self;
- }
- -(void)dealloc{
- [g_notify removeObserver:self];
- }
- -(void)callAnswerNotification:(NSNotification *)notifacation{
- self.hasAnswer = YES;
- }
- -(void)onOtherEvent:(NSNotification*)notification {
- NSLog(@"onOtherEvent: %@",notification.name);
- }
- -(NSString*)getVideoSize{
- NSString* s = [[NSUserDefaults standardUserDefaults] objectForKey:@"chatVideoSize"];
- if(s==nil)
- s = @"1";
- switch ([s intValue]) {
- case 0:
- s = @"11";
- break;
- case 1:
- s = @"9";
- break;
- case 2:
- s = @"5";
- break;
- case 3:
- s = @"2";
- break;
- default:
- s = @"5";
- break;
- }
- return s;
- }
- -(void)startMeeting{
-
- multitaskingSupported = [[UIDevice currentDevice] respondsToSelector:@selector(isMultitaskingSupported)] && [[UIDevice currentDevice] isMultitaskingSupported];
- // sBackgroundTask = UIBackgroundTaskInvalid;
- // UIApplication* app = [UIApplication sharedApplication];
- // //sExpirationHandler = ^{//老代码
- // sBackgroundTask = [app beginBackgroundTaskWithExpirationHandler:^{
- // //NSLog(@"Background task completed");
- // [app endBackgroundTask:sBackgroundTask];
- // sBackgroundTask = UIBackgroundTaskInvalid;
- // }];
-
- if(multitaskingSupported){
- // NgnNSLog(TAG, @"Multitasking IS supported");
- }
-
- // Set media parameters if you want
- // MediaSessionMgr::defaultsSetAudioGain(0, 0);
- // Set some codec priorities
- /*int prio = 0;
- SipStack::setCodecPriority(tdav_codec_id_g722, prio++);
- SipStack::setCodecPriority(tdav_codec_id_speex_wb, prio++);
- SipStack::setCodecPriority(tdav_codec_id_pcma, prio++);
- SipStack::setCodecPriority(tdav_codec_id_pcmu, prio++);
- SipStack::setCodecPriority(tdav_codec_id_h264_bp, prio++);
- SipStack::setCodecPriority(tdav_codec_id_h264_mp, prio++);
- SipStack::setCodecPriority(tdav_codec_id_vp8, prio++);*/
- //...etc etc etc
-
- // [self changeLanguage];
-
- [self MicrophoneCheck];
- }
- -(void)stopMeeting{
-
- }
- -(void)meetingDidEnterBackground:(UIApplication *)application {
- }
- - (void)meetingWillEnterForeground:(UIApplication *)application {
-
- // check native contacts changed while app was runnig on background
- if(self->nativeABChangedWhileInBackground){
- // trigger refresh
- self->nativeABChangedWhileInBackground = NO;
- }
- }
- - (void) MicrophoneCheck{
- if ([[AVAudioSession sharedInstance] respondsToSelector:@selector(requestRecordPermission:)]) {
- [[AVAudioSession sharedInstance] performSelector:@selector(requestRecordPermission:) withObject:^(BOOL granted) {
- if (granted) {
- // Microphone enabled code
- // NSLog(@"Microphone is enabled..");
- }
- else {
- // Microphone disabled code
- // NSLog(@"Microphone is disabled..");
-
- // We're in a background thread here, so jump to main thread to do UI work.
- dispatch_async(dispatch_get_main_queue(), ^{
- [g_App showAlert:Localized(@"JX_CanNotOpenMicr")];
- });
- }
- }];
- }
- }
- -(ChatViewController *)chatViewController{
- if(!_chatViewController){
- // _chatViewController = [[ChatViewController alloc] initWithNibName: @"ChatView" bundle:nil];
- }
- return _chatViewController;
- }
- - (void)doTerminate{
- [g_notify removeObserver:self];
- }
- - (void)clearMemory{
- }
- /*没用:
- - (void)setSettingToNgn:(NSDictionary*)dict{
-
- NSArray* itemArray = [dict objectForKey:@"PreferenceSpecifiers"];
- for(int i = 0; i < [itemArray count]; i++)
- {
- NSDictionary* identityItemDictionary = (NSDictionary*)[itemArray objectAtIndex:i];
- NSString* strType = (NSString*)[identityItemDictionary objectForKey:@"Type"];
- NSString* strKey = (NSString*)[identityItemDictionary objectForKey:@"Key"];
- NSString* strValue = (NSString*)[identityItemDictionary objectForKey:@"DefaultValue"];
- if([strType isEqualToString:@"PSTextFieldSpecifier"])
- [[NgnEngine sharedInstance].configurationService setStringWithKey:strKey andValue:strValue];
- if([strType isEqualToString:@"PSToggleSwitchSpecifier"])
- [[NgnEngine sharedInstance].configurationService setBoolWithKey:strKey andValue:[strValue isEqualToString:@"YES"]];
- }
- }*/
- -(void)loadSeeting{
- /*
- [[CSetting sharedInstance] loadSetting];
- NSDictionary* p = [[[CSetting sharedInstance].identityDict objectForKey:@"PreferenceSpecifiers"] objectAtIndex:2];
- NSString* userId = [p objectForKey:@"DefaultValue"];
- if([userId isEqualToString:g_server.myself.userId]){//如果已保存则赋值
- [self setSettingToNgn:[CSetting sharedInstance].identityDict];
- [self setSettingToNgn:[CSetting sharedInstance].networkDict];
- [self setSettingToNgn:[CSetting sharedInstance].traversalDict];
- [self setSettingToNgn:[CSetting sharedInstance].mediaDict];
- [self setSettingToNgn:[CSetting sharedInstance].codecsDict];
- }
- else
- [self saveMeetingId:g_server.myself];//如果未保存则保存
- */
- }
- //SIP掉线后提示
- - (void) showAutoConnect{
- if(_alert)
- return;
- _alert = [[UIAlertView alloc] initWithTitle:Localized(@"JXMeeting_offline") message:Localized(@"JXMeeting_reConnect") delegate:self cancelButtonTitle:Localized(@"JX_Cencal") otherButtonTitles:Localized(@"JX_Confirm"), nil];
- _alert.tag = 10000;
- [_alert show];
- _showConnResult = YES;
- }
- #pragma mark UIAlertView delegate
- - (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex{
- if (buttonIndex == 1) {
- if (alertView.tag == 10000) { //SIP掉线
- [JXMyTools showTipView:Localized(@"JX_Connection")];
- [self connect];
- // [self performSelector:@selector(checkAutoConnect) withObject:nil afterDelay:60];
- }
- }
- _alert = nil;
- }
- -(void)showConnectFailed{
- [JXMyTools showTipView:[NSString stringWithFormat:@"%@%@",Localized(@"JXMeeting_connect"),Localized(@"JX_Failed")]];
- _showConnResult = NO;
- }
- -(void)showConnectSuccess{
- [JXMyTools showTipView:[NSString stringWithFormat:@"%@%@",Localized(@"JXMeeting_connect"),Localized(@"JX_Success")]];
- _showConnResult = NO;
- }
- -(void)checkAutoConnect{
- if(!self.connected)
- [self showAutoConnect];
- }
- -(BOOL)isConnected{
- }
- -(void)sendAsk:(int)type toUserId:(NSString*)toUserId toUserName:(NSString*)toUserName meetUrl:(NSString *)meetUrl{
- NSString* content=nil;
- self.meetUrl = meetUrl;
- [self doSendMsg:type content:content toUserId:toUserId toUserName:toUserName timeLen:0 objectId:nil];
- }
- -(void)sendReady:(int)type toUserId:(NSString*)toUserId toUserName:(NSString*)toUserName{
- NSString* content=nil;
- [self doSendMsg:type content:content toUserId:toUserId toUserName:toUserName timeLen:0 objectId:nil];
- }
- -(void)sendAccept:(int)type toUserId:(NSString*)toUserId toUserName:(NSString*)toUserName objectId:(NSString *)objectId{
- NSString* content=nil;
- [self doSendMsg:type content:content toUserId:toUserId toUserName:toUserName timeLen:0 objectId:objectId];
- }
- -(void)sendCancel:(int)type toUserId:(NSString*)toUserId toUserName:(NSString*)toUserName{
- NSString* content=nil;
- [self doSendMsg:type content:content toUserId:toUserId toUserName:toUserName timeLen:0 objectId:nil];
- }
- -(void)sendNoAnswer:(int)type toUserId:(NSString*)toUserId toUserName:(NSString*)toUserName{
- NSString* content=nil;
- [self doSendMsg:type content:content toUserId:toUserId toUserName:toUserName timeLen:1 objectId:nil];
- }
- -(void)sendEnd:(int)type toUserId:(NSString*)toUserId toUserName:(NSString*)toUserName timeLen:(int)timeLen{
- NSString* content=nil;
- [self doSendMsg:type content:content toUserId:toUserId toUserName:toUserName timeLen:timeLen objectId:nil];
- }
- -(void)sendMeetingInvite:(NSString*)toUserId toUserName:(NSString*)toUserName roomJid:(NSString*)roomJid callId:(NSString*)callId type:(int)type{
- JXMessageObject *msg=[[JXMessageObject alloc]init];
- if(type == kWCMessageTypeVideoMeetingInvite)
- msg.content = Localized(@"JXMeeting_InviteVideoMeeting");
- else
- msg.content = Localized(@"JXMeeting_InviteAudioMeeting");
- if (type == kWCMessageTypeTalkInvite) {
- msg.content = Localized(@"JX_InviteJoinWalkieTalkie");
- }
- msg.fileName = callId;
- msg.timeSend = [NSDate date];
- msg.fromUserId = MY_USER_ID;
- msg.fromUserName = MY_USER_NAME;
- msg.toUserId = toUserId;
- msg.toUserName = toUserName;
- msg.objectId = roomJid;
- msg.isGroup = NO;
- msg.type = [NSNumber numberWithInt:type];
- msg.isSend = [NSNumber numberWithInt:transfer_status_ing];
- msg.isRead = [NSNumber numberWithBool:NO];
- msg.isReadDel = [NSNumber numberWithInt:NO];
- msg.sendCount = 1;
- [msg insert:nil];
- [g_xmpp sendMessage:msg roomName:nil];//发送消息
- [g_notify postNotificationName:kXMPPShowMsgNotifaction object:msg];//显示出来
- }
- -(void)doSendMsg:(int)type content:(NSString*)content toUserId:(NSString*)toUserId toUserName:(NSString*)toUserName timeLen:(int)timeLen objectId:(NSString *)objectId{
- JXMessageObject *msg=[[JXMessageObject alloc]init];
- msg.content = content;
- msg.timeSend = [NSDate date];
- msg.fromUserId = MY_USER_ID;
- msg.fromUserName = MY_USER_NAME;
- msg.toUserId = toUserId;
- msg.toUserName = toUserName;
- msg.isGroup = NO;
- msg.type = [NSNumber numberWithInt:type];
- msg.isSend = [NSNumber numberWithInt:transfer_status_ing];
- msg.isRead = [NSNumber numberWithBool:NO];
- msg.isReadDel = [NSNumber numberWithInt:NO];
- msg.timeLen = [NSNumber numberWithInt:timeLen];//对方无应答标志或通话时长
- msg.sendCount = 1;
- msg.objectId = objectId;
- if (type == kWCMessageTypeAudioChatAsk || type == kWCMessageTypeVideoChatAsk) {
- msg.fileName = self.meetUrl;
- }
- [msg insert:nil];
- [g_xmpp sendMessage:msg roomName:nil];//发送消息
- [g_notify postNotificationName:kXMPPShowMsgNotifaction object:msg];//显示出来
- }
- -(void)doSendGroupMsg:(int)type content:(NSString*)content toUserId:(NSString*)toUserId{
- JXMessageObject *msg=[[JXMessageObject alloc]init];
- msg.content = content;
- msg.timeSend = [NSDate date];
- msg.fromUserId = MY_USER_ID;
- msg.fromUserName = MY_USER_NAME;
- msg.toUserId = toUserId;
- msg.objectId = toUserId;
- msg.isGroup = YES;
- msg.type = [NSNumber numberWithInt:type];
- msg.isSend = [NSNumber numberWithInt:transfer_status_ing];
- msg.isRead = [NSNumber numberWithBool:NO];
- msg.isReadDel = [NSNumber numberWithInt:NO];
- msg.sendCount = 3;
- [g_xmpp sendMessage:msg roomName:toUserId];//发送消息
- }
- #pragma mark 接受新消息广播
- -(void)newMsgCome:(NSNotification *)notifacation
- {
- JXMessageObject *msg = notifacation.object;
-
- if ([msg.fromUserId isEqualToString:MY_USER_ID]) {
- if ([msg.type intValue] == kWCMessageTypeAudioChatAsk || [msg.type intValue] == kWCMessageTypeVideoChatAsk || [msg.type intValue] == kWCMessageTypeVideoMeetingInvite || [msg.type intValue] == kWCMessageTypeAudioMeetingInvite || [msg.type intValue] == kWCMessageTypeAudioChatAccept || [msg.type intValue] == kWCMessageTypeVideoChatAccept || [msg.type intValue] == kWCMessageTypeTalkInvite) {
- return;
- }
- }
-
- if(msg==nil)
- return;
- #ifdef Live_Version
- if([[JXLiveJidManager shareArray] contains:msg.toUserId] || [[JXLiveJidManager shareArray] contains:msg.fromUserId])
- return;
- #endif
-
- if([msg.toUserId isEqualToString:MY_USER_ID]){
- if([msg.type intValue] == kWCMessageTypeVideoChatAsk || [msg.type intValue] == kWCMessageTypeAudioChatAsk){
- if(g_meeting.isMeeting && ![self.roomNum isEqualToString:msg.fromUserId]){ //如果有别的通话 不弹出界面
- if (!msg.isMultipleRelay) {
- [self sendAVBusy:msg];
- }
- return; //如果有别的通话 不弹出界面
- }
-
- int n = ([[NSDate date] timeIntervalSince1970] + (g_server.timeDifference / 1000))-[msg.timeSend timeIntervalSince1970];
- if(n>30)//如果时间差超过30秒,则放弃
- return;
- self.isInCall = YES;
- dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.5 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
-
- if(g_meeting.isMeeting && ![self.roomNum isEqualToString:msg.fromUserId]){
- if (!msg.isMultipleRelay) {
- [self sendAVBusy:msg];
- }
- return; //如果有别的通话 不弹出界面
- }
- if (self.isInCall) {
- self.meetUrl = msg.fileName;
- acceptCallViewController* vc = [acceptCallViewController alloc];
- vc.toUserName = msg.fromUserName;
- vc.toUserId = msg.fromUserId;
- vc.type = msg.type;
- vc.roomNum = msg.fromUserId;
- NSString* s;
- if([msg.type intValue] == kWCMessageTypeAudioChatAsk)
- s = Localized(@"JXMeeting_AudioCall_title");
- else
- s = Localized(@"JXMeeting_VideoCall_title");
- vc.title = s;
- vc.delegate = self;
- vc.didTouch = @selector(doAudioVideoMeeting:);
- vc.changeVideo = @selector(doVideoMeeting:);
- vc.changeAudio = @selector(doAudioMeeting:);
- vc = [vc init];
- // [g_window addSubview:vc.view];
- [g_navigation pushViewController:vc animated:NO];
- _msg = msg;
- }
-
- });
-
- // if(self.isConnected){
- // [self sendReadyMsg:msg];//如果连接成功,则发ready消息
- // }else{
- // _timer = [NSTimer scheduledTimerWithTimeInterval:1.0f target:self selector:@selector(checkMediaServer:) userInfo:msg repeats:YES];
- // [self connect];//如果不成功,则开定时器检查
- // }
- return;
- }
- if([msg.type intValue] == kWCMessageTypeAudioMeetingInvite || [msg.type intValue] == kWCMessageTypeVideoMeetingInvite || [msg.type intValue] == kWCMessageTypeTalkInvite){
- // if (msg.isDelay) { // 离线的会议音视频邀请不接收
- // return;
- // }
- int n = ([[NSDate date] timeIntervalSince1970] + (g_server.timeDifference / 1000))-[msg.timeSend timeIntervalSince1970];
- if(self.isMeeting) return; //如果有别的通话 不弹出界面
- if(n<=30){//如果时间差超过30秒,则放弃
- if(![current_meeting_no isEqualToString:msg.fileName]){//如果正在开会,则不弹框
- NSString* s;
- BOOL isTalk = NO;
- if([msg.type intValue] == kWCMessageTypeVideoMeetingInvite)
- s = @"邀请您视频通话...";
- else if ([msg.type intValue] == kWCMessageTypeTalkInvite) {
- s = Localized(@"JX_InviteJoinWalkieTalkie");
- isTalk = YES;
- }
- else
- s = @"邀请您语音通话...";
- acceptCallViewController* vc = [acceptCallViewController alloc];
- vc.isGroup = YES;
- vc.isTalk = isTalk;
- vc.toUserName = msg.fromUserName;
- vc.toUserId = msg.fromUserId;
- vc.roomNum = msg.objectId;
- vc.type = msg.type;
- vc.title = s;
- vc.delegate = self;
- vc.didTouch = @selector(doAudioVideoMeeting:);
- vc = [vc init];
- // [g_window addSubview:vc.view];
- [g_navigation pushViewController:vc animated:NO];
- _msg = msg;
- }
- }
- }
- }
-
- if ([msg.type intValue] == kWCMessageTypeAudioChatCancel || [msg.type intValue] == kWCMessageTypeVideoChatCancel) {
- self.isInCall = NO;
- [g_App endCall];
- }
-
-
- msg = nil;
- }
- - (void)sendOnlineMsg:(JXMessageObject *)msg1 {
- JXMessageObject *msg=[[JXMessageObject alloc]init];
- msg.content = nil;
- msg.timeSend = [NSDate date];
- msg.fromUserId = MY_USER_ID;
- msg.fromUserName = MY_USER_NAME;
- msg.toUserId = msg1.objectId;
- msg.isGroup = YES;
- msg.type = [NSNumber numberWithInt:kWCMessageTypeTalkOnline];
- msg.isSend = [NSNumber numberWithInt:transfer_status_ing];
- msg.isRead = [NSNumber numberWithBool:NO];
- msg.isReadDel = [NSNumber numberWithInt:NO];
- msg.sendCount = 1;
- msg.objectId = msg1.objectId;
- [msg insert:nil];
- [g_xmpp sendMessage:msg roomName:msg1.objectId];//发送消息
- }
- - (void)sendAVBusy:(JXMessageObject *)meetingMsg {
- JXMessageObject *msg=[[JXMessageObject alloc]init];
- msg.timeSend = [NSDate date];
- msg.fromUserId = MY_USER_ID;
- msg.fromUserName = MY_USER_NAME;
- msg.toUserId = meetingMsg.fromUserId;
- msg.isGroup = NO;
- msg.type = [NSNumber numberWithInt:kWCMessageTypeAVBusy];
- msg.isSend = [NSNumber numberWithInt:transfer_status_ing];
- msg.isRead = [NSNumber numberWithBool:NO];
- if ([meetingMsg.type intValue] == kWCMessageTypeVideoChatAsk) {
- msg.objectId = @"1";
- }else {
- msg.objectId = @"0";
- }
- [g_xmpp sendMessage:msg roomName:nil];//发送消息
- [msg insert:nil];
-
- }
- -(void)checkMediaServer:(NSTimer*)sender{
- _checkCount++;
- if(self.isConnected){
- JXMessageObject* msg = (JXMessageObject*)[sender userInfo];
- [self sendReadyMsg:msg];//如果连接成功,则发ready消息
- [_timer invalidate];
- _checkCount = 0;
- }
- if(_checkCount>30){//检查30次,每秒一次
- [_timer invalidate];
- _checkCount = 0;
- }
- }
- -(void)sendReadyMsg:(JXMessageObject*)msg{//发送准备好音视频通话的消息
- int n = [[NSDate date] timeIntervalSince1970]-[msg.timeSend timeIntervalSince1970];
- if(n>30)//如果时间差超过30秒,则放弃
- return;
- int k;
- if([msg.type intValue] == kWCMessageTypeVideoChatAsk)
- k = kWCMessageTypeVideoChatReady;
- else
- k = kWCMessageTypeAudioChatReady;
- [self sendReady:k toUserId:msg.fromUserId toUserName:msg.fromUserName];
- }
- -(void)doAudioVideoMeeting:(acceptCallViewController*)vc{
- JXAVCallViewController *avVC = [[JXAVCallViewController alloc] init];
- avVC.isTalk = vc.isTalk;
-
- if([_msg.type intValue] == kWCMessageTypeAudioMeetingInvite || [_msg.type intValue] == kWCMessageTypeAudioChatAsk){
- avVC.isAudio = YES;
-
- }
-
- if([_msg.type intValue] == kWCMessageTypeAudioMeetingInvite || [_msg.type intValue] == kWCMessageTypeVideoMeetingInvite){
- avVC.isGroup = YES;
- avVC.roomNum = _msg.objectId;
- }else if ([_msg.type intValue] == kWCMessageTypeAudioChatAsk) {
-
- avVC.roomNum = _msg.fromUserId;
- avVC.meetUrl = self.meetUrl;
- [g_meeting sendAccept:kWCMessageTypeAudioChatAccept toUserId:_msg.fromUserId toUserName:_msg.fromUserName objectId:_msg.objectId];
- }else if ([_msg.type intValue] == kWCMessageTypeVideoChatAsk) {
-
- avVC.roomNum = _msg.fromUserId;
- avVC.meetUrl = self.meetUrl;
- [g_meeting sendAccept:kWCMessageTypeVideoChatAccept toUserId:_msg.fromUserId toUserName:_msg.fromUserName objectId:_msg.objectId];
- }else if ([_msg.type intValue] == kWCMessageTypeTalkInvite){
- avVC.isGroup = YES;
- avVC.roomNum = _msg.objectId;
- }
- avVC.toUserId = _msg.fromUserId;
- avVC.toUserName = _msg.fromUserName;
- avVC.view.frame = [UIScreen mainScreen].bounds;
-
- // [self startVideoMeeting:_msg.fileName roomJid:_msg.objectId];
- // else
- // [self startAudioMeeting:_msg.fileName roomJid:_msg.objectId];
- // UIViewController *lastVC = (UIViewController *)g_navigation.lastVC;
- // [lastVC presentViewController:avVC animated:NO completion:nil];
- [g_window addSubview:avVC.view];
- _msg = nil;
- }
- - (void)doAudioMeeting:(acceptCallViewController *)vc{
- JXAVCallViewController *avVC = [[JXAVCallViewController alloc] init];
- avVC.isTalk = vc.isTalk;
- avVC.isAudio = YES;
- avVC.roomNum = _msg.fromUserId;
- avVC.meetUrl = self.meetUrl;
- [g_meeting sendAccept:kWCMessageTypeAudioChatAccept toUserId:_msg.fromUserId toUserName:_msg.fromUserName objectId:_msg.objectId];
- avVC.toUserId = _msg.fromUserId;
- avVC.toUserName = _msg.fromUserName;
- avVC.view.frame = [UIScreen mainScreen].bounds;
- [g_window addSubview:avVC.view];
- _msg = nil;
- }
- - (void)doVideoMeeting:(acceptCallViewController *)vc{
- JXAVCallViewController *avVC = [[JXAVCallViewController alloc] init];
- avVC.isTalk = vc.isTalk;
- avVC.roomNum = _msg.fromUserId;
- avVC.meetUrl = self.meetUrl;
- [g_meeting sendAccept:kWCMessageTypeVideoChatAccept toUserId:_msg.fromUserId toUserName:_msg.fromUserName objectId:_msg.objectId];
- avVC.toUserId = _msg.fromUserId;
- avVC.toUserName = _msg.fromUserName;
- avVC.view.frame = [UIScreen mainScreen].bounds;
- [g_window addSubview:avVC.view];
- _msg = nil;
- }
- /*
- -(BOOL)isMeeting{
- // return self.audioCallController.sessionId>0 || self.videoCallController.sessionId>0;
- return self.audioCallController || self.videoCallController;
- }
- */
- @end
|