From bf7f42bc3b63a0c2cec5a5adfb44feffab47a077 Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期四, 01 四月 2021 15:08:55 +0800
Subject: [PATCH] 2021-04-01 1.更新

---
 On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources                                                          |   14 
 On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnMonitorViewController.h                                                              |    8 
 On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnMonitorViewController.m                                                              |    4 
 On+/ESVideoOn/ESVideoPhoneSDKDemo/On/OpenViewController.m                                                                     |    2 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/AppDelegate.m                                                       |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/SceneDelegate.h                                                     |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard                                          |  155 ++---
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj                                           |   42 -
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata              |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Info.plist                                                          |    2 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/AppDelegate.h                                                       |    0 
 On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnIntercomViewController.h                                                    |    9 
 On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory                                                          |    0 
 On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnIntercomViewController.m                                                    |   34 +
 On+/ESVideoOn/ESVideoPhoneSDk.framework/ESVideoPhoneSDk                                                                       |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Info.plist                                                    |    0 
 On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnMonitorViewController.h                                                     |    8 
 On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/ApiDefinition.cs                                                  |  137 +++-
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/ESVideoPhoneSDk                                               |    0 
 On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature                                                          |    0 
 On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnMonitorViewController.m                                                     |    6 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoUITests/ESVideoPhoneSDKDemoUITests.m                                 |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoUITests/Info.plist                                                   |    0 
 On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnIntercomViewController.m                                                             |   27 
 On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK.sln                                       |   25 
 On+/ESVideoOn/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h                                                                |   15 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Assets.xcassets/Contents.json                                       |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/SceneDelegate.m                                                     |    0 
 On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnIntercomViewController.h                                                             |    9 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/main.m                                                              |    1 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json                    |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory                                  |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/ViewController.mm                                                   |  141 +++-
 On+/ESVideoOn/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj                                                                   |    6 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Base.lproj/LaunchScreen.storyboard                                  |    0 
 On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Library/libESVideoOnXamarin.a                                     |    0 
 On+/ESVideoOn/ESVideoPhoneSDk.framework/Info.plist                                                                            |    0 
 On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Properties/AssemblyInfo.cs                                        |    2 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1                             |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature                                  |    0 
 On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1                                                     |    0 
 On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESCallDelegate.m                                                                |   13 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources                                  |   18 
 On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESCallDelegate.m                                                                         |   13 
 On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESCallDelegate.h                                                                |   37 +
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements                               |    0 
 On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESCallDelegate.h                                                                         |   37 +
 On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin.xcodeproj/project.pbxproj                                                       |    6 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoTests/ESVideoPhoneSDKDemoTests.m                                     |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoTests/Info.plist                                                     |    0 
 On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/mono_crash.1ffcf07473.0.json                                      |  848 ++++++++++++++++++++++++++++++
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Headers/ESError.h                                             |    6 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h                                        |   17 
 On+/ESVideoOn/ESVideoPhoneSDk.framework/Headers/ESError.h                                                                     |    6 
 /dev/null                                                                                                                     |    0 
 SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/ViewController.h                                                    |    0 
 On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESVideo.m                                                                       |    2 
 58 files changed, 1,411 insertions(+), 239 deletions(-)

diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.h b/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.h
deleted file mode 100644
index 39ed2c9..0000000
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.h
+++ /dev/null
@@ -1,19 +0,0 @@
-//
-//  AudioSessionHelper.h
-//  VideoPhone
-//
-//  Created by eTouchSky on 2019/5/30.
-//  Copyright 漏 2019 eTouchSky. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-
-
-@interface AudioSessionHelper : NSObject
-
-- (void)setAudioSession;
--(NSString *)speaker:(BOOL)isSpeaking;
-@end
-
-
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.m b/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.m
deleted file mode 100644
index c4039cc..0000000
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AudioSessionHelper.m
+++ /dev/null
@@ -1,124 +0,0 @@
-//
-//  AudioSessionHelper.m
-//  VideoPhone
-//
-//  Created by eTouchSky on 2019/5/30.
-//  Copyright 漏 2019 eTouchSky. All rights reserved.
-//
-
-#import "AudioSessionHelper.h"
-#import <AVFoundation/AVFoundation.h>
-
-@interface AudioSessionHelper()
-
-@property (nonatomic,assign) BOOL                  speaking;
-
-@end
-
-@implementation AudioSessionHelper
-
-#pragma mark -- AVAudioSession鐨勮缃�
--(void)setAudioSession{
-    NSError *error = nil;
-    //鍏嶆彁鎾斁 鏈夊洖澹帮細 缃戠粶寮曡捣鍥為煶锛堜袱涓墜鏈洪殧澶繎灏变細寰堝ぇ锛夈�� 鎵嬫満鏈韩鐨勮璁℃湁闂锛堝綍鎾級锛屽叧闂檷鍣姛鑳斤紙鍏抽棴鍚庡熀鏈病鏈変簡锛�
-    [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
-    if (error) {
-        NSLog(@"AVAudioSessionCategoryPlayAndRecord error:%@", error);
-    }else{
-        NSLog(@"鍚瓛鎾斁");
-    }
-    
-    [[AVAudioSession sharedInstance] setActive:YES withOptions:kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation error:&error];
-    
-    [[AVAudioSession sharedInstance] setPreferredIOBufferDuration:0.05 error:&error];
-    if (error) {
-        NSLog(@"AVAudioSessionSetPreferredIOBufferDuration error:%@", error);
-    }
-    
-    /**< 鐮佺巼璁剧疆涓嶆纭細瀵艰嚧鎾斁鍑烘潵鐨勫0闊冲彉灏栨垨鍙樺钩锛屾湁涓�鐐规嫋闊虫垨鑰呮渶鍚庝竴鐐归煶灏戜簡,8000鐨勯噰鏍风巼璁剧疆16000鐨勭爜鐜囧緢濂�>*/
-    [[AVAudioSession sharedInstance] setPreferredSampleRate:16000 error:&error];
-    if (error) {
-        NSLog(@"setPreferredSampleRate error:%@", error);
-    }
-}
-
-
-//蹇呴』鍏坰etActive:NO  鍐嶈缃畂ption  鍐峴etActive:YES锛� 鍚﹀垯鏈変簺绯荤粺锛屾湁浜涚暩褰紝鍦ㄥ惉绛掓ā寮忎笅涓嶈兘閲囬泦
-//杩欓噷鎵撴柇鐐规祴璇曞彲鑳戒細鎶ラ敊锛歱2p缁堢锛岃В鐮佸櫒缁堢銆�
--(NSString *)speaker:(BOOL)isSpeaking{
-    
-    NSError *error = nil;
-    
-    [[AVAudioSession sharedInstance] setActive:NO error:&error];
-    if (error) {
-        NSLog(@"setActive:NO error:%@", error);
-    }
-    if (isSpeaking == NO) {
-        //鍚瓛鎾斁 鏁堟灉寰堝ソ
-        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
-        if (error) {
-            NSLog(@"AVAudioSessionCategoryPlayAndRecord error:%@", error);
-            return nil;
-        }else{
-            NSLog(@"鍚瓛鎾斁");
-             [[AVAudioSession sharedInstance] setActive:YES withOptions:kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation error:&error];
-            if (error) {
-                NSLog(@"setActive:YES error:%@", error);
-            }
-           
-           [self LogAudioSessionInfo];
-            
-            return @"鍏嶆彁";
-        }
-    }else{
-        //鍏嶆彁鎾斁 鏈夊洖澹帮細 缃戠粶寮曡捣鍥為煶锛堜袱涓墜鏈洪殧澶繎灏变細寰堝ぇ锛夈�� 鎵嬫満鏈韩鐨勮璁℃湁闂锛堝綍鎾級锛屽叧闂檷鍣姛鑳斤紙鍏抽棴鍚庡熀鏈病鏈変簡锛�
-        [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryPlayAndRecord withOptions:AVAudioSessionCategoryOptionDefaultToSpeaker error:&error];
-        if (error) {
-            NSLog(@"AVAudioSessionCategoryOptionDefaultToSpeaker error:%@", error);
-            return nil;
-        }else{
-            NSLog(@"鍏嶆彁鎾斁");
-             [[AVAudioSession sharedInstance] setActive:YES withOptions:kAudioSessionSetActiveFlag_NotifyOthersOnDeactivation error:&error];
-            if (error) {
-                NSLog(@"setActive:YES error:%@", error);
-            }
-            
-            //[self LogAudioSessionInfo];
-            
-            return @"鍚瓛";
-        }
-    }
-}
-
--(void)LogAudioSessionInfo{
-    AVAudioSessionCategory category = [[AVAudioSession sharedInstance] category];
-    AVAudioSessionCategoryOptions option = [[AVAudioSession sharedInstance] categoryOptions];
-    NSArray* inputArray = [[AVAudioSession sharedInstance] availableInputs];
-    NSArray* outputArray = [AVAudioSession sharedInstance].currentRoute.outputs;
-    NSLog(@"%@", category);
-    NSLog(@"%lu", (unsigned long)option);
-    NSLog(@"%@", inputArray);
-    NSLog(@"%@", outputArray);
-}
-
-/*
--(void)changeMicToHeadset{
-    NSArray* inputArray = [[AVAudioSession sharedInstance] availableInputs];
-    for (AVAudioSessionPortDescription* desc in inputArray) {
-        if ([desc.portType isEqualToString:AVAudioSessionPortHeadsetMic]) {
-            NSError* error;
-            [[AVAudioSession sharedInstance] setPreferredInput:desc error:&error];
-        }
-    }
-}
--(void)changeMicToBuiltIn{
-    NSArray* inputArray = [[AVAudioSession sharedInstance] availableInputs];
-    for (AVAudioSessionPortDescription* desc in inputArray) {
-        if ([desc.portType isEqualToString:AVAudioSessionPortBuiltInMic]) {
-            NSError* error;
-            [[AVAudioSession sharedInstance] setPreferredInput:desc error:&error];
-        }
-    }
-}
-*/
-@end
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.h b/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.h
deleted file mode 100644
index 5d89628..0000000
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.h
+++ /dev/null
@@ -1,27 +0,0 @@
-//
-//  ESVideo.h
-//  ESVideoPhoneSDKDemo
-//
-//  Created by 闄堝槈涔� on 2020/6/28.
-//  Copyright 漏 2020 eTouchSky. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-#import <ESVideoPhoneSDk/ESVideoPhone.h>
-#import <ESVideoPhoneSDk/ESError.h>
-
-NS_ASSUME_NONNULL_BEGIN
-
-@interface ESVideo : NSObject
-
-@property (nonatomic,strong) ESVideoPhone          *es;
-@property (nonatomic, copy) ImageCallback snapImageCallback;
- 
-
-+ (instancetype)shareInstance;
-+ (void)haltSharedInstance;
-
--(void)initSDK;
-
-@end
-NS_ASSUME_NONNULL_END
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.m b/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.m
deleted file mode 100644
index 79c0429..0000000
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ESVideo.m
+++ /dev/null
@@ -1,75 +0,0 @@
-//
-//  ESVideo.m
-//  ESVideoPhoneSDKDemo
-//
-//  Created by 闄堝槈涔� on 2020/6/28.
-//  Copyright 漏 2020 eTouchSky. All rights reserved.
-//
-
-#import "ESVideo.h"
-
-
-#define WEAKSELF_AT __weak __typeof(&*self)weakSelf_AT = self;
-@interface ESVideo()
-
-
-
-
-@end
-
-static ESVideo *_sharedInstance = nil;
-static dispatch_once_t _onceToken;
-
-@implementation ESVideo{
-    ImageCallback mSnapImageCallback;
-}
-
-+ (instancetype)shareInstance {
-    dispatch_once(&_onceToken, ^{
-        _sharedInstance = [[ESVideo alloc] init];
-        if(_sharedInstance) {
-            
-        }
-        NSLog(@"ESVideo ShareInstance Did Create %p",_sharedInstance);
-    });
-    //NSLog(@"Access ESVideo %p",sharedInstance);
-    return _sharedInstance;
-}
-
-+ (void)haltSharedInstance {
-    if (_sharedInstance) {
-        _sharedInstance = nil;
-        _onceToken = 0;
-    }
-}
-
-
-- (instancetype)init {
-    self = [super init];
-    
-    WEAKSELF_AT
-    mSnapImageCallback = ^(UIImage *image){
-        if(weakSelf_AT.snapImageCallback){
-            weakSelf_AT.snapImageCallback(image);
-        }
-    };
-    //闂ㄥ彛鏈轰細鏈夎棰戠殑闀垮楂橈紝鏄浐瀹氱殑锛堟殏鏃惰繕涓嶇‘瀹氾級
-    _es = [[ESVideoPhone alloc]initESVideoPhoneWithFrame: CGRectMake(10, 100, [[UIScreen mainScreen] bounds].size.width-20, ([[UIScreen mainScreen] bounds].size.width-20)/4*3) delegate:nil imagecallBack:mSnapImageCallback];
-    
-    
-    return self;
-}
-
-- (void)dealloc {
-    NSLog(@"ESVideo SharedInstance Did Halted ");
-}
-
--(void)initSDK{
-    
-     NSLog(@"ESVideo initSDK");
-    
-}
-
-
-@end
-
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/ESVideoPhoneSDk b/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
deleted file mode 100644
index b4e6dac..0000000
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
+++ /dev/null
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory b/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
deleted file mode 100644
index 66da18c..0000000
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
+++ /dev/null
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements b/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
deleted file mode 100644
index 4a29992..0000000
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
+++ /dev/null
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1 b/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
deleted file mode 100644
index 6c9adc7..0000000
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
+++ /dev/null
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature b/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
deleted file mode 100644
index 7d20839..0000000
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
+++ /dev/null
Binary files differ
diff --git a/On+/ESVideoOn/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj b/On+/ESVideoOn/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj
index 9f83e40..2721845 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj
+++ b/On+/ESVideoOn/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj
@@ -13,6 +13,7 @@
 		B95069F025F9C63A00F6FD4F /* OpenViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B95069EA25F9C63A00F6FD4F /* OpenViewController.m */; };
 		B95069FC25F9C68D00F6FD4F /* ESOnIntercomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B95069F725F9C68D00F6FD4F /* ESOnIntercomViewController.m */; };
 		B95069FD25F9C68D00F6FD4F /* ESOnMonitorViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B95069F925F9C68D00F6FD4F /* ESOnMonitorViewController.m */; };
