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 }
私はそれを理解しました、コードは次のとおりです。 //Server.go
リーリーcalls.go
リーリー}
以上がAsterisk Manager インターフェイス イベントからアクティブなコールの数を取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。