해당 분류 : 분류없음    발신자표시 단말기를 이용한 델파이 프로그래밍 소스(2)    글을 기록한 날 : 2015/02/17 17:01

출처 : 고객관리 프로그램 개발연구 

발신자표시 단말기를 이용한 델파이 프로그래밍 소스(2)  델파이(DELPHI) 

2013/04/16 00:00

복사http://blog.naver.com/ioiioizzz/185443620

전용뷰어 보기


발신자표시단말기(Caller ID)를 이용한 델파이에서 프로그래밍하는 방법에
대해 알아보겠습니다. 참고로 단말기를 사용하는 방법외에 KT OPENAPI를 사용하는
경우는 단말기가 필요없으며 인터넷 센트릭스 전화기를 사용하는 경우에도 단말기가
필요없습니다. 여기에 대한 델파이 프로그램 방법은 별도로 올리도록 하겠습니다.
 
1. 발신자표시단말기의 기능에 대하여 
 
     고객한테 전화가 걸려오면  '네~~ 감사합니다. 어디시죠 ?' 이렇게 물어보고 나서
     프로그램에서 해당고객을 검색하는게 기존방식이었죠.
     하지만 단골고객한테 매번 어디냐고 물어보면 예의가 아니죠.
 
     그래서 좀더 개선된 방법으로 KT에서 서비스하는 발신자정보표시(Caller ID)를
     가입하고 (유료서비스로 월 1,500원의 부가사용료가 부과됩니다)
     발신자표시 액정이 달린 전화기를 사용하면 전화기 액정에 고객의 전화번호가
     표시됩니다.  액정에 표시된 전화번호를 보고 고객관리 프로그램에서 전화번호를
     검색하면 좀 더 편하게 고객정보를 찾을 수 있습니다.
   
     이보다 더 개선된 방법으로는 전화기 액정에 표시되는 고객의 전화번호를
     컴퓨터에 있는 고객관리 프로그램에 넘겨주면 고객관리 프로그램은
     전화번호를 고객정보 데이터베이스에서 검색하여 모니터에 해당 고객의
     신상정보를 보여주는 것입니다.
 
     이 방법을 구현하려면 아래에서 설명하는 몇 가지 준비절차와
     고객관리프로그램에서 신호를 분석하는 프로그래밍을 해야 합니다.
     델파이(DELPHI)언어에서 프로그래밍 하는 방법에 대해 설명합니다.
 
 
  2. 전화국에 발신자정보표시 서비스가 신청되어있어야만 됩니다.
 
     전화국에 발신자정보표시 서비스가 신청되어있어야만 이 기능을 사용할
     수 있습니다. ( 서비스 미가입시 프로그램 동작안함 )
 
     시중에서 판매하는 액정이 달린 CID 전화기를 구입하여 테스트를 먼저
     하십시오.
     
     전화기에 번호가 정상적으로 뜨는 경우에만 가능합니다.
 
     서비스가 신청되어있더라도 키폰을 사용하는 경우라면 단말기에서
     전화번호를 인식하지 못하게 되어 이 기능을 사용할 수 없습니다.
 
     발신자정보(CID)는 KT에서 보내줍니다. 첫 번째 전화벨과 두 번째 전화벨
     사이에 CID정보가 전송됩니다.
     CID액정이 있는 일반전화기에서 이 신호를 읽어 들여 처리하는 것입니다.
 
     키폰 시스템을 통과하게 되면 전화국에서 보내주는 이 신호가
     사라져 버립니다. 이러한 이유로 키폰은 지원이 안됩니다.
 
 
  3. 단말기가 연결되어있어야만 컴퓨터 모니터에 고객정보가 표시됩니다.
 
     일반 발신자정보표시 전화기는 컴퓨터에 연결할 수 있는 방법이 없으므로
     사용할 수 없습니다.
 
     컴퓨터와 연결이 가능한 발신자정보표시 단말기(PCID)를 사용해야만
     구현이 가능합니다.
 
     단말기는 1회선, 2회선, 4회선 등이 있으며 1회선은 전화선을 하나만
     연결이 가능하며 2회선은 전화선을 두 개, 4회선은 전화선을 네 개 연결
     할 수 있습니다.
 
     컴퓨터 1대에 단말기를 여러 대 연결할 수 있으므로 4회선 단말기를
     3개 연결한다면 동시에 12회선을 처리할 수 있습니다.
 
     컴퓨터 한대에만 단말기가 연결되어있어도 네트워크상의
     다른 컴퓨터에도 전화번호가 표시되게 할 수 있으므로
     문의전화가 많은 경우에도 여러 대의 컴퓨터에서 동시에 고객정보 확인이
     가능합니다.
 
 
  4. 화면(1)과 같이 컴퓨터와 단말기와 전화선을 연결합니다.
 
     전화기와 연결되어있던 전화선을 단말기의 입력단자에 연결하고
     단말기에서 나오는 출력단자를 전화기에 연결하면 됩니다.
 
     전화기를 단말기의 출력단자에 연결하지 않고 별도로 배선을 하여
     하나는 단말기로 하나는 전화기로 분배하여도 됩니다.
 
     단말기의 시리얼케이블을 PC의 시리얼포트에 연결하면 됩니다.
 
   

   
    ( 화면 1 ) CID 단말기 연결방법 ( 일반적인 단말기 모델 )
     
   
     단말기 후면의 LINE에는 전화국으로부터 들어오는 전화선을 연결하고
     PHONE에는 전화기를 연결하면 됩니다.
 
     4회선 단말기의 경우 LINE1, PHONE, LINE2, PHONE, LINE3, PHONE, LINE4, PHONE
     등으로 되어있습니다.
 
     두 번째의 전화선은 LINE2에 연결하고 전화기는 LINE2 옆의 PHONE에 연결하면
     됩니다.
 
     제품에 포함된 시리얼케이블을 단말기에 꼽고 다른 쪽은 컴퓨터 뒷면의
     시리얼포트(COM1,COM2등)에 연결합니다. 시리얼포트가 없는 컴퓨터이거나
     단말기를 2대 이상 연결하는 경우라면  USB 포트를 SERIAL 포트로 변환해주는
     장비를 사용하면 됩니다. 

      제 블로그의 시리얼포트가 없을때는 USB 시리얼젠더를 사용해서 해결해요
      http://blog.naver.com/ioiioizzz/185300247 컴퓨터활용게시판

     
  5. 시리얼통신을 위한 시리얼통신 컴포넌트를 설치합니다.
 
     델파이 버전은 3.0에서 7.0까지 사용이 가능합니다. 델파이 자체에는
     시리얼통신을 위한 컴포넌트를 제공하지 않으므로 별도로 컴포넌트를 설치해야
     합니다. 상용이나 공개용으로 제공된 컴포넌트를 구해서 설치하면 됩니다.
 
     본 예제에서는 공개용 컴포넌트인 "ComPort Library version 2.64"을 사용하였습니다.
     이 컴포넌트는 "Dejan Crnila"이 개발하여 Freeware로 인터넷에 공개한 자료입니다.
 
     ComPort Library version 2.64을 다운 받으려면 여기를 누르세요
 
     ComPort264.exe를 다운 받아 실행하면 어느 폴더에 압축을 풀 것인지 물어봅니다.
 
     예제에서는 C:/ComPort264 폴더에 압축을 풀었습니다.
 
     이 파일은 실제로 컴포넌트를 델파이에 등록하는 작업은 하지 않으며
     등록작업은 델파이에서 별도로 처리해야 합니다.
 
     델파이 7.0으로 제공된 CPortLib7.dpk를 아래의 화면(2)~(4)과 같은 절차로 설치하면
     됩니다.  델파이 5.0에서는 CPortLib5.dpk를 불러오기하면 됩니다.
 
     

     ( 화면 2 ) 델파이 > File > Open Project
 
     

     ( 화면 3 ) CPortLib7.dpk
 
   

    ( 화면 4 ) CPortLib 콤포넌트
 
 
  6. 고객관리 프로그램을 코딩을 시작합니다.
 
     빈 폼을 만들고 위에서 설치한 시리얼통신 컴포넌트를 사용합니다.
     위에서 설치한 컴포넌트 폴더 안의 C:\ComPort264\Burumi-Test에 전체 소스가
     있습니다.
 
     

     ( 화면 5 ) 델파이 폼디자인
 
     단말기와 시리얼통신을 하기 위해서는 단말기 제조회사가 정한 통신규약에
     따라 BaudRate, FlowControl, Parity 등을 값을 지정합니다.
     아래는 부르미 단말기의 규약이며 단말기 종류에 따라 규약이 달라질 수
     있습니다.
 
          BaudRate       19200
          DataBits       8
          DiscardNull    True
          EventsChar     #0
          Events         evRxChar only True
          FlowsControls  ControlDTR Enable
                         ControlRTS Disable
                         DSRSensitivity False
                         FlowControl None
                         OutCTSFlow False
                         OutDSRFlow False
                         TxContinueOnXoff False
                         XoffChar #19
                         XonChar  #17
                         XonXoffIn False
                         XonXoffOut False
          StopBits       1
          SyncMethos     ThreadSync
 
 
     위의 규약대로 화면(6)처럼 컴포넌트의 속성을 지정합니다.
 
     

     ( 화면 6 ) 델파이 오브젝트인스펙터에서 통신규약지정
 
     Memo1(TMemo)를 추가하여 메시지 표시 창으로 활용합니다.
     ButtonOpen(TButton)을 추가하고 OnClick 이벤트를 작성합니다.
     이 버튼은 시리얼포트가 정상적으로 동작하는지를 검사합니다.
 
     

     ( 화면 7 ) 델파이 CID 폼디자인 TMEMO, TBUTTON

 
     

     ( 화면 8 ) 델파이 CID 코드 ONCLICK 이벤트
 
 
     ButtonTest(TButton)을 추가하고 OnClick 이벤트를 작성합니다.
     이 버튼은 단말기가 정상적으로 연결되어있는지를 검사합니다.
 
     

     ( 화면 9 ) 델파이 TBUTTON 단말기 테스트버튼
 
     

     ( 화면 10 ) 델파이 단말기테스트 ONCLICK 이벤트

 
     ComportBurumiC1(TComPort)의 OnRxChar 이벤트를 다음과 같이 작성합니다.
     시리얼포트로 '?' 출력을 보내면 단말기는 2번째 바이트에 'V'를 보내서 응답합니다.
     응답이 없으면 단말기 테스트가 실패한 것으로 처리합니다.
 
     

     ( 화면 11 ) 델파이소스 단말기테스트 결과
 
     단말기 테스트가 성공하였으면 단말기에 연결된 전화번호로 전화를 걸어서
     OnRxChar 이벤트가 발생하도록 합니다.
     시리얼포트로 발신자정보를 수신하면 이를 분석하여 전화번호로 표시하는
     부분을 코딩 합니다.
 
     

     ( 화면 12 ) 델파이소스 수신번호알아내기
 
  7. 프로그램 작성이 완료되었습니다. 테스트를 해서 정상적으로 동작하는지 확인합니다.
 
     [ ButtonOpen ]을 눌렀을 때의 결과입니다.
 
     

   

    ( 화면 13 ) 델파이 CID 실행 포트오픈
 
     [ ButtonTest ]를 눌렀을 때의 결과입니다.
     단말기의 전면에 오른쪽 빨간색램프는 전원표시등으로 전원이 연결되어있는 경우에
     표시됩니다. 왼쪽의 램프4개는 평상시는 꺼져있다가 단말기테스트를 하게 되면
     계속 표시되어있다가 전화번호를 수신하면 잠시 깜빡이다가 꺼집니다.
   
     

   

    ( 화면 14 ) 델파이 CID 실행 단말기테스트
 
     전화를 걸었을 때의 결과입니다.
     029995302 발신자의 전화번호가 정상적으로 화면에 표시되었습니다.
 
     

     

     ( 화면15 ) 델파이 CID 실행 전화번호수신결과

      추가참고자료
      제 블로그의 발신자정보표시(CID)프로그램 개발방법
      http://blog.naver.com/ioiioizzz/185116205   델파이(DELPHI)게시판   

      제 블로그의 시리얼포트가 없을때는 USB 시리얼젠더를 사용해서 해결해요
      http://blog.naver.com/ioiioizzz/185300247 컴퓨터활용게시판

Creative Commons License
Creative Commons License
TAG :

Notice

Blogroll

Counter

· Total
: 274196
· Today
: 6
· Yesterday
: 30