U+ Agent SMS, MMS DB Interface 기반전송 모듈 / 변조 / 재배포하지마시기바라며, 이를위반할경우모든법적책임은귀사에있음을알려드립니다 1
목 차 0. Quick 설치매뉴얼... 5 0.1. agent.conf 환경파일설정... 5 0.2. 환경설정점검... 5 0.3. 모듈구동및확인... 5 0.4. 발송테스트... 5 0.5. 발송결과확인... 5 0.6. 모듈중지... 5 1. U+ Agent 소개... 6 1.1. RDBMS란?... 6 1.2. U+ Agent 란?... 6 1.3. 설치가능 OS는?... 6 1.4. 설치가능 RDBMS는?... 6 1.5. 설치전확인사항... 6 1.6. 필요 S/W : JDK 또는 JRE,U+ Agent 용 Package, DATABASE... 7 1.7. U+ G/W 접속가능여부를확인... 7 1.8. 데이터베이스접속가능여부를확인... 7 1.9. JDBC 드라이버설치및 DB 설정... 7 2. U+ Agent 설치방법 - Linux, Unix... 8 2.1. 다운로드받은 U+ Agent 파일확인후, 적당한위치에압축을해제... 8 2.2. conf/agent.conf 수정... 8 2.3../bin/uagent.sh... 8 2.4. U+ Agent 구동... 8 2.5. U+ Agent Log 파일확인... 9 2.6. DB Table 생성확인... 9 3. U+ Agent 설치방법 - Windows... 1 3.1. 다운로드받은 U+ Agent 파일확인후, 적당한위치에압축을해제... 1 3.2. 환경파일및로그... 1 3.3. 환경변수설정... 1 3.4. U+ Agent 구동... 1 3.5. U+ Agent 서비스를시작하였다면작업관리자에서프로세스를확인... 2 4. U+ Agent 고급설정... 3 4.1. 멀티전송... 3 4.2. 전송결과맵핑... 3 2
4.3. 스키마변경... 4 4.4. 비밀번호암호화... 4 4.4.1. 비밀번호암호화도구사용 (Windows)... 4 4.4.2. 비밀번호암호화도구사용 (Linux, Unix)... 5 5. 환경설정파일작성... 6 5.1. 환경설정 ( 필수변경항목은붉은색표시 )... 6 6. DB구성및설정... 9 6.1. 테이블목록... 9 6.2. 테이블스키마 (MySQL 기준 ) [ 볼드체표시필드는필수입력필드!]... 10 6.2.1. SC_TRAN 테이블 (SMS 전송테이블 )... 10 6.2.2. MMS_MSG 테이블 (MMS 전송테이블 )... 11 6.2.3. MO_TRAN 테이블 (SMS MO 테이블 )... 12 6.2.4. MO_MAP 테이블 (SMS MO 정책테이블 )... 13 6.2.5. MMS MO 테이블 (MMS MO 테이블 )... 14 7. 발송테스트... 15 7.1. SMS MT 일반발송테스트... 15 7.1.1. Mysql의경우... 15 7.1.2. Oracle의경우... 15 7.1.3. MSSQL의경우... 16 7.2. SMS URL 발송테스트... 16 7.2.1. Mysql의경우... 17 7.2.2. Oracle의경우... 17 7.2.3. MSSQL의경우... 18 7.3. MMS 발송테스트... 18 7.3.1. Mysql의경우... 18 7.3.2. Oracle의경우... 19 7.3.3. MSSQL의경우... 20 8. MMS 이통사별컨텐츠규격... 21 8.1. SKT... 21 8.2. KT... 21 8.3. LGU+... 21 8.4. MMS 이통사별컨텐츠권장사이즈... 21 9. 결과수신연동및결과코드값... 22 9.1. SMS, URL 결과코드값... 22 9.2. MMS 결과코드값... 23 10. 운영가이드... 25 3
10.1. 전송및로그테이블관리... 25 4
0. Quick 설치매뉴얼 0.1. agent.conf 환경파일설정가 ) 서비스 on/off 설정 - agent.use.sms = on 나 ) 서비스접속서버정보입력 - 메일로전달받은 SMS/MMS 서버 IP와 ID/PWD를입력다 ) DBMS 정보입력 - 사용하고자하는 DBMS의종류에맞추어정보입력 0.2. 환경설정점검가 ) Windows 계열 - \bin\servicemanager.bat 편집 -> JDK 경로수정 - \bin\servicemanager.bat 실행후설정확인프로그램실행나 ) Linux/Unix 계열 - /bin/uagent.sh 편집 -> JDK 경로, 프로그램경로, 문자셋수정 - /bin/uagent.sh setup 실행 0.3. 모듈구동및확인가 ) Windows 계열 - \bin\servicemanager.bat 실행후 OS 타입에맞추어번호입력 - 제어판-관리도구-서비스실행후 LGUPlus-SMS-MMS 서비스시작 - \log\sys.log 확인나 ) Linux/Unix 계열 - /bin/uagent.sh start 로구동 - ps ef grep lguplus-uagent로프로세스확인 - /log/sys.log 확인 0.4. 발송테스트 P.24 발송테스트참고 0.5. 발송결과확인발송테이블 (SC_TRAN 또는 MMS_MSG) 과로그테이블 (SC_LOG 또는 MMS_LOG) 확인. ( 결과코드 p.32 참조 ) 0.6. 모듈중지가 ) Windows 계열 - 제어판 관리도구 서비스실행후 LGUPlus-SMS-MMS 서비스중지나 ) Linux/Unix 계열 - /bin/uagent.sh stop 실행 - ps ef grep lguplus-uagent로프로세스확인 5
1. U+ Agent 소개 U+ Agent 설치가이드는 RDBMS 에관한기본적지식을가진사람은누구나설치가능하도록작성되었 습니다. 문서내용을순서대로확인하면서 U+ Agent 를설치하시기를당부드립니다. 1.1. RDBMS란? 행과열로된 2차원의표로데이터를표현하는데이터베이스관리시스템. 대규모컴퓨터시스템을대상으로많은이용자가대량의데이터를다룰때데이터베이스를관리하는시스템으로서, PC용데이터베이스에비해대량의데이터를취급할수있고신뢰성측면에서도뛰어난업무시스템을구축할수있다. 구조화조회언어 (SQL) 로작성된데이터조작용명령에따라서버상의데이터를조작하며, 수정등의명령을서버로보낼수있는것이면어떤클라이언트에서도서버의데이터를조작할수있다. 1.2. U+ Agent 란? U+ Agent 는 LG U+ 의 SMS, MMS G/W 서비스를사용하기위한고객이고객의시스템과쉽게연동할수있도록도와주는 SMS, MMS G/W 도우미로서, 고객사의 DB 서버및 JDBC연결이가능한시스템에설치된다. 1.3. 설치가능 OS 는? U+ Agent 는 JDK 1.5 이상이운영가능한시스템에서설치하실수있습니다. 1.4. 설치가능 RDBMS는? 지원RDBMS 지원버전 비고 MYSQL 4.1.1 이상 최신버전권장 MSSQL 6.5, 7.0, 2000, 2005, 2008 SP3 설치권장 ORACLE 8i 이상 최신버전권장 [ 참고 ] 1. RDBMS 서버의위치는리모트인경우는 RDBMS 가설치된운영체제 (OS) 와는상관이없습니다. 2. U+ Agent 설치서버에각 RDBMS 클라이언트설치및설정이필요합니다. (JDBC 포함 ) 1.5. 설치전확인사항 DB 설정및 RDBMS Client 설치확인 U+ Agent 는고객사의 DB 에접속하여 SMS, MMS 테이블을생성합 니다.( 각 DBMS 매뉴얼및책자참조 ) 6
U+ Agent 를설치하기전 Database, DB User 를우선생성하셔야합니다. 1.6. 필요 S/W : JDK 또는 JRE,U+ Agent 용 Package, DATABASE windows, linux, solalis 는 http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloadsjavase5-419410.html#jdk-1.5.0_22-oth-jpr 에서 1.5 JDK 또는 JRE 다운로드후설치 ( 안정성이검증된 jdk1.5버전의설치를권장합니다.) 그외 AIX, HP-UX 등 OS 경우해당벤더사에서제공받은 JRE를설치 1.7. U+ G/W 접속가능여부를확인 LG U+ 에서 SMS G/W, MMS G/W IP 정보및 SMS, MMS 접속고유 ID 및비밀번호를발급받고 LG U+ G/W 접속테스트를합니다. 접속테스트실패시고객사의방화벽을확인하여주십시요. 예 : telnet [LG U+ SMS G/W 서버 IP] 3000 telnet [LG U+ MMS G/W 서버 IP] 8100 1.8. 데이터베이스접속가능여부를확인 RDBMS MYSQL ORACLE 질의 mysql u db 계정 p 패스워드 h 호스트네임 database sqlplus db 계정 / 패스워드 @SID 1.9. JDBC 드라이버설치및 DB 설정 U+ Agent 는 Java 의 JDBC 를사용합니다. U+ Agent 에각 DBMS 에필요한 JDBC 을내포하고있어따로설치하실필요는없습니다. 자바프로그램내에서데이터베이스질의문즉, SQL 을실행하기위한자바 API(application programming interface) 입니다. Java database connectivity의약자로생각하기도하지만실제로는상표이름입니다. JDBC는데이터베이스및애플리케이션개발자들을위한표준 API를제공하고순수자바 API만으로도데이터베이스응용업무를만들게해줍니다. JDBC를사용하면, 어떠한관계데이터베이스 (relational database) 에서도 SQL문을사용하기쉽습니다. 즉, JDBC API를사용하면데이터베이스에접근하는프로그램을따로만들필요가없습니다. 단지하나의프로그램을작성하고그프로그램에서 SQL문을적당한데이터베이스에전송할수있습니다또한응용업무를자바로작성한다면보유한기종이나소프트웨어에따라다르게작성하지않아도되기때문에자바와 JDBC의결합은하나의프로그램이어디에서나동작할수있게해줍니다. 자바는사용하기에견고하고안전하고쉽고이해하기쉬우며데이터베이스응용업무를만드는데있어서최적의언어라할수있습니다. 단지필요한것은다양한데이터베이스에연결하는방법일것이라고할수있으며, JDBC는이러한것을위한도구입니다. 7
2. U+ Agent 설치방법 - Linux, Unix 2.1. 다운로드받은 U+ Agent 파일확인후, 적당한위치에압축을해제 1 lguplus-agent2-x.x.x.zip 를설치할서버에업로드합니다. 2 mkdir lguplus : lguplus 라는폴더를생성합니다. 3 생성한폴더에압축을해제합니다. 2.2. /conf/agent.conf 수정 1 사용하시는서비스항목을 on 으로변경하고, 사용하지않는서비스는 off로변경합니다. agent.use.sms (SMS 서비스 ), agent.use.mms(mms 서비스 ), agent.use.smsmo(sms MO 서비스 ), agent.use.mmsmo (MMS MO 서비스 ) 2 LG유플러스에서발급받은 ID, 암호를세팅합니다. sms(mms).gw.id, sms(mms).pwd 항목 3 DB정보를 DB 타입에맞춰서입력합니다. db.drvier, db.url, db.user, db.pass 4 MMS 전송시첨부파일경로를세팅합니다. (MMS 서비스사용시 ) mms.file.path 5 MMS MO 첨부파일저장경로를세팅합니다. (MMS MO 서비스사용시 ) mmsmo.file.path # 이후의내용은주석으로인정되오니, password 입력시 # 이포함되어있다면, # 앞에 \ 를붙여서설정해주시기바랍니다. 2.3../bin/uagent.sh 1 첫라인의쉘위치정보를 ksh로변경합니다. ( 기본쉘이 ksh인경우그대로사용합니다.) ksh의위치는 whereis ksh 이라고입력하면알수있습니다. 2 설치디렉토리홈정보를입력합니다. (APP_HOME) 3 자바실행파일정보를입력합니다. (JAVA) 2.4. U+ Agent 구동 agtstart.sh 는 3개의파라메터를이용하여실행할수있습니다../bin 이동 1./uagent.sh start : U+ Agent 를백그라운드로기동합니다. 2./uagent.sh stop : U+ Agent 기동을멈춥니다. 종료는약 10초정도소요됩니다. 3./uagent.sh kill : stop 명령으로프로세스가종료되지않을경우사용하여기동을멈춥니다. 8
2.5. U+ Agent Log 파일확인./LOG폴더아래에 3가지타입의로그가생성되며, 일자별로폴더가생성됩니다. - sys.log : 모듈기동및모든에러관련내용 - sms.log : SMS 송, 수신로그 - mms.log : MMS 송, 수신로그 2.6. DB Table 생성확인 U+ Agent 가사용할테이블을자동생성합니다. 실제메시지전송을하면이동통신사로부터전송결과를받아발송테이블과같은형식으로 Log Table 을월별생성합니다. DB Table 이정상적으로생성되었다면 6. 발송테스트 를참고하여전송테스트를하시면됩니다. 9
3. U+ Agent 설치방법 - Windows 3.1. 다운로드받은 U+ Agent 파일확인후, 적당한위치에압축을해제 ( 설치가이드에서는 D:\LGUPlus\ 를예로설명하겠습니다.) 3.2. 환경파일및로그 2. U+ Agent 설치방법 Unix 의내용과동일합니다. 3.3. 환경변수설정 내컴퓨터오른쪽마우스클릭 -> 속성 -> 고급 -> 환경변수 -> 시스템변수 -> 새로만들기 선택후 JAVA_HOME 을추가합니다. 3.4. U+ Agent 구동서비스등록방법 ( 서비스이름을 LGUPlus-SMS-MMS라고한경우 ) servicemanager.bat를사용하며아래설명은 32bit의시스템으로설명합니다. servicemanager.bat 을 notepad 로열고아래처럼수정합니다. servicemanager.bat파일을열어아래내용을고객환경에맞게수정하십시요. 1 JAVA_HOME= 자바 JDK를설치한폴더의절대패스를기입합니다. (ex. set JAVA_HOME=C:\JAVA\jdk1.5.0_22 ) 2 위 1에서설정한 JAVA_HOME경로밑에 /jre/bin/server/jvm.dll 파일이존재하는지확인하고, 없으면 JAVA_HOME/bin/client/jvm.dll 파일존재여부를확인하여해당경로로수정한다.(JDK로설치할경우 /jre/bin/server/jvm.dll에설치되고, JRE로설치할경우 /bin/client/jvm.dll 로설치 ) D:\UPLUSAGT>serviceManager.bat 를실행후 3 을입력하여 윈도우서비스에등록 (32-bit) 을선 택하면 U+ Agent 를윈도우서비스에등록합니다. 성공적으로 install 되었다는메시지확인후아래를참고하여서비스등록을확인한다. / 변조 / 재배포하지마시기바라며, 이를위반할경우모든법적책임은귀사에있음을알려드립니다 1
서비스등록후 [ 제어판 ] -> [ 관리도구 ] -> [ 서비스 ] 화면에서직접시작, 중지를하시면되고, 아래와같이 명령어로확인도가능합니다. 서비스시작후로그파일을열어정상구동여부를확인합니다. 3.5. U+ Agent 서비스를시작하였다면작업관리자에서프로세스를확인 아래와같이 JavaService32.exe 가실행되어야합니다. ( 윈도우 64Bit 의경우는 JavaService64.exe 가실행 ) 2
4. U+ Agent 고급설정 4.1. 멀티전송멀티전송이란발송속도를높이기위해복수의전송 ID를사용하는것을말합니다. 복수의전송 ID를사용하면같은시간에더많은메시지를전송할수있습니다. ( 단, DB의성능이충분히뒷받침이되어야합니다.) 환경설정방법은아래와같이접속정보 (IP,PORT, 사용자ID, 사용자암호 ) 복사하여추가합니다. sms.gw.ip=xxx.xxx.xxx.xxx sms.gw.port=xxxx sms.gw.user=smxxxxxx_001 sms.gw.pwd=xxxx sms.gw.ip=xxx.xxx.xxx.xxx sms.gw.port=xxxx sms.gw.user= SMXXXXXX_001 sms.gw.pwd= xxxx 4.2. 전송결과맵핑전송결과맵핑은고객사에서 LG유플러스의전송결과를고객사의전송결과코드로대체할때사용합니다. SMS 전송결과맵핑설정파일은설치디렉토리 /conf/sms/codemap.map이며, MMS 전송결과맵핑설정파일은설치디렉토리 /conf/mms/codemap.map입니다. 변경할맵핑파일을생성후변경할전송결과정보를입력합니다. codemap.map 파일의포맷은아래와같습니다. LG 유플러스전송결과코드 변경할고객사전송결과코드 설명 3
4.3. 스키마변경 스키마변경은 LG U+ 에서제공하는기본스키마대신고객사에서기존사용중인스키마를동일 하게사용하면서 SMS/MMS 전송을하고자하실때사용합니다. 스키마설정방법은아래와같이 schema.type 에사용하고자하는폴더를지정하시고, DB타입에맞추어해당 xml 파일을작성해주시면됩니다. #################################################################### # 데이터베이스커스토마이징설정 ( 기본값 : 없음 ) # 사용하고자하는모듈에폴더를생성하고명명규칙에맞추어파일을생성하면적용됨 # 예 ) schema.type = user # /conf/mms/user/sql-mms-oracle-user.xml ( 모듈과스키마명을파일명으로저장 ) # /conf/sms/user/sql-sms-oracle-user.xml schema.type = user 결과코드에대한수정이필요하신경우에는 codemap.map 파일을 4.2 안내와같이수정하여주시고, 메시지타입과이통사정보에대한수정이필요하신경우에는 convert.xml 파일을수정해주시면됩니다. 4.4. 비밀번호암호화비밀번호암호화는 agent.conf 파일에기록되어있는비밀번호를암호화하기위한기능입니다. 비밀번호암호화하시려면내장된비밀번호암호화도구를이용하여비밀번호를암호화한후, 암호화된비밀 번호를 agent.conf 파일에기록합니다. # 비밀번호암호화사용유무 (on off) agent.use.encryption = on 4.4.1. 비밀번호암호화도구사용 (Windows) /bin 폴더아래에있는 servicemanager.bat 파일내 JAVA 경로를설정해줍니다. servicemanager.bat파일을열어아래내용을고객환경에맞게수정하십시요. 1 JAVA_HOME= 자바 JDK를설치한폴더의절대패스를기입합니다. (ex. set JAVA_HOME=C:\JAVA\jdk1.5.0_22 ) 2 위 1에서설정한 JAVA_HOME경로밑에 /jre/bin/server/jvm.dll 파일이존재하는지확인하고, 없으면 JAVA_HOME/bin/client/jvm.dll 파일존재여부를확인하여해당경로로수정한다.(JDK로설치할경우 /jre/bin/server/jvm.dll에설치되고, JRE로설치할경우 /bin/client/jvm.dll 로설치 ) 4
servicemanager.bat 을실행한후, 2. 비밀번호암호화프로그램을실행을선택하고비밀번호를입력하면, 암호화된비밀번호가생성됩니다. 각각의암호화된비밀번호를 agent.conf 내에입력합니다. sms.gw.pwd = xxxx mms.gw.pwd = xxxx db.pass = xxxx 4.4.2. 비밀번호암호화도구사용 (Linux, Unix) /bin 폴더아래에있는 uagent.sh 파일내 JAVA 경로를설정해줍니다. 1 첫라인의쉘위치정보를 ksh로변경합니다. ( 기본쉘이 ksh인경우그대로사용합니다.) ksh의위치는 whereis ksh 이라고입력하면알수있습니다. 2 설치디렉토리홈정보를입력합니다. (APP_HOME) 3 자바실행파일정보를입력합니다. (JAVA) uagent.sh enc 와같이실행한후, 비밀번호를입력하면암호화된비밀번호가생성됩니다. 각각의암호화된비밀번호를 agent.conf 내에입력합니다. sms.gw.pwd = xxxx mms.gw.pwd = xxxx db.pass = xxxx 5
5. 환경설정파일작성 U+ Agent는 agent.conf 라는환경설정파일이있어야하며, 실행시다음과같이지정해주어야한 다. 각설정은배포된 U+ Agent 버전에따라 agent.conf 설정파일에서생략 ( 기본설정 ) 또는누락 돼있을수있다. 5.1. 환경설정 ( 필수변경항목은붉은색표시 ) 변수명 기본값 설명 agent.use.sms on SMS 서비스사용유무 (on/off) agent.use.mms off MMS 서비스사용유무 (on/off) agent.use.smsmo off SMS MO 서비스사용유무 (on/off) agent.use.mmsmo off MMS MO 서비스사용유무 (on/off) agent.use.encryption off 비밀번호암호화사용유무 (on/off) log.set.path 로그생성디렉토리설정 (default : windows -./log, linux -../log) log.set.level INFO 로그레벨설정기능단계 : ERROR < WARNING < INFO < DEBUG < CONSOLE log.set.phonenumber on 로그전화번호숨김 (on/off) sms.gw.ip LG유플러스 SMS 서버 IP (LG유플러스에서발급 ) sms.gw.port LG유플러스 SMS 서버 Port (LG유플러스에서발급 ) sms.gw.id LG유플러스 SMS 접속 ID (LG유플러스에서발급 ) sms.gw.pwd LG유플러스 SMS 접속암호 (LG유플러스에서발급 ) sms.speed 30 SMS 초당발송전송건수 ( 향후지원예정 ) mms.gw.ip LG유플러스 MMS 서버 IP (LG유플러스에서발급 ) mms.gw.port LG유플러스 MMS 서버 Port (LG유플러스에서발급 ) mms.gw.id LG유플러스 MMS 접속 ID (LG유플러스에서발급 ) mms.gw.ip LG유플러스 MMS 서버 IP (LG유플러스에서발급 ) mms.mo.port 8894 MMS MO 수신포트 mms.mo.user MMS MO 수신 ID (LG유플러스에서발급 ) db.driver 고객사 DB JDBC 드라이버명 ( 환경변수에예제있음 ) db.url db.user db.pass 고객사 DB JDBC 접속 URL 고객사 DB 접속 ID 고객사 DB 접속 co.start_time 00:00 전송가능시작시간 HH:mm 6
co.end_time 00:00 전송가능종료시간 HH:mm use.collect.overtime off 미발송시간대에다른쿼리설정 (on/off) data.collect.interval Select_data_to_send ( 데이터수집쿼리주기설정, 단위 : 초 ) schema.type sms.table.send sms.table.log 사용하고자하는스키마타입 SMS 발송테이블명 SMS 로그테이블명, 월별로그생성옵션사용시테이블명 _yyyymm 테이블이월마다생성 sms.table.recv sms.table.recvmap mms.table.send mms.table.log SMS MO 수신테이블명 SMS MO 수신정책테이블명 MMS 발송테이블명 MMS 로그테이블명, 월별로그생성옵션사용시테이블명 _yyyymm 테이블이월마다생성 mms.table.recv mms.file.path MMS MO 수신테이블명 MMS 전송시첨부파일저장루트경로정보 절대경로사용시아무것도세팅하지않으면됨 mmsmo.file.path MMS MO 수신시첨부파일저장루트경로 mms.imgdownload.timeout 5000 MMS URL 이미지다운로드시실패처리시간 ( 밀리초 ) mms.imgdownload.cachecount 100 MMS URL 이미지다운로드캐쉬저장용량 mms.imgdownload.expire 7 MMS URL 이미지파일삭제주기 ( 일 ) log.interval month unuse : 로그테이블사용하지않음. one : 로그테이블 1개사용 month : 월별로로그테이블분할 sms.dup.check.seconds 30 # 중복발송체크시간은 5분이내사용권장 # SMS 중복발송체크시간 ( 최근 30초이내발송된건중, 수신자번호 + 메시지내용이동일한건은중복실패처리 ) mms.dup.check.seconds 30 # 중복발송체크시간은 5분이내사용권장 # MMS 중복발송체크시간 ( 최근 30초이내발송된건중, 수신자번호 + 메시지내용이동일한건은중복실패처리 ) mms.url.tag MMS URL 태그 sms.submit_timeout.minute 1440 SMS 전송지연시실패시간 ( 분 ) ( 발송요청시간 (TR_SENDDATE) 을여기에설정된시간만큼초과하는경우실패처리함 ) sms.timeout.hour 26 SMS 전송결과대기최대시간 ( 시 ) (LG유플러스로전송후여기에설정된시간을초과하여 7
결과가오지않는경우실패처리함 ) sms.socket.timeout 60000 SMS socket timeout ( 밀리초, 기본 60초 ) mms.submit_timeout.minute 1440 MMS 전송지연시실패시간 ( 분 ) ( 발송요청시간 (REQ_DATE) 을여기에설정된시간만큼초과하는경우실패처리함 ) mms.timeout.hour 26 MMS 전송결과대기최대시간 ( 시 ) (LG유플러스로전송후여기에설정된시간을초과하여결과가오지않는경우실패처리함 ) mms.socket.timeout 20000 MMS socket timeout ( 밀리초, 기본 20초 ) table.auto.creation y 테이블자동생성유무 (y n) mms.mo.que_reducer_num 1 MMS MO 수신처리쓰레드개수 mysql.autoincrement.reset n mysql innodb의경우 auto increment 필드가 mysql restart시 reset 된다. 이러한경우중복키가발생하여발송이되지않을수있음. mysql innodb 타입의경우, y 로하면메시지키가 MAX인경우발송테이블에서삭제하지않도록함. mms.retry.count 3 MMS 전송실패시재전송횟수 ( 최초발송포함 ) 주로네트웍상태가불안한환경에서이용됨. 네트웍불안으로인한재전송은중복전송이될수있습니다. 1 : 재전송하지않음. n : 정상응답이없을경우최대 n번전송. 정상응답일경우 1번만전송합니다. mms.immigration unuse use : 구MMS 서버에서신MMS 시스템으로이관시구MMS 에서리포트를받는경우 unuse : 이기능을사용하지않음 ( 아래이관관련설정이비활성화됩니다.) mms.immigration.enddate yyyymmdd 구 MMS 서버에서리포트수신일자. 이관후 7 일이후로세 팅 mms.immigration.gw.ip mms.immigration.gw.port mms.immigration.gw.user mms.immigration.gw.pwd 구MMS 서버 IP 구MMS 서버 Port 구MMS 서버로그인 ID 구MMS 서버로그인암호 8
6. DB 구성및설정 6.1. 테이블목록 테이블명 설명 SC_TRAN SMS 메시지전송테이블 모든전송요구가수집되는테이블로서, 전송요구와결과대기등이 일어나는테이블이다. SC_LOG_YYYYMM SMS 로그테이블 메시지전송처리가완료된데이터가월별로저장된다. YYYYMM 은연도, 월을나타내며, 매달하나의테이블이작성된다. MMS_MSG MMS 메시지전송테이블 모든전송요구가수집되는테이블로서, 전송요구와결과대기등이 일어나는테이블이다. MMS_LOG_YYYYMM MMS 로그테이블 메시지전송처리가완료된데이터가월별로저장된다. YYYYMM 은연도, 월을나타내며, 매달하나의테이블이작성된다. MO_TRAN SMS MO 접수테이블 발신자가 1544, 0505 로보낸문자를수신하여저장하는테이블이 다. MO_MAP MO_TRAN 에메시지가접수되었을때 U+ Agent JAVA 가자동으 로수행할기능을설정하는테이블이다. MMS_MO MMS MO 접수테이블 9
6.2. 테이블스키마 (MySQL 기준 ) [ 볼드체표시필드는필수입력필드!] 6.2.1. SC_TRAN 테이블 (SMS 전송테이블 ) 테이블명 SC_TRAN Field Name TYPE NULL DEFAULT 설명 TR_NUM BIGINT N 메시지고유번호로자동증가됨 TR_SENDDATE DATETIME 메시지를전송할시간, 미래시간을넣으면예약발송됨 TR_SERIALNUM INT 고객이발급한번호로 NULL 값이어도됨 TR_ID VARCHAR(16) 고객이발급한 SubID 로 NULL값이어도됨 TR_SENDSTAT VARCHAR(1) N '0' 발송상태 0 : 발송대기 1 : 전송완료 2 : 결과수신완료 TR_RSLTSTAT VARCHAR(2) '00' 발송결과수신값으로세부사항은결과코드표참조 TR_MSGTYPE VARCHAR(1) N '0' 문자전송형태 0 : 일반메시지 1 : 콜백 URL 메시지 TR_PHONE VARCHAR(20) N '' 수신할핸드폰번호 TR_CALLBACK VARCHAR(20) N 송신자전화번호 TR_RSLTDATE DATETIME 이동통신사로부터결과를통보받은시간 TR_MODIFIED DATETIME 프로그램내부적으로사용 TR_MSG VARCHAR(160) 전송할메시지 TR_NET VARCHAR(4) 전송완료후최종이동통신사정보 (011,016,019,000) TR_ETC1 VARCHAR(160) 기타필드1 ( 사용자가자유롭게값을입력하여사용가능 ) TR_ETC2 VARCHAR(160) 기타필드2 ( 사용자가자유롭게값을입력하여사용가능 ) TR_ETC3 VARCHAR(160) 기타필드3 ( 사용자가자유롭게값을입력하여사용가능 ) TR_ETC4 VARCHAR(160) 기타필드4 ( 사용자가자유롭게값을입력하여사용가능 ) 10
Field Name TYPE NULL DEFAULT 설명 TR_ETC5 VARCHAR(160) 기타필드5 ( 사용자가자유롭게값을입력하여사용가능 ) TR_ETC6 VARCHAR(160) 기타필드6 ( 사용자가자유롭게값을입력하여사용가능 ) TR_REALSENDDATE DATETIME 실제모듈이발송 (DELIVER) 한시간 6.2.2. MMS_MSG 테이블 (MMS 전송테이블 ) 테이블명 MMS_MSG Field Name TYPE NULL DEFAULT 설명 MSGKEY INT N 메시지고유번호로자동증가됨 SUBJECT VARCHAR(120) N 제목 40byte까지만사용해야함. 한글, 영어, 숫자, 스페이스,(),[] 만사용하기를권고함. ( 기타특수기호사용시전송이실패될수있음 ) PHONE VARCHAR(15) N 수신할핸드폰번호 CALLBACK VARCHAR(15) N 송신자전화번호 STATUS VARCHAR(2) N '0' 0 : 전송대기 2 : 송신완료 3 : 결과수신 REQDATE DATETIME N 메시지를전송할시간, 미래시간을넣으면예약발송됨 MSG VARCHAR(4000) 전송할메시지 FILE_CNT INT 0 전송파일개수전송파일개수가 1이면 FILE_PATH1 이설정되어야함 ( 갯수에비례하는 FILE_PATH를설정 ) FILE_CNT_REAL INT 0 U+ Agent 가실제로체크한전송파일개수 FILE_PATH1 VARCHAR(128) 전송파일1 위치 FILE_PATH1_SIZ INT 전송파일1 사이즈예전모듈에서사용현재사용안함 FILE_PATH2 VARCHAR(128) 전송파일2 위치 FILE_PATH2_SIZ INT 전송파일2 사이즈예전모듈에서사용현재사용안함 11
FILE_PATH3 VARCHAR(128) 전송파일3 위치 FILE_PATH3_SIZ INT 전송파일3 사이즈예전모듈에서사용현재사용안함 FILE_PATH4 VARCHAR(128) 전송파일4 위치 FILE_PATH4_SIZ INT 전송파일4 사이즈예전모듈에서사용현재사용안함 FILE_PATH5 VARCHAR(128) 전송파일5 위치 FILE_PATH5_SIZ INT 전송파일5 사이즈예전모듈에서사용현재사용안함 EXPIRETIME VARCHAR(10) N '43200' 사용하지않음 SENTDATE DATETIME NULL 송신완료시간 RSLTDATE DATETIME NULL Agent가수신받은시간 REPORTDATE DATETIME NULL 결과수신받은시간 TERMINATEDDATE DATETIME NULL 메시지처리가완료된시간 RSLT VARCHAR(10) NULL 결과값 REPCNT INT 0 사용하지않음 TYPE VARCHAR(2) 0:MMS, NOT '0' 1:MMSURL( 사용하지않음 ), NULL 7:HTML( 사용하지않음 ) TELCOINFO VARCHAR2(10) NULL 이통사구분코드 ID VARCHAR2(20) NULL 송신자 ID POST VARCHAR2(20) NULL 송신자부서 ETC1 VARCHAR2(64) NULL dummy field ETC2 VARCHAR2(32) NULL dummy field ETC3 VARCHAR2(32) NULL dummy field ETC4 INT NULL dummy field 6.2.3. MO_TRAN 테이블 (SMS MO 테이블 ) 테이블명 MO_TRAN Field Name TYPE NULL DEFAULT 설명 MO_NUM BIGINT N 메시지고유번호로자동증가됨 MO_ACCEPTTIME VARCHAR(14) 데이콤수신시각 ( YYYYMMDDHH24MISS) MO_MODIFIED VARCHAR(14) 클라이언트수신시각 ( YYYYMMDDHH24MISS) MO_NUMBER VARCHAR(20) 수신번호 (1544(1644)/0505 등 ) MO_SENDER VARCHAR(20) 발신번호 ( 고객핸드폰번호 ) 12
MO_ORGADDR VARCHAR(20) 원발신번호 ( 고객의실제핸드폰번호 ) MO_MSG VARCHAR(160) MO 수신메시지 MO_SN BIGINT 데이콤일련번호 MO_STATUS VARCHAR(1) N '0' 0 : 수신완료그외값은고객사에서자유롭게사용 MO_REPLYDATE VARCHAR(14) 회신일자 ( YYYYMMDDHH24MISS) MO_REPLYMSG VARCHAR(160) MO 수신메시지에대한회신메시지 6.2.4. MO_MAP 테이블 (SMS MO 정책테이블 ) 테이블명 MO_MAP Field Name TYPE NULL DEFAULT 설명 MO_NUMBER VARCHAR(20) N MO PHONE 번호 (1544(1644)/0505 등 ) ALARM_YN VARCHAR(1) N 'N' 관리자알람기능 Y : 사용 N : 사용안함 (DEFAULT) ALARM_DAY_TIME VARCHAR(20) N '0,0' 주간알람시간설정예 ) 09:00~18:00 ALARM_DAY_RECEIVERS VARCHAR(200) N '0,0' 주간알람수신번호콤마 (,) 로구분예 ) 0111231234,0191231234 ALARM_DAY_SENDER VARCHAR(20) 주간알람회신번호 ALARM_NIGHT_TIME VARCHAR(20) 야간알람시간설정예 ) 09:00~18:00 ALARM_NIGHT_RECEIVERS VARCHAR(200) 야간알람수신번호콤마 (,) 로구분예 ) 0111231234,0191231234 ALARM_NIGHT_SENDER VARCHAR(20) 야간알람회신번호 ALARM_MSG VARCHAR(160) 관리자에게알람발송메시지 AUTO_REPLY_YN VARCHAR(1) N 'N' 자동회신기능 Y : 사용 N : 사용안함 (DEFAULT) AUTO_REPLY_MSG VARCHAR(160) 자동회신메시지 13
6.2.5. MMS MO 테이블 (MMS MO 테이블 ) 테이블명 MO_MAP Field Name TYPE NULL DEFAULT 설명 NUM BIGINT 시퀀스 ID VARCHAR(50), 식별자 MONUMBER VARCHAR(20) MO 번호 SENDER VARCHAR(20) 발신자번호 SUBJECT VARCHAR(60) 제목 NETCODE VARCHAR(3) 이통사정보 STATUS CHAR(1) 데이터처리상태 I : 입력완료 SND_DATE VARCHAR(14) MO 생성시간 RCV_DATE VARCHAR(14) 수신시간 INS_DATE VARCHAR(14) MESSAGE VARCHAR(4000), 0 메시지내용 CONTENT_COUNT INT 컨텐츠개수 CONTENT1_EXT VARCHAR(10) 켄텐츠확장자 CONTENT1_NAME VARCHAR(128) 컨텐츠명 CONTENT1_SIZE INT 컨텐츠사이즈 CONTENT1_PATH VARCHAR(256) 컨텐츠저장경로 CONTENT2_EXT VARCHAR(10) 켄텐츠확장자 CONTENT2_NAME VARCHAR(128) 컨텐츠명 CONTENT2_SIZE INT 컨텐츠사이즈 CONTENT2_PATH VARCHAR(256) 컨텐츠저장경로 CONTENT3_EXT VARCHAR(10) 켄텐츠확장자 CONTENT3_NAME VARCHAR(128) 컨텐츠명 CONTENT3_SIZE INT 컨텐츠사이즈 CONTENT3_PATH VARCHAR(256) 컨텐츠저장경로 CONTENT4_EXT VARCHAR(10) 켄텐츠확장자 CONTENT4_NAME VARCHAR(128) 컨텐츠명 CONTENT4_SIZE INT 컨텐츠사이즈 CONTENT4_PATH VARCHAR(256) 컨텐츠저장경로 CONTENT5_EXT VARCHAR(10) 켄텐츠확장자 CONTENT5_NAME VARCHAR(128) 컨텐츠명 CONTENT5_SIZE INT 컨텐츠사이즈 14
CONTENT5_PATH VARCHAR(256) 컨텐츠저장경로 CONTENT6_EXT VARCHAR(10) 켄텐츠확장자 CONTENT6_NAME VARCHAR(128) 컨텐츠명 CONTENT6_SIZE INT 컨텐츠사이즈 CONTENT6_PATH VARCHAR(256) 컨텐츠저장경로 7. 발송테스트 7.1. SMS MT 일반발송테스트보낼때반드시있어야하는필드는위테이블설명중굵은글씨로되어있는필드들이다. (TR_NUM,TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) 이중, TR_NUM 은자동증가하는값이고, TR_SENDSTAT 는 0, TR_MSGTYPE 0 로한다. 그리고, 예약전송시메시지를보내고자하는시간 TR_SENDDATE 에 sysdate( now(), getdate, current) 함수값을대입해야한다. DB 전송시상태변화 : TR_SENDSTAT : 0 ( 발송대기 ) TR_SENDSTAT : 1 ( 전송완료 ) TR_SENDSTAT : 2 ( 결과수신완료 ) TR_SENDDATE : 메시지를전송할시간, 미래시간을넣으면예약발송됨. 전송후 TR_SENDSTAT 는바로 1 가된다. 7.1.1. Mysql의경우즉시전송 INSERT INTO SC_TRAN (TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES (NOW(), '0', '0', '01012341234', '0233334444', 'Test Message입니다 '); 예약전송 INSERT INTO SC_TRAN (TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES ('2010-05-30 10:15:20', '0', '0', '01012341234', '0233334444', 'Test Message입니다 '); 7.1.2. Oracle 의경우 즉시전송 INSERT INTO SC_TRAN 15
(TR_NUM,TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES (SC_TRAN_SEQ.NEXTVAL, SYSDATE, '0', '0', '01012341234', '0233334444', 'Test Message 입 니다 '); 예약전송 INSERT INTO SC_TRAN (TR_NUM,TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES (SC_TRAN_SEQ.NEXTVAL, TO_DATE('2010-05-30 10:15:20','YYYY-MM-DD HH24:MI:SS'), '0', '0', '01012341234', '0233334444', 'Test Message입니다 '); 7.1.3. MSSQL의경우즉시전송 INSERT INTO SC_TRAN (TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES (GetDate(), '0', '0', '01012341234', '01012341234', 'Test Message입니다 '); 예약전송 INSERT INTO SC_TRAN (TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES ( 20110430130000, '0', '0', '01012341234', '0233334444', 'Test Message입니다 '); 7.2. SMS URL 발송테스트 URL발송을위한주의사항 : URL전송을위해서는특정한포맷을맞추어서 DB에입력하여야한다. 즉, URL전송의경우도 data자체는 TR_MSG 에입력된다. URL은보통 Title과 URL 두가지부분으로이루어져있기때문에, 이를지원하려면 URL TITLE 즉, URL이먼저나오고, 중간에스페이스하나로분리한후, 타이틀을써주면된다. URL 이후최초로나오는스페이스가구분자가된다. 즉, http://wap.test.co.kr 을테스트라는이름으로전송하고싶다면 'http://wap.test.co.kr 테스트 ' 라고입력하면된다. 보낼때반드시있어야하는필드는위테이블설명중굵은글씨로되어있는필드들이다. (TR_NUM,TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) 16
이중, TR_NUM 은자동증가하는값이고, TR_SENDSTAT 는 0, TR_MSGTYPE 1 로한다. 그리고, 예약전송시메시지를보내고자하는시간 TR_SENDDATE 에 sysdate( now(), getdate, current) 함수값을대입해야한다. DB 전송시상태변화 : TR_SENDSTAT : 0 ( 발송대기 ) TR_SENDSTAT : 1 ( 전송완료 ) TR_SENDSTAT : 2 ( 결과수신완료 ) TR_SENDDATE : 메시지를전송할시간, 미래시간을넣으면예약발송됨. 전송후 TR_SENDSTAT 는바로 1 가된다. 7.2.1. Mysql의경우즉시전송 INSERT INTO SC_TRAN (TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES (NOW(), '0', '1', '01012341234', '01012341234', 'http://wap.test.co.kr 테스트 '); 예약전송 INSERT INTO SC_TRAN (TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES ('2010-05-30 10:15:20', '0', '1', '01012341234', '01012341234', 'http://wap.test.co.kr 테스트 '); 7.2.2. Oracle의경우 즉시전송 INSERT INTO SC_TRAN (TR_NUM,TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES(SC_TRAN_SEQ.NEXTVAL, SYSDATE, '0', '1', '01012341234', '01012341234', 'http://wap.test.co.kr 테스트 '); 예약전송 INSERT INTO SC_TRAN (TR_NUM,TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES (SC_TRAN_SEQ.NEXTVAL, TO_DATE('2010-05-30 10:15:20','YYYY-MM-DD HH24:MI:SS'), '0', '1', '01012341234', '01012341234', 'http://wap.test.co.kr 테스트 '); 17
7.2.3. MSSQL의경우즉시전송 INSERT INTO SC_TRAN (TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES (GetDate(), '0', '1', '01012341234', '0233334444', 'http://wap.test.co.kr 테스트 '); 예약전송 INSERT INTO SC_TRAN (TR_SENDDATE, TR_SENDSTAT,TR_MSGTYPE,TR_PHONE,TR_CALLBACK, TR_MSG) VALUES ('2010-05-30 10:15:20', '0', '1', '01012341234', '0233334444', 'http://wap.test.co.kr 테스트 '); 7.3. MMS 발송테스트 MMS는이전의 SMS, URL처럼 TEXT 위주의메시지전송이아니라장문의텍스트, 이미지, 동영상, 오디오정보를함께전송할수있다 MMS의전송을위하여 MMS_MSG테이블을사용하게되는데, 반드시있어야하는필드는위테이블설명중굵은글씨로되어있는필드들이다. (MSGKEY, SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, TYPE) 이중, MSGKEY는자동증가하는값이고, TYPE은 0 으로조정해야한다. 그리고예약전송시메시지를보내고자하는시간을 REQDATE 에입력해야한다. ( 즉시발송시 sysdate, now(), getdate(), current) DB 전송시상태변화 : STATUS : 0 ( 발송대기 ) STATUS : 2 ( 송신완료 ) STATUS : 3 ( 결과수신완료 ) REQDATE : 메시지를전송할시간, 미래시간을넣으면예약발송됨. 전송후 STATUS 는바로 2 가된다. 7.3.1. Mysql 의경우 즉시전송 ( 컨텐츠첨부시 ) INSERT INTO MMS_MSG (SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, FILE_CNT, FILE_PATH1, TYPE) VALUES ('[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', NOW(), '5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '1', 'D:\\UPLUSAGT\\image\\test.jpg', '0' ); * FILE_CNT 가 1 이상이면해당하는 FILE_PATH# 을추가하셔야합니다. 즉시전송 ( 컨텐츠미첨부시 ) INSERT INTO MMS_MSG (SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, TYPE) VALUES ('[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', NOW(), 18
'5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '0' ); 예약전송 ( 컨텐츠첨부시 ) INSERT INTO MMS_MSG (SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, FILE_CNT, FILE_PATH1, TYPE) VALUES ('[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', '2010-05-30 10:15:20', '5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '1', 'D:\\UPLUSAGT\\image\\test.jpg', '0' ); * FILE_CNT 가 1 이상이면해당하는 FILE_PATH# 을추가하셔야합니다. 예약전송 ( 컨텐츠미첨부시 ) INSERT INTO MMS_MSG (SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, TYPE) VALUES ('[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', '2010-05-30 10:15:20', '5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '0' ); 7.3.2. Oracle 의경우 즉시전송 ( 컨텐츠첨부시 ) INSERT INTO MMS_MSG (MSGKEY, SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, FILE_CNT, FILE_PATH1, TYPE) VALUES ( MMS_MSG_SEQ.NEXTVAL,'[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', SYSDATE, '5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '1', 'D:\\UPLUSAGT\\image\\test.jpg', '0' ); * FILE_CNT 가 1 이상이면해당하는 FILE_PATH# 을추가하셔야합니다. 즉시전송 ( 컨텐츠미첨부시 ) INSERT INTO MMS_MSG (MSGKEY, SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, TYPE) VALUES ( MMS_MSG_SEQ.NEXTVAL,'[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', SYSDATE, '5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '0' ); 예약전송 ( 컨텐츠첨부시 ) INSERT INTO MMS_MSG ( MSGKEY, SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, FILE_CNT, FILE_PATH1, TYPE) VALUES (MMS_MSG_SEQ.NEXTVAL, '[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', TO_DATE('2010-05-30 10:15:20','YYYY-MM-DD HH24:MI:SS'), 19
'5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '1', 'D:\\UPLUSAGT\\image\\test.jpg', '0' ); * FILE_CNT 가 1 이상이면해당하는 FILE_PATH# 을추가하셔야합니다. 예약전송 ( 컨텐츠미첨부시 ) INSERT INTO MMS_MSG ( MSGKEY, SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, TYPE) VALUES (MMS_MSG_SEQ.NEXTVAL, '[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', TO_DATE('2010-05-30 10:15:20','YYYY-MM-DD HH24:MI:SS'), '5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '0' ); 7.3.3. MSSQL 의경우 즉시전송 ( 컨텐츠첨부시 ) INSERT INTO MMS_MSG (SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, FILE_CNT, FILE_PATH1, TYPE) VALUES ('[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', GetDate(), '5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '1', 'D:\\UPLUSAGT\\image\\test.jpg', '0' ); * FILE_CNT 가 1 이상이면해당하는 FILE_PATH# 을추가하셔야합니다. 즉시전송 ( 컨텐츠미첨부시 ) INSERT INTO MMS_MSG (SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, TYPE) VALUES ('[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', GetDate(), '5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '0' ); 예약전송 ( 컨텐츠첨부시 ) INSERT INTO MMS_MSG (SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, FILE_CNT, FILE_PATH1, TYPE) VALUES ('[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', 2011-04-30 13:00:00', '5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변동 / 취소가능 ', '1', 'D:\\UPLUSAGT\\image\\test.jpg', '0' ); * FILE_CNT 가 1 이상이면해당하는 FILE_PATH# 을추가하셔야합니다. 예약전송 ( 컨텐츠미첨부시 ) INSERT INTO MMS_MSG (SUBJECT, PHONE, CALLBACK, STATUS, REQDATE, MSG, TYPE) VALUES ('[ 차세대 MMS 전송테스트 ]', '01012341234', '01012341234', '0', '2011-04-30 13:00:00', '5 월가정의달을맞아아래기프트상품구매시 (10% 할인 )+(5% 적립금 ) 혜택을드립니다. 당사사정에의해변 동 / 취소가능 ', '0' ); 20
8. MMS 이통사별컨텐츠규격 MMS 발송을위한주의사항 : 1. MSG 필드 : MMS 의본문정보규격 : 최대 2,000byte 이내의텍스트파일, 코드형식은 EUC-KR * 핸드폰에서표시불가능한특수문자를입력하는경우전송이실패될수있음 * 본문의작성은자유롭게작성이가능 2. FILE_PATHX : 컨텐츠참조필드입력 IMG : MMS 의이미지정보 규격 : 해상도 ->176 x 144( 권장 ), 파일크기 :->50Kbyte 이하권장, JPG * 이미지의해상도는변경이가능하지만특정폰에서표시를하지못하는경우가있음 ( 콘텐트에오류가있음 으로표기됨 ) * 이미지는최대 3 장까지지정이가능. 단, 모든통신사에 3 장이모두전송이되는것은아님 ( 수신폰의기종이나통신사의지원여부를확인할것 ) ADO : MMS 의오디오정보규격 : 샘플링 16KHz 이하의 MA3 형식 * 통신사사정에따라전송이불가능할수있다. 사용전에확인이반드시필요함 MOV : MMS 의비디오정보 SKT : skm( 현재미지원 ) KT, LGT : k3g( 지원 ) 8.1. SKT 현재 SKT 는기본적으로이미지 3 개, 오디오 1 개, 문자 1000 자까지지원되며, 여러건의이미지를보내거 나, 사운드파일을보내더라도문자요금 + MMS 멀티미디어요금이한번만부과된다. 8.2. KT 현재 KT는기본적으로이미지4개, 오디오1개, 동영상1개, 문자1000자까지지원되며, SKT와마찬가지로여러건의이미지를보내거나, 사운드파일을보내더라도문자요금 + MMS 멀티미디어요금이한번만부과된다. 8.3. LGU+ LGT 는이미지 5 개, 오디오 1 개, 동영상 1 개, 문자 1000 자가지지원되며, SKT 와 KT 와는다르게문자요금 + 이미지개당요금 + 동영상요금이별도로부과된다. 8.4. MMS 이통사별컨텐츠권장사이즈장문 이미지 오디오 동영상 SKT 2 kb 이하 20 kb 이하 20 kb 이하 300 kb 이하 KT 2 kb 이하 20 kb 이하 20 kb 이하 300 kb 이하 LGU+ 2 kb 이하 300 kb 이하 300 kb 이하 300 kb 이하 21
9. 결과수신연동및결과코드값 9.1. SMS, URL 결과코드값 결과코드 코드 설명 00 E_OK 결과수신대기 ( 현재사용안함 ) 01 E_SYSFAIL 시스템장애 02 E_AUTH_FAIL 인증실패, 직후연결을끊음 03 E_FORMAT_ERR 메시지형식오류 04 E_NOT_BOUND BIND 안됨 05 E_NO_DESTIN 착신가입자없음 ( 미등록 ) ( 현재사용안함 ) 06 E_SENT 전송성공 07 E_INVALIDDST 비가입자, 결번, 서비스정지 08 E_POWEROFF 단말기 Power-off 상태 09 E_HIDDEN 음영 10 E_TERMFULL 단말기메시지 FULL 11 E_TIMEOUT 타임아웃 14 E_ETC 무선망에러 17 E_NO_URLUSER CallbackURL 사용자아님 18 E_DUP_MSG 메시지중복발송 19 E_FLOWCONTROL 월송신건수초과 20 E_UNKNOWN 기타에러 21 E_DEST_SIZE 착신번호에러 ( 자리수에러 ) 22 E_DEST_CODE 착신번호에러 ( 없는국번 ) 23 E_MSG_FMT 수신거부메시지없음 24 E_ADV21 21시이후광고 25 E_ADV 성인광고, 대출광고등기타제한 26 E_DACOM_SPAM 데이콤스팸필터링 27 E_NIGHTBLOCK 야간발송차단 40 E_NO_ALLOW 단말기착신거부 ( 스팸등 ) 91 E_FORBIDDEN_TIME 발송미허용시간때발송실패처리 99 E_DUP 환경설정파일의 sms.dup.check.seconds 에적용시간 ( 초 ) 이내에수신자번호 + 메시지내용이중복인경우실패처리. 22
9.2. MMS 결과코드값결과코드 코드 설명 1000 E_OK 성공 2000 E_FORMAT_ERR 포맷에러 2001 E_INVALID_PHONE 잘못된번호 2002 E_CONTENT_ERR 컨텐츠사이즈및개수초과 2003 E_INVALID_CONTENTS 잘못된컨텐츠 3000 E_UNAVAILABLE_PHONE 기업형 MMS 미지원단말기 3001 E_MSG_FULL 단말기메시지저장개수초과 3002 E_TIMEOUT 전송시간초과 3004 E_POWER_OFF 전원꺼짐 3005 E_EXP_SMS 음영지역 3006 E_ETC 기타 4000 E_SYS_ERR 서버문제로인한접수실패 4001 E_STOP_PHONE 단말기일시서비스정지 4002 E_TELECOM_ERR 통신사내부실패 ( 무선망단 ) 4003 E_BUSY_FAIL 서비스의일시적인에러 4101 E_DENY 계정차단 4102 E_REJECT_IP 허용되지않은 IP 접근 4104 E_INSUFFICIENT 건수부족 4201 E_REJECT_ITER 국제 MMS 발송권한이없음 5000 E_PORTED 5001 E_NOCDR 번호이동에러 선불발급발송건수초과 5003 E_SPAM 스팸 5201 E_DUP_KEY 중복된키접수차단 23
5202 E_DUP_PHONE 중복된수신번호접수차단 9001 E_FORBIDDEN_TIME 발송미허용시간때발송실패 ( 환경파일의 co.start_time ~ co.end_time 시간이외에발송시실패처리 ) 9002 E_PHONE_NUM 9003 E_SPAM_NUM 9004 E_LO_TIMEOUT 9005 E_FILE_SIZE 9006 E_FILE_FORMAT 9007 E_FILE_INVALID 폰넘버에러스팸번호 ( 스팸테이블사용시 ) 이통사에서응답없음파일크기오류지원되지않는파일파일오류 9008 E_MSG_TYPE MMS_MSG 의 MSG_TYPE 값이잘못되었음 9009 E_DUP_MSG 환경설정파일의 mms.dup.check.seconds 에적용시간 ( 초 ) 이내에수신자번호 + 메시지내용이중복인경우실패처리 9010 E_EXCEED_RETRY 재전송횟수초과로실패. 9011 E_OLD_REQ 발송지연으로인한실패 ( 환경파일의 mms.submit_timeout.minute 에 설정된시간보다발송요청시간이초과한 경우 ) 24
10. 운영가이드 10.1. 전송및로그테이블관리 일반적으로 SC_TRAN, MMS_MSG 에있는레코드수는 5만개이내가적당하다. 더더욱빈번하다면, 1 만개이하로유지하는것이좋다. 이때문에, 일정시간이지난레코드들에대해서가장빈번한입출력이일어나는 SC_TRAN, MMS_MSG 에서다른테이블로옮기도록정책을세우는것이좋은데환경설정파일에서다룬두값으로정책을결정한다. 레코드는결과수신여부와상관없이 TR_SENDDATE, REQDATE 에해당하는날짜에서일정한시간 (record_life_time; 단위 : 시간 ) 이지나면, SC_TRAN, MMS_MSG 테이블에서 SC_LOG_YYYYMM, MMS_LOG_YYYYMM 테이블로옮겨지게된다. Log 테이블은 TR_SENDDATE, REQDATE 의년 / 월에해당하는테이블로옮겨지게된다. 로그테이블또한 SC_TRAN, MMS_MSG 과똑같은 scheme으로되어있으므로, 로그테이블참조시 SC_TRAN, MMS_MSG 처럼다루면된다. 만약, 어떤이유로 SC_TRAN, MMS_MSG 에서모든일을처리하도록, 로그테이블로옮기지않도록하는방법은 log_interval=one 으로설정하면하면된다. ** 주의사항로그테이블로옮기지않도록설정후에바로해제하면안되며 MSG_DATA 테이블내데이터를모두 log 테이블로이동후에적용을해야하며 SC_TRAN, MMS_MSG 테이블내데이터는 3만개를넘지않도록유지해주십시요. 25