+		B95311C0260C1CF20009B3DA /* ESCallDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B95311BF260C1CF20009B3DA /* ESCallDelegate.m */; };
 		C3385925233DAF06006940C3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C3385924233DAF06006940C3 /* AppDelegate.m */; };
 		C3385928233DAF06006940C3 /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C3385927233DAF06006940C3 /* SceneDelegate.m */; };
 		C338592B233DAF06006940C3 /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = C338592A233DAF06006940C3 /* ViewController.mm */; };
@@ -59,6 +60,8 @@
 		B95069F925F9C68D00F6FD4F /* ESOnMonitorViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ESOnMonitorViewController.m; sourceTree = "<group>"; };
 		B95069FA25F9C68D00F6FD4F /* ESOnIntercomViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ESOnIntercomViewController.h; sourceTree = "<group>"; };
 		B95069FB25F9C68D00F6FD4F /* ESOnUtlis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ESOnUtlis.h; sourceTree = "<group>"; };
+		B95311BE260C1CF20009B3DA /* ESCallDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ESCallDelegate.h; sourceTree = "<group>"; };
+		B95311BF260C1CF20009B3DA /* ESCallDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ESCallDelegate.m; sourceTree = "<group>"; };
 		C3385920233DAF06006940C3 /* HDLZigBeeESVideoDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HDLZigBeeESVideoDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		C3385923233DAF06006940C3 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
 		C3385924233DAF06006940C3 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
@@ -129,6 +132,8 @@
 				B95069F925F9C68D00F6FD4F /* ESOnMonitorViewController.m */,
 				B95069E525F9C63A00F6FD4F /* OpenViewController.h */,
 				B95069EA25F9C63A00F6FD4F /* OpenViewController.m */,
+				B95311BE260C1CF20009B3DA /* ESCallDelegate.h */,
+				B95311BF260C1CF20009B3DA /* ESCallDelegate.m */,
 			);
 			path = On;
 			sourceTree = "<group>";
@@ -337,6 +342,7 @@
 			files = (
 				C338592B233DAF06006940C3 /* ViewController.mm in Sources */,
 				C3385925233DAF06006940C3 /* AppDelegate.m in Sources */,
+				B95311C0260C1CF20009B3DA /* ESCallDelegate.m in Sources */,
 				B95069EF25F9C63A00F6FD4F /* CBToast.m in Sources */,
 				B95069FC25F9C68D00F6FD4F /* ESOnIntercomViewController.m in Sources */,
 				B95069FD25F9C68D00F6FD4F /* ESOnMonitorViewController.m in Sources */,
diff --git a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESCallDelegate.h b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESCallDelegate.h
new file mode 100644
index 0000000..0e8e50e
--- /dev/null
+++ b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESCallDelegate.h
@@ -0,0 +1,37 @@
+//
+//  ESCallDelegate.h
+//  ESVideoPhoneSDKDemo
+//
+//  Created by 闄堝槈涔� on 2021/3/25.
+//  Copyright 漏 2021 eTouchSky. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol ESCallDelegate <NSObject>
+
+//鎺ュ惉鍥炶皟
+-(void)onAnswerAction;
+
+//鎷掓帴鏉ョ數鍥炶皟
+-(void)onRejectCallAction;
+
+//寮�濮嬫垚鍔熷洖璋�
+-(void)onUnlockAction;
+
+//鎸傛柇锛堥�氳瘽缁撴潫锛�
+-(void)onHangUpAction:(int)callDuration;
+
+//閫氳瘽瑙嗛鎴浘涓婁紶
+-(void)onScreenshotSuccessfulAction:(UIImage *)image;
+
+@end
+
+@interface ESCallDelegate : NSObject
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESCallDelegate.m b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESCallDelegate.m
new file mode 100644
index 0000000..aba4e7d
--- /dev/null
+++ b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESCallDelegate.m
@@ -0,0 +1,13 @@
+//
+//  ESCallDelegate.m
+//  ESVideoPhoneSDKDemo
+//
+//  Created by 闄堝槈涔� on 2021/3/25.
+//  Copyright 漏 2021 eTouchSky. All rights reserved.
+//
+
+#import "ESCallDelegate.h"
+
+@implementation ESCallDelegate
+
+@end
diff --git a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnIntercomViewController.h b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnIntercomViewController.h
index 85599b6..ad5c4e8 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnIntercomViewController.h
+++ b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnIntercomViewController.h
@@ -7,6 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
+#import "ESCallDelegate.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -17,6 +18,14 @@
 @property (nonatomic,strong) NSString               *roomName;
 @property (nonatomic,strong) NSString               *deviceName;
 
+#pragma mark ESCallDelegate
+/**
+ 涓版灄浜嬩欢浠g悊
+ */
+@property (nonatomic, weak) id<ESCallDelegate> mESCallDelegate;
+
+#pragma mark 瀵瑰鎺ュ彛鏂规硶
+
 @end
 
 NS_ASSUME_NONNULL_END
diff --git a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnIntercomViewController.m b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnIntercomViewController.m
index 8286472..1e59fe4 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnIntercomViewController.m
+++ b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnIntercomViewController.m
@@ -61,6 +61,7 @@
     BOOL isBackGround;
     BOOL iSVideoNotDetermined;
     BOOL iSAudioNotDetermined;
+    BOOL isAnswer;//鏄惁宸茬粡鐐瑰嚮鎺ュ惉杩囦簡
     
     NSString * tipStr;
     NSString * okStr;
@@ -301,6 +302,17 @@
 
 //鎸傛柇鎸夐挳浜嬩欢
 -(void)hangUpAction{
+    //1.鍥炶皟浜嬩欢
+    if(self.mESCallDelegate != NULL){
+        if(isAnswer){
+            //濡傛灉涔嬪墠宸茬粡鎺ュ惉浜嗭紝鍥炶皟鏄寕鏂�
+            [self.mESCallDelegate onHangUpAction:_callTimeout];
+        }else{
+            //濡傛灉涔嬪墠娌℃帴鍚簡锛屽洖璋冩槸鎷掓帴
+            [self.mESCallDelegate onRejectCallAction];
+        }
+    }
+    //2.椤甸潰鍏抽棴
     [self backAction];
 }
 
@@ -352,6 +364,11 @@
     //寮�濮嬭鏃�
     _callTimeout = 0;
     [self startCountdown];
+    isAnswer = YES;
+    
+    if(self.mESCallDelegate != NULL){
+        [self.mESCallDelegate onAnswerAction];
+    }
     
 }
 
@@ -488,8 +505,10 @@
     _openDoorTimeout = 0;
     [self startOpenDoorCountdown];
     [self showUIAlertView:unlockSuccessfullyStr];
-    
-    
+    // 寮�閿佹垚鍔熷洖璋�
+    if(self.mESCallDelegate != NULL){
+        [self.mESCallDelegate onUnlockAction];
+    }
 }
 
 -(void)setUnlock:(BOOL)ISEnable{
@@ -1110,6 +1129,10 @@
     NSString *message = nil;
     if (!error) {
         message = saveToTheAlbumsStr;
+        // 鎴浘鎴愬姛鍥炶皟
+        if(self.mESCallDelegate != NULL){
+            [self.mESCallDelegate onScreenshotSuccessfulAction:image];
+        }
     }
     else
     {
diff --git a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnMonitorViewController.h b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnMonitorViewController.h
index 972b95c..a54c902 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnMonitorViewController.h
+++ b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnMonitorViewController.h
@@ -7,6 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
+#import "ESCallDelegate.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -17,6 +18,13 @@
 @property (nonatomic,strong) NSString               *roomName;
 @property (nonatomic,strong) NSString               *deviceName;
 
+#pragma mark ESCallDelegate
+/**
+ 涓版灄浜嬩欢浠g悊
+ */
+@property (nonatomic, weak) id<ESCallDelegate> mESCallDelegate;
+
+#pragma mark 瀵瑰鎺ュ彛鏂规硶
 
 @end
 
diff --git a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnMonitorViewController.m b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnMonitorViewController.m
index 20d7ebb..daf735b 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnMonitorViewController.m
+++ b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/ESOnMonitorViewController.m
@@ -299,6 +299,10 @@
     _openDoorTimeout = 0;
     [self startOpenDoorCountdown];
     [self showUIAlertView:unlockSuccessfullyStr];
+    // 寮�閿佹垚鍔熷洖璋�
+    if(self.mESCallDelegate != NULL){
+        [self.mESCallDelegate onUnlockAction];
+    }
 }
 
 -(void)setUnlock:(BOOL)ISEnable{
diff --git a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/OpenViewController.m b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/OpenViewController.m
index 54bc907..512021f 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/OpenViewController.m
+++ b/On+/ESVideoOn/ESVideoPhoneSDKDemo/On/OpenViewController.m
@@ -36,7 +36,7 @@
     [super viewDidLoad];
     self.view.backgroundColor = [UIColor whiteColor];
     
-    [ESVideo.shareInstance initSDK];
+//    [ESVideo.shareInstance initSDK];
     // Do any additional setup after loading the view.
     
     [self.view addSubview:self.monitorBtn];
diff --git a/On+/ESVideoOn/ESVideoPhoneSDk.framework/ESVideoPhoneSDk b/On+/ESVideoOn/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
index 6867847..d1587ef 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
+++ b/On+/ESVideoOn/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
Binary files differ
diff --git a/On+/ESVideoOn/ESVideoPhoneSDk.framework/Headers/ESError.h b/On+/ESVideoOn/ESVideoPhoneSDk.framework/Headers/ESError.h
index 1cda4f1..0d5fe9d 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDk.framework/Headers/ESError.h
+++ b/On+/ESVideoOn/ESVideoPhoneSDk.framework/Headers/ESError.h
@@ -68,9 +68,13 @@
     LMPAudioPlayErrorBypassVoiceProcessing          = 6,//AudioPlay_鎵撳紑鍥炲0娑堥櫎鍔熻兘澶辫触
     LMPAudioPlayErrorAudioUnitInitialize            = 7,//AudioPlay_AudioUnitInitialize澶辫触
 };
+//闊抽閲嶉噰鏍凤紝浼氬鑷翠笉鑳藉彂閫佹挱鏀鹃煶棰戙��
+typedef NS_ENUM (NSUInteger, LMPAudioConverterError){
+    LMPAudioConverterErrorGetNew                   = 0,//GetNew澶辫触
+    LMPAudioConverterErrorRecord                   = 1,//Record澶辫触
+};
 
 @interface ESError : NSObject
 
 @end
-
 
diff --git a/On+/ESVideoOn/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h b/On+/ESVideoOn/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
index 11f1d89..d3ed23c 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
+++ b/On+/ESVideoOn/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
@@ -26,21 +26,26 @@
 @property(nonatomic,strong,readonly) UIView* showView;
 //涓柇璁剧疆
 @property (nonatomic,assign,readwrite) BOOL isInterrupt;
-
 /**
 * ESVideoPhone 鍒濆鍖栨柟娉�
-*
+* 鍒濆鍖朠2P锛孫penGL锛孉udioUnit鎾斁銆�
 * @param frame 鐢熸垚鏄剧ず瑙嗛鐨凜GRect
 * @param delegate ESVideoPhoneDelegate浠g悊
 * @paramimagecallBack 鑾峰彇瑙嗛鎴浘鐨刡lock
 *
-*  @return ESVideoPhone 瀹炰緥,杩斿洖nil琛ㄧず鍒濆鍖栧け璐ャ��
+*  @return ESVideoPhone 瀹炰緥,杩斿洖nil琛ㄧずP2P鍒濆鍖栧け璐ャ��
 */
 - (instancetype)initESVideoPhoneWithFrame:(CGRect)frame delegate: (id<ESVideoPhoneDelegate>)del imagecallBack:(ImageCallback)callBack;
 //鎺堟潈鍚庢墦寮�闊抽閲囬泦锛岃棰戞病鏈夋潈闄愪篃鍙互鍙煶棰戦�氳瘽
 -(BOOL)initAudioCaptureSession;
 //鈿狅笍鎺堟潈鍚庢墦寮�瑙嗛閲囬泦锛岄煶棰戞病鏈夋潈闄愬缓璁笉瑕佸彂璧烽�氳瘽
 -(BOOL)initVideoCaptureSession;
+/**
+* 鍛煎彨
+*
+* @param deviceId 闂ㄥ彛鏈鸿澶嘔D锛岃繖涓弬鏁颁細浠庡悗鍙版媺鍙栵紙涓�鑸槸涓暟缁勫叾涓寘鍚鐢ㄦ埛鏉冮檺鎷ユ湁鐨勬墍鏈夐棬鍙f満锛�
+*/
+- (void)onCall:(NSString *)deviceId;
 /**
 * 鐩戞帶
 *
@@ -75,6 +80,10 @@
 -(void)openTheDoorWithRoomid: (int)roomId;
 //閲婃斁璧勬簮锛坉elegate閲婃斁绛夛級
 -(void)freeSubClass;
+
+//鍏嶆彁鎾斁 鍚瓛鎾斁 浜掔浉鍒囨崲  buffer閲嶅埗涓�0锛屽惁鍒欐湁浜涚郴缁燂紝鍦ㄥ惉绛掓ā寮忎笅涓嶈兘閲囬泦 error-50
+-(BOOL)resetAudioCaptureIsSpeak:(BOOL)isSpeak;
+
 @end
 
 
diff --git a/On+/ESVideoOn/ESVideoPhoneSDk.framework/Info.plist b/On+/ESVideoOn/ESVideoPhoneSDk.framework/Info.plist
index 6a58dbc..396d13b 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDk.framework/Info.plist
+++ b/On+/ESVideoOn/ESVideoPhoneSDk.framework/Info.plist
Binary files differ
diff --git a/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory b/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
index 22986fc..ba66cf3 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
+++ b/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
Binary files differ
diff --git a/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1 b/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
index f31b403..84caed2 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
+++ b/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
Binary files differ
diff --git a/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources b/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
index 71cc318..f977b4c 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
+++ b/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
@@ -6,15 +6,15 @@
 	<dict>
 		<key>Headers/ESError.h</key>
 		<data>
-		6x23lohs1gRaX2F7raZcezxZt4A=
+		pvjBtkhm2U/Y83vkOrTjVeFC1rc=
 		</data>
 		<key>Headers/ESVideoPhone.h</key>
 		<data>
-		PXntC+GjEn5A+q23YZHDZYIGj3k=
+		kGvbOvS6cBnVsmUHmyi2E6VgP+8=
 		</data>
 		<key>Info.plist</key>
 		<data>
-		pac6jrrTIT3Ur/3XHh3CoCOUlnE=
+		Zp/dsh9RYNjl/knrzPgFdMIaTIU=
 		</data>
 	</dict>
 	<key>files2</key>
@@ -23,22 +23,22 @@
 		<dict>
 			<key>hash</key>
 			<data>
-			6x23lohs1gRaX2F7raZcezxZt4A=
+			pvjBtkhm2U/Y83vkOrTjVeFC1rc=
 			</data>
 			<key>hash2</key>
 			<data>
-			y8ReVa9YaZ6fyPjy8EeTl3jbaUadZUYVC0IdLJ/HrgM=
+			18Khpfz8wF7kpRYfu0Hu9nXX8ojPhCddZq9AC5/W4P0=
 			</data>
 		</dict>
 		<key>Headers/ESVideoPhone.h</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			PXntC+GjEn5A+q23YZHDZYIGj3k=
+			kGvbOvS6cBnVsmUHmyi2E6VgP+8=
 			</data>
 			<key>hash2</key>
 			<data>
-			MboPVH5djlpgR//Z7UcRBMEeaakW6FWQbZxlkx4KzaM=
+			0nI6AIHD+V13SkVwTcbXE/eDC2SJLVTIcX2hiIoRtJg=
 			</data>
 		</dict>
 	</dict>
diff --git a/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature b/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
index 8bda88d..f2b78a0 100644
--- a/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
+++ b/On+/ESVideoOn/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
Binary files differ
diff --git a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin.xcodeproj/project.pbxproj b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin.xcodeproj/project.pbxproj
index 736e088..ce111c6 100644
--- a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin.xcodeproj/project.pbxproj
+++ b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin.xcodeproj/project.pbxproj
@@ -16,6 +16,7 @@
 		B9506A3625F9EEE900F6FD4F /* ESOnIntercomViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B9506A2E25F9EEE900F6FD4F /* ESOnIntercomViewController.m */; platformFilter = ios; };
 		B9506A3725F9EEE900F6FD4F /* ESVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = B9506A3125F9EEE900F6FD4F /* ESVideo.m */; platformFilter = ios; };
 		B9506A4725F9F0E300F6FD4F /* ESVideoPhoneSDk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B9506A4625F9F0E300F6FD4F /* ESVideoPhoneSDk.framework */; platformFilter = ios; };
