on
[EAGI] Asterisk EAGI 노드버전
[EAGI] Asterisk EAGI 노드버전
Asterisk EAGI를 사용하기 위해서는 기본적인 AGI 를 사용하는 방법에 대해 알아야합니다. 현 문서는 Asterisk 의 PjSIP혹은 SIP를 구성하여 Dialplan에 Context를 적용한 상태입니다. 현 상태에서 Dialplan에서는 AGI 혹은 EAGI를 호출하여 Application으로 들어오는 예제입니다. 예제를 보기 전 EAGI의 정의와 EAGI 호출 할 때 필요한 Context 문법과 호출방법, 필요한 부분에 대해서는 차근 차근 업데이트 하도록 하겠습니다.
그러면 Asterisk EAGI에 대해 알아보도록 합시다.
# Contents
EAGI 의 정의
EAGI 호출 방법
EAGI 적용 방법
# EAGI 정의
Asterisk EAGI Reference 는 https://www.voip-info.org/asterisk-eagi/ 에서 확인할 수 있습니다. 아래 내용은 해당 문서를 번역 혹은 의역하고, 저의 주관적인 해석을 한 것입니다. 잘못된 내용이나 번역은 댓글을 통해 알려주세요.
EAGI 는 향상된 AGI 입니다. AGI의 약간 더 발전된 버전으로, AGI 스크립트가 파일 설명자 3을 통해 인바운드 오디오 스트림과 상호 작용할 수 있습니다. 기본적으로 EAGI는 파일 설명자 3번의 스트림 데이터를 통하여 인바운드 오디오 스트림을 활용하고 분석하고 작업을 수행할 수 있는 응용 프로그램을 만드는 데 사용할 수 있습니다. AGI를 통해 Asterisk는 stdin 및 stdout에서 AGI 프로토콜과 통신하여 전화 채널을 제어하고, 오디오를 재생하고, DTMF 숫자를 읽는 등 모든 언어로 작성된 외부 프로그램을 시작할 수 있습니다.
기본적으로 EAGI는 AGI의 모든 기능을 쓸 수 있으며 파일 설명자 3번이 추가됨을 알 수 있습니다. AGI의 모든 기능에 관한 내용은 https://wiki.asterisk.org/wiki/display/AST/Asterisk+19+AGI+Commands 을 참고해주세요.
요구 사항은 아래와 같습니다.
must be located in /var/lib/asterisk/agi-bin
must be specified in the dialplan complete with an extension
must be executable (use “chmod 770 file” in the linux shell)
must be owned by the “asterisk” user (use “chown asterisk file” in the linux shell)
파일 설명자에 대한 설명입니다.
0 (STDIN) = fromast pipe: sends data out of asterisk
1 (STDOUT) = toast pipe: sends data into asterisk
3 (STDERR+1) = audio pipe: Linear pcm audio pipe
# EAGI 호출 방법
EAGI 호출 방법은 AGI와 크게 다르지 않습니다. Nodejs에서는 FastAGI를 사용하였지만 EAGI는 스크립트 형식으로 지원하기 때문에 해당 스크립트 파일을 지정된 폴더에 넣어야 합니다.
그러면 같이 EAGI를 호출해봅시다.
from http://junhokims.tistory.com/14 by ccl(A) rewrite - 2021-09-28 10:00:38