From cf7623fe25a008b4e128c6083e362578e2a1e3b0 Mon Sep 17 00:00:00 2001 From: wjc <1243177876@qq.com> Date: 星期三, 29 三月 2023 14:29:09 +0800 Subject: [PATCH] 2023年03月29日14:23:28 --- HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs | 286 ++++++++++++++++++++++++++++++++++---------------------- 1 files changed, 172 insertions(+), 114 deletions(-) diff --git a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs index 49857bf..8466190 100644 --- a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs +++ b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs @@ -15,7 +15,7 @@ #else using Foundation; using UIKit; -using Shared.IOS.HDLLinphoneSDK; +//using Shared.IOS.HDLLinphoneSDK; #endif namespace Shared @@ -57,11 +57,15 @@ /// </summary> public bool IsEnable = false; /// <summary> + /// 褰撳墠瑙嗛閫氳瘽鏄惁涓鸿嚜鐮� + /// </summary> + public bool IsSelfResearch = false; + /// <summary> /// 鏄惁鑷姩璺宠浆鍛煎彨椤甸潰, /// false锛氭敹鍒版帹閫佸苟涓斿凡缁忔敹鍒皊ip鍛煎彨鎵嶈烦杞懠鍙〉闈� /// true锛氬師鐢熸敹鍒板懠鍙┈涓婅烦杞懠鍙〉闈紝涓嶇瓑寰呮帹閫佽繃鏉� /// </summary> - bool IsAutoJumpCallView = false; + bool IsAutoJumpCallView = true; /// <summary> /// 鏄惁鍒濆鍖栦簡SDK /// </summary> @@ -88,12 +92,13 @@ #if __IOS__ - Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().InitalLinPhone(); - //璁剧疆鏀跺埌鏉ョ數鍚庛�佹槸鍚﹂渶鑷姩璺宠浆鍛煎彨椤甸潰鏂规 - Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().IsAutoJumpCallView = IsAutoJumpCallView; - //璁剧疆Listener鐩戝惉 - mOnHDLLinphoneCallDelegate = new OnHDLLinphoneCallDelegate(this); - Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().HdlLinphoneCallDelegate = mOnHDLLinphoneCallDelegate; + //Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().InitalLinPhone(); + ////璁剧疆鏀跺埌鏉ョ數鍚庛�佹槸鍚﹂渶鑷姩璺宠浆鍛煎彨椤甸潰鏂规 + //Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().IsAutoJumpCallView = IsAutoJumpCallView; + ////璁剧疆Listener鐩戝惉 + //mOnHDLLinphoneCallDelegate = new OnHDLLinphoneCallDelegate(this); + //Console.WriteLine(UserInfo.Current.ID); + //Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().HdlLinphoneCallDelegate = mOnHDLLinphoneCallDelegate; #else HDLLinphoneKit.Instance.InitLinphone(Application.Activity); //璁剧疆鏀跺埌鏉ョ數鍚庛�佹槸鍚﹂渶鑷姩璺宠浆鍛煎彨椤甸潰鏂规 @@ -103,25 +108,48 @@ #endif } - /// <summary> /// 璁剧疆sip鐧诲綍璐﹀彿 /// </summary> /// <param name="mHDLSipInfo"></param> - public void SetAccountAndLogin(HDLSipInfo mHDLSipInfo) + public void SetAccountAndLogin(HDLSipInfo mHDLSipInfo, string mInterphoneType) { this.currentHDLSipInfo = mHDLSipInfo; - if (mHDLSipInfo == null) return; + if (mHDLSipInfo == null) { + //new alert + return; + } + + #if __IOS__ + //Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().Login("1003", "123456", "192.168.31.194:5060"); //Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().Login("6666", "85521566", "116.62.26.215:5060"); - Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().Login(mHDLSipInfo.sipAccount, mHDLSipInfo.sipPasswd, mHDLSipInfo.realm); + //Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().Login(mHDLSipInfo.sipAccount, mHDLSipInfo.sipPasswd, mHDLSipInfo.realm); #else - HDLLinphoneKit.Instance.SetAccountAndLogin(mHDLSipInfo.sipAccount, mHDLSipInfo.sipPasswd, mHDLSipInfo.realm); + if (mInterphoneType == InterphoneType.FREEVIEW.ToString()) + { + HDLLinphoneKit.Instance.SetAccountAndLogin( + mHDLSipInfo.sipAccount, + mHDLSipInfo.sipPasswd, + "139.159.157.75:47000",//mHDLSipInfo.realm, + "sip:139.159.157.75:47000;transport=udp", + HDLLinphoneKit.InterPhoneTypeFreeview + ); + } + else + { + HDLLinphoneKit.Instance.SetAccountAndLogin( + mHDLSipInfo.sipAccount, + mHDLSipInfo.sipPasswd, + mHDLSipInfo.realm, + "sip:139.159.157.75:47000;transport=udp", + HDLLinphoneKit.InterPhoneTypeHdl + ); + } #endif - } /// <summary> @@ -135,7 +163,7 @@ this.mHDLCallVideoInfo = null; #if __IOS__ - HDLLinPhoneSDK.Instance().LogoutAllLinphoneUser(); + //HDLLinPhoneSDK.Instance().LogoutAllLinphoneUser(); #else HDLLinphoneKit.Instance.Logout(); #endif @@ -148,7 +176,7 @@ { #if __IOS__ - HDLLinPhoneSDK.Instance().ClearAllConfigs(); + //HDLLinPhoneSDK.Instance().ClearAllConfigs(); #else HDLLinphoneKit.Instance.ClearProxyConfig(); #endif @@ -192,28 +220,30 @@ /// 璇锋眰鏈嶅姟鍣ㄨ幏鍙栧綋鍓嶄綇瀹匰ip璐﹀彿淇℃伅骞跺垵濮嬪寲LinphoneSDK鍜岀櫥褰� /// </summary> /// <param name="homeId"></param> - public void GetHDLSipInfoAndInitSDK(string homeId, bool clearCallInfo = true) + public void GetHDLSipInfoAndInitSDK(HDLCallVideoInfo mHDLCallVideoInfo, bool clearCallInfo = true) { try { - - //鍏堟竻绌哄懠鍙拰鐩戣璁惧淇℃伅 if (clearCallInfo) { InitCallInfo(null); } - HDLSipInfo mHDLSipInfo = GetHDLSipInfo(homeId); + HDLSipInfo mHDLSipInfo = GetHDLSipInfo(mHDLCallVideoInfo.HomeId); if (mHDLSipInfo != null) { Application.RunOnMainThread(() => { InitLinphone(); - mHDLSipInfo.homeId = homeId; - SetAccountAndLogin(mHDLSipInfo); + mHDLSipInfo.homeId = mHDLCallVideoInfo.HomeId; + SetAccountAndLogin(mHDLSipInfo, mHDLCallVideoInfo.InterphoneType); Utlis.WriteLine("CALL 鑾峰彇SIP璐﹀彿鎴愬姛锛�" + mHDLSipInfo.sipAccount); }); + } + else + { + new Alert("", $"鑾峰彇Sip璐﹀彿淇℃伅澶辫触.", "纭畾").Show(); } } catch { } @@ -377,7 +407,7 @@ /// 璺宠浆鐩戞帶椤甸潰 /// </summary> /// <param name="mESVideoInfo"></param> - public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo) + public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo,string mInterphoneType) { InitLinphone(); //sip璐﹀彿涓虹┖ @@ -391,13 +421,13 @@ mHDLCallVideoInfo.HomeId = mESVideoInfo.HomeId; mHDLCallVideoInfo.DeviceId = mESVideoInfo.Lc_DeviceId; mHDLCallVideoInfo.DeviceName = mESVideoInfo.DeviceName; - mHDLCallVideoInfo.InterphoneType = InterphoneType.HDL.ToString(); + mHDLCallVideoInfo.InterphoneType = mInterphoneType; mHDLCallVideoInfo.DeviceSipAccount = mESVideoInfo.deviceSipAccount;//鐩戣涓诲姩鍛煎彨闂ㄥ彛鏈烘椂鐢ㄥ埌 InitCallInfo(mHDLCallVideoInfo); #if __IOS__ - HDLLinPhoneSDK.Instance().CallWithUserName(mHDLCallVideoInfo.DeviceSipAccount, mHDLCallVideoInfo.DeviceName); + //HDLLinPhoneSDK.Instance().CallWithUserName(mHDLCallVideoInfo.DeviceSipAccount, mHDLCallVideoInfo.DeviceName); #else //1.鍏堝懠鍙澶� @@ -417,7 +447,7 @@ /// 鏀跺埌鎺ㄩ�侊紝鍚庡垽鏂懠鍙綇瀹呮槸鍚︿负褰撳墠浣忓畢锛屼笉鏄殑璇濋噸鏂拌幏鍙朣IP璐﹀彿骞剁櫥褰� /// </summary> /// <param name="mESVideoInfo"></param> - public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo) + public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo,string mInterphoneType) { InitLinphone(); @@ -426,8 +456,9 @@ mHDLCallVideoInfo.HomeId = mESVideoInfo.HomeId; mHDLCallVideoInfo.DeviceId = mESVideoInfo.Lc_DeviceId; mHDLCallVideoInfo.DeviceName = mESVideoInfo.DeviceName; - mHDLCallVideoInfo.InterphoneType = InterphoneType.HDL.ToString(); + mHDLCallVideoInfo.InterphoneType = mInterphoneType; mHDLCallVideoInfo.DeviceSipAccount = mESVideoInfo.deviceSipAccount; + mHDLCallVideoInfo.spk = mESVideoInfo.spk; InitCallInfo(mHDLCallVideoInfo); //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓� @@ -443,7 +474,7 @@ Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鍏朵粬浣忓畢锛岄噸鏂拌幏鍙栧懠鍙綇瀹呯殑SIP璐﹀彿骞剁櫥褰�"); new Thread(() => { - GetHDLSipInfoAndInitSDK(mESVideoInfo.HomeId, false); + GetHDLSipInfoAndInitSDK(mHDLCallVideoInfo, false); }) { IsBackground = false }.Start(); @@ -460,20 +491,41 @@ /// <param name="mESVideoInfo"></param> public void CheckCallStateAndGotoPage() { - //濡傛灉寮�鍚簡鑷姩璺宠浆鏂规锛屽垯鏃犻渶缁х画涓嬮潰澶勭悊銆佹棤闇�鎵嬪姩璺宠浆 - if (IsAutoJumpCallView) return; - //鍏堢粨鏉熸帀涔嬪墠鐨勭嚎绋� - EndCheckIncomingCallThread(); - //妫�娴嬫槸鍚︽潵鐢典簡濡傛灉鏄洿鎺ヨ皟鏁村懠鍙〉闈㈠鏋滀笉鏄垯寮�鍚嚎绋嬬瓑寰呭垽鏂� - if (IsIncomingReceivedCallState()) { - Utlis.WriteLine("CALL 宸茬粡鏉ョ數浜嗐�傘�傘�傛墦寮�鍛煎彨椤甸潰"); - GoToHDLLinphoneIntercomActivity(); - } - else + if (mHDLCallVideoInfo.spk == "door.gate") { - //濡傛灉杩樻病鏉ョ數 寮�鍚嚎绋嬫娴� - StartCheckIncomingCallThread(); +#if __IOS__ + //鑷爺鍙瀵硅 + //HDLLinPhoneSDK.Instance().GotoHDLSRLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName,mHDLCallVideoInfo.DeviceSipAccount); +#else + var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneReverseCallActivity)); + if (mHDLCallVideoInfo != null) + { + //intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.DeviceName); + intent.PutExtra("lpTitleName", mHDLCallVideoInfo.DeviceName); + intent.PutExtra("lpSipAccount", mHDLCallVideoInfo.DeviceSipAccount); + } + Shared.Application.Activity.StartActivity(intent); +#endif } + else { + //鐙勮�愬厠鍙瀵硅 + //濡傛灉寮�鍚簡鑷姩璺宠浆鏂规锛屽垯鏃犻渶缁х画涓嬮潰澶勭悊銆佹棤闇�鎵嬪姩璺宠浆 + if (IsAutoJumpCallView) return; + //鍏堢粨鏉熸帀涔嬪墠鐨勭嚎绋� + EndCheckIncomingCallThread(); + //妫�娴嬫槸鍚︽潵鐢典簡濡傛灉鏄洿鎺ヨ皟鏁村懠鍙〉闈㈠鏋滀笉鏄垯寮�鍚嚎绋嬬瓑寰呭垽鏂� + if (IsIncomingReceivedCallState()) + { + Utlis.WriteLine("CALL 宸茬粡鏉ョ數浜嗐�傘�傘�傛墦寮�鍛煎彨椤甸潰"); + GoToHDLLinphoneIntercomActivity(); + } + else + { + //濡傛灉杩樻病鏉ョ數 寮�鍚嚎绋嬫娴� + StartCheckIncomingCallThread(); + } + } + } @@ -483,7 +535,8 @@ /// <returns></returns> bool IsIncomingReceivedCallState() { #if __IOS__ - return HDLLinPhoneSDK.Instance().IsIncomingReceivedCallState; + //return HDLLinPhoneSDK.Instance().IsIncomingReceivedCallState; + return true; #else return HDLLinphoneKit.Instance.IsIncomingReceivedCallState; #endif @@ -496,13 +549,14 @@ #if __IOS__ - HDLLinPhoneSDK.Instance().GotoHDLLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName); + //HDLLinPhoneSDK.Instance().GotoHDLLinphoneIntercomVC(mHDLCallVideoInfo.DeviceName); #else var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneIntercomActivity)); if (mHDLCallVideoInfo != null) { - intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.DeviceName); + //intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.DeviceName); + intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.CallId); } Shared.Application.Activity.StartActivity(intent); #endif @@ -596,10 +650,10 @@ return checkIncomingCallThread == null || checkIncomingCallThread.ThreadState != ThreadState.Running; } - #endregion +#endregion - #region 鈻� -- Android鐩稿叧鎿嶄綔_______________________________ +#region 鈻� -- Android鐩稿叧鎿嶄綔_______________________________ #if __Android__ @@ -694,93 +748,93 @@ } #endif - #endregion +#endregion - #region 鈻� -- iOS鐩稿叧鎿嶄綔_______________________________ +#region 鈻� -- iOS鐩稿叧鎿嶄綔_______________________________ #if __IOS__ - #region OnHDLLinphoneCallDelegate - /// <summary> - /// - /// </summary> - OnHDLLinphoneCallDelegate mOnHDLLinphoneCallDelegate; +#region OnHDLLinphoneCallDelegate + ///// <summary> + ///// + ///// </summary> + //OnHDLLinphoneCallDelegate mOnHDLLinphoneCallDelegate; - /// <summary> - /// - /// </summary> - public class OnHDLLinphoneCallDelegate : HDLLinphoneCallDelegate - { - [Weak] HDLLinphone hdlLinphone; + ///// <summary> + ///// + ///// </summary> + //public class OnHDLLinphoneCallDelegate : HDLLinphoneCallDelegate + //{ + // [Weak] HDLLinphone hdlLinphone; - public OnHDLLinphoneCallDelegate(HDLLinphone mHDLLinphone) - { - this.hdlLinphone = mHDLLinphone; - } + // public OnHDLLinphoneCallDelegate(HDLLinphone mHDLLinphone) + // { + // this.hdlLinphone = mHDLLinphone; + // } - /// <summary> - /// 鎺ュ惉 - /// </summary> - public override void OnAnswerAction() - { - hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL); - } + // /// <summary> + // /// 鎺ュ惉 + // /// </summary> + // public override void OnAnswerAction() + // { + // hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL); + // } - /// <summary> - /// 鎸傛柇 - /// </summary> - /// <param name="callDuration"></param> - public override void OnHangUpAction(int callDuration) - { - hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL, callDuration); - } + // /// <summary> + // /// 鎸傛柇 + // /// </summary> + // /// <param name="callDuration"></param> + // public override void OnHangUpAction(int callDuration) + // { + // hdlLinphone.HDLUpdateCallStatus(CallStatusType.RECEIVED, InterphoneType.HDL, callDuration); + // } - /// <summary> - /// 鎷掓帴 - /// </summary> - public override void OnRejectCallAction() - { - hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL); - } + // /// <summary> + // /// 鎷掓帴 + // /// </summary> + // public override void OnRejectCallAction() + // { + // hdlLinphone.HDLUpdateCallStatus(CallStatusType.REJECT, InterphoneType.HDL); + // } - /// <summary> - /// 鎴浘鎴愬姛 - /// </summary> - /// <param name="image"></param> - //public override void OnScreenshotSuccessfulAction(UIImage image) - //{ - ////NSData imageData = UIImagePNGRepresentation(image); UIImage - //NSData imageData = image.AsPNG(); - //byte[] dataBytes = new byte[imageData.Length]; - //System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, dataBytes, 0, Convert.ToInt32(imageData.Length)); - ////image.g - ////hdlLinphone.ScreenshotSuccessfulAction(dataBytes); - //} + // /// <summary> + // /// 鎴浘鎴愬姛 + // /// </summary> + // /// <param name="image"></param> + // //public override void OnScreenshotSuccessfulAction(UIImage image) + // //{ + // ////NSData imageData = UIImagePNGRepresentation(image); UIImage + // //NSData imageData = image.AsPNG(); + // //byte[] dataBytes = new byte[imageData.Length]; + // //System.Runtime.InteropServices.Marshal.Copy(imageData.Bytes, dataBytes, 0, Convert.ToInt32(imageData.Length)); + // ////image.g + // ////hdlLinphone.ScreenshotSuccessfulAction(dataBytes); + // //} - /// <summary> - /// 寮�閿佹垚鍔� - /// </summary> - public override void OnUnlockAction() - { - hdlLinphone.HDLUnlockAction(); - } + // /// <summary> + // /// 寮�閿佹垚鍔� + // /// </summary> + // public override void OnUnlockAction() + // { + // hdlLinphone.HDLUnlockAction(); + // } - /// <summary> - /// 鏉ョ數涓�... - /// </summary> - public override void OnIncomingCall(string userName) - { - Utlis.WriteLine("OnIncomingCall :" + userName); - } + // /// <summary> + // /// 鏉ョ數涓�... + // /// </summary> + // public override void OnIncomingCall(string userName) + // { + // Utlis.WriteLine("OnIncomingCall :" + userName); + // } - } + //} - #endregion +#endregion #endif - #endregion +#endregion } @@ -813,6 +867,10 @@ /// 绫诲瀷 /// </summary> public string InterphoneType; + /// <summary> + /// spk + /// </summary> + public string spk=""; } -- Gitblit v1.8.0