ami 3

[FreePBX] Python으로 AMI 프로그래밍 테스트 2 (이벤트 수신 및 처리 - 비동기 방식)

안녕하세요. 지난 글 "Python으로 FreePBX AMI 프로그래밍 테스트 1 (연결, Ping, 종료흐름)"에서는 Python의 socket 모듈을 사용하여 FreePBX AMI에 접속하고, 간단한 명령(Login, Ping, Logoff)을 실행하는 동기적인 기본 흐름을 살펴보았습니다. 하지만 전화 시스템의 상태 변화(예: 전화 수신, 통화 종료, 채널 상태 변경 등)를 실시간으로 감지하고 이에 맞게 처리하려면 조금 다른 접근 방식이 필요합니다. 바로 AMI가 지속적으로 보내주는 이벤트(Event)를 수신하고 처리하는 것입니다. 이번 글에서는 Python의 asyncio라이브러리를 활용하여 FreePBX AMI로부터 이벤트를 비동기적으로 수신하고, 특정 이벤트를 감지하여 처리하는 방법을..

[FreePBX]Python으로 FreePBX AMI 프로그래밍 테스트 1 (연결, Ping, 종료 흐름)

안녕하세요. 이전 글에서는 telnet으로 간단하게 연결 확인을 해보았습니다. 그러나 매번 접속해서 수동으로 입력하면서 실행하는 것은 비효율적일 것입니다. 프로그램 언어로 통신하면 순서대로 자동 처리를 할 수 있을 것입니다. 그래서 쉽게 테스트해 볼 수 있는 Python언어를 가지고 FreePBX 전화 시스템과 통신하는 방법인 AMI(Asterisk Manager Interface)에 대해서 확인해 보겠습니다. AMI가 뭔가요? 하시는 분은 이전 글을 참조 부탁드립니다. https://remnant24c1.tistory.com/534 쉽게 말하자면, FreePBX 서버와 통신할 수 있는 약속된 방법입니다. 마치 서버와 채팅하는 것과 비슷합니다. 1. 준비사항 - PC에 Python 3 설치..

[FreePBX] AMI란 무엇이고 접속해보기

안녕하세요 FreePBX 관련해서 물리적 측면 보다 SW적 확인할 일이 있어서 자료를 찾아보고 테스트해 본 내용을 공유드립니다. FreePBX분야 전문 개발자가 아니다 보니, 실수한 내용들이 있을 수 있습니다. 참고 정도로 봐주시고, 잘못된 부분은 댓글 주시면 수정하도록 하겠습니다. FreePBX에 접근해서 신호를 제어하기 위해서 AMI(Asterisk Manager Interface)를 먼저 알고 접속해야 합니다. 그래서 첫 번째 내용으로 간단한 이론과 접속하는 방법을 정해보았습니다. API 방법도 있지만, AMI가 좀 더 제어권한이 많아 선택해서 테스트했습니다. 이후 AMI로 해볼 수 있는 기능을 python으로 몇 가지 테스트하는 글을 올려 보겠습니다. 테스트한 환경은 Virtual B..