About Asterisk

22
Asterisk 오픈소스 인터넷 전화 교환기 by. Taylor Connect EV

Transcript of About Asterisk

Asterisk 오픈소스 인터넷 전화 교환기

by. Taylor Connect EV

Asterisk ?

Asterisk 는 오픈소스 전화 교환기 전화교환기는 전화 통화를 연결해주는 장치를 뜻한다. A 사용자가 B 사용자에게 전화를 걸기 위해서는 여러 교환기를 거쳐야 하는데 네트워크의 라우터와 비슷한 개념으로 보면 된다. 아날로그 수동 전화 교환기를 시작으로 디지털 자동 전화 교환기를 거쳐 현재의 VoIP(인터넷전화) 전화 교환기 방식이 생겨났다. 기본 역할은 모두 같으며 교환 방식이 디지털로 바뀌고 더 복잡한 전화 교환이 가능해졌고, 인터넷 전화의 경우 아날로그 전화선을 사용하지 않고 인터넷을 통해 연결한다는 점이 차이점이다. Asterisk 의 경우 전화교환 뿐 만 아니라 다양한 내부 전화 라우팅과 자동 처리기능, 예약 전화기능, ARS(IVR) 전화 교환기능, 전화기 관리기능, Fax 기능 등을 가진 오픈소스 전화 교환기이다. Asterisk 는 오픈소스이기 때문에 ARS 를 통한 실시간 양방향 제어 등 기존 기능을 응용한 다양한 기능을 구현할수 있다.

전화가 교환되는 과정

사용자가 전화번호를 입력한뒤 통화를 누르면 Asterisk 는 미리 설정된 내부 전화 라우팅 테이블을 통해 전화를 발신한다. 발신된 통화는 인터넷 전화 통신 사업자 교환기에 전화 발신을 요청하며 인터넷 전화 통신 사업자의 교환기는 해당 요청을 받고 요청된 전화번호를 서비스 하는 통신 사업자를 조회하여 해당 통신 사업자의 교환기에 발신 요청을 한다. 발신이 요청된 전화번호를 서비스하는 통신 사업자는 발신 요청을 받고 해당 사용자의 온라인 여부를 확인하여 전화 수신 요청을 보낸다. 최종적으로 전화 수신을 요청받은 사용자의 전화기의 벨이 울리며 사용자가 전화를 받으면 라우팅된 경로를 통해 SIP 음성 데이터가 실시간으로 송수신 된다.

이전의 아날로그 방식은 위의 과정이 모두 선을 직접 연결하여 라우팅하는 수작업으로 이루어졌지만 디지털로 전환되며 위와 같이 모든 과정이 자동화가 되었다. 우리가 일반적으로 사용하는 휴대폰도 위와 같은 교환과정을 거친다.

전화가 교환되는 과정

가입자를 모두 선으로 연결하는것 보다 교환기를 설치하는게 더 효율적이고 경제적이라는 개념으로부터 교환 기술이 시작되었습니다.

전화가 교환되는 과정

아날로그 수동 교환 방식의 전화 교환기 모습. 교환원이 전화를 받아 발신지를 요청받은 뒤 해당 발신지로 선을 연결한다

전화가 교환되는 과정

아날로그 수동 교환 방식의 전화 교환기 모습. 교환원이 전화를 받아 발신지를 요청받은 뒤 해당 발신지로 선을 연결한다

전화가 교환되는 과정

디지털 교환기로 모두 교체가 되면서 이제 디지털 전화 교환 서버가 해당 작업을 모두 자동으로 처리한다

전화가 교환되는 과정

디지털 교환기로 모두 교체가 되면서 이제 디지털 전화 교환 서버가 해당 작업을 모두 자동으로 처리한다. 아래 이미지는 VoIP(인터넷전화) 교환기의 연결과정.

Asterisk 서버 VoIP 통신 사업자

VoIP ?

VoIP 는 Voice over Internet Protocol 의 약자로 아날로그 선을 사용하여 연결하는 기존 전화 방식과 다르게 인터넷을 통하여 전화를 연결하는 방식이다.

모든 통신이 인터넷을 통하여 이루어지기 때문에 별도의 전화선 설치가 필요없고 세계 어디서든 인터넷 연결만 되면 내 유선 전화번호로 전화를 할 수 있다는 장점이 있다. 또한 기존의 아날로그 방식의 품질 한계를 벗어나 인터넷을 사용하기 때문에 대역폭의 제한에서 비교적 자유로워 고품질의 음성 통화를 제공하는 코덱을 사용할수 있는게 특징이다(KT HD Voice = AMR-WB 코덱 등). 하지만 인터넷을 통해 연결된다는 장점 덕에 생겨난 도청, 패킷캡쳐등의 보안 이슈로 인해 통신을 암호화 하여 전송하는 SRTP(Secure Realtime Transport Protocol) 프로토콜이 생겨나게 되었다.

