- 기반 전화 네트워크에 컴퓨터를 오디오 인터페이스를 철사
Colin Fahey

음성 전화를 사용하여 만들 수있는 컴퓨터 모뎀과 간단한 회로합니다.
1. 소개
이 문서 기존의 모뎀을 사용하는 방법에 대해 설명하고 모든 개인 컴퓨터에 간단한 회로를 (PC)과 모든 운영 체제, 전화 통화를 게재할 수있는 능력 목소리가 상호 작용을 포함합니다.
전화 번호는 일반 모뎀을 사용하여 활성화합니다 철사로 이동 "오프 후크," 그리고 나중에 철사로 이동 "전화에서" 방출 "후크 (끊지)."
간단한 전기 회로를 사용하여 오디오 장치를 아무와 같은 개인 컴퓨터의 사운드 카드 또는 사운드 인터페이스를 (PC), 오디오 신호를 전화선에 액세스할 수있습니다.
따라서 개인 컴퓨터에 연결을 시작할 수 (PC) 전화 번호, 그리고 인간의 도움을 기다 리이나 자동화된 시스템에 답변을 입력한 다음 대화를 기반으로 음성이나 기타 소리를 시작합니다.
이 문서는 취미 관심을 학습하기위한 몇 가지 요구 사항 및 프로토콜에 대한 내용은 전기 Central Office (CO)의 상호 작용하는 미국의 전화 네트워크에 연결 와이어 (US)합니다.
사람이 많다 수 있도록 기술을 기반 시스템을 통해 음성 전화와 상호 작용합니다.
이미 많은 상업적인 제품과 서비스를 제공 전화 번호 상호 작용을 처리하는 기업과 연관된 모든 데이터베이스를합니다.
그것은 아주 쉽게 찾을 수 많은 전화을 처리하는 기계 설비를 단일 번호를합니다.
이 확장을 인터넷 전화 통신과 프로토콜을 (VoIP)처럼 "Voice over Internet Protocol"합니다.
컴퓨터를 어디에서 인터넷과 연계하여 사용하는 VoIP를 구성할 수있습니다 음성 인식과 음성 합성을 통해합니다.
이러한 컴퓨터는 선택 사항에 따라 음성 대화를 흐름도 XML 텍스트 파일을 표명 (Voice XML)합니다.
이 문서는 그 누구와도 관계없는 문제를 실용적인 솔루션을 기업이나 조직을 자동화하는 목소리 상호 작용을합니다.
이 문서는 취미를위한 엔터테인먼트의 작은 예산을합니다.
2. 유의 사항
건설의 전자 회로, 및 연결에 전화를 네트워크에 많은 위험을 포함합니다.
학습에 대한 책임을 당신은 어떤 법률, 위험 요소, 그리고 위험이 부과될 수있습니다.
다음은 일부의 문제의 목록을하는 데 필요한 건설을 고려하고 테스트에 관심이있는 경우 1 회로 기능이 문서에서 유사합니다 :
1. 전기 사양에 대한 모든 정보를 전화 서비스는 미국의 경우에만 유효합니다 (US)합니다.
2. 신호 전압이 전화 번호 전선 (90 볼트)는 부상 사람들이있습니다.
번개, 혹은 전화로 떨어진 전원 전선 전선의 전압이 늘어날 수있습니다 낙상 수있는 사람들이있습니다.
3. 당신이 책임을지지 않습니다 전화 회사 회로에 손상을 무단으로 인해 발생 장치의 사용 귀하의 집 또는 사무실합니다.
4. 명시적인 승인없이는 전화 통화 녹음의 모든 당사자는 법에 저촉되는합니다.
(...하지 않는 한 당신은 정부의! 그렇지 않으면, 할 사람들이 말하는 것처럼, 그리고 그들이 아니라!)
5. 당신은 어떠한 손해에 대한 책임을 컴퓨터로 인해 자신의 회로를 컴퓨터에 연결합니다.
6. 모든 제품을 판매할 수 없다 전화 네트워크를 사용하기위한 FCC의 승인을하지 않고있습니다.
이 문서는 전용에 대한 설명을 내 개인적인 경험을합니다.
당신이 위험에 대한 책임에서 권위있는 법률 및 출처에 대해 학습합니다.
3. 전화 번호 오디오 인터페이스 회로
회로에 설명되어의 목적은이 섹션은 전통적인 오디오 녹음 및 재생 장치를 허용과 같은 개인용 컴퓨터 사운드 카드 또는 오디오 포트에 (PC), 음성을 통해 전통적인 토지를 보내고받을 와이어 (유선) 전화 연결을합니다.
오디오 기기의 전화 와이어와 직접 연결되지 않습니다; 커플링은 변압기를 통해서만합니다.
양쪽의 인터페이스는 과도한 전압으로부터 보호합니다.
이 제한된 범위의 신호를 주파수 (대역폭)과 관련된 전화 번호 오디오 (300 Hz을 3500 Hz).
"수동" 구성 요소는 전용 회로를 모두 구동 전압이 외부합니다.
회로를 모뎀과 함께 사용해야한다, 전화, 또는 다른 회로 "갈" 수있는 "후크" (낮은 정도로 데려의 저항의 전선 중앙 사무실을 나타냅니다 와이어를 사용하는 (CO)).
그것은 사소한 측면을이 "오프 후크를" 추가하는 회로, 회로를 모두하지만 성기가 큰 장애물은 이미 많은 취미합니다.

모양을 조립 회로

회로 기판의 모습