+		B95311C6260C23620009B3DA /* ESCallDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B95311C4260C23620009B3DA /* ESCallDelegate.m */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXCopyFilesBuildPhase section */
@@ -47,6 +48,8 @@
 		B9506A3125F9EEE900F6FD4F /* ESVideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ESVideo.m; sourceTree = "<group>"; };
 		B9506A3225F9EEE900F6FD4F /* ESOnUtlis.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ESOnUtlis.h; sourceTree = "<group>"; };
 		B9506A4625F9F0E300F6FD4F /* ESVideoPhoneSDk.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ESVideoPhoneSDk.framework; path = Extern/ESVideoPhoneSDk.framework; sourceTree = "<group>"; };
+		B95311C4260C23620009B3DA /* ESCallDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ESCallDelegate.m; sourceTree = "<group>"; };
+		B95311C5260C23620009B3DA /* ESCallDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ESCallDelegate.h; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -84,6 +87,8 @@
 		B9506A1125F9EE3100F6FD4F /* ESVideoOnXamarin */ = {
 			isa = PBXGroup;
 			children = (
+				B95311C5260C23620009B3DA /* ESCallDelegate.h */,
+				B95311C4260C23620009B3DA /* ESCallDelegate.m */,
 				B9506A2825F9EEE900F6FD4F /* AudioSessionHelper.h */,
 				B9506A2D25F9EEE900F6FD4F /* AudioSessionHelper.m */,
 				B9506A3025F9EEE900F6FD4F /* CBToast.h */,
@@ -166,6 +171,7 @@
 			isa = PBXSourcesBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
+				B95311C6260C23620009B3DA /* ESCallDelegate.m in Sources */,
 				B9506A3625F9EEE900F6FD4F /* ESOnIntercomViewController.m in Sources */,
 				B9506A3725F9EEE900F6FD4F /* ESVideo.m in Sources */,
 				B9506A3325F9EEE900F6FD4F /* CBToast.m in Sources */,
diff --git a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESCallDelegate.h b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESCallDelegate.h
new file mode 100644
index 0000000..0e8e50e
--- /dev/null
+++ b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESCallDelegate.h
@@ -0,0 +1,37 @@
+//
+//  ESCallDelegate.h
+//  ESVideoPhoneSDKDemo
+//
+//  Created by 闄堝槈涔� on 2021/3/25.
+//  Copyright 漏 2021 eTouchSky. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+#import <UIKit/UIKit.h>
+
+NS_ASSUME_NONNULL_BEGIN
+
+@protocol ESCallDelegate <NSObject>
+
+//鎺ュ惉鍥炶皟
+-(void)onAnswerAction;
+
+//鎷掓帴鏉ョ數鍥炶皟
+-(void)onRejectCallAction;
+
+//寮�濮嬫垚鍔熷洖璋�
+-(void)onUnlockAction;
+
+//鎸傛柇锛堥�氳瘽缁撴潫锛�
+-(void)onHangUpAction:(int)callDuration;
+
+//閫氳瘽瑙嗛鎴浘涓婁紶
+-(void)onScreenshotSuccessfulAction:(UIImage *)image;
+
+@end
+
+@interface ESCallDelegate : NSObject
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESCallDelegate.m b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESCallDelegate.m
new file mode 100644
index 0000000..aba4e7d
--- /dev/null
+++ b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESCallDelegate.m
@@ -0,0 +1,13 @@
+//
+//  ESCallDelegate.m
+//  ESVideoPhoneSDKDemo
+//
+//  Created by 闄堝槈涔� on 2021/3/25.
+//  Copyright 漏 2021 eTouchSky. All rights reserved.
+//
+
+#import "ESCallDelegate.h"
+
+@implementation ESCallDelegate
+
+@end
diff --git a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnIntercomViewController.h b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnIntercomViewController.h
index 85599b6..ad5c4e8 100644
--- a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnIntercomViewController.h
+++ b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnIntercomViewController.h
@@ -7,6 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
+#import "ESCallDelegate.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -17,6 +18,14 @@
 @property (nonatomic,strong) NSString               *roomName;
 @property (nonatomic,strong) NSString               *deviceName;
 
+#pragma mark ESCallDelegate
+/**
+ 涓版灄浜嬩欢浠g悊
+ */
+@property (nonatomic, weak) id<ESCallDelegate> mESCallDelegate;
+
+#pragma mark 瀵瑰鎺ュ彛鏂规硶
+
 @end
 
 NS_ASSUME_NONNULL_END
diff --git a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnIntercomViewController.m b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnIntercomViewController.m
index 8286472..4a07cfa 100644
--- a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnIntercomViewController.m
+++ b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnIntercomViewController.m
@@ -61,6 +61,7 @@
     BOOL isBackGround;
     BOOL iSVideoNotDetermined;
     BOOL iSAudioNotDetermined;
+    BOOL isAnswer;//鏄惁宸茬粡鐐瑰嚮鎺ュ惉杩囦簡
     
     NSString * tipStr;
     NSString * okStr;
@@ -71,6 +72,7 @@
     NSString * unlockSuccessfullyStr;
     NSString * callingStr;
     NSString * hangUpStr;
+    NSString * hasBeenHungUpStr;
     //    int openDoorTimeout;
     //鍏ㄥ眬鍙橀噺
     SystemSoundID sound;
@@ -110,6 +112,7 @@
         hangUpStr = @"鎸傛柇";
         unlockSuccessfullyStr = @"寮�閿佹垚鍔�";
         callingStr = @"鏉ョ數涓�...";
+        hasBeenHungUpStr = @"宸叉寕鏂�";
     }else{
         tipStr = @"Prompt";
         okStr = @"OK";
@@ -120,6 +123,7 @@
         hangUpStr = @"Hang up";
         unlockSuccessfullyStr = @"Unlock successfully";
         callingStr = @"Incoming call";
+        hasBeenHungUpStr = @"Has been hung up";
         
     }
 }
@@ -301,6 +305,17 @@
 
 //鎸傛柇鎸夐挳浜嬩欢
 -(void)hangUpAction{
+    //1.鍥炶皟浜嬩欢
+    if(self.mESCallDelegate != NULL){
+        if(isAnswer){
+            //濡傛灉涔嬪墠宸茬粡鎺ュ惉浜嗭紝鍥炶皟鏄寕鏂�
+            [self.mESCallDelegate onHangUpAction:_callTimeout];
+        }else{
+            //濡傛灉涔嬪墠娌℃帴鍚簡锛屽洖璋冩槸鎷掓帴
+            [self.mESCallDelegate onRejectCallAction];
+        }
+    }
+    //2.椤甸潰鍏抽棴
     [self backAction];
 }
 
@@ -352,6 +367,11 @@
     //寮�濮嬭鏃�
     _callTimeout = 0;
     [self startCountdown];
+    isAnswer = YES;
+    
+    if(self.mESCallDelegate != NULL){
+        [self.mESCallDelegate onAnswerAction];
+    }
     
 }
 
@@ -488,8 +508,10 @@
     _openDoorTimeout = 0;
     [self startOpenDoorCountdown];
     [self showUIAlertView:unlockSuccessfullyStr];
