Transcript WTAI 개발

차세대 모바일 디지털 컨텐츠
이번 시간에는...
20. WTAI 개발 - II
지난 시간에는 WTAI를 이용한 전화부가 서비스 개발 첫번째 시간으로, WMLScript Crypto
Library에 대해 알아보고 WTAI Public Library, Voice Call Library 및 Network Message Library
에 대해 알아보았습니다.
이번 시간에는 WTAI 개발, 그 두번째 시간으로 WTAI Phone Book Library 와 Call Logs Library
및 Misc. Library에 대해서, WTAI를 이용한 전화 부가 데모 서비스 예제와 함께 학습해 보도록
하겠습니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
학습 목표
20. WTAI 개발 - II
20 회차 강의에서 다루게 되는 내용은 다음과 같습니다.
WTAI 개발 - II
이번 장의 학습 목표
1)
WTAI Phone Book Library에 대해 알 수 있다.
2)
WTAI Call Logs Library에 대해 알 수 있다.
3)
WTAI Miscellaneous Library에 대해 알 수 있다.
4)
WTAI 데모 프로그램을 통해 WTAI가 제공하는 Library 사용 방법에 대해 알 수
있다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI 전화기능 Library
20. WTAI 개발 - II
 WTAI Phone Book Library
• WTAI Phone Book Library는 전화 단말의 전화번호부 (Phone book) 제어를 지원하는 API 함수로 구성
되며, URI를 지원 하지 않아 WML 문서에서 직접 호출하여 사용할 수 없다
• Phone Book은 name 및 number Field로 구성, name Field 는 전화번호에 사용될 이름, number Field는
전화번호부에 사용될 전화번호이며, 저장한 모든 Entry는 Phone Book 내 Index 값을 갖는다.
• Phone Book Library 함수 (Cont’)
WTAI Call
WTAPhoneBook.write( index,number,name )
기능
• 전화번호부에 전화번호 저장, 저장 후 전화번호 저장한 Phone Book
Index 값 반환
• index = 전화번호부 인덱스 값 (숫자), number = 저장할 전화번호
String 문자열 (Phone Number), name = 전화번호와 같이 저장할 이
름
• 전화 번호 저장 실패 시 다음 오류 값 반환
•
•
•
•
•
-100 = name 값 길이 초과 또는 저장 불가 문자 입력
-102 = number 값 길이 초과
-103 = 전화번호 저장 실패
-104 = Phone Book 용량 초과
-1 = 정의되지 않은 오류 발생
예) var index = WTAPhoneBook.write(0,"5554367", "김갑돌");
WTAPhoneBook.search ( field, value )
한국산업기술대학교
• 전화번호부에서 전화번호 검색
• field = 전화번호 검색에 사용할 전화번호 Field를, value = 지정한
Field에 해당하는 조건 값 ( 예: name field 지정 및 value 에 “김갑
돌” 입력으로 전화번호부에서 김갑돌 전화번호 찾기)
예) var index = WTAPhoneBook.search("name", "alb");
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI 전화기능 Library
20. WTAI 개발 - II
 WTAI Phone Book Library
