<html>
<head>
<meta charset="euc-kr">
	<title>Cloud Storage - Used Storage Check Report</title>
</head>

<body>
<h1>Cloud Storage</h1>
<h2>서비스별 Storage 사용량 Report (Ver 3.5.0.R1506)</h2>


<?php
// 라이브러리 정의
require_once("inc/sendmail.inc");   // 메일 전송 관련.


// 상수값 정의
define( CONF_FILE, "/user/service/etc/check_storage.conf");


// ******* TODO: IDC 별 설정,  ****************
// 본 설정은 SMS 전송 관련 설정. KT, LG 등으로 설정 처리
//define( IDC_INFO, "KT" );
//define( IDC_INFO, "LG U+" );
//define( IDC_INFO, "SKBB" );
define( IDC_INFO, "SOLBOX" );


// IDC 별 설정 설정 정보
if( strcmp( IDC_INFO, "KT" ) == 0 )
{
	$CCDB_CONNECT_STRING = "dbname=cs_ccdb user=solboxcs password=thsutleodlQj host=cc-gts.ktsh.co.kr port=9000";  // KT CCDB
	$ALARM_MAIL_SENDER   = "storage@solbox.com";	// KT 메일 발신자.
}
else if( strcmp( IDC_INFO, "LG U+" ) == 0 )
{
	$CCDB_CONNECT_STRING = "dbname=cs_ccdb user=solboxcs password=thsutleodlQj host=cs-gts.x-cdn.com port=9000";  // LG U+ CCDB
	$ALARM_MAIL_SENDER   = "storage@solbox.com";	// LG U+ 메일 발신자 (개발팀 Storage 담당)
}
else if( strcmp( IDC_INFO, "SKBB" ) == 0 )
{
	$CCDB_CONNECT_STRING = "dbname=cs_ccdb user=solboxcs password=thsutleodlQj host=222.239.93.4 port=6543";  // SKB CCDB
	$ALARM_MAIL_SENDER   = "storage@solbox.com";	// SKBB 메일 발신자 (개발팀 Storage 담당)
}
else if( strcmp( IDC_INFO, "SOLBOX" ) == 0 )
{
	$CCDB_CONNECT_STRING = "dbname=cs_ccdb user=solboxcs password=thsutleodlQj host=192.168.10.128 port=6543";  // SKB CCDB
	$ALARM_MAIL_SENDER   = "storage@solbox.com";	// SKBB 메일 발신자 (개발팀 Storage 담당)
}
else
{
	//TODO: IDC 별 설정 추가
	die("<p><b>[ERROR] Undefined IDC info. Check IDC_INFO value.</b></p></body></html>");

}



