diff --git a/README.md b/README.md index 4a7174b..a94eebf 100644 --- a/README.md +++ b/README.md @@ -22,10 +22,24 @@ import ( ) // Formats the event as map and prints it out -func printHeartbeat( eventStr, connId string ) { +func printHeartbeat( eventStr, connId string) { // Format the event from string into Go's map type eventMap := fsock.FSEventStrToMap(eventStr, []string{}) - fmt.Printf("%v, connId: %s",eventMap, connId) + fmt.Printf("%v, connId: %s\n",eventMap, connId) +} + +// Formats the event as map and prints it out +func printChannelAnswer( eventStr, connId string) { + // Format the event from string into Go's map type + eventMap := fsock.FSEventStrToMap(eventStr, []string{}) + fmt.Printf("%v, connId: %s\n",eventMap, connId) +} + +// Formats the event as map and prints it out +func printChannelHangup( eventStr, connId string) { + // Format the event from string into Go's map type + eventMap := fsock.FSEventStrToMap(eventStr, []string{}) + fmt.Printf("%v, connId: %s\n",eventMap, connId) } func main() { @@ -35,14 +49,23 @@ func main() { l.Crit(fmt.Sprintf("Cannot connect to syslog:", errLog)) return } - // No filters - evFilters := map[string]string{} - // We are interested in heartbeats, define handler for them - evHandlers := map[string][]func(string, string){"HEARTBEAT": []func(string, string){printHeartbeat}} + + // Filters + evFilters := make(map[string][]string) + evFilters["Event-Name"] = append(evFilters["Event-Name"], "CHANNEL_ANSWER") + evFilters["Event-Name"] = append(evFilters["Event-Name"], "CHANNEL_HANGUP_COMPLETE") + + // We are interested in heartbeats, channel_answer, channel_hangup define handler for them + evHandlers := map[string][]func(string, string){ + "HEARTBEAT": {printHeartbeat}, + "CHANNEL_ANSWER": {printChannelAnswer}, + "CHANNEL_HANGUP_COMPLETE": {printChannelHangup}, + } + fs, err := fsock.NewFSock("127.0.0.1:8021", "ClueCon", 10, evHandlers, evFilters, l, "wetsfnmretiewrtpj") if err != nil { l.Crit(fmt.Sprintf("FreeSWITCH error:", err)) - return + return } fs.ReadEvents() }