| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | 
							- package asterisk
 
- import (
 
- 	"net/http"
 
- 	"pbx-api-gin/api/model"
 
- 	"pbx-api-gin/internal/app/ami/action"
 
- 	"pbx-api-gin/pkg/lfshook"
 
- 	"github.com/gin-gonic/gin"
 
- )
 
- // @tags Asterisk-Park
 
- // @Summary  停泊分机
 
- // @Description 停泊分机
 
- // @Security ApiKeyAuth
 
- // @Accept  json
 
- // @Produce  json
 
- // @Param   data body  model.ParkInfoVO  true "更新信息"
 
- // @Success 200 {object} model.APIOK "请求成功"
 
- // @Router /ginapi/plugin-asterisk/park/park [post]
 
- func park(ctx *gin.Context) {
 
- 	var data model.ParkInfoVO
 
- 	if err := ctx.ShouldBindJSON(&data); err != nil {
 
- 		ctx.JSON(http.StatusBadRequest, model.APIError{ErrorMessage: err.Error()})
 
- 		return
 
- 	}
 
- 	lfshook.NewLogger().Infof("park %+v", data)
 
- 	if err := action.Park(data.Extension, data.Parkinglot); err != nil {
 
- 		ctx.JSON(http.StatusInternalServerError, model.APIError{ErrorMessage: err.Error()})
 
- 		return
 
- 	}
 
- 	ctx.JSON(http.StatusOK, model.APIOK{Message: "ok", Data: data})
 
- }
 
- // @tags Asterisk-Park
 
- // @Summary  停泊接回
 
- // @Description 停泊接回
 
- // @Security ApiKeyAuth
 
- // @Accept  json
 
- // @Produce  json
 
- // @Param   data body  model.ParkBackVO  true "更新信息"
 
- // @Success 200 {object} model.APIOK "请求成功"
 
- // @Router /ginapi/plugin-asterisk/park/back [post]
 
- func parkBack(ctx *gin.Context) {
 
- 	var info model.ParkBackVO
 
- 	if err := ctx.ShouldBindJSON(&info); err != nil {
 
- 		ctx.JSON(http.StatusBadRequest, model.APIError{ErrorMessage: err.Error()})
 
- 		return
 
- 	}
 
- 	lfshook.NewLogger().Infof("park back %+v", info)
 
- 	// 根据参数确定主叫, 再考虑用户登录的分机信息
 
- 	myExtension := info.CallerNumber
 
- 	if myExtension == "" {
 
- 		//ID, _ := ctx.Get("ID")
 
- 		myExtension = "=============="
 
- 		if myExtension == "" {
 
- 			ctx.JSON(http.StatusBadRequest, model.APIError{ErrorMessage: "not found extension"})
 
- 			return
 
- 		}
 
- 	}
 
- 	dialplan := "default"
 
- 	if info.CallerID == "" {
 
- 		info.CallerID = info.Extension
 
- 	}
 
- 	action.Dial(myExtension, info.Extension, dialplan, info.CallerID, "=================", "Local")
 
- 	ctx.JSON(http.StatusOK, model.APIOK{Message: "ok", Data: info})
 
- }
 
- // @tags Asterisk-Park
 
- // @Summary  获取停泊信息
 
- // @Description 获取停泊信息
 
- // @Security ApiKeyAuth
 
- // @Accept  json
 
- // @Produce  json
 
- // @Param   data body  model.ParkCommonVO  true "更新信息"
 
- // @Success 200 {object} model.APIOK "请求成功"
 
- // @Router /ginapi/plugin-asterisk/park/calls [post]
 
- func parkedCalls(ctx *gin.Context) {
 
- 	var data model.ParkCommonVO
 
- 	if err := ctx.ShouldBindJSON(&data); err != nil {
 
- 		ctx.JSON(http.StatusBadRequest, model.APIError{ErrorMessage: err.Error()})
 
- 		return
 
- 	}
 
- 	res, err := action.ParkedCalls(data.Parkinglot)
 
- 	if err != nil {
 
- 		ctx.JSON(http.StatusInternalServerError, model.APIError{ErrorMessage: err.Error()})
 
- 		return
 
- 	}
 
- 	ctx.JSON(http.StatusOK, model.APIOK{Message: "ok", Data: res})
 
- }
 
- // @tags Asterisk-Park
 
- // @Summary 获取停泊池信息
 
- // @Description 获取停泊池信息
 
- // @Security ApiKeyAuth
 
- // @Accept  json
 
- // @Produce  json
 
- // @Success 200 {object} model.APIOK "请求成功"
 
- // @Router /ginapi/plugin-asterisk/park/lots [get]
 
- func parkinglots(ctx *gin.Context) {
 
- 	data, err := action.Parkinglots()
 
- 	if err != nil {
 
- 		ctx.JSON(http.StatusInternalServerError, model.APIError{ErrorMessage: err.Error()})
 
- 		return
 
- 	}
 
- 	ctx.JSON(http.StatusOK, model.APIOK{Message: "ok", Data: data})
 
- }
 
 
  |