KR20080073417A - 인터넷 전화기의 음성 데이터 송신 방법 - Google Patents
인터넷 전화기의 음성 데이터 송신 방법 Download PDFInfo
- Publication number
- KR20080073417A KR20080073417A KR1020070011993A KR20070011993A KR20080073417A KR 20080073417 A KR20080073417 A KR 20080073417A KR 1020070011993 A KR1020070011993 A KR 1020070011993A KR 20070011993 A KR20070011993 A KR 20070011993A KR 20080073417 A KR20080073417 A KR 20080073417A
- Authority
- KR
- South Korea
- Prior art keywords
- voice data
- linux
- rtp
- unit
- device driver
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Telephonic Communication Services (AREA)
Abstract
본 발명은 인터넷 전화기에서 음성데이터를 송신하는 것에 관한 것으로 리눅스 오에스를 사용하는 인터넷 전화기에서 음성 데이터를 네트워크로 전송시에 우선순위가 높은 리눅스부에서 음성 데이터를 네트워크로 전송하도록 제어하여 음성데이터를 실시간으로 정확하게 상대 단말기로 전송하는 인터넷 전화기의 음성 데이터 송신 방법에 관한 것이다. 본 발명은 인터넷 전화기에서 음성 데이터를 네트워크로 전송시에 DSP 디바이스 드라이버에서 발생시키는 DSP 엔코딩 인터럽트 타임에 RTP 인캡슐레이션하여 네트워크로 전송하여 정확하게 음성 데이터를 전송하는 것이다.
또한, 본 발명은 인터넷 전화기를 이용하여 음성 데이터를 네트워크로 전송시에 리눅스부에서 DSP 디바이스 드라이버에서 발생시키는 DSP 엔코딩 인터럽트 타임에 음성데이터를 rtp 버퍼부에 저장시키고, 코딩알고리즘의 지연시간에 맞는 주기마다 rtp 버퍼부에 저장된 음성데이터를 RTP 인캡슐레이션하여 네트워크 드라이버로 전송하는 인터넷 전화기의 음성 데이터 송신 방법이다.
DSP 인터럽트, 타이머, rtp버퍼부, 인터넷 전화기, 음성데이터.
Description
도 1은 종래의 인터넷 전화기의 개략적인 구성도
도 2는 본 발명의 일 실시예에 따른 인터넷 전화기에서 음성 데이터를 송신하는 구성도
도 3은 본 발명의 일 실시예에 따른 인터넷 전화기에서 음성 데이터를 송신하는 순서도
도 4는 본 발명의 일 실시예에 따른 리눅스 커널 타이머에 의한 인터넷 전화기에서의 음성 데이터 송신 구성도
도 5는 본 발명의 일 실시예에 따른 리눅스 커널 타이머에 의한 인터넷 전화기에서의 음성 데이터 송신 순서도
본 발명은 인터넷 전화기에서 음성데이터를 송신하는 것에 관한 것으로 특히 리눅스 오에스를 사용하는 인터넷 전화기에서 음성 데이터를 네트워크로 전송시에 우선순위가 높은 리눅스부에서 음성 데이터를 네트워크로 전송하도록 제어하여 음성데이터를 실시간으로 정확하게 상대 단말기로 전송하는 인터넷 전화기의 음성 데이터 송신 방법에 관한 것이다.
일반적으로 인터넷 전화기는 PSTN(public switched telephone network) 전화기와는 달리 인터넷에 전화기가 연결되어 영상/음성 데이터를 패킷(packet)화하여 상대 단말기와 통신하는 단말기를 말한다.
리눅스(Linux)는 대형 기종에서만 작동하던 운영 체계인 유닉스를 386 기종의 개인용 컴퓨터에서도 작동할 수 있게 만든 운영 체계이다. 리눅스는 프로그램 소스 코드가 공개되어 있으므로 원하는 대로 특정 기능을 추가할 수 있을 뿐만아니라 어느 플랫폼에도 포팅이 가능하다. 이러한 장점 때문에 일반 기업과 인터넷서비스업체, 연구 기관 등에서 수요가 늘어나고 있다. 리눅스의 설치 및 구성, 그리고 관리 운영 기술 및 프로그래밍 교육도 점차 활발해지고 있는 추세이다.
종래의 리눅스 오에스를 사용하는 인터넷 전화기에서의 송신 음성을 처리하는 것은 VoIP 어플리케이션부에서 리눅스 오에스부와 디바이스 드라이버부를 제어하여 인터넷으로 통화를 처리하였다.
도 1은 종래의 인터넷 전화기의 개략적인 구성도를 나타내고 있다.
종래의 인터넷 전화기는 도 1과 같이 다수 개의 모듈로 구성되며, VoIP 어플리케이션부(20), 리눅스 오에스부(40)와 하드웨어를 제어하는 디바이스 드라이버부(50)로 이루어진다.
도 1의 VoIP 어플리케이션부(20)는 RTP 컨트롤부(RTP Control)(22), 시그널링 컨트롤부(Signaling Control)(24), 후크 컨트롤부(Hook Control)(26), DSP 컨트롤부(DSP Control)(28), PSTN 컨트롤부(PSTN Control)(30) 등으로 구성되고, 디바이스 드라이버부(50)는 네트워크 디바이스 드라이버(52), 후크 디바이스 드라이버(54), DPS 디바이스 드라이버(56), PSTN 디바이스 드라이버(58) 등으로 이루어지며 하드웨어를 제어한다.
VoIP 어플리케이션부(20)의 시그널링 컨트롤부(Signaling Control)(24)는 호 처리에 대한 부분을 체크 함으로서 통화신호가 수신되는 것을 판단하고 제어하며, PSTN 컨트롤부(PSTN Control)(30)에서는 PSTN으로부터 전화가 왔는지를 판단하고 제어하고, 후크 컨트롤부(Hook Control)(26)는 사용자의 후크 스위치(Hook Switch) 동작을 판단하고 실행 제어한다.
DSP 컨트롤부(DSP Control)(28)는 네트워크로부터 수신된 음성 데이터를 재생하기 위한 디코딩(Decoding) 처리, 네트워크로 음성 데이터를 송신하기 위한 엔코딩(Encoding) 처리를 담당한다.
RTP 컨트롤부(RTP Control)(22)는 디코딩/엔코딩(Decoding/Encoding)된 음성 데이터를 네트워크로 전송하고, 네트워크로부터 수신하기 위한 RTP 처리를 담당한다.
리눅스(Linux) 오에스부(40)에서 VoIP 어플리케이션들은 도 1의 화살표에서도 나타낸 바와 같이 상기한 VoIP 어플리케이션부(20)를 구성하는 상술한 각 모듈을 순차적으로 실행하는 단일 태스크 오퍼레이션(Task Operation)으로 구성된다.
VoIP 어플리케이션부(20)를 구성하는 각각의 모듈은 사용자의 영상/음성을 인터넷으로 보내고 받기 위해 사용자의 입력을 받고, 호 처리 역할을 하며 데이터를 샘플링 하고 패킷(packet)화하여 네트워크로 전송하기 위한 기능들을 담당한다.
도 1의 인터넷 영상/음성 전화기는 종래의 PSTN 전화기와는 달리 인터넷에 전화기가 연결되어 영상과 음성 데이터를 패킷화하여 상대 단말기와 통신한다.
인터넷 전화기의 각각의 모듈은 사용자의 영상/음성을 인터넷으로 전송하고 수신하기 위해 사용자의 입력을 받아들이고, 호처리를 하며 데이터를 샘플링하고 패킷화하여 네트워크로 전송하기 위한 기능을 처리한다. 또한 상대 단말로부터 전송되는 영상/음성 데이터를 알맞게 재생함으로써 인터넷 영상/음성 전화기를 사용하는 사용자가 상대방의 영상/음성을 잘 보고 들을 수 있는 기능을 제공한다.
한편, 음성 데이터를 인터넷 전화기를 이용하여 전송하는 데에는 인터넷의 자원을 최소한으로 활용하고 보다 효율적으로 전송하기 위해 다양한 코딩 알고리즘을 사용하며 G.723.1, G.729, G.711 ulaw 등의 코딩 알고리즘을 주로 사용한다.
아래의 표 1에는 코딩 알고리즘의 대역폭을 나타낸 것이다.
음성 코덱 | 대역폭 |
G.723.1 | 6.3 kbps |
G.729 | 8kbps |
G.711(ulaw, alaw) | 64kbps |
그리고 이러한 코딩 알고리즘은 네트워크로 보내지는 전송 딜레이(Delay)에 따라서 각각 보내지는 음성 패킷(packet) 사이즈가 아래의 표 2와 같이 달라진다.
표 2는 음성 코덱의 전송 딜레이(Delay)에 따른 음성 패킷 사이즈를 나타낸 것이다.
G.723 | G.729 | G.711 | |
인터벌\대역폭(Bandwidth) | 6.3kbps | 8kbps | 64kbps |
10ms | \ | 10바이트 | 80바이트 |
20ms | \ | 20바이트 | 160바이트 |
30ms | 24바이트 | 30바이트 | 240바이트 |
표 2에서 G.729 코덱(Codec)의 예를 보면, 10ms 간격마다 10 바이트(bytes)를 전송해야만 대역폭 8kbps를 사용하는 계산이 나온다.
표 2에 나타낸 바와 같이 각 음성 코딩 알고리즘마다 전송 규약이 있으므로 인터넷 음성 전화를 하는 양단말은 정확한 전송 딜레이(Delay)에 맞춰서 음성 패킷을 주고 받아야 하고 수신된 음성 패킷(packet)을 잘 재생하기 위해서는 정확한 시간에 이 음성 패킷(packet)을 DSP(Digital Signal Processor)로 전달해야 한다.
그러나 도 1과 같은 종래의 리눅스 시스템의 VoIP 어플리케이션부(20)에서는 신뢰성 있는 타이머 기능이 없고, 디바이스 드라이버 레벨에서 생성된 음성 패킷을 상대 단말로 송신하기 위해서는 엔코딩 오디오 버퍼(Encoding Audio Buffer)를 빠른 시간 안에 폴링(Polling) 해서 보낼 데이터가 있는지를 검사하고, 전송할 음성 데이터가 있는 경우 이를 가져와서 RTP 데이터로 만들어 상대 단말에 송신한다. 그러나 이때 다른 모듈에서의 처리가 길어져서 폴링(polling)하는 시간이 늦어지면 상대 단말로 전송해야할 RTP 데이터의 정확한 송신이 어려워지게 된다.
표 2에서 보는 바와 같이 G.729 코덱(Codec)을 인터넷 전화기에서 사용할 경우에 10ms 안에 10 바이트(bytes)의 음성 데이터를 정확하게 상대 단말로 송신해야 상대 단말기의 사용자가 음성을 잘 들을 수 있다.
그러나 리눅스 시스템의 단일 프로세스로 구성되어 있는 VoIP 어플리케이션부(20)에서는 일련의 과정을 순차적으로 처리할 수밖에 없다. 또한, 실제로 통화중에 새로운 호 처리를 하거나 사용자로부터 후크(Hook) 동작이 일어났을 때의 처리 때문에 시간이 오래 걸려 10ms 마다 호출되어야 하는 RTP 컨트롤부(RTP Control)(22)의 진입이 늦어질 수 있으며, 이때에는 상대 단말로 전송하는 RTP데이터를 정확한 시간 내에 전송하지 못하며, 상대방의 단말에서는 음성을 제대로 들을 수 없는 문제점이 발생된다.
이렇게 각 음성 코딩 코덱에 맞는 전송 지연 시간 안에 처리가 늦어지면 대역폭도 보장할 수 없게 된다. 이는 여러 음성 채널을 가지는 다채널 장비에서 신뢰도는 더욱 떨어지게 된다.
실제로 통화 중에 새로운 호를 처리하거나 사용자로부터 후크 동작이 일어났을 때의 처리 등 음성 재생 중 동시에 어떤 동작을 처리할 때 시간이 오래 걸려 10ms 마다 호출되어야 하는 RTP 컨트롤부(RTP Control)(22)의 진입이 늦어질 수 있으며 이러한 경우 단말은 음성 데이터를 상대 단말로 정확한 시간 안에 보낼 수 없는 문제점이 발생된다.
본 발명은 상술한 문제점을 해결한 것으로, 본 발명의 목적은 리눅스 오에스 를 사용하는 인터넷 전화기로 음성 데이터를 네트워크로 전송시에 DSP 디바이스 드라이버에서 발생시키는 DSP 엔코딩 인터럽트 타임에 RTP 인캡슐레이션하여 음성 데이터를 네트워크로 전송하여 정확하게 음성 데이터를 전송하는 인터넷 전화기의 음성 데이터 송신 방법을 제공함을 목적으로 한다.
또한, 본 발명의 다른 목적은 리눅스 오에스를 사용하는 인터넷 전화기로 음성 데이터를 네트워크로 전송시에 리눅스부에서 DSP 디바이스 드라이버에서 발생시키는 DSP 엔코딩 인터럽트 타임에 음성데이터를 rtp 버퍼부에 저장시키고, 코딩알고리즘의 지연시간에 맞는 주기마다 rtp 버퍼부에 저장된 음성데이터를 RTP 인캡슐레이션하여 네트워크 드라이버로 전송하는 인터넷 전화기의 음성 데이터 송신 방법을 제공함을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 인터넷 전화기의 음성 데이터 송신 방법은,리눅스 오에스를 사용하는 인터넷 전화기에서 통화가 연결되어 사용자의 음성데이터가 DSP 디바이스 드라이버에서 코딩되고 리눅스부에서 상기 음성데이터를 RTP 인캡슐레이션하는 1 과정과, 리눅스부에서 상기 RTP 인캡슐레이션된 음성 데이터를 네트워크 디바이스 드라이버를 통하여 상대방의 단말기로 전송하는 2 과정을 포함함을 특징으로 한다.
상기한 목적을 달성하기 위한 본 발명의 다른 방법은, 리눅스 오에스를 사용하는 인터넷 전화기에서 통화가 연결되어 사용자의 음성데이터를 DSP 디바이스 드라이버에서 코딩하여 리눅스부에 설치된 버퍼부에 저장되는 3 과정과, 리눅스부에서 미리 설정한 타이머가 구동될 때 상기 버퍼부에 저장된 상기 음성데이터를 RTP 인캡슐레이션하여 네트워크 디바이스 드라이버를 통하여 상대방의 단말기로 전송하는 4 과정을 포함함을 특징으로 한다.
이하, 본 발명의 실시 예를 첨부한 도면을 참조하여 설명한다.
하기의 설명에서는 본 발명에 따른 동작을 이해하는데 필요한 부분만이 설명되며 그 이외 부분의 설명은 생략될 것이라는 것을 유의하여야 한다.
본 발명은 오에스인 리눅스를 사용하는 인터넷 전화기의 통화 음성 송신 방법에 관한 것으로, 실시간으로 송신되는 음성 데이터의 처리를 신뢰성 높은 음성 데이터의 처리를 우선순위가 낮은 VoIP 어플리케이션부에서 처리하지 않고 리눅스 오에스부에서 처리하도록 하여 정확하고 좋은 음질로 통화할 수 있도록 한다.
도 2는 본 발명의 일 실시예에 따른 인터넷 전화기에서 음성 데이터를 송신하는 구성도이다.
도 2의 인터넷 전화기에는 VoIP 어플리케이션부(20), 리눅스부(40)와 디바이스 드라이버부(50)로 구성된 것이다.
VoIP 어플리케이션부(20)에는 RTP 컨트롤부(RTP Control)(22), 시그널링 컨트롤부(Signaling Control)(24), 후크 컨트롤부(Hook Control)(26), DSP 컨트롤부(DSP Control)(28) 등으로 구성되고, 디바이스 드라이버부(50)는 네트워크 디바이스 드라이버(52), DPS 디바이스 드라이버(56) 등으로 이루어지며 하드웨어를 제어한다.
도 2의 인터넷 전화기는 음성 데이터를 전송시에 VoIP 어플리케이션부(20)의 모든 모듈을 통하지 않고 우선순위가 높은 리눅스부(40)에서 처리하여 전송하여 정확한 시간에 양질의 음성 데이터를 상대방의 단말에서 수신할 수 있도록 한다.
도 2의 인터넷 전화기에서 음성통화의 연결과 종료는 종래의 방식을 따른다. 따라서 이와 관련된 설명은 생략한다.
도 2의 인터넷 전화기는 빠른 시간에 샘플링되는 음성 데이터를 실시간으로 정확한 시간에 상대 단말에게 송신하기 위해 VoIP 어플리케이션부(20)보다 우선순위가 높은 리눅스부(40)에서 음성데이터를 RTP 인캡슐레이션하여 전송하도록 하여 실시간으로 정확한 시간에 상대 단말로 송신한다.
도 2의 인터넷 전화기는 VoIP 어플리케이션부(20)에서 처리하던 RTP 송신과 RTP 데이터 엔코딩을 리눅스부(40)에서 처리하도록 한다.
음성 데이터를 인터넷으로 송신하기 위해서는 첫번째 알맞은 네트워크 헤더 인캡슐레이션(Encapsulation) 과정을 거치고, 두번째로 상대방의 RTP 페이로드 길이(payload length)에 알맞은 크기의 오디오 스트림(Audio Stream)으로 만드는 작업이 필요하다. 세번째로 네트워크 바이트 리오더링(Network Byte Re-ordering) 과 RFC2833 DTMF(dual tone multi-frequency) 이벤트 생성 등의 부과 작업이 필요하다.
도 2의 인터넷 전화기는 리눅스 오에스를 사용하는 인터넷 전화기로 음성 데이터를 네트워크로 전송시 DSP 디바이스 드라이버(56)에서 발생시키는 DSP 엔코딩 인터럽트 타임에 리눅스부(40)에서 RTP 인캡슐레이션(Encapsulation)하여 음성 데 이터를 네트워크로 전송하여 정확하게 음성 데이터를 전송한다.
DSP 디바이스 드라이버(56)에서는 사용자가 말한 음성 데이터를 표 2에서 나타낸 여러 코딩 알고리즘에서 하나를 사용하여 코딩하고 정확한 시간마다 인터럽트를 발생시킨다. 이 시간을 DSP 엔코딩 인터럽트 타임이라고 한다. DSP 엔코딩 인터럽트 타임은 오디오 코덱에 기본적으로 정의된 간격(Interval)마다 디코딩 인터럽트가 발생한다.
즉, 도 2에 나타낸 본 발명은 DSP 디바이스 드라이버(56)에서 발생시키는 정확한 DSP 엔코딩 인터럽트 타임에 리눅스부(40)에서 음성 데이터를 RTP 인캡슐레이션(Encapsulation)하여 네트워크로 전송하는 동작까지 수행함으로써 음성 데이터의 송신의 신뢰성을 보장한다.
상술한 정확한 DSP 엔코딩 인터럽트 타임에 음성 데이터를 RTP 인캡슐레이션(Encapsulation)하는 것은, 네트워크 헤더 인캡슐레이션(Encapsulation) 과정과 상대방의 RTP 페이로드 길이(payload length)에 알맞은 크기의 오디오 스트림(Audio Stream)으로 만드는 작업과 네트워크 바이트 리오더링(Network Byte Re-ordering)과 RFC2833 DTMF(dual tone multi-frequency) 이벤트 생성 등의 부과 작업을 포함한다.
또한, 본 발명의 상술한 DSP 엔코딩 인터럽트 타임에 음성 데이터를 RTP 인캡슐레이션(Encapsulation)하는 방식은 엔코딩 인터럽트가 발생하고 복귀할 때까지 네트워크 헤더를 만들고 오디오 데이터를 상대방의 페이로드 크기에 맞게 만들어 보내기 위한 여러 작업들을 거치기 때문에 빠른 DSP 프로세싱 타임을 요구하는 인 터럽트 서비스 루틴(Interrupt Service Routine)에서는 본 발명의 다른 실시 예인 리눅스부에서의 커널 타이머에 의한 전송 방법을 적용하는 것도 가능하다.
도 3은 본 발명의 일 실시예에 따른 인터넷 전화기에서 음성 데이터를 송신하는 순서도이다.
단계 400에서 본 발명에서의 음성통화의 연결과 종료는 종래의 방식을 따른다.
단계 402에서 사용자가 인터넷 전화기를 이용하여 상대방에게 말을 한다.
단계 404~406에서 사용자가 인터넷 전화기를 통하여 말한 음성데이터는 DSP 디바이스 드라이버(56)에서 음성데이터를 코딩 알고리즘에 의해 코딩하고 정확한 시간마다 인터럽트를 발생시킨다.
단계 408~410으로 정확한 DSP 엔코딩 인터럽트 타임에 음성 데이터를 리눅스부(40)에서 RTP 인캡슐레이션(Encapsulation)하여 네트워크 디바이스 드라이버(52)를 통하여 네트워크로 전송되어 상대방의 전화기로 음성 데이터가 정확하게 송신되어 양질의 음성통화를 제공한다.
음성 데이터를 RTP 인캡슐레이션(Encapsulation)하는 것은 네트워크 헤더 인캡슐레이션(Encapsulation) 과정과 상대방의 RTP 페이로드 길이(payload length)에 알맞은 크기의 오디오 스트림(Audio Stream)으로 만드는 작업과 네트워크 바이트 리오더링(Network Byte Re-ordering) 과 RFC2833 DTMF(dual tone multi-frequency) 이벤트 생성 등의 부과 작업을 포함한다.
본 발명은 상술한 바와 같이 VoIP 어플리케이션부에서 음성데이터를 전송처 리하지 않고 우선순위가 높은 리눅스부에서 처리하도록 하여 정확하고 양질의 음성데이터를 네트워크로 전송한다.
한편, 도 4는 본 발명의 다른 실시예로 리눅스 커널 타이머에 의한 인터넷 전화기에서의 음성 데이터 송신 구성도이다.
도 4의 리눅스부(40)에는 도 3과 다르게 리눅스부(40)에 rtp 버퍼부(42)를 설치한다.
본 발명의 리눅스부(40)에서는 VoIP 어플리케이션부(20)에서 와는 달리 OS 타이머에 의한 정확한 타이머 함수를 제공한다. 본 발명은 OS 타이머에 RTP 음성데이터를 송신하기 위한 타이머를 등록한다. 타이머는 인터넷 전화기에서 사용하는 코딩 알고리즘의 딜레이 시간에 맞는 타이머를 등록하여 음성 송신의 신뢰성을 보장한다.
타이머를 인터넷 전화기에서 사용하는 코딩 알고리즘에 맞도록 등록한 후, 인터넷 전화기로 통화시에 DSP 디바이스 드라이버에서 사용자의 음성데이터를 DSP 엔코딩 인터럽트 마다 rtp 버퍼부(42) 영역에 먼저 저장한다.
rtp 버퍼부(42) 영역에 저장된 음성데이터는 코딩 알고리즘의 딜레이 시간에 맞도록 설정된 타이머 핸들러(Timer Handler) 함수의 구동에 의하여 rtp 버퍼부(42)에 저장된 음성데이터를 읽어와서 RTP 인캡슐레이션 등의 작업을 하여 네트워크 디바이스 드라이버(52)로 전송하여 상대방의 전화기로 전송하는 것이다.
이러한 방식은 상술한 DSP 엔코딩 인터럽트 타이머를 활용하는 방법보다는 인터럽트 서비스 루틴의 부하를 줄이고 독립적인 OS(operating system) 타이머를 이용하므로 DSP의 부하를 줄일 수 있는 장점이 있다.
도 4와 같은 본 발명의 리눅스 커널 타이머에 의한 인터넷 전화기에서의 음성 데이터 송신 방식은 OS에서 10ms 단위의 빠르게 반복하는 타이머를 생성하므로 고사양의 인터넷 전화기에 적합하고, 낮은 사양의 인터넷 전화기에서는 성능에 영향을 미칠 수 있다.
도 5는 본 발명의 리눅스 커널 타이머에 의한 인터넷 전화기에서의 음성 데이터 송신 순서도이다.
단계 500에서 본 발명에서의 음성통화의 연결과 종료는 종래의 방식을 따른다.
단계 502에서 사용자가 인터넷 전화기를 이용하여 상대방에게 말을 한다.
단계 504에서 사용자가 인터넷 전화기를 통하여 말한 음성데이터는 DSP 디바이스 드라이버(56)에서 음성데이터를 코딩 알고리즘에 의해 코딩하고 rtp 버퍼부(42) 영역에 저장한다.
단계 506~508에서 인터넷 전화기에서 사용하는 코딩 알고리즘의 딜레이 시간에 맞도록 설정된 타이머가 타이머 핸들러 함수에 의하여 구동되고, 리눅스부(40)에서는 타이머의 구동에 따라 rtp 버퍼부(42)에 저장되었던 음성데이터를 RTP 인캡슐레이션 등의 작업을 처리한다.
음성 데이터를 RTP 인캡슐레이션(Encapsulation)하는 것은 상술한 네트워크 헤더 인캡슐레이션(Encapsulation) 과정과 상대방의 RTP 페이로드 길이(payload length)에 알맞은 크기의 오디오 스트림(Audio Stream)으로 만드는 작업과 네트워 크 바이트 리오더링(Network Byte Re-ordering) 과 RFC2833 DTMF(dual tone multi-frequency) 이벤트 생성 등의 부과 작업을 포함한다.
단계 510~512에서 RTP 인캡슐레이션된 음성데이터는 리눅스부(40)에서 네트워크 디바이스 드라이버(52)로 전송하여 상대방의 전화기로 네트워크를 통하여 전송하는 것이다.
본 발명은 상술한 바와 같이 VoIP 어플리케이션부에서 음성데이터를 전송처리하지 않고 우선순위가 높은 리눅스부에서 처리하도록 하여 정확하고 양질의 음성데이터를 네트워크로 전송한다.
이상에서 설명한 바와 같이, 본 발명은 상대 단말로 음성 데이터를 전송할 때 우선순위가 높은 리눅스부에서 DPS 엔코딩 인터럽트 타임에 의한 방식과 OS 타이머에 의한 방식을 이용하는 경우 정확한 시간에 음성데이터를 송신할 수 있으므로 상대 단말에 보다 좋은 음성 품질을 제공할 수 있다.
상술한 두가지의 음성데이터 전송 방식에서 인터넷 전화기의 사양이나 시스템 환경에 따라서 적합한 방식을 선택하여 적용하면 양질의 음성데이터를 전송할 수 있게 된다.
또한, 본 발명은 리눅스부에서 음성데이터를 처리하므로, 통화중에 새로운 호를 처리하거나 사용자의 후크 동작 등이 발생되어도 사용자의 음성 데이터를 상대방의 단말로 정확하게 전달하므로 양질의 음성 통화를 제공하는 효과가 있다.
지금까지 본 발명의 상세한 설명에서 구체적인 실시예에 관해 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도내에서 다양한 변형이 가능함은 물론이다. 그러므로 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
Claims (7)
- 리눅스 오에스를 사용하는 인터넷 전화기에서 통화가 연결되어 사용자의 음성데이터를 DSP 디바이스 드라이버에서 코딩하고, 리눅스부에서 상기 코딩된 음성데이터를 RTP 인캡슐레이션하는 1 과정과상기 리눅스부에서 상기 RTP 인캡슐레이션된 음성 데이터를 네트워크 디바이스 드라이버를 통하여 상대방의 단말기로 전송하는 2 과정을 포함하는 인터넷 전화기의 음성 데이터 송신 방법.
- 제 1항에 있어서,상기 1 과정은 상기 DSP 디바이스 드라이버에서 사용자의 상기 음성데이터를 코딩하고 DSP 엔코딩 인터럽트를 발생시키는 단계와상기 DSP 엔코딩 인터럽트 발생 마다 상기 리눅스부에서 상기 코딩된 음성데이터를 RTP 인캡슐레이션하는 단계를 포함함을 특징으로 하는 인터넷 전화기의 음성 데이터 송신 방법.
- 제 1항 또는 제 2항에 있어서,상기 RTP 인캡슐레이션하는 단계는네트워크 헤더 인캡슐레이션, 상대방 단말기의 RTP 페이로드 길이에 알맞은 크기의 오디오 스트림으로 만드는 작업과 네트워크 바이트 리오더링, RFC2833 DTMF 이벤트 생성 처리를 포함함을 특징으로 하는 인터넷 전화기의 음성 데이터 송신 방법.
- 리눅스 오에스를 사용하는 인터넷 전화기에 통화가 연결되어 사용자의 음성데이터를 DSP 디바이스 드라이버에서 코딩하여 리눅스부에 설치된 버퍼부에 저장하는 3 과정과상기 리눅스부에서 미리 설정한 타이머가 구동될 때 상기 버퍼부에 저장된 상기 음성데이터를 RTP 인캡슐레이션하여 네트워크 디바이스 드라이버를 통하여 상대방의 단말기로 전송하는 4 과정을 포함하는 인터넷 전화기의 음성 데이터 송신 방법.
- 제 4항에 있어서,상기 3과정은,상기 DSP 디바이스 드라이버에서 상기 음성데이터를 코딩하고 DSP 엔코딩 인터럽트 마다 상기 버퍼부에 저장하는 것을 포함함을 특징으로 하는 인터넷 전화기의 음성 데이터 송신 방법.
- 제 4항에 있어서,상기 4과정은,상기 리눅스부에 설정된 타이머가 구동될 때마다 상기 버퍼부에 저장된 음성데이터를 읽어오는 단계와상기 음성데이터를 네트워크 헤더 인캡슐레이션, 상대방 단말기의 RTP 페이로드 길이에 맞도록 오디오 스트림으로 만드는 작업, 네트워크 바이트 리오더링, RFC2833 DTMF 이벤트 생성 처리로 이루어진 상기 RTP 인캡슐레이션 단계를 포함함을 특징으로 하는 인터넷 전화기의 음성 데이터 송신 방법.
- 제 4항에 있어서,상기 4 과정에서,상기 타이머는 인터넷 전화기에서 사용하는 음성 코딩 코덱의 딜레이 시간에 맞는 타이머를 등록하여 사용하는 것을 포함함을 특징으로 하는 인터넷 전화기의 음성 데이터 송신 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070011993A KR100880543B1 (ko) | 2007-02-06 | 2007-02-06 | 인터넷 전화기의 음성 데이터 송신 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070011993A KR100880543B1 (ko) | 2007-02-06 | 2007-02-06 | 인터넷 전화기의 음성 데이터 송신 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080073417A true KR20080073417A (ko) | 2008-08-11 |
KR100880543B1 KR100880543B1 (ko) | 2009-02-02 |
Family
ID=39883188
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070011993A KR100880543B1 (ko) | 2007-02-06 | 2007-02-06 | 인터넷 전화기의 음성 데이터 송신 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100880543B1 (ko) |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050077684A (ko) * | 2004-01-30 | 2005-08-03 | 삼성전자주식회사 | 브이오아이피 단말을 위한 착신 연결음 서비스 제공시스템 및 그 제공방법 |
-
2007
- 2007-02-06 KR KR1020070011993A patent/KR100880543B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100880543B1 (ko) | 2009-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100420814B1 (ko) | VoIP 기반의 음성 시스템, VoIP 인에이블 음성 서버, 음성 애플리케이션을 VoIP 네트워크의 VoIP 전화 게이트웨이 서버에 접속시키는 방법과 그 접속을 위한 컴퓨터 프로그램을 저장한 기록매체 | |
US20020071424A1 (en) | Packet voice telephony apparatus and method | |
US7535892B2 (en) | Voice over internet protocol system having dynamic gain control function and method thereof | |
US9106725B2 (en) | Buffer controller correcting packet order for codec conversion | |
JP2001331199A (ja) | 音声処理方法及び音声処理装置 | |
EP0987870A1 (en) | Apparatus and method for accessing wireless trunks from a communications network | |
EP1889257B1 (en) | A method and system for recording an electronic communication and extracting constituent audio data therefrom | |
JP2000270024A (ja) | インターネット電話におけるフレームパケット化サイズ能力交換方法,インターネット電話利用端末装置,およびインターネット電話のプログラムを記録した記録媒体 | |
US20040196961A1 (en) | Apparatus and method for transitioning between TTY and voice transmission modes | |
US20070129037A1 (en) | Mute processing apparatus and method | |
US20070133589A1 (en) | Mute processing apparatus and method | |
KR100880543B1 (ko) | 인터넷 전화기의 음성 데이터 송신 방법 | |
CN109479071B (zh) | 一种网络电话的处理方法及相关网络设备 | |
JPWO2003081897A1 (ja) | ファクシミリ通信可能なVoIP端末およびその通信方法 | |
KR100330210B1 (ko) | 원격접속서버에서의 음성 및 팩스 데이터 처리를 위한 장치 | |
JP2000312229A (ja) | 音声ゲートウェイ装置及びその制御方法 | |
JP2019057821A (ja) | エレベーター通話システム | |
JP2008271415A (ja) | 受信音声出力装置 | |
US7545738B2 (en) | Network telephony system with enhanced interconversion of audio signals and IP packets | |
JPH10190735A (ja) | 通話システム | |
KR100720719B1 (ko) | PSTN 전화/ VoIP 전화의 선택적 통화 시스템 | |
KR100842799B1 (ko) | 리눅스 오에스를 사용하는 인터넷 전화기의 통화 음질 개선방법 | |
JPH10164135A (ja) | 通信システム | |
CN102685342A (zh) | 基于Linux系统提高VOIP语音信号实时性的方法性及系统 | |
US20040076150A1 (en) | Method and apparatus for storing a media file |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20111209 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20121217 Year of fee payment: 5 |
|
LAPS | Lapse due to unpaid annual fee |