• Phone Book Library 함수
WTAI Call
WTAPhoneBook.remove( index )
기능
• 전화번호부에서 전화번호 삭제
• index = 삭제할 전화번호의 전화번호부내 Index 값 (숫자)
• 전화 번호 삭제 실패 시 다음 오류 값 반환
• -105 = 전화번호 삭제 실패
• -1 = 정의되지 않은 오류 발생
예) var flag = WTAPhoneBook.remove(index);
WTAPhoneBook.getFieldValue ( index, field )
• 전화번호부내 Entry에서 index 값에 해당하는 전화번호의 field 값 추
출
• index = 정보를 추출한 전화번호의 Phone Book 내 Index 값 (숫자)
• field = 정보를 추출할 전화번호 Field로, name 또는 number 지정
예) var number = WTAPhoneBook.getFieldValue(index, "number");
• 전화번호부에서 index 값에 해당하는 전화번호 Entry의 특정 field
(name 또는 number) 를 newValue 로 변경
• 전화 번호 Field 정보 변경 실패 시, 다음 오류 값 반환
WTAPhoneBook.change(index,field,newValue)
• -100 = field 가 "name" 일때, newValue 의 문자 길이 초과 또는 저장 불가
문자 입력
• -101 = field 가 "number“ 일때, newValue가 전화번호 String이 아닌경우
• -102 = field 가 " number " 일때, newValue 의 전화번호 길이 초과
• -103 = 전화번호 Entry 변경 실패, -104 = 전화번호부 용량 초과
• -106 ~ -107 = field 가 “ name " 또는 " number " 가 아니고, newValue
값이 저장불가 문자 또는 길이 초과인 경우
• -1 = 정의되지 않은 오류 발생
예) var flag = WTAPhoneBook.change(index, "name", “김갑돌");
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI 전화기능 Library
20. WTAI 개발 - II
 WTAI Call Logs Library
• WTAI Call Logs Library는 전화 단말의 발신 번호, 수신 번호 및 부재중 수신 번호에 대한 Access 및
Control을 지원하는 API 함수로 구성되며, URI를 지원 하지 않아 WML 문서에서 직접 호출하여 사용할
수 없다
• Call Log는 number Field로 구성되며, 옵션 사항으로 tstamp와 explanation Field를 가진다. number
Field 는 제어할 전화번호 String을, tstamp 는 수신, 발신 및 부재중 수신 전화의 시간 time-stamp 값을
가진다.
• Call Logs Library 함수 (Cont’)
WTAI Call
기능
WTACallLog.dialled( returnFirst )
• 발신 번호 중, 마지막 발신 전화번호 Log에 대한 Call Handle 반환
• returnFirst = boolean (true= most recent call log handle 반환,
false=다음 newest call log handle 반환
예) var h1 = WTACallLog.dialled(true);
// 발신 번호 call log entry #1 읽기
var h2 = WTACallLog.dialled(false);
// 발신 번호 call log entry #2 읽기
WTACallLog.missed (returnFirst )
• 부재중 수신 번호 중, 마지막 전화번호 Log에 대한 Call Handle 반환
• returnFirst = dialed() 함수에서와 동일
예) var h1 = WTACallLog.missed(true);
// 부재중 수신 번호 call log entry #1 일기
var h2 = WTACallLog.missed(false);
// 부재중 수신 번호 call log entry #2 읽기
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI 전화기능 Library
20. WTAI 개발 - II
 WTAI Call Logs Library
• Call Logs Library 함수
WTAI Call
기능
WTACallLog.received( returnFirst )
• 수신 번호 중, 마지막 수신 전화번호 Log에 대한 Call Handle 반환
• returnFirst = boolean (true= most recent call log handle 반환,
false=다음 newest call log handle 반환
예) var h1 = WTACallLog.received(true);
// 수신 번호 call log entry #1 읽기
var h2 = WTACallLog.received(false);
// 수신 번호 call log entry #2 읽기
WTACallLog.getFieldValue( logHandle, field )
• logHandle 로 지정한 Call Log의 field 값 추출
• Call Log의 field 는 number 와 옵션 사항인 tstamp 및 explanation
으로 구성되며, 일반적으로 number 만 사용
예) var number = WTACallLog.getFieldValue(handle, "number");
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI 전화기능 Library
20. WTAI 개발 - II
 WTAI Miscellaneous Library
• WTAI Miscellaneous Library는 현재 진행 WTA 서비스 종료, WTA 서비스 Protection Mode Set, WTA
상태에 대한 Logical Indicator 기능 등, 전화 및 통신 부가 서비스에 대한 상태 처리 지원
• WTAI Miscellaneous Library는 endContext() 함수에 대해서 WML 문서에서 사용 가능한 URI 지원
• Logical Indicator Type & State (Cont’)
Logical Indicator
Incoming Speech Call
Incoming Data Call
Incoming Fax Call
Call Waiting
한국산업기술대학교
Type
정의 및 State
0
Voice Call 전화가 와서, Incoming Voice Call 응답 가능 상태 정의
• 0 = Indicator "off“ 상태,
• 0 보다 큰 수 = Incoming Speech Call "on“ 상태, (음수 사용불가)
1
Data Call 전화가 와서, Incoming Data Call 응답 가능 상태 정의
• 0 = Indicator "off“ 상태,
• 0 보다 큰 수 = Incoming Speech Call "on“ 상태, (음수 사용불가)
2
Fax가 와서, Incoming Fax Call 응답 가능 상태 정의
• 0 = Indicator "off“ 상태,
• 0 보다 큰 수 = Incoming Speech Call "on“ 상태, (음수 사용불가)
3
통화중에 다른 전화가 와서, Call Waiting 응답 가능 상태 정의
• 0 = Indicator "off“ 상태,
• 0 보다 큰 수 = Incoming Speech Call "on“ 상태, (음수 사용불가)
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI 전화기능 Library
20. WTAI 개발 - II
 WTAI Miscellaneous Library
