Class EslController

java.lang.Object
com.bytedesk.call.esl.EslController

@RestController @RequestMapping("/freeswitch/api/v1/esl") @ConditionalOnProperty(prefix="bytedesk.call.freeswitch", name="enabled", havingValue="true", matchIfMissing=false) public class EslController extends Object
  • Field Details

    • eslService

      private final EslService eslService
  • Constructor Details

    • EslController

      public EslController(EslService eslService)
  • Method Details

    • status

      @GetMapping("/status") public org.springframework.http.ResponseEntity<JsonResult<?>> status()
      FreeSWITCH 运行状态
    • api

      @PostMapping("/api") public org.springframework.http.ResponseEntity<JsonResult<?>> api(@RequestBody @Valid @Valid EslController.ApiRequest req)
      通用同步 API(等同 fs_cli 中的 api 命令)
    • bgapi

      @PostMapping("/bgapi") public CompletableFuture<org.springframework.http.ResponseEntity<JsonResult<?>>> bgapi(@RequestBody @Valid @Valid EslController.ApiRequest req)
      通用异步 BGAPI(返回 BACKGROUND_JOB 事件数据)
    • reloadxml

      @PostMapping("/reloadxml") public org.springframework.http.ResponseEntity<JsonResult<?>> reloadxml()
      触发 reloadxml(重载 XML 配置与拨号计划)
    • reloadacl

      @PostMapping("/reloadacl") public org.springframework.http.ResponseEntity<JsonResult<?>> reloadacl()
      触发 reloadacl(重载 ACL)
    • xmlFlushCache

      @PostMapping("/xml_flush_cache") public org.springframework.http.ResponseEntity<JsonResult<?>> xmlFlushCache()
      刷新 XML 缓存(配合 mod_xml_curl)
    • show

      @GetMapping("/show/{what}") public org.springframework.http.ResponseEntity<JsonResult<?>> show(@PathVariable String what)
      show 系列查询(channels/calls/registrations 等)
    • sofiaStatus

      @GetMapping("/sofia/status") public org.springframework.http.ResponseEntity<JsonResult<?>> sofiaStatus()
      获取 sofia 总览状态
    • sofiaProfile

      @PostMapping("/sofia/profile/{profile}/{action}") public org.springframework.http.ResponseEntity<JsonResult<?>> sofiaProfile(@PathVariable String profile, @PathVariable String action)
      对指定 profile 执行动作(rescan/restart/start/stop)
    • originate

      @PostMapping("/originate") public org.springframework.http.ResponseEntity<JsonResult<?>> originate(@RequestBody @Valid @Valid EslController.OriginateRequest req)
      直接透传 originate 参数串
    • uuidAnswer

      @PostMapping("/uuid/answer/{uuid}") public org.springframework.http.ResponseEntity<JsonResult<?>> uuidAnswer(@PathVariable String uuid)
      应答通道
    • uuidKill

      @PostMapping("/uuid/kill/{uuid}") public org.springframework.http.ResponseEntity<JsonResult<?>> uuidKill(@PathVariable String uuid, @RequestParam(required=false) String cause)
      挂断通道(可带 hangup cause)
    • uuidTransfer

      @PostMapping("/uuid/transfer") public org.springframework.http.ResponseEntity<JsonResult<?>> uuidTransfer(@RequestBody @Valid @Valid EslController.UuidTransferRequest req)
      转接通道
    • uuidBridge

      @PostMapping("/uuid/bridge") public org.springframework.http.ResponseEntity<JsonResult<?>> uuidBridge(@RequestBody @Valid @Valid EslController.UuidBridgeRequest req)
      桥接两个通道
    • uuidBroadcast

      @PostMapping("/uuid/broadcast") public org.springframework.http.ResponseEntity<JsonResult<?>> uuidBroadcast(@RequestBody @Valid @Valid EslController.UuidBroadcastRequest req)
      向通道注入播放(广播)
    • uuidRecord

      @PostMapping("/uuid/record") public org.springframework.http.ResponseEntity<JsonResult<?>> uuidRecord(@RequestBody @Valid @Valid EslController.UuidRecordRequest req)
      控制通道录音
    • uuidSetVar

      @PostMapping("/uuid/setvar") public org.springframework.http.ResponseEntity<JsonResult<?>> uuidSetVar(@RequestBody @Valid @Valid EslController.UuidVarRequest req)
      设置通道变量
    • uuidGetVar

      @GetMapping("/uuid/getvar") public org.springframework.http.ResponseEntity<JsonResult<?>> uuidGetVar(@RequestParam String uuid, @RequestParam String var)
      获取通道变量
    • uuidSendDtmf

      @PostMapping("/uuid/dtmf") public org.springframework.http.ResponseEntity<JsonResult<?>> uuidSendDtmf(@RequestBody @Valid @Valid EslController.UuidDtmfRequest req)
      发送 DTMF
    • conference

      @PostMapping("/conference") public org.springframework.http.ResponseEntity<JsonResult<?>> conference(@RequestBody @Valid @Valid EslController.ConferenceRequest req)
      conference 子命令统一入口
    • setLogLevel

      @PostMapping("/log/level/{level}") public org.springframework.http.ResponseEntity<JsonResult<?>> setLogLevel(@PathVariable IModEslApi.LoggingLevel level)
    • cancelLogLevel

      @PostMapping("/log/cancel") public org.springframework.http.ResponseEntity<JsonResult<?>> cancelLogLevel()