فهرست منبع

Merge remote-tracking branch 'origin/master'

jslee(madeinlab) 3 سال پیش
والد
کامیت
b426ba4c34
43فایلهای تغییر یافته به همراه351 افزوده شده و 75 حذف شده
  1. 36 2
      WallPadCall/src/main/java/kr/co/icontrols/callengine/engine/CallController.java
  2. 22 22
      WallPadCall/src/main/java/kr/co/icontrols/callengine/engine/SIPInterface.java
  3. 18 14
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/MainActivity.java
  4. 1 0
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/declare/ID.java
  5. 53 2
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/InquiryCallHistory.java
  6. 75 9
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/InquiryVisitorPictureHistory.java
  7. 52 10
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkFront.java
  8. 6 2
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkLobby.java
  9. 22 11
      WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkResidence.java
  10. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_01.png
  11. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_02.png
  12. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_03.png
  13. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_04.png
  14. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_05.png
  15. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_06.png
  16. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_07.png
  17. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_08.png
  18. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_09.png
  19. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_10.png
  20. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_11.png
  21. BIN
      WallPadCall/src/main/res/drawable-ldpi/lo_12.png
  22. BIN
      WallPadCall/src/main/res/drawable/btn_driver_normal.png
  23. BIN
      WallPadCall/src/main/res/drawable/btn_driver_pressed.png
  24. BIN
      WallPadCall/src/main/res/drawable/btn_driver_selected.png
  25. BIN
      WallPadCall/src/main/res/drawable/btn_floor_1_normal.png
  26. BIN
      WallPadCall/src/main/res/drawable/btn_floor_1_pressed.png
  27. BIN
      WallPadCall/src/main/res/drawable/btn_floor_1_selected.png
  28. BIN
      WallPadCall/src/main/res/drawable/btn_floor_2_normal.png
  29. BIN
      WallPadCall/src/main/res/drawable/btn_floor_2_pressed.png
  30. BIN
      WallPadCall/src/main/res/drawable/btn_floor_2_selected.png
  31. BIN
      WallPadCall/src/main/res/drawable/btn_floor_3_normal.png
  32. BIN
      WallPadCall/src/main/res/drawable/btn_floor_3_pressed.png
  33. BIN
      WallPadCall/src/main/res/drawable/btn_floor_3_selected.png
  34. BIN
      WallPadCall/src/main/res/drawable/btn_kitchen_normal.png
  35. BIN
      WallPadCall/src/main/res/drawable/btn_kitchen_pressed.png
  36. BIN
      WallPadCall/src/main/res/drawable/btn_kitchen_selected.png
  37. BIN
      WallPadCall/src/main/res/drawable/btn_maid_normal.png
  38. BIN
      WallPadCall/src/main/res/drawable/btn_maid_pressed.png
  39. BIN
      WallPadCall/src/main/res/drawable/btn_maid_selected.png
  40. BIN
      WallPadCall/src/main/res/drawable/btn_main_room_normal.png
  41. BIN
      WallPadCall/src/main/res/drawable/btn_main_room_pressed.png
  42. BIN
      WallPadCall/src/main/res/drawable/btn_main_room_selected.png
  43. 66 3
      WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/iMapServer.java

+ 36 - 2
WallPadCall/src/main/java/kr/co/icontrols/callengine/engine/CallController.java

@@ -52,6 +52,7 @@ import kr.co.icontrols.wallpadcall.declare.ID;
 import kr.co.icontrols.wallpadcall.imap.Request_check_sip_activation;
 import kr.co.icontrols.wallpadcall.screen.TalkFront;
 import kr.co.icontrols.wallpadsupport.Version.MODEL_TYPE;