• Logical Indicator State 표시 값
• Logical Indicator의 State 값은 그 값이 0 일경우, 서비스 OFF 상태 또는 No Message 상태를 의미
하며, 0보다 큰 수일 경우, 서비스 ON 상태 또는 Message의 개수를 의미한다. Logical Indicator 상
태를 표현할 때 음의 정수를 사용할 수 없다.
• Logical Indicator Type & State
Logical Indicator
Text Message
Voice Mail Message
Fax Message
Email Message
한국산업기술대학교
Type
정의 및 State
4
Text Messages에 대해 Access 가능한 상태 정의
• 0 = No Message 상태
• 0 보다 큰 수 = Text Message의 개수 (음수 사용불가)
5
Voice Mail Message에 대해 Access 가능한 상태 정의
• 0 = No Message 상태
• 0 보다 큰 수 = Text Message의 개수 (음수 사용불가)
6
Fax Messages에 대해 Access 가능한 상태 정의
• 0 = No Message 상태
• 0 보다 큰 수 = Text Message의 개수 (음수 사용불가)
7
Email Messages에 대해 Access 가능한 상태 정의
• 0 = No Message 상태
• 0 보다 큰 수 = Text Message의 개수 (음수 사용불가)
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI 전화기능 Library
20. WTAI 개발 - II
 WTAI Miscellaneous Library
• Miscellaneous Library 함수
WTAI Call
기능
WTAMisc.setIndicator( type, newState )
• type 에 해당하는 Logical Indicator의 값을 newState 로 변경
• newState = 변경을 원하는 State 값 (숫자)
예) var flag = WTAMisc.setIndicator(0,1);
// Incoming Speech Call 을 ON 상태로 변경
WTAMisc.endContext( )
• Current WTA User Agent 종료 ( 현재 동작중인 WTA 기능 종료)
예) WTAMisc.endContext();
// 현재 서비스 중이던 WTA 기능 종료
WTAMisc.getProtection( )
• Current WTA Context의 Protection Mode 추출 ( 현재 동작중인 WTA 기
능의 Protection Mode 추출)
• 반환 값은 boolean 값으로 (true = 현재 동작중인 WTA 기능은 Protection
Mode로 동작중, false = Unprotected Mode로 동작 중)
예) WTAMisc.getProtection();
// 현재 서비스 중인 WTA Context의 Protection Mode 추출
WTAMisc.setProtection( mode )
• Current WTA Context를 Protection Mode로 변경 ( 현재 동작중인 WTA
기능을 Protection Mode로 변경)
• mode = boolean (true = Protection enable, false = Protected disable)
예) WTAMisc.setProtection(true);
// 현재 서비스 중인 WTA Context를 Protection Mode 로 변경
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI 전화기능 Library
20. WTAI 개발 - II
 WTAI Miscellaneous Library
• Miscellaneous Library 함수 URI
• WTAI Miscellaneous Library는 endContext() 함수에 대해서 WML 문서에서 사용 가능한 URI 지
원
• endContext() 함수의 형식은 “wtai://ms/ec” 이며, 현재 동작중인 WTA User Agent Context, 즉 현
재 동작중인 WTA 기능을 종료시킨다.
WML 문서에서
URI 사용
한국산업기술대학교
// 현재 WTA 기능 종료
<go href="wtai://ms/ec"/>
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI Demo
20. WTAI 개발 - II
 WTAI URI 사용 예제 WML 프로그램
• WML 전화번호 저장 및 전화걸기 프로그램
• 사용자에게 전화번호를 입력받아, 휴대폰 단말기 전화번호부에 저장한 뒤, 해당 전화번호를 이용하
여 전화 걸기 작업을 수행하는 WML 예제
• 프로그램 구성
• 총 6개의 WML Card로 구성
Main
main_card
Input Number
input_card
Store?
No
store_card
Yes
WTAI_Store
wtai_store_card
No
Make Call?
make_call_card
한국산업기술대학교
Yes
WTAI_Call
wtai_call_card
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI Demo
20. WTAI 개발 - II
 WTAI URI 사용 예제 WML 프로그램
