package ami import ( "log" "os" "testing" "time" "git.ali33.ru/fcg-xvii/go-tools/text/config" _ "git.ali33.ru/fcg-xvii/go-tools/text/config/ini" ) var ( host, login, password string ) func init() { // setup auth vars, z_auth.config file example : // 127.0.0.1:5038::admin::mypassword //config.SplitFileToVals("z_auth.config", "::", &host, &login, &password) f, err := os.Open("z_auth.config") if err == nil { conf, err := config.FromReader("ini", f) if err == nil { conf.ValueSetup("host", &host) conf.ValueSetup("login", &login) conf.ValueSetup("password", &password) } f.Close() } } func TestClient(t *testing.T) { if host == "" { return } log.Println(host, login, password) var cl *Client cl = New(host, login, password, nil, func(state State, err error) { log.Println("STATE_CHANGED", state, err) switch state { case StateStopped: { time.Sleep(time.Second * 5) log.Println("Reconnect...") //go cl.Start() } } }) go cl.Start() for { log.Println("Originate...") rOrig := &OriginateRequest{ Channel: "SIP/user1/89774708408", Context: "admefine-bot", Exten: "s", } originate, err := cl.Originate(rOrig) if err != nil { log.Println("Originate error", err) continue } log.Println("Call start") for event := range originate.Events() { log.Println(event) } log.Println("Call finished...") //time.Sleep(time.Second * 5) cl.Close() } }