From efcffde735fa65ae34bae0bcc86313b74ed0e36c Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期一, 20 五月 2024 13:47:38 +0800
Subject: [PATCH] 优化离线数据

---
 HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs |  148 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 90 insertions(+), 58 deletions(-)

diff --git a/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs b/HDL_ON/DAL/ThirdPartySdk/HDLLinphone.cs
index bb298c4..d26ebf5 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
@@ -124,8 +124,8 @@
 
 
 
+            //鐧诲綍sip鏈嶅姟鍣�
 #if __IOS__
-
             Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().Login(mHDLSipInfo.sipAccount, mHDLSipInfo.sipPasswd, mHDLSipInfo.realm);
 #else
             if (mInterphoneType == InterphoneType.FREEVIEW.ToString())
@@ -133,8 +133,8 @@
                 HDLLinphoneKit.Instance.SetAccountAndLogin(
                     mHDLSipInfo.sipAccount,
                     mHDLSipInfo.sipPasswd,
-                    "139.159.157.75:47000",//mHDLSipInfo.realm,
-                    "sip:139.159.157.75:47000;transport=udp",
+                    mHDLSipInfo.realm,
+                    //"sip:139.159.157.75:47000;transport=udp",
                     HDLLinphoneKit.InterPhoneTypeFreeview
                     );
             }
@@ -144,7 +144,8 @@
                    mHDLSipInfo.sipAccount,
                    mHDLSipInfo.sipPasswd,
                    mHDLSipInfo.realm,
-                   "sip:139.159.157.75:47000;transport=udp",
+                   //mHDLSipInfo.proxy+ ";transport=udp",
+                   //"sip:139.159.157.75:47000;transport=udp",
                    HDLLinphoneKit.InterPhoneTypeHdl
                    );
             }
@@ -164,7 +165,14 @@
 
             Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().LogoutAllLinphoneUser();
 #else
-            HDLLinphoneKit.Instance.Logout();
+            if (HDLLinphoneKit.Instance != null)
+            {
+                HDLLinphoneKit.Instance.Logout();
+            }
+            else
+            {
+
+            }
 #endif
         }
 
@@ -226,7 +234,7 @@
                 //鍏堟竻绌哄懠鍙拰鐩戣璁惧淇℃伅
                 if (clearCallInfo)
                 {
-                    InitCallInfo(null);
+                    //InitCallInfo(null);//閫犳垚鎺ユ敹鍛煎彨鏃跺紑閿佸紑閿佸紓甯�
                 }
 
                 HDLSipInfo mHDLSipInfo = GetHDLSipInfo(mHDLCallVideoInfo.HomeId);
@@ -234,15 +242,31 @@
                 {
                     Application.RunOnMainThread(() =>
                     {
-                        InitLinphone();
+                        try
+                        {
+                            InitLinphone();
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"InitLinphone exception : {ex.Message}");
+                        }
                         mHDLSipInfo.homeId = mHDLCallVideoInfo.HomeId;
-                        SetAccountAndLogin(mHDLSipInfo, mHDLCallVideoInfo.InterphoneType);
+                        try { 
+                            SetAccountAndLogin(mHDLSipInfo, mHDLCallVideoInfo.InterphoneType);
+                        }
+                        catch (Exception ex)
+                        {
+                            MainPage.Log($"SetAccountAndLogin exception : {ex.Message}");
+                        }
                         Utlis.WriteLine("CALL 鑾峰彇SIP璐﹀彿鎴愬姛锛�" + mHDLSipInfo.sipAccount);
                     });
                 }
                 else
                 {
-                    new Alert("", $"鑾峰彇Sip璐﹀彿淇℃伅澶辫触.", "纭畾").Show();
+                    //Application.RunOnMainThread(() =>
+                    //{
+                    //    new Alert("", $"鑾峰彇Sip璐﹀彿淇℃伅澶辫触.", "纭畾").Show();
+                    //});
                 }
             }
             catch { }
@@ -314,7 +338,7 @@
 
         #region 鈻�  --  鏂版帴鍚拰寮�閿佹帴鍙______________________________
         /// <summary>
-        /// 寮�閿�
+        /// 鍙瀵硅寮�閿�
         /// </summary>
         public void HDLUnlockAction()
         {
@@ -334,6 +358,10 @@
 
                 Application.RunOnMainThread(() =>
                 {
+                    if(revertObj == null)
+                    {
+                        return;
+                    }
 
 #if __IOS__
                     if (revertObj.Code == StateCode.SUCCESS)
@@ -426,7 +454,13 @@
 
 #if __IOS__
 
-            Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().CallWithUserName(mHDLCallVideoInfo.DeviceSipAccount, mHDLCallVideoInfo.DeviceName);
+            if (mHDLCallVideoInfo.spk == "door.gate")
+            {
+                Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().CallHDLSRWithUserName(mHDLCallVideoInfo.DeviceSipAccount, mHDLCallVideoInfo.DeviceName);   
+            }else{
+                Shared.IOS.HDLLinphoneSDK.HDLLinPhoneSDK.Instance().CallWithUserName(mHDLCallVideoInfo.DeviceSipAccount, mHDLCallVideoInfo.DeviceName);
+            }
+            
 
 #else
             //1.鍏堝懠鍙澶�
@@ -766,57 +800,57 @@
         {
             [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);
-            //}
+            /// <param name = "image" ></ param >
+            public  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>
             /// 鏉ョ數涓�...
@@ -826,9 +860,7 @@
                 Utlis.WriteLine("OnIncomingCall :" + userName);
             }
 
-
-
-        //}
+        }
 
         #endregion
 #endif

--
Gitblit v1.8.0