• WML 전화번호 저장 및 전화걸기 프로그램
main_card
<?xml version = "1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<!-- WTAI URI Call Example in WML -->
<wml>
<!-- Main Card -->
<card id = "main_card" title = "Phone Demo" newcontext = "true">
<onevent type = "onenterforward">
<refresh>
<!-- reset variables -->
<setvar name = "p_num" value = "" />
<setvar name = "p_name" value = "" />
</refresh>
</onevent>
<do type = "accept" label = "Enter">
<go href= "#input_card"/>
</do>
<p>
This is Phone Access Demo <br/>
Enter Phone Number <br/>
</P>
</card>
(Cont’)
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI Demo
20. WTAI 개발 - II
 WTAI URI 사용 예제 WML 프로그램
• WML 전화번호 저장 및 전화걸기 프로그램
input_card
<!-- Phone Number Input Card -->
<card id = "input_card" title = "Input Number">
<!-- If back from next page, reset p_num -->
<onevent type = "onenterbackward">
<refresh>
<!-- reset variables -->
<setvar name = "p_num" value = "" />
<setvar name = "p_name" value=""/>
</refresh>
</onevent>
<!-- After Input Number, Store the Number -->
<do type = "accept" label = "Store">
<go href= "#store_card"/>
</do>
<!-- Reset to re-enter phone number and name -->
<do type="options" label="Clear">
<refresh>
<setvar name="p_num" value=""/>
<setvar name="p_name" value=""/>
</refresh>
</do>
<p>
<input name = "p_num" value = "" />
<input name = "p_name" value = "" />
</P>
</card>
(Cont’)
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI Demo
20. WTAI 개발 - II
 WTAI URI 사용 예제 WML 프로그램
• WML 전화번호 저장 및 전화걸기 프로그램
store_card
<!-- Phone Number Store Confirm Card -->
<card id = "store_card" title = "Store Number">
<!-- After confirm, Store it -->
<do type = "accept" label = "OK">
<go href= "#wtai_store_card"/>
</do>
<!-- or go back to previous to re-enter -->
<do type="prev" label="Prev">
<prev/>
</do>
<p>
Are you Sure? <br/>
OK to Store, or Prev to re-enter <br/>
</P>
</card>
wtai_store_card
<!-- WTAI Phone Number Store Card -->
<card id = "wtai_store_card", ontimer = "#make_call_card">
<!-- After store, dial it after 3 seconds -->
<timer value="30"/>
<!-- WTAI Public Library Phone Number Store -->
<go href="wtai://wp/ap;"$p_num";"$p_name"!resultvar"/>
</card>
(Cont’)
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI Demo
20. WTAI 개발 - II
 WTAI URI 사용 예제 WML 프로그램
• WML 전화번호 저장 및 전화걸기 프로그램
make_call_card
<!-- Phone Call Confirm Card -->
<card id = " make_call_card" title = “Call The Number">
<!-- After confirm, Dial it -->
<do type = "accept" label = "Dial">
<go href= "#wtai_call_card"/>
</do>
<!-- or go back to previous to re-enter -->
<do type="options" label="Main">
<go href= "#main_card"/>
</do>
<p>
Dial to make a call <br/>
Main to go back to Main <br/>
</P>
</card>
wtai_call_card
<!-- WTAI Make Call Card -->
<card id = "wtai_call_card">
<!-- WTAI Public Library to Make Call -->
<go href="wtai://wp/mc;"$p_num"!resultvar"/>
</card>
</wml>
한국산업기술대학교
(End)
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI Demo
20. WTAI 개발 - II
 WTAI Library 사용 WMLScript 프로그램 예제
• WMLScript 전화걸기 프로그램
• 사용자에게 전화번호를 입력받아 전화 걸기 작업을 수행하는 WML 및 WMLScript 예제
• WMLScript의 사용으로, 사용자 입력 전화번호 값 검증, 전화 걸기 처리 등 컴퓨팅 가능
• 프로그램 구성
• 총 1개의 WMLScript 함수와 3개의 WML Card로 구성
• WMLScript CallFood()는 파라미터로 사용자가 선택한 전화번호 문자열 String을 받아,
WTAVoiceCall.setup()으로 전화걸기 기능 수행한 후,
• 전화걸기 성공 여부를 확인한 후, 성공 시 Dialing_Card로, 실패 시 Error 카드로 이동
Main
Main_card
CallFood
WMLScript
Call Fail
Call Success
Dialing
Dialing_card
Error
Error_card
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI Demo
20. WTAI 개발 - II
 WTAI Library 사용 WMLScript 프로그램 예제