// TODO: SMS 전송함수 ( IDC 별  기능 추가 )
// SMS 전송 처리 결과... 1: 전송 성공, 0: 전송 실패, -1: SMS 전송 설정 안됨..
function send_sms( $phone, $message )
{
	if( strcmp( IDC_INFO, "KT" ) == 0 )
	{
		// KT 의 경우 SMS 전송을 위해 MySQL DB 사용하며...
		// - INSERT 처리시 고유 규칙이 있어 이를 준수해야 함.
		require_once("inc/mysql.inc");

		// KT SMS 전송은 MySQL DB 에 KT 관련 규칙에 맞도록 저장 처리한다.
		$sms_db = new dbconnect('222.122.18.22', 'smsuser', 'sms5emffld)', 'sms', __FILE__, __LINE__);

		// KT 수신자관련 저장 규칙
		$sms_target = "ktics1^".$phone;

		$sms_query  = "INSERT INTO SDK_SMS_SEND (USER_ID, SCHEDULE_TYPE, SUBJECT, NOW_DATE, SEND_DATE, CALLBACK, DEST_COUNT, DEST_INFO, SMS_MSG) ";
		$sms_query .= "VALUES ('ktics1', 0,'ktics1',DATE_FORMAT(now(),'%Y%m%d%H%i%s'),DATE_FORMAT(now(),'%Y%m%d%H%i%s'),'0317810344', 1,'$sms_target','$message')";

		$sms_result = $sms_db->query($sms_query, __FILE__, __LINE__);

		// SMS DB 접속 해제	
		$sms_db->close();

		if( !$sms_result->result ) // 전송 실패시....
			return 0;
		else
			return 1;
	}
	else if( strcmp( IDC_INFO, "LG U+" ) == 0 )        //LG U+ 의 SMS 전송 기능
	{
		// LG U+ 의 경우.. SMS 전송을 위해 Oracle -> MySQL DB로 변경되어 이를 사용
		// - INSERT 처리시 고유 규칙이 있어 이를 준수해야 함.
		require_once("inc/mysql.inc");

		$sms_db = new dbconnect('smsdb.x-cdn.com', 'xcdnuser', 'solbox123', 'SMS', __FILE__, __LINE__);
        
        $sms_query  = "INSERT INTO SC_TRAN( TR_SENDDATE, TR_SENDSTAT, TR_PHONE, TR_CALLBACK, TR_MSG, TR_MSGTYPE)";
        $sms_query .= "VALUES ( now(), '0', '$phone', '$phone', '$message', '0')";

       	$sms_result = $sms_db->query($sms_query, __FILE__, __LINE__);

		// SMS DB 접속 해제	
		$sms_db->close();

		if( !$sms_result->result ) // 전송 실패시....
			return 0;
		else
			return 1;

	}
	else if( strcmp( IDC_INFO, "SKBB" ) == 0 )
	{
		// SKBB 의 경우 SMS 전송을 위해 솔박에서 구매한 sms 전송 시스템 사용, MySQL DB 사용		
		require_once("inc/mysql.inc");

		// SKBB SMS 전송은 MySQL DB 에 관련 규칙에 맞도록 저장 처리한다.
		$sms_db = new dbconnect('222.239.93.143:13306', 'lghv_user', 'solbox@#12', 'lghv_db', __FILE__, __LINE__);

		// 수신자관련 저장 규칙
		$sms_target = $phone;
		
		$sms_query = "INSERT INTO lghv_db.TBL_SEND_TRAN( fmsgtype, fmessage, fsenddate, fdestine, fcallback ) ";
        $sms_query.= "VALUES ( '0', '$message', now(), '$sms_target', '0221823688' ); ";
		
		$sms_result = $sms_db->query($sms_query, __FILE__, __LINE__);

		// SMS DB 접속 해제	
		$sms_db->close();

		if( !$sms_result->result ) // 전송 실패시....
			return 0;
		else
			return 1;
	}
	else if( strcmp( IDC_INFO, "SOLBOX" ) == 0 )
	{
		// SOLBOX 인 경우.. SKBB 를 그대로 사용한다.
		// SKBB 의 경우 SMS 전송을 위해 솔박에서 구매한 sms 전송 시스템 사용, MySQL DB 사용		
		require_once("inc/mysql.inc");

		// SKBB SMS 전송은 MySQL DB 에 관련 규칙에 맞도록 저장 처리한다.
		$sms_db = new dbconnect('222.239.93.143:13306', 'lghv_user', 'solbox@#12', 'lghv_db', __FILE__, __LINE__);

		// 수신자관련 저장 규칙
		$sms_target = $phone;
		
		$sms_query = "INSERT INTO lghv_db.TBL_SEND_TRAN( fmsgtype, fmessage, fsenddate, fdestine, fcallback ) ";
        $sms_query.= "VALUES ( '0', '$message', now(), '$sms_target', '0221823688' ); ";
		
		$sms_result = $sms_db->query($sms_query, __FILE__, __LINE__);

		// SMS DB 접속 해제	
		$sms_db->close();

		if( !$sms_result->result ) // 전송 실패시....
			return 0;
		else
			return 1;
	}
	else
	{
		// SMS 전송함수가 정의되어 있지 않은 경우.
		return -1;
	}
}


