본문 바로가기

오픈소스/아스터리스크

[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를 호출해봅시다.

 

 

'오픈소스 > 아스터리스크' 카테고리의 다른 글

[Asterisk] Ubuntu 18.04/Asterisk 15: CDR Reporting to MySQL  (0) 2021.10.21
[설치] Asterisk 설치  (0) 2021.09.14
[이론] Asterisk  (0) 2021.09.14