17.11.2014 Views

최 종 연 구 보 고 서 SP를 이용한 인바운드/ 아웃바운드 ... - 한양대학교

최 종 연 구 보 고 서 SP를 이용한 인바운드/ 아웃바운드 ... - 한양대학교

최 종 연 구 보 고 서 SP를 이용한 인바운드/ 아웃바운드 ... - 한양대학교

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 1 of 74<br />

2009-10-08<br />

산. 학. 연 공동기술개발산업<br />

최 종 연 구 보 고 서<br />

SP를 이용한 인바운드/ 아웃바운드 통합<br />

지능형 CTI 콜센터 시스템 개발<br />

An Implementation of an Inbound/Outbound Unified<br />

Intellectual CTL Call-Canter System Using DSP<br />

연구수행기관 : 한 양 대 학 교<br />

정 보 통 신 부<br />

제 출 문<br />

정보통신부 장관 귀하<br />

본 보고서를 산. 학. 연 공동기술개발산업 “DSP를 인바운드/아웃바운드 통합 지능형 CTI 콜 센터<br />

시스템 개발”과제의 최종 연구보고서로 제출합니다.<br />

1999 년 11월 20일<br />

연 구 수행기관 : 한양대학교 공학기술연구소<br />

연구개발책임자 : 조 성 호<br />

참 여 연 구 원 : 김 영 화, 김 영 일<br />

김 성 수, 위 정 현<br />

김 상 덕, 박 상 민<br />

김 용 석, 김 흥 원


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 2 of 74<br />

2009-10-08<br />

강 원 석, 문 준 문<br />

강 환 민<br />

이 정 호<br />

남 성 식<br />

요 약 문<br />

1. 제목<br />

DSP를 이용한 인바운드/ 아웃바운드 통합 지능 CTI콜센터 시스템 개발<br />

2. 연구개발의 목적 및 중요성<br />

정보화사회가 점차 성숙해짐에 사용자들의 정보를 획득하려고 하는 욕구가 증대되며 이에 따라<br />

어디에서나 손쉽게 이용할 수 있는 기존의 일반가입자 전화망을 이용한 CTI (Computer<br />

Telephony Integration)서비스 이용에 대한 사용자 요구가 증가하고 있다. 따라서 많은 기업, 관<br />

공서 서비스 업체 등에서 CTI 서비스를 제공하고 있으며 또는 앞으로 제공하고자 계획하고 있다.<br />

그러나 이렇게 국내 CTI시장이 점차 활기를 띠고 있는 가운데에도 CTI관련 주요 핵심기술은 외국<br />

업체에 전량 의존 수입되고 있다. 비싼 외산장비 및 프로그램을 구입하거나 기술사용료 대가로 매<br />

년 수백만 달러가 현재 지출되고 있으며, CTI콜센터 구축 후에도 시스템 업그레이드는 물론 유지<br />

유지보수 등의 문제가 생길 때마다 외국업체에 수시로 연락해야 하는 등 사후 유지보수에 어려움<br />

이 있다. 따라서 좀더 고품질의 서비스를 제공하기에는 아직까지 무리가 있다.<br />

이러한 추세에 따라, 최근 다양한 교환기 interface 표준을 지원할 수 있는 CTI 서버용 엔진이 국<br />

내에서 개발되기도 했다. 이와 연계되어 부가가치를 더욱 높일 수 있는 DSP기반 인바운드/아웃바<br />

운드 통합 지능형 CTI콜센터 시스템은 아직 국내에서 개발된 바는 없다.<br />

따라서 우리나라의 환경에 적합한 서비스를 제공할 수 있는 CTI 콜센터 시스템은 찾아보기 힘들<br />

며, 이에 따라 그 서비스의 품질이 떨어진다는 문제점을 안고 있다, 또는 장비와 그 핵심기술을 외<br />

국의 것을 그대로 사용할 수밖에 없기 때문에 제반 기술이 외국기술에 종속되고 있는 것이 현재의<br />

상황이다.<br />

그러므로 본 연구의 목적은 이러한 한계성을 극복하고 전량 외국에서 수입해 오던 고가의 CTI장<br />

비를 국산화함으로써, 우리나라 실정에 맞는 기술들을 제시하고, 다양한 국내의 환경에 적응할 수<br />

있는 기술을 추적함과 동시에 국내 실정에 맞는 고품질의 서비스 제공을 용이하게 하고, 나아가<br />

기술의 독립성을 확보할 수 있도록 하도록 하는데 있다. 이를 위해 고부가가치의 DSP를 기반으로<br />

하는 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템의 개발을 연구하였다.<br />

3. 연구개발의 내용 및 범위<br />

● CTI 시스템 하드웨어 개발<br />

■ 아웃 바운드용 8채널 모듈<br />

■ 인바운드용 4채널 모듈<br />

■ 아날로그 처리 모듈<br />

: A/D converter, telephone interface, transceiver, dial/busy tone detectors, gain control<br />

circuits, monitoring and report circuit 등


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 3 of 74<br />

2009-10-08<br />

■ 디지털 처리 모듈<br />

: DSP(TMS320C31) 회로, FPGA 회로, Memory 소자 등<br />

■ 통신 모듈<br />

: PCL 회로, dual-port RAM 회로, Memory 소자 등<br />

■ 전원 공급 및 interface 회로 모듈<br />

● CTI 시스템 소프트웨어 개발<br />

■ PCM modulation/demodulation과 DTMF tone generation/ detection을 위한 DSP 어셈블리<br />

프로그램<br />

■ 시스템 제어 및 상태 점검을 위한 VHDL 코딩<br />

■ PCI 디바이스 드라이버 및 어플리케이션 프로그램 interface(API)<br />

■ 운영체계 및 라이브러리<br />

■ 데이터 베이스 구축<br />

■ 사용에 편리한 GUI (Graphic user interface) Program<br />

4. 연구개발 결과 및 활용에 대한 건의<br />

가. 개발 결과<br />

본 연구에서는 금융기관, 유통업체, 의료기관, 언론사, 관공서 등 다양한 환경에서 고객 서비스,<br />

Tele-Marketing, 환자 관리, 여론조사, 민원업무 등의 효율을 극대화 할 수 있는 DSP 기반 지능<br />

형 인바운드/아웃바운드 통합 CTI 콜센터 시스템을 개발하였다. 개발된 H/W 는 8채널 DSP 아웃<br />

바운드용/ 4채널 DSP 인바운용 처리보드와 인바운드/아웃바운 보드용 전원공급 어댑터, Host<br />

Interface이며 S/W는 Borland사의 C++ Builder에 의한 각종 운영체계, H/W 응용 라이브러리<br />

시스템 제어, DSP S/W처리에 의한 다양한 Network protocol 지원, 운영 데이터베이스 구축, 클<br />

라이언트 모니터 화면 디스플레이 및 메뉴, 관리자 인터페이스이다. 기본 구조는 다음과 같<br />

다.H/W 구조는 통합 CTI 콜센터 시스템과 데이터 서버, 오퍼레이터용 클라이언트 모니터 PC로<br />

구성되어 있다. 통합 CTI 콜센터 시스템은 Pentium 200MHz 산업용 PC(기본 RAM 64MB (최대<br />

128MB), HDD 4GB (최대 40GB))를 기반으로 17인치 모니터링 화면, 모듈형 8채널 아웃바운드<br />

용 처리보드, 모듈형 4채널 인바운드용 처리보드, 내선용 전원공급장치와 커넥터 등 인바운드/아<br />

웃바운드 보드용 어댑터, 과도전압 (낙뇌) 보호로 구성되어 있으며, 데이터 서버는 Dual-Pentium<br />

Pro PC(기본 RAM 64MB (최대 128MB), HDD 4G (최대 40GB))를 기반으로 17인치 모니터링<br />

화면, Async, TCP/TP 타입 10Mbps LAN으로 구성되어 있다. 오퍼레이터용 클라이언트 PC는<br />

Pentium PC를 기반으로 모니터링 화면, Earphone 전화기, Async, TCP/IP 타입 10Mbps LAN<br />

으로 구성하였다.<br />

S/W 구조는 인바운드/아웃바운드 통합 CTI 콜센터 시스템에서 기본 O/S Windows-NT4. 0<br />

Workstation을 기반으로 인바운드/아웃바운드 처리 관련 DSP Assembly Language, 운영 데이<br />

터베이스(Inter Base사의 Inter Base), Borland C++ Builder에 의한 각종 운영체계, 기타 H/W<br />

응용 라이브러리, PCI Device Driver, 시스템 제어 프로그램, DSP S/W처리로 인하여 다양한<br />

Network protocol 지원, 클라이언트 모니터 화면 디스플레이 및 메뉴 프로그램, 관리자 인터페이<br />

스 프로그램을 개발하였으며 데이터 서버에서는 기본 O/S Windows-NT4.0 Server를 기반으로<br />

운영 데이터베이스(Inter Base 5.0 Server)망 제어 프로그램을 개발하였다. 그리고 오퍼레이터용<br />

클라이언트 PC에서는 기본 O/S Windows 98을 기반으로, 망 제어 프로그램을 구현하였다. 이를<br />

통하여, Dial/Busy Tone Detection, Voice Detection, MODEM/FAX Tone Detection, Ring<br />

Back Detection, Hook On/Off 송수신 기능, 음성녹음 및 송출을 위한 DSP 처리기능 Gain<br />

Control 기능, Monitoring and Report 기능, Multi-User Conference 기능 인바운드/아웃바운드


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 4 of 74<br />

2009-10-08<br />

보드 전원공급 기능을 구현하였다.<br />

본 연구에서 개발한 CTI 콜센터 시스템의 특징은 우선 확장이 용이한 Module형 설계로 최대 외선<br />

32채널, 내선 16선 채널까지 쉽게 확장이 가능하며, 전화응답이 사람일 경우일 오퍼레이터에 통<br />

화 연결을 하고 효율의 극대화라는 개념의 운영 체계를 구성하였으며, 음성인식, 합성, 음성녹음<br />

및 송출 등 지능형 서비스 제공을 제공하고, 오퍼레이터의 쉽게 편리한 운용을 위한 사용자 인터<br />

페이스를 가지며, 여론조사기관, 기업의 영업부서, 백화점, 통신사업자 등 다양한 환경에서도 쉽게<br />

이용할 수 있는 호환성을 가지고, 빠르게 안정적인 데이터베이스 운영을 할 수 있다. 또 다수의 클<br />

라이언트 오퍼레이터와 1명의 시스템 관리자를 제외하고는 기본적으로 무인운영이 가능하다. 마<br />

지막으로 부품과 O/S 및 데이터베이스 관련 S/W를 제외하고는 모두 국산(약 80%)이므로 수입 대<br />

체 효과를 얻을 수 있다는 장점이 있다.<br />

나. 활용방안<br />

본 연구를 통하여 국내의 환경에 알맞은 서비스를 아래와 같이 활용할 수 있을 것이다.<br />

(1) 은행, 증권사, 보험사, 할부금융<br />

■ Tele-Marketing<br />

■ 고객관리 (기존고객 유지, 신규고객 확보)<br />

■ 현금자동이체 등 홈뱅킹 서비스<br />

■ 채권 관리<br />

■ 증권정보 제공<br />

■ 보험상품 안내, 계약자 접수<br />

■ 유통기관, 신용카드사:<br />

■ 통신판매, 계약자 접수<br />

■ 연체자 관리<br />

■ Happy Call<br />

■ 소비자 불만, 분실신고 등 접수<br />

■ 각종행사 및 상품안내<br />

(2) 통신사업자<br />

■ A/S 접수<br />

■ 고객만족도 조사<br />

■ 음성사서함<br />

■ FAX 사서함<br />

■ 수신자부담 800 서비스<br />

■ 이동통신 콜센터 구축


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 5 of 74<br />

2009-10-08<br />

(3) 의료기관<br />

■ 진료안내<br />

■ 예방주사 접종 안내<br />

■ 통원치료자 처방 안내<br />

■ 투약정보 정보<br />

■ 진료시간 예약<br />

■ 야간진료, 응급진료 접수<br />

(4) 언론사, 방송사, 여론조사 기관:<br />

■ 여론조사 및 자동통계<br />

■ 시청률 조사<br />

■ 선거운동<br />

■ 부조리 고발<br />

■ 주문형 신문, 주문형 방송<br />

■ 야간진료, 응급진료 접수<br />

■ 기부금모집<br />

(5) 정부 및 지방자치단체<br />

■ 민원처리 결과 통보<br />

■ 세부, 법규 등 행정업무 상담<br />

5. 기대 효과<br />

가. 기술적 측면<br />

본 연구를 통하여 인바운드 및 아웃바운드 콜 서비스를 각각 제공하거나 혹은 통합적으로 제공할<br />

수 있는 다양한 솔루션을 제공 할 수 있으며 다양한 응용환경에 효율적으로 대처할 수 있고 유지<br />

보수가 간편한 지능형 CTI 콜센터 솔루션을 확보할 수 있다. 그리고 DSP 응용 H/W 및 S/W 설계<br />

기술, 망 접속 기술, 음성압축 및 인식과 같은 지능형 음성신호처리 기술, 데이터베이스 구현 및 접<br />

속기술, 시스템 운영기술과 같은 인바운드/아웃바운드 통합 지능형 CTI 콜센터 솔루션 관련 주요<br />

핵심기술 확보할 수 있다.<br />

또한, 새로운 응용분야가 도출되었을 때, 신속한 솔루션 제공이 가능하며 시스템의 국산화로 인하<br />

여 우리나라의 언어, 관습, 문화에 더욱 적확한 솔루션 제공이 가능하다.<br />

이외에도 독자적인 프로토콜이나 서비스 인터페이스 표준화를 추진할 수 있어, 선진국에 의한 기<br />

술종속 및 지적재산권 분쟁에 여유 있는 대처가 가능하며, 인터넷과 인트라넷 등이 전화망과 통합<br />

하여 연동시키는 움직임, 그리고 음성은 물론 이미지나 동영상을 통해서 정보를 제공하는 미래형<br />

멀티미디어 개념 콜센터의 실현에도 능동적으로 대처할 수 있는 기반기술 제공할 수 있다.<br />

따라서 정보통신망 응용 관련 유사 분야에 대한 기술적 파급효과가 매우 크다고 하겠다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 6 of 74<br />

2009-10-08<br />

나. 경제. 산업적 측면<br />

시스템 업그레이드나 유지보수 및 고객확보를 위한 영업 측면에서 한층 유리한 CTI 콜센터 서비<br />

스를 제공함으로서 국내 시장 점유율을 크게 향상시킬 수 있으며, 비싼 외화 장비 및 프로그램 구<br />

입, 또는 기술사용료 대가로 매년 지출되던 외화를 크게 절약할 수 있다. 그리고 CTI 콜센터의 구<br />

축에 따라 최소의 인원으로도 고객지원센터 업무효율을 향상은 물론 사업비용 및 시간절약의 효<br />

과를 기대할 수 있으며, 새로운 고객서비스 및 새로운 상거래 문화를 창출함으로서, 선진국형 저비<br />

용 고효율 영업전략 수립이 가능 가능하다.<br />

그리고 무엇보다도 중요한 점은 제품의 국산화에 따른 수입대체 및 새로운 해외시장 개<br />

척이 용이해 진다는 점이다.<br />

SUMMARY<br />

1. TITLE<br />

An implementation of the inbound/outbound unified intellectual CTI call-center system<br />

using DSP<br />

2. RESEARCH OBJECTIVES<br />

• As our community tends toward the information society, there has been growing demand<br />

to access more information in easy and efficient ways. The computer telephony<br />

integration (CTI) system over the subscriber line is one of the good examples in this<br />

trend.<br />

• The CTI system can be use in a wide variety of environments, such as<br />

telecommunication service providers, banks, stock brokers, happy call service centers,<br />

central and local government offices, telemarketing companies, hospitals, newspaper and<br />

broadcasting, survey organizations, and so on.<br />

• The global sales market of the CTI system expands by leaps and bounds year by year.<br />

• Thus far, the CTI industries in Korea Have not been quite successful to achieve<br />

intellectual property rights on the CTI system, and therefore the key technologies of the<br />

CTI system have mostly depended on private sectors in foreign countries.<br />

• The main objective of this research work is to realize an inbound/outbound unified CTI<br />

call-center system that makes intellectual operation feasible by employing a high-speed<br />

digital signal processor (DSP). The implemented CTI system is believed to be quite<br />

competitive to those existing foreign products.<br />

3. CONTENTS AND SCOPE<br />

• Development of the CTI system hardware :<br />

8-channel module for outbound calls<br />

4-channel module for inbound calls<br />

Analog processing module including A/D converters, telephone interfaces,<br />

transceivers, dial/busy tone detectors, gain control circuits, monitoring and report circuits,<br />

etc.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 7 of 74<br />

2009-10-08<br />

Digital processing module including DSP (TMS320C31) circuits, FPGA circuits,<br />

memory devices etc.<br />

Communication module including PCI circuits, dual-port RAM circuits, memory<br />

devices, etc.<br />

Power supply and interface circuit modules.<br />

• Development of the CTI system software :<br />

DSP assembly programs for the modulation/demodulation and DTMF tone<br />

generation/detection<br />

VHDL codes for system controls and interrupts<br />

PCI device driver and application program interfaces (API)<br />

Operating databases<br />

Graphic user interface programs<br />

4. RESULTS<br />

An inbound/outbound unified CTI call-center system that makes intellectual operation<br />

feasible by employing a high-speed DSP has been developed. The system is able to<br />

handle 8-channel outbound calls and 4-channel inbound calls simultaneously.<br />

The hardware and software modules of the system has been successfully implemented<br />

and optimized.<br />

The hardware module includes the 8-channel outbound module, the 4-channel<br />

inbound module, the analog processing module, the digital processing module, the<br />

communication module, and the power supply and interface circuit modules.<br />

The software module includes the DSP assembly programs, the VHDL codes, the<br />

PCI device driver and API, the operating systems and libraries, the operating databases,<br />

and the graphic user interface programs.<br />

The major CTI functions of the implemented system have been tested and their validity<br />

has been demonstrated.<br />

The system has been implemented in such a way that it can be used in a wide variety of<br />

environment using the same hardware platform.<br />

Technologies for various CTI solutions have been satisfactorily accumulated so that the<br />