-    
-    
+    // 寮�閿佹垚鍔熷洖璋�
+    if(self.mESCallDelegate != NULL){
+        [self.mESCallDelegate onUnlockAction];
+    }
 }
 
 -(void)setUnlock:(BOOL)ISEnable{
@@ -739,7 +761,7 @@
         
         //           [_mCallOrAccept setTitle:@"閫氳瘽涓�..." forState:UIControlStateNormal];
     }else if([phoneEventStr  isEqual:@"EVT_HangUp"]){
-        [self showUIAlertViewWithBack:@"宸叉寕鏂�"];
+        [self showUIAlertViewWithBack:hasBeenHungUpStr];
         //           [_mCallOrAccept setTitle:@"鍙嶅懠" forState:UIControlStateNormal];
     }else if([phoneEventStr  isEqual:@"EVT_P2POnlineStatusChanged"]){
         //EVT_P2PStarted(p2p鍒濆鍖朞K锛屽彲浠ヨ繛鎺�),EVT_P2POnlineStatusChangedonline=1
@@ -753,7 +775,7 @@
         NSDictionary *dic = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
         NSInteger status = [[dic valueForKey:@"status"]integerValue];
         if(status && status == 1){
-            NSLog(@"寮�闂ㄦ垚鍔�");
+//            NSLog(@"寮�闂ㄦ垚鍔�");
             [self setOpenDoorSuccess];
         }else{
             NSLog(@"寮�闂ㄥけ璐�");
@@ -1110,6 +1132,10 @@
     NSString *message = nil;
     if (!error) {
         message = saveToTheAlbumsStr;
+        // 鎴浘鎴愬姛鍥炶皟
+        if(self.mESCallDelegate != NULL){
+            [self.mESCallDelegate onScreenshotSuccessfulAction:image];
+        }
     }
     else
     {
diff --git a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnMonitorViewController.h b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnMonitorViewController.h
index 972b95c..a54c902 100644
--- a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnMonitorViewController.h
+++ b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnMonitorViewController.h
@@ -7,6 +7,7 @@
 //
 
 #import <UIKit/UIKit.h>
+#import "ESCallDelegate.h"
 
 NS_ASSUME_NONNULL_BEGIN
 
@@ -17,6 +18,13 @@
 @property (nonatomic,strong) NSString               *roomName;
 @property (nonatomic,strong) NSString               *deviceName;
 
+#pragma mark ESCallDelegate
+/**
+ 涓版灄浜嬩欢浠g悊
+ */
+@property (nonatomic, weak) id<ESCallDelegate> mESCallDelegate;
+
+#pragma mark 瀵瑰鎺ュ彛鏂规硶
 
 @end
 
diff --git a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnMonitorViewController.m b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnMonitorViewController.m
index 20d7ebb..d85c3f7 100644
--- a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnMonitorViewController.m
+++ b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESOnMonitorViewController.m
@@ -57,7 +57,7 @@
     NSString * unlockStr;
     NSString * endOfMonitoringStr;
     NSString * unlockSuccessfullyStr;
-    
+   
     CGFloat Height66;
     
     //    int _openDoorTimeout;
@@ -299,6 +299,10 @@
     _openDoorTimeout = 0;
     [self startOpenDoorCountdown];
     [self showUIAlertView:unlockSuccessfullyStr];
+    // 寮�閿佹垚鍔熷洖璋�
+    if(self.mESCallDelegate != NULL){
+        [self.mESCallDelegate onUnlockAction];
+    }
 }
 
 -(void)setUnlock:(BOOL)ISEnable{
diff --git a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESVideo.m b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESVideo.m
index d1d6dc1..f7816a3 100644
--- a/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESVideo.m
+++ b/On+/xamarin/ESVideoOnXamarin/ESVideoOnXamarin/ESVideo.m
@@ -57,7 +57,7 @@
         }
     };
     //闂ㄥ彛鏈轰細鏈夎棰戠殑闀垮楂橈紝鏄浐瀹氱殑锛堟殏鏃惰繕涓嶇‘瀹氾級
-    _es = [[ESVideoPhone alloc]initESVideoPhoneWithFrame: CGRectMake(0, 0, [[UIScreen mainScreen] bounds].size.width, GetRealWidth(210)) delegate:nil imagecallBack:mSnapImageCallback];
+    _es = [[ESVideoPhone alloc]initESVideoPhoneWithFrame: CGRectMake(0, 0, APP_SCREEN_WIDTH, GetRealWidth(210)) delegate:nil imagecallBack:mSnapImageCallback];
     
     
     return self;
diff --git a/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/ApiDefinition.cs b/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/ApiDefinition.cs
index 9c5e037..a9e7c6f 100644
--- a/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/ApiDefinition.cs
+++ b/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/ApiDefinition.cs
@@ -6,48 +6,6 @@
 
 namespace Shared.IOS.ESVideoOnSDK
 {
-	// @interface ESOnIntercomViewController : UIViewController
-	[BaseType(typeof(UIViewController))]
-	interface ESOnIntercomViewController
-	{
-		// @property (nonatomic, strong) NSString * _Nonnull mESVideoID;
-		[Export("mESVideoID", ArgumentSemantic.Strong)]
-		string MESVideoID { get; set; }
-
-		// @property (assign, nonatomic) int mESRoomID;
-		[Export("mESRoomID")]
-		int MESRoomID { get; set; }
-
-		// @property (nonatomic, strong) NSString * _Nonnull roomName;
-		[Export("roomName", ArgumentSemantic.Strong)]
-		string RoomName { get; set; }
-
-		// @property (nonatomic, strong) NSString * _Nonnull deviceName;
-		[Export("deviceName", ArgumentSemantic.Strong)]
-		string DeviceName { get; set; }
-	}
-
-	// @interface ESOnMonitorViewController : UIViewController
-	[BaseType(typeof(UIViewController))]
-	interface ESOnMonitorViewController
-	{
-		// @property (nonatomic, strong) NSString * _Nonnull mESVideoID;
-		[Export("mESVideoID", ArgumentSemantic.Strong)]
-		string MESVideoID { get; set; }
-
-		// @property (assign, nonatomic) int mESRoomID;
-		[Export("mESRoomID")]
-		int MESRoomID { get; set; }
-
-		// @property (nonatomic, strong) NSString * _Nonnull roomName;
-		[Export("roomName", ArgumentSemantic.Strong)]
-		string RoomName { get; set; }
-
-		// @property (nonatomic, strong) NSString * _Nonnull deviceName;
-		[Export("deviceName", ArgumentSemantic.Strong)]
-		string DeviceName { get; set; }
-	}
-
 	// @interface ESVideo : NSObject
 	[BaseType(typeof(NSObject))]
 	interface ESVideo
@@ -75,5 +33,100 @@
 		void InitSDK();
 	}
 
+	// @protocol ESCallDelegate <NSObject>
+	[Protocol, Model(AutoGeneratedName = true)]
+	[BaseType(typeof(NSObject))]
+	interface ESCallDelegate
+	{
+		// @required -(void)onAnswerAction;
+		[Abstract]
+		[Export("onAnswerAction")]
+		void OnAnswerAction();
+
+		// @required -(void)onRejectCallAction;
+		[Abstract]
+		[Export("onRejectCallAction")]
+		void OnRejectCallAction();
+
+		// @required -(void)onUnlockAction;
+		[Abstract]
+		[Export("onUnlockAction")]
+		void OnUnlockAction();
+
+		// @required -(void)onHangUpAction:(int)callDuration;
+		[Abstract]
+		[Export("onHangUpAction:")]
+		void OnHangUpAction(int callDuration);
+
+		// @required -(void)onScreenshotSuccessfulAction:(UIImage * _Nonnull)image;
+		[Abstract]
+		[Export("onScreenshotSuccessfulAction:")]
+		void OnScreenshotSuccessfulAction(UIImage image);
+	}
+
+	//// @interface ESCallDelegate : NSObject
+	//[BaseType(typeof(NSObject))]
+	//interface ESCallDelegate
+	//{
+	//}
+
+	// @interface ESOnIntercomViewController : UIViewController
+	[BaseType(typeof(UIViewController))]
+	interface ESOnIntercomViewController
+	{
+		// @property (nonatomic, strong) NSString * _Nonnull mESVideoID;
+		[Export("mESVideoID", ArgumentSemantic.Strong)]
+		string MESVideoID { get; set; }
+
+		// @property (assign, nonatomic) int mESRoomID;
+		[Export("mESRoomID")]
+		int MESRoomID { get; set; }
+
+		// @property (nonatomic, strong) NSString * _Nonnull roomName;
+		[Export("roomName", ArgumentSemantic.Strong)]
+		string RoomName { get; set; }
+
+		// @property (nonatomic, strong) NSString * _Nonnull deviceName;
+		[Export("deviceName", ArgumentSemantic.Strong)]
+		string DeviceName { get; set; }
+
+		[Wrap("WeakMESCallDelegate")]
+		[NullAllowed]
+		ESCallDelegate MESCallDelegate { get; set; }
+
+		// @property (nonatomic, weak) id<ESCallDelegate> _Nullable mESCallDelegate;
+		[NullAllowed, Export("mESCallDelegate", ArgumentSemantic.Weak)]
+		NSObject WeakMESCallDelegate { get; set; }
+	}
+
+	// @interface ESOnMonitorViewController : UIViewController
+	[BaseType(typeof(UIViewController))]
+	interface ESOnMonitorViewController
+	{
+		// @property (nonatomic, strong) NSString * _Nonnull mESVideoID;
+		[Export("mESVideoID", ArgumentSemantic.Strong)]
+		string MESVideoID { get; set; }
+
+		// @property (assign, nonatomic) int mESRoomID;
+		[Export("mESRoomID")]
+		int MESRoomID { get; set; }
+
+		// @property (nonatomic, strong) NSString * _Nonnull roomName;
+		[Export("roomName", ArgumentSemantic.Strong)]
+		string RoomName { get; set; }
+
+		// @property (nonatomic, strong) NSString * _Nonnull deviceName;
+		[Export("deviceName", ArgumentSemantic.Strong)]
+		string DeviceName { get; set; }
+
+		[Wrap("WeakMESCallDelegate")]
+		[NullAllowed]
+		ESCallDelegate MESCallDelegate { get; set; }
+
+		// @property (nonatomic, weak) id<ESCallDelegate> _Nullable mESCallDelegate;
+		[NullAllowed, Export("mESCallDelegate", ArgumentSemantic.Weak)]
+		NSObject WeakMESCallDelegate { get; set; }
+	}
+
 }
 
diff --git a/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Library/libESVideoOnXamarin.a b/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Library/libESVideoOnXamarin.a
index 05c4668..3207be8 100644
--- a/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Library/libESVideoOnXamarin.a
+++ b/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Library/libESVideoOnXamarin.a
Binary files differ
diff --git a/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Properties/AssemblyInfo.cs b/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Properties/AssemblyInfo.cs
index 8a3ef99..54e5b18 100644
--- a/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Properties/AssemblyInfo.cs
+++ b/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Properties/AssemblyInfo.cs
@@ -25,7 +25,7 @@
 // The form "{Major}.{Minor}.*" will automatically update the build and revision,
 // and "{Major}.{Minor}.{Build}.*" will update just the revision.
 
-[assembly: AssemblyVersion("1.0.1")]
+[assembly: AssemblyVersion("1.0.2")]
 
 // The following attributes are used to specify the signing key for the assembly,
 // if desired. See the Mono documentation for more information about signing.