전화 번호 오디오 인터페이스 회로의 회로도
이 장치를 구축할 수있습니다 상기하면 거의 정확하게 나타납니다 다음과 같은 투자 :
1. 설치되어 있는지 확인하십시오 기본적인 도구 :에서 시험, 납땜 인두, 칼;
2. 방문 라디오 스넥, 구매 아래에 나열된 항목을 29달러 세금 떼면;
3. 모든 하드웨어를 방문 저장소, 사는 두 개의 너트, 볼트, 와셔, $ 1.
4. 약 4 시간에 따라 회로를 구성 회로도;
전자 회로 경험을 구축하지 않은 경우, 납땜, 굴착 홀,하고 전기 측정,이 귀하의 첫 번째 프로젝트를 만들 지마!
는 단 한 사람이이 회로를 빌드 시도해야 할 사람은 이미 아는 사람은 그 또는 그녀는 확실히 구축할 수있습니다!
4. Radio Shack : 유비 쿼터스 전자 상점
소비자 전자 제품 회사와 상점 Radio Shack는 전 세계합니다. 다음은 그들의 인터넷 사이트로 연결되는 링크 :
그들의 인터넷 사이트에서 한 사람의 이름에 대한 링크를 찾을 수있습니다 "Electronic Components", 이로 인해 그들의 카탈로그를 전자 부품 및 해당 문서합니다.
한 사람에 대해 가격을 일부를 찾을 수있습니다.
한 사람의 목록을 잡을 수있다 가까운 상점 위치 및지도합니다.
부품 온라인으로 주문할 수도있습니다.
나는 내 간단한 회로를 사용하여 구축하기로 결정 Radio Shack 부분 즉, 다른 사람 때문에 세계에서 내 작품을 쉽게 재현합니다.
또한, 어떤 부분에서 제공하는 Radio Shack이 실질적으로 보장에 몇 년 동안 사용할 수있습니다 낮은 가격합니다.
다음은 예전의 목록을 Radio Shack를 작성하는 회로 부품으로 카탈로그 번호 :
| Qty | Description | Serial # | Price | Total |
| 1 | Project Enclosure (6"x3"x2") | #270-1805 | $ 3.79 | $ 3.79 |
| 1 | Surface Mount Modular Jack (RJ11/RJ14) | #279-0202 | $ 4.99 | $ 4.99 |
| 1 | 3-Conductor Stereo 1/8th" Phone Jack (Pkg.2) | #274-0249 | $ 2.99 | $ 2.99 |
| 1 | Component PC Board (71x94mm), 750 holes | #276-0158 | $ 2.99 | $ 2.99 |
| 2 | Audio Isolation Transformer (1:1) | #273-1374 | $ 3.99 | $ 5.98 |
| 2 | Metalized-Film Capacitor 1.0uF, 250WVDC | #272-1055 | $ 1.49 | $ 2.98 |
| 1 | 2.2K ohm 1/2W 5% Carbon Film Resistor (Pkg.5) | #271-1121 | $ 0.99 | $ 0.99 |
| 2 | 1N4733A, 5.1V, 1.0W Zener Diode (Pkg.2) | #276-0565 | $ 0.99 | $ 1.98 |
SUBTOTAL: $26.69
TAX: $ 2.07 (California 7.75% sales tax)
TOTAL: $28.76
5. Ace Hardware : - 그래서 - 유비 쿼터스없습니다 철물점
나는이 필요 볼트, 와셔, 그리고 견과류를 플라스틱 케이스에 고정 전화 잭 나의 회로합니다.
Ace Hardware 같이 갔었는데,하지만 Home Depot에 갔다가 있었으면, 아니면 조금이라도 슈퍼마켓, 유사 부품을합니다.
| Qty | Description | Price | Total |
| 2 | Bolt No.8-32 4.2mm-32 | $ 0.17 | $ 0.34 |
| 2 | Washer No.8 | $ 0.10 | $ 0.20 |
| 2 | Nuts No.8-32 2" | $ 0.10 | $ 0.20 |
SUBTOTAL: $0.74
TAX: $0.06 (California 7.75% sales tax)
TOTAL: $0.80
6. 도구 및 주변 기기를
다음 표에는의 항목 중 일부의 건설 및 사용에 필요한 나는 회로 :
| Soldering iron | $ 5.00 (approx) |
| Solder | $ 3.00 (approx) |
| Precision knife | $ 3.99 |
| Wires | $ 1.00 (approx) |
| Telephone extension cord #279-0374 | $ 5.79 |
| Male-Male mini-phono 6' extension cord (qty.2) | $ 3.00 (approx) |
| Four-wire 3-way coupler (RJ11/RJ14) #279-0447 | $ 4.99 |
7. 회로에 대한 의견
나는 전기 기술자없습니다.
전 공부 여러 전화 회선 (참고 문헌 목록이 문서의 끝부분), 그리고 다양한 요소를 추출 나의 자신의 디자인의 목표를 지원합니다.
만약 당신이 정말로 절망, 그리고 PC에 대한 위험 요인이 아니었 수있습니다 전화선에 연결하는 한 쌍의만을 사용하여 사운드 포트를 콘덴서!
그것은 아주 나쁜 아이디어를 둥글게 있기 때문에 전압 및 가능한 임의의 전압 스파이크에 전화 번호 와이어, 보호되지 않은 장치를 손상 수있습니다.
the 제너 다이오드의 전압이 내 회로 짧은 - 회로 과도하게합니다.
통지에 직면하는 그들은 반대 방향으로, 그래서 그 동안에 발생한 특정 극성 전압을 적용, 1, 무시무시한을 실시 제너 다이오드는 현재 정상적으로, 그리고 다른 하나는 리버스 - 붕괴에 대한 무시무시한의 전압을 초과의 등급은 (예를 들어, 5.1 V) 합니다.
- 붕괴되는 전압을 초과하는 경우에만 역방향 전압 중 하나의 전류를 허용 제너 다이오드는 궁극적으로 그 쌍을 흐름, 그래서 짧은 -가 필요할 다이오드 쌍의 전선이 연결되는합니다.
참고 :이 작품이 어디에 관계없이 신호의 발원지합니다.
교류 전류 (AC)의 신호를 전화선이 큰 변압기 통과 후 다음 5.8 볼트 ( 5.1 V + 0.7 V ) 클립된다.
직류 (DC) 또는 교류 전류 (AC) 오디오 신호에서 오디오 소스가 아니라 전화 와이어, 클립을 5.8 Volts도합니다.
그래서, 각 정당, 전화 회사와 오디오 장비, 과도한 전압에서 오는 다른 정당으로부터 보호합니다.
이 디바이스는 진짜와 동일 회로에 한 쌍의합니다. 중 하나의 입력 또는 출력 오디오 플러그를 사용할 수있습니다.
기본적으로, 둘 다 단일 전화 번호로 오디오 신호는 신호를 결합합니다.
8. "후크를" 사용하여 모뎀을 "해제"
8.1 모뎀의 목적은
이 시스템은 모뎀의 목적은 전기를 만드는 조건이 요청은 전화 서비스 제공 업체가되기로 인식의 전화 네트워크에 적극적인 참여합니다.
이 요청은 "갈 후크에" 대한 참조를 기존 전화 번호의 설계가 필요합니다 스피커 또는 휴대폰을 통해 사용자가 리프트를 따로 후크합니다.
정품 인증 요청은 거의 즉시 부여 제 2 분의 1로합니다.
와이어가 활성화되면, 다른 모든 측면 텔레포니 오디오 신호를 통해 수행할 수있습니다.
비록 송신 전화 번호 "(전화 걸기)는" 오디오 파일을 재생에 의해 수행 ( *.WAV, *.MP3 )를 기록 오디오 (DAT, 오디오 CD, 테이프), 또는 소프트웨어를 음성 합성 (sin() 함수), 모뎀은 본질적인 기능을 수행할 수있는 기능을합니다.
그러나, 그것이 유일하게 이해해야합니다 정품 인증의 목적은 모뎀이 전화선을 요청합니다.
사람이 시뮬레이션의 대안 방법을 경우에는 따로 후크 상태 (즉, 간단하게 저항을 건너 전화 번호를 낮춰 와이어), 모뎀이 필요하지 않습니다.
그러나, 모뎀은 매우 저렴, 평범한, 그리고이 기능을 수행하는 장치를 편리합니다.
이 문서에 설명되어의 시스템에 모뎀을 필요로하지 않습니다 오디오 녹음 또는 재생 기능, "음성 모뎀을라고도합니다."
그러나, 또 다른 부분이 문서의 목소리 나는 모뎀을 사용하는 가능성을 논의의 대안으로 전기 회로를 사용하는 사용자 정의합니다.
8.2 일반 모뎀을
나는 외부 모뎀을 사용하여 제조한을 선택한 헤이스 "Accura" 전화, 팩스 - 모뎀과 음성 메일 기능을 V.92합니다.
어떤 모뎀을 사용할 수있습니다의 시스템이 문서에서 설명합니다.
외장형 모뎀을 간단하게 싶었는 간단하기 때문에 어떤 컴퓨터를 연결, 그리고 나는 그것을 친구의 집에 가져올 수있습니다 그들의 랩톱이나 데스크톱 컴퓨터와 함께 사용합니다.
거의 중요하다이지만, 나 또한 가능성이 있다고 생각하고있는 컴퓨터를 Basic Stamp 2이 될 것입니다 RS-232를 사용하여 모뎀을 수도있습니다.
주의 사항 : 직렬 포트 (RS-232) 포트, 같은 PS/2 포트, 유지 관리되고, 그리고는 새로운 표준 USB합니다.
USB 외장형 모뎀에 액세스하는 소프트웨어는 종종 유산으로 "COM" 포트 장치를 마치 하나의 장치 드라이버가 함께하여 모뎀을합니다.
USB/RS-232 어댑터에있다는 작은 (~$30) 현대를 연결하는 데 사용할 수있는 장치를 노트북 컴퓨터와 데스크톱 컴퓨터를 RS-232합니다.
그러한 어댑터가 해당하는 장치 드라이버를 에뮬레이트하는 기존의 직렬 포트 인터페이스 방식 (예를 들면, "COM" 장치).

Hayes 외부 모뎀 : 상자

외장형 모뎀을 Hayes
8.3 모뎀 명령을
모뎀이 때 첫 번째 켜지면, 그것 상태라고 "명령 모드를" 입력합니다.
만약 성공적으로 연결하여 원격 모뎀의 모뎀 또는 원격 팩스 장치 이상의 전화 와이어, 그것 불리는 "데이터 모드" 상태를 입력합니다.
그러나,이 문서에 설명된의 시스템은 "데이터 모드를" 사용하여 연결을 설정하는 모뎀을 원격 장치, 그래서 모뎀은 항상 "명령 모드로합니다."
때 명령 모드에서 사용되는 경우 일반 모뎀을 ASCII 문자의 형태로 명령을 받아들인다.
문자는 모뎀과 컴퓨터 사이의 교환 직렬 케이블을 통해, 또는 장치 드라이버를 만드는를 통해 내부 카드 (예를 들면, PCI 카드) 시리얼 장치로 액세스할 수있습니다.
각각의 경우에, 프로그램을 사용 시리얼 장치에 액세스 API 호출 (예를 들어, "COM1" 또는 "/dev/modem").
명령은 모뎀을 하나의 주요의 부분 집합 "AT" (ay-tee) 명령 및 이러한 명령의 문자로 시작하는 모든 "at" (또는 "AT").
모뎀으로의 진화에서 명령의 목록을 확장하고 점점 더 난해한 기능을 제공합니다. 이 문서에 설명되어의 시스템을 전용 모뎀을 "오프 후크" 수있는 능력이 필요 이상의 모뎀을 "온 후크" 상태를 반환합니다. 자리 숫자로 다이얼을 수있는 능력, 그리고 스피커를 선택적으로 통화를 감시하고 켜십시오는 유용한 기능,하지만이 중요합니다. 다음 표는 명령을 모뎀을 사용하는 것으로 보인다 시스템이 문서에서 설명 :
| Action | Command |
| On-Hook ("Hang Up") | ATH [zero] [return] |
| Off-Hook ("Pick Up") | ATH [one] [return] |
| "Dial" Digits | ATDT [digits,#,*] ; [return] |
| "Dial" Digit | ATDT [digit,#,*] ; [return] |
| Speaker Off | ATM [zero] [return] |
| Speaker On | ATM [two] [return] |
다음 표는 명령을 사용하여 일련의 가정 위에 전화 "연락 색조와" 상호 작용하는 자동화된 시스템을 사용하는 (DTMF)하고 다음을 해지할 수있는 전화 "(끊지)" :
| Command | Action |
| ATM 2 [return] | Speaker On |
| ATH 1 [return] | Off-Hook ("Pick Up") |
| ATDT 5551212 ; [return] | "Dial" 5551212 |
| ATDT 3 ; [return] | "Press" 3 |
| ATDT # ; [return] | "Press" Pound (#) |
| ATDT * ; [return] | "Press" Star (*) |
| ATH 0 [return] | On-Hook ("Hang Up") |
| ATM 0 [return] | Speaker Off |
8.4 AT 명령 집합
the "AT 명령 세트는 거의 모든 모뎀을 구현한 존재합니다.
이 세트는 원래의 명령에 의해 구현 Hayes 모뎀을합니다.
"Hayes으로 분류된 대부분의 모뎀은 호환 AT 때문에 명령어 세트를 구현합니다.
AT 접두사로 시작되어야합니다 AT의 모든 명령을 입력한 다음 명령을 문자에 의해, 그리고 ENTER(*) 열쇠를 종료합니다.
(*...ENTER, CARRIAGE RETURN, CR, RETURN, '\r', 13, 0xd, Control-M, ^M)
명령 문자열을 높이는 공간을 사용할 수있습니다 커맨드 라인에서 읽을 수 있지만 명령을 실행하는 동안은 모뎀을 무시합니다.
입력된 모든 명령 중 하나가 대문자 또는 소문자,하지만 결코 혼합합니다.
매개 변수없이 발행의 명령으로 간주은 동일한 명령으로 매개 변수를 지정하여 0 (영)으로합니다.
AT 응집의 목록은 다음과 같은 명령을합니다.
좀 더 상세한 목록을 작성하여 인터넷을 통해 쉽게 찾을 "at 모뎀을 검색하는 키워드를 사용하여 명령을합니다.
| Cmd | Action |
| A | Answer incoming call |
| D | 0-9, A-D, # and * (e.g., AT T D 5551212*#) |
| P | Pulse dial |
| T | Tone dial |
| W | Wait for second dial tone |
| , | Pause |
| @ | Wait for 5 secs of silence |
| ! | Flash (very brief on-hook) |
| ; | Return to command mode after dialing |
| E0 | Command echo disabled |
| E1 | Command echo enabled |
| F0 | Autoscan mode |
| F1 | 300 bps connection only |
| F3 | V.23 connection only |
| F4 | 1200 bps connection only |
| F5 | 2400 bps connection only |
| F6 | 4800 bps connection only |
| F7 | 7200 bps connection only |
| F8 | 9600 bps connection only |
| F9 | 12000 bps connection only |
| F10 | 14400 bps connection only |
| H0 | Modem on-hook (hang up) |
| H1 | Modem off-hook (pick up) |
| I0 | Product code |
| I1 | Checksum code |
| I2 | ROM test |
| I3 | Firmware and device ID |
| L0 | Low speaker volume |
| L1 | Low speaker volume |
| L2 | Medium speaker volume |
| L3 | High speaker volume |
| M0 | Speaker off |
| M1 | Speaker on until carrier detect |
| M2 | Speaker on |
| M3 | Speaker off during dialing, on until carrier detected |
| N0 | Connect only at DTE rate |
| N1 | Auto rate negotiation |
| O0 | Return to data mode |
| O1 | Initiate an equalizer retrain and return to data mode |
| P | Pulse dial |
| Q0 | Result codes enabled |
| Q1 | Result codes disabled |
| T | Tone dial |
| V0 | Numeric responses |
| V1 | Text responses |
| W0 | Report DTE speed only |
| W1 | Report wire speed, error correction protocol, and DTE speed |
| W2 | Report DCE speed only |
| X0 | Hayes Smartmodem 300 compatible responses/blind dialing |
| X1 | Same as X0 plus all CONNECT responses/blind dialing |
| X2 | Same as X1 plus dial tone detection |
| X3 | Same as X1 plus busy signal detection/blind dialing |
| X4 | All responses and dial tone and busy signal detection |
| Y0 | Long space disconnect disabled |
| Y1 | Long space disconnect enabled |
| Z0 | Reset and recall user profile 0 |
8.5 모뎀을 테스트하는
이 섹션을 신속하게 확인하는 방법에 대해 설명을 제어할 수있는 능력을 컴퓨터에 모뎀을 연결합니다.
첫 번째 방법은 Windows 98/NT/Me/2K/XP에 적합합니다.
의 기본적인 아이디어는 "시리얼 통신" 소프트웨어를 시작하려면 거의 모든 전형에서 찾을 수있습니다의 설치를 Windows 운영 체제 : "HyperTerminal"합니다.
Windows 98 : "C:\Program Files\Accessories\HyperTerminal\Hypertrm.exe"
Windows 2000\XP: "C:\Program Files\Windows NT\hypertrm.exe"
(위 그림 참조하는 데 필요한 더블 - 따옴표를 만들 때 명령 프롬프트에서 실행할 때 단축키를하거나, 공백이 있기 때문에 파일의 경로를 포함합니다.)
명령 프롬프트에서 HyperTerminal 수있습니다하거나 탐색 메뉴를 시작합니다.
아래 Windows 2000\XP, 예를 들면, 소프트웨어 링크를 찾을 수있습니다 다음과 같은 경로의 끝에 메뉴 :
Start -> Programs -> Accessories -> Communications -> HyperTerminal -> HyperTerminal
메뉴에서 계층 구조 Start 메뉴를 선도 HyperTerminal
HyperTerminal을 시작하면, 여러 대화 상자가 나타납니다 :
HyperTerminal 대화 상자 :
1. Connection Description : 임의의 이름을 입력합니다;
2. Connect To : 선택 포트에 연결 모뎀 (예를 들면, COM1);
3. COM1 Properties : 비트 전송률을위한 PC와 모뎀 사이의 통신 등
나는이 낮은 비트 전송률을 지정 (2400 초당 비트)와 모뎀 사이의 PC 이것은 가능성 때문에 단순히 모든 모뎀을 위해 일하면서 골동품 공식적으로 사실이 아니합니다.
그것은 현대적인 모뎀을 일반적인 주변 115200 비트의 속도와 통신할 수 PC 초당 데이터 전송 속도의 경우에도 전화선은 초당 비트 9600이 낮은 경우는 특히합니다.
모뎀을 세션을 사용하여 다음과 같은 이미지를 보여줍니다 간단한 HyperTerminal :

모뎀을 사용하여 다양한 HyperTerminal이 명령을 사용하려고합니다
이 노트북에 모뎀을 테스트하는 손쉬운 방법 위의보기를 Windows 운영 체제를합니다.
"직렬 통신" 소프트웨어 프로그램을위한 다른 여러 가지 Windows 및 Linux합니다.
에 대한 Linux (또는 UNIX 변종) 당신을 "echo atm2 > /dev/modem" 이와 유사한 어떤 것을 할 수 있을지도 모릅니다 커맨드 라인에서, 또는 fp = fopen( "/dev/modem", "w" ); 다음과 같은 문장 fprintf( fp, "atm2" );에 의해 C 프로그램을 간단합니다.
8.6 소스 코드를 제어하는 모뎀을
아래 그림 참조 the C/C++ 컴퓨터에 코드를 텍스트에 명령을 전송 모뎀을 보여줍니다.
아래는지만을 표시하는 컴퓨터 코드를 Windows 운영 체제, 다른 운영 체제에 대한 일반의 아이디어를 쉽게합니다.
#include < windows.h >
HANDLE hCom = ((HANDLE)(0));
int main()
{
DCB dcb;
unsigned long int n = 0;
char * str = "COM1";
hCom = CreateFile( str, (GENERIC_READ ¦ GENERIC_WRITE),
0, NULL, OPEN_EXISTING, 0, NULL );
GetCommState ( hCom, (&(dcb)) );
dcb.BaudRate = CBR_9600;
dcb.ByteSize = 8;
dcb.Parity = NOPARITY;
dcb.StopBits = ONESTOPBIT;
SetCommState ( hCom, (&(dcb)) );
WriteFile( hCom, "ATM2\r", strlen("ATM2\r"), (&(n)), 0 );
FlushFileBuffers( hCom );
Sleep(1000);
WriteFile( hCom, "ATH1\r", strlen("ATH1\r"), (&(n)), 0 );
FlushFileBuffers( hCom );
Sleep(1000);
WriteFile( hCom, "ATDT5551212;\r", strlen("ATDT5551212;\r"), (&(n)), 0 );
FlushFileBuffers( hCom );
Sleep(3000);
WriteFile( hCom, "ATH0\r", strlen("ATH0\r"), (&(n)), 0 );
FlushFileBuffers( hCom );
Sleep(1000);
WriteFile( hCom, "ATM0\r", strlen("ATM0\r"), (&(n)), 0 );
FlushFileBuffers( hCom );
Sleep(1000);
CloseHandle( hCom );
return(0);
}
위의 접근하는 소프트웨어를 직렬 통신 포트 (예를 들어, "COM1"), 그리고 우리가이 포트에 연결하여 모뎀을 추측합니다.
텍스트의 소프트웨어에 명령을 보내는 방법을 다음과 같은 것들의 모뎀 :
1. 내장 스피커를 켜십시오 ("ATM2\r");
2. 전화선에 타고 "오프 후크" ("ATH1\r");
3. 전화 접속 전화 번호 ("ATDT5551212;\r");
4. 그 전화선에 "다시 후크" ("ATH0\r");
5. 끄기는 내부 스피커 ("ATM0\r").
컴퓨터에 코드를 위의 예제의 일부 관련성이 높은 Windows API 기능을 보여줍니다.
그러나, 컴퓨터 코드의 예제는 매우 융통성과에 대한 모든 오류를 확인하지 않습니다.
모뎀 the Sleep() 함수 호출을 확인하기 전에는 명령이 완료되는 데 시간을 다음 명령을 진행합니다.
이상적으로, 우리 자신을 확인하기 위해서, 텍스트 응답의 모뎀 (예를 들어, "OK" 또는 "ERROR").
8.7 모뎀을 제어 C++ class (Windows 운영 체제)
ZIP 아카이브 파일을 포함하는 다음과 같은 C++ class 모뎀을 제어하기위한 적합한 운영 체제를 통해 Windows합니다.
그것은 본질적으로 더 이상 정교한 버전의 데모 코드를 발표합니다.
또한, 랩의 모뎀 기능을 C++ class 이와 같은 방법으로 다른 플랫폼으로의 포팅 (예를 들면, Linux)은 용이합니다.
a Microsoft Visual C++ 6.0 프로젝트 파일의 소스 코드가 포함되어, 그래서 하나의 코드를 즉시 실행할 수있습니다 테스트로 구축하고있습니다.
하지만, 모든 관련성이 높은 소스 파일이 필요 ( modem_control.cpp, modem_control.h )는 두 개의 코드는 자신의 소프트웨어를 사용하여합니다.
9. 의 인터페이스를 사용하여
9.1 의 인터페이스를 사용하여 컴퓨터와 함께

내 실험에 사용되는 구성
첨부 스플리터를 전화선에 모뎀을 한 지점에 갈 예정인데, 다른 지사의 전화 인터페이스 회로 갈합니다.
2 개의 오디오 배선의 회로를 연결합니다 "마이크 입력" 및 "스피커 출력은" 개인용 컴퓨터의 사운드 카드 또는 오디오 소켓 또는 다른 오디오 장치를합니다.
이 문서에서 모뎀을 사용하여 다른 코드를 설명하실 수있습니다 모뎀을 사용하는 "전화 번호" 및 "전화 전화 번호를 올려합니다."
다음은 컴퓨터 및 재생 오디오를 원하는 방식으로 녹음할 수있다.
모뎀을 사용할 코드는 "다음의 전화를" 끊고 전화를 종료합니다.
당신이 의도에 대한 책임을 기록하는 경우 어떤 부분을 알려주 호출자의 호출합니다.
(...하지 않는 한 당신은 정부의! 그렇지 않으면, 할 사람들이 말하는 것처럼, 그리고 그들이 아니라!)
9.2 오디오 기기와 인터페이스를 사용하여
전화 번호를 첨부 스플리터 와이어, 한 지점으로가는 일반적인 전화, 그리고 다른 지사의 전화 인터페이스 회로 갈합니다.
오디오 신호의 회로에 연결 중 하나를 앰프 또는 녹음 장치로 마이크 입력합니다.
어떤 장치의 출력에 연결을 생산 낮은 - 진폭 오디오 (예를 들면, +/-1.0 볼트)을 중 하나 오디오 소켓에 회로합니다.
입체 음향의 오디오 출력을 연결하지 마십시오의 앰프 회로가 있기 때문에 매우 과잉 전압이 매우 높다는 전화 오디오합니다.
스테레오 앰프 보통 특별한 출력 (예를 들면, RCA 커넥터)를 보내는 출력 오디오를 다른 종류의 오디오 장비를 허용하는 오디오 입력 단자 (예를 들어, VCR, 테이프 레코더, 텔레비전, 등);이 낮은 - 전압 출력이가 사용하기에 적합 이 문서에서 설명하는 회로합니다.
따라서, 하나는 전화 번호를 사용하여 호출을 수락하거나 장소, 그리고 기록하고있는 전화를 사용하는 동안 오디오를 재생합니다.
당신이 의도에 대한 책임을 기록하는 경우 어떤 부분을 알려주 호출자의 호출합니다.
(...하지 않는 한 당신은 정부의! 그렇지 않으면, 할 사람들이 말하는 것처럼, 그리고 그들이 아니라!)
10. 전화 네트워크 개념을
10.1 학습 참조
작업의 전화 시스템은이 문서의 범위를 벗어납니다.
상담에 대한 참조의 끝에이 문서의 일부 정보가이 주제에.
그러나, 나는이 섹션에서 논의 재미있는 하이라이트합니다.
10.2 기본적인 전기 양상
10.2.1 전화 번호 또는 모뎀에 "연결 상태를"
이 전화 번호를 주도의 목표에는 두 가지 디자인 :
(1) 전기 전화를해야합니다 "투명"을 직류 (DC)들처럼 연결 끊기 개방형 회로 또는 때, 그것은 온 - 후크 상태;
(2) 교류 전류 (AC) 스파이크 링을 만드는 데 사용한 전화기에 전화를해야합니다 - 후크 상태에서 허용되는 그래서 그들은 반지를합니다.
둘 다이 이러한 목표를 달성함으로써이 같은 디자인의 전화가 아닌 - 편광 커패시터 (또는 2)은 전화 번호 밖에 링크를 전화선에 - 후크 상태에있을 때.
그러므로, 직류 전류를 통과 (DC) 수 없다, 그리고 교류 전류 신호를 둥글게 (AC) 종 또는 신호 회로를 통과할 수있습니다.
저항을 측정하고이 때 전화 번호를 DC - 후크 상태에서, 그것을 초과 40 Megaohms합니다.
DC 저항을 측정하고 모뎀을 때 온 - 후크 상태에서, 또한 40 Megaohms를 초과합니다.
전화 회사에서 제공한 the DC 전압으로 인해 어떠한 저항도받지 않습니다 전화를 감지 - 후크 때로는보고되지 48 Volts이 따로있습니다.
나는 +23.02 Volts (DC) 측정, 어디에 전화를해서 "빨간 선을" 긍정적인, 그리고 "녹색 와이어" 접지합니다.
참고 사항이 극적으로 DC 전압되었습니다 전화는 이륙을 때 - 훅; +7.17 Volts (DC) 때 나는 전화 번호는 따로 측정 - 후크 상태합니다.
보도에 신호 전압이 90 Volts (16-60 Hz 교류 전류), 낙상 수있는 사람들을 깜짝 놀라게하거나 특정 상황.
10.2.2 전화 번호 또는 모뎀은 "오프 후크" 상태
전화 및 모뎀에 전화선을 사용 요청을 줄임으로써 자신의 DC 전기 저항합니다.
이 조건은 전화 제공 업체에 의해 감지와 철사이 활성화될합니다.
DC 저항을 측정하고이 때 전화 번호를 따로 - 후크 주, 그것은 대략 6.83 Megaohms합니다.
DC 저항을 측정하고 모뎀을 때 따로 - 후크 상태에서, 그것이 거의 정확하게 1.500 Megaohms합니다.
이러한 장치를 둘 다에 저항하는 리콜을 초과가를 40 Megaohms - 후크 상태에있을 때.
흥미로운 것은 이러한 저항이 매우 높음, 인간의 전기 저항을 닫습니다 전선을 만질 때 마른 손.
예를 들어, 만약 내 왼손 상태로 철사, 그리고 내 오른손에 철사로 상대적으로 건조한 손, 나는 저항이 낮은 경우는 특히 0.5 Megaohms을 잡을 수있다는 전선에 의해 긴밀하게 압박합니다.
나에게 아주 가볍게 DC가 높은 저항을 압박, 대략 1.5 Megaohms은 여전히 낮은만큼 분명히 나는 말씀의 전화 회사에 전화를합니다.
(절대 연락 전화 번호 전선!)
따라서, 하나 고르고 전화 또는 모뎀을 따로 시뮬레이션할 수있습니다 - 후크 1 Megaohm 저항을 도입하는 것만으로 건너 전화선합니다.
회로를 하나를 통해 할 수있어 항구에 의해 통제하는 컴퓨터에 릴레이 (RS-232, parallel port, USB 등)을,하지만 모뎀이 편리하고 저렴한, 그리고 다양한 대안 릴레이 회로를 사용자 정의합니다.
위에서 언급한 바와 같이 현재의 전화 회사가 계속 (DC)에 직접적인 잠재적인 차이 (전압) 건너 전화선에 전화를 감지하고 갈 - 후크 온 - 후크 상태로 복귀한다.
나는이 전압 측정을위한 +23.02 Volts (DC) - 훅, 그리고 +7.17 Volts (DC)을 따로 - 후크합니다.
10.3 오디오 신호
- 후크 상태로 따로 전화의 "발신음을" 갖고있는 것을 번갈아 현재 (AC) 루트 - (RMS) 전압을 의미 - 스퀘어 0.139 Volts AC합니다.
전체를 의미하는 신호가 편파 DC 전압은 약 +5 Volts DC; 나는 실험을하는 동안 측정된 +7.17 Volts DC합니다.
의 오디오 신호가 매우 작은 편차 (단 몇 %), 주위의 DC 전압합니다.
이것은, 예를 들면, 그 주위에 변동의 오디오 신호를하지 제로 전압;의 오디오 신호를 결코 현재의 흐름을 만들어 전화선을 반대 방향으로합니다.
내 전화 인터페이스 회로 것으로 나타났다 0.139 VAC 신호를 변환합니다 주위 0.030 VAC (예를 들어, 30 mV AC)를 사용하는 오디오 기기 (예를 들면, 마이크 입력에 사운드 카드가).
10.4 오디오 대역폭
의 기본 기능을 음성 커뮤니케이 션을 활성화의 전화 시스템은 인간을합니다.
다음과 같은 그림을 몇 초 동안의 평균 스펙트럼 에너지 연설을 오디오합니다.

평균 스펙트럼 에너지 (데시벨 스케일)의 연설을 몇 초 동안 전체 오디오 범위 (20 Hz을 20 kHz). 의 수직 규모는 데시벨, 그래서이 그래프에 조금이라도 겸손 감소를 나타냅니다 소리 에너지를 극적으로 감소합니다.
차트를 데시벨 이상 규모의 낮은 값을 뜻 자릿수의 차트가 실제로는 더 높은 값을 차트를 적게합니다.
그것은 분명하다 연설을 상당한 부분의 총 에너지를 0 Hz 소리가를 4000 Hz에 포함되어있는 간격을합니다.
인간을 이해할 수있습니다 연설을 안정적으로 에너지를 밖으로 간격을 300 Hz 경우에도 모든 오디오 3000 Hz 멸망을합니다.
그러나, 오디오 에너지를 제한하는 효과가 주관하는이 범위는 조음 음성 소리 숨막히는과 부족합니다.
미묘한 차이를 'F' 그리고 전화를 통해 손실은 쉽게 'S'합니다.
미국이의 전화 시스템에 음성 채널을 0 Hz을 4000 Hz 사이에 전용 주파수를 운반합니다.
그러나, 그 목소리를 통과 3000 Hz가 300 Hz의 범위로 제한하고이 에너지를 밖으로 급증이 밴드의 음성 감쇄합니다.

음성 대역폭을 ( 300 Hz - 3000 Hz )의 전화 번호를 시스템에 음성 채널은 미국 ( 0 Hz - 4000 Hz )
스펙트럼 줄거리는 다음과 같은 이미지는 전형적인 몇 초 동안 전화 통화 기록합니다.

몇 초 스펙트럼의 전형적인 플롯을 기록한 전화 번호 회화 (남성 목소리)
비록 해상도가 상대적으로 낮은 주파수의 대역폭의 효과를 제한의 전화 시스템은 분명합니다.
실험적인 목적을 위해, 오디오 등록 정보를 전화 시스템은 그래픽 이퀄라이저를 모의, 또는 대역 필터의 소리 편집 소프트웨어 패키지, 간단하게, 모든 350 Hz 위 아래에 모든 3500 Hz 필터링합니다.
10.5 중요 오디오 주파수를
"색조 손길을" 사용하여 자동으로 "전화 번호와" 상호 작용 시스템은 멀티 - 주파수를 소리로 알려져 듀얼 - (DTMF) 신호를합니다.
이러한 색조를 생성할 수있습니다 단지를 추가하여 적절한 주파수와 함께 두 개의 사인 파에서 보는 바와 같이, 다음과 같은 매트릭스의 주파수를합니다.
참고로 소리가 DTMF의 최소 유지 시간을 보내는 50 milliseconds, 그리고이 최소 출시 시간 (침묵 격차 DTMF 소리)는 50 milliseconds합니다.
지연이가 아마 200 milliseconds를 사용하여 신뢰할 수있습니다.
"다이얼 톤, 통화중 신호," 그리고 "반지 - 위로" 소리 또한 주파수의 조합에서 정의한 미국 :
11. 대체 전화 번호 인터페이스 방법을
나는 4 시간 투자를 $30를 작성하는 회로를 허용하고 개인 컴퓨터에 전화선을 통해 음성 신호를 보내고받을합니다.
cetain 종류의 전문 지식과 장비이 필요로합니다.
또한, 학교에 갈 의지하지 않는 경우에는 기업이 회로의 제조, 만들 수없습니다 제품 (싼 음성 - 우편 또는 자동 응답 전화)가이 인터페이스가 필요합니다.
가장 쉽게, 저렴한 대안의 하드웨어 방법을 나는이 문서에서 설명하는 소프트웨어를 사용하는 방법은 음성의 기능에 액세스하려면 "음성 모뎀을합니다."
그러나, 나는 그런 말해야합니다와 비교를 사용하는 사용자 정의 회로, 특별한 소프트웨어와 함께 사용하는 음성 모뎀은 아주 플랫폼 - 구체적이고 일반적으로 매우 고통스럽고 프로그램, 구성 및 사용합니다.
의 이익 (추측이 음성 모뎀)은 순수 소프트웨어 솔루션이 될합니다.
음성 모뎀과 특별한 소프트웨어를 사용하는 경우, 당신의 시스템을 간단하게 다음과 같은 다이어그램 수있습니다.

내부 "음성 모뎀을" 사용하는 시스템 및 소프트웨어
필요에 따라 음성 모뎀의 다양한 측면의 음성 데이터를 반 - 듀플렉스 수있습니다 (예를 들어, 소프트웨어는 "토크" 또는 "들어" 있지만 동시에 둘 다), 또는 전체 - 듀플렉스합니다.
반 - 듀플렉스 제어 소프트웨어를 추가할 수도있습니다 복잡하고 일부를 결정할 때 왜냐하면 당신이 필요로 송신 및 수신 오디오합니다.
오디오 및 디지털 전화선의 음성 모뎀을 USB 이상의 데이터를 전송하거나 외부 RS-232 경우, 또는 위에 PCI 버스, 만약 내부합니다.
12. Microsoft Telephony API (TAPI)
TAPI 2.0 및 Microsoft의 운영 체제가 TAPI 3.0 DLLs합니다.
TAPI 3.0가 많은 소프트웨어 문제, 대부분의 사람들은 간단하게 사용이 Microsoft TAPI 사용 TAPI 2.0 (가 원하는 거의 모든 기능을) 대신 TAPI 3.0합니다.
"wave/in" 및 "wave/out" 장치를 사용하여 음성 모뎀의 오디오 스트림을 접근합니다.
TAPI 책 내용은이 문서의 절을 참조하십시오. 이 책은가 오래지만 TAPI 2.0의 세부 사항에 대해 설명합니다.
13. Java Telephony API
잘 모르겠 Java Telephony API에 대해서는 아무것도합니다.
그러나,이 것은 독립적인 운영 체제의 이익을, 그리고 아마이보다 훨씬 간단 추상적인 관념을 Microsoft TAPI!
14. 다양한 상용 제품
상업, 랙 - 마운트 하드웨어 인터페이스를 여러 외부 전화 번호 전선은 음성 데이터와 컴퓨터를 교환하는 능력을합니다.
"Voice Over IP" (VoIP) 제품, 같은 "인터넷 전화," 이제는 사방에 (예를 들면, "스카 이프)."
물론 컴퓨터 소프트웨어의 오디오에 대한 접근을 쉽게 얻으실 수있습니다 같은 전화 연결을합니다.
15. 참조
최고의, 대부분의 종합적인 안내서에 전화 회선 나는 인터넷에서 발생 :
또 다른 흥미로운 참조 :
재미있는 일 (그리고 정신 나간) 안내서를 지불 - 전화 주위에 미국 및 캐나다 :
(봐 "상단에 공헌" 보수 - 전화 번호, 전화 음성 샘플, 그리고 전화 번호 사진을합니다.)
16. 도서
16.1 Understanding Telephone Electronics (4th ed)
Understanding Telephone Electronics (4th ed);
Newnes; 2001;
Stephen J. Bigelow, Joseph J. Carr, Steve Winder;
$25.45 US (2001)
이 책은 여러 측면에 대해 설명의 전화 번호의 전화 네트워크에 회로와 미국에서 작업을 수행합니다.
회로 및 프로토콜에 대한 세부 정보 많다; 모든 네트워크에 자신의 전화에서 전화를합니다.
이 기술은 매우 다른 의심의 여지가없이 지금, 그러나 어느 정도는 아마도이 책은 역사 교과서보다 더 많은 실용적인합니다.
16.2 Windows Telephony Programming: A Developer's Guide to TAPI
Windows Telephony Programming: A Developer's Guide to TAPI;
Addison-Wesley; 1998;
Chris Sells;
$33.95 US (1998)
the Microsoft Telephony API (TAPI)가 더러워과 혼란을 불필요하게, 그리고는 지금 아주 오래된합니다. 이 책은 위에서 언급한 적이 얻을 수있는 유일한 도서에 대한 출판 Microsoft Telephony API (TAPI)합니다.