CTI systems of larger capacity can now be realizable without great efforts.<br />

Since the CTI system has been developed with our own efforts, the system<br />

maintenance and/or the system upgrade can also be provided to users in an efficient and<br />

effective manner.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 8 of 74<br />

2009-10-08<br />

CONTENTS<br />

Chapter Ⅰ. Introduction<br />

Chapter II. Overviews of the CTI call-center system<br />

Section 2-1. General description<br />

Section 2-1. General functions<br />

Section 2-3. Application areas<br />

Chapter III. Implementation of the inbound/outbound unified CTI system<br />

Section 3-1. Design procedures<br />

Section 3-2. Functions and operations<br />

Chapter IV. Design of the PCI interface standards<br />

Section 4-1. Comparisons with other interface standards<br />

Section 4-2. Design and implementation<br />

Section 4-3. PCI protocols<br />

Chapter V. Design of the digital procession unit<br />

Section 5-1. FPGA part<br />

Section 5-2. DSP part<br />

Chapter VI. Design of the analog processing unit<br />

Section 6-1. Protection circuit<br />

Section 6-2. Common official interface circuit (COIC)<br />

Section 6-3. Subscriber line interface circuit (SLIC)<br />

Section 6-4. A/D converters<br />

Chapter VII. Design of the software unit<br />

Section 7-1. Hardware driving softwares<br />

Section 7-2. Application softwares<br />

Chapter VIII. Concluding remarks<br />

REFERENCES<br />

APPENDIX


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 9 of 74<br />

2009-10-08<br />

목 차<br />

제 1 장 서 론<br />

제 2 장 CTI 콜센터 시스템의 개요<br />

제 1 절 일반적인 구성<br />

제 2 절 일반적인 동작<br />

제 3 절 적용 예<br />

제 3 장 CTI 통합 보드의 구현<br />

제 1 절 설계 방법<br />

제 2 절 구동 및 운영<br />

제 4 장 PCI Interface 모듈<br />

제 1 절 Interface 방식의 비교<br />

제 2 절 설계 및 구현<br />

제 3 절 PCI protocol<br />

제 5 장 Digital 모듈<br />

제 1 절 FPGA 부분<br />

제 2 절 DSP 부분<br />

제 6 장 Analog 모듈<br />

제 1 절 Protect 회로<br />

제 2 절 외선 제어 회로(COIC)<br />

제 3 절 내선 제어 회로(SLIC)<br />

제 4 절 A/D Converter<br />

제 7 장 소프트웨어<br />

제 1 절 하드웨어 구동을 위한 소프트웨어<br />

제 2 절 Application을 소프트웨어<br />

제 8 장 결 론<br />

참고문헌<br />

부록 A. DSP 프로그램 (DTMP Detection & Generation)<br />

부록 B. Application programs


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 10 of 74<br />

2009-10-08<br />

부록 C. CTI 통합 보드의 회로도<br />

제 1 장 서 론<br />

정보화사회가 점차 성숙해짐에 따라 기존의 일반가입자 전화망을 이용한 CTI 서비스 이요에 대한<br />

사용자 요구가 증가하고 있다.전세계으로 볼 때 CTI 시장은 매년 100%이상씩 커지는 성장 산업<br />

으로 주목 받고 있다. MMTA (Multi Media Telecommunications Association) 자료에 따르면<br />

미국을 포함한 북미 전체의 CTI 시장규모는 97년에는 8억8천5백90만 달러, 2000년에는 23억8<br />

천만달러로 3년 사이에 3배로 초고속 성장이 예측이 된다. 그리고 97년 국내 CTI 시장은 2천억<br />

내지 2천5백억원 규모를 이룰 것으로 전망되며, 이 가운데 시스템을 제외한 인바운드/아웃바운드<br />

솔루션 시장만도 1천억원에 달할 것으로 추산이 된다. 오는 2000년도에는 1조원의 사장규모를 보<br />

여 정보통신분야 가운데 별도 항목으로 구분될 정도로 유망한 시장으로 부상할 것으로 업계에서<br />

는 예측이 된다.<br />

이는 기업의 마케팅 기능 강화를 위한 통신자원의 통합에 의 CTI 콜센터를 구축할 경우 최소의 인<br />

원으로도 고객지원센터 업무효율을 300% 이상 증대시킬 수 있으며, 따라서 사업비용 및 효과를<br />

기대할 수 있는 등 여러 면에서 장점을 가지고 있기 때문이다.<br />

한국통신의 자체 조사에 따르면, 인바운드 CTI 콜서비스를 단적으로 보여주는 수신자부담 전화<br />

800 서비스 시장이 연평균 250%의 높은 증가율로 성장되고 있다. 이외에 고객 데이터베이스를<br />

이용해 잠재고객에 대한 구매가능성을 사전 분석한 후 자동으로 Out-Dialing 하여 제품 정보를 제<br />

공하고 구매결정을 유도하는 애플리케이션을 활용하는 아웃바운드 개념의 서비스를 첨가하면 매<br />

출증대 효과를 창출한 것으로 기대가 된다. 또 인터넷과의 연결을 통한 VoIP서비스 역시 현재 각<br />

광을 받고 있다. 결국 이용자에게 좀 더 좋은 서비스를 제공할 수 있으며, Tele-Marketing 서비스<br />

에 의한 상거래 문화를 더욱 활성화시킬 수 있을 것으로 전망이 된다.<br />

그러나 국내 CTI시장이 점차 활기를 띠고 있는 가운데에도 CTI관련 주요 핵심기술을 외국업체에<br />

전량 의존, 비싼 외산 장비 및 프로그램 구입하거나 기술사용료 대가로 매년 수백만 달러가 현재<br />

지불되고 있다. 그리고, CTI콜센터 구축 후에도 시스템 업그레이드는 물론 유지보수 등의 문제가<br />

생길 때마다 외국업체에 수시로 연락해야 하는 등 사후 유지보수에 어려움이 있다.<br />

이러한 추세에 따라, 최근 다양한 교환기 interface 표준을 지원할 수 있는 CTI 서버용 엔진이 국<br />

내에서 연구, 개발이 활발히 진행되기는 하지만, 이와 연계되어 부가가치를 더욱 높일 수 있고 기<br />

술 집약적인 DSR 기반 인바운드/아웃바운드 통합 지능형 CTI 콜세턴 솔류션은 아직 국내에서 개<br />

발된 바는 없다.<br />

이에 따라 지난해부터 국내 통신사업자, 금융권, 유통업체를 중심으로 CTI 기반 콜센터 및 고객만<br />

족 및 고객만족센터가 잇따라 구축되는 등 국내 CTI 시장이 크게 성장되고 있다. 그러나 기술면에<br />

서 현재 외국업체에 전량 의존하고 있어, 국내 관련시장 및 인터페이스 프로토콜을 자칫 잘못하면<br />

고스란히 외국업체에 넘겨줄 우려가 있다. 특히, DSR 기술에 의한 지능형 인바운드/아웃바운드<br />

CTI 콜센터 솔류션은 그 활용 잠재력 및 부가가치가 높아, 외국에서도 경쟁적으로 신제품 개발을<br />

추진하고 있지만 국내에서는 그 개발의 추진이 전무한 상태라고 하겠다.<br />

전세계적으로, 인바운드/아웃바운드 통합 CTI 콜센터의 활용영역이 금융기관, 보험사, 할부금융<br />

사, 카드사, 유통기관, 의료기관, 여론조사기관, Tele-Marketing 업체, 정부 민원처리 기관, 제조<br />

업체 고객관리 부서, 레저산업, 여행사 등 매우 다양해짐에 따라, 각 애플리케이션 환경에 효율적<br />

으로 신속히 대처할 수 있는 DSP 솔루션 개발에 역점을 두고 있다. 또한 음성인식 및 압축을 위한<br />

지능형 음성처리 기술, 호환성 높은 시스템 H/W 및 S/W 설계기술, 망 접속기술, 효율적인 대용량<br />

데이터베이스 구축 및 인터페이스 표준화 또는 프로토콜 선정에 우위를 점하고 그에 따른 지적재<br />

산권을 확보하고자 치열한 경쟁을 하고 있다. 반면, 우리나라에서는 많은 회사들이 자체 기술개발<br />

은 도외시 한 채, 보다 빠른 시장선점을 위해 제품수입과 기술도입에 막대한 금액을 지출하고 있<br />

으며, 이로 인하여 기술의 종속화 및 외국제품에 의한 국내 표준화 가능성이 심화되어 가고 있다.<br />

이러한 상황에서 국내에서는 한솔텔레컴이 미국의 아웃바인드 CTI 솔루션 전문업체인 미국 모자<br />

익스사와 기술제휴 및 국내 독점공급 계약을 체결하고 이 회사의 아웃바운드 CTI 애플리케이션인


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 11 of 74<br />

2009-10-08<br />

'모자익스'의 한글화 작업을 완료, 시장 개척을 추진하고 있으며, 재너시스사는 데이콤시스템 테크<br />

놀로지 등을 통해 제품을 공급하고 있으며, 관련 제품의 한글화를 추진하고 있다. 그 외에도 국내<br />

에는 CTI 솔루션을 취급하는 회사가 10여개 있으나, 대부분 관련 장비를 수입하여 한글화하는 수<br />

준이며, 한길정보시스템만이 최근 CTI 서버용 엔진을 개발에 성공한 정도이다. 그러나 개발된 서<br />

버용 엔진과 연계되어 부가가치를 더욱 높일 수 있는 DSP 기반 인바운드/아웃바운드 통합 지능형<br />

CTI 콜센터 솔루션은 아직 국내에서 개발된 바가 없다.<br />

이처럼 국내 기업이나 연구기관에서 아직까지 자체적인 핵심기술을 확보하지 못하고 있는 배경에<br />

는, 기업들이 원천기술 개발보다는 눈앞의 시장점유에만 관심을 보여 왔고, 또 연구기관에서는 핵<br />

심기술의 개발 및 상용화에 큰 관심을 갖지 않았기 때문이라 생각이 된다.<br />

따라서 본 연구에서는 DSP를 기반으로 하는 인바운드/아웃바운드 통합 지능형 CTI 콜센터 솔루<br />

션을 구현하였다. 이는 이제까지 외국에 의존적이었으며 이에 따라 여러 가지 문제점을 야기 시켰<br />

던 기존의 CTI 콜센터 시장에 새로운 전기를 마련하는 계기가 될 것이다.<br />

우선 2장에서는 CTI 콜센터 시스템의 개념과 그 적용 예에 대하여 알아보았고, 제3장에서는 본 연<br />

구를 통하여 구현한 CTI 통합 보드의 전체적인 description을 알아보았다. 제 4 장에서는 PC와의<br />

interface 인 PCI interface인 PCI 인 interface 모듈의 설계방법과 그 동작에 대하여 설명하였으<br />

며, PCI interface 방식의 구성과 기타 다른 interface 방식과의 차이점을 비교 분석하였다. 제 5<br />

장에서는 CTI 통합 보드의 핵심 부분인 digital 모듈의 설계와 그 구성 및 동장에 대하여 설명하였<br />

으며, 전체적인 보드의 제어를 위해 구현한 VHDL coding 의 동작 및 구현에 대하여 설명하였다.<br />

제 6장에서는 외부 회선과의 connection 및 보호회로, A/D converter 등으로 구성된 analog 모<br />

듈의 설계 및 동작에 대하여 설명하였으며, 보호회로의 구현 및 그 방법에 다하여 여러 가지 상황<br />

및 기타 다른 방법과 본 연구에서 구현한 방법간에 비교 분석하였다. 제 7장에서는 application 과<br />

데이터베이스 및 개발 소프트웨어에 대하여 설명하였다. 마지막으로 8장에서는 연구추진을 통한<br />

최종적인 결론을 요약하였다.<br />

제 2 장 CTI 콜센터 시스템의 개요<br />

CTI (Computer Telephony Integration)란 컴퓨터와 전화를 통합한 시스템을 지칭하는 것으로<br />

PC를 통해 전화 시스템을 효율적으로 사용할 수 있도록 함으로써 자동 재다이얼 기능을 비롯해<br />

영상회로 기능, 자료전송 및 음성사서함 기능, 송수신호에 대한 자동정보제공기능, 통화내용 녹음,<br />

DataBase 연동 등을 구현할 수 있는 기술이다.<br />

대표적인 기술 상품으로는 음성자동 응답시스템(ARS), 콜센터 (Call Center) 등이 있으며, 현재<br />

외국에서는 인터넷과 인트라넷 등을 전화망과 통합, 연동시키는 솔루션에 대한 연구가 활발히 진<br />

행되고 있는 추세이다.<br />

CTI 콜센터 시스템이란 CTI 기술의 바탕 하에 콜센터를 구성하는 것을 말한다. 지금까지는 콜센<br />

터는 상담원이 직접 전화를 연결하여 고객의 정보를 조회하고 상담을 해야 했기 때문에 상담원의<br />

전화연결 및 고객정보 조회과정에서 소요되는 낭비적 시간 때문에 실제 본연의 상담업무처리에<br />

막대한 지장을 받아왔고, 또한 담당자와 연결되기 전에 여러 번 다른 부서로 호가 전환됨으로써<br />

데이터입력 및 통신과정의 오류가 빈번히 발생하는 불편이 있었다.<br />

반면에 CTI 기반의 콜센터는 CTI 콜센터의 인바운드 시스템에서 지능형 라우팅 및 데이터베이스<br />

를 결합함으로써 고객의 요구조건을 가장 적절하게 처리할 수 있는 상담원에게 연결해 줄 수 있으<br />

며, CTI 콜센터의 아웃바운드 시스템의 지능형 자동발신 기능을 통하여, 상담원 또는 감독원에 의<br />

한 자동 다이얼링 (Preview Dialing, Power Dialing 등)이 가능하며, 주어진 시간에 보다 많은 고<br />

객에게 전화를 걸 수 있고 접속불완료 횟수를 감소시킬 수 있으므로 판매기회를 증대시킬 수 있을<br />

뿐만 아니라, 통화 연결과정에서 불완전 접속이 된 고객에게 전화를 걸 수 있을 뿐만 아니라, 통화<br />

연결과정에서 불완전 접속이 된 고객을 재분류하여 콜백 (Callback)함으로서, 인바운드 통화 시<br />

장시간대기, 아웃바운드 통화 시 통화 중, 무응답, 모뎀 및 팩스접속 등으로 인한 불필요한 낭비요<br />

소를 현격하게 감소시킬 수 있다. 또 다채널 통화녹음장치 등과 연계하여 통화내용을 실시간으로<br />

저장함으로써, 하나의 Call Record 의 시작부터 끝나는 시점까지 통화내용에 대한 증빙자료로 활<br />

용할 수 있음은 물론, 통화대기 시간 및 콜전환 횟수 등을 추적할 수 있으며, 콜센터 내의 상담원


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 12 of 74<br />

2009-10-08<br />

및 콜 상태를 실시간으로 모니터링 할 수 있으므로, 상담원의 업무평가를 수시로 할 수 있고 고객<br />

만족도를 향상시킬 수 있다. 그리고, 운영상황 분석을 위한 콜센터의 각종 통계자료를 자동으로 수<br />

집할 수 있으며, 상담원이 호를 수신할 때 고객 데이터베이스로부터 고객 관련 정보가 상담원 모<br />

니터에 즉시 표시되므로 상담원의 정보입력 및 검색의 필요성이 없어진다.<br />

따라서 과거에는 고객이 많아짐에 따라 많은 상담원을 고요해야 했고, 또한 상담원과 연결되기 위<br />

한 대기시간이 일반적으로 길기 때문에 통신비용과 고개불만이 증대하였으나, 통합 CTI 콜센터를<br />

운영함으로서 이 같은 문제를 해소할 수 있으며, 기초교육만 받은 상담원도 콜센터 시스템의 지원<br />

으로 최상의 고객지원 서비스를 수행, 숙련도에 관계없이 고객에게 최고 수준의 기업이미지 제공<br />

이 가능하고, 대 고객 서비스를 제공할 수 있는 영업 측면의 역량을 향상 시켜주고, 팩스를 통한 주<br />

문 등 판매 사원과 상담하는 것을 기피하는 고객들에게도 편의를 제공할 수 있는 등 여러 면에서<br />

기존의 콜센터 보다 장점을 가지고 있다고 하겠다.<br />

제 1 절 일반적인 구성<br />

일반적으로 CTI 콜센터 시스템은 다음의 2.1과 같이 구성된다.<br />

상담을 필요로 하는 고객은 일반 전화망을 이용하여 CTI 콜센터로 접속하게된다. 그러면 CTI 서<br />

버가 이를 감지하여 호를 콜센터로 연결시킨다. 이때 고객의 요구 또한 CTI 서버가 이를 감지하여<br />

호를 콜센터로 연결시킨다. 이때 고객의 요구 또한 CTI 서버에서 감지한다. 즉 ARS 서비스를 원<br />

하는지, 상담원과의 통화를 원하는지, 또는 기타 다른 서비스를 원하는지를 바로 감지하여 요구에<br />

알맞는 서비스를 제공한다.<br />

이처럼 CTI 서버는 콜센터와 고객간의 연결을 담당하며, 고객의 요구를 감지하여 알맞는 서비스<br />

를 제공한다. 이외에 아웃바운드 동작에서 CTI 서버는 고객에게 전화를 걸어 고객에게 호가 연결<br />

되는 지를 감지, 콜백 하는 역할도 담당한다. 다시 말해서 CTI 서버는 CTI 기반의 콜센터에서 고<br />

객과 콜센터간의 연결에 대해 중추적인 역할을 한다.<br />

국내에서 구축되어 있는 일반적인 CTI 콜센터에서 CTI 서버는 일반적으로 교환기와 교환기를 제


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 13 of 74<br />

2009-10-08<br />

어하는 서버, ARS 서비스를 제공할 수 있는 장치로 구성되어 있다. 다음의 그림 2.2 는 CTI 서버<br />

구성의 예이다. 이처럼 구성한 경우에는 장비가 고가가 되며, 그 구축한 서버의 크기가 대형화가<br />

된다는 단점을 내포하고 있다.<br />

또는 CTI 서버는 교환기 없이 구성되기도 한다. 본 연구에서 제시하고 있는 DSP를 이용한 인바운<br />