diff --git a/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK.sln b/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK.sln
new file mode 100644
index 0000000..51c91c3
--- /dev/null
+++ b/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK.sln
@@ -0,0 +1,25 @@
+锘�
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio Version 16
+VisualStudioVersion = 16.0.808.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Shared.IOS.ESVideoOnSDK", "Shared.IOS.ESVideoOnSDK.csproj", "{D1832CED-B861-4FE3-A3BD-3D582C108D3A}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{D1832CED-B861-4FE3-A3BD-3D582C108D3A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{D1832CED-B861-4FE3-A3BD-3D582C108D3A}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{D1832CED-B861-4FE3-A3BD-3D582C108D3A}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{D1832CED-B861-4FE3-A3BD-3D582C108D3A}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+	GlobalSection(ExtensibilityGlobals) = postSolution
+		SolutionGuid = {6527B90F-D907-4370-A1FE-B8E5E38BFF64}
+	EndGlobalSection
+EndGlobal
diff --git a/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/mono_crash.1ffcf07473.0.json b/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/mono_crash.1ffcf07473.0.json
new file mode 100644
index 0000000..4730fb8
--- /dev/null
+++ b/On+/xamarin/Shared.IOS.ESVideoOnSDK/Shared.IOS.ESVideoOnSDK/mono_crash.1ffcf07473.0.json
@@ -0,0 +1,848 @@
+{
+  "protocol_version" : "0.0.6",
+  "configuration" : {
+    "version" : "(6.12.0.93) (2020-02/620cf538206)",
+    "tlc" : "normal",
+    "sigsgev" : "altstack",
+    "notifications" : "kqueue",
+    "architecture" : "amd64",
+    "disabled_features" : "none",
+    "smallconfig" : "disabled",
+    "bigarrays" : "disabled",
+    "softdebug" : "enabled",
+    "interpreter" : "enabled",
+    "llvm_support" : "0",
+    "suspend" : "hybrid"
+  },
+  "memory" : {
+    "Resident Size" : "48189440",
+    "Virtual Size" : "4720082944",
+    "minor_gc_time" : "25105787",
+    "major_gc_time" : "0",
+    "minor_gc_count" : "2",
+    "major_gc_count" : "0",
+    "major_gc_time_concurrent" : "0"
+ },
+  "threads" : [
+ {
+    "is_managed" : false,
+    "offset_free_hash" : "0x0",
+    "offset_rich_hash" : "0x0",
+    "crashed" : false,
+    "native_thread_id" : "0x11b261dc0",
+    "thread_info_addr" : "0x7fecdc809c00",
+    "thread_name" : "tid_307",
+    "ctx" : {
+      "IP" : "0x7fff6f81e882",
+      "SP" : "0x7ffee40eec88",
+      "BP" : "0x7ffee40eed20"
+  },
+    "unmanaged_frames" : [
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bbc1886",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bd5d0f5",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bd5ce27",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bc2d983",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x7fff6f8d35fd",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x7ffee40ee978",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bdf7e70",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10be0ff51",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bd5a034",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bd59e3a",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bb86f7a",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bb12b89",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x7fff6f6dacc9",
+      "native_offset" : "0x00000"
+   }
+
+  ]
+ },
+ {
+    "is_managed" : false,
+    "offset_free_hash" : "0x0",
+    "offset_rich_hash" : "0x0",
+    "crashed" : false,
+    "native_thread_id" : "0x70000169b000",
+    "thread_info_addr" : "0x7fecdc81ea00",
+    "thread_name" : "Finalizer",
+    "ctx" : {
+      "IP" : "0x7fff6f81be36",
+      "SP" : "0x70000169aeb8",
+      "BP" : "0x70000169af00"
+  },
+    "unmanaged_frames" : [
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bbc1886",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bd5d0f5",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bd5ce27",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bc2d983",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x7fff6f8d35fd",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x100000002",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x10bd5dd3d",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x7fff6f8df109",
+      "native_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "false",
+      "native_address" : "0x7fff6f8dab8b",
+      "native_offset" : "0x00000"
+   }
+
+  ]
+ },
+ {
+    "is_managed" : true,
+    "offset_free_hash" : "0x1ffcf07473",
+    "offset_rich_hash" : "0x1ffcf078da",
+    "crashed" : true,
+    "native_thread_id" : "0x700004020000",
+    "thread_info_addr" : "0x7fecddb7ae00",
+    "thread_name" : "tid_8e03",
+    "ctx" : {
+      "IP" : "0x7fff6f82233a",
+      "SP" : "0x70000401eae8",
+      "BP" : "0x70000401eb10"
+  },
+    "managed_frames" : [
+  {
+      "is_managed" : "false",
+      "native_address" : "unregistered"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x00000",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x0000c"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6001f93",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x0001a"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6001f38",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00028"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6001f37",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00026"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6006ad5",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x600250a",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x0005f"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6002396",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00063"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6002377",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00024"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x600248c",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00016"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+      "token" : "0x6000f17",
+      "native_offset" : "0x0",
+      "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+      "sizeofimage" : "0xd8000",
+      "timestamp" : "0xc1b0de65",
+      "il_offset" : "0x00098"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+      "token" : "0x6000efc",
+      "native_offset" : "0x0",
+      "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+      "sizeofimage" : "0xd8000",
+      "timestamp" : "0xc1b0de65",
+      "il_offset" : "0x00019"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+      "token" : "0x6001327",
+      "native_offset" : "0x0",
+      "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+      "sizeofimage" : "0xd8000",
+      "timestamp" : "0xc1b0de65",
+      "il_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+      "token" : "0x6000ed2",
+      "native_offset" : "0x0",
+      "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+      "sizeofimage" : "0xd8000",
+      "timestamp" : "0xc1b0de65",
+      "il_offset" : "0x0001a"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+      "token" : "0x6000efb",
+      "native_offset" : "0x0",
+      "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+      "sizeofimage" : "0xd8000",
+      "timestamp" : "0xc1b0de65",
+      "il_offset" : "0x00034"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+      "token" : "0x6001326",
+      "native_offset" : "0x0",
+      "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+      "sizeofimage" : "0xd8000",
+      "timestamp" : "0xc1b0de65",
+      "il_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x60023a9",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x0000f"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x60023a5",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x60023a8",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6001ed4",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00071"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6001ed2",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6002411",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00034"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x60023a7",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x0004a"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x600251d",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6001f2c",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00025"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6001ed4",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00071"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6001ed2",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x00000"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6001ed1",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x0002b"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x6001f2d",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x0000f"
+   }
+,
+  {
+      "is_managed" : "true",
+      "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+      "token" : "0x00000",
+      "native_offset" : "0x0",
+      "filename" : "mscorlib.dll",
+      "sizeofimage" : "0x472000",
+      "timestamp" : "0xc871f307",
+      "il_offset" : "0x0002a"
+   }
+
+  ],
+  "unmanaged_frames" : [
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bbc1886",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bd5d0f5",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bd5d76a",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bc2ea47",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bbc65be",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bc2dd42",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x7fff6f8d35fd",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "unregistered"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x7fff6f7a9808",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10be1aef7",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bdfbd7f",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10be1b38e",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10be1b50f",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bcca899",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bccae32",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10be09221",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10be095c0",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bcccf46",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bcefd24",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+    "token" : "0x00000",
+    "native_offset" : "0x0",
+    "filename" : "mscorlib.dll",
+    "sizeofimage" : "0x472000",
+    "timestamp" : "0xc871f307",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+    "token" : "0x6001f93",
+    "native_offset" : "0x0",
+    "filename" : "mscorlib.dll",
+    "sizeofimage" : "0x472000",
+    "timestamp" : "0xc871f307",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+    "token" : "0x6002377",
+    "native_offset" : "0x0",
+    "filename" : "mscorlib.dll",
+    "sizeofimage" : "0x472000",
+    "timestamp" : "0xc871f307",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+    "token" : "0x600248c",
+    "native_offset" : "0x0",
+    "filename" : "mscorlib.dll",
+    "sizeofimage" : "0x472000",
+    "timestamp" : "0xc871f307",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+    "token" : "0x6000f17",
+    "native_offset" : "0x0",
+    "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+    "sizeofimage" : "0xd8000",
+    "timestamp" : "0xc1b0de65",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+    "token" : "0x6000efc",
+    "native_offset" : "0x0",
+    "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+    "sizeofimage" : "0xd8000",
+    "timestamp" : "0xc1b0de65",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+    "token" : "0x6001327",
+    "native_offset" : "0x0",
+    "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+    "sizeofimage" : "0xd8000",
+    "timestamp" : "0xc1b0de65",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+    "token" : "0x6000ed2",
+    "native_offset" : "0x0",
+    "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+    "sizeofimage" : "0xd8000",
+    "timestamp" : "0xc1b0de65",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+    "token" : "0x6000efb",
+    "native_offset" : "0x0",
+    "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+    "sizeofimage" : "0xd8000",
+    "timestamp" : "0xc1b0de65",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "DAB6F2EA-40E0-487A-863B-EB07A8A04601",
+    "token" : "0x6001326",
+    "native_offset" : "0x0",
+    "filename" : "Microsoft.VisualStudio.Telemetry.dll",
+    "sizeofimage" : "0xd8000",
+    "timestamp" : "0xc1b0de65",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+    "token" : "0x60023a9",
+    "native_offset" : "0x0",
+    "filename" : "mscorlib.dll",
+    "sizeofimage" : "0x472000",
+    "timestamp" : "0xc871f307",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+    "token" : "0x60023a8",
+    "native_offset" : "0x0",
+    "filename" : "mscorlib.dll",
+    "sizeofimage" : "0x472000",
+    "timestamp" : "0xc871f307",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+    "token" : "0x6001ed2",
+    "native_offset" : "0x0",
+    "filename" : "mscorlib.dll",
+    "sizeofimage" : "0x472000",
+    "timestamp" : "0xc871f307",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+    "token" : "0x60023a7",
+    "native_offset" : "0x0",
+    "filename" : "mscorlib.dll",
+    "sizeofimage" : "0x472000",
+    "timestamp" : "0xc871f307",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "true",
+    "guid" : "3F2977EB-306B-4538-8F22-4FC6CC4DB2C4",
+    "token" : "0x6001ed2",
+    "native_offset" : "0x0",
+    "filename" : "mscorlib.dll",
+    "sizeofimage" : "0x472000",
+    "timestamp" : "0xc871f307",
+    "il_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bb23852",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bd32f47",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bd397f0",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x10bd5dd7d",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x7fff6f8df109",
+    "native_offset" : "0x00000"
+  }
+,
+ {
+    "is_managed" : "false",
+    "native_address" : "0x7fff6f8dab8b",
+    "native_offset" : "0x00000"
+  }
+
+ ]
+}
+]
+}
\ No newline at end of file
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj
similarity index 90%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj
index 4fa03de..c922a0c 100644
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo.xcodeproj/project.pbxproj
@@ -7,7 +7,7 @@
 	objects = {
 
 /* Begin PBXBuildFile section */
-		B96CCD7A24A88EAD00FCCEBF /* ESVideo.m in Sources */ = {isa = PBXBuildFile; fileRef = B96CCD7824A88EAD00FCCEBF /* ESVideo.m */; };
+		96B8F55325FEE3D200950EEE /* ESVideoPhoneSDk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96B8F55225FEE3D200950EEE /* ESVideoPhoneSDk.framework */; };
 		C3385925233DAF06006940C3 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C3385924233DAF06006940C3 /* AppDelegate.m */; };
 		C3385928233DAF06006940C3 /* SceneDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C3385927233DAF06006940C3 /* SceneDelegate.m */; };
 		C338592B233DAF06006940C3 /* ViewController.mm in Sources */ = {isa = PBXBuildFile; fileRef = C338592A233DAF06006940C3 /* ViewController.mm */; };
@@ -17,8 +17,6 @@
 		C3385936233DAF12006940C3 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C3385935233DAF12006940C3 /* main.m */; };
 		C3385940233DAF12006940C3 /* ESVideoPhoneSDKDemoTests.m in Sources */ = {isa = PBXBuildFile; fileRef = C338593F233DAF12006940C3 /* ESVideoPhoneSDKDemoTests.m */; };
 		C338594B233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.m in Sources */ = {isa = PBXBuildFile; fileRef = C338594A233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.m */; };
-		C345D08B233EEE520079C82C /* AudioSessionHelper.m in Sources */ = {isa = PBXBuildFile; fileRef = C345D08A233EEE520079C82C /* AudioSessionHelper.m */; };
-		C3EBF9E823A72BCE00B62DDD /* ESVideoPhoneSDk.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C3EBF9E723A72BCD00B62DDD /* ESVideoPhoneSDk.framework */; };
 		C3F59377233E0717009F09E5 /* libbz2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C3F59376233E0717009F09E5 /* libbz2.tbd */; };
 		C3F59379233E0723009F09E5 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C3F59378233E0723009F09E5 /* libz.tbd */; };
 		C3F5937B233E0745009F09E5 /* libiconv.2.4.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C3F5937A233E0744009F09E5 /* libiconv.2.4.0.tbd */; };
@@ -42,9 +40,7 @@
 /* End PBXContainerItemProxy section */
 
 /* Begin PBXFileReference section */
-		B924480E24934E5500F118F1 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; };
-		B96CCD7824A88EAD00FCCEBF /* ESVideo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ESVideo.m; sourceTree = "<group>"; };
-		B96CCD7924A88EAD00FCCEBF /* ESVideo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ESVideo.h; sourceTree = "<group>"; };
+		96B8F55225FEE3D200950EEE /* ESVideoPhoneSDk.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = ESVideoPhoneSDk.framework; sourceTree = "<group>"; };
 		C3385920233DAF06006940C3 /* ESVideoPhoneSDKDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ESVideoPhoneSDKDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		C3385923233DAF06006940C3 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
 		C3385924233DAF06006940C3 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
@@ -63,9 +59,6 @@
 		C3385946233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ESVideoPhoneSDKDemoUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
 		C338594A233DAF13006940C3 /* ESVideoPhoneSDKDemoUITests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ESVideoPhoneSDKDemoUITests.m; sourceTree = "<group>"; };
 		C338594C233DAF13006940C3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
-		C345D089233EEE510079C82C /* AudioSessionHelper.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AudioSessionHelper.h; sourceTree = "<group>"; };
-		C345D08A233EEE520079C82C /* AudioSessionHelper.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AudioSessionHelper.m; sourceTree = "<group>"; };
-		C3EBF9E723A72BCD00B62DDD /* ESVideoPhoneSDk.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = ESVideoPhoneSDk.framework; sourceTree = "<group>"; };
 		C3F59376233E0717009F09E5 /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = usr/lib/libbz2.tbd; sourceTree = SDKROOT; };
 		C3F59378233E0723009F09E5 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; };
 		C3F5937A233E0744009F09E5 /* libiconv.2.4.0.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libiconv.2.4.0.tbd; path = usr/lib/libiconv.2.4.0.tbd; sourceTree = SDKROOT; };
@@ -76,7 +69,7 @@
 			isa = PBXFrameworksBuildPhase;
 			buildActionMask = 2147483647;
 			files = (
-				C3EBF9E823A72BCE00B62DDD /* ESVideoPhoneSDk.framework in Frameworks */,
+				96B8F55325FEE3D200950EEE /* ESVideoPhoneSDk.framework in Frameworks */,
 				C3F5937B233E0745009F09E5 /* libiconv.2.4.0.tbd in Frameworks */,
 				C3F59379233E0723009F09E5 /* libz.tbd in Frameworks */,
 				C3F59377233E0717009F09E5 /* libbz2.tbd in Frameworks */,
@@ -124,16 +117,12 @@
 		C3385922233DAF06006940C3 /* ESVideoPhoneSDKDemo */ = {
 			isa = PBXGroup;
 			children = (
-				B96CCD7924A88EAD00FCCEBF /* ESVideo.h */,
-				B96CCD7824A88EAD00FCCEBF /* ESVideo.m */,
 				C3385923233DAF06006940C3 /* AppDelegate.h */,
 				C3385924233DAF06006940C3 /* AppDelegate.m */,
 				C3385926233DAF06006940C3 /* SceneDelegate.h */,
 				C3385927233DAF06006940C3 /* SceneDelegate.m */,
 				C3385929233DAF06006940C3 /* ViewController.h */,
 				C338592A233DAF06006940C3 /* ViewController.mm */,
-				C345D089233EEE510079C82C /* AudioSessionHelper.h */,
-				C345D08A233EEE520079C82C /* AudioSessionHelper.m */,
 				C338592C233DAF06006940C3 /* Main.storyboard */,
 				C338592F233DAF12006940C3 /* Assets.xcassets */,
 				C3385931233DAF12006940C3 /* LaunchScreen.storyboard */,
@@ -164,8 +153,7 @@
 		C3E915CA233DFE4C00F77354 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
-				B924480E24934E5500F118F1 /* AudioToolbox.framework */,
-				C3EBF9E723A72BCD00B62DDD /* ESVideoPhoneSDk.framework */,
+				96B8F55225FEE3D200950EEE /* ESVideoPhoneSDk.framework */,
 				C3F5937A233E0744009F09E5 /* libiconv.2.4.0.tbd */,
 				C3F59378233E0723009F09E5 /* libz.tbd */,
 				C3F59376233E0717009F09E5 /* libbz2.tbd */,
@@ -304,9 +292,7 @@
 			buildActionMask = 2147483647;
 			files = (
 				C338592B233DAF06006940C3 /* ViewController.mm in Sources */,
-				B96CCD7A24A88EAD00FCCEBF /* ESVideo.m in Sources */,
 				C3385925233DAF06006940C3 /* AppDelegate.m in Sources */,
-				C345D08B233EEE520079C82C /* AudioSessionHelper.m in Sources */,
 				C3385936233DAF12006940C3 /* main.m in Sources */,
 				C3385928233DAF06006940C3 /* SceneDelegate.m in Sources */,
 			);
@@ -414,13 +400,13 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
 				MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
 				MTL_FAST_MATH = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = "-Wl,-all_load";
 				SDKROOT = iphoneos;
-				VALID_ARCHS = "arm64 arm64e";
+				VALID_ARCHS = arm64;
 			};
 			name = Debug;
 		};
@@ -469,13 +455,13 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 10.0;
+				IPHONEOS_DEPLOYMENT_TARGET = 13.0;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				MTL_FAST_MATH = YES;
 				OTHER_LDFLAGS = "-Wl,-all_load";
 				SDKROOT = iphoneos;
 				VALIDATE_PRODUCT = YES;
-				VALID_ARCHS = "arm64 arm64e";
+				VALID_ARCHS = arm64;
 			};
 			name = Release;
 		};
@@ -483,8 +469,7 @@
 			isa = XCBuildConfiguration;
 			buildSettings = {
 				ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
-				CODE_SIGN_IDENTITY = "iPhone Developer";
-				CODE_SIGN_STYLE = Manual;
+				CODE_SIGN_STYLE = Automatic;
 				DEVELOPMENT_TEAM = BVTA78PRYA;
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
@@ -498,11 +483,10 @@
 					"@executable_path/Frameworks",
 				);
 				LIBRARY_SEARCH_PATHS = "$(inherited)";
