From 691dbe24f5724f153e07947c7b75bdfea5f0b6d5 Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期二, 24 九月 2024 16:15:15 +0800 Subject: [PATCH] 离线控制模式 --- HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs | 71 +++++++++++++++++++++++++++++++---- 1 files changed, 63 insertions(+), 8 deletions(-) diff --git a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs index a7a7453..02610db 100644 --- a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs +++ b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs @@ -13,6 +13,7 @@ using Android.Widget; using Com.Hdl.Hdllinphonesdk; #else +using Other; using Foundation; using UIKit; using Shared.IOS.HDLLinphoneSDK; @@ -126,7 +127,17 @@ //鐧诲綍sip鏈嶅姟鍣� #if __IOS__ - Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().Login(mHDLSipInfo.sipAccount, mHDLSipInfo.sipPasswd, mHDLSipInfo.realm); + string systemVersion = UIKit.UIDevice.CurrentDevice.SystemVersion; + System.Version currentVersion = new System.Version(systemVersion); + System.Version version17 = new System.Version(17, 0); + if (currentVersion.CompareTo(version17) > 0) + { + HDLLinPhoneSDK.Instance().Login(mHDLSipInfo.sipAccount, mHDLSipInfo.sipPasswd, mHDLSipInfo.realm, "udp"); + } + else + { + HDLLinPhoneSDK.Instance().Login(mHDLSipInfo.sipAccount, mHDLSipInfo.sipPasswd, mHDLSipInfo.realm, DB_ResidenceData.Instance.linphoneConnectType.ToString()); + } #else if (mInterphoneType == InterphoneType.FREEVIEW.ToString()) { @@ -135,7 +146,8 @@ mHDLSipInfo.sipPasswd, mHDLSipInfo.realm, //"sip:139.159.157.75:47000;transport=udp", - HDLLinphoneKit.InterPhoneTypeFreeview + HDLLinphoneKit.InterPhoneTypeFreeview, + DB_ResidenceData.Instance.linphoneConnectType.ToString() ); } else @@ -146,7 +158,8 @@ mHDLSipInfo.realm, //mHDLSipInfo.proxy+ ";transport=udp", //"sip:139.159.157.75:47000;transport=udp", - HDLLinphoneKit.InterPhoneTypeHdl + HDLLinphoneKit.InterPhoneTypeHdl, + DB_ResidenceData.Instance.linphoneConnectType.ToString() ); } #endif @@ -512,6 +525,14 @@ /// <param name="mESVideoInfo"></param> public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo,string mInterphoneType) { + if(this.mHDLCallVideoInfo != null) + { + if(this.mHDLCallVideoInfo.CallId == mESVideoInfo.callId) + { + return; + } + } + InitLinphone(); HDLCallVideoInfo mHDLCallVideoInfo = new HDLCallVideoInfo(); @@ -558,7 +579,7 @@ { #if __IOS__ //鑷爺鍙瀵硅 - Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().GotoHDLSRLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName, mHDLCallVideoInfo.DeviceSipAccount); + HDLLinPhoneSDK.Instance().GotoHDLSRLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName, mHDLCallVideoInfo.DeviceSipAccount); #else var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneReverseCallActivity)); if (mHDLCallVideoInfo != null) @@ -599,7 +620,7 @@ bool IsIncomingReceivedCallState() { #if __IOS__ - return Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().IsIncomingReceivedCallState; + return HDLLinPhoneSDK.Instance().IsIncomingReceivedCallState; #else return HDLLinphoneKit.Instance.IsIncomingReceivedCallState; #endif @@ -612,7 +633,8 @@ #if __IOS__ - Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().GotoHDLLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName); + + HDLLinPhoneSDK.Instance().GotoHDLLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName); #else var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneIntercomActivity)); @@ -744,6 +766,7 @@ public void OnAnswerAction() { //showToast("鎺ュ惉"); + HDLLinphoneKit.Instance.SetMediaPlayerLooping(false); hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL); } /// <summary> @@ -763,8 +786,8 @@ public void OnRejectCallAction() { //showToast("鎷掓帴"); + HDLLinphoneKit.Instance.SetMediaPlayerLooping(false); hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL); - hdlLinphone.HDLRejectCallIn(); } /// <summary> @@ -791,6 +814,23 @@ public void OnIncomingCall(string userName) { Utlis.WriteLine("OnIncomingCall :" + userName); + } + + /// <summary> + /// 鎷掓帴浜嬩欢 + /// 鍏ㄩ儴鎸傛柇 + /// </summary> + public void OnCallAllRejection() + { + HDLLinphoneKit.Instance.SetMediaPlayerLooping(false); + hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL); + hdlLinphone.HDLRejectCallIn(); + } + + public void OnMissedCallsAction() + { + HDLLinphoneKit.Instance.SetMediaPlayerLooping(false); + hdlLinphone.HDLUpdateCallStatus(CallStatusType.MISSED, InterphoneType.HDL); } } @@ -841,6 +881,7 @@ /// </summary> public override void OnAnswerAction() { + Other.SoundPlayer.Ins.StopSound(); hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL); } @@ -858,6 +899,8 @@ /// </summary> public override void OnRejectCallAction() { + MainPage.Log("iOS 鍏ㄩ儴鎷掓帴"); + Other.SoundPlayer.Ins.StopSound(); hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL); } @@ -865,7 +908,7 @@ /// 鎴浘鎴愬姛 /// </summary> /// <param name = "image" ></ param > - public void OnScreenshotSuccessfulAction(UIImage image) + public override void OnScreenshotSuccessfulAction(UIImage image) { //NSData imageData = UIImagePNGRepresentation(image); UIImage NSData imageData = image.AsPNG(); @@ -891,6 +934,18 @@ Utlis.WriteLine("OnIncomingCall :" + userName); } + public override void OnRejectAllCallAction() + { + MainPage.Log("iOS 鍏ㄩ儴鎷掓帴"); + Other.SoundPlayer.Ins.StopSound(); + hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL); + hdlLinphone.HDLRejectCallIn(); + } + + //public override void OnScreenshotSuccessfulAction(UIImage image) + //{ + // throw new NotImplementedException(); + //} } #endregion -- Gitblit v1.8.0