GitXplorerGitXplorer
w

astgo

public
36 stars
9 forks
5 issues

Commits

List of commits on branch master.
Verified
1b5bc38663fa30cf4a0423d03ee6ce05e0d86a25

Merge pull request #8 from tomahzo/master

wwenerme committed a year ago
Verified
9403d1d2df090d0f0c5acee2f2c07cdfed2b43f3

fix FastCGI closing session

ttomahzo committed a year ago
Unverified
143b016e5fa6c9c8f05a25cf09d8f38871120161

message read handle empty line

wwenerme committed 3 years ago
Unverified
9d6f8a627d4f7299f7595c1cd4237de8e505e2a3

try fix cover

wwenerme committed 3 years ago
Unverified
696ab213237fdef23c14125b497dd679f616e839

fix codecov

wwenerme committed 3 years ago
Unverified
10837e337dc46d2467d5075458083637e44d1252

fix ci

wwenerme committed 3 years ago

README

The README file for this repository.

Asterisk to Go GoDoc Build Status Coverage Status Go Report Card

Libs for Golang to work with Asterisk

  • AMI
  • AGI

AMI

  • Async Action
  • Sync Action
  • Event Subscribe
  • Auto Reconnect
  • Generated Action with document
  • Generated Event with document
  • Generated Client - Action -> Response
package main

import (
  "context"
  "fmt"
  "github.com/wenerme/astgo/ami"
)

func main() {
  boot := make(chan *ami.Message, 1)

  conn, err := ami.Connect(
    "192.168.1.1:5038",
    ami.WithAuth("admin", "admin"), // AMI auth
    // add predefined subscriber
    ami.WithSubscribe(ami.SubscribeFullyBootedChanOnce(boot)),
    ami.WithSubscribe(func(ctx context.Context, msg *ami.Message) bool {
      fmt.Println(msg.Format()) // log everything
      return true               // keep subscribe
    }, ami.SubscribeSend(), // subscribe send message - default recv only
    ))
  if err != nil {
    panic(err)
  }
  <-boot
  // AMI now FullyBooted
  _ = conn
}

AGI

  • FastAGI
  • AGI Bin
  • Generated Command
  • Generated Client
package main

import (
	"github.com/wenerme/astgo/agi"
)

func main() {
	// agi.Listen for FastAGI
	agi.Run(func(session *agi.Session) {
		client := session.Client()
		client.Answer()
		client.StreamFile("activated", "#")
		client.SetVariable("AGISTATUS", "SUCCESS")
		client.Hangup()
	})
}

Asterisk Database Model

  • GORM Based Model

Roadmap

  • [-] Asterisk Database Model
  • [ ] Stasis
  • [ ] ARI