드/아웃바운드 통합 지능형 CTI 콜센터 시스템이 대표적인 예이다. 이렇게 구성할 경우에는 장비<br />

의 가격이 저렴해지고 그 크기도 작아진다는 장점이 있다. 그러나 아직까지 국내에서는 그 기술이<br />

연구, 개발되지 않아서 유지보수가 어렵고 장비의 가격도 고가이다. 하지만 점점 그 수요가 늘고<br />

있는 추세이므로 이에 대한 연구도 시급하다.<br />

DB(Data Base) 서버는 고객의 신상명세나 기타 자료들을 보관하고 있을 뿐만 아니라 필요에 따<br />

라 편리하게 자료를 볼 수 있도록 관리하는 곳이다. 이때 자료의 열람은 허가된 사람에게만 가능<br />

하도록 한다. 이는 개인의 신상에 대한 정보의 유출이라는 문제에서 중요하게 다루어진다. 허가된<br />

사람 이외의 사람이 DB 서버가 관리하고 있는 개인의 신상에 대한 정보를 볼 수 있다면 이는 쉽게<br />

개인의 정보가 유출되는 것이므로 고객에 대한 서비스라는 개념에서는 있을 수 없는 것이다.<br />

또 이러한 데이터는 쉽게 업데이트가 가능해야 한다. 이 또한 DB 서버에서 구현되어 있는 기능이<br />

다. 상담원이 상담 중에 고객의 정보를 바꿔야 하는 경우, 또는 고객이 콜센터에 연결하여 자신의<br />

정보를 바꿔야 하는 경우에 DB 서버는 이를 가능하게 해 준다. 이 때 만약 바꿔야 하는 정보를 다<br />

른 곳에서 사용하고 있을 경우에는 이를 판단하여 적절한 조치가 가해 져야 하지만 이는 DB 서버<br />

내부에서 처리하는 것이므로 사용자는 이를 인식하지 못하는 사이에 처리가 된다. 따라서 전문적<br />

인 지식이 없는 사람도 쉽게 원하는 정보를 읽거나 쓸 수 있도록 구성되어 있다. 현재 DB 서버를<br />

구성하는데 가장 많이 사용하고 있는 소프트웨어는 Oracle 사의 Oracle DB 와 InterBase 사의<br />

InterBase 등이 있다.<br />

그림 2.1에서 Manager는 전체적인 CTI 콜센터 시스템의 관리를 담당한다. Manager 는 상담원의<br />

현재 회선 상태를 감지할 수 있으며, 상담원이 상담 할 수 없는 내용에 대해 상담원을 대신하여 고<br />

객하고 상담을 할 수 있다. 이때 고객의 호와 지금까지 상담해 왔던 데이터는 Manager에게 부여<br />

된 기능에 의해 쉽게 전환된다. 그리고, DB 서버에 있는 데이터의 관리도 Manager의 역할이다.<br />

그림 2.1에서 Agent는 상담원을 의미한다. 상담원은 고객의 요구에 의해 고객과 연결되며 고객과<br />

상담하는 일을 담당한다. 상담원은 상담 시 필요에 따라 DB 서버와 접속하여 고객의 데이터를 상<br />

담에 이용할 수 있다. 하지만 상담원 임의로 고객의 데이터에는 접속하지 못하도록 되어 있다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 14 of 74<br />

2009-10-08<br />

지금까지 보아 왔던 구성을 다음의 그림 2.3. 에서 정리하였다.<br />

제 2 절 일반적인 동작<br />

CTI 콜센터의 동작은 크게 인바운드 동작과 아웃바운드 동작으로 구분된다. 인바운드 동작은 외<br />

부에서 걸려온 전화선에 대한 처리이며 아웃바운드 동작은 콜센터에서 외부로 전화를 거는 동작<br />

이다. 우선 인바운드 동작은 살펴보면 다음과 같다.<br />

우선 1 전화선에서 돌아온 음성은 교환기로 들어가게 된다. 여기에서 ARS에 연결이 된다. 2<br />

ARS는 전화상담 DATA를 종목별로 분류하여 데이터 베이스화 하기 쉽게 하여 준다. 고객이 ARS<br />

상에서 상담원과의 전화통화를 원하면 CTI 서버가 교환기를 통제하여 원하는 상담원에게 원하는<br />

회선을 빠르게 연결하는 작업을 한다. 3 또 ARS를 통해 알아낸 고객의 DATA 상담원의 PC(CTI<br />

Client)에 표시한다. 4 이때 나타나는 고객의 DATA 는 전화를 착신된 순간부터 CTI서버가 추적<br />

관리하고 있는 것이다. 5 따라서 상담원은 PC 에 표시된 고객정보를 보면서 고객과 상담할 수 있<br />

다. 또 고객이 ARS 상에서 정보를 조회할 경우에는 DATABASE에서 바로 정보를 가져와서 사용<br />

하게 된다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 15 of 74<br />

2009-10-08<br />

만약 ARS를 사용하지 않고 고객과 상담원이 직접 연결도리 경우에는 CTI 서버는 우선 고객에 대<br />

한 일반적인 정보만을 상담원에게 공급하여 준다. 그리고 상담원이 고객과 상담하는 중에 필요한<br />

정보를 DATABASE에서 불러오도록 되어 있다.<br />

그리고 상담원을 구성할 때, 그룹을 지워서 구성하고 각 그룹에는 한 사람 이상의 책임자를 둔다.<br />

이렇게 해서 상담 시 문제가 생겼을 때 상담원을 책임자 쪽으로 고객상담을 전환하면 CTI 서버는<br />

고객의 회선을 책임자 쪽으로 연결하고 또 지금까지의 상담 내용 및 고객 정보를 책임자 쪽으로<br />

전달한다67.<br />

아웃바운드는 다음과 같다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 16 of 74<br />

2009-10-08<br />

우선 고객에게 상담자나 책임자가 전화를 걸어야 할 일이 생기면 1우선 대상자를 선정하고 이를<br />

CTI서버로 보내며 아웃바운드를 책임질 상담원 그룹을 정한다. 2CTI 서버는 고객 명단을 검색하<br />

여 ARS를 통해 고객에게 자동으로 전화를 건다. 고객이 전화를 받았을 때에는 3CTI 서버는 DB<br />

서버에게 고객에 대한 데이터를 요구하게 되며, 4요구를 받은 5 바로 상담원에게 연결이 되어<br />

상담이 진행되거나 의도하는 일이 이루어지도록 한다. 이때 CTI 서버는 상담원 중에 비어있는 상<br />

담원이 있는지를 항상 Check 하여 전화가 연결된 회선을 비어있는 상담원에게 연결하고 그 고객<br />

에 대한 DATA를 상담원의 PC 에 전달한다. 만약 비어있는 상담원이 없으면 6CTI 서버는 전화<br />

걸기를 중단한다. 그리고 상담원은 상담이 종료되면 종료 메뉴를 Click 함으로써 서버에게 다시<br />

전화 걸기를 하라는 신호를 보내게 된다. 이렇게 7상담이 진행 중에도 인바운드 동작 때와 마찬<br />

가지로 책임자가 8상담원의 회선을 관리하면서, 상담원이 처리하기 힘든 내용에 대해서는 9책<br />

임자가 호와 데이터를 가져와서 처리한다.<br />

제 3 절 적용 예<br />

지금까지 CTI 콜센터는 어떻게 구성되었으며 어떻게 운영되는 가를 봐왔다. 이번 절에서는 이렇<br />

게 구축된 CTI 콜센터가 어떤 곳에서 어떻게 이용되고 있는지 그 적용 예에 대하여 살펴보도록 한<br />

다.<br />

우선 CTI 콜센터가 적용되어 있는 곳으로는 은행, 증권사, 보험사, 할부금융 등을 들 수 있다. 여기<br />

에서는 CTI 콜센터를 이용하여 Tele-Marketing을 하거나 기존고객의 유치 및 신규고객의 확보<br />

차원에서 고객관리에 응용하여 사용하고 있다. 또 현금 자동이체, 잔액 조회 등과 같은 홈뱅킹 서<br />

비스에도 CTI 콜센터가 유용하게 사용되고 있다. 또 고객이 보유하고 있는 채권의 관리에도 쉽게<br />

적용하여 사용하고 있으며, 우수한 고객에게 새로운 증권의 정보를 제공한다던가 또는 고객의 요<br />

구에 의해 현재의 증권정보를 제공하는 서비스 역시 현재 CTI 콜센터 시스템을 통하여 제공되고<br />

있다. 이외에 보험상품의 안내, 계약자 접수 등 예전에는 사람이 일일이 손으로 했던 작업을 CTI<br />

콜센터 시스템으로 대치함으로써 많은 인력 절감의 효과와 업무 효율의 극대화를 꾀할 수 있었다.<br />

다음으로 CTI 콜센터가 적용되어 있는 예는 유통기관 이나 신용카드회사에서 찾아 볼 수 있다. 이<br />

곳에서는 CTI 콜센터 시스템을 이용하여 새로운 상품이나 기존에 나와있는 상품에 대한 통신판매


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 17 of 74<br />

2009-10-08<br />

및 계약자 접수를 하고 있다. 그리고 상품의 대금이나 카드의 사용료를 연체하는 연체자에 대한<br />

관리도 CTI 콜센터 시스템을 이용하여 쉽게 처리하고 있다.<br />

이렇게 연체자를 관리<br />

함으로써 연체자에게 연체사실의 통보가 쉬워 졌을 뿐만 아니라, 기존의 연체자가 다른 서비스를<br />

받거나 물건을 구입하려고 할 때 미리 감지해서 조치를 취할 수 있기 때문에 연체자가 발생함으로<br />

써 생기는 업무상의 손실을 최소화 할 수 있는 장점이 있다. 그리고, 기존의 고객에 대해 보다 나은<br />

서비스를 제공함으로써 새로운 고객을 확보할 수 있는 토대를 마련하기 위해 CTI 콜센터 서비스<br />

를 이용하여 고객의 생일에 축하 메시지를 보내는 Happy Call 서비스를 제공하거나, 고객 불만의<br />

접수나 분실 또는 배달이 안된 상황에 대한 접수를 고객이 직접 방문하지 않고도 할 수 있도록 하<br />

는 서비스를 제공하거나, 우수고객에 대해 각종 행사를 안내하거나 새로운 상품을 우선 소개하는<br />

등의 서비스를 제공하기도 한다.<br />

또 CTI 콜센터 시스템은 통신 사업자에게도 적용되어 서비스를 제공하고 있다. 통신 사업자들은<br />

통신 단말기나 기타 장비에 대한 A/S 의 접수에 CTI 콜센터 시스템을 적용하여 사용하고 있다. 또<br />

고객이 통화시간, 통화내역, 통신비 등의 자신의 데이터를 조회할 때에도 ARS 기능을 첨가한 CTI<br />

콜센터 시스템을 이용하여 쉽게 서비스를 공급하고 있다. 뿐만 아니라 통신 서비스에 대한 고객의<br />

만족도 등사용하고 있는 고객의 반응 및 성향을 조사하는 데에도 아주 유용하게 사용되고 있다.<br />

그리고 고객에게 좀더 좋은 고품질의 서비스를 제공한다는 차원에서 CTI 콜센터를 이용하여 음성<br />

사서함을 구축해 놓거나 FAX 사서함을 구축해 놓기도 했다. 그리고 수신자부담의 800 서비스를<br />

구축하여 좀더 많은 고객을 CTI 콜센터를 이용하여 관리할 수 있는 기반을 마련하기도 하였다. 이<br />

외에도 이동통신을 위한 콜센터 구축에도 CTI 콜센터 시스템이 적용되고 있다.<br />

그 외에 CTI 콜센터 시스템은 의료기관, 언론사, 방송사 및 여론조사 기관, 정부 및 지방 자치 단<br />

체 등에서 그 적용 예를 찾아 볼 수 있다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 18 of 74<br />

2009-10-08<br />

의료기관에서는 CTI 콜센터 시스템을 이용하여 환자에게 보다 편리한 서비스를 제공하고 있다.<br />

환자들에게 현재 의료기관에서 어떤 진료를 하고 있으며 진료비는 얼마인지 등에 대한 진료 내에<br />

도 CTI 콜센터 서비스가 사용되고 있으며, 신생아, 어린이나 노인 등 특성 환자에게 예방주사에<br />

대한 접종 안내도 하고 있다. 뿐만 아니라 통원 치료자들이 약을 타는 시간을 줄이기 위해 처방을<br />

CTI 콜센터 시스템을 이용하여 안내 해 주기도 한다. 그리고 약을 어떻게 복용하거나 사용하여야<br />

하는지에 대한 정보도 제공해 준다. 그외에 환자들의 진료시간을 예약하거나 응급환자에 대한 야<br />

간진료나 응급진료의 접수도 CTI 콜센터 시스템을 이용하여 손쉽게 처리하고 있다.<br />

언론사, 방송사 및 여론조사 기관에서는 CTI 콜 센터 시스템을 이용하여 여론조사 및 통계를 손쉽<br />

게 처리하고 있다. 또 시청률 조사에도 적용하고 있으며, 기존의 사람이 하는 방식에 비해 높을 업<br />

무 효율을 얻고 있다. 그리고 선거운동에 편리하게 사용되고 있으며 부조리 고발에도 익명성을 이<br />

용하여 사용되고 있다. 뿐만 아니라 주문형 신문이나 주문형 방송 등 좀더 나은 서비스의 제공에<br />

CTI 콜센터 시스템은 아주 유용하게 사용되고 있으며, 기타 기부금 모집 등과 같은 서비스에도 적<br />

용되고 있다.<br />

정부 및 지방 자치단체에서는 아직 다른 기관에서처럼 활발하게 적용되고 있지는 않다. 하지만 점<br />

차 그 적용 및 서비스의 내용이 확대되어 가고 있다. 이 곳에서는 민원처리 결과 통보, 세무, 법규<br />

등의 행정업무 상담 등에 주로 사용되고 있다.<br />

이처럼 국내에서도 점점 적용의 예가 늘어나고 있으며 이를 통해 양질의 서비스를 제공할 수 있는<br />

상황에서 CTI 콜센터 시스템의 국산화는 시급한 당면과제라고 하겠다.<br />

제 3 장 CTI 통합 보드의 구현<br />

본 연구에서 실질적으로 구현한 CTI 통합 보드는 아래의 그림 3.1과 같이 PC와 연결되는 PCI<br />

interface 모듈부분, DSP(Digital Signal Processor) 와 FPGA (Field Programmable Gate<br />

Array)로 구성된 digital 모듈부분, 그리고 외선 과 내선의 연결부분 및 과전압, 과전류 보호회로<br />

와 CODEC으로 구성되어 있는 analog 모듈부부의 세 부분으로 구성된다.<br />

이렇게 제작한 보드는 PC에 직접 장착하도록 구현되었다. 그리고 내선과 외선은 직접 보드에 연<br />

결할 수 있도록 하였으며, 내부에서 따로 교환기가 필요하지 않는다는 장점이 있다. 따라서 기존의<br />

소규모 사업장에서 구축할 수 없었던 콜센터도 적은 비용으로 구축 할 수 있을 뿐만 아니라 구축<br />

에 필요한 공간이 협소하여도 지장이 없다는 장점을 가지고 있다. 이와 함께, 확장성에도 중점을


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 19 of 74<br />

2009-10-08<br />

두어 최대 외선 64채널, 내선 32채널(PC 1대당)까지 확장할 수 있으므로 대규모 사업장에도 적용<br />

가능하다.<br />

제 1 절 설계방법<br />

CTI 통합 보드는 기본적으로 CTI 서버에 장착되도록 설계가 되었다. 따라서 설계 시에 동작의 기<br />

본적인 부품의 동작뿐만 아니라 보드의 크기 및 서버에 장착할 수 있는 형태가 되도록 설계를 하<br />

였다. 또 하드웨어적인 디버깅의 용의성을 위하여 보드를 세부분으로 나누어서 구현하였으며 이<br />

에 따라 모듈별로 서로간에 접속에 주의를 기울여 설계하였다.<br />

보드는 전체적인 제어에는 FPGA를 사용하였다. 이는 그 동작을 coding 하기 어려울 뿐만 아니라<br />

부품간의 동작 시간을 맞추는데 많은 어려움이 있기는 하지만 여러 채널이 신호를 동시에 빠른 시<br />

간 안에 제어할 수 있어야 하기 때문에 불가피하게 선택되었으며 이를 위하여 Altera 사의<br />

10K20RC240-3 칩을 사용하였다.<br />

그리고 PC와의 연결에는 PCI(Peripheral Component Interconnect) interface 방식을 선택하였<br />

다. PCI 방식은 빠른 데이터의 전송 및 처리가 용이하므로 본 연구에서 구현한 보드와 같이 다채<br />

널의 데이터를 실시간으로 처리해야 하는 시스템에 적합하다. 이를 위해서 PLX사의 PCI9052 브<br />

릿지칩을 사용하였고 이를 위해 NT server 용 device drive를 직접 제작하였다. 그리고 본 연구<br />

에서는 이처럼 하드웨어의 설계뿐만 아니라 보드의 활용도를 높이기 위해 PC상의 application 및<br />

보드운용 library 도 직접 제작하여 어느 환경에서라도 적용 가능하도록 그 적응성을 높이는데 주<br />

력하였다. 또 콜센터 구축에 필요한 기본적인 application도 제작하여 콜센터 구축을 용이하도록<br />

하였다.<br />

세부적인 구현 및 설계에 대한 설명은 이후의 장에서 자세히 다루도록 하겠다. 현재 세 부분으로<br />

나누어져서 운용되도록 구성되어 있지만 차후 이를 하나로 통합하여 운용하도록 할 계획에 있다.<br />

제 2 절 구동 및 운영<br />

CTI 통합 보드의 동작은 크게 인바운드 동작과 아웃바운드 동작으로 나뉘어 진다. 인바운드 동작<br />

은 외부에서 전화가 걸려 왔을 때의 동작을 의미하며 아웃바운드 동작은 외부로 전화를 걸 때에<br />

동작을 의미한다.<br />

인바운드 상태에서 CTI 통합 보드는 다음과 같이 동작을 한다. 우선 외부에서 전화가 걸려 오면<br />

CTI 통합 보드는 이를 감지한 후 이를 CTI 서버에 알린다. CTI 서버에서는 CTI 통합보드에게 회<br />