-				MARKETING_VERSION = 1.2;
+				MARKETING_VERSION = 1.0.1;
 				OTHER_LDFLAGS = "-Wl,-all_load";
-				PRODUCT_BUNDLE_IDENTIFIER = com.hdl.ESVideoPhoneSDKDemo2;
+				PRODUCT_BUNDLE_IDENTIFIER = com.hdl.on;
 				PRODUCT_NAME = "$(TARGET_NAME)";
-				PROVISIONING_PROFILE_SPECIFIER = Test;
 				TARGETED_DEVICE_FAMILY = 1;
 			};
 			name = Debug;
@@ -526,9 +510,9 @@
 					"@executable_path/Frameworks",
 				);
 				LIBRARY_SEARCH_PATHS = "$(inherited)";
-				MARKETING_VERSION = 1.2;
+				MARKETING_VERSION = 1.0.1;
 				OTHER_LDFLAGS = "-Wl,-all_load";
-				PRODUCT_BUNDLE_IDENTIFIER = com.hdl.ESVideoPhoneSDKDemo2;
+				PRODUCT_BUNDLE_IDENTIFIER = com.hdl.on;
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				PROVISIONING_PROFILE_SPECIFIER = Test;
 				TARGETED_DEVICE_FAMILY = 1;
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.h b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/AppDelegate.h
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.h
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/AppDelegate.h
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.m b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/AppDelegate.m
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/AppDelegate.m
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/AppDelegate.m
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Assets.xcassets/AppIcon.appiconset/Contents.json
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/Contents.json b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Assets.xcassets/Contents.json
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Assets.xcassets/Contents.json
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Assets.xcassets/Contents.json
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/LaunchScreen.storyboard b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Base.lproj/LaunchScreen.storyboard
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/LaunchScreen.storyboard
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Base.lproj/LaunchScreen.storyboard
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard
similarity index 62%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard
index 3037ac2..771bc49 100644
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Base.lproj/Main.storyboard
@@ -1,9 +1,9 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="Otu-wo-FUs">
-    <device id="retina6_1" orientation="portrait" appearance="light"/>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="17701" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
+    <device id="retina3_5" orientation="portrait" appearance="light"/>
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15510"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="17703"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <scenes>
@@ -16,56 +16,37 @@
                         <viewControllerLayoutGuide type="bottom" id="COG-Nv-9Ga"/>
                     </layoutGuides>
                     <view key="view" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" id="8bC-Xf-vdC">
-                        <rect key="frame" x="0.0" y="0.0" width="414" height="842"/>
+                        <rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vJi-oZ-LSc">
-                                <rect key="frame" x="40" y="738" width="60" height="30"/>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="vJi-oZ-LSc">
+                                <rect key="frame" x="36" y="410" width="31" height="30"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="2Pc-3k-dUO"/>
-                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="cuo-Ky-5Dv"/>
+                                    <constraint firstAttribute="height" relation="greaterThanOrEqual" constant="30" id="4Tw-18-CaX"/>
                                 </constraints>
                                 <state key="normal" title="鍚瓛"/>
                                 <connections>
                                     <action selector="speaker:" destination="BYZ-38-t0r" eventType="touchUpInside" id="W7q-iX-a2t"/>
                                 </connections>
                             </button>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jPl-Vg-g3C">
-                                <rect key="frame" x="120" y="738" width="60" height="30"/>
-                                <constraints>
-                                    <constraint firstAttribute="height" constant="30" id="3O0-xV-2Xd"/>
-                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="XJm-Mv-gZS"/>
-                                </constraints>
+                            <button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jPl-Vg-g3C">
+                                <rect key="frame" x="87" y="410" width="31" height="30"/>
                                 <state key="normal" title="寮�闂�"/>
                                 <connections>
                                     <action selector="openDoor:" destination="BYZ-38-t0r" eventType="touchUpInside" id="QiK-iu-wu4"/>
                                 </connections>
                             </button>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mdf-GC-mIQ">
-                                <rect key="frame" x="200" y="738" width="60" height="30"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="Sm2-me-6Rj"/>
-                                    <constraint firstAttribute="height" constant="30" id="ln6-ba-aYV"/>
-                                </constraints>
-                                <state key="normal" title="鎴浘"/>
-                                <connections>
-                                    <action selector="onSnap:" destination="BYZ-38-t0r" eventType="touchUpInside" id="dvX-n1-L3W"/>
-                                </connections>
-                            </button>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="koH-BL-KZA">
-                                <rect key="frame" x="40" y="688" width="60" height="30"/>
-                                <constraints>
-                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="JB7-ql-xzA"/>
-                                </constraints>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="koH-BL-KZA">
+                                <rect key="frame" x="36" y="360" width="31" height="30"/>
                                 <state key="normal" title="鍙嶅懠"/>
                                 <connections>
                                     <action selector="onReverseCall:" destination="BYZ-38-t0r" eventType="touchUpInside" id="R22-bQ-kpF"/>
                                 </connections>
                             </button>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WJI-4Z-VeA">
-                                <rect key="frame" x="120" y="688" width="60" height="30"/>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="WJI-4Z-VeA">
+                                <rect key="frame" x="87" y="360" width="31" height="30"/>
                                 <constraints>
-                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="csc-sy-eEr"/>
                                     <constraint firstAttribute="height" constant="30" id="vza-fv-qdl"/>
                                 </constraints>
                                 <state key="normal" title="鎸傛柇"/>
@@ -73,10 +54,9 @@
                                     <action selector="onHangup:" destination="BYZ-38-t0r" eventType="touchUpInside" id="mUK-dK-0eT"/>
                                 </connections>
                             </button>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LcR-MR-y9c">
-                                <rect key="frame" x="200" y="688" width="60" height="30"/>
+                            <button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="LcR-MR-y9c">
+                                <rect key="frame" x="138" y="360" width="31" height="30"/>
                                 <constraints>
-                                    <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="60" id="7N3-EE-cFS"/>
                                     <constraint firstAttribute="height" constant="30" id="go1-vo-L2j"/>
                                 </constraints>
                                 <state key="normal" title="鐩戞帶"/>
@@ -84,8 +64,8 @@
                                     <action selector="onMonitor:" destination="BYZ-38-t0r" eventType="touchUpInside" id="RcS-6u-LBX"/>
                                 </connections>
                             </button>
-                            <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Vfn-FR-1Ub">
-                                <rect key="frame" x="102" y="0.0" width="282" height="30"/>
+                            <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="Vfn-FR-1Ub" userLabel="deviceText Field">
+                                <rect key="frame" x="98" y="0.0" width="196" height="30"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="JFw-sW-vcm"/>
                                 </constraints>
@@ -93,53 +73,81 @@
                                 <textInputTraits key="textInputTraits" returnKeyType="done"/>
                             </textField>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="闂ㄥ彛鏈�" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="E2O-cv-ota">
-                                <rect key="frame" x="40" y="0.0" width="52" height="30"/>
+                                <rect key="frame" x="36" y="0.0" width="52" height="30"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="30" id="VRD-h4-kIL"/>
                                 </constraints>
                                 <fontDescription key="fontDescription" type="system" pointSize="17"/>
-                                <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
+                                <color key="textColor" systemColor="darkTextColor"/>
                                 <nil key="highlightedColor"/>
                             </label>
-                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Uhq-CJ-D5N">
-                                <rect key="frame" x="288" y="738" width="31" height="30"/>
-                                <state key="normal" title="杩斿洖"/>
+                            <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="mdf-GC-mIQ">
+                                <rect key="frame" x="138" y="410" width="31" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="30" id="ln6-ba-aYV"/>
+                                </constraints>
+                                <state key="normal" title="鎴浘"/>
                                 <connections>
-                                    <action selector="back:" destination="BYZ-38-t0r" eventType="touchUpInside" id="Cky-im-DhB"/>
+                                    <action selector="onSnap:" destination="BYZ-38-t0r" eventType="touchUpInside" id="dvX-n1-L3W"/>
                                 </connections>
                             </button>
+                            <button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="251" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ANh-iR-Zhm" userLabel="call Mng">
+                                <rect key="frame" x="36" y="310" width="77" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="30" id="IOK-he-JYD"/>
+                                </constraints>
+                                <state key="normal" title="鍛煎彨绠$悊澶�"/>
+                                <connections>
+                                    <action selector="onCallMng:" destination="BYZ-38-t0r" eventType="touchUpInside" id="bth-32-2ur"/>
+                                </connections>
+                            </button>
+                            <textField opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" borderStyle="roundedRect" textAlignment="natural" minimumFontSize="17" translatesAutoresizingMaskIntoConstraints="NO" id="jbL-Mp-gWi" userLabel="mngText Field">
+                                <rect key="frame" x="123" y="310" width="171" height="30"/>
+                                <constraints>
+                                    <constraint firstAttribute="height" constant="30" id="k6z-DB-Dxc"/>
+                                </constraints>
+                                <fontDescription key="fontDescription" type="system" pointSize="14"/>
+                                <textInputTraits key="textInputTraits" returnKeyType="done"/>
+                            </textField>
                         </subviews>
                         <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                         <constraints>
                             <constraint firstItem="Vfn-FR-1Ub" firstAttribute="leading" secondItem="E2O-cv-ota" secondAttribute="trailing" constant="10" id="0RX-sz-eS9"/>
                             <constraint firstItem="E2O-cv-ota" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="17C-bm-Akt"/>
+                            <constraint firstItem="COG-Nv-9Ga" firstAttribute="top" secondItem="vJi-oZ-LSc" secondAttribute="bottom" constant="40" id="1Lu-zQ-X1A"/>
                             <constraint firstItem="E2O-cv-ota" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="1qo-7b-cDh"/>
-                            <constraint firstAttribute="trailing" secondItem="LcR-MR-y9c" secondAttribute="trailing" constant="154" id="Ac2-pr-p5A"/>
-                            <constraint firstItem="vJi-oZ-LSc" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="AeG-dA-Pth"/>
-                            <constraint firstItem="Uhq-CJ-D5N" firstAttribute="leading" secondItem="mdf-GC-mIQ" secondAttribute="trailing" constant="28" id="BCG-1O-c7I"/>
-                            <constraint firstItem="vJi-oZ-LSc" firstAttribute="top" secondItem="koH-BL-KZA" secondAttribute="bottom" constant="20" id="Bgv-gv-AxZ"/>
-                            <constraint firstItem="jPl-Vg-g3C" firstAttribute="leading" secondItem="vJi-oZ-LSc" secondAttribute="trailing" constant="20" id="F7k-hc-PjM"/>
-                            <constraint firstItem="koH-BL-KZA" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="GCM-h5-uZT"/>
+                            <constraint firstItem="LcR-MR-y9c" firstAttribute="leading" secondItem="WJI-4Z-VeA" secondAttribute="trailing" constant="20" id="5c3-Ef-9sy"/>
+                            <constraint firstAttribute="trailingMargin" secondItem="jbL-Mp-gWi" secondAttribute="trailing" constant="10" id="6Fr-Os-GU0"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="mdf-GC-mIQ" secondAttribute="trailing" constant="20" symbolic="YES" id="73Z-0I-u2v"/>
                             <constraint firstItem="E2O-cv-ota" firstAttribute="top" secondItem="Wzv-3T-9rg" secondAttribute="bottom" id="HUm-Q4-lcX"/>
                             <constraint firstItem="Vfn-FR-1Ub" firstAttribute="top" secondItem="Wzv-3T-9rg" secondAttribute="bottom" id="Ifi-g7-5KM"/>
-                            <constraint firstItem="WJI-4Z-VeA" firstAttribute="leading" secondItem="koH-BL-KZA" secondAttribute="trailing" constant="20" id="MZc-33-aQU"/>
-                            <constraint firstAttribute="trailing" secondItem="mdf-GC-mIQ" secondAttribute="trailing" constant="154" id="Q2A-hp-SjO"/>
-                            <constraint firstAttribute="trailingMargin" secondItem="Uhq-CJ-D5N" secondAttribute="trailing" constant="75" id="Taz-RX-FBH"/>
-                            <constraint firstItem="LcR-MR-y9c" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="WJI-4Z-VeA" secondAttribute="trailing" symbolic="YES" id="Uor-VU-t3a"/>
+                            <constraint firstItem="ANh-iR-Zhm" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="Ins-Re-7qn"/>
+                            <constraint firstItem="koH-BL-KZA" firstAttribute="top" secondItem="ANh-iR-Zhm" secondAttribute="bottom" constant="20" id="Kj6-O3-0iE"/>
+                            <constraint firstItem="WJI-4Z-VeA" firstAttribute="leading" secondItem="koH-BL-KZA" secondAttribute="trailing" constant="20" id="OHf-LM-E4O"/>
+                            <constraint firstItem="mdf-GC-mIQ" firstAttribute="top" secondItem="LcR-MR-y9c" secondAttribute="bottom" constant="20" id="SfX-v0-HpC"/>
                             <constraint firstItem="Vfn-FR-1Ub" firstAttribute="top" secondItem="Wzv-3T-9rg" secondAttribute="bottom" id="Wua-9B-iLw"/>
+                            <constraint firstItem="COG-Nv-9Ga" firstAttribute="top" secondItem="jPl-Vg-g3C" secondAttribute="bottom" constant="40" id="adc-24-7RC"/>
+                            <constraint firstItem="vJi-oZ-LSc" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="bGj-h5-kg7"/>
+                            <constraint firstItem="jbL-Mp-gWi" firstAttribute="leading" secondItem="ANh-iR-Zhm" secondAttribute="trailing" constant="10" id="fdY-PQ-Tgp"/>
+                            <constraint firstItem="koH-BL-KZA" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" constant="20" id="ghh-xI-GAr"/>
                             <constraint firstItem="koH-BL-KZA" firstAttribute="baseline" secondItem="WJI-4Z-VeA" secondAttribute="baseline" id="hB6-19-6BO"/>
