123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150 |
- 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
- }
|