Documentation ¶
Overview ¶
Package gami provites primitives for interacting with Asterisk AMI
Basic Usage
ami, err := gami.Dial("127.0.0.1:5038") if err != nil { fmt.Print(err) os.Exit(1) } ami.Run() defer ami.Close() //install manager go func() { for { select { //handle network errors case err := <-ami.NetError: log.Println("Network Error:", err) //try new connection every second <-time.After(time.Second) if err := ami.Reconnect(); err == nil { //call start actions ami.Action("Events", gami.Params{"EventMask": "on"}) } case err := <-ami.Error: log.Println("error:", err) //wait events and process case ev := <-ami.Events: log.Println("Event Detect: %v", *ev) //if want type of events log.Println("EventType:", event.New(ev)) } } }() if err := ami.Login("admin", "root"); err != nil { log.Fatal(err) } if rs, err = ami.Action("Ping", nil); err == nil { log.Fatal(rs) } //or with can do async pingResp, pingErr := ami.AsyncAction("Ping", gami.Params{"ActionID": "miping"}) if pingErr != nil { log.Fatal(pingErr) } if rs, err = ami.Action("Events", ami.Params{"EventMask":"on"}); err != nil { fmt.Print(err) } log.Println("future ping:", <-pingResp)
Index ¶
- Variables
- func UnsecureTLS(c *AMIClient)
- func UseTLS(c *AMIClient)
- func UseTLSConfig(config *tls.Config) func(*AMIClient)
- type AMIClient
- func (client *AMIClient) Action(action string, params Params) (*AMIResponse, error)
- func (client *AMIClient) AsyncAction(action string, params Params) (<-chan *AMIResponse, error)
- func (client *AMIClient) Close()
- func (client *AMIClient) Login(username, password string) error
- func (client *AMIClient) Reconnect() error
- func (client *AMIClient) Run()
- type AMIEvent
- type AMIResponse
- type Params
Constants ¶
This section is empty.
Variables ¶
var ErrNotAMI = errors.New("Server not AMI interface")
ErrNotAMI indicates that the connection established is not to an Asterisk AMI service
Functions ¶
func UnsecureTLS ¶
func UnsecureTLS(c *AMIClient)
UnsecureTLS configures the AMIClient that it should ignore certificate errors when connecting via TLS -- DO NOT USE FIXME: this function is pointless; this should be supplied as a part of the AMI config
func UseTLS ¶
func UseTLS(c *AMIClient)
UseTLS configures the AMIClient to use TLS -- DO NOT USE FIXME: this function is pointless; this should be supplied as a part of the AMI config
func UseTLSConfig ¶
UseTLSConfig configures the AMIClient to use the given TLS Config -- DO NOT USE FIXME: this function is pointless; this should be supplied as a part of the AMI config
Types ¶
type AMIClient ¶
type AMIClient struct { Conn io.ReadWriteCloser // Events for client parse Events chan *AMIEvent // Error Raise on logic Error chan error //NetError a network error NetError chan error // contains filtered or unexported fields }
AMIClient a connection to AMI server
func NewFromRWC ¶ added in v0.2.0
func NewFromRWC(conn io.ReadWriteCloser, options ...func(*AMIClient)) (*AMIClient, error)
NewFromRWC takes an existing ReadWriteCloser and uses it as the connection for AMI
func (*AMIClient) Action ¶
func (client *AMIClient) Action(action string, params Params) (*AMIResponse, error)
Action send with params
func (*AMIClient) AsyncAction ¶
func (client *AMIClient) AsyncAction(action string, params Params) (<-chan *AMIResponse, error)
AsyncAction return chan for wait response of action with parameter *ActionID* this can be helpful for massive actions,
type AMIEvent ¶
type AMIEvent struct { //Identification of event Event: xxxx ID string Privilege []string // Params of arguments received Params map[string]string }
AMIEvent it's a representation of Event readed
type AMIResponse ¶
AMIResponse from action
Directories ¶
Path | Synopsis |
---|---|
_examples
|
|
Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event decoder This Build Type of Event received Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI
|
Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event decoder This Build Type of Event received Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI Package event for AMI |