// 서비스 정보 출력시... Storage 사용률 정보를 기준으로 Sort 처리하기 위한 함수.
function service_compare($x, $y)
{
	if( $x[6] == $y[6] )
	{
		// 스토리지 사용률이 동일한 경우....
		// 스토리지 사용량값을 이용하여 정렬 처리.
		if( $x[4] == $y[4] )
			return 0;
		else if( $x[4] < $y[4] )
			return 1;
		else
			return -1;
	}
	else if( $x[6] < $y[6] )
		return 1;
	else
		return -1;
}

// 기타 정의
date_default_timezone_set('Asia/Seoul');  // date 함수 사용 관련 timezone 설정 오류 회피 목적

//phpinfo();

// 시작 정보 기록..
$check_start_time = date("Y-m-d H:i:s");


// CCDB 상에서 감시대상 서비스 정보 추출
$ccdb_handle = pg_connect( $CCDB_CONNECT_STRING );
if( $ccdb_handle == false )
{
	// CCDB 연결 실패시... PHP 종료 처리
	die("<p><b>[$check_start_time] CCDB Connection failed.</b></p></body></html>");
}

$query_service = "SELECT A.svc_id AS service, D.id AS rc_name, D.stat_id AS rc_id , A.user_seq AS user_seq, A.svc_seq AS svc_seq, B.storage_used_alarm AS alarm_limit 
	FROM cs_service.cs_service A, cs_alarm.cs_service_alarm B, cs_service.cs_service_config C, cs_service.cs_rc_info D
	WHERE   
		A.svc_seq = B.svc_seq 
	AND B.svc_seq = C.svc_seq
	AND C.rc_domain = D.rc_domain
	AND A.del_yn = 'N'
	AND A.status_code = 'SVC_STATUS_ING'
	AND B.storage_used_alarm > 0
	ORDER BY A.svc_seq, D.stat_id ";

$ccdb_result_service = pg_exec( $ccdb_handle, $query_service );
if( $ccdb_result_service == false )
{
	// CCDB Query 실패시... PHP 종료 처리
	echo pg_errormessage( $ccdb_handle );
	pg_close($ccdb_handle);
	die("<p><b>[$check_start_time] CCDB Query failed.[$query_service]</b></p></body></html>");

}

// 조회 결과 저장.
$array_service = array();
for( $row_service = 0; $row_service < pg_numrows($ccdb_result_service); $row_service++ )
{
	$values = pg_fetch_row( $ccdb_result_service, $row_service );

	// $values[0] : 서비스 Name : totodisk05
	// $values[1] : RC Name     : BD-09
	// $values[2] : rc stat_id  : bd09
	// $values[3] : user_seq    : 156
	// $values[4] : svc_seq     : 238
	// $values[5] : alarm_limit : 70

	array_push( $array_service, $values );
}
pg_freeresult( $ccdb_result_service );	// CCDB result set free.


// 감시대상 서비스에 대한 Storage 사용량 조회.
$services = array();	// 최종 정보를 저장할 변수.

reset( $array_service );
$service_total_count = count( $array_service );
for( $service_index = 0; $service_index < $service_total_count; $service_index++ )
{
	$query_used = "SELECT stg_size, used_stg_size, to_char(reg_date, 'YYYY-MM-DD HH24:MI:SS') FROM cs_stat.cs_stat_storage 
		WHERE reg_date > ( now() - interval '30 minute' )
		AND user_seq = ".$array_service[$service_index][3]."
		AND svc_seq = ".$array_service[$service_index][4]."
		AND rc_id = '".$array_service[$service_index][2]."'
		ORDER BY reg_date DESC LIMIT 1";

	$ccdb_result_used = pg_exec( $ccdb_handle, $query_used );

	// 결과 Row 수는 정상인 경우 1건... 조회 결과 없을 경우.. 0건 임.
	if( pg_numrows($ccdb_result_used) == 1 )
	{
		// 정상 조회된 경우...
		//$values = pg_fetch_row( $ccdb_result_used, $row_used );
		$values = pg_fetch_row( $ccdb_result_used );

		// $values[0] : 계약용량(Byte)  : 329853488332800
		// $values[1] : 사용량(Byte)    : 193857136159126
		// $values[2] : Last 통계 시각  : 2014-03-26 14:20:00

		// 최종 출력 관련 $services 배열 저장 순서..
		// 0. 서비스 Name
		// 1. RC Name
		// 2. 계약용량
		// 3. alarm_limit
		// 4. 사용량
		// 5. Last 통계 시간
		// 6. Storage 사용률 => 아래 함수에서 처리하므로.. 0.0 으로 저장 처리.

		$temp = array( $array_service[$service_index][0], $array_service[$service_index][1],  $values[0]
			, $array_service[$service_index][5],  $values[1], $values[2],  0.0 );

		array_push( $services, $temp );

	}
	else
	{
		// 해당 서비스에 대한 통계 정보 조회 실패시..
		// - 아래 Flow 에서 처리를 수행하기 위해.. 계약 용량값을 -1 값을 처리.
		$temp = array( $array_service[$service_index][0], $array_service[$service_index][1],  -1
			, $array_service[$service_index][5],  0, 'Storage 통계 Not Found',  0.0 );

		array_push( $services, $temp );
	}
	
	pg_freeresult( $ccdb_result_used );	// CCDB result set free.

}