+import kr.co.icontrols.wallpadsupport.WpadSound;
 
 public class CallController extends CallManager implements SIPEventListener {
 
@@ -388,7 +389,17 @@ public class CallController extends CallManager implements SIPEventListener {
                 return CALLTYPE.GUARD;
             } else if (IP_Parse[2].equals("0")) {
                 if(IP_Parse[3].equals("11"))
+                {
+                    RemoteIDInfo.strDong = strHeadID;
+                    RemoteIDInfo.strHo = strTailID;
+                    RemoteIDInfo.strIP = strTargetIP;
+                    RemoteIDInfo.strName = strName;
+                    RemoteIDInfo.bAutoCall = true;
+                    CallScenarioManager(CALLOWNER.WALLPAD, CALLEVENTTYPE.REQUEST_FRONT_MONITORING, CALLTYPE.FRONT, null, null, null);
+                    ((MainActivity) mContext).changeMenuNScreen(ID.MENU.MENU_TALKFRONT);
                     return CALLTYPE.FRONT;
+                }
+
                 // Lobby
                 return CALLTYPE.LOBBY;
             } else if (IP_Parse[2].equals("201")) {
@@ -574,8 +585,22 @@ public class CallController extends CallManager implements SIPEventListener {
                                 LOG("[CallScenarioManager] CALLOWNER [" + eCallOwner + "]");
                                 if (MainActivity.mDataSender != null) MainActivity.mDataSender.start();
                             }
-                            mCallEventListener.onCallEvent(eCallOwner, CALLSTATUS.CALLING, eCallType, strRemoteIP, strRemoteSIPID, strMessage);
-                            MainActivity.mSubPhoneController.sendACKFrontMonitoring(eCallOwner, eCallType);
+
+                            strRemoteIP = "10.1.0.11";
+                            strRemoteSIPID =makeSIPID(strRemoteIP);
+                            RemoteIDInfo.strIP = strRemoteIP;
+
+                            send_check_sip_activation_request(strRemoteIP);
+//                            if (send_check_sip_activation_request(strRemoteIP))
+//                            {
+//                                mCallEventListener.onCallEvent(eCallOwner, CALLSTATUS.CALLING, eCallType, strRemoteIP, strRemoteSIPID, strMessage);
+//                                MainActivity.mSubPhoneController.sendACKFrontMonitoring(eCallOwner, eCallType);
+//                            }
+//                            else
+//                            {
+//
+//                            }
+
                         }
                         else {
                             LOG_WARN("[CallScenarioManager] mCallEventListener is null!!");
@@ -1816,12 +1841,21 @@ public class CallController extends CallManager implements SIPEventListener {
                     public void ProcSuccess() {
                         LOG_INFO("[send_check_sip_activation_request] ProcSuccess()");
                         if (mSIPInterface != null) mSIPInterface.requestCallForwardToStun(makeCallForwarInfo(strTargetIP));
+
+                        String strRemoteSIPID = makeSIPID(strTargetIP);
+
+                        mCallEventListener.onCallEvent(CALLOWNER.WALLPAD, CALLSTATUS.CALLING, CALLTYPE.FRONT, strTargetIP, strRemoteSIPID, null);
+                        MainActivity.mSubPhoneController.sendACKFrontMonitoring(CALLOWNER.WALLPAD, CALLTYPE.FRONT);
                     }
 
                     @Override
                     public void ProcError() {
                         LOG_INFO("[send_check_sip_activation_request] ProcError()");
                         if (mSIPInterface != null) mSIPInterface.cancelCallForwardToStun();
+                        String strRemoteSIPID = makeSIPID(strTargetIP);
+                        mCallEventListener.onCallEvent(CALLOWNER.WALLPAD, CALLSTATUS.BUSY, CALLTYPE.FRONT, strTargetIP, strRemoteSIPID, null);
+                        //MainActivity.mSound.PlayMent(WpadSound.SND.call.BUSY_TRY_LATER);
+
                     }
 
                     @Override

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

@@ -2024,28 +2024,28 @@ public class SIPInterface {
                             }
 
 //                            Log.e(TAG, "[VideoRtpmanager] ================= VIDEO RTP [3] =================");
-                            if (SIPController.forward.bForward == true) {
-//                                Log.e(TAG, "[VideoRtpmanager] ================= VIDEO RTP [4] =================");
-                                Log.d(TAG, "[VideoRtpmanager] [PARSEmark] = " + videoenc.PARSEmark + ", [flag] = " + SIPController.sipCall.flag + ", [bForwardRequest] = " + SIPController.sipCall.bForwardRequest);
-                                if (videoenc.PARSEmark == 1 && SIPController.sipCall != null && SIPController.sipCall.flag == true && SIPController.sipCall.bForwardRequest == false) {
-//                                    Log.e(TAG, "[VideoRtpmanager] ================= VIDEO RTP [5] =================");
-                                    // recording forward picture
-                                    byte[] field = new byte[4];
-                                    System.arraycopy(videoenc.buffer, 13, field, 0, 4);
-                                    int headerLen = getIntByByteArr(field);
-                                    System.arraycopy(videoenc.buffer, 17, field, 0, 4);
-                                    int frameLen = getIntByByteArr(field);
-                                    System.arraycopy(videoenc.buffer, 21, field, 0, 4);
-                                    int timeStamp = getIntByByteArr(field);
-                                    int frameSize = (frameLen > 0) ? frameLen : headerLen;
-                                    if (SIPController.dp.getLength() - 25 >= frameSize && bDecoderStarted == true) {
-                                        System.arraycopy(videoenc.buffer, 25, videoenc.data, 0, frameSize);
-                                        forwardNotifyToStun();
-                                        Log.e(TAG, "[VideoRtpmanager] videoenc.PARSEpayload [" + videoenc.PARSEpayload + "]");
-                                    }
-                                }
-                                continue;
-                            }
+//                            if (SIPController.forward.bForward == true) {
+////                                Log.e(TAG, "[VideoRtpmanager] ================= VIDEO RTP [4] =================");
+//                                Log.d(TAG, "[VideoRtpmanager] [PARSEmark] = " + videoenc.PARSEmark + ", [flag] = " + SIPController.sipCall.flag + ", [bForwardRequest] = " + SIPController.sipCall.bForwardRequest);
+//                                if (videoenc.PARSEmark == 1 && SIPController.sipCall != null && SIPController.sipCall.flag == true && SIPController.sipCall.bForwardRequest == false) {
+////                                    Log.e(TAG, "[VideoRtpmanager] ================= VIDEO RTP [5] =================");
+//                                    // recording forward picture
+//                                    byte[] field = new byte[4];
+//                                    System.arraycopy(videoenc.buffer, 13, field, 0, 4);
+//                                    int headerLen = getIntByByteArr(field);
+//                                    System.arraycopy(videoenc.buffer, 17, field, 0, 4);
+//                                    int frameLen = getIntByByteArr(field);
+//                                    System.arraycopy(videoenc.buffer, 21, field, 0, 4);
+//                                    int timeStamp = getIntByByteArr(field);
+//                                    int frameSize = (frameLen > 0) ? frameLen : headerLen;
+//                                    if (SIPController.dp.getLength() - 25 >= frameSize && bDecoderStarted == true) {
+//                                        System.arraycopy(videoenc.buffer, 25, videoenc.data, 0, frameSize);
+//                                        forwardNotifyToStun();
+//                                        Log.e(TAG, "[VideoRtpmanager] videoenc.PARSEpayload [" + videoenc.PARSEpayload + "]");
+//                                    }
+//                                }
+//                                continue;
+//                            }
 
                             //Log.e(TAG, "[VideoRtpmanager] ================= VIDEO RTP [6] =================");
                             if (bOpenCover == false) {

+ 18 - 14
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/MainActivity.java

@@ -142,7 +142,7 @@ import static kr.co.icontrols.wallpadcall.declare.Declare.BR.ACNAME_MAIN_NOTI;
  */
 public class MainActivity extends WpadActivity {
     private final static String TAG = "MainActivity";
-
+//test
     /**
      * MoIP 영상통화시, FFMPEG 사용 여부 설정
      * true: FFMPEG 사용, MoIP 영상을 안드로이드 화면의 surface에 출력
@@ -2315,12 +2315,14 @@ public class MainActivity extends WpadActivity {
                     @Override
                     public void ProcSuccess() {
                         LOG_INFO("[send_check_sip_activation_request] ProcSuccess()");
+                        mCallController.onSubPhoneEvent(CALLOWNER.KITCHEN_TV_01, CALLEVENTTYPE.REQUEST_FRONT_MONITORING, CALLTYPE.FRONT, strTargetIP, null);
                        // MainActivity.mCallController.mSIPInterface.requestCallForwardToStun(MainActivity.mCallController.makeCallForwarInfo(strTargetIP));
                     }
 
                     @Override
                     public void ProcError() {
                         LOG_INFO("[send_check_sip_activation_request] ProcError()");
+                        mCallController.onSubPhoneEvent(CALLOWNER.KITCHEN_TV_01, CALLEVENTTYPE.REJECT_BUSY_CALL, CALLTYPE.FRONT, strTargetIP, null);
                        // MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
                     }
 
@@ -2412,15 +2414,15 @@ public class MainActivity extends WpadActivity {
                                 if (mCallController != null) {
                                     mCallController.mCallInfo.setCallOwner(callowner);
 
-                                    strRemoteInfo = "10.1.0.11";
-                                    String strRemoteSIPID = mCallController.makeSIPID(strRemoteInfo);
-                                    RemoteIDInfo.strIP = strRemoteInfo;
-
-                                    if (send_check_sip_activation_request(strRemoteInfo))
-                                        mCallController.CallScenarioManager(callowner, calleventtype, calltype, strRemoteInfo, strRemoteSIPID, null);
-                                    else
-                                        Log.d(TAG, callowner.toString() + "REQUEST_FRONT_MONITORING check_sip_activation ERROR");
-                                    //mCallController.CallScenarioManager(callowner, calleventtype, calltype, null, null, null);
+//                                    strRemoteInfo = "10.1.0.11";
+//                                    String strRemoteSIPID = mCallController.makeSIPID(strRemoteInfo);
+//                                    RemoteIDInfo.strIP = strRemoteInfo;
+//
+//                                    if (send_check_sip_activation_request(strRemoteInfo))
+//                                        mCallController.CallScenarioManager(callowner, calleventtype, calltype, strRemoteInfo, strRemoteSIPID, null);
+//                                    else
+//                                        Log.d(TAG, callowner.toString() + "REQUEST_FRONT_MONITORING check_sip_activation ERROR");
+                                    mCallController.CallScenarioManager(callowner, calleventtype, calltype, null, null, null);
                                 }
                                 else Log.w(TAG, "[generateCallEvent] mCallController is null!!");
                             }
@@ -2488,11 +2490,12 @@ public class MainActivity extends WpadActivity {
                                 strRemoteInfo = "10.1.0.11";
                                 String strRemoteSIPID = mCallController.makeSIPID(strRemoteInfo);
                                 RemoteIDInfo.strIP = strRemoteInfo;
+                                send_check_sip_activation_request(strRemoteInfo);
                                 //mCallController.onSubPhoneEvent(callowner, calleventtype, calltype, null, null);
-                                if (send_check_sip_activation_request(strRemoteInfo))
-                                    mCallController.onSubPhoneEvent(callowner, calleventtype, calltype, strRemoteSIPID, null);
-                                else
-                                    Log.d(TAG, callowner.toString() + "REQUEST_FRONT_MONITORING check_sip_activation ERROR");
+//                                if (send_check_sip_activation_request(strRemoteInfo))
+//                                    mCallController.onSubPhoneEvent(callowner, calleventtype, calltype, strRemoteSIPID, null);
+//                                else
+//                                    Log.d(TAG, callowner.toString() + "REQUEST_FRONT_MONITORING check_sip_activation ERROR");
                             }
                             else Log.w(TAG, "[generateCallEvent] mCallController is null!!");
                         }
@@ -5178,6 +5181,7 @@ public class MainActivity extends WpadActivity {
 //            Log.i(TAG, "[sendWallPadCallLiveBR_ACK] ===== START =====");
             Intent mIntent = new Intent();
             mIntent.setAction(Declare.BR.BR_ACK_WALLPADCALL_LIVE);
+            mIntent.putExtra("WALLPADCALL_VIEW", mCurrentScreenId);
             getApplicationContext().sendBroadcast(mIntent);
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);

+ 1 - 0
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/declare/ID.java

@@ -448,6 +448,7 @@ public final class ID {
                     public final static int THIEF_04 = BASE + 124;
                     public final static int THIEF_05 = BASE + 125;
                     public final static int THIEF_06 = BASE + 126;
+                    public final static int LOADING = BASE + 127;
                 }
 
                 public static final class BUTTON {

+ 53 - 2
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/InquiryCallHistory.java

@@ -546,7 +546,12 @@ public class InquiryCallHistory extends WpadScreen implements CallEventListener,
             if (mLIST_VALUE[nIndex].NAME.contains("로비") || mLIST_VALUE[nIndex].NAME.contains("발신번호 없음"))
                 return false;
 
-            eCallResult = MainActivity.mCallController.tryAutoCall(mLIST_VALUE[nIndex].REMOTE_IP, mLIST_VALUE[nIndex].NAME);
+            //eCallResult = MainActivity.mCallController.tryAutoCall(mLIST_VALUE[nIndex].REMOTE_IP, mLIST_VALUE[nIndex].NAME);
+            
+
+            String strIP = makeResiIP(mLIST_VALUE[nIndex].NAME);
+
+            eCallResult = MainActivity.mCallController.tryAutoCall(strIP, mLIST_VALUE[nIndex].NAME);
 
             LOG("[tryAutoCall] eCallResult [" + eCallResult + "]");
             if (eCallResult == CALLTYPE.LOBBY || eCallResult == CALLTYPE.NONE) return false;
@@ -678,6 +683,52 @@ public class InquiryCallHistory extends WpadScreen implements CallEventListener,
         }
     }
 
+    private String makeResiIP(String strResultType) {
+        try {
+            LOG("[makeResiIP] strResultType = " + strResultType);
+            String strResult = "NONE";
+            if (strResultType.contains("1층")) {
+                strResult = "10.1.1.1";
+            }
+            else if (strResultType.contains("2층")) {
+                strResult = "10.1.2.1";
+            }
+            else if (strResultType.contains("3층")) {
+                strResult = "10.1.3.1";
+            }
+            else if (strResultType.contains("메이드")) {
+                strResult = "10.1.1.2";
+            }
+            else if (strResultType.contains("기사")) {
+                strResult = "10.1.1.3";
+            }
+            else if (strResultType.contains("안방")) {
+                strResult = "10.1.3.2";
+            }
+            else if (strResultType.contains("주방")) {
+                strResult = "10.1.2.2";
+            }
+            else if (strResultType.contains("현관")) {
+                strResult = "10.1.0.11";
+            }
+            else
+            {
+                strResult = "";
+            }
+
+            LOG("[makeUnitType] strResult = " + strResult);
+            return strResult;
+        } catch (RuntimeException re) {
+            LogUtil.errorLogInfo("", TAG, re);
+            return "ERROR";
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] makeUnitType(strResultType) : " + e);
+            //e.printStackTrace();
+            LogUtil.errorLogInfo("", TAG, e);
+            return "ERROR";
+        }
+    }
+
     private String makeResiType(String strResultType) {
         try {
             LOG("[makeResiType] strResultType = " + strResultType);
@@ -983,7 +1034,7 @@ public class InquiryCallHistory extends WpadScreen implements CallEventListener,
     private boolean activateTalkBTN(String strName) {
         try {
             if (strName.contains("로비")) return false;
-            else if (strName.contains("현관")) return false;
+            //else if (strName.contains("현관")) return false;
             else if (strName.contains("발신번호 없음")) return false;
             else if (strName.contains("발신번호제한")) return false;
             else if (strName.contains("번호정보없음")) return false;

+ 75 - 9
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/InquiryVisitorPictureHistory.java

@@ -4,6 +4,8 @@ import android.content.Context;
 import android.content.Intent;
 import android.graphics.Color;
 import android.graphics.drawable.Drawable;
+import android.os.Handler;
+import android.os.Looper;
 import android.util.Log;
 import android.view.Gravity;
 import android.view.MotionEvent;
@@ -86,12 +88,16 @@ public class InquiryVisitorPictureHistory extends WpadScreen implements CallEven
     WpadTextView TXT_PAGE;
     WpadTextView TXT_INSTRUCTION;
 
+    WpadImageView IMG_LOADING_VIEW; //loading view
+
     static int PICTURE_CNT = 6;
     static int PICTURE_CNT_EASYMODE = 2; // 간편모드UX 적용할 경우
 
     int LIST_CNT = PICTURE_CNT;
     LIST[] mLIST = new LIST[LIST_CNT];
 
+    boolean m_bShowViewer = false;
+
     class LIST {
         WpadImageView IMG_UNIT;
         WpadImageView IMG_VISITORPICTURE;
@@ -237,6 +243,11 @@ public class InquiryVisitorPictureHistory extends WpadScreen implements CallEven
             BTN_DELETE_ALL = new WpadImageView(context, TOUCH_KIND.BUTTON, 230, 272, R.drawable.btn_visitor_all_del_normal, R.drawable.btn_visitor_all_del_pressed, ID.SCREEN.INQUIRYVISITORPICTUREHISTORY.ELEMENT.BUTTON.DELETE_ALL);
             ViewRegistration(layout, BTN_DELETE_ALL, Common.ImgPosition.GetX(980), Common.ImgPosition.GetY(382));
 
+            IMG_LOADING_VIEW = new WpadImageView(context, TOUCH_KIND.NONE, 500, 300, R.drawable.lo_01, 0, ID.SCREEN.INQUIRYVISITORPICTUREHISTORY.ELEMENT.IMAGE.LOADING);
+            ViewRegistration(layout, IMG_LOADING_VIEW, Common.ImgPosition.GetX(390), Common.ImgPosition.GetY(450));
+
+            IMG_LOADING_VIEW.setVisibility(View.VISIBLE);
+
             //getHistoryFromDB();
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
@@ -280,7 +291,9 @@ public class InquiryVisitorPictureHistory extends WpadScreen implements CallEven
             ((MainActivity) mContext).finishManual(ID.MANUAL.MANUAL_ALL);
             ((MainActivity) mContext).releaseMainEventListener();
             ((MainActivity) mContext).setTopSetBtnVisible(false);
-            setDirEmpty(define.VISITOR_PICTURE_LOCATION);
+
+            if(m_bShowViewer == false)
+                setDirEmpty(define.VISITOR_PICTURE_LOCATION);
 //            ((MainActivity) mContext).checkMemoryUsage(); // 메모리 체크
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
@@ -597,7 +610,7 @@ public class InquiryVisitorPictureHistory extends WpadScreen implements CallEven
 
     private void runPictureViewer(int nID) {
         try {
-
+            m_bShowViewer = true;
             int iListCount = (nCurrentPage-1) * 6;
             nID = nID + iListCount;
             LOG("[runPictureViewer] nID [" + nID + "]");
@@ -1037,14 +1050,29 @@ public class InquiryVisitorPictureHistory extends WpadScreen implements CallEven
 //                        strReply_Path = visitor_access_info.GetAttributeVal(0, "path");
                         //MainActivity.mCallController.mSIPInterface.requestCallForwardToStun(MainActivity.mCallController.makeCallForwarInfo(strTargetIP));
 
-                        try {
-                            Thread.sleep(1500);
-//                            Thread.sleep(500);
-                        } catch (InterruptedException e) {
-                            e.printStackTrace();
-                        }
+                        NewRunnable nr = new NewRunnable() ;
+                        Thread t = new Thread(nr) ;
+                        t.start() ;
 
-                        getHistoryFromDB();
+                        new Handler(Looper.getMainLooper()).postDelayed(new Runnable() {
+                            @Override
+                            public void run() {
+                                m_bLoading = false;
+                                IMG_LOADING_VIEW.setVisibility(View.GONE);
+                                getHistoryFromDB();
+                            }
+                        }, 1500);
+
+//                        try {
+//                            Thread.sleep(1500);
+                            //m_bLoading = false;
+                            //IMG_LOADING_VIEW.setVisibility(View.GONE);
+////                            Thread.sleep(500);
+//                        } catch (InterruptedException e) {
+//                            e.printStackTrace();
+//                        }
+
+                        //getHistoryFromDB();
                     }
 
                     @Override
@@ -1067,6 +1095,44 @@ public class InquiryVisitorPictureHistory extends WpadScreen implements CallEven
         return false;
     }
 
+    private Handler myHandler = new Handler();
+    boolean m_bLoading = true;
+    int m_iLoadingCount = 0;
+    int[] m_iLoadingImage = {R.drawable.lo_01, R.drawable.lo_02, R.drawable.lo_03, R.drawable.lo_04, R.drawable.lo_05
+            , R.drawable.lo_06, R.drawable.lo_07, R.drawable.lo_08, R.drawable.lo_09, R.drawable.lo_10, R.drawable.lo_11
+            , R.drawable.lo_12};
+
+    class NewRunnable implements Runnable {
+        @Override
+        public void run() {
+            while (m_bLoading) {
+
+                try {
+                    Thread.sleep(100);
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+
+                myHandler.post(runnable);
+
+            }
+        }
+    }
+
+    final Runnable runnable = new Runnable() {
+        @Override
+        public void run() {
+
+            //Log.d("KSJ", " m_iLoadingCount " + m_iLoadingCount);
+            IMG_LOADING_VIEW.setImageResource(m_iLoadingImage[m_iLoadingCount]);
+            m_iLoadingCount++;
+            if(m_iLoadingCount == 12)
+            {
+                m_iLoadingCount = 0;
+            }
+        }
+    };
+
     public void setDirEmpty(String dirName){
         String path = dirName;
         File dir = new File(path);

+ 52 - 10
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkFront.java

@@ -278,6 +278,9 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
             MainActivity.mCallController.mSIPInterface.videoSet(true, false, true);
 
             sendHandlerMsgDelayed(TalkFront.HANDLERMSG.ENABLE_SAVE_VISITORPICTURE, 0, 0, null, 3000);
+            sendHandlerMsgDelayed(TalkFront.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, null, 1000);
+            sendHandlerMsgDelayed(TalkFront.HANDLERMSG.SHOW_FRONTVIDEO, 0, 0, null, 2000);
+
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
         } catch (Exception e) {
@@ -410,8 +413,9 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
     @Override
     public void onMainTouchEvent(MAINEVENT eEvent) {
         try {
-            LOG_INFO("[onMainTouchEvent] eEvent [" + eEvent + "]");
+            LOG_INFO("[onMainTouchEvent] eEvent [" + eEvent + "] RemoteIDInfo.strIP [" + RemoteIDInfo.strIP + "]");
             if (eEvent == MAINEVENT.BTN_HOME) {
+                send_stop_talking_request(RemoteIDInfo.strIP);
                 if (MainActivity.mCallController.mCallInfo.getFRONT() != CALLSTATUS.TALKING) Sound().Play(SND.effect.TOUCH_LATCHED);
                 finishWallpadCallApp();
             } else if (eEvent == MAINEVENT.BTN_HOME_MOBILE) {
@@ -484,10 +488,11 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                 else if (eCallStatus == CALLSTATUS.CALLING) {
                     //MainActivity.mCallController.selectVideoSourceToSubPhone(CALLTYPE.FRONT, false);
                     //Global.playMelodyRepeat(eCallType);
+                    //MainActivity.mIOInterface.ctrlPopupGUI(false);
                     super.setFinishTimerDestroy();
                     MainActivity.mCallController.set1stCallTimer(eCallType, MainActivity.mCallController.mCTT.CALLED);
                     ((MainActivity) mContext).displayRemoteID(RemoteIDInfo.strName);
-                    Global.make1stCallHistoryInfo(CALLTYPE.FRONT.toString(), "NONE", CALLDIRECTION.OUT, CALLACTION.MISS, CALLRESULT.OUT_MISS);
+                    //Global.make1stCallHistoryInfo(CALLTYPE.FRONT.toString(), "NONE", CALLDIRECTION.OUT, CALLACTION.MISS, CALLRESULT.OUT_MISS);
                     //Global.make1stCallHistoryInfo(strRemoteIP, strRemoteSIPID, CALLDIRECTION.IN, CALLACTION.MISS, CALLRESULT.IN_MISS);
 
                     // 부재중인 경우를 대비하여 임시저장 (외출방범 설정중에도 통화 부재중과 동일한 방식으로 처리한다. jeff, 2021.07.26)
@@ -593,6 +598,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                     sendReliefFilterSelectBR(nSelectedFilter);
                     MainActivity.mCallController.MultiCallScenarioManager();
                 } else if (eCallStatus == CALLSTATUS.TIMEOUT_1STCALL) {
+                    MainActivity.mIOInterface.ctrlPopupGUI(true);
                     bEnableVisitorPic = false;
                     bReliefCallInit = false;
                     Global.stopMelodyRepeat();
@@ -849,6 +855,8 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                     if (eCallOwner != CALLOWNER.WALLPAD) {
                         ((MainActivity) mContext).StartPopup(ID.POPUP.POPUP_NOTICE_SUBPHONETALK);
                     }
+
+                    //MainActivity.mIOInterface.ctrlPopupGUI(tr);
                     //((MainActivity) mContext).displayRemoteID(RemoteIDInfo.strName);
                 }
                 else if (eCallStatus == CALLSTATUS.TALKING) {
@@ -886,7 +894,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
         try {
             LOG_INFO("[onVideoSet] bSet [" + bSet + "], strRemoteSIPID [" + strRemoteSIPID + "]");
             if (bSet) {
-                if (!strRemoteSIPID.contains(Declare.DEVICENAME.strType_Lobby)) {
+                if (!strRemoteSIPID.contains(Declare.DEVICENAME.strType_Front)) {
                     Log.e(TAG, "[onVideoSet] Device name is not matched!!!");
                     return;
                 }
@@ -1064,8 +1072,9 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
     private void doTalkByBTN(CALLOWNER eCallOwner) {
         try {
             LOG_INFO("[doTalkByBTN] CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getFRONT() + "]");
-            if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLED) {
-                MainActivity.mCallController.acceptMoIPCall(false);
+            if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLED || MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLING) {
+                send_start_talking_request(RemoteIDInfo.strIP);
+                //MainActivity.mCallController.acceptMoIPCall(false);
                 MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
             } else if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.TALKING) {
                 MainActivity.mCallController.quitMoIPCall();
@@ -1232,6 +1241,9 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
             } else {
                 LOG("[procAddCall] No MultiCall!!");
                 // 멀티콜 없음
+                if (RemoteIDInfo.bAutoCall) {
+                    doAutoCall();   // 멀티콜 상황이 아닌경우 자동호출을 수행함
+                }
                 MainActivity.mCallController.mCallInfo.resetMultiCallInfo();
             }
         } catch (RuntimeException re) {
@@ -1243,6 +1255,26 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
         }
     }
 
+    private void doAutoCall() {
+        try {
+            Log.e(TAG, "[doAutoCall] RemoteIDInfo.bAutoCall [" + RemoteIDInfo.bAutoCall + "]");
+            if (RemoteIDInfo.bAutoCall) {
+                RemoteIDInfo.bAutoCall = false;
+                LOG("[doAutoCall] strDong [" + RemoteIDInfo.strDong + "], strHo [" + RemoteIDInfo.strHo + "], strIP [" + RemoteIDInfo.strIP + "]");
+
+
+            } else {
+                LOG("[doAutoCall] AutoCall is not activated!!");
+            }
+        } catch (RuntimeException re) {
+            LogUtil.errorLogInfo("", TAG, re);
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] doAutoCall()");
+            //e.printStackTrace();
+            LogUtil.errorLogInfo("", TAG, e);
+        }
+    }
+
     private void playFrontCamBell(boolean bBell) {
         try {
             MainActivity.mIOInterface.ctrlFrontCamPower(bBell);
@@ -1519,7 +1551,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
 
                     @Override
                     public void ProcError() {
-                        LOG_INFO("[send_check_sip_activation_request] ProcError()");
+                        LOG_INFO("[send_lobby_open_request] ProcError()");
                         bSentiMAP = false;
                         MainActivity.mSound.Play(SND.setting.RETRY_ACTION);
 //                        mPathCheckHandler.sendEmptyMessage(2); // 통화패스 Normal로 변경 확인 후 멘트 출력 seulki
@@ -1527,7 +1559,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
 
                     @Override
                     public void ProcDoing() {
-                        LOG_INFO("[send_check_sip_activation_request] ProcDoing()");
+                        LOG_INFO("[send_lobby_open_request] ProcDoing()");
                         bSentiMAP = false;
                     }
                 });
@@ -1536,7 +1568,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
         } catch (RuntimeException re) {
             LogUtil.errorLogInfo("", TAG, re);
         } catch (Exception e) {
-            Log.e(TAG, "[Exception] send_check_sip_activation_request(String strTargetIP, String strMessage)");
+            Log.e(TAG, "[Exception] send_lobby_open_request(String strTargetIP, String strMessage)");
             //e.printStackTrace();
             LogUtil.errorLogInfo("", TAG, e);
         }
@@ -1713,7 +1745,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                 return true;
             }
         } catch (Exception e) {
-            Log.e(TAG, "[Exception] send_check_sip_activation_request(String strTargetIP, String strMessage)");
+            Log.e(TAG, "[Exception] send_start_talking_request(String strTargetIP, String strMessage)");
             e.printStackTrace();
             MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
         }
@@ -1738,6 +1770,8 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                     public void ProcError() {
                         LOG_INFO("[send_check_sip_activation_request] ProcError()");
                         MainActivity.mCallController.mSIPInterface.cancelCallForwardToStun();
+                        //MainActivity.mSound.PlayMent(SND.call.BUSY_TRY_LATER);
+                        //doEnd();
                     }
 
                     @Override
@@ -2073,6 +2107,7 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
         public final static int TAKE_VISITORPICTURE = 125;
         public final static int CALL_FORWARD = 130;
         public final static int ENABLE_SAVE_VISITORPICTURE = 140;
+        public final static int SHOW_FRONTVIDEO = 150;
         public final static int FLICKER_LED_CALL = 160;
         public final static int REFRESH_BTNLED_STATUS = 170;
         public final static int SET_BTN_STATUS = 175;
@@ -2110,11 +2145,18 @@ public class TalkFront extends WpadScreen implements CallEventListener, MainEven
                 case TalkFront.HANDLERMSG.ENABLE_SAVE_VISITORPICTURE:
                     if (MainActivity.mCallController == null) return;
                     if (MainActivity.mCallController.mCallInfo == null) return;
-                    if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLED || MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.TALKING) {
+                    if (MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLING || MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.CALLED || MainActivity.mCallController.mCallInfo.getFRONT() == CALLSTATUS.TALKING) {
                         BTN_SAVE_PICTURE.setButtonEventOffDisable();
+                        //MainActivity.mIOInterface.ctrlPopupGUI(false);
                     }
                     break;
 
+                case HANDLERMSG.SHOW_FRONTVIDEO:
+
+                    //ctrlAlphaBlending(true);
+
+                    break;
+
                 case TalkFront.HANDLERMSG.TAKE_VISITORPICTURE:
                     if (bEnableVisitorPic) startTakeVisitorPicture((String) msg.obj);
                     break;

+ 6 - 2
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkLobby.java

@@ -409,8 +409,9 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
     @Override
     public void onMainTouchEvent(MAINEVENT eEvent) {
         try {
-            LOG_INFO("[onMainTouchEvent] eEvent [" + eEvent + "]");
+            LOG_INFO("[onMainTouchEvent] eEvent [" + eEvent + "] RemoteIDInfo.strIP [" + RemoteIDInfo.strIP + "]");
             if (eEvent == MAINEVENT.BTN_HOME) {
+                send_stop_talking_request(RemoteIDInfo.strIP);
                 if (MainActivity.mCallController.mCallInfo.getLOBBY() != CALLSTATUS.TALKING) Sound().Play(SND.effect.TOUCH_LATCHED);
                 finishWallpadCallApp();
             } else if (eEvent == MAINEVENT.BTN_HOME_MOBILE) {
@@ -579,6 +580,8 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
                     sendReliefFilterSelectBR(nSelectedFilter);
                     MainActivity.mCallController.MultiCallScenarioManager();
                 } else if (eCallStatus == CALLSTATUS.TIMEOUT_1STCALL) {
+
+                    MainActivity.mIOInterface.ctrlPopupGUI(true);
                     bEnableVisitorPic = false;
                     bReliefCallInit = false;
                     Global.stopMelodyRepeat();
@@ -1038,7 +1041,8 @@ public class TalkLobby extends WpadScreen implements CallEventListener, MainEven
         try {
             LOG_INFO("[doTalkByBTN] CALLSTATUS [" + MainActivity.mCallController.mCallInfo.getLOBBY() + "]");
             if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.CALLED) {
-                MainActivity.mCallController.acceptMoIPCall(false);
+                send_start_talking_request(RemoteIDInfo.strIP);
+                //MainActivity.mCallController.acceptMoIPCall(false);
                 MainActivity.mCallController.mCallInfo.setCallOwner(eCallOwner);
             } else if (MainActivity.mCallController.mCallInfo.getLOBBY() == CALLSTATUS.TALKING) {
                 MainActivity.mCallController.quitMoIPCall();

+ 22 - 11
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/screen/TalkResidence.java

@@ -593,11 +593,14 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
         super.onKeyDown(keyCode, event);
     }
 
+    String mRemoteDong = "101";
+    String mRemoteHo = "101";
+
     private boolean send_call_history_save(String strType, String strTime) {
         try {
             LOG_INFO("[send_call_history_save] strType() "+ strType + " strTime " + strTime);
             final Request_call_history_save call_history_save = new Request_call_history_save(mContext);
-            if (call_history_save.send_call_history_save(RemoteIDInfo.strDong, RemoteIDInfo.strHo, strType, strTime)) {
+            if (call_history_save.send_call_history_save(mRemoteDong, mRemoteHo, strType, strTime)) {
                 call_history_save.setResultCtrl(new RetProci() {
 
                     @Override
@@ -640,6 +643,10 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                 if (eCallStatus == CALLSTATUS.CALLING) {
                     mbCallState = true;
                     bRcvEnd = false;
+
+                    mRemoteDong = RemoteIDInfo.strDong;
+                    mRemoteHo = RemoteIDInfo.strHo;
+
                     Global.playMelodyRepeat(eCallType);
                     super.setFinishTimerDestroy();
                     if (Global.getKitchenTVIdx(eCallOwner) >= 0 || Global.getBathPhoneIdx(eCallOwner) >= 0 || eCallOwner == CALLOWNER.SUB_WALLPAD || Global.getBathTVIdx(eCallOwner) >= 0) {
@@ -649,21 +656,25 @@ public class TalkResidence extends WpadScreen implements CallEventListener, Main
                     updateInstruction();
                     Global.make1stCallHistoryInfo(strRemoteIP, strRemoteSIPID, CALLDIRECTION.OUT, CALLACTION.MISS, CALLRESULT.OUT_MISS);
 
+                    //strRemoteIP
+                    //setTunkeyImage(0);
+
 //                    String[] strEndIP = {"10.1.1.1", "10.1.1.2", "10.1.1.3", "10.1.1.4", "10.1.1.5", "10.1.1.6", "10.1.1.7"};
 //
-//                    for(int i = 0; i < strEndIP.length; i++)
-//                    {
-//                        if (strRemoteIP.equals(strEndIP[i])) {
-//
-//                            CallStateThread nr = new CallStateThread(i) ;
-//                            Thread t = new Thread(nr) ;
-//                            t.start() ;
-//                            break;
-//                        }
-//                    }
+                    for(int i = 0; i < strEndIP.length; i++)
+                    {
+                        if (strRemoteIP.equals(strEndIP[i])) {
+
+                            setTunkeyImage(i);
+                            break;
+                        }
+                    }
 
                 } else if (eCallStatus == CALLSTATUS.CALLED) {
                     bRcvEnd = false;
+                    mRemoteDong = RemoteIDInfo.strDong;
+                    mRemoteHo = RemoteIDInfo.strHo;
+
                     Global.playMelodyRepeat(eCallType);
                     super.setFinishTimerDestroy();
                     if (Global.getKitchenTVIdx(eCallOwner) >= 0 || Global.getBathPhoneIdx(eCallOwner) >= 0 || Global.getBathTVIdx(eCallOwner) >= 0 || eCallOwner == CALLOWNER.SUB_WALLPAD) {

BIN
WallPadCall/src/main/res/drawable-ldpi/lo_01.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_02.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_03.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_04.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_05.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_06.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_07.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_08.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_09.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_10.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_11.png


BIN
WallPadCall/src/main/res/drawable-ldpi/lo_12.png


BIN
WallPadCall/src/main/res/drawable/btn_driver_normal.png


BIN
WallPadCall/src/main/res/drawable/btn_driver_pressed.png


BIN
WallPadCall/src/main/res/drawable/btn_driver_selected.png


BIN
WallPadCall/src/main/res/drawable/btn_floor_1_normal.png


BIN
WallPadCall/src/main/res/drawable/btn_floor_1_pressed.png


BIN
WallPadCall/src/main/res/drawable/btn_floor_1_selected.png


BIN
WallPadCall/src/main/res/drawable/btn_floor_2_normal.png


BIN
WallPadCall/src/main/res/drawable/btn_floor_2_pressed.png


BIN
WallPadCall/src/main/res/drawable/btn_floor_2_selected.png


BIN
WallPadCall/src/main/res/drawable/btn_floor_3_normal.png


BIN
WallPadCall/src/main/res/drawable/btn_floor_3_pressed.png


BIN
WallPadCall/src/main/res/drawable/btn_floor_3_selected.png


BIN
WallPadCall/src/main/res/drawable/btn_kitchen_normal.png


BIN
WallPadCall/src/main/res/drawable/btn_kitchen_pressed.png


BIN
WallPadCall/src/main/res/drawable/btn_kitchen_selected.png


BIN
WallPadCall/src/main/res/drawable/btn_maid_normal.png


BIN
WallPadCall/src/main/res/drawable/btn_maid_pressed.png


BIN
WallPadCall/src/main/res/drawable/btn_maid_selected.png


BIN
WallPadCall/src/main/res/drawable/btn_main_room_normal.png


BIN
WallPadCall/src/main/res/drawable/btn_main_room_pressed.png


BIN
WallPadCall/src/main/res/drawable/btn_main_room_selected.png


+ 66 - 3
WallPadMain/src/main/java/kr/co/icontrols/wallpadmain/util/iMapServer.java

@@ -3371,6 +3371,12 @@ public class iMapServer extends Service {
                                     break;
                                 }
                             }
+
+                            if(bWallPadCallLive && m_bWallpadCallScreen == false)
+                            {
+                                sip_result = "fail";
+                            }
+
                             retXML = XMLHeader + "<service type=\"reply\" name=\"check_sip_activation\" result=\"" + sip_result + "\">\r\n    <message>\"null\"</message>\r\n</service>\r\n</imap>\r\n";
 
                             //add KSJ 2021.11.02 check_sip_activation msg recv 이후 wallpadcall app start
@@ -14133,7 +14139,7 @@ public class iMapServer extends Service {
     //add KSJ 2021.11.02
     public void runCallMainActivity_moip(CALLEVENTTYPE eEventType, CALLTYPE eCallType, String strIP) {
         try {
-            if (!bWallPadCallLive) {
+            if (!bWallPadCallLive || m_bWallpadCallScreen) {
                 // 통화어플을 실행시킨다.
                 Log.w(TAG, "[runCallMainActivity_moip] ########## START ##########");
                 sendLCDBacklightStatus(true);
@@ -14145,6 +14151,9 @@ public class iMapServer extends Service {
                 if (nAlramStatus != WallpadStatusData.GUARD_OUT)
                     Common.SendAppFinishReqBR(getApplicationContext());
 
+                if(m_bWallpadCallScreen)
+                    Thread.sleep(1000);   // Call app이 실행되는 시간을 기다려준다. (빨리 띄우면 이벤트를 수신 못함)
+
                 ComponentName mComponentName = new ComponentName("kr.co.icontrols.wallpadcall", "kr.co.icontrols.wallpadcall.MainActivity");
                 Intent mIntent = new Intent(Intent.ACTION_MAIN);
                 mIntent.putExtra(CALLTRIGGER.CALLOWNER, CALLOWNER.NONE.toString());
@@ -15448,9 +15457,10 @@ public class iMapServer extends Service {
      * WallPadCall은 해당 BR이 수신되면 실행상태를 알리는 BR를 송신하여 이에 응답한다.
      * WallPadMain은 이 응답 BR의 수신여부를 판단하여 WallPadCall의 실행여부를 판단한다.
      */
-    int MAX_WALLPADCALL_LIVE_CNT = 2;
+    int MAX_WALLPADCALL_LIVE_CNT = 1;
     int nWallPadCallACKCnt = MAX_WALLPADCALL_LIVE_CNT;   // MAX_WALLPADCALL_LIVE_CNT회 이상 응답이 없으면 WallPadCall이 종료된것으로 판단한다.
     public static boolean bWallPadCallLive = false;   // WallPadCall의 Live 상태를 나타낸다.
+    public static boolean m_bWallpadCallScreen = false;
     int nWallPadCallPID = 0;   // WallPadCall을 강제 종료하기 위한 PID (WallPadCall로부터 BR로 수신한다.)
     Handler handlerCheckWallPadCallLive = new Handler() {
         public void handleMessage(Message msg) {
@@ -15487,18 +15497,71 @@ public class iMapServer extends Service {
         }
     }
 
+    public boolean getWallpadCallScrean(int iScreen)
+    {
+        boolean bRet = false;
+        try {
+            switch (iScreen) {
+                case API_Menu.SubMenuCall.Door:
+                    bRet = false;
+                    break;
+
+                case API_Menu.SubMenuCall.Lobby:
+                    bRet = false;
+                    break;
+
+                case API_Menu.SubMenuCall.Guard:
+                    bRet = false;
+                    break;
+
+                case API_Menu.SubMenuCall.Neighbor:
+                    bRet = false;
+                    break;
+
+                case API_Menu.SubMenuCall.PSTN:
+                    bRet = false;
+                    break;
+
+                case API_Menu.SubMenuCall.CallList:
+                    bRet = true;
+                    break;
+
+                case API_Menu.SubMenuCall.Visitor:
+                    bRet = true;
+                    break;
+
+                default:
+                    bRet = false;
+                    break;
+            }
+        } catch (RuntimeException re) {
+            LogUtil.errorLogInfo("", TAG, re);
+            return false;
+        } catch (Exception e) {
+            Log.e(TAG, "[Exception] setChangeScreen->Screen Create");
+            //e.printStackTrace();
+            LogUtil.errorLogInfo("", TAG, e);
+            return false;
+        }
+
+        return bRet;
+    }
+
     BroadcastReceiver WallPadCallLiveBRCheck = new BroadcastReceiver() {
         @Override
         public void onReceive(Context context, Intent intent) {
             try {
                 String strActionName = intent.getAction();
+                int iWallpadCallScreen = intent.getIntExtra("WALLPADCALL_VIEW", 0);
 //                Log.d(TAG,"[WallPadCallLiveBRCheck] strActionName [" + strActionName + "]");
 
                 if (strActionName.equals(Common.BR_ACK_WALLPADCALL_LIVE)) {
                     bWallPadCallLive = true;
                     Common.bWallPadCallLive = bWallPadCallLive;
                     nWallPadCallACKCnt = MAX_WALLPADCALL_LIVE_CNT;
-                    Log.w(TAG, "[WallPadCallLiveBRCheck] bWallPadCallLive [" + bWallPadCallLive + "]");
+
+                    m_bWallpadCallScreen = getWallpadCallScrean(iWallpadCallScreen);
+                    Log.w(TAG, "[WallPadCallLiveBRCheck] bWallPadCallLive [" + bWallPadCallLive + "] iWallpadCallScreen [" + iWallpadCallScreen + "]");
                 } else {
                     Log.w(TAG, "[WallPadCallLiveBRCheck] Not supported strActionName [" + strActionName + "]");
                 }