Explorar o código

[WallPadCall]
1. PSTN ARS 자동 연결 시, 첫음과 2번째음 간격 수정

[WallPadMain]
1. 현관 통화 패스 변경 ( 10 -> 14 )

[WallPadSupport]
1. 현관/로비/이웃통화 벨소리 통일(현관 소리로 통일)

DESKTOP-FBA840V\icontrols %!s(int64=4) %!d(string=hai) anos
pai
achega
435c5f2734

+ 11 - 0
WallPadCall/src/main/java/kr/co/icontrols/callengine/pstn/PSTNController.java

@@ -673,14 +673,25 @@ public class PSTNController {
                     if (0 < mGWDTMFSendDataBuilder.length()) {
                         LOG_INFO("[GWDTMFSenderThread().run()] mGWDTMFSendDataBuilder.toString() [" + mGWDTMFSendDataBuilder.toString() + "]");
                         strSendingDTMF = String.valueOf(mGWDTMFSendDataBuilder.charAt(0));
+                        ;
                         sendDTMFNo(bAutoSend, strSendingDTMF);
 
+
+
                         // 각각의 DTMF 신호사이에 딜레이를 준다.
                         if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300) {
                             if (bAutoSend) Thread.sleep(70);
                         }
                         else if (ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40 || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_IGW300_NOUGAT || ConfigValues.DEVICE_BOARDTYPE == BOARD_TYPE.V40_NOUGAT) {
                             if (bAutoSend) {
+                                //이진규 여기 좀더 오래 걸리게 수정 후, PSTN Generator를 이용해
+                                if(RemoteIDInfo.bAutoCall)
+                                {
+                                    if(mGWDTMFSendDataBuilder.length()> 7)
+                                    {
+                                        Thread.sleep(500);
+                                    }
+                                }
                                 Thread.sleep(400);
 //                                LOG("[GWDTMFSenderThread().run()] Thread.sleep() bAutoCall [" + RemoteIDInfo.bAutoCall + "]");
 //                                if (RemoteIDInfo.bAutoCall) {

+ 12 - 3
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/MainActivity.java

@@ -1561,6 +1561,9 @@ public class MainActivity extends WpadActivity {
         strCallEvent = mIntent.getStringExtra(CALLTRIGGER.CALLEVENTTYPE);
         strCallType = mIntent.getStringExtra(CALLTRIGGER.CALLTYPE);
         strRemoteInfo = mIntent.getStringExtra(CALLTRIGGER.REMOTEINFO);
+        //이정보를 가지고 체크
+        bArsAutoCall = mIntent.getBooleanExtra(CALLTRIGGER.ARSAUTOCALL, false);
+
         nRemoteInfo_Dong = mIntent.getIntExtra(CALLTRIGGER.REMOTEINFO_DONG, 0);
         nRemoteInfo_Ho = mIntent.getIntExtra(CALLTRIGGER.REMOTEINFO_HO, 0);
 
@@ -2217,6 +2220,7 @@ public class MainActivity extends WpadActivity {
     String strCallEvent = "NONE";
     String strCallType = "NONE";
     String strRemoteInfo = "NONE";
+    boolean bArsAutoCall = false;
     int nRemoteInfo_Dong = 0;
     int nRemoteInfo_Ho = 0;
 
@@ -2300,6 +2304,8 @@ public class MainActivity extends WpadActivity {
                         else if (calltype == CALLTYPE.PSTN) {
                             RemoteIDInfo.bAutoCall = true;
                             RemoteIDInfo.strPSTNInfo = strRemoteInfo;
+                            RemoteIDInfo.mARSAutoCall = bArsAutoCall;
+
                             if (mCallController != null) {
                                 mCallController.mCallInfo.setCallOwner(callowner);
                                 mCallController.CallScenarioManager(callowner, calleventtype, calltype, null, null, null);
@@ -5493,9 +5499,12 @@ public class MainActivity extends WpadActivity {
 
             // [bell]
             case SND.bell.FRONT:				FileName = "bell/Bell_Front.wav"; break;
-            case SND.bell.GUARDROOM:			FileName = "bell/Bell_GuardRoom.wav"; break;
-            case SND.bell.LOBBY:				FileName = "bell/Bell_Lobby.wav"; break;
-            case SND.bell.NEIGHBOOR:			FileName = "bell/Bell_Neighboor.wav"; break;
+            //case SND.bell.GUARDROOM:			FileName = "bell/Bell_GuardRoom.wav"; break;
+            case SND.bell.GUARDROOM:			FileName = "bell/Bell_Front.wav"; break;
+            //case SND.bell.LOBBY:				FileName = "bell/Bell_Lobby.wav"; break;
+            case SND.bell.LOBBY:				FileName = "bell/Bell_Front.wav"; break;
+            //case SND.bell.NEIGHBOOR:			FileName = "bell/Bell_Neighboor.wav"; break;
+            case SND.bell.NEIGHBOOR:			FileName = "bell/Bell_Front.wav"; break;
             case SND.bell.PSTN:					FileName = "bell/Bell_Pstn.wav"; break;
             case SND.bell.ALRAM:				FileName = "bell/Alram.wav"; break;
             case SND.bell.MONINGCALL_01:		FileName = "bell/MoningCall01.wav"; break;

+ 2 - 0
WallPadCall/src/main/java/kr/co/icontrols/wallpadcall/declare/DataClasses.java

@@ -44,6 +44,7 @@ public final class DataClasses {
         public static String strGuardTypeBySubPhone = "";
         public static boolean bRentRoomSelected = false;   // 분리세대 호출시 설정
         public static int nHo_Extension = 0;   // 분리세대 일련번호 정보 Ex) "101-1"의 "-"뒤의 "1"입력
+        public static boolean mARSAutoCall = false;
 
         public static void InitVariables() {
             LOG("[InitVariables]");
@@ -61,6 +62,7 @@ public final class DataClasses {
             strGuardTypeBySubPhone = "";
             bRentRoomSelected = false;
             nHo_Extension = 0;
+            mARSAutoCall = false;
         }
 
         public static void InitVariablesforResi() {

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

@@ -157,6 +157,7 @@ public class Declare {
         public static String REMOTEINFO = "REMOTEINFO";
         public static String REMOTEINFO_DONG = "REMOTEINFO_DONG";
         public static String REMOTEINFO_HO = "REMOTEINFO_HO";
+        public static String ARSAUTOCALL = "ARSAUTOCALL";
 
         public enum SOURCE {
             USER,

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

@@ -1694,7 +1694,7 @@ public final class Global {
         public static boolean bUnoccupiedMode = false;   // 착신전환 (외출, 방범)
         public static boolean bPSTNEnable = false;   // PSTN 사용 유무
         public static boolean bSubPhoneEnable = false;   // 서브통화기기 연동 유무
-        public static DOORLOCKTYPE eDoorLockType = DOORLOCKTYPE.WIRED;   // 도어락 종류
+        public static DOORLOCKTYPE eDoorLockType = DOORLOCKTYPE.WIRELESS;   // 도어락 종류
         public static int nCtrlLight = 0;/// 1 : 현산형, 2 : 대외기본형, 3 : 대외각실형
         public static boolean bCtrlThermostat = false;   // 온도조절기 사용유무
         public static boolean bCtrlGasValve = false;   // 가스밸브 사용유무

+ 4 - 0
WallPadConfig/src/main/java/kr/co/icontrols/wallpadconfig/screen/PopupAsCall.java

@@ -165,6 +165,7 @@ public class PopupAsCall extends WpadScreen
         public static String CALLEVENTTYPE = "CALLEVENTTYPE";
         public static String CALLTYPE = "CALLTYPE";
         public static String REMOTEINFO = "REMOTEINFO";
+        public static String ARSAUTOCALL = "ARSAUTOCALL";
     }
     
     public void runCallMainActivity() {
@@ -173,10 +174,13 @@ public class PopupAsCall extends WpadScreen
             ComponentName mComponentName = new ComponentName("kr.co.icontrols.wallpadcall", "kr.co.icontrols.wallpadcall.MainActivity");
             Intent mIntent = new Intent(Intent.ACTION_MAIN);
 //            mIntent.addCategory(Intent.CATEGORY_LAUNCHER);
+
             mIntent.putExtra(CALLTRIGGER.CALLOWNER, "WALLPAD");
             mIntent.putExtra(CALLTRIGGER.CALLEVENTTYPE, "TRYING_CALL");
             mIntent.putExtra(CALLTRIGGER.CALLTYPE, "PSTN");
             mIntent.putExtra(CALLTRIGGER.REMOTEINFO, "15886545");
+            //여기서 해당 설정에서 넘어가는 정보는 추가 정보를 더 넘겨준다.
+            mIntent.putExtra(CALLTRIGGER.ARSAUTOCALL, true);
             mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
             mIntent.setComponent(mComponentName);
             this.getContext().startActivity(mIntent);

+ 3 - 1
WallPadMain/src/main/java/com/artncore/deviceinterface/WallPadInterface.java

@@ -43,7 +43,9 @@ public class WallPadInterface {
 	public static final int AUDIO_MODE_DOOR_SUBPHONE    = 7; // 현관폰 과 SubPhone 통화시
 	public static final int AUDIO_MODE_IN_MIC_PSTN      = 8; // PSTN 로 WallPad 와 통화시 MIC On
 	public static final int AUDIO_MODE_IN_ARS_PSTN      = 9; // PSTN 로 WallPad 와 통화시 ARS 모드로
-	public static final int AUDIO_MODE_IN_VOICE_DOOR    = 10; // WallPad와 현관폰 통화시 음성출력 모드로
+	//public static final int AUDIO_MODE_IN_VOICE_DOOR    = 10; // WallPad와 현관폰 통화시 음성출력 모드로
+	//이진규
+	public static final int AUDIO_MODE_IN_VOICE_DOOR    = 14; // WallPad와 현관폰 통화시 음성출력 모드로 10번에서 14번으로 수정 해당 내용은 대외향에는 모두 기본적으로 설정해야 함
 
 	public static final int IOCTL_DOOR_DINGDONG         = 0xFF01;   // 현관폰 벨제어
 	public static final int IOCTL_BTNEMR_LEDONOFF       = 0xFF02;   // 비상버튼 LED

+ 6 - 3
WallPadSupport/src/main/java/kr/co/icontrols/wallpadsupport/WpadSound.java

@@ -841,9 +841,12 @@ public class WpadSound
 
 			// [bell]
 			case SND.bell.FRONT:				FileName = "bell/Bell_Front.wav"; break;
-			case SND.bell.GUARDROOM:			FileName = "bell/Bell_GuardRoom.wav"; break;
-			case SND.bell.LOBBY:				FileName = "bell/Bell_Lobby.wav"; break;
-			case SND.bell.NEIGHBOOR:			FileName = "bell/Bell_Neighboor.wav"; break;
+			//case SND.bell.GUARDROOM:			FileName = "bell/Bell_GuardRoom.wav"; break;
+			case SND.bell.GUARDROOM:			FileName = "bell/Bell_Front.wav"; break;
+			//case SND.bell.LOBBY:				FileName = "bell/Bell_Lobby.wav"; break;
+			case SND.bell.LOBBY:				FileName = "bell/Bell_Front.wav"; break;
+			//case SND.bell.NEIGHBOOR:			FileName = "bell/Bell_Neighboor.wav"; break;
+			case SND.bell.NEIGHBOOR:			FileName = "bell/Bell_Front.wav"; break;
 			case SND.bell.PSTN:					FileName = "bell/Bell_Pstn.wav"; break;
 			case SND.bell.ALRAM:				FileName = "bell/Alram.wav"; break;
 			case SND.bell.MONINGCALL_01:		FileName = "bell/MoningCall01.wav"; break;