// CCDB 연결 종료
pg_close($ccdb_handle);


// 사용율 계산
$service_total_count = count( $services ); // 전체 서비스 수.
$service_alarm_count = 0;                  // 임계치 초과 서비스 수.
$service_check_count = 0;                  // 서비스 정보 이상 관련 확인 필요한 서비스 수.

reset( $services );
for( $row_index = 0; $row_index < $service_total_count; $row_index++ )
{
	// 백분률로 처리하며.. 소수점 이하 1자리까지.
	// 정수에 대한 실수 계산 처리때문에 100.0 을 곱함.
	// 계약용량이 0 보다 큰 경우...
	if( $services[$row_index][2] > 0 )
	{
		$services[$row_index][6] =  number_format( $services[$row_index][4] * 100.0 / $services[$row_index][2] , 1 );
	}
	else if( $services[$row_index][2] == 0 )
	{
		// 계약용량이 0인 경우.. => 사용률 100% 로 처리..
		$services[$row_index][6] = 100.0;
	}
	else
	{
		// CCDB 상에서 통계 정보 조회 실패시...
		$services[$row_index][6] = -1;
		$service_check_count +=1;
	}

	// 임계치 초과 서비스 수 계산.
	// Storage 사용률이 관제 설정값보다 같거나 큰 경우...
	if( ($services[$row_index][2] >= 0) && ($services[$row_index][6] >= $services[$row_index][3]))
	{
		$service_alarm_count += 1;
	}
}

// 요약 정보 관련 HTML 생성 처리...
echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"b2b2b2\" >\n";
echo "	<tr>\n";
echo "		<td bgcolor=\"#EFEFEF\" align=\"left\">검사 시각 (30분 단위)</td>\n";
echo "		<td bgcolor=\"#FFFFFF\" align=\"center\">$check_start_time</td>\n";
echo "	</tr>\n";
echo "	<tr>\n";
echo "		<td bgcolor=\"#EFEFEF\" align=\"left\">검사 대상 서비스 수</td>\n";
echo "		<td bgcolor=\"#FFFFFF\" align=\"center\">$service_total_count</td>\n";
echo "	</tr>\n";

echo "	<tr>\n";
echo "		<td bgcolor=\"#EFEFEF\" align=\"left\">임계치 초과 서비스 수</td>\n";
if( $service_alarm_count > 0 )
{
	echo "		<td bgcolor=\"#FF0000\" align=\"center\">$service_alarm_count</td>\n";
	echo "	</tr>\n";
}
else
{
	echo "		<td bgcolor=\"#FFFFFF\" align=\"center\">$service_alarm_count</td>\n";
	echo "	</tr>\n";
}

echo "	<tr>\n";
echo "		<td bgcolor=\"#EFEFEF\" align=\"left\">설정 점검 필요 서비스 수</td>\n";
if( $service_check_count > 0 )
{
	echo "		<td bgcolor=\"#FFAA00\" align=\"center\">$service_check_count</td>\n";
	echo "	</tr>\n";
}
else
{
	echo "		<td bgcolor=\"#FFFFFF\" align=\"center\">$service_check_count</td>\n";
	echo "	</tr>\n";
}