+                            <constraint firstItem="LcR-MR-y9c" firstAttribute="top" secondItem="jbL-Mp-gWi" secondAttribute="bottom" constant="20" id="hS7-J0-gZX"/>
                             <constraint firstItem="Vfn-FR-1Ub" firstAttribute="leading" secondItem="E2O-cv-ota" secondAttribute="trailing" constant="10" id="hY9-F7-oE8"/>
-                            <constraint firstItem="mdf-GC-mIQ" firstAttribute="leading" relation="greaterThanOrEqual" secondItem="jPl-Vg-g3C" secondAttribute="trailing" symbolic="YES" id="hiz-Om-gmC"/>
+                            <constraint firstItem="COG-Nv-9Ga" firstAttribute="top" secondItem="vJi-oZ-LSc" secondAttribute="bottom" constant="40" id="hpW-E8-fPk"/>
+                            <constraint firstItem="jPl-Vg-g3C" firstAttribute="top" secondItem="WJI-4Z-VeA" secondAttribute="bottom" constant="20" id="kpv-nI-5SW"/>
                             <constraint firstAttribute="trailingMargin" secondItem="Vfn-FR-1Ub" secondAttribute="trailing" constant="10" id="nnC-yz-Mbc"/>
-                            <constraint firstItem="mdf-GC-mIQ" firstAttribute="top" secondItem="LcR-MR-y9c" secondAttribute="bottom" constant="20" id="nyj-zh-x4K"/>
+                            <constraint firstItem="jPl-Vg-g3C" firstAttribute="leading" secondItem="vJi-oZ-LSc" secondAttribute="trailing" constant="20" id="pWF-Dn-SuL"/>
                             <constraint firstItem="koH-BL-KZA" firstAttribute="baseline" secondItem="LcR-MR-y9c" secondAttribute="baseline" id="uhc-hz-Lg4"/>
+                            <constraint firstAttribute="trailing" relation="greaterThanOrEqual" secondItem="LcR-MR-y9c" secondAttribute="trailing" constant="20" symbolic="YES" id="vAk-7f-7lH"/>
                             <constraint firstItem="COG-Nv-9Ga" firstAttribute="top" secondItem="vJi-oZ-LSc" secondAttribute="bottom" constant="40" id="w71-ij-wzw"/>
-                            <constraint firstItem="COG-Nv-9Ga" firstAttribute="top" secondItem="Uhq-CJ-D5N" secondAttribute="bottom" constant="40" id="y0A-Wx-QLV"/>
+                            <constraint firstItem="vJi-oZ-LSc" firstAttribute="top" secondItem="koH-BL-KZA" secondAttribute="bottom" constant="20" id="xHG-c9-xN1"/>
+                            <constraint firstItem="mdf-GC-mIQ" firstAttribute="leading" secondItem="jPl-Vg-g3C" secondAttribute="trailing" constant="20" id="zN8-eX-Xwe"/>
                             <constraint firstItem="COG-Nv-9Ga" firstAttribute="top" secondItem="jPl-Vg-g3C" secondAttribute="bottom" constant="40" id="zXK-Mn-zfv"/>
                         </constraints>
                     </view>
                     <connections>
                         <outlet property="mCallOrAccept" destination="koH-BL-KZA" id="Ryl-wC-8vS"/>
+                        <outlet property="mngUUIDTextField" destination="jbL-Mp-gWi" id="h0w-Yx-Ndi"/>
                         <outlet property="monitorBtn" destination="LcR-MR-y9c" id="quQ-29-c3m"/>
                         <outlet property="speakerBtn" destination="vJi-oZ-LSc" id="gAu-k3-y1u"/>
                         <outlet property="uIDTextField" destination="Vfn-FR-1Ub" id="En1-hG-ZxX"/>
@@ -147,35 +155,12 @@
                 </viewController>
                 <placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
             </objects>
-            <point key="canvasLocation" x="131.8840579710145" y="103.79464285714285"/>
-        </scene>
-        <!--View Controller-->
-        <scene sceneID="dmc-0p-Aa4">
-            <objects>
-                <viewController id="Otu-wo-FUs" sceneMemberID="viewController">
-                    <layoutGuides>
-                        <viewControllerLayoutGuide type="top" id="dsY-RY-Zva"/>
-                        <viewControllerLayoutGuide type="bottom" id="wHq-fg-3bZ"/>
-                    </layoutGuides>
-                    <view key="view" contentMode="scaleToFill" id="5aY-oG-FVH">
-                        <rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
-                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
-                        <subviews>
-                            <button opaque="NO" contentMode="scaleToFill" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dnn-Zd-Y1M">
-                                <rect key="frame" x="192" y="246" width="31" height="30"/>
-                                <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
-                                <state key="normal" title="璺宠浆"/>
-                                <connections>
-                                    <segue destination="BYZ-38-t0r" kind="modal" id="Ipt-A0-EwF"/>
-                                </connections>
-                            </button>
-                        </subviews>
-                        <color key="backgroundColor" systemColor="systemBackgroundColor" cocoaTouchSystemColor="whiteColor"/>
-                    </view>
-                </viewController>
-                <placeholder placeholderIdentifier="IBFirstResponder" id="aje-Ad-KL1" userLabel="First Responder" customClass="UIResponder" sceneMemberID="firstResponder"/>
-            </objects>
-            <point key="canvasLocation" x="-620.28985507246387" y="111.83035714285714"/>
+            <point key="canvasLocation" x="131.25" y="103.75"/>
         </scene>
     </scenes>
+    <resources>
+        <systemColor name="darkTextColor">
+            <color white="0.0" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
+        </systemColor>
+    </resources>
 </document>
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Info.plist b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Info.plist
similarity index 97%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Info.plist
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Info.plist
index fd4e93e..4aa6e70 100644
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/Info.plist
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/Info.plist
@@ -50,6 +50,8 @@
 			</array>
 		</dict>
 	</dict>
+	<key>UIFileSharingEnabled</key>
+	<true/>
 	<key>UILaunchStoryboardName</key>
 	<string>Main</string>
 	<key>UIMainStoryboardFile</key>
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.h b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/SceneDelegate.h
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.h
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/SceneDelegate.h
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.m b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/SceneDelegate.m
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/SceneDelegate.m
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/SceneDelegate.m
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.h b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/ViewController.h
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.h
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/ViewController.h
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.mm b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/ViewController.mm
similarity index 85%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.mm
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/ViewController.mm
index eadb201..d5296ba 100644
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/ViewController.mm
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/ViewController.mm
@@ -16,16 +16,15 @@
  娣诲姞绯荤粺搴� libiconv2.4.0.tbd,libz.tbd,libbz2.tbd.
  3銆乨emo浠呭仛鍙傝�冿紝鍏蜂綋璇锋牴鎹瓵pp鐨勬儏鍐甸�傛椂璋冪敤
  */
+#import <ifaddrs.h>
+#import <arpa/inet.h>
 #import <AVFoundation/AVFoundation.h>
 #import "ViewController.h"
 #import <ESVideoPhoneSDk/ESVideoPhone.h>
 #import <ESVideoPhoneSDk/ESError.h>
-#import "AudioSessionHelper.h"
-#import "ESVideo.h"
 
 @interface ViewController ()<ESVideoPhoneDelegate,UITextFieldDelegate>
 
-@property (nonatomic,strong) AudioSessionHelper    *sessionHelper;
 @property (nonatomic,strong) ESVideoPhone          *es;
 @property (nonatomic,assign) BOOL                  playing;
 @property (nonatomic,assign) BOOL                  isInterrupt;
@@ -35,38 +34,32 @@
 @property (weak, nonatomic) IBOutlet UITextField *uIDTextField;
 @property (weak, nonatomic) IBOutlet UIButton *mCallOrAccept;
 @property (weak, nonatomic) IBOutlet UIButton *monitorBtn;
+@property (weak, nonatomic) IBOutlet UITextField *mngUUIDTextField;
 
 @end
 
 @implementation ViewController
 {
+
     BOOL isAccessAudio;
     BOOL isAccessVideo;
     BOOL isBackGround;
     BOOL iSVideoNotDetermined;
     BOOL iSAudioNotDetermined;
-    
-    
 }
 - (void)viewDidLoad {
     [super viewDidLoad];
-    [ESVideo.shareInstance initSDK];
+    [self testHttp];
     //鍒濆鍖栦腑鏂紝杩涘叆鍚庡彴鐨則ag
     _playing = NO;
-    _isSpeaking = NO;
+    _isSpeaking = YES;
     self.isInterrupt = NO;
-    _es = ESVideo.shareInstance.es;
     _es.isInterrupt = NO;
     isBackGround = NO;
     [_speakerBtn setTitle:@"鍚瓛" forState:UIControlStateNormal];
 //    _mCallOrAccept.enabled = NO;
 //    _monitorBtn.enabled = NO;
-//    _uIDTextField.text = @"JJY000016YWECG";//@"JJY000007FSEYX" 榛樿闂ㄥ彛鏈虹殑ID
-//       _uIDTextField.text = @"JJY000017XLUXX";//@"JJY000007FSEYX" 榛樿闂ㄥ彛鏈虹殑ID
-    _uIDTextField.text = @"JJY000019VPLLF";//@"JJY000019VPLLF" 榛樿闂ㄥ彛鏈虹殑ID
-    
-//           _uIDTextField.text = @"JJY000016YWECG";//@"JJY000016YWECG" 榛樿闂ㄥ彛鏈虹殑ID
-    
+    _uIDTextField.text = @"JJY000019VPLLF"; //@"JJY000016YWECG";//@"JJY000007FSEYX" 榛樿闂ㄥ彛鏈虹殑ID
     _uIDTextField.delegate = self;    //鈿狅笍杩欓噷蹇呴』瑕佹鏌ユ槸鍚﹀凡缁忔巿鏉冨惁鍒欎細澶辫触锛屽垵濮嬪寲瑙嗛闊抽閲囬泦
     [self requestAccessForAVMediaType:AVMediaTypeAudio];
      if (isAccessAudio) {
@@ -77,21 +70,16 @@
                  [self saveImage:image];
              });
          };
-         //闂ㄥ彛鏈轰細鏈夎棰戠殑闀垮楂橈紝鏄浐瀹氱殑锛堟殏鏃惰繕涓嶇‘瀹氾級
-//         _es = [[ESVideoPhone alloc]initESVideoPhoneWithFrame:CGRectMake(10, 100, self.view.frame.size.width-20, (self.view.frame.size.width-20)/4*3) delegate:self imagecallBack:snapImageCallback];
+         //闂ㄥ彛鏈轰細鏈夎棰戠殑闀垮楂橈紝鏄浐瀹氱殑锛堟殏鏃惰繕涓嶇‘瀹氾級锛�
+         _es = [[ESVideoPhone alloc]initESVideoPhoneWithFrame:CGRectMake(10, 100, self.view.frame.size.width-20, (self.view.frame.size.width-20)/4*3) delegate:self imagecallBack:snapImageCallback];
          if (_es) {
              //鍒ゆ柇瑙嗛娓叉煋鏄惁鍒濆鍖栨垚鍔燂紝濡傛灉澶辫触浼氳蛋ESVideoPhoneDelegate鏂规硶
              if (_es.showView) {
-//                 _es.showView.frame = CGRectMake(10, 100, self.view.frame.size.width-20, (self.view.frame.size.width-20)/4*3);
-                 ESVideo.shareInstance.snapImageCallback = snapImageCallback;
-                 _es.showView.backgroundColor = [UIColor greenColor];
                  _es.delegate = self;
                  [self.view addSubview:_es.showView];
-             }else{
-                 NSLog(@"_es.showView null");
-                 
              }
          }else{
+             //p2p鍒濆鍖栧け璐ヤ細杩斿洖nil
              NSLog(@"ESVideoPhone 鍒濆鍖栧け璐�");
              return;
          }
@@ -110,14 +98,46 @@
             NSLog(@"VideoCaptureSession 鍒濆鍖栧け璐�");
         }
     }
-    //鍒濆鍖朅udioSession
-    _sessionHelper = [[AudioSessionHelper alloc]init];
-    [_sessionHelper setAudioSession];
     //娣诲姞杩涘叆鍚庡彴锛屼腑鏂瓑閫氱煡
     [self addObservers];
+    [self internetStatus];
+    
+    
+    NSLog(@"%@", [self getIpAddress]);
 }
 
+-(void)internetStatus {
+    
+    NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"];//姝ゅ淇敼涓鸿嚜宸卞叕鍙哥殑鏈嶅姟鍣ㄥ湴鍧�
+        NSURLRequest *request = [NSURLRequest requestWithURL:url];
+        NSURLSession *session = [NSURLSession sharedSession];
+        NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
+            if (error == nil) {
+                NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
+                NSLog(@"%@",dict);
+            }
+        }];
+        
+        [dataTask resume];
+}
+-(void)testHttp
+{
+    NSURL *url = [NSURL URLWithString:@"https://www.baidu.com"];//姝ゅ淇敼涓鸿嚜宸卞叕鍙哥殑鏈嶅姟鍣ㄥ湴鍧�
+    NSURLRequest *request = [NSURLRequest requestWithURL:url];
+    NSURLSession *session = [NSURLSession sharedSession];
+    NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
+        if (error == nil) {
+            NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:nil];
+            NSLog(@"缃戠粶璇锋眰娴嬭瘯%@",dict);
+        }else{
+            NSLog(@"缃戠粶璇锋眰娴嬭瘯澶辫触");
+        }
+    }];
+    
+    [dataTask resume];
+}
 -(void)viewDidAppear:(BOOL)animated{
+    [super viewDidAppear:animated];
     //杩欎釜鏂规硶璇锋牴鎹瓵pp鐨勫叿浣撴儏鍐佃皟鐢�
     //鍦╲iewDidLoad涓� 璋冪敤requestAccessForAVMediaType: 鏄负浜嗚妭绾﹀垵濮嬪寲鐨勬椂闂�
     //鍦╲iewDidAppear涓皟鐢╮equestAccessForAVMediaType: 鏄负浜嗗脊鍑烘彁绀烘墦寮�鏉冮檺鐨凙lert
@@ -138,61 +158,64 @@
     [_es stopTalk];
 }
 -(void)dealloc{
-    _es.delegate = nil;
-//    _es.showView
-      NSLog(@"==============dealloc1");
     [[NSNotificationCenter defaultCenter] removeObserver:self];
-      NSLog(@"==============dealloc2");
-//    [_es freeSubClass];
-      NSLog(@"==============dealloc3");
+    [_es freeSubClass];
 }
 
 #pragma mark ButtonAction