선을 연결하라는 명령을 주게 된다. 그러면 CTI 통합보드는 회선을 연결하고 서버로부터 전하를<br />

건 고객에게 안내할 음성 테이블을 받아 회선에 보내준다. 이와 함께 회선에서 들어오는 신호를<br />

이용하여 DTMF(Dual-Tone MultiFrequency) Tone을 감지하여 그 결과를 다시 서버에 알린다.<br />

서버에서는 DTMF Tone을 감지한 결과가 들어오면 다시 그 결과에 맞는 서비스를 제공하도록 보<br />

드에 명령하게 한다.<br />

여기서 제공할 수 있는 서비스는 ARS 기능과 상담원 연결기능으로 나누어 질 수 있다. 고객이<br />

ARS 기능을 선택하였으면, 서버는 고객의 비밀번호 개념의 ID를 물어보게 된다. 고객이 정상적인<br />

입력을 하면, 보드에서는 이를 서버에 알려주고 서버에서는 이 번호에 알맞은 데이터를 가지고 고<br />

객이 원하는 서비스를 보드를 이용하여 제공한다. 만약 고객이 상담원과의 상담을 원할 경우에는<br />

서버는 보드에 연결되어 있는 상담원의 상태를 먼저 살피게 된다. 상담원의 회선이 전부 통화중일<br />

경우에는 서버는 연결을 대기하도록 보드에 명령을 한다. 보드는 다시 서버로부터 연결에 대한 안<br />

내를 음성으로 출력해 준다. 상담원의 회선에 여유가 생기면 서버는 함께 우선 대기하고 있는 회<br />

선부터 상담원에게 연결하라는 명령을 내린다. 이와 함께 서버는 상담원의 클라이언트 PC로 지금<br />

까지 가지고 있는 고객에 대한 데이터를 넘겨 준다. 만일 지금 까지의 데이터가 없을 경우에는 상<br />

담원이 클라이언트 PC에 고객의 데이터를 입력함으로써 고객의 데이터를 상담원에게 연결한다.<br />

보드에서는 회선을 연


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 20 of 74<br />

2009-10-08<br />

결하라는 명령에 대해서 자체적으로 교환기 동작을 한다. 즉 서버에서 지정하는 두 회선을 연결하<br />

였다.<br />

그리고 위의 모든 동작과 동시에 보드는 항상 고객의 전화선이 끊어졌는지를 확인한다. 만일 끊어<br />

져 있다면, 즉 고객이 전화를 끊으면 보드도 그 회선에 대한 모든 연결 및 동작을 초기화 시키며<br />

서버에도 통보한다. 그리고 다음의 회선 연결을 기다리게된다.<br />

이와 같은 일련의 모든 인바운드 동작을 그림 3.2에 정리하였다.<br />

아웃바운드 상태에서 CTI 통합 보드의 동작은 다음과 같다. 우선 책임자는 아웃바운드 동작을 할<br />

대상 고객 리스트를 작성하여 CTI 서버에 입력한다. 그러면 서버는 DB 서버에서 그 고객에 대한<br />

전화번호를 가져와서 리스트화 한다. 그리고 보드에 전화를 걸도록 명령한다. 보드에서는 서버에<br />

서 명령한 전화번호로 전화를 걸고 회선의 상태가 통화 중인지 또는 신호가 가는 중인지 하는<br />

CPT(Call Process Tone)을 검출하여 서버에게 알린다. 서버는 보드에서 알려준 회선의 상태를<br />

가지고 다음의 동작을 결정한다.<br />

우선 회선의 상태가 통화 중 상태이면 그 고객에 대한 정보를 콜백(Call back)한 후 다음의 리스트<br />

상의 고객에게 전화를 걸도록 보드에 명령한다. 만약 회선이 신호가 가는 중이라면 상담원에게 회<br />

선을 연결하여 고객과 상담을 하도록 한다. 그리고 다시 상담원들의 회선을 점검하여 아웃바운드<br />

동작 시에 상담을 할 수 있는 상담원의 회선이 남아 있는지를 점검한다. 만약 남아 있으면 다시 다<br />

음의 고객에게 전화를 걸도록 보드에 명령한다. 그러나 남아있지 않으면 상당할 수 있는 회선이<br />

생길 때까지 대기하게 된다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 21 of 74<br />

2009-10-08<br />

보드에서 서버로부터 회선을 연결하라는 명령이 전달되면 외부 회선과 상담원의 회선을 연결시키<br />

며 현재 상담원의 회선이 사용 중이라는 것을 서버에 알린다. 그리고 회선의 상태를 check하여 통<br />

화가 끝나면 이를 서버에 알려서 다음의 아웃바운드 동작에 사용할 수 있도록 한다.<br />

그리고 지정한 아웃바운드 동작 고객 리스트 상의 모든 고객에게 전화를 다 걸은 경우, 즉 모든 아<br />

웃바운드 동작이 완료되었을 경우에는 아웃바운드 동작을 종료한다.<br />

이러한 일련의 모든 아웃바운드 동작의 과정은 그림 3.3에서 정리하였다.<br />

지금까지 설명한 바와 같이 본 연구에서 구현한 CTI통합 보드는 자체적으로 개발한 CTI서버 프로<br />

그램과 DB 서버 프로그램에 의해 연동되어 기존의 외국의 제품에 버금가는 동작을 함을 볼 수 있<br />

었다. 또한, PC기반의 하드웨어 동작이므로 필요에 따라 원하는 기능을 추가하거나 또는 필요 없<br />

는 기능을 삭제하기가 용이하여 CTI 콜센터 시스템 구성 시 빠른 업그레이드 및 유지보수를 가능<br />

하게 해준다고 하겠다.<br />

다음 장에서부터는 이러한 CTI 통합 보드를 구현하는데 사용된 세부기술 및 그 구현 예에 대하여<br />

설명하도록 하겠다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 22 of 74<br />

2009-10-08<br />

제 4 장 PCI Interface 모듈<br />

이 부분은 PTI 통합 보드와 PTI 서버간에 interface를 담당하는 부분이다. 일반적으로 현재<br />

PC 와 interface card 간에 많이 사용되고 있는 interface 방식은 PCI(Peripheral Component<br />

Interface) 방식과 ISA(Industry Standard Architecture)방식이 있으며, 근래에 들어 USB<br />

(Universal Serial Bus), Compac-PCI방식들도 그 사용 빈도가 높아지고 있다. 이장에서는 이들<br />

interface방식들을 비교 분석하고 본 연구에서 사용한 PCI interface방식의 구현에 대하여 설명하<br />

도록 하겠다.<br />

제 1 절 Interface 방식의 비교<br />

현재 PC 와 interface를 하기 위해 사용되고 있는 interface 방식에는 여러 가지 방식이 존재한다.<br />

이들은 구현하고자 하는 하드웨어와 PC 사이에서 서로의 필요에 따라 연결되어 진다. 따라서 구<br />

현하는 하드웨어의 성능 및 PC 와 하드웨어의 데이터의 양, 전송속도 등에 따라 적절한 interface<br />

방식을 선택하는 것은 중요한 일이라고 하겠다.<br />

ISA 방식은 1984년에 개발되어 지금까지 널리 알려져 많은 하드웨어에서 사용되고 있는 방식으<br />

로 많은 기종에서 사용되고 있으며, 표준이 제정되어 있어서 그 구현이 용이한 interface 방식이<br />

다. 하지만 Data Width가 16bit 이고 데이터간의 전송속도는 8.3MHz이므로 고속으로 많은 양의<br />

데이터를 사용하는 환경에는 적합하지 않다는 단점이 있다.<br />

이를 보완하기 위해 나온 방식이 ESIA(Extended ISA) 방식이다. 이는 32bit 의 Data Width를 가<br />

지면서 ISA 방식과 완벽한 호환을 이루는 방식이다. 따라서 기존의 ISA 방식처럼 구현하기에 쉽<br />

고, 또 기존의 ISA 방식에 비해 한번에 전송될 수 있는 데이터의 양도 크기 때문에 기존의 ISA 방<br />

식보다 약 2배정도의 데이터 전송속도를 가질 수 있다. 하지만 아직까지는 그렇게 많이 사용되고<br />

있지는 않다.<br />

이에 본 연구에서는 현재 가장 주목을 받고 있는 PCI 버스 시스템을 사용하여 PC와 interface를<br />

구현하였다. PCI interface 방식은 1992년 인텔사에 의해 개발되어 현재까지 VGA Card나 기타<br />

빠른 시간 안에 많은 양의 데이터를 전송하고자 하는 곳에 주로 사용되고 있다. 하지만 기존의<br />

ISA방식과는 호환성이 전혀 없다. 그렇지만 주변장치의 확장에 있어서는 완전한 호환성을 보장하<br />

고 있어 차세대 버스 방식으로 주목받고 있다.<br />

PCI 방식은 PCI 브리지라는 컨트롤 장치를 통해 CPU(Central Processing Unit)와 데이터를 주<br />

고받는 방식이다. 기존의 ISA 방식에서는 중간에 브리지 장치 없이 interface 장치가 로컬버스를<br />

통하여 CPU에 직접 연결되고 버스에 대한 제어를 CPU 에 많은 부하가 걸리게 되고, 또 이에 따라<br />

CPU 자체의 처리속도가 저하되는 문제를 가지고 있었다. 하지만 PCI 방식에서는 CPU에 직접 부<br />

담을 주지 않도록 CPU 와 PCI 버스 사이에 PCI 브리지를 설치하여 PCI 버스는 CPU와 별개로 동<br />

작하도록 함으로써 확장 및 속도면에서 있어서 더 유리한 방식이다. PCI interface 방식은 최대<br />

132MB/sec의 전송속도를 가지며, data width 는 32 bit 이다.<br />

이외에도 현재 주목을 받고 있는 interface 방식에는 USB 방식이 있다. USB interface 방식은 7<br />

개의 core 회사들(컴팩, DEC, IBM, 인텔, 마이크로소프트, NEC, Nortel)에 의해 개발된 주변 버<br />

스규격이다. 이것은 호스트 개인컴퓨터에 다중의 주변장치(127 개까지)를 쉽게 통합시키기 위한<br />

개념으로 확장되었다. USB는 master/slave 개념과 호스트와 각 주변장치간의 직접적인 연결이나<br />

허브를 통한 연결 하에서 적용한다. USB 는 시리얼버스형태이지 기본적인 RS-232 시리얼환경과<br />

혼동되는 것이 아니라는 것을 이해하는 것이 중요하다. 거기다가 USB는 PCI 버스를 대체하는 것<br />

이 아니라 같이 연동되는 것이다.<br />

이 기술의 중요한 특색은 컴퓨터의 커버를 여는 수고를 덜어주는 진정한 plug & play 개념을 사용<br />

하는 호스트PC에 주변장치를 쉽게 연결하거나 구성하는 것이다. 모든 연결되는 주변 장치들은 호<br />

스트상의 직접적인 USB포트나 USB허브 장치를 통해서 외부적으로 연결될 것이다. USB는 대분<br />

분의 low-end 적용 품을 만족시키기 위하여 12Mbps의 Full speed와 1.5Mbps의 low speed를<br />

가지고 있다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 23 of 74<br />

2009-10-08<br />

이렇게 설명한 여러 가지 방법 중에서 본 연구에서는 PCI 방식을 사용하였다. 본 연구의 결과인<br />

CTI 통합 보드 및 CTI 콜센터 시스템은 다채널의 데이터를 실시간으로 PC에 전송해야 하며 PC<br />

에서부터 오는 데이터를 실시간으로 여러 채널에서 처리해 줘야 하기 때문에 많은 양의 데이터가<br />

빨리 전송 가능해야 한다. 따라서 여러 가지 interface방법 중 PCI 방식이 본 연구에 가장 적합하<br />

다고 하겠다.<br />

제 2 절 설계 및 구현<br />

본 연구에서는 PCI interface를 구현하기 위해 PCI 브리지로 PLX사의 PCI 9052를 사용하였다.<br />

PCI 9052는 최대 132MB/sec의 전송속도를 가진다. 8, 16, 32bit의 data width를 가질 수 있으<br />

며, 이중에서 8, 16bit는 쉽게 ISA방식으로 전환이 가능하다. 주요 특징으로는 우선 PCI 9052는<br />

PCI specification 2.1을 따르며, direct slave data transfer mode를 지원하고, Interrupt를 생성<br />

할 수 있으며, PCI clock과는 별도로 내부 local clock을 생성할 수 있다. 또, local 버스의 환경을<br />

programmable하게 지정할 수 있고, Read Ahead Mode를 지원하며, 별도의 bus driver없이 bus<br />

를 직접 drive할 수 있다. 그리고 serial EEPROM interface를 가지고 있어서 EEPROM을 이용하<br />

여 configuration information을 load할 수 있으며, big/little Endian byte swapping이 가능하며,<br />

read/write strobe delay 와 write cycle hole도 가능하다.<br />

그리고 local bus wait state, programmable prefetch counter를 가지고 있으며, delayed read<br />

mode를 가지고 있고, PCI read/write request time out timer도 사용할 수 있으며, ISA mode<br />

interface 도 on-board에서 지원한다.<br />

그리고 모든 데이터 및 제어 신호를 커넥터로 연결하여 본 연구에서 구현하는 CTI 통합 보드에서<br />

사용할 뿐만 아니라 이 후의 다른 연구에서도 PCI interface 방식에는 어떤 것이든지 사용할 수 있<br />

도록 범용으로 설계하였다.<br />

또한 하드웨어가 PC에서 동작할 수 있도록 디바이스 드라이버를 설계하였다. 특히 MS Windows<br />

N-T-Server기반의 PC에서는 plug & play를 지원하지 못하기 때문에 하드웨어의 연결상태 및<br />

Address 등을 PC에서 인식하기 위해서는 하드웨어에 맞는 디바이스 드라이버가 반드시 필요하<br />

다. 따라서 본 연구에서는 구현된 PCI interface 모듈에 맞는 디바이스 드라이버를 자체 제작하였<br />

다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 24 of 74<br />

2009-10-08<br />

디바이스 드라이버의 제작에는 MuMega 사의 Driver Studio 1.0을 사용하였다. 이를 이용하여<br />

PCI interface용 protocol을 정의하여 데이터의 송수신이 가능하게 했으며, 데이터의 수신방식을<br />

인터럽트 방식으로 정의하였다. 또 인터럽트 방식의 수신을 가능하게 하기 위해 스택을 정의하였<br />

다.<br />

이렇게 구성된 PCI interface 디바이스 드라이버를 PC에 인스톨하여 PC 상에서 하드웨어를 제어<br />

할 수 있는 기반을 만들었다.<br />

제 3 절 CPI protocol<br />

그림 4. 2. PCI Signal Interface<br />

PLX사의 PCI9052 브릿지 칩을 사용하여 PCI interface를 구성하면 그 신호의 연결은 그림 4.2와<br />

같다. 여기서 PCI 버스쪽은 PC와의 연결이며, Local 버스쪽은 다른 하드웨어와의 연결이다. 그리<br />

고 이 PCI9052 브릿지칩의 환경 설정은 Serial EEPROM을 사용하여 결정한다. 전원이 인가되면<br />

브릿지 칩은 Serial EEPROM에서 환경변수를 읽어와서 자신의 상태를 초기화한다. 예를 들어<br />

Local 쪽의 Address도 re-mapping하는 등의 동작을 하게 된다. 이가 이루어지면 PC쪽에서는 위<br />

에서 구현한 디바이스 드라이버를 이용하여 하드웨어 PCI 브릿지를 통하여 자유롭게 데이터를 송<br />

수신할 수 있게 된다.<br />

그림 4.2에서 보면 PCI9052에 ISA 버스가 연결되어 있는 것을 볼 수 있다. 이는 PCI interface를<br />

사용할 수 없는 환경에서 ISA interface로 On-board상에서 자유롭게 확장하여 사용할 수 있도록<br />

하기 위해 구현된 것이다.<br />

제 5 장 Digital 모듈


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 25 of 74<br />

2009-10-08<br />

Digital 모듈은 PCI interface 모듈과 analog 모듈의 중간부분에 위치하며 실질적으로 본 연구에<br />

서 구현된 CTI 통합 보드의 가장 핵심이 되는 부분이다. 전체적으로 볼 때 Digital 모듈은 FPGA<br />

(Field Programmable Gate Array) 와 DSP로 구성되어 있다. FPGA는 VHDL(Very High speed<br />

IC Description Language)를 이용하여 동작을 정의하여 사용하는 제어용 소자로써 본 연구에서<br />

는 전체적인 data 의 흐름을 제어하는 역할과 각 소자를 제어하는 역할을 담당하였다. 그리고<br />

DSP는 DTMF tone generate 및 DTMF detect, 그리고 음성신호의 modulation(μ-low PCM)을<br />

담당한다.<br />

다음의 그림 5.1은 본 연구에서 구현한 Digital 모듈이다.<br />

DSP는 ROM에 프로그램을 두고 이를 이용하여 구동하는 일종의 마이크로 프로세서라고 할 수 있<br />

다.<br />

본 연구에서는 FPGA를 위한 주변 회로 설계 및 동작을 위한 VHDL coding, DSP를 위한 주변 회<br />

로 설계와 프로그래밍, 기타 연결부 등을 구현하였다.<br />

제 1 절 FPGA 부분<br />

본 연구에서 사용된 FPGA는 Altera사의 EPF 10K20RC240-3이다. 이 칩에 자체적으로 코딩한<br />

VHDL 코드를 다운로드 함으로써 전체적인 제어가 이루러 지도록 하였다. 이를 사용함으로써 마<br />

으크로 컨트롤러를 사용할 때 보다 빠른 제어속도와 data 전송속도, 그리고 정확한 timing을 얻을<br />

수 있고, 또 면적을 적게 차지함으로 하나의 board로 제작할 수 있는 가능성이 생겼다.<br />

그리고, 12채널(외선8채널, 내선4채널)을 제어하기 위해서는 많은 I/O prot 가 필요하다. 따라서<br />

일반 범용 마이크로 컨트롤러를 사용하기에는 한계성이 따르며 사용할 수 있다 하더라도 기타 주<br />

변장치를 연결하여 사용해야 함으로 이에 따른 문제점을 발생시키고 또 차지하는 면적이 커지게<br />