echo "</table>\n";
echo "<br />\n";


// HTML 출력전.. Storage 사용률 기반으로 정렬 처리.
reset( $services );
usort( $services, 'service_compare');


// 추출 결과에 대한 HTML 생성 처리...
echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"b2b2b2\" >
	<tr>
		<td bgcolor=\"#EFEFEF\" align=\"center\">No</td>
		<td bgcolor=\"#EFEFEF\" align=\"center\">서비스</td>
	    <td bgcolor=\"#EFEFEF\" align=\"center\">RC Name</td>
	    <td bgcolor=\"#EFEFEF\" align=\"center\">Storage 계약용량(GB)</td>
	    <td bgcolor=\"#EFEFEF\" align=\"center\">관제 설정값(%)</td>
		<td bgcolor=\"#EFEFEF\" align=\"center\">Storage 사용량(GB)</td>
		<td bgcolor=\"#EFEFEF\" align=\"center\">Last Storage 통계 등록시각</td>
	    <td bgcolor=\"#EFEFEF\" align=\"center\">Storage 사용률(%)</td>
	</tr>\n";

reset( $services );
for( $row_index = 0; $row_index < $service_total_count; $row_index++ )
{
	echo "	<tr>\n";
	
	// No 표시
	echo "		<td align=\"right\"  bgcolor=\"#FFFFFF\">".($row_index+1)."</td>\n";
	// 서비스명
	// Storage 사용률이 관제 설정값보다 같거나 큰 경우...
	if( $services[$row_index][2] >= 0 && $services[$row_index][6] >= $services[$row_index][3] )
	{
		echo "		<td align=\"left\"   bgcolor=\"#FF0000\">".$services[$row_index][0]."</td>\n";
	}
	else if( $services[$row_index][2] == -1 )
	{
		// 통계 정보 조회 실패시..
		echo "		<td align=\"left\"   bgcolor=\"#FFAA00\">".$services[$row_index][0]."</td>\n";
	}
	else
	{
		echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">".$services[$row_index][0]."</td>\n";
	}
	// RC Name
	echo "		<td align=\"center\" bgcolor=\"#FFFFFF\">".$services[$row_index][1]."</td>\n";
	// Storage 계약 용량 
	// GB 로 변환하여 표시, 1024 단위이므로 소수점 이하 처리는 안해도 된다.
	if( $services[$row_index][2] >= 0 )
	{
		echo "		<td align=\"right\"  bgcolor=\"#FFFFFF\">".number_format($services[$row_index][2]/1024.0/1024/1024, 0)."</td>\n";
	}
	else
	{
		echo "		<td align=\"right\"  bgcolor=\"#FFAA00\">".$services[$row_index][2]."</td>\n";
	}

	// 관제 설정값.
	// Storage 사용률이 관제 설정값보다 같거나 큰 경우...
	if( $services[$row_index][2] >= 0 && $services[$row_index][6] >= $services[$row_index][3] )
	{
		echo "		<td align=\"right\"  bgcolor=\"#FF0000\">".$services[$row_index][3]."</td>\n";
	}
	else
	{
		echo "		<td align=\"right\"  bgcolor=\"#FFFFFF\">".$services[$row_index][3]."</td>\n";
	}
	// Storage 실제 사용량
	// GB 단위로 변환하여 표시, 소수점이하 1자리까지.
	echo "		<td align=\"right\"  bgcolor=\"#FFFFFF\">".number_format($services[$row_index][4]/1024.0/1024/1024, 1)."</td>\n";

	// Storage 사용량 통계정보의 최종 시각 
	// CCDB 에 저장된 해당 서비스의 최종 Storage 통계 등록 시각.		
	if( $services[$row_index][2] >= 0 )
	{
		echo "		<td align=\"center\" bgcolor=\"#FFFFFF\">".$services[$row_index][5]."</td>\n";
	}
	else
	{
		echo "		<td align=\"center\" bgcolor=\"#FFAA00\">".$services[$row_index][5]."</td>\n";
	}

	// Storage 사용률
	// Storage 사용률이 관제 설정값보다 같거나 큰 경우...
	if( $services[$row_index][2] >= 0 && $services[$row_index][6] >= $services[$row_index][3] )
	{
		echo "		<td align=\"right\"  bgcolor=\"#FF0000\">".$services[$row_index][6]."</td>\n";
	}
	else
	{
		echo "		<td align=\"right\"  bgcolor=\"#FFFFFF\">".$services[$row_index][6]."</td>\n";
	}
	echo "	</tr>\n";
}