SIP ?

SIP 는 Session Initiation Protocol 의 약자로 응용 계층의 시그널링을 담당하는 프로토콜 입니다. 직역을 하면 세션 설정 프로토콜이며 하나 또는 그 이상의 참가자와 멀티미디어 세션의 생성, 변경, 종료에 대한 응용 계층의 프로토콜로 정의합니다. 인터넷에서 주로 세션은 폭넓은 의미로 사용되지만, SIP 에서는 전화를 걸고 받기 위한 정보를 송수신 하는것을 의미합니다. SIP 는 TCP 와 UDP 를 사용하며 주로 UDP를 많이 사용하고, 주로 5060과 5061 포트를 이용합니다. SIP 를 통해 음성 데이터 뿐 만 아니라 비디오, 사진 등 다양한 데이터를 보내는것을 지원합니다.

SIP 패킷

Asterisk 의 기능

Asterisk 인터넷 전화를 연결해주는 인터넷 전화 교환기 인터넷 전화 프로토콜인 SIP 를 통해 전화를 연결한다 인터넷 전화 표준인 SIP 프로토콜을 통해 인터넷 전화 통신 사업자와 연결하여 최종적으로 로컬 사용자의 전화를 상대방에게 연결해주는 역할을 한다.

+ 전화 연결기능 + 수/발신 전화 자동 라우팅 기능 + 컨퍼런스 콜 기능 + ARS 연결 기능 + 자동응답 기능 + 사용자 관리 기능

Asterisk 의 사용

Asterisk 는 핵심 기능만 제공 FreePBX 와 같은 여러 서비스를 사용하여 기능을 쉽게 추가하고 관리할수 있다

Asterisk 의 모든 구성과 설정은 명령어 혹은 설정파일 수정을 통해 해야 하기 때문에 처음 사용하기엔 비교적 어려운편이지만 FreePBX 와 같은 여러 GUI 관리 툴을 통해 비교적 쉽게 사용할수 있으며 기타 유/무료 기능을 쉽게 추가 설치할수 있다. 다만 VoIP 와 SIP 에 대한 기본적인 지식이 없다면 셋팅이 쉽지 않다. 우분투 패키지 매니저를 통해 설치할수 있으며 아예 다른 배포판을 기반으로 Asterisk 가 설치된 OS 이미지를 배포하고 있어 설치는 쉬운편이다. 물론 소스 다운을 통해 커스터마이징을 한 후 설치하는것도 가능하다.

Asterisk 의 사용

Asterisk 레포지터리 주소 https://gerrit.asterisk.org

Asterisk 의 사용

Asterisk Github 링크 https://github.com/asterisk/asterisk

Asterisk 의 사용

소스 빌드 설치

Asterisk Now OS 로 설치

Asterisk 의 사용

Asterisk 의 설치 자체는 쉬운 편이지만 유저 설정과 외부 인터넷 전화 통신 사업자와 연결하기 위한 Trunk 설정, 전화기 설정, 프로토콜 설정과 같은 부분은 전문 지식이 필요하기 때문에 VoIP 와 SIP 에 대한 공부가 필요하다. 또한 VoIP 가 많이 쓰이기 시작하면서 제일 많이 사용되는 Asterisk 교환기에 대한 인터넷 공격이 많은데 설치와 셋팅만 해놓고 방치해놓다 공격을 당해 국제 스팸전화의 발신지로 사용되어 요금 폭탄이 청구가 될 수 있어 보안에 대한 철저한 설정도 필요하다. 실제로 국내 인터넷 전화 사업자에 연결하기 위해 가입 신청을 할 때에 계정을 어디에 연결할건지 묻는데 Asterisk 교환기라고 답할경우 개통을 해주지 않는 경우도 있다.

Asterisk 의 응용

Asterisk 의 다양한 기능을 응용하여 여러가지 기능을 만들수 있다. 그의 한 예로 IVR(ARS) 기능의 응용을 통해 인터랙티브한 ARS 기능을 구현할수 있을것이다.

Asterisk 의 응용

Asterisk 의 응용

[demo-menu] exten => s,1,Answer(500) same => n(loop),Background(press-1&or&press-2) same => n,WaitExten() exten => 1,1,Playback(you-entered) same => n,SayNumber(1) same => n,Goto(s,loop) exten => 2,1,Playback(you-entered) same => n,SayNumber(2) same => n,Goto(s,loop)

Asterisk 의 응용

Asterisk 오픈소스 인터넷 전화 교환기

by. Taylor Connect EV

[email protected]