From 9eec81850e418a3c16410b4870910bde142b06e3 Mon Sep 17 00:00:00 2001
From: wjc <1243177876@qq.com>
Date: 星期三, 14 九月 2022 15:50:00 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/Dev-Branch' into wjc

---
 HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs |  176 ++++++++++++++++++++++++++++++----------------------------
 1 files changed, 91 insertions(+), 85 deletions(-)

diff --git a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
index 5a6cd33..c2af0dd 100644
--- a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
+++ b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
@@ -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>
@@ -93,23 +97,22 @@
             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);
             //璁剧疆鏀跺埌鏉ョ數鍚庛�佹槸鍚﹂渶鑷姩璺宠浆鍛煎彨椤甸潰鏂规
             HDLLinphoneKit.Instance.AutoJumpCallView = IsAutoJumpCallView;
-            //HDLLinphoneKit.Instance.HangUp();//鎸傛柇
             //璁剧疆Listener鐩戝惉
             setOnHDLLinphoneCallListener();
 #endif
         }
 
-       
         /// <summary>
         /// 璁剧疆sip鐧诲綍璐﹀彿
         /// </summary>
         /// <param name="mHDLSipInfo"></param>
-        public void SetAccountAndLogin(HDLSipInfo mHDLSipInfo)
+        public void SetAccountAndLogin(HDLSipInfo mHDLSipInfo, string mInterphoneType)
         {
 
             this.currentHDLSipInfo = mHDLSipInfo;
@@ -121,9 +124,25 @@
             //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);
 #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:46000",
+                    HDLLinphoneKit.InterPhoneTypeFreeview
+                    );
+            }
+            else
+            {
+                HDLLinphoneKit.Instance.SetAccountAndLogin(
+                   mHDLSipInfo.sipAccount,
+                   mHDLSipInfo.sipPasswd,
+                   mHDLSipInfo.realm,
+                   HDLLinphoneKit.InterPhoneTypeHdl
+                   );
+            }
 #endif
-
         }
 
         /// <summary>
@@ -194,7 +213,7 @@
         /// 璇锋眰鏈嶅姟鍣ㄨ幏鍙栧綋鍓嶄綇瀹匰ip璐﹀彿淇℃伅骞跺垵濮嬪寲LinphoneSDK鍜岀櫥褰�
         /// </summary>
         /// <param name="homeId"></param>
-        public void GetHDLSipInfoAndInitSDK(string homeId, bool clearCallInfo = true)
+        public void GetHDLSipInfoAndInitSDK(HDLCallVideoInfo mHDLCallVideoInfo, bool clearCallInfo = true)
         {
             try
             {
@@ -204,14 +223,14 @@
                     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);
                     });
                 }
@@ -371,14 +390,13 @@
         }
         #endregion
 
-
+     
         #region 鈻�  --  璺宠浆鐩戞帶椤甸潰_______________________________
         /// <summary>
         /// 璺宠浆鐩戞帶椤甸潰
         /// </summary>
         /// <param name="mESVideoInfo"></param>
-        /// <param name="enableMic">鏄惁鎵撳紑楹﹀厠椋�</param>
-        public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo,bool enableMic,bool isCallIn = false)
+        public void ShowESVideoMonitor(ESVideoInfo mESVideoInfo,string mInterphoneType)
         {
             InitLinphone();
             //sip璐﹀彿涓虹┖
@@ -392,28 +410,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;//鐩戣涓诲姩鍛煎彨闂ㄥ彛鏈烘椂鐢ㄥ埌
             InitCallInfo(mHDLCallVideoInfo);
-
-            if (isCallIn)
-            {
-#if __IOS__
-#else
-                HDLLinphoneKit.Instance.HangUp();
-#endif
-            }
-            else
-            {
-                openMonitorPage(enableMic);
-            }
-        }
-
-        /// <summary>
-        /// 鎵撳紑鐩戣鐣岄潰
-        /// </summary>
-        void openMonitorPage(bool enableMic)
-        {
 
 #if __IOS__
 
@@ -425,26 +424,19 @@
             //2.璺宠浆鎵撳紑鐩戞帶椤甸潰
             var intent = new Intent(Shared.Application.Activity, typeof(Com.Hdl.Hdllinphonesdk.Activity.HDLLinphoneMonitorActivity)); ;
             intent.PutExtra(HDLLinphoneKit.KeyTitleName, mHDLCallVideoInfo.DeviceName);//浼犲叆璁惧鍚嶇О涓烘樉绀烘爣棰�
-            intent.PutExtra(HDLLinphoneKit.Enablemic, enableMic);//鏄惁鎵撳紑楹﹀厠椋�
             Shared.Application.Activity.StartActivity(intent);
-
-
-
 #endif
 
         }