echo "</table>\n";


// alarm 발송 서비스가 존재하는 경우.. conf 파일에 설정된 Alarm 대상 정보를 가져와 저장한다.
if( $service_alarm_count > 0 )
{
	$fp = fopen( CONF_FILE, "r");

	$alarm_list_sms = array();
	$alarm_list_mail= array();

	while( !feof($fp))
	{
		$buf = fgets($fp);

		if(strncmp($buf, '#', 1) == 0) // Comment '#'
			continue;
		else if(strncmp( $buf, ' ', 1) == 0) // Blank line
			continue;
		else if(strncmp($buf, '[', 1) == 0)  // COMMON + SERVICE 블록
		{
			sscanf(trim($buf), '[%[^]]]', $svc_name );
		}
		else if(strncmp($buf, 'SMS=', 4) == 0 )
		{
			sscanf( trim($buf), 'SMS=%[^|]|%[^|]', $alarm_phone['name'], $alarm_phone['sms'] );
			$alarm_phone['service'] = $svc_name;
			array_push( $alarm_list_sms, $alarm_phone );
		}
		else if(strncmp($buf, 'MAIL=', 5) == 0 )
		{
			sscanf( trim($buf), 'MAIL=%[^|]|%[^|]', $alarm_mail['name'], $alarm_mail['mail'] );
			$alarm_mail['service'] = $svc_name;
			array_push( $alarm_list_mail, $alarm_mail );
		}
	}
	fclose( $fp );

	$alarm_list_sms_count  = count($alarm_list_sms);
	$alarm_list_mail_count = count($alarm_list_mail);

	echo "<h3><font color=\"red\">Alarm 전송 내역</font></h3>";

	echo "<table border=\"0\" cellpadding=\"3\" cellspacing=\"1\" bgcolor=\"b2b2b2\" >
	<tr>
		<td bgcolor=\"#EFEFEF\" align=\"center\">서비스</td>
	    <td bgcolor=\"#EFEFEF\" align=\"center\">Alarm Type</td>
	    <td bgcolor=\"#EFEFEF\" align=\"center\">수신자</td>
	    <td bgcolor=\"#EFEFEF\" align=\"center\">연락처</td>
		<td bgcolor=\"#EFEFEF\" align=\"center\">전송 결과</td>
	</tr>\n";

	reset( $services );
	for( $row_index = 0; $row_index < $service_total_count; $row_index++ )
	{
		// 임계치 초과 서비스.... 확인..
		if( ($services[$row_index][2] >= 0) && ($services[$row_index][6] >= $services[$row_index][3]))
		{

			// 해당 서비스에 대해 Mail 를 전송 처리한다.
			reset($alarm_list_mail);
			for( $row = 0; $row < $alarm_list_mail_count ; $row++ )
			{
				// SMS 전송 관련하여... alarm_list_mail 배열에 포함된 정보 중....
				// 서비스명이 DEFAULT 이거나.. 서비스명이 동일한 경우.. SMS 를 전송한다.
				if( ( strcmp( trim($alarm_list_mail[$row]['service']), "DEFAULT" ) == 0 ) 
					|| ( strcmp( trim($alarm_list_mail[$row]['service']), $services[$row_index][0] ) == 0 ) )
				{

					// 제목
					// - 한글 입력시.. 메일 수신 App 종류에 따라 깨지는 경우가 발생하여... 영문으로 전송 처리.
					$mail_title = "[Cloud Storage] ".$services[$row_index][0]." Service Storage Used Alarm";

					// Mail Body
					$mail_body  = "<p><b>Cloud Storage 사용량 Alarm</b></p>\n";
					$mail_body .= "[".$services[$row_index][5]."] ";
					$mail_body .= "[".$services[$row_index][1]."] ".$services[$row_index][0]." 서비스 Storage 사용량이 ";
					$mail_body .= $services[$row_index][6]."% 로서 관제 임계치 ".$services[$row_index][3]."% 를 초과했습니다.\n";
					$mail_body .= "<br /><br />\n* 본 메일은 발신 전용 메일입니다. *\n";

					// inc 폴더 하위 sendmail.inc 에 정의된 Smtp Class 이용할 경우... 메시지 전송 실패가 종종 발생.
					// 따라서 inc 폴더 하위 sendmail 클래스를 사용한다.					
					$mail_result = 0;
					$mail = new sendmail("127.0.0.1", 25, 30 );
					if( $mail->open() == true )
					{
						$mail->send( $alarm_list_mail[$row]['mail'], $ALARM_MAIL_SENDER, $mail_title, $mail_body );
						$mail->close();
						$mail_result = 1;
					}

					// 전송 결과 출력 HTML 조립
					echo "	<tr>\n";
					echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">".$services[$row_index][0]."</td>\n";
					echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">"."MAIL"."</td>\n";
					echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">".$alarm_list_mail[$row]['name']."</td>\n";
					echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">".$alarm_list_mail[$row]['mail']."</td>\n";
					if( $mail_result == 1 )
						echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">"."전송 완료"."</td>\n";
					else
						echo "		<td align=\"left\"   bgcolor=\"#FF0000\">"."전송 실패"."</td>\n";

					echo "	</tr>\n";

				}
			}


			// 해당 서비스에 대해 SMS 를 전송 처리한다.
			reset($alarm_list_sms);
			for( $row = 0; $row < $alarm_list_sms_count ; $row++ )
			{
				// SMS 전송 관련하여... alarm_list_sms 배열에 포함된 정보 중....
				// 서비스명이 DEFAULT 이거나.. 서비스명이 동일한 경우.. SMS 를 전송한다.

				if( ( strcmp( trim($alarm_list_sms[$row]['service']), "DEFAULT" ) == 0 ) 
					|| ( strcmp( trim($alarm_list_sms[$row]['service']), $services[$row_index][0] ) == 0 ) )
				{

					// 2016-08-04 huibong
					// sms 전송시 한글 입력 문제가 있어.. 영문으로 변경 처리함.
					
					//$sms_body  = "[CS Alarm] ".$services[$row_index][1]." ".$services[$row_index][0]." 서비스 Storage 사용량: ";
					$sms_body  = "[CS Alarm] ".$services[$row_index][1]." ".$services[$row_index][0]." service storage used alarm: ";
					$sms_body .= $services[$row_index][6]."%";

					// SMS 전송함수 호출
					// SMS 전송 처리 결과... 1: 전송 성공, 0: 전송 실패, -1: SMS 전송 설정 안됨..
					$sms_result = send_sms( $alarm_list_sms[$row]['sms'], $sms_body );

					// SMS 전송 결과 출력 HTML 조립
					echo "	<tr>\n";
					echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">".$services[$row_index][0]."</td>\n";
					echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">"."SMS"."</td>\n";
					echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">".$alarm_list_sms[$row]['name']."</td>\n";
					echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">".$alarm_list_sms[$row]['sms']."</td>\n";

					if( $sms_result == 1 )
					{
						echo "		<td align=\"left\"   bgcolor=\"#FFFFFF\">"."전송 완료"."</td>\n";						
					}
					else if( $sms_result == 0 )
					{
						echo "		<td align=\"left\"   bgcolor=\"#FF0000\">"."전송 실패"."</td>\n";
					}
					else
					{
						echo "		<td align=\"left\"   bgcolor=\"#FF0000\">"."SMS 전송 기능 설정 안됨"."</td>\n";
					}

					echo "	</tr>\n";
				}
			}
		}
	}

	echo "</table>\n";
	echo "<br />\n";
	
}


// PHP 종료.
?>

</body>
</html>

