>백엔드 개발 >Golang >Asterisk Manager 인터페이스 이벤트에서 활성 통화 수를 얻는 방법

Asterisk Manager 인터페이스 이벤트에서 활성 통화 수를 얻는 방법

王林
王林앞으로
2024-02-09 11:20:18985검색

如何从 Asterisk Manager 接口事件获取活动呼叫数量

Asterisk 통신 시스템을 사용할 때 활성 통화 수를 아는 것은 통화 트래픽을 모니터링하고 관리하는 데 매우 중요합니다. Asterisk Manager 인터페이스를 통해 호출 횟수를 포함한 다양한 이벤트 정보를 얻을 수 있습니다. 이 문서에서는 Asterisk Manager 인터페이스를 사용하여 활성 통화 수를 얻는 방법과 단계를 소개합니다. Asterisk를 처음 사용하는 사용자이든 숙련된 사용자이든 이 문서는 자세한 지침을 제공합니다. 한 번 보자!

질문 내용

별표에 연결하여 이벤트 피어 상태에서 활성 및 비활성 피어 수를 가져왔지만 이제 활성 통화 및 채널 수를 가져와 표시해야 합니다. Channelstatedesc=up을 찾아보았지만 작동하지 않습니다. 로그를 넣어도 해당 이벤트가 발견되는 것을 볼 수 없습니다. 어떻게 고칠 수 있나요? (이벤트 coreshowchannelscomplete를 통해 가능할까요?) 미리 감사드립니다

으아악
//server.go
package server

import (
    "bufio"
    "fmt"
    "net"
    "strings"

    "data"
)

func connecttoami(address, username, password string) error {
    conn, err := net.dial("tcp", address)
    if err != nil {
        return err
    }
    defer conn.close()

    fmt.fprintf(conn, "action: login\r\nusername: %s\r\nsecret: %s\r\n\r\n", username, password)

    peerstatus := &data.peerstatus{}
    callstatus := &data.callstatus{}

    scanner := bufio.newscanner(conn)
    for scanner.scan() {
        line := scanner.text()
        fmt.println(line)

        if strings.hasprefix(line, "peerstatus") {
            data.getpeerstatus(line, peerstatus)
            fmt.println("active peers:", peerstatus.active)
            fmt.println("inactive peers:", peerstatus.inactive)
        } else if strings.hasprefix(line, "coreshowchannel") {
            data.getchannelstatus(line, callstatus)
            fmt.println("active peers:", peerstatus.active)
            fmt.println("inactive peers:", peerstatus.inactive)
        }

    }

    if err := scanner.err(); err != nil {
        return err
    }

    return nil
}

Solution

알아냈는데 코드는 다음과 같습니다. //server.go

으아악

calls.go

으아악

}

위 내용은 Asterisk Manager 인터페이스 이벤트에서 활성 통화 수를 얻는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제