-- (IBAction)back:(id)sender {
-    [self dismissViewControllerAnimated:YES completion:NULL];
-       
-}
 //鍙嶅懠锛氭ā鎷熼棬鍙f満鍛煎彨鎵嬫満锛岄渶瑕侀棬鍙f満鍏堢偣鍛煎彨锛岀瓑1-2S鍚庯紝鎵嬫満鐐瑰弽鍛笺��
-//params鏍锋湰 address=192.168.1.3:8554,tag=mobile://123,
+//params鏍锋湰 address=JJY000003UYRBK,tag=mobile://123,
 - (IBAction)onReverseCall:(id)sender {
     NSString *title = [sender titleForState:UIControlStateNormal];
     if ([title isEqualToString:@"鍙嶅懠"]) {
        NSString *normalStr = _uIDTextField.text;
        NSString *param = [NSString stringWithFormat:@"address=%@,tag=mobile://123,",normalStr];
-       NSLog(@"============鐐瑰弽鍛�%@", param);
+       //NSLog(@"%@", param);
        [_es onReverseCall:param];
     }else if([title isEqualToString:@"鎺ュ惉"]){
-        [_es onAccept];
+       [_es onAccept];
     }
   
 }
+
 - (IBAction)onHangup:(id)sender {
     [_es onHangup];
 }
+
+
+- (IBAction)onCallMng:(UIButton *)sender {
+    
+    [_es onCall:_mngUUIDTextField.text];
+}
+
 - (IBAction)onMonitor:(id)sender {
     [_es onMonitor:_uIDTextField.text];
 }
 - (IBAction)speaker:(UIButton *)sender {
-    [_es stopTalk];
-      
       NSString *result = nil;
       //鍚瓛鐘舵�� 鎻掕�冲鍚庢嫈鎺夊悗鎭㈠鍒伴粯璁よ缃�
       if (sender == nil) {
-          result = [_sessionHelper speaker:NO];
+          //result = [_sessionHelper speaker:YES];
+          if ([_es resetAudioCaptureIsSpeak:YES]) {
+              result = @"鍚瓛";
+          }
       }else{
           if(!_isSpeaking){
-              result = [_sessionHelper speaker:YES];
+            //  result = [_sessionHelper speaker:YES];
+              [_es resetAudioCaptureIsSpeak:YES];
+              result = @"鍚瓛";
               _isSpeaking = YES;
           }else{
-              result = [_sessionHelper speaker:NO];
+             // result = [_sessionHelper speaker:NO];
+              [_es resetAudioCaptureIsSpeak:NO];
+              result = @"鍏嶆彁";
               _isSpeaking = NO;
           }
       }
       if (result) {
           [sender setTitle:result forState:UIControlStateNormal];
-          [_es startTalk];
       }
-      
+   
 }
 
 - (IBAction)openDoor:(id)sender {
@@ -279,7 +302,7 @@
     // If media services were reset, and the last start succeeded, restart the session.
     if (error.code == AVErrorMediaServicesWereReset) {
         [_es onStopCapture];
-        [_es startTalk];
+        [_es stopTalk];
     }
 }
 
@@ -577,4 +600,30 @@
     
 }
 
+-(NSString *)getIpAddress {
+    NSString *address = @"error";
+    struct ifaddrs *interfaces = NULL;
+    struct ifaddrs *temp_addr = NULL;
+    int success = 0;
+    // retrieve the current interfaces - returns 0 on success
+    success = getifaddrs(&interfaces);
+    if (success == 0) {
+        // Loop through linked list of interfaces
+        temp_addr = interfaces;
+        while(temp_addr != NULL) {
+            if(temp_addr->ifa_addr->sa_family == AF_INET) {
+                // Check if interface is en0 which is the wifi connection on the iPhone
+                if([[NSString stringWithUTF8String:temp_addr->ifa_name] isEqualToString:@"en0"]) {
+                    // Get NSString from C String
+                    address = [NSString stringWithUTF8String:inet_ntoa(((struct sockaddr_in *)temp_addr->ifa_addr)->sin_addr)];
+                }
+            }
+            temp_addr = temp_addr->ifa_next;
+        }
+    }
+    // Free memory
+    freeifaddrs(interfaces);
+    return address;
+}
+
 @end
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/main.m b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/main.m
similarity index 99%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/main.m
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/main.m
index c4763ae..2ade9c4 100644
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemo/main.m
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemo/main.m
@@ -17,3 +17,4 @@
     }
     return UIApplicationMain(argc, argv, nil, appDelegateClassName);
 }
+
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/ESVideoPhoneSDKDemoTests.m b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoTests/ESVideoPhoneSDKDemoTests.m
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/ESVideoPhoneSDKDemoTests.m
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoTests/ESVideoPhoneSDKDemoTests.m
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/Info.plist b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoTests/Info.plist
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoTests/Info.plist
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoTests/Info.plist
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/ESVideoPhoneSDKDemoUITests.m b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoUITests/ESVideoPhoneSDKDemoUITests.m
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/ESVideoPhoneSDKDemoUITests.m
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoUITests/ESVideoPhoneSDKDemoUITests.m
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/Info.plist b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoUITests/Info.plist
similarity index 100%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDKDemoUITests/Info.plist
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDKDemoUITests/Info.plist
diff --git a/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/ESVideoPhoneSDk b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
new file mode 100644
index 0000000..d1587ef
--- /dev/null
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/ESVideoPhoneSDk
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESError.h b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Headers/ESError.h
similarity index 94%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESError.h
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Headers/ESError.h
index 1cda4f1..0d5fe9d 100644
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESError.h
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Headers/ESError.h
@@ -68,9 +68,13 @@
     LMPAudioPlayErrorBypassVoiceProcessing          = 6,//AudioPlay_鎵撳紑鍥炲0娑堥櫎鍔熻兘澶辫触
     LMPAudioPlayErrorAudioUnitInitialize            = 7,//AudioPlay_AudioUnitInitialize澶辫触
 };
+//闊抽閲嶉噰鏍凤紝浼氬鑷翠笉鑳藉彂閫佹挱鏀鹃煶棰戙��
+typedef NS_ENUM (NSUInteger, LMPAudioConverterError){
+    LMPAudioConverterErrorGetNew                   = 0,//GetNew澶辫触
+    LMPAudioConverterErrorRecord                   = 1,//Record澶辫触
+};
 
 @interface ESError : NSObject
 
 @end
-
 
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
similarity index 81%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
index 5e92338..d3ed23c 100644
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Headers/ESVideoPhone.h
@@ -4,7 +4,7 @@
 //
 //  Created by maygion on 2019/3/26.
 //  Copyright 漏 2019 eTouchSky. All rights reserved.
-//  SDK鐗堟湰鍙凤細1.1.0 
+//  SDK鐗堟湰鍙凤細1.0.0  娴嬭瘯鐗�1
 
 #import <Foundation/Foundation.h>
 #import <UIKit/UIKit.h>
@@ -26,21 +26,26 @@
 @property(nonatomic,strong,readonly) UIView* showView;
 //涓柇璁剧疆
 @property (nonatomic,assign,readwrite) BOOL isInterrupt;
-
 /**
 * ESVideoPhone 鍒濆鍖栨柟娉�
-*
+* 鍒濆鍖朠2P锛孫penGL锛孉udioUnit鎾斁銆�
 * @param frame 鐢熸垚鏄剧ず瑙嗛鐨凜GRect
 * @param delegate ESVideoPhoneDelegate浠g悊
 * @paramimagecallBack 鑾峰彇瑙嗛鎴浘鐨刡lock
 *
-*  @return ESVideoPhone 瀹炰緥,杩斿洖nil琛ㄧず鍒濆鍖栧け璐ャ��
+*  @return ESVideoPhone 瀹炰緥,杩斿洖nil琛ㄧずP2P鍒濆鍖栧け璐ャ��
 */
 - (instancetype)initESVideoPhoneWithFrame:(CGRect)frame delegate: (id<ESVideoPhoneDelegate>)del imagecallBack:(ImageCallback)callBack;
 //鎺堟潈鍚庢墦寮�闊抽閲囬泦锛岃棰戞病鏈夋潈闄愪篃鍙互鍙煶棰戦�氳瘽
 -(BOOL)initAudioCaptureSession;
 //鈿狅笍鎺堟潈鍚庢墦寮�瑙嗛閲囬泦锛岄煶棰戞病鏈夋潈闄愬缓璁笉瑕佸彂璧烽�氳瘽
 -(BOOL)initVideoCaptureSession;
+/**
+* 鍛煎彨
+*
+* @param deviceId 闂ㄥ彛鏈鸿澶嘔D锛岃繖涓弬鏁颁細浠庡悗鍙版媺鍙栵紙涓�鑸槸涓暟缁勫叾涓寘鍚鐢ㄦ埛鏉冮檺鎷ユ湁鐨勬墍鏈夐棬鍙f満锛�
+*/
+- (void)onCall:(NSString *)deviceId;
 /**
 * 鐩戞帶
 *
@@ -75,6 +80,10 @@
 -(void)openTheDoorWithRoomid: (int)roomId;
 //閲婃斁璧勬簮锛坉elegate閲婃斁绛夛級
 -(void)freeSubClass;
+
+//鍏嶆彁鎾斁 鍚瓛鎾斁 浜掔浉鍒囨崲  buffer閲嶅埗涓�0锛屽惁鍒欐湁浜涚郴缁燂紝鍦ㄥ惉绛掓ā寮忎笅涓嶈兘閲囬泦 error-50
+-(BOOL)resetAudioCaptureIsSpeak:(BOOL)isSpeak;
+
 @end
 
 
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Info.plist b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Info.plist
similarity index 61%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Info.plist
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Info.plist
index a2ebd3b..396d13b 100644
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/Info.plist
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/Info.plist
Binary files differ
diff --git a/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
new file mode 100644
index 0000000..ba66cf3
--- /dev/null
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeDirectory
Binary files differ
diff --git a/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
new file mode 100644
index 0000000..fdb3ae6
--- /dev/null
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements
Binary files differ
diff --git a/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1 b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
new file mode 100644
index 0000000..84caed2
--- /dev/null
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeRequirements-1
Binary files differ
diff --git a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
similarity index 86%
rename from ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
rename to SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
index 94318a3..f977b4c 100644
--- a/ESVideoPhoneSDKDemo1.2/ESVideoPhoneSDKDemo/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeResources
@@ -4,21 +4,17 @@
 <dict>
 	<key>files</key>
 	<dict>
-		<key>.DS_Store</key>
-		<data>
-		Y/zzZVahlzqsXsKRy9ythZX/tmM=
-		</data>
 		<key>Headers/ESError.h</key>
 		<data>
-		6x23lohs1gRaX2F7raZcezxZt4A=
+		pvjBtkhm2U/Y83vkOrTjVeFC1rc=
 		</data>
 		<key>Headers/ESVideoPhone.h</key>
 		<data>
-		PXntC+GjEn5A+q23YZHDZYIGj3k=
+		kGvbOvS6cBnVsmUHmyi2E6VgP+8=
 		</data>
 		<key>Info.plist</key>
 		<data>
-		YgFQhxxTQ5/xhKsrQd4C5NGn22w=
+		Zp/dsh9RYNjl/knrzPgFdMIaTIU=
 		</data>
 	</dict>
 	<key>files2</key>
@@ -27,22 +23,22 @@
 		<dict>
 			<key>hash</key>
 			<data>
-			6x23lohs1gRaX2F7raZcezxZt4A=
+			pvjBtkhm2U/Y83vkOrTjVeFC1rc=
 			</data>
 			<key>hash2</key>
 			<data>
-			y8ReVa9YaZ6fyPjy8EeTl3jbaUadZUYVC0IdLJ/HrgM=
+			18Khpfz8wF7kpRYfu0Hu9nXX8ojPhCddZq9AC5/W4P0=
 			</data>
 		</dict>
 		<key>Headers/ESVideoPhone.h</key>
 		<dict>
 			<key>hash</key>
 			<data>
-			PXntC+GjEn5A+q23YZHDZYIGj3k=
+			kGvbOvS6cBnVsmUHmyi2E6VgP+8=
 			</data>
 			<key>hash2</key>
 			<data>
-			MboPVH5djlpgR//Z7UcRBMEeaakW6FWQbZxlkx4KzaM=
+			0nI6AIHD+V13SkVwTcbXE/eDC2SJLVTIcX2hiIoRtJg=
 			</data>
 		</dict>
 	</dict>
diff --git a/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
new file mode 100644
index 0000000..f2b78a0
--- /dev/null
+++ b/SDKDemo/ESVideoPhoneSDKDemo_F20210315/ESVideoPhoneSDk.framework/_CodeSignature/CodeSignature
Binary files differ

--
Gitblit v1.8.0