• WMLScript 전화걸기 프로그램
dial_it.wmls
/*
This function dials the given number and does some error handling.
If the WTAI function succeeds,
the browser is navigated to the #Dialing WML card.
If the WTAI function fails,
the browser is navigated to the #Error WML card.
*/
extern function CallFood(number)
{
// try to dial the given number
var handle = WTAVoiceCall.setup(number,true); // true = keep mode
// check for success or fail
// NOTE: failure is indicated by invalid
if (handle != invalid) {
// WTAI function succeeded, show voice call is being made
WMLBrowser.setVar("msg", "Phone number is '" + number + "'");
WMLBrowser.go("#Dialing");
}
else {
// WTAI function failed, warn user of error
WMLBrowser.setVar("msg", "Could not place call to '" + number + "'");
WMLBrowser.go("#Error");
}
}
한국산업기술대학교
(End)
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI Demo
20. WTAI 개발 - II
 WTAI Library 사용 WMLScript 프로그램 예제
• WMLScript 전화걸기 프로그램
Main_card
<?xml version = "1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.2//EN"
"http://www.wapforum.org/DTD/wml12.dtd">
<wml>
<!-- This card lets the user order the desired type of food. -->
<card id="Main_card">
<do type="OK" label="Order Food">
<go href="dial_it.wmls#CallFood('$(food_Number)')"/>
</do>
<p>
Choose Food:
<select name="food_Number">
<option value="5556789"> Pizza </option>
<option value="5551234"> Chinese </option>
<option value="5553344"> Sandwich </option>
<option value="5551122"> Burger </option>
</select>
</p>
</card>
(Cont’)
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
WTAI Demo
20. WTAI 개발 - II
 WTAI Library 사용 WMLScript 프로그램 예제
• WMLScript 전화걸기 프로그램
Dialing_card & Error_card
<!-- This card informs the user that food is being ordered. -->
<card id="Dialing_card">
<p>
Calling for food...<br/>
$msg <br/>
</p>
</card>
<!-- This card informs the user that an error was detected. -->
<card id="Error_card">
<p>
ERROR <br/>
$msg <br/>
</p>
</card>
</wml>
(End)
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
요약 정리
20. WTAI 개발 - II
이번 시간에 소개했던 내용을 정리해 봅시다.
1)
전화번호부 내 번호 저장, 검색 삭제 등의 기능을 제공하는 WTAI Phone Book
Library에 대해 알아 보았습니다.
2)
발신 전화, 수신 전화, 부재중 전화 등 전화 로그에 대한 제어 기능을 제공하는
WTAI Call Logs Library에 대해 알아 보았습니다.
3)
WTAI Miscellaneous Library에 대해 알아 보았습니다.
4)
WML가 WMLScript에서의 WTAI 사용 데모 프로그램을 통해 WTAI가 제공하는
Library 사용 방법에 대해 알아 보았습니다.
다음 시간에는 WAP 2.0, XHTML 에 대하여 학습하시게 될 것입니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
평가 하기
문제1
20. WTAI 개발 - II
WTAI Phone Book Library가 제공하는 기능은 무엇입니까?
정답은 다음과 같습니다.
단말기내 전화번호부 제어 기능
해설내용: WTAI Phone Book Library는 휴대폰 단말기내의 전화번호부 제어를 지원
하는 기능 함수로 구성되며, 전화번호부에 번호 저장, 번호 검색, 번호 변경, 번호 삭
제 기능 및 번호에 저장된 이름 정보 추출 기능이 있습니다.
문제2
WTAI Call Logs Library가 제공하는 기능은 무엇입니까?
정답은 다음과 같습니다.
전화 통신 기록에 대한 제어 기능
해설내용: WTAI Call Logs Library는 발신 번호, 수신 번호, 부재중 수신 번호 등, 전
화 통신 로그에 대한 제어 기능을 제공합니다. 즉, 전화 통신 기록으로 남은 전화 번
호에 대해 Call Handle 반환 기능과, 선택한 Call Handle에 저장된 번호와 이름 정보
추출 기능 제공 함수가 있습니다.
한국산업기술대학교
온라인 기술교육 교재 개발
차세대 모바일 디지털 컨텐츠
평가 하기
문제3
20. WTAI 개발 - II
WTAI Phone Book Library의 전화번호 저장을 위한 소스 코드를 쓰시오
정답은 다음과 같습니다.
var index = WTAPhoneBook.write(0, "0115554367", "Anthony");
해설내용: 위 함수 실행으로 전화번호부에 “Anthony” 라는 이름으로 011-555-4637
번호가 저장되게 됩니다.
한국산업기술대학교
온라인 기술교육 교재 개발