된다. 이에 본 논문에서는 FPGA로 제어부를 구성하게 되었다. 다음의 그림 5.2는 실제 VHDL을<br />

사용하여 구현한 EPGA 내부의 block도이다.<br />

본 연구에서 사용한 Altera사의 10K20RC240-3에 대해 알아 보면 다음과 같다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 26 of 74<br />

2009-10-08<br />

내부적으로 VHDL을 통해 구현할 수 있는 일반적인 게이트를 20,000개 정도 가진다. 그리고 코딩<br />

의 방법에 따라 약 15,000에서 최대 63,000개 정도의 게이트를 사용할 수 있다. 그리고 1,152개<br />

의 logic element를 구현할 수 있으며, 144개의 logic array block을 가지고 있다. 또 6개의<br />

embedded array block, 12,288 bit 의 RAM, 1,344개의 flip-flop을 가지고 있다.<br />

그리고 본 연구에서 사용한 10K20RC240-3은 모두 240개의 핀을 가지며 이 중에서 파워에 사용<br />

되는 핀과 기타 FPGA의 동작에 사용되는 Config 용 핀을 제외한 최대 189개의 핀을 I/O 핀으로<br />

사용할 수 있다. 그리고 파워면에서는 대기 모드에서 1mA보다 적은 잔류가 흐르므로 전력 소모가<br />

작다. 그리고 동작 전압은 3.3V 또는 5V이다.<br />

FPGA의 동작에 사용되는 클럭은 16MHz를 사용하였다. 이는 전체적인 동작을 충분히 제어 할 수<br />

있는 속도 이다. 현재 동작에서는 analog 모듈에서의 속도가 전체의 속도를 제어한다. 그 중에서<br />

도 가장 정확히 확보되어야 하는 것은 analog 모듈에서의 음성 데이터 처리이다. 이때 주로 사용<br />

되고 있는 CODEC(COder & DECoder)은 초당 8000번 sampling한다. 따라서 채널 12채널의 데<br />

이터를 실시간으로 처리하기 위해서는 clock 속도가 최소한 9.6MHz이상이 나와야 한다. 이에 신<br />

뢰도를 높이기 위해 동작 clock을 16MHz로 구현하였다.<br />

또 10K20RC240-3은 그 동작을 소자에 연결되어 있는 Seral PROM을 이용하여 정의한다. 여기<br />

서 동작의 정의란 VHDL을 이용하여 작성한 코딩을 FPGA에 다운로드하는 것을 의미한다. 그러므<br />

로 한번 VHDL로 코딩한 EPGA의 동작은 계속적으로 유지되게 되는 것이다. 하지만 이 때 Serial<br />

PROM을 사용하므로 수정이 불가능하고, 따라서 디버깅이 어렵다. 이를 보완하기 위해서 본 연구<br />

에서는 Byte Blaster를 사용하여 FPGA의 동작을 정의하였다. Byte Blaster는 일종의 에뮬레이<br />

터로 serial PROM을 대신하여 FPGA의 동작을 정의해 줄 수 있는 장치이다. 이는 Altera사에서<br />

공급하는 프로그램을 통하여 사용할 수 있다. 이를 위해 회로에 Bute Blaster용 핀을 Serial<br />

PROM과 별도로 설계하여 선택하여 사용할 수 있도록 하였다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 27 of 74<br />

2009-10-08<br />

FPGA의 동작을 위한 VHDL 코딩 및 이를 FPGA에 다운로드하여 디버깅하는 작업은 Altera사의<br />

MAX+plus Ⅱ를 사용하였다. 이를 이용하여 VHDL 코딩을 하고 컴파일 한 후 Byte Blaster를 이<br />

용하여 동작을 정의하였다.<br />

이때 코딩은 각각의 블록을 코딩하고 이를 전체적으로 합치는 방식을 사용하였다. 이렇게 하면, 전<br />

체적으로 처음부터 코딩 할 때 보다 디버깅하기가 쉽다. 그리고 각각의 블록을 하나하나 분리하여<br />

시험 동작 시켜서 전체로 합치기 때문에 동작에 신뢰도를 얻을 수 있는 이점을 가지고 있다.<br />

또 MAX+plus Ⅱ는 자체적으로 시뮬레이션 기능을 가지고 있다. 이를 이용하여 각각의 블록마다<br />

logic 게이트의 동작을 미리 봄으로써 코딩 및 동작의 구현 이후에 걸리는 디버깅 시간을 최소화하<br />

였다. 그림 5.3은 본 연구에서 구현한 FPGA의 동작을 위하 VHDL 코eld을 컴파일 한 후 시뮬레이<br />

션 한 결과 중 일부이다.<br />

제 2 절 DSP 부분<br />

DSP는 Texas Instrument 사의 TMS320C31을 사용하였다. 본 연구에서 DSP는 DTMF tone<br />

generate 와 DTMF tone detect 및 음성신호의 modulation에 사용된다. 이를 PC에서 수행하도<br />

록 할 수 있지만 application을 구동해야 하는 PC의 CPU에는 부담이 된다. 따라서 DTMF tone<br />

과 modulation은 보다 효과적인 프로세서인 DSP에 맡김으로써 실시간 처리에 보다 효율적이며<br />

PC상의 application을 구동시키는데 있어서 효과적이라고 하겠다.<br />

DTMF tome 이란 전화기의 키 패드를 누를 때 발생하는 음이다. 이는 서로 다른 두 개의 주파수<br />

를 이용하여 발생된다. 이를 교환기에서 감지하여 원하는 전화번호로 연결을 하는데 사용하는 신<br />

호이다. 본 연구에서도 고객이 선택하였는지를 알 수 있는 방법은 고객의 전화기에서 발생하는<br />

DTMF tone을 감지하는 방법 이외에는 없다. 따라서 DSP에서 들어온 신호를 가지고 DTMF tone<br />

을 감지하며, 어떤 DTMF tone이 발생하였을 때 이를 Decoding 해서 시스템에 알려 주게 되며,<br />

시스템에서는 이를 이용하여 고객이 원하는 서비스를 제공하게 되는 것이다. 다음의 표 1은 일반<br />

적으로 우리 나라 DTMF tone을 생성할 때 사용되는 주파수와 그에 따른 키 번호이다.<br />

표 1. DTMF tone Generate Frequency<br />

1209Hz 1336Hz 1477Hz 1633Hz


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 28 of 74<br />

2009-10-08<br />

697Hz 1 2 3 A<br />

770Hz 4 5 6 B<br />

852Hz 7 8 9 C<br />

941Hz * 0 # D<br />

예) 1번 Key : 697 Hz + 1209 Hz<br />

그리고 표 1에서 있는 A, B, C, D는 일반적인 전하기에서는 사용되지 않는 Key 이다.<br />

본 연구에서 사용한 DSP 인 Texas Instrument 사의 TMS320C31에 대하여는 아래에 자세히 설<br />

명하였다.<br />

1. 일반적인 DSP 칩의 구조<br />

DSP(digital sigand processor) 칩은 아날로그신호를 디지털신호로 변환하여 실시간으로 고속처<br />

리 하는 전용 프로세서로서 80년 초에 등장하기 시작했다. DSP칩 출현 이전의 디지털신호처리분<br />

야 중 실행시간을 중요시한 응용에서는 비트 슬라이스와 하드웨어 승산기를 사용하는 빌딩블록방<br />

식이 주류였다. 또 한편으로는 개발이 용이하다는 이유로 범용 컴퓨터나 범용 마이크로프로세서<br />

가 사용되어 왔다.<br />

그후 발표된 DSP 칩은 그 두 가지 이점을 융합시킨 신호처리 용 프로세서이며, 고정소수점 형과<br />

부동소수점 형 두 종류가 있다. 먼저 DSP 칩의 기본 블록에 대해 알아본다. 그림 5.4. 에서 프로그<br />

램 시퀸서 (program sequencer) 는 실행되어질 인스트럭션의 주소를 발생시킨다. 프로그램메모<br />

리 (program memory)는 프로그램 인스트럭션의 주소를 저장하고, 인스트럭션 디코더<br />

(instruction decoder)는 인스트럭션을 실행시키는 제어신호를 발생시키며, 데이터메모리 (deta


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 29 of 74<br />

2009-10-08<br />

memory)는 연산 된 데이터나 연산 중 중간결과를 저장한다. 계수메모리 (coefficient memory)는<br />

FFT (fast Fourier transform)의 sine 과 cosine 테이블과 같이 고정된 상수를 저장하는 곳이다.<br />

어드레스 계산장치 (address computation unit)는 인스트럭션 디코더에서 발생된 제어신호에 의<br />

해 오퍼랜드의 주소를 계산한다. 프로그램 시퀀서, 인스트럭션 디코더, 그리고 어드레스 계산장치<br />

는 하나로 합쳐서 제어장치 (control unit)라 부른다. 데이터메모리와 계수메모리는 메모장치<br />

(memory unit)라 부른다.<br />

곱셈기 (multiplier)는 DSP 칩에서는 병렬 공셈기를 사용하며, 연산논리장치 (arithmetic logic<br />

unit)는 뎃셈, 뺄셈, 시프팅과 여러 논리 함수를 실행한다. 범용 레지스터 (general purpose<br />

register)는 일시적으로 사용되는 데이터를 보관하며 데이터버스 및 다른 기본적 블록들과 연결되<br />

어 있다. 가장 간단한 경우에는 어큐뮬레이터 (accumulator) 하나로 구성되어 진다. 그리고 곱셈<br />

기, 연산논리장치, 그리고 범용 레지스터는 연산 장치 (arithmetic unit)을 구성한다. DSP라 해도<br />

특수한 프로세서가 아니라. 기본적으로 고속의 곱셈기를 가진 싱글 칩의 마이크로컴퓨터이다. 단<br />

디지털신호처리를 고속으로 실행할 수 있는 아키텍처로 되어 있는데, 버스구조는 프로그램버스와<br />

데이터버스를 분리하는 이른바 하바드 아키텍처를 채용하고 있다. 이에 따라 명령의 패치(fetch)<br />

와 실행을 병행하여 처리할 수 있게 되어 고속의 파이프라인화가 가능하게 되어 있다. 그리하여<br />

디지털신호처리의 중심을 차지하는 디지털필터 등의 실행에 나타나는 디지털신호처리의 중심을<br />

차지하는 디지털필터 등의 실행에 나타나는 적화 ( 積 和 : Sum of Products) 연산을 높은 효율로<br />

계산할 수 있다. DSP 칩은 다음가 같은 기본적인 특징을 가지고 있다.<br />

1 고속의 하드웨어 곱셈기를 내장.<br />

2 프로세서 내에 프로그램/데이터용의 ROM, RAM을 실장.<br />

3 명령은 마이크로 프로그램적이며, 1 명령으로 복수처리가 가능.<br />

4 각 명령 실행시간은 고속이며, 또한 1 머신 사이클로 실행.<br />

5 복수의 내부버스를 사용하여 고속 파이프라인 제어 및 다중 오퍼레이션이 가능<br />

6 어큐뮬레이터, ALU 의 비트 폭을 크게 하여 연산의 고정확도를 실현.<br />

7 아날로그 인터페이스를 위한 입출력 기능을 내장.<br />

그림 5.5는 일반적인 간단한 DSP 칩의 내부구조를 나타내고 있다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 30 of 74<br />

2009-10-08<br />

2. TMS320C31 칩의 특성<br />

TMS320C31 는 TI (TEXAS INSTRUMENTS)사의 TMS320 시리즈의 상위기종으로 종래의<br />

TMS320 시리즈와 상호호환성을 유지하며, 새로운 하드웨어 구성에 의해 60ns 의 사이클시간으<br />

로 32/40 비트 정확도의 부동소수점연산을 최대 16.7MIPS 의 연산속도로 시행할 수 있도록 되어<br />

있다. 또한 칩은 1μm CMOS 기술에 의해 약 60 만개의 트랜지스터를 집적하고 있다.<br />

TMS320C31 의 내부 아키텍처는 종래의 TMS320 시리즈의 DSP 와는 달리, 개량형 하바드 아키<br />

텍처를 채용하고, 복수의 버스 구성을 채용하고 있다. 특히 DMA, 페리페럴(peripheral)은 각각 전<br />

용의 버스가 준비되어 있다. 이와 같은 복수의 버스에 의해 고도의 병렬처리를 가능케 하고 있다.<br />

각각의 부분에 대해 설명한다.<br />

먼저 CPU 부분을 설명하면, TMS320C31 의 CPU 부분은 범용 레지스터 방식의 아키텍처를 채용<br />

하고 있으며, 곱셈기, ALU, 보조 레지스터 연산 유닛, 28개의 CPU 레지스터 등을 내장하고 있다.<br />

28개의 레지스터는 8개의 32비트 보조 레지스터 (auxiliary register), 8개의 40 비트 레지스터,<br />

스택포인터 (stack pointer), 프로그램카운터 (program counter) 등등이다.<br />

두 번째로 메모리 구성을 보면, TMS320C31 은 데이터 RAM 및 캐시 메모리를 내장하고 있으며,<br />

또한 외부에 확장메모리를 접속할 수 있고, 전체적으로 16M×32 비트의 메모리 공간이 있다.<br />

세 번째로 페리페럴을 보면, 페리페럴 유닛은 메모리 맵드 페리페럴 레지스터 (memory mapped<br />

peripheral register)에 의해 제어되며, 24 비트의 어드레스, 32 비트의 데이터버스로 구성되는<br />

페리페럴 버스를 통하여 제어할 수 있다. 페리페럴 유닛으로 2 채널의 타이머와 1채널의 시리얼<br />

포트가 있다.<br />

네 번째로 DMA 을 보면, TMS320C31 은 온 칩 (on chip)의 DMA 컨트롤러를 가지고 있으며,<br />

CPU 부의 연산처리를 중단하지 않고 메모리공간상의 어떤 어드레스로도 읽고 쓰기가 가능하다.<br />

즉 CPU 부를 I/O 처리에서 개방할 수 있다. 또, 이 기능으로 외부의 저속메모리나 페리페럴 (A/D<br />

컨버터, 시리얼 포트 등)과 CPU 에 부담을 주지 않고 인터페이스 할 수 있다. 이 DMA 컨트롤러에


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 31 of 74<br />

2009-10-08<br />

는 어드레스 제너레이터, 소스 및 데스티네이션 어드레서 레지스터, 그리고 전송용 카운터가 있는<br />

이외에 DSP 내부에 DMA 전용의 어드레서와 데이터 버스가 있어, CPU와의 버스충돌을 없애고<br />

있다. DMA 컨트롤러도 페리페럴 유닛과 마찬가지로 페리페럴 레지스터에 의해 그 동작 모드를<br />

설정할 수 있다.<br />

다섯 번째로 외부버스 인터페이스를 보면, TMS320C31 는 2 종류의 외부 인터페이스가 있으며,<br />

각각 프라이머리 버스 (primary bus)와 익스팬션버스(expansion bus)가 있다. 프라이머리 버스<br />

는 32 비트의 데이터버스, 24 비트의 어드레스버스 그리고 각 제어신호로 구성된다. 한편 익스팬<br />

션버스는 32 비트의 데이터버스, 13 비트의 어드레스버스, 그리고 각 제어신호로 구성되어 있다.<br />

여섯 번째로 어드레싱 모드를 보면, TMS320C31는 다음 5종류의 어드레싱 모드 즉, 레지스터 어<br />

드레싱 모드(register addressing mode), 직접 어드레싱 모드(direct addressing mode), 간접 어<br />

드레싱 모드(indirect addressing mode), 이미디어트 어드레싱 모드(immediate addressing<br />

mode), PC 상대 어드레싱 모드(PC relative addressing mode)를 제공하고 있다. 간접 어드레싱<br />

모드에는 프리인크리먼트(preincrement)와 포스트인크리먼트(postincrement)를 포함하는 각종<br />

인덱스 모드를 추가하여, 디지털신호처리에 유용한 순환 어드레싱 모드(circular addressing<br />

mode)와 비트 리버스 어드레싱 모드(bit-reversed addressing mode)도 지원하고 있다.<br />

일곱 번째로 데이터 포맷을 보면, TMS320C31은 정수, 부호 없는 정수, 부동소수점의 3가지 데이<br />

터타입을 지원하고 있다. 정수와 부호 없는 정수에 대해서는 16비트와 32비트의 포맷이 있으며,<br />

부동소수점에는 16비트의 쇼트(short)와 32비트의 단정도 및 40비트의 확장 정확도 포맷이 있다.<br />

여덟 번째로 명령세트를 보면, 명령세트는 디지털신호처리나 고속의 수치연산을 필요로 하는 용<br />

용에 적합한 명령 군으로 구성되어 있다. 모든 명령은 단일 머신 워드길이이며, 대부분의 명령은<br />

단일사이클로 실행한다. 명령 수는 114개이며, 다음과 같이 기능별로 크게 6가지 그룹으로 나눌<br />

수 있다. 12개 종류의 로드/스토어 명령어, 36개 종류의 2오퍼랜드 산술논리연산명령, 17개 종류<br />

의 3오퍼랜드 산술논리연산명령, 16개 종류의 프로그램제어명령, 5개 종류의 인터록 조작명령,<br />

18개 종류의 병렬처리명령 등이다.<br />

그림 5.6에 TMS320C31의 내부 블록 도를 나타내고 있다. 버스는 프로그램버스, 데이터버스,<br />

DMA 버스의 3가지로 나누어지며, 각각 다시 어드레스버스와 데이터버스를 가지고 있다. 또한 데<br />

이터버스의 어드레스버스는 DADDR1, DADDR2의 두 계통이며, 1사이클 2회 내부메모리에 액세<br />

스가 가능하여 3오퍼랜드 산술논리연산명령을 수행할 수 있다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 32 of 74<br />

2009-10-08<br />

3. TMS320C31을 이용한 구현<br />

TMS320C31 칩을 이용하여 응용목적에 맞게 구현을 하려고 먼저 2가지 조건을 만족을 시켜야 한<br />

다. 첫째로, 프로그램 실행코드의 크기가 64Kword(256 kbyte)을 넘지 않아야만 한다. 이때 프로<br />

그램 크기에는 실행코드, 데이터 영역, 스택 등이 모두 포함된다. 64Kword를 넘으면 칩 성능<br />

