61 lines
1.3 KiB
Go
61 lines
1.3 KiB
Go
package fm
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
|
|
"be.ems/lib/log"
|
|
"be.ems/restagent/config"
|
|
"github.com/chzyer/readline"
|
|
"github.com/go-gsm/ucp"
|
|
)
|
|
|
|
func AlarmForwardBySMSC(alarmData *Alarm) error {
|
|
opt := &ucp.Options{
|
|
Addr: config.GetYamlConfig().Alarm.SMSC.Addr,
|
|
User: config.GetYamlConfig().Alarm.SMSC.UserName,
|
|
Password: config.GetYamlConfig().Alarm.SMSC.Password,
|
|
AccessCode: "",
|
|
}
|
|
|
|
client := ucp.New(opt)
|
|
if err := client.Connect(); err != nil {
|
|
log.Error("Failed to connect:", err)
|
|
return err
|
|
}
|
|
defer client.Close()
|
|
|
|
reader, _ := readline.New(">>> ")
|
|
defer reader.Close()
|
|
|
|
for {
|
|
fmt.Print(">>> ")
|
|
lines, _ := reader.Readline()
|
|
fields := strings.Fields(lines)
|
|
|
|
if len(fields) == 1 {
|
|
// exit CLI
|
|
if fields[0] == "exit" {
|
|
return nil
|
|
}
|
|
// display help message
|
|
if fields[0] == "help" {
|
|
log.Trace("\n\tSend a 'message' to 'receiver' with a 'sender' mask\n\t>>> sender receiver message\n\n\tExit the cli\n\t>>> exit\n")
|
|
}
|
|
}
|
|
|
|
// sender receiver message...
|
|
if len(fields) >= 3 {
|
|
sender := fields[0]
|
|
receiver := fields[1]
|
|
message := strings.Join(fields[2:], " ")
|
|
ids, err := client.Send(sender, receiver, message)
|
|
if err != nil {
|
|
log.Error(err)
|
|
} else {
|
|
log.Debug("%v", ids)
|
|
}
|
|
}
|
|
}
|
|
}
|