+        #endregion
 
 
-#endregion
-
-
-#region 鈻�  --  璺宠浆鍛煎彨椤甸潰_______________________________
+        #region 鈻�  --  璺宠浆鍛煎彨椤甸潰_______________________________
         /// <summary>
         /// 鏀跺埌鎺ㄩ�侊紝鍚庡垽鏂懠鍙綇瀹呮槸鍚︿负褰撳墠浣忓畢锛屼笉鏄殑璇濋噸鏂拌幏鍙朣IP璐﹀彿骞剁櫥褰�
         /// </summary>
         /// <param name="mESVideoInfo"></param>
-        /// <param name="isHdlLinphone">鏄惁鏄嚜鐮斿彲瑙嗗璁�</param>
-        public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo,bool isHdlLinphone)
+        public void ShowESVideoIntercom(ESVideoInfo mESVideoInfo,string mInterphoneType)
         {
             InitLinphone();
 
@@ -453,42 +445,31 @@
             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);
 
-       
-
-            if (isHdlLinphone)
+            //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓�
+            if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId)
             {
-                //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓�
-                if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId)
-                {
-                    Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鎺ㄩ�佷綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷�");
-                    CheckCallStateAndGotoPage(true);
-                }
+                Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鎺ㄩ�佷綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷�");
+                CheckCallStateAndGotoPage();
             }
-            else {
-                //褰撳墠鍛煎彨鏉ョ數鐨勪綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷寸殑鎯呭喌涓�
-                if (currentHDLSipInfo != null && currentHDLSipInfo.homeId == mESVideoInfo.HomeId)
+            else
+            {
+                //娉ㄦ剰锛氫箣鍓嶆病鐧诲綍SIP璐﹀彿鎴栬�呬綇瀹呬笉涓�鑷寸殑鎯呭喌涓嬮渶瑕侀噸鏂拌幏鍙朣IP璐﹀彿
+                //鑾峰彇鍛煎彨浣忓畢鐨凷IP璐﹀彿骞剁櫥褰�
+                Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鍏朵粬浣忓畢锛岄噸鏂拌幏鍙栧懠鍙綇瀹呯殑SIP璐﹀彿骞剁櫥褰�");
+                new Thread(() =>
                 {
-                    Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鎺ㄩ�佷綇瀹呭拰涔嬪墠娉ㄥ唽鐧诲綍鐨勪綇瀹呬竴鑷�");
-                    CheckCallStateAndGotoPage();
-                }
-                else
-                {
-                    //娉ㄦ剰锛氫箣鍓嶆病鐧诲綍SIP璐﹀彿鎴栬�呬綇瀹呬笉涓�鑷寸殑鎯呭喌涓嬮渶瑕侀噸鏂拌幏鍙朣IP璐﹀彿
-                    //鑾峰彇鍛煎彨浣忓畢鐨凷IP璐﹀彿骞剁櫥褰�
-                    Utlis.WriteLine("CALL 鏀跺埌鎺ㄩ�� 鍏朵粬浣忓畢锛岄噸鏂拌幏鍙栧懠鍙綇瀹呯殑SIP璐﹀彿骞剁櫥褰�");
-                    new Thread(() =>
-                    {
-                        GetHDLSipInfoAndInitSDK(mESVideoInfo.HomeId, false);
-                    })
-                    { IsBackground = false }.Start();
+                    GetHDLSipInfoAndInitSDK(mHDLCallVideoInfo, false);
+                })
+                { IsBackground = false }.Start();
 
-                    //
-                    CheckCallStateAndGotoPage();
-                }
+                //
+                CheckCallStateAndGotoPage();
+
             }
 
         }
@@ -497,22 +478,43 @@
         /// 妫�娴嬫潵鐢电姸鎬侊紝鍒ゆ柇鏄惁椹笂鎵撳紑鍛煎彨椤甸潰锛屽鏋滆繕娌℃潵鐢靛垯寮�鍚嚎绋嬫娴嬬瓑寰�
         /// </summary>
         /// <param name="mESVideoInfo"></param>
-        public void CheckCallStateAndGotoPage(bool isHdlLinphone = false)
+        public void CheckCallStateAndGotoPage()
         {
-            //濡傛灉寮�鍚簡鑷姩璺宠浆鏂规锛屽垯鏃犻渶缁х画涓嬮潰澶勭悊銆佹棤闇�鎵嬪姩璺宠浆
-            if (IsAutoJumpCallView) return;
-            //鍏堢粨鏉熸帀涔嬪墠鐨勭嚎绋�
-            EndCheckIncomingCallThread();
-            //妫�娴嬫槸鍚︽潵鐢典簡濡傛灉鏄洿鎺ヨ皟鏁村懠鍙〉闈㈠鏋滀笉鏄垯寮�鍚嚎绋嬬瓑寰呭垽鏂�
-            if (IsIncomingReceivedCallState()|| isHdlLinphone) {
-                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();
+                }
+            }
+
 
         }
 
@@ -853,6 +855,10 @@
         /// 绫诲瀷
         /// </summary>
         public string InterphoneType;
+        /// <summary>
+        /// spk
+        /// </summary>
+        public string spk="";
 
     }
 

--
Gitblit v1.8.0