By Mark Spencer <[email protected]> and the Asterisk.org developer community.
Copyright (C) 2001-2021 Sangoma Technologies Corporation and other copyright holders.
Asterisk 서버를 구성하고 실행하기 전에 보안 정보 문서의 내용을 읽고 완전히 이해하는 것이 중요합니다.
자세한 내용은 중요한 보안 고려 사항을 참조하세요.
Asterisk는 오픈 소스 PBX 및 전화 통신 툴킷입니다. 어떤 의미에서는 하단의 인터넷과 전화 통신 채널 사이의 미들웨어이고 상단의 인터넷과 전화 통신 애플리케이션 사이의 미들웨어입니다. 그러나 Asterisk는 인터넷 전화 통신보다 더 많은 전화 통신 인터페이스를 지원합니다. Asterisk는 또한 전통적인 PSTN 전화 통신에 대해서도 막대한 양의 지원을 제공합니다.
프로젝트 자체에 대한 자세한 내용을 보려면 Asterisk 홈 페이지와 공식 문서를 방문하세요. 또한 voip-info.org에서 Asterisk 커뮤니티가 편집한 많은 정보를 찾을 수 있습니다.
Creative Commons License에 따라 O'Reilly에서 출판한 Asterisk에 관한 책이 있습니다. 이는 서점에서 구할 수 있을 뿐만 아니라 asteriskdocs.org 웹사이트에서 다운로드 가능한 버전으로도 구할 수 있습니다.
Asterisk 오픈 소스 PBX는 주로 GNU/Linux 운영 체제에서 개발 및 테스트되었으며 모든 주요 GNU/Linux 배포판에서 지원됩니다.
Asterisk는 또한 '포팅'되었으며 Sun Solaris, Apple의 Mac OS X, Cygwin 및 BSD 변형을 포함한 다른 운영 체제에서도 제대로 실행되는 것으로 알려졌습니다.
먼저 Asterisk를 설치하고 실행하려면 지원되는 하드웨어가 있는지 확인하십시오(단, 사운드 카드는 물론 특별한 하드웨어가 필요하지 않음).
지원되는 전화 통신 하드웨어는 다음과 같습니다.
이전 버전의 Asterisk에서 업데이트하는 경우 소스 디렉터리에서 UPGRADE.txt 파일을 읽어야 합니다. 이전 버전과의 호환성을 유지하기 위해 가능한 모든 노력을 기울였음에도 불구하고 변경해야 할 몇 가지 파일과 구성 옵션이 있습니다.
사용할 새로운 기능을 찾으려면 소스 코드 배포의 configs 디렉터리에 있는 구성 예제를 확인하세요. 이 Asterisk 버전의 새로운 기능 목록은 CHANGES 파일을 참조하세요.
시스템에 호환 가능한 컴파일러 및 개발 라이브러리가 포함되어 있는지 확인하십시오. Asterisk를 사용하려면 GCC(GNU Compiler Collection) 버전 4.1 이상이나 C99 사양 및 일부 gcc 언어 확장을 지원하는 컴파일러가 필요합니다. 또한 시스템에는 사용 가능한 C 라이브러리 헤더와 ncurses용 헤더 및 라이브러리가 있어야 합니다.
추가 종속성을 갖는 모듈이 많이 있습니다. 어떤 라이브러리를 찾고 있는지 확인하려면 ./configure --help
참조하거나 make menuselect
실행하여 특정 모듈에 대한 종속성을 확인하세요.
많은 배포판에서 이러한 종속성은 'glibc-devel', 'ncurses-devel', 'openssl-devel' 및 'zlib-devel' 또는 이와 유사한 이름을 가진 패키지에 의해 설치됩니다.
계속 진행해 보겠습니다.
doc 디렉토리에는 이 문서보다 더 많은 문서가 있습니다. configs 디렉터리에서 예제와 참조 가이드가 포함된 구성 파일을 확인할 수도 있습니다.
./configure
실행하세요. 컴파일 중에 사용되는 시스템 종속 변수의 값을 추측하려면 구성 스크립트를 실행하십시오. 스크립트에 일부 필수 구성 요소가 누락되었음을 나타내는 경우 ./contrib/scripts/install_prereq install
실행하여 필수 구성 요소를 설치할 수 있습니다. 이렇게 하면 Asterisk의 모든 기능에 대한 모든 종속성이 설치됩니다. 스크립트를 실행한 후 ./configure
다시 실행해야 합니다.
make menuselect
실행 [선택 사항]이는 컴파일할 모듈을 선택하고 다양한 선택적 모듈에 대한 종속성을 확인하려는 경우에 필요합니다.
make
실행빌드가 성공적으로 완료되었다고 가정합니다.
make install
실행Asterisk를 처음 사용하는 경우 데모 확장 기능 등이 포함된 샘플 PBX를 설치할 수 있습니다. 그렇다면 다음을 실행하세요.
make samples
실행그렇게 하면 설치한 기존 구성 파일을 덮어쓰게 됩니다.
# asterisk -vvvc
Asterisk가 초기화되면서 여러 장황한 메시지가 화면 옆으로 날아다니는 것을 볼 수 있습니다("매우 장황한" 모드입니다). 준비가 되었을 때 "c"를 지정하면 다음과 같은 명령줄 콘솔이 표시됩니다.
*CLI>
시스템에 대한 도움말을 보려면 언제든지 "core show help"를 입력할 수 있습니다. 특정 명령에 대한 도움말을 보려면 "core show help "를 입력하세요. 사운드 카드를 사용하여 PBX를 시작하려면 "콘솔 다이얼"을 입력하여 PBX에 전화를 걸 수 있습니다. 그런 다음 "콘솔 응답", "콘솔 끊기" 및 "콘솔 다이얼"을 사용하여 전화기 동작을 시뮬레이션할 수 있습니다. 전이중 사운드 카드가 없다면(그리고 Asterisk는 당신이 가지고 있는지 아닌지에 대해 장황한 메시지를 통해 당신에게 알려줄 것입니다) 제대로 작동하지 않을 것이라는 점을 기억하십시오(아직은 아닙니다).
Unix/Linux 명령 프롬프트의 "man asterisk"는 Asterisk를 시작하고 중지하는 방법과 Asterisk를 시작하기 위한 모든 명령줄 옵션에 대한 자세한 정보를 제공합니다.
Asterisk로 수행할 수 있는 작업에 대한 많은 정보를 찾을 수 있는 /etc/asterisk
의 구성 파일을 자유롭게 살펴보세요.
모든 별표 구성 파일은 공통 형식을 공유합니다. 주석은 ';'으로 구분됩니다. (물론 '#'은 DTMF 숫자이기 때문에 여러 곳에서 나타날 수 있습니다). 구성 파일은 이름이 [] 안에 나타나는 섹션으로 구분됩니다. 각 섹션에는 일반적으로 '변수 = 값' 형식과 '객체 => 매개변수' 형식의 두 가지 유형의 명령문이 포함됩니다. 내부적으로 '=' 및 '=>'의 사용은 완전히 동일하므로 구성 파일을 더 쉽게 이해할 수 있도록 돕는 데에만 사용되며 실제로 구문 분석되는 방식에는 영향을 미치지 않습니다.
'변수=값' 형식의 항목은 일부 매개변수의 값을 별표로 설정합니다. 예를 들어 chan_dahdi.conf에서 다음을 지정할 수 있습니다.
switchtype=national
연결하려는 스위치가 "국가적" 유형임을 Asterisk에 표시하기 위해. 일반적으로 매개변수는 해당 사양 이하에서 발생하는 인스턴스화에 적용됩니다. 예를 들어 구성 파일이 다음과 같은 경우:
switchtype = national
channel => 1-4
channel => 10-12
switchtype = dms100
channel => 25-47
"국가별" 스위치 유형은 채널 1~4 및 채널 10~12에 적용되는 반면, "dms100" 스위치 유형은 채널 25~47에 적용됩니다.
"객체 => 매개변수"는 주어진 매개변수를 사용하여 객체를 인스턴스화합니다. 예를 들어, "channel => 25-47" 줄은 카드의 채널 25~47에 대한 개체를 생성하여 위에 지정된 변수에서 설정을 가져옵니다.
SIP 전화를 사용하는 사람들은 Asterisk가 시간의 큰 변화에 민감하다는 점을 알고 있어야 합니다. date(1)(또는 기타 유사한 명령)을 사용하여 시스템 시간을 수동으로 변경하면 SIP 등록 및 기타 내부 프로세스가 실패할 수 있습니다. 시스템 자체가 정확한 시간을 유지할 수 없는 경우 NTP를 사용하여 시스템 시계를 "실시간"으로 동기화된 상태로 유지하세요. NTP는 시간을 점프하고 불연속성을 유발하는 대신 "실시간"으로 동기화될 때까지 시스템 시계의 속도를 높이거나 낮추어 시스템 시계의 동기화를 유지하도록 설계되었습니다. 대부분의 Linux 배포판에는 미리 컴파일된 NTP 버전이 포함되어 있습니다. 주기적으로 정확한 실시간을 얻은 다음 시스템 시계를 수동으로 설정하는 일부 시간 동기화 방법에 주의하십시오.
일광 절약 시간제로 인한 겉보기 시간 변화는 바로 그 것입니다. Linux 시스템에서 일광 절약 시간제를 사용하는 것은 순전히 사용자 인터페이스 문제이며 Linux 커널이나 Asterisk의 작동에 영향을 주지 않습니다. Linux 커널의 시스템 시계는 UTC로 작동합니다. UTC는 일광 절약 시간을 사용하지 않습니다.
또한 이 문제는 TDM 채널의 클럭킹과 별개이며 최소한 SIP 등록에 영향을 미치는 것으로 알려져 있습니다.
시스템 크기와 구성에 따라 Asterisk는 많은 수의 파일 설명자를 사용할 수 있습니다. UNIX에서 파일 설명자는 디스크의 파일 이상의 용도로 사용됩니다. 파일 설명자는 네트워크 통신(예: SIP, IAX2 또는 H.323 호출) 및 하드웨어 액세스(예: 아날로그 및 디지털 트렁크 하드웨어)를 처리하는 데에도 사용됩니다. Asterisk는 구성 정보에서 음성 메일 저장에 이르기까지 모든 디스크에 있는 많은 파일에 액세스합니다.
대부분의 시스템은 Asterisk가 한 번에 열 수 있는 파일 설명자 수를 제한합니다. 이로 인해 시스템이 처리할 수 있는 동시 통화 수가 제한될 수 있습니다. 예를 들어 제한이 1024(공통 기본값)로 설정된 경우 Asterisk는 약 150개의 SIP 통화를 동시에 처리할 수 있습니다. 파일 설명자 수를 변경하려면 아래 시스템에 대한 지침을 따르십시오.
시스템이 PAM(플러그형 인증 모듈)을 사용하는 경우 /etc/security/limits.conf
편집하세요. 파일 맨 아래에 다음 줄을 추가합니다.
root soft nofile 4096
root hard nofile 8196
asterisk soft nofile 4096
asterisk hard nofile 8196
(맛에 맞게 숫자를 조정하세요). 이러한 변경 사항을 적용하려면 시스템을 재부팅해야 할 수도 있습니다.
위의 시스템에 특별히 적용되는 지침이 없는 경우 Asterisk를 시작하는 스크립트에 ulimit -n 8192
명령을 추가해 볼 수 있습니다.
다양한 기능에 대한 자세한 문서는 doc 디렉터리를 참조하세요. 다시 한 번 구성 옵션에 대한 문서가 포함된 모든 구성 샘플을 읽어 보십시오.
마지막으로, 더 많은 정보를 얻으려면 지원 사이트를 방문하고 메일링 리스트에 가입하세요.
전 세계적으로 성장하고 있는 Asterisk 사용자 커뮤니티에 오신 것을 환영합니다!
Mark Spencer, and the Asterisk.org development community
별표는 Sangoma Technologies Corporation의 상표입니다.