瀏覽代碼

[WallPadCall]
1. (Side) 486 Busy Here 메시지를 받았을 때 멘트 재생 없이 타임아웃으로 앱이 종료되는 문제 수정. (SIPInterface)
> 경비측으로 부터 Busy Here을 받았을 때 strRemoteSIPID = null 이라 CallType을 Guard로 설정해주는 부분에서 에러가 발생.
> 예외처리 추가
2. 486 Busy Here 메시지를 받았을 때 통화중 멘트 재생이 완료되기 전 앱이 종료되는 문제 수정. (TalkGuard)
3. 버전 업데이트: 2022.11.29.01

jigsjjang 2 年之前
父節點
當前提交
7e6d7322c9

+ 1 - 1
WallPadCall/src/main/AndroidManifest.xml

@@ -1,7 +1,7 @@
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
     package="kr.co.icontrols.wallpadcall"
     package="kr.co.icontrols.wallpadcall"
     android:versionCode="17"
     android:versionCode="17"
-    android:versionName="2022.10.05.01">
+    android:versionName="2022.11.29.01">
 
 
     <!--android:sharedUserId="android.uid.system"-->
     <!--android:sharedUserId="android.uid.system"-->
     <!--<uses-sdk-->
     <!--<uses-sdk-->

+ 12 - 1
WallPadCall/src/main/java/kr/co/icontrols/callengine/engine/SIPInterface.java

@@ -2805,7 +2805,18 @@ public class SIPInterface {
                 if (!SIPController.sipCall.dong_number.equals("") && !SIPController.sipCall.ho_number.equals("")) {
                 if (!SIPController.sipCall.dong_number.equals("") && !SIPController.sipCall.ho_number.equals("")) {
                     if (SIPController.sipCall.ho_number.length() > 2) {
                     if (SIPController.sipCall.ho_number.length() > 2) {
                         eCallType = CALLTYPE.RESIDENCE;
                         eCallType = CALLTYPE.RESIDENCE;
-                    } else if ((strRemoteSIPID.split("\\."))[2].equals("128")) {
+                    }
+                }
+            }
+
+            // 20220822 yjyoon. eCallType == NONE 일때 GUARD 설정 코드 추가
+            //   월패드 통화내역 > 경비실 호출 시 SIPController.sipCall 에 정보가 부족하여 eCallType을 설정하지 못해 월패드의 경비화면 좌측상단 메뉴버튼이 비활성화되지 않는 문제 수정.
+            // 20221129 yjyoon. 조건문 추가
+            //   간혹 strRemoteSIPID == null인 경우가 있어 조건문 추가.
+            if (eCallType == CALLTYPE.NONE) {
+                if (strRemoteSIPID != null && !strRemoteSIPID.equals("")) {
+                    String[] strParsed = strRemoteSIPID.split("\\.");
+                    if (strParsed.length == 4 && strParsed[2].equals("128")) {                        
                         eCallType = CALLTYPE.GUARD;
                         eCallType = CALLTYPE.GUARD;
                     }
                     }
                 }
                 }

+ 7 - 1
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkGuard.java

@@ -641,7 +641,13 @@ public class TalkGuard extends WpadScreen implements CallEventListener, MainEven
                     MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
                     MainActivity.mCallController.setTalkPath(CALLPATH.NORMAL);
                     ((MainActivity) mContext).displayRemoteID(null);
                     ((MainActivity) mContext).displayRemoteID(null);
                     Global.stopMelodyRepeat();
                     Global.stopMelodyRepeat();
-                    MainActivity.mSound.PlayMent(SND.call.BUSY_TRY_LATER);
+
+                    // 20221129 yjyoon. '통화중 멘트' 재생 완료 후 앱 종료.
+                    //MainActivity.mSound.PlayMent(SND.call.BUSY_TRY_LATER);
+                    int nTime = MainActivity.mSound.PlayMent(SND.call.BUSY_TRY_LATER);
+                    Log.i(TAG, "[onCallEvent] nTime [" + nTime + "]");
+                    Thread.sleep(nTime + 500);
+
                     MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.GUARD, CALLSTATUS.IDLE);
                     MainActivity.mCallController.mCallInfo.setCallStatus(CALLTYPE.GUARD, CALLSTATUS.IDLE);
                     MainActivity.mCallController.stop1stCallTimer();
                     MainActivity.mCallController.stop1stCallTimer();
                     Global.change1stCallLogAction(CALLACTION.BUSY);
                     Global.change1stCallLogAction(CALLACTION.BUSY);