(performance)에 영향을 미쳐 실행속도가 떨어진다. 둘째로, DSP 보드의 I/O 가 프로그램 실행과<br />

는 거의 독립적으로 수행되어야 한다. 만약 DSP 칩이 I/O 에 많은 시간을 할당하게 된다면 그만큼<br />

프로그램 실행시간이 줄어들게 된다.<br />

어셈블리 언어로 구현해야 DSP 칩의 특성을 제대로 사용할 수 있으며, 32비트 DSP 칩인<br />

TMS320C3x 시리즈에서는 특별한 선언을 하지 않으면 일반적으로 double, float, int, char 등 모<br />

든 데이터가 1 word(4 byte)로 처리된다.TMS320C31의 아키텍처에서 고속으로 실행하는 프로<br />

그램을 작성하기 위한 기법을 몇 가지 들어본다.<br />

첫째로, 병렬명령을 사용한다.<br />

둘째로, 루프연산에 리피트명령 (단일리피트, 블록리피트)을 사용한다.<br />

셋째로, 표준분기명령대신에 지연분기명령을 사용한다.<br />

표2. 파이프라인 유닛<br />

파이프라인 유닛<br />

페치 유닛(F)<br />

디코드 유닛(D)<br />

기능<br />

명령을 메모리로부터 읽어낸다.<br />

명령을 디코드하고, 어드레싱를 생성


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 33 of 74<br />

2009-10-08<br />

리드 유닛(R)<br />

실행 유닛(E)<br />

DMA 유닛 (DMA)<br />

메모리로부터 오퍼랜드를 읽어낸다.<br />

명령을 실행한다. 필요에 따라 레지스터로부터 오퍼랜<br />

드를 읽어 내기도 하고, 결과를 레지스터에 써넣기도<br />

한다.<br />

메모리를 읽고 쓰기를 한다.<br />

TMS320C31의 명령 실행은 표 2. 에 나타낸 5가지 기능 유닛을 통하여 이루어진다. 명령을 고속<br />

으로 실행하기 페치 유닛(F), 디코드 유닛(D), 리드 유닛(R), 실행 유닛(E)의 4개 유닛이 아래의 그<br />

림 5.7에 나타낸 바와 같이 완전히 오버랩(overlap)하면서 각 명령을 처리할 필요가 있다.<br />

이때는 1머신 사이클의 실행의 실행속도로 프로그램을 실행하게 된다. 이와 같은 명령 실행형식을<br />

파이프라인이라 부르며, 1명령 1머신 사이클을 실현하기 위해 사용된다. 파이프라인의 이와 같은<br />

완전한 오버랩이 혼란해지면, 1명령이 1머신 사이클 이상의 시간으로 되고 만다. 파이프라인이 혼<br />

란해지는 것을 파이프라인의 컨플릭트(conflict, 경합)라 부르며 분기 컨플릭트, 레지스터 컨플릭<br />

트, 메모리 컨플릭트 등이 있다.<br />

분기 컨플릭트는 분기명령으로 지연분기가 아니라 표준분기명령을 사용했을 때 발생한다. 레지스<br />

터 컨플릭트는 어드레스의 생성에 사용하는 레지스터에 리드/ 라이트 할 때, 레지스터 전회의 사<br />

용이 완료되어 있지 않을 때에 발생한다. 메모리 컨플릭트는 내부 유닛이 메모리에 액세스할 때<br />

경합이 일어나면 발생한다.<br />

분기의 방법에는 지연분기(BRD, BcondD, DBcondD)와 표준분기 (BR, Bcond, CALL, IDLE,<br />

RPTB, RETIcond, RETScond, Interrupt, Reset)가 있다. 표준분기명령은 파이프라인의 각 실효<br />

유닛의 처리를 모두 플래시 시키고, 후속 명령을 잘못 실행하는 일이 없도록 보증하는 경우에 사<br />

용한다. 플래시란 이미 페치한 후속 3가지 포기하든지, 재차 페치 하든지 파이프라인 그 자체가 인<br />

액티브 (inactive)로 되는 것을 말한다. 이에 대해 지연분기명령은 분기명령 실행 후에 후속의 3가<br />

지 명령을 페치하고, 파이프라인을 만족하면서 분기선의 어드레스로 새로운 명령을 페치 한다.<br />

따라서 지연분기의 경우는 어디까지나 1명령 1머신 사이클의 실행속도가 유지된다. 지연분기명령<br />

의 삽입장소는 실제의 분기포인트보다 3명령 앞이 되는 점에 주의할 필요가 있다. 그림 5.8에 지<br />

연분기의 코드와 파이프라인 실행차트를 나타낸다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 34 of 74<br />

2009-10-08<br />

TMS320C31은 하드웨어 루프를 제어할 수 있다. CPU 레지스터의 RS (리피트 개시 레지스터),<br />

RE (리피트 종료 레지스터), RC (리피트 카운터)에 각각 파라미터를 세트하고 블록리피트 명령<br />

(RPTB)을 실행함으로써 오버헤드 없이 명령블록을 반복할 수 있게 된다. 단일리피트 명령<br />

(RPTS)은 하나의 단일 명령이나 하나의 병렬명령을 반복하는 경우에 사용한다.<br />

LDI 9, RC<br />

PRTS RC<br />

MPYF3 *ARO++,AR1++,R1<br />

∥ADDF3 Rl, RO, RO<br />

ADDF R1, RO<br />

이것은 적화의 병렬 처리 명령을 10회 실행한다. R1은 승산 결과를 저장하는 임시 레지스터로 되<br />

어 있으며, RO는 누적 결과를 저장한다.<br />

LDI 9, RC<br />

PRTB LABEL<br />

CALL FILTER<br />

FIX RO<br />

SABEL STI RO, *AR3<br />

이것은 블록명령을 10번 수행한다. FILTER라는 서브루틴을 부른 다음 리턴 된 값 RO를 정수로<br />

변환시킨 다음 AR3가 가르치는 메모리에 저장한다. 위와 같은 기법과 병렬실행을 적절히 사용한<br />

다면 TMS320C31의 아키텍처에서 고속으로 실행되는 프로그램을 구현할 수 있다.<br />

제 6 장 Analog 모듈<br />

아날로그 모듈은 외부전화망에 직접 연결되는 부분이다. 따라서 아날로그 신호를 디지털 신호로<br />

바꿔 주는 일을 수행하며, 또 외부 환경에 따라 전화망을 타고 보드에 과전류나 과전압이 들어올<br />

수 있는 가능성이 있기 때문에 이를 방지하는 역할을 수행한다. 그리고 이외에 회선의 연결 교환<br />

기 기능, CPT(Call Process Tone) Detect, Ring 신호 감지, hook on/off detect등의 회선에 관<br />

련된 모든 일을 수행한다. 아래의 그림 6.1은 본 연구에서 구현한 아날로그 모듈이다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 35 of 74<br />

2009-10-08<br />

아날로그 모듈은 그 기능상 A/D Converter, Protect 회로, 내선 제어 모듈, 외선제어 모듈로 나누<br />

어진다. 이 장에서는 외부 회선에서 신호가 들어왔을 때 아날로그 모듈에서 처리되는 순서에 의해<br />

설명하도록 하겠다.<br />

제 1 절 Protect 회로<br />

전화회선은 외부의 환경에 노출되어 있기 때문에 언제든지 과전류나 과전압이 회선을 타고 시스<br />

템에 인가될 위험이 존재된다. 이렇게 회선에 과전류나 과전압을 인가하는 요인으로는 회선 부근<br />

이나 회선에 떨어지는 낙뢰, 부근의 전력선이나 전철 시스템으로부터 유도되는 유도 전압과 전류,<br />

전력선과 전화선의 접속, 또는 정전기 등을 들 수 있다. 이는 시스템을 오동작 시키는 원인이 될 뿐<br />

만 아니라 심할 경우 시스템 전체를 파괴하는 등 그 피해가 크다. 따라서 외부의 회선에서 신호를<br />

받아들이는 시스템에서는 반드시 과접압과 과전류를 방지하기 위한 조치를 취해야 한다.<br />

본 연구에서는 이와 같은 과전압, 과전류로부터 시스템을 보호하기 위하여 Protect 회로를 구성하<br />

였다. Protect회로는 크게 과전압방지부분과 과전류방지부분으로 구성되어 있다.<br />

과전류를 방지하는 부분에는 Raychem사의 TR600-160을 사용하였다. 일반적으로 우리가 알고


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 36 of 74<br />

2009-10-08<br />

있고 널리 사용하는 과전류를 방지하는 방법에는 퓨즈를 사용하는 방법이 있다. 퓨즈는 과전류가<br />

일정한 한계치 이상으로 흐르면 퓨즈 안의 도선이 열을 받아 끊어져서 과전류를 방지하는 방식이<br />

다. 따라서 과전류가 흘러 끊어진 퓨즈는 새로운 퓨즈로 갈아껴 주어야 한다. 그러나 이 방식은 본<br />

연구에서처럼 많은 회선이 사용되는 곳에서는 끊어진 퓨즈를 일일이 갈아 낀다는 것 자체가 아주<br />

큰 일이며 엄청난 시간이 소요된다. 그리고 PC안에 장착되는 특성상 퓨즈를 갈아 끼려면 PC를 열<br />

어야 하는 등 여러 문제점이 많이 있다. 따라서 본 연구에서는 TR600-160을 사용하였다. 이는<br />

PolySwitch 자기 복형 퓨즈로서 과전류가 흐르면 소자 내 온도가 올라가고 이에 따라 회로가 차<br />

단시켰다가 다시 과전류가 제거되어 온도가 내려가면 회로를 접속시키는 특징을 가지고 있다. 따<br />

라서 일반 퓨즈를 사용할 경우 과전류가 흘러서 회로가 차단된 후 다시 새로운 퓨즈로 바꿔야 함<br />

에 따라 생기는 불편함을 줄일 수 있다.<br />

과전압 방지를 위해 thyristor인 TECCOR사의 P2353AB를 사용하였다. 과전압 방지소자에는 크<br />

게 metal oxide varistor, TVS diode, thyristor, gas discharge tube로 나누어 볼 수 있다. 각각<br />

의 특성은 다음과 같다.<br />

Metal oxide varistor는 전류 capability가 높고 energy absorption이 많으면 전압과 전류<br />

spectrum이 넓고 response가 빠르며 값이 싸다. 하지만 parasitic capacitance가 크고 전압<br />

clamping tolerance가 ±10 정도 나오는 단점을 가지고 있다.<br />

TVS diode는 달리 말해 avalanche diode라고도 하는데 repe-titive가 높고 clamping이 sharp하<br />

며, clamping tolerance가 정밀하고 0.1ns이하의 빠른 response를 가진다. 그리고 접압<br />

spectrum이 넓다. 하지만 허용전류가 작으며 낮은 전압에서는 높은 capaci-tance를 기지는 단점<br />

이 있다.<br />

Gas discharge tube는 큰 전류(5kA for 50us)에도 안전하며 낮은 전압에서도 동작하고,<br />

parasitic capacitance가 2pF이하로 매우 작으며 off state에서 매우 큰 impedance를 가진다. 하<br />

지만 큰 전압을 필요로 하고 response가 늦으며 breakover 전압이 사용함에 따라 변경이 되는 단<br />

점을 가진다.<br />

그러므로 위에서 제시한 소자들의 장단점을 비교했을 때, 전화망 환경에 가장 적합한 tyristor를<br />

사용하였다. tyristor는 on-statr에서 소자간인가 전압이 낮은 경우에 사용되는 소자로써, 큰 전류<br />

도 견디어 낼 수 있으며, surge to surge basis에서 breakover 전압이 항상 일정하다. 따라서 벨<br />

이 울리는 순간 전압이 갑자기 높아지고, 또 낙뢰 등에 의해 높은 전압, 전류가 들어올 가능성이 있<br />

는 전화망 환경에 위에서 본 두 소자가 적합하다고 하겠다.<br />

제 2 절 외선 제어 회로 (COIC)<br />

전화선에서 들어본 신호는 protect 회로를 지나 COIC(Central Office interface Circuit)와 SLIC<br />

(Subscriber Line interface Circuit)로 들어간다. COIC 모듈은 외부 전화 회선을 제어하기 위한<br />

모듈로써 본 연구에서는 MITEL사의 MH88634BV-K는 Loop start trunk interface로서 600Ω의<br />

입력 임피던스를 가지고, 2-4 wire conversion을 수행한다. 그리고, forward loop(FL), reverse<br />

loop(RL), ring voltage detect(RV), service out(SO)의 회선상태에 대한 출력을 갖는다.<br />

본 연구에서는 하나의 회선 당 하나의 COIC모듈이 사용되며 이는 FPGA와 연계해서 회선의 상태<br />

에 대한 정보를 수립하거나 또는 회선을 제어하는 데에 사용한다. 그림 6.3의 COIC모듈에 대한 내<br />

부 블록도 이다.<br />

회선의 상태 수립 및 제어는 다음과 같이 수행이 된다. 먼저 외부 회선에서 전화가 걸려오면 COIC<br />

모듈에서는 이를 감지하여 RV신호가 들어오면 회선을 연결하라는 명령을 다시 COIC 모듈에 보낸<br />

다. 그러면 COIC 모듈에서는 릴레이를 구동하여 회선을 연결하게 된다. 이후 COIC 모듈은 회선을<br />

계속적으로 감시하며 회선의 상태를 FPGA에게 알린다. 이를 통해 FPGA는 지속적으로 회선을 제<br />

어할 수 있게 된다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 37 of 74<br />

2009-10-08<br />

그리고, 외부에서 들어오는 신호는 두선의 전압차이에 의해서 그 크기가 결정되는 신호이다. 그러<br />

므로 COIC이나 기타 여러 A/D Converter에서는 이를 바로 사용할 수 없다. 따라서 이 신호를 일<br />

반적인 아날로그 신호로 바꿔 줘야 한다. 이러한 처리를 2-4 wire conversion이라고 하며, COIC<br />

모듈에서 처리 된다.<br />

제 3 절 내선 제어 회로(SLIC)<br />

SLIC 모듈은 내선을 제어하는 모듈이다. 내선은 외선과는 달리 보드상에 전원을 회선으로 공급을<br />

해 줘야 한다. 따라서 제어하는 방식 및 그 구성이 외선과는 다소간에 차이를 보인다. 본 연구에서<br />

는 SLCI 모듈로 MITEL사의 MH88612BV-K를 사용하였다. MH88612BV-K는 2 wire to 4<br />

wire conversion기능을 가지고 있으며, 전원과 Ring voltage를 회선에 인가할 수 있는 기능을 가<br />

지고 있다. 그리고 내부 회선에서의 hook on/off를 감지할 수 있는 기능을 가지고 있으며, COIC<br />

모듈과 마찬가지로 회선 연결을 위한 릴레이를 드라이브 하는 기능을 가지고 있다. 다음의 그림<br />

6.4는 SLIC 모듈의 내부 블록도 이다.<br />

우선 외부에서 상담원을 필요로 할 때 FPGA에서는 상담원 쪽으로 ring신호를 인가한다. 이 때<br />

ring voltage는 - 48V로 바운드 되어 있는 AC90V가 사용된다. 상담원은 전화기에 벨이 울리면<br />

전화를 받는다. 이 때 SLIC 모듈은 hook의 on/off 상태를 감지하여 off 상태가 되면 외부 회선을<br />

상담원에게 연결한다. 그리고 계속적으로 회선을 감시하여 내선 쪽에서 전화를 끊는지를 획인,


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 38 of 74<br />

2009-10-08<br />

FPGA로 알린다. 따라서 FPGA와 연동하여 SLCI 모듈은 내선의 상태를 지속적으로 감시 및 제어<br />

하게 된다.<br />

그리고 SLIC 모듈과 COIC 모듈과 마찬가지로 전화선에 걸리는 신호와 일반적인 아날로그 신호간<br />

에 2 wire to 4 wire conversion 역시 수행하다.<br />

그 구동에 있어서 SLCI는 +5V, -5V, ground, -48V를 사용한다. 이 때 DC-48V가 모듈에 인가<br />

된다. 그리고 ring 신호를 인가하기 위해 AC 90V 역시 모듈에 인가된다. 따라서 본 연구에서는<br />

SLIC모듈의 구현에 있어서 특별히 전원 공급을 하는 부분에 많은 신경을 써서 설계를 하였다.<br />

제 4 절 A/D Converter<br />

본 연구에서 전화선의 음성 신호 및 DTMF tone은 Digital 모듈이나 PC에서 처리가 된다. 따라서<br />

음성신호를 DSP나 PC에서 처리할 있는 신호로 즉 아날로그 신호를 디지털 신호로 변환하는 작업<br />

이 반드시 필요하다. 본 연구에서는 이러한 작업을 하는 데에 CODEC(Coder & Decoder)를 사용<br />

하였으며, National Semiconductor사의 TM3054WM을 이용하였다.<br />

TP3054WM은 8bit resolution와 갖는 serial방식의 CODEC으로써, transmit high-pass, lowpass<br />

filter와 receive low-pass filter, u-iaw PCM 방식의 Coder와 Decoder, 내부 전압<br />

reference, 그리고 serial I/O interface들로 구성되어 있다.<br />

외부에서 CODEC으로 인가하는 sampling frequency인 master clock으로는 2.048MHz를 사용<br />

하였다. 이를 정확히 256분주 하여 8000 Hz의 음성신호 sampling을 수행하였다. 따라서 FPGA<br />

에서는 한 채널 당1/8000초 마다 한번씩 CODEC으로부터 데이터를 받는다. 하지만 본 연구에서<br />

구현된 CTI 콜센터 시스템은 한 채널에 대한 동작만으로 이루어지지 않으며, 한번 최대 8채널에<br />

서 데이터 수집이 이루어 져야 한다. 따라서 동시에 8채널에서 데이터를 얻기 위해서는 CODEC역<br />

시 FPGA에 의해 컨트롤 되어 진다. 만약 8채널에서 동시에 콜센터로 접속이 이루어 졌을 때<br />

FPGA는 각각의 CODEC를 1/64000초에 한번씩 동작을 시킨다. 하지만 하나의 CODEC에서 볼<br />

때에는 8000 Hz로 동작하는 모습이 된다. 이를 위하여 FPGA 내부에서 채널을 Time Division개<br />

