package action import ( "errors" "pbx-api-gin/internal/app/ami" "pbx-api-gin/internal/app/ami/model" "pbx-api-gin/pkg/lfshook" "pbx-api-gin/pkg/utils" "github.com/mitchellh/mapstructure" ) func ListRoomMeetMe(options map[string]string) (points []*model.MeetMeListRooms, err error) { action := map[string]string{ "Action": "MeetmeListRooms", } for key, value := range options { action[key] = value } res, events, err := ami.AminInstance.Send(action) if err != nil { return nil, err } if res["Response"] != "Success" { return nil, errors.New(res["Message"]) } for _, event := range events { if event.Data["Event"] == "MeetmeListRooms" { point := &model.MeetMeListRooms{} mapstructure.Decode(event.Data, point) points = append(points, point) } } return points, nil } func ListMeetMe(confnum string) (points []*model.MeetmeList, err error) { points = make([]*model.MeetmeList, 0) action := map[string]string{ "Action": "MeetmeList", } if confnum != "" { action["Conference"] = confnum } res, events, err := ami.AminInstance.Send(action) if err != nil { return points, err } if res["Response"] != "Success" { return points, errors.New(res["Message"]) } lfshook.NewLogger().Tracef("ListMeetMe %+v", events) for _, event := range events { if event.Data["Event"] == "MeetmeList" { point := &model.MeetmeList{} mapstructure.Decode(event.Data, point) points = append(points, point) } } return points, nil } // 踢出成员:/etc/scripts/conference.sh kick 会议室号码 numbers func KickMeetMe(confnum, numbers string) (err error) { lfshook.NewLogger().Infof("kick %s %s", confnum, numbers) _, _, err = utils.ExecCmd("/etc/scripts/conference.sh", "kick", confnum, numbers) if err != nil { return err } return nil } func MuteMeetMe(meetme, usernum string) (res map[string]string, err error) { lfshook.NewLogger().Infof("mute %s %s", meetme, usernum) action := map[string]string{ "Action": "MeetmeMute", "Meetme": meetme, "Usernum": usernum, } lfshook.NewLogger().Infof("meetme action %+v", action) res, _, err = ami.AminInstance.Send(action) if err != nil { return nil, err } if res["Response"] != "Success" { return nil, errors.New(res["Message"]) } return res, nil } func UnMuteMeetMe(meetme, usernum string) (res map[string]string, err error) { action := map[string]string{ "Action": "MeetmeUnmute", "Meetme": meetme, "Usernum": usernum, } res, _, err = ami.AminInstance.Send(action) if err != nil { return nil, err } if res["Response"] != "Success" { return nil, errors.New(res["Message"]) } return res, nil } // 锁定会议室:/etc/scripts/conference.sh lock 会议室号码 func LockMeetMe(confnum string) (err error) { _, _, err = utils.ExecCmd("/etc/scripts/conference.sh", "lock", confnum) if err != nil { return err } return nil } // 解除锁定会议室:/etc/scripts/conference.sh unlock 会议室号码 func UnLockMeetMe(confnum string) (err error) { _, _, err = utils.ExecCmd("/etc/scripts/conference.sh", "unlock", confnum) if err != nil { return err } return nil } // 结束会议:/etc/scripts/conference.sh endconf 会议室号码 func EndMeetMe(number string) (err error) { _, _, err = utils.ExecCmd("/etc/scripts/conference.sh", "endconf", number) if err != nil { return err } return nil } // 邀请会议:/etc/scripts/conference.sh invite 会议室号码 func IviteMeetMe(conference, number string, dialplan string, myExtension string) (err error) { _, _, err = utils.ExecCmd("/etc/scripts/conference.sh", "invite", conference, number, dialplan, myExtension) if err != nil { return err } return nil }