념으로 구동한다. 이는 CODEC의 master clock을 32분주 하여 구현하였다.<br />

제 7 장 소프트웨어<br />

본 연구에서 구현한 CTI 통합 콜센터 시스템을 구성시키기 위한 소프트웨어는 크게 하드웨어 제<br />

어를 위한 소프트웨어와 application을 위한 소프트웨어의 두 부분으로 나눌 수 있다. 이 장에서는<br />

소프트웨어의 구현에 대한 설명을 실제로 구현한 프로그램의 예를 보면서 설명하도록 하겠다.<br />

제 1 절 하드웨어 구동을 위한 소프트웨어<br />

우선 하드웨어 제어를 위한 소프트웨어로는 PCI interface용 device driver, FPGA를 위한 VHDL<br />

coding, DSP 동작을 위한 프로그램을 개발하였다.<br />

PCI interface를 위한 디바이스 드라이버는 앞에서도 설명했듯이 PC와 하드웨어를 연결하는 기<br />

능을 수행한다. 따라서 본 연구에서 PCI 디바이스 드라이버를 설계하는 데에 많은 시간과 노력을<br />

투자하였다. PCI 디바이스 드라이버를 위해 사용한 툴은 NuMega사의 디바이스 드라이버 개발용<br />

소프트웨어인 Drive Studio 1.0 사용하였다. 그리고 NM기반의 OS에서 board를 제어할 수 있도<br />

록 함과 동시에 콜센터를 위한 application과의 연동에 중점을 두어 개발을 수행하였다. 디바이스<br />

드라이버를 개발하기 위해서는 다음의 과정으로 드라이버를 개발하였다.<br />

Device를 만들기 전에 우선 하드웨어에 대한 사전 지식과 그 하드웨어를 어떻게 컨트롤 할 것이<br />

며, 거기에 해당하는 함수는 어떤 것이 존재해야 하는지 알아야 한다. 본 연구에서는 처음에<br />

Driver Agent로 대략적인 디바이스 드라이버의 형식을 구성하였다(그림 7.1). 이때 I/O, 그리고<br />

Timing에 관한 사항을 알아야 한다.<br />

다음으로 Driver Agent에서 만든 간이 Driver를 가지고 Driver Workbench에서 시험 테스트를


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 39 of 74<br />

2009-10-08<br />

하였다. 이 때 Soft Ice락도 하는 램 상주 Memory Editor도 실행시켜 놔야 한다. Soft Ice는 현재<br />

어떤 Memory가 사용되고 있으며 어떤 인터럽트가 사용되고 있는지를 알 수 있으며 수정도 가능<br />

하다<br />

다음 단계에서는 간이 test 용 driver가 완성 돼있으며 test 까지 완료된 상태에서 실질적인 드라<br />

이버를 만든다. 이 때 사용한 프로그램은 NuMega 사의 Driver Studio 1.0 이다. Driver Studio<br />

1.0은 Driver Wizard라는 것을 활용하여 Visual C++에서 간단하게 드라이버에서 사용하는 각<br />

함수의 entry를 만들어 준다. 기본적인 드라이버의 초기화 과정과 마무리 과정은 Driver Work 의<br />

Drive Wizard에서 만들어 준다. 본 연구에서 수행한 작업은 그러한 함수내에 행동을 정의해 준 것<br />

이다. 아래의 그림 7.3 은 Visual C++에서 새로운 profect를 열때 Driver Wizard가 나타난 화면<br />

이다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 40 of 74<br />

2009-10-08<br />

이렇게 드라이버가 만들어지면서 inf(information)파일도 같이 생성된다. inf 파일은 registry에<br />

등록이 되어 다른 프로그램이나 다른 하드웨어와의 충돌을 막아준다. 이런 드라이버는 다시 test<br />

를 해야 하는데 위에서 말한 것처럼 registry에 등록이 되어 버리면 다시 지우기 힘들고 어떤 함수<br />

가 실행되었는지 잘 모르므로 Driver Monitor을 실행하고 거기서 Driver를 실행한다.<br />

그리고 그림 7.5, 그림 7.6은 MS Windows 95와 98용 Driver를 만드는 프로그램이다. 그림 7.5는<br />

Wizard이며 그림 7.6은 test용 프로그램이다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 41 of 74<br />

2009-10-08<br />

FPGA를 위한 VHDL coding은 실시간으로 동작해야 하는 board의 특성상 가장 중요한 timing에<br />

중점을 두어 설계되었으며 소자를 제어하는데 있어서 그 속도측면에 주의를 두었다. 그리고 블록<br />

별로 설계하여 블록간의 데이터 및 제어신호의 연동에 주의를 두었다. 또 한정된 logic gate를 사<br />

용해야하므로 프로그램 optimize측면에도 중점을 두어 개발을 수행하였다.<br />

그리고 마지막으로 DSP를 위한 프로그램은 신호처리를 위한 프로그램으로 DTMF tone detect,<br />

DTMF tone generate, PCM(Pulse Code Modulation) 등을 구현하였으며, 직접 ROM 에<br />

download 하여 구동 되도록 하였다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 42 of 74<br />

2009-10-08<br />

제 2 절 Application을 위한 소프트웨어<br />

Application 소프트웨어로는 크게 서버를 위한 프로그램과 클라이언트를 위한 프로그램으로 나누<br />

어진다.<br />

서버를 위한 프로그램으로는 board의 현 상태 및 전화망의 전체적인 상태를 점검/제어할 수 있는<br />

관리자 프로그램을 개발하였다. 관리자 프로그램에서는 모든 회선의 전체적인 상태를 모니터링


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 43 of 74<br />

2009-10-08<br />

할 수 있을 뿐만 아니라 관리자가 board의 상태를 직접 제어할 수 있도록 프로그램 되어 있다. 또<br />

클라이언트들의 상태를 파악해서 효과적인 아웃바운드 기능을 수행할 수 있도록 프로그래밍 되었<br />

으며 이외에도 빠른 업그레이드, 고장의 조기 발견, 자체진단, 응급처치 등이 용이하도록 프로그래<br />

밍 하였다.<br />

그리고 클라이언트에서 사용되는 프로그램은 쉬운 interface환경을 구축하는 데에 중점을 두어 개<br />

발하였다. 콜센터에서 운영되는 상담원들은 일반적으로 컴퓨터나 콜센터의 구성, 하드웨어의 구성<br />

에 대한 전문적인 지식이 없이도 콜센터 운영 및 상담이 가능하여야 한다. 따라서 이를 위해 상담<br />

원의 interface는 대부분 GUI(Graphic User Interface)를 사용하였으며 MS Windows 98 환경에<br />

서 동작되므로 프로그램 하였다. 그리고 서버와의 연동에 많은 시간을 할애하였다. 콜센터를 구축<br />

하기 위해서는 클라이언트/서버 시스템은 기본이 되는 시스템이며 이들간의 연동이 안 될 경우 콜<br />

센터 운영에 어려움이 많기 때문에 기본적인 클라이언트와 서버간의 연동은 필수적이라고 하겠<br />

다.<br />

본 연구에서 구현한 응용 프로그램은 하나의 쇼핑몰에서 고객관리, 물품관리, 거래처관리, 사원관<br />

리, 판매관리를 할 수 있는 수준이다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 44 of 74<br />

2009-10-08


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 45 of 74<br />

2009-10-08<br />

그리고 서버뿐만 아니라 클라이언트에서도 동시에 필요한 데이터를 접근하여 데이터를 가져갈 수<br />

있을 뿐만 아니라 데이터의 입력도 가능하도록 데이터베이스를 구축하였다. 이때 각 클라이언트<br />

에 등급을 두어 접근권한을 고객에 대한 정보가 외부로 누출되는 것을 최대로 방지하였다. 따라서<br />

본 연구에서 구현된 CTI 콜센터 시스템은 고객에게 신뢰성을 줄 수 있을 것이라고 확신한다.<br />

이러한 C/S 환경에서 작업을 하기 위해 데이터 베이스는 필수이다. 본 연구에서는 InterBase라는<br />

것을 사용하였다. 결코 MS의 SQL Server보다 못하지 안다. 현재 보유하고 있는 것은 50 User용<br />

이다. 회사에 따라 달라지겠지만 현재의 50 User용으로 충분히 소규모 운영은 가능하다.<br />

InterBase의 장점은 Borland C++ Builder와 연동이 잘 되고 사용하기 쉬우며 SQL Server의 모<br />

든 기능 및 SQL사용이 가능하다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 46 of 74<br />

2009-10-08<br />

그리고 위에서 개발한 소프트웨어와는 별도로 각종 운영체계에 맞는 라이브러리를 개발하였다.<br />

이는 본 논문에서 개발한 board를 이용하면서, 현재 구현되어 있는 application과는 다른 콜센터<br />

를 구축하고자 하는 요구에 응할 수 있으며, 여러 환경에 걸쳐 두루 호환성을 가지고자 개발되었<br />

다.<br />

제 8 장 결론<br />

본 연구를 통하여 다음과 같은 결과를 얻었다.<br />

우선 다양한 환경에 적응 가능한 DSP 기반의 인바운드/아웃바운드 통합 지능형 콜센터 시스템<br />

board를 설계하여 제작, 구현하였다. 구현된 시스템은 외선 8채널, 내선 4채널을 지원하며, 소규<br />

모 사업자들에게 아주 적합하게 설계되었다. DSP기반으로 PC운영가능하고 교환기를 필요로 하<br />

지 않아 소규모 콜센터에 적용 가능하며, 확장성이 커서 대형 콜센터 구축에도 그 효용이 있으며,<br />

처음 접하는 사람도 사용하기 편리하도록 interface를 구성하였다. 시스템 자체 O/S를 구축하여<br />

데이터베이스에 데이터를 입력 및 출력이 쉽고, 데이터 베이스를 통해 손쉽게 데이터를 관리할 수<br />

있도록 하였다. 전화선을 이용한 현재 구축되어 있는 일반적인 전화망에서의 신호의 제어 및 검출,<br />

생성 등에 연구를 수행하였다.<br />

개발한 하드웨어는 아웃바운드용 8채널 모듈, 인바운드용 4채널 모듈, 아날로그 처리 모듈, 디지<br />

털 처리 모듈, 통신 모듈, 전원 공급 및 interface 모듈 등이 있다.<br />

소프트웨어는 PCM modulation/demodulation 과 DTMF tone generation/detection을 위한<br />

DSP 어셈블리 프로그램, 시스템 제어 및 상태 점검을 위한 VHDL코딩, PCI 디바이스 드라이버 및<br />

어플리케이션 프로그램 interface(API), 운영체계 및 라이브러리, 데이터 베이스 구축, 사용에 편


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 47 of 74<br />

2009-10-08<br />

리한 GUI program 등을 개발하였다.<br />

제작된 CTI 시스템은 기존의 비싼 외산 장비를 사용하지 않고도 콜센터 구축이 용이해져서 수입<br />

대체효과를 얻을 수 있으며, 콜센터 구축 후에도 문제가 되었던 유지보수에 대한 문제를 해결할<br />

수 있을 것으로 확신한다.<br />

여러 전시회 및 경진대회 그리고 방송 등에서 직접 데모를 보임으로써 시스템의 타당성을 검토해<br />

볼 수 있는 기회가 되었다. 1999년 9월 16일부터 20일 까지 서울 코엑스(COEX)에서 개최된 제 4<br />

회 중소기술 기술 박람회에 한양대학교 대표 자격으로 참가하여 많은 기술상담을 했다. 1999년 9<br />

월 20일에는 연합 TV 방송국과 인터뷰를 했었고 이는 1999년 9월 23일자 YTN 생활과학 뉴스에<br />

방영되었다. 1999년 11월 13일에는 제 3회 한양대학교 창업 아이템 경진대회에 출품하였고 영예<br />

에 대상으로 선정되어 1999년 11월 24일 상금 200만원 및 상패를 수상할 예정이다.<br />

본 연구를 통한 향후의 연구과제는 좀더 High-performance를 갖는 DSP칩을 이용하여 현재 한<br />

개의 보드에서 처리 할 수 있는 채널 수를 확장하거나 또는 VolP(Voice of Internet Protocol) 서<br />

비스 등 좀더 수준 높은 서비스의 구현을 해 볼 수 있을 것이다.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 48 of 74<br />

2009-10-08<br />

참고문헌<br />

[1] Edwin Margulies, The Defineitive Reference Manual to Using signal Architecture in<br />

Telephony, Flatiron Publishing Publishing Inc.<br />

[2] Tom Shanley, Don Anderson, PCI System Architecture, MindShare, Inc.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 49 of 74<br />

2009-10-08<br />

[3] http://www.plxtech.com/products/entry/framesets/<br />

[4] http://www.altera.com/html/literature/lf10k.html<br />

[5] 윤덕용, TMS320C31 마스터, Ohm사<br />

[6] TMS320C3x User's Guide, Texias Instruments<br />

[7] http://circuitprotection.raychem.com/indexb.html<br />

[8] http://www.teccor.com/proddesc.htm#sidactors<br />

[9] http://www.mitelsemi.com/products/<br />

[10] http://www.national.com/pf/TP/TP3054.html<br />

[11] Chris Cant, Writing Windows WDM device Drivers, R& Books<br />

[12] Art Baker, The Windows NT device Driver Book, Prentice Hall<br />

[13] 박현철, VHDL 회로설게와 응용, 한성출판사<br />

[14] Charlie Calverts, Borland C++ Builder Unleashed, SAMS Publishing<br />

부록 A. DSP 프로그램 (DTMF Detection & Generation)<br />

// DTMF DETECT<br />

#include <br />

#include <br />

#include <br />

#define N 102<br />

#define THR_SIG1 0.19<br />

#define THR_SIG2 0.215<br />

#define THR_PAU 0.0458<br />

#define THR_STDTWI 0.3162<br />

#define THR_REVTWI 0.1259<br />

#define THR_ROWREL 0.2<br />

#define THR_ROW2nd 0.2<br />

#define THR_COLREL 0.2<br />

#define THR_COL2nd 0.2<br />

#define SQRT_ITER 16


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 50 of 74<br />

2009-10-08<br />

typedef struct<br />

{<br />

double *indata;<br />

double *taps1;<br />

double *taps2;<br />

double *energy;<br />

int *digitpsr;<br />

int digitpsr;<br />

int detectstat;<br />

int err_flag<br />

} DTMFCHANNEL<br />

short indata1[N];<br />

double indata2[N];<br />

int digits[128];<br />

double taps1[16];<br />

double taps2[16];<br />

double energy[16];<br />

DTMFCHANNEL channell={ &indata2[0],<br />

&taps1[0],<br />

&taps2[0],<br />

&energy[0],<br />

&digits[0],<br />

0xFFFF,<br />

0,<br />

double COEF[] = { 0.8502171357,<br />

0.8161969123,<br />

0.7790805745,<br />

0.7390089172,


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 51 of 74<br />

2009-10-08<br />

0.6026346363,<br />

0.4999999999,<br />

0.3897858732,<br />

0.2736629899,<br />

40.457383556,<br />

0.3323547997,<br />

0.2139330830,<br />

0.0922683593,<br />

-0.3323547997,<br />

-0.5000000002,<br />

-0.6961339462,<br />

-0.8502171359 };<br />

double key Table[] = { 0x0301,<br />

0x0000,<br />

0x0001,<br />

0x0002,<br />

0x0100,<br />

0x0101,<br />

0x0102,<br />

0x0200,<br />

0x0201,<br />

0x0202,<br />

0x0003,<br />

0x0103,<br />

0x0203,<br />

0x0303,<br />

0x0300,<br />

0x0302 };


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 52 of 74<br />

2009-10-08<br />

double gain_lim;<br />

double gain_const;<br />

double gain_lev;<br />

double gain_power;<br />

double gain_amp;<br />

double gain_scale;<br />

void gainCntrl(DTMFCHANNEL*);<br />

void initArrays(void);<br />

void goertzel(DTMFCHANNEL*);<br />

void DTMFchecks(DTMFCHANNEL*);<br />

void main (void)<br />

{<br />

FILE *fin;<br />

int I;<br />

char name[50]<br />

printf("input name : ");<br />

scanf("%S", name);<br />

fin=fopen(name."rb");<br />

while(fread(indatal, sizeof(short), N, fin )>N)<br />

{<br />

for(i=0;


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 53 of 74<br />

2009-10-08<br />

void initArrays (void)<br />

{<br />

int i ;<br />

for( i =0 ; i < N ; i++ )<br />

indata2[i] = indata1[i] = 0 ;<br />

for( i =0 ; i < 128 ; i++ )<br />

digits[i] = 0 ;<br />

for( i =0 ; i < 16 ; i++ )<br />

energy[i] = taps1[i] = taps2[i] = 0<br />

}<br />

void gainCntrl(DTMFCHANNEL*x)<br />

{<br />

double temp;<br />

int I;<br />

gain_lim = (1./64.) * (1. / (double)N);<br />

gain_const = 0.5* sqrt(64./ (double)N);<br />

gain_lev = 1. / (double)N);<br />

for (temp = 0. i = 0 ; i < N ; I++)<br />

temp+ = indata2[i]*indata2[i]<br />

gain_power=temp * (1. /64.) ;<br />

if ( gain_power > gain_lim )<br />

{<br />

gain_amp = gain_const * sqrt (gain_power ) ;<br />

gain_scale = gain_lev / gain_amp ) ;<br />

for( i = 0 ; i < N ; i ++)<br />

indata2[i] = indata2[i] * gain_scale;<br />

}<br />

return;


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 54 of 74<br />

2009-10-08<br />

}<br />

void goertzel(DTMFCHANNEL * x)<br />

{<br />

int i . j<br />

double temp;<br />

for( i = 0 ; i < N ; I++)<br />

{<br />

for(j=0 ; j < 16 ; j++)<br />

{<br />

temp=2. * COEF[j]*x →tapsl[j]-x→taps2[j]+x→indata[i];<br />

x→taps2[j] = x→taps1[j];<br />

x→taps1[j] = temp;<br />

}<br />

}<br />

}<br />

void DTMFchecks(DTMFCHANNEL*x)<br />

{<br />

int i;<br />

int rowMaxIndex, colMaxIndex, key;<br />

double temp;<br />

for ( i=0 ; i < 16 ; I++)<br />

x→energy[i] = ( x→taps1[i] * x→taps1[i]) + (x→taps2[i] * x→ taps2[i])-2. * COEF[i] *<br />

x→taps1[i] * x→taps2[i]<br />

for ( i=0 ; i < 16 ; I++)<br />

x→taps1[i] = x→taps2[i] = 0;<br />

for( rowMaxIndex = 0, i = 1 ; i 〈4 ; I++)<br />

if (x→energy[rowMaxIndex]〈 x→energy[i])<br />

if(x→detectstat==0)<br />

{


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 55 of 74<br />

2009-10-08<br />

if (x→energy[rowMaxIndex]〈 THR_PAU)&&<br />

(x→energy[rowMaxIndex]〈 THR_PAU))<br />

x→detectstat = 1;<br />

return;<br />

}<br />

tem = x→energy[rowMaxIndex] + x→energy[rowMaxIndex];<br />

if (temp 〈= THR_SIG1)<br />

return;<br />

if (temp 〈= THR_SIG2)<br />

{<br />

x→err_flag = x→err_flag │0x1;<br />

return;<br />

}<br />

if ( x→energy[rowMaxIndex] 〉 x→energy[rowMaxIndex] )<br />

{<br />

if(x→energy[rowMaxIndex]〉x→energy[rowMaxIndex])〈=THR_REVTW1)<br />

{<br />

x→err_flag = x→err_flag │0x2;<br />

return;<br />

}<br />

}<br />

else<br />

{<br />

if((x→energy[rowMaxIndex]〉x→energy[rowMaxIndex])〈=THR_STDTW1)<br />

{<br />

x→err_flag = x→err_flag │0x4;<br />

return;<br />

}


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 56 of 74<br />

2009-10-08<br />

}<br />

for( temp = 0, i = 1 ; i 〈4 ; i++)<br />

if(x→energy[rowMaxIndex]!=x→energy[i])<br />

if(x→energy[i] 〉 temp)<br />

temp=x→energy[i];<br />

if((temp/x→energy[rowMaxIndex])〉=THR_ROWREL)<br />

{<br />

x→err_flag = x→err_flag │0x8;<br />

return;<br />

}<br />

for( temp = 0, i = 4 ; i 〈8 ; i++)<br />

if(x→energy[colMaxIndex]!=x→energy[i])<br />

if(x→energy[i] 〉 temp)<br />

temp=x→energy[i];<br />

if((temp/x→energy[colMaxIndex])〉=THR_COLREL)<br />

{<br />

x→err_flag = x→err_flag │0x10;<br />

return;<br />

}<br />

if((x→energy[rowMaxIndex+8])/x→energy[rowMaxIndex])〉=THR_ROW2nd)<br />

{<br />

x→err_flag = x→err_flag │0x20;<br />

return;<br />

}<br />

if((x→energy[colMaxIndex+8])/x→energy[colMaxIndex])〉=THR_COL2nd)<br />

{<br />

x→err_flag = x→err_flag │0x40;<br />

return;


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 57 of 74<br />

2009-10-08<br />

}<br />

key=(rowMaxIndex《 8 ) │(colmaxIndex-4);<br />

for( i = 0 ; i 〈16 ; I++)<br />

{<br />

if(keyTable[i]==key)<br />

{<br />

if(x→digitlast!=i)<br />

{<br />

x→digitlast=i;<br />

return;<br />

}<br />

else<br />

{<br />

printf("digit=%d₩n",i);<br />

*x→digitptr++=i;<br />

x→detectstat = 0;<br />

breaj;<br />

}<br />

}<br />

}<br />

}<br />

// DTMF Generate<br />

#define toneDuration 2000<br />

#define quietDuration 1000<br />

#include 〈stdio.h〉<br />

int coefTable[8] = { 27980.<br />

26956.<br />

25701.


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 58 of 74<br />

2009-10-08<br />

26956.<br />

24219.<br />

19073.<br />

16325.<br />

13085.<br />

int ylTable[8] = { 0.<br />

0.<br />

0.<br />

0.<br />

0.<br />

0.<br />

0.<br />

0 } ,<br />

int y2Table[8] = { -533,<br />

-582,<br />

-635,<br />

-689,<br />

-833,<br />

-888,<br />

-938,<br />

-981 };<br />

int keyable[32] = { 3. 5,<br />

0. 4,<br />

0. 5,<br />

0. 6,<br />

1. 4,<br />

1. 5,<br />

1. 6,


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 59 of 74<br />

2009-10-08<br />

2. 4,<br />

2. 5,<br />

2. 6,<br />

0. 7,<br />

1. 7,<br />

2. 7,<br />

3. 7,<br />

3. 4,<br />

3. 6 };<br />

void main (void)<br />

{<br />

FILE *fout;<br />

int y1, y2;<br />

short y;<br />

int I;<br />

int t1, t2;<br />

int number;<br />

char index1, index2;<br />

fout = fopen ("1.pcm", "wb");<br />

while(1)<br />

{<br />

printf("Input number : ");<br />

scanf("%". & number);<br />

if(number〈0)<br />

break;<br />

index1 = keyTable[number*2];<br />

index2 = keyTable[number*2 + 1];<br />

for(i = 0 ; i 〈 toneDuration ; i++)


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 60 of 74<br />

2009-10-08<br />

{<br />

t1 = (2*coefTable[index1] * y1Table[index1])/32768;<br />

t2 = (2*coefTable[index2] * y1Table[index2])/32768;<br />

y1 = t1-y2Table[index1]<br />

y2 = t2-y2Table[index2]<br />

y2Table[index1] = y1Table[index1] ;<br />

y1Table[index1] = y1<br />

y2Table[index2] = y1Table[index2] ;<br />

y1Table[index2] = y2<br />

y = (short) (y1+y2)) ;<br />

fwrite (&y, sizeof(short), 1, fout);<br />

for(y = 0 ; i = 0〈 quietDuration ; i++)<br />

{<br />

fwrite (&y, sizeof(short), 1, fout);<br />

}<br />

}<br />

fclose(fout);<br />

}<br />

부록 B. Application programs<br />

// 고객 데이터 입력 프로그램<br />

// 해더 파일<br />

#ifndef CustSH<br />

#define CustSH<br />

#include 〈Classes.hpp〉<br />

#include 〈Controls.hpp〉<br />

#include 〈StdCtrls.hpp〉<br />

#include 〈Forms.hpp〉<br />

#include 〈Buttons.hpp〉


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 61 of 74<br />

2009-10-08<br />

#include 〈ExtCtrls.hpp〉<br />

class TCustForm : public TForm<br />

{<br />

_published ; // IDE-managed Components<br />

TEdit *E1;<br />

TEdit *E3;<br />

TEdit *E4;<br />

TEdit *E2;<br />

TEdit *E13;<br />

TEdit *E5;<br />

TEdit *E7;<br />

TEdit *E6;<br />

TEdit *E14;<br />

TEdit *E8;<br />

TEdit *E9;<br />

TEdit *E10;<br />

TEdit *E15;<br />

TEdit *E16;<br />

TEdit *E12;<br />

TBevel * Bevel1;<br />

TEdit *E11;<br />

TSpeedButton * SpeedButton1;<br />

TBevel * Bevel2;<br />

TSpeedButton * SpeedButton2;<br />

TSpeedButton * SpeedButton3;<br />

TLabel * Label 1;<br />

TLabel * Label 2;<br />

TLabel * Label 3;


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 62 of 74<br />

2009-10-08<br />

TLabel * Label 4;<br />

TLabel * Label 5;<br />

TLabel * Label 6;<br />

TLabel * Label 7;<br />

TLabel * Label 8;<br />

TLabel * Label 9;<br />

TLabel * Label 10;<br />

TLabel * Label 11;<br />

TLabel * Label 12;<br />

TLabel * Label 13;<br />

TLabel * Label 14;<br />

void_fastcall FormActivate(TObject * Sender);<br />

void_fastcall SpeedButton1Click(TObject * Sender);<br />

void_fastcall SpeedButton3Click(TObject * Sender);<br />

void_fastcall SpeedButton2Click(TObject * Sender);<br />

private:// Used declarations<br />

public: // Used declarations<br />

_fastcall TCustForm *CustForm;<br />

}:<br />

extern PACKAGE TCustForm *CustForm;<br />

#endif<br />

// 메인파일<br />

#include 〈vcl.h〉<br />

#pragama hdrstop<br />

#include "CustS.h"<br />

#include "DMOD.h"<br />

#pragama package (smart_init)<br />

#pragama resource "*.dfm"


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 63 of 74<br />

2009-10-08<br />

TCustForm * CustForm;<br />

_fastcall TCustForm;TCustForm(TComponent*Owner)<br />

; TForm(Owner)<br />

{<br />

}<br />

void _fastcall TCustForm;;FormActivate(TObject * Sender)<br />

E1→Text=" " ;<br />

E2→Text=" " ;<br />

E3→Text=" " ;<br />

E4→Text=" " ;<br />

E5→Text=" " ;<br />

E6→Text=" " ;<br />

E7→Text=" " ;<br />

E8→Text=" " ;<br />

E9→Text=" " ;<br />

E10→Text=" " ;<br />

E11→Text=" " ;<br />

E12→Text=" " ;<br />

E13→Text=" " ;<br />

E14→Text=" " ;<br />

E15→Text=" " ;<br />

E16→Text=" " ;<br />

}<br />

void _fastcall TCustForm;;SpeedButton1Click(TObject * Sender)<br />

{<br />

AnsiString temp = " " ;<br />

if (E1→Text==" " )<br />

{


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 64 of 74<br />

2009-10-08<br />

Application→MessageBox("거래처명을 입력해 주세요", "ERROR!!" MB_OK);<br />

return ;<br />

}<br />

if (E2→Text==" " )<br />

{<br />

Application→MessageBox("대표자명을 입력해 주세요", "ERROR!!" MB_OK);<br />

return ;<br />

}<br />

if (E3→ Text==" " )<br />

{<br />

Application→MessageBox("주민등록번호를 입력해 주세요", "ERROR!!" MB_OK);<br />

return ;<br />

}<br />

if (E5→ Text==" " )<br />

{<br />

Application→MessageBox("업태를 입력해 주세요", "ERROR!!" MB_OK);<br />

return ;<br />

}<br />

if (E6→ Text==" " )<br />

{<br />

Application→MessageBox("법인번호를 입력해 주세요", "ERROR!!" MB_OK);<br />

return ;<br />

}<br />

if (E7→ Text==" " )<br />

{<br />

Application→MessageBox("사업자번호를 입력해 주세요", "ERROR!!" MB_OK);<br />

return ;<br />

}


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 65 of 74<br />

2009-10-08<br />

if (E8→ Text==" " )<br />

{<br />

Application→MessageBox("전화번호를 입력해 주세요", "ERROR!!" MB_OK);<br />

return ;<br />

}<br />

if (E10→ Text==" " )<br />

{<br />

Application→MessageBox("주소를 입력해 주세요", "ERROR!!" MB_OK);<br />

return ;<br />

}<br />

if (E14→ Text==" " )<br />

{<br />

Application→MessageBox("업종을 입력해 주세요", "ERROR!!" MB_OK);<br />

return ;<br />

}<br />

DM→CustTable→Active=true ;<br />

DM→CustTable→Append()<br />

DM→CustTable→FieldByName("CustName") → Value = E1 → Text ;<br />

DM→CustTable→FieldByName("Chief") → Value = E2 → Text ;<br />

temp = E3→Text + E4→ Text ;<br />

DM→CustTable→FieldByName("Identify") → Value = temp ;<br />

DM→CustTable→FieldByName("Job") → Value = E5→Text ;<br />

DM→CustTable→FieldByName("Corporation") → Value = E6→Text ;<br />

DM→CustTable→FieldByName("Trade") → Value = E7→Text ;<br />

DM→CustTable→FieldByName("Tel") → Value = E8→Text ;<br />

DM→CustTable→FieldByName("Fax") → Value = E9→Text ;<br />

DM→CustTable→FieldByName("Address") → Value = E10→Text ;<br />

DM→CustTable→FieldByName("Etc") → Value = E11→Text ;


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 66 of 74<br />

2009-10-08<br />

DM→CustTable→FieldByName("Charge") → Value = E12→Text ;<br />

DM→CustTable→FieldByName("Staff") → Value = E13→Text ;<br />

DM→CustTable→FieldByName("Sort") → Value = E14→Text ;<br />

temp = " " ;<br />

temp = E15→Text + E16→ Text ;<br />

DM→CustTable→FieldByName("Post") → Value = temp ;<br />

DM→CustTable→Post ( ) ;<br />

}<br />

void _fastcall TCustForm;;SpeedButton3Click(TObject * Sender)<br />

{<br />

DM→CustTable→Active = false ;<br />

Close ( ) ;<br />

}<br />

void _fastcall TCustForm;;SpeedButton2Click(TObject * Sender)<br />

{<br />

E1→Text=" " ;<br />

E2→Text=" " ;<br />

E3→Text=" " ;<br />

E4→Text=" " ;<br />

E5→Text=" " ;<br />

E6→Text=" " ;<br />

E7→Text=" " ;<br />

E8→Text=" " ;<br />

E9→Text=" " ;<br />

E10→Text=" " ;<br />

E11→Text=" " ;<br />

E12→Text=" " ;<br />

E13→Text=" " ;


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 67 of 74<br />

2009-10-08<br />

E14→Text=" " ;<br />

E15→Text=" " ;<br />

E16→Text=" " ;<br />

}<br />

// 고객 데이터 확인 프로그램<br />

// 해더 파일<br />

#ifndef custsH<br />

#define custsH<br />

#include 〈Classes.hpp〉<br />

#include 〈Controls.hpp〉<br />

#include 〈StdCtrls.hpp〉<br />

#include 〈Forms.hpp〉<br />

#include 〈Buttons.hpp〉<br />

#include 〈DBGrids.hpp〉<br />

#include 〈ExtCtrls.hpp〉<br />

#include 〈Grids.hpp〉<br />

#include 〈DBCtrls.hpp〉<br />

#include 〈Mask.hpp〉<br />

class TSearchForm : public TForm<br />

{<br />

_published ; // IDE-managed Components<br />

TDBGrid * DBGrid1 ;<br />

TBevel * Bevel1;<br />

TEdit * CE ;<br />

TSpeedButton * SpeedButton2;<br />

TSpeedButton * SpeedButton3;<br />

TBDEdit * DBE1;<br />

TBDEdit * DBE2;


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 68 of 74<br />

2009-10-08<br />

TBDEdit * DBE4;<br />

TBDEdit * DBE5;<br />

TBDEdit * DBE6;<br />

TBDEdit * DBE7;<br />

TBDEdit * DBE8;<br />

TBDEdit * DBE9;<br />

TBDEdit * DBE10;<br />

TBDEdit * DBE11;<br />

TBDEdit * DBE12;<br />

TBDEdit * DBE13;<br />

TBDEdit * DBE3;<br />

TBDEdit * DBE14;<br />

void _fastcall CEChange(TObject * Sender);<br />

void _fastcall SpeedButton3Click(TObject * Sender);<br />

void _fastcall SpeedButton2Click(TObject * Sender);<br />

void _fastcall CEEnter(TObject * Sender);<br />

private:// User declarations<br />

public: // User declarations<br />

_fastcall TSearchForm(TComponent * Owner);<br />

};<br />

extern PARKAGE TSearchForm * SearchForm<br />

#endif<br />

//매인 프로그램<br />

#include 〈vcl.h〉<br />

#pragram hdrstop<br />

#include "custs.h"<br />

#pragram resource "*.dfm"<br />

TSearchForm *SearchForm;


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 69 of 74<br />

2009-10-08<br />

_fastcall TSearchForm;;TSearchForm(TComponent * Owner)<br />

: TForm (Owner)<br />

{<br />

}<br />

void _fastcall TSearchForm:: CEChange(TObject * Sender);<br />

{<br />

DM→CSTable→FindNearest(OPENARRAY(TVarRec, (CE→Text)));<br />

}<br />

void _fastcall TSearchForm:: SpeedButton2Click(TObject * Sender);<br />

{<br />

DM→CSTable→Edit() ;<br />

DM→CSTable→FieldByName("CustName")→Value = DBE1→ Text ;<br />

DM→CSTable→FieldByName("Chief")→Value = DBE2→ Text ;<br />

DM→CSTable→FieldByName("Identify")→Value = DBE3→ Text ;<br />

DM→CSTable→FieldByName("Job")→Value = DBE4→ Text ;<br />

DM→CSTable→FieldByName("Corporation")→Value = DBE5→ Text ;<br />

DM→CSTable→FieldByName("Trade")→Value = DBE6→ Text ;<br />

DM→CSTable→FieldByName("Tel")→Value = DBE7→ Text ;<br />

DM→CSTable→FieldByName("Fax")→Value = DBE8→ Text ;<br />

DM→CSTable→FieldByName("Address")→Value = DBE9→ Text ;<br />

DM→CSTable→FieldByName("Etc")→Value = DBE10→ Text ;<br />

DM→CSTable→FieldByName("Charge")→Value = DBE11→ Text ;<br />

DM→CSTable→FieldByName("Staff")→Value = DBE12→ Text ;<br />

DM→CSTable→FieldByName("Sort")→Value = DBE13→ Text ;<br />

DM→CSTable→FieldByName("Post")→Value = DBE14→ Text ;<br />

DM→CSTable→Post () ;<br />

void _fastcall TSearchForm:: SpeedButton2Click(TObject * Sender)<br />

{


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 70 of 74<br />

2009-10-08<br />

DM→CSTable→Active = false ;<br />

Close ( ) ;<br />

}<br />

void _fastcall TSearchForm:: CEEnter(TObject * Sender)<br />

{<br />

DM→CSTable→Active = ture ;<br />

}<br />

부록 C. CTI 통합 보드의 회로도


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 71 of 74<br />

2009-10-08


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 72 of 74<br />

2009-10-08


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 73 of 74<br />

2009-10-08


DSP를 이용한 인바운드/아웃바운드 통합 지능형 CTI 콜센터 시스템 개발<br />

http://agent.itfind.or.kr/Data2000/iita/98/IITA-0117/IITA-0117.htm<br />

Page 74 of 74<br />

2009-10-08

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!