123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using CallCenter.Calls;
- using CallCenter.Share.Dtos;
- using CallCenter.Share.Enums;
- using CallCenter.Tels;
- using Org.BouncyCastle.Operators;
- using SqlSugar;
- namespace CallCenter.Devices
- {
- public interface IDeviceManager
- {
- #region 查询
- /// <summary>
- /// 查询分机
- /// </summary>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task<TelDto> QueryTelAsync(string TelNo,CancellationToken cancellationToken);
- /// <summary>
- /// 查询分机状态
- /// </summary>
- /// <param name="TelNo"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task<Share.Enums.ETelStatus> QueryTelState(string TelNo, CancellationToken cancellationToken);
- /// <summary>
- /// 查询所有分机
- /// </summary>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task<List<Tel>> QueryTelsAsync(CancellationToken cancellationToken);
- /// <summary>
- /// 查询所有分机组
- /// </summary>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task<List<TelGroup>> QueryTelGroupsAsync(CancellationToken cancellationToken);
- /// <summary>
- /// 查询语音文件
- /// </summary>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task<string> VoiceQueryListAsync(CancellationToken cancellationToken);
- #endregion
- #region 配置
- /// <summary>
- /// 分机休息
- /// </summary>
- /// <param name="telNo">分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task TelRestAsync(string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 分机结束休息
- /// </summary>
- /// <param name="telNo">分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task TelEndRestAsync(string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 上班/下班
- /// </summary>
- /// <param name="telNo"></param>
- /// <param name="staffNo"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task UpdateStaffNoAsync(string telNo, string staffNo, string lineId, CancellationToken cancellationToken);
- /// <summary>
- /// 删除语音文件
- /// </summary>
- /// <param name="voiceName"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task RemoveVoiceFileAsync(string voiceName, CancellationToken cancellationToken);
- /// <summary>
- /// 配置语音菜单
- /// </summary>
- /// <param name="menuId"></param>
- /// <param name="voiceFile"></param>
- /// <param name="repeat"></param>
- /// <param name="infoLength"></param>
- /// <param name="exit"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task AssginConfigMenuAsync(string menuId, string voiceFile, string repeat, string infoLength, string exit,
- CancellationToken cancellationToken);
- /// <summary>
- /// 配置分机组
- /// </summary>
- /// <param name="groupId"></param>
- /// <param name="voiceFile"></param>
- /// <param name="distribution"></param>
- /// <param name="ext"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task AssginConfigGroupAsync(string groupId, string distribution, List<string> ext, string? voiceFile = "", CancellationToken cancellationToken = default);
- /// <summary>
- /// 更新分机组
- /// </summary>
- /// <param name="groupId"></param>
- /// <param name="ext"></param>
- /// <param name="cancellationToken"></param>
- /// <param name="isAdd"></param>
- /// <returns></returns>
- Task ModifyGroupExtAsync(string groupId, EDistribution distribution, string voicefile = "", string extId = "", bool isAdd = true, CancellationToken cancellationToken = default);
- #endregion
- #region 通话控制
- /// <summary>
- /// 保持通话
- /// </summary>
- /// <param name="telNo">分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task HoldAsync(string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 恢复通话(解除hold状态)
- /// </summary>
- /// <param name="telNo">分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task UnHoldAsync(string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 开启静音
- /// </summary>
- /// <param name="telNo">分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task MuteAsync(string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 解除静音命令
- /// </summary>
- /// <param name="telNo">分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task UnMuteAsync(string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 强拆分机
- /// </summary>
- /// <param name="extId"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task ClearExtAsync(string extId, CancellationToken cancellationToken);
- /// <summary>
- /// 强拆来电
- /// </summary>
- /// <param name="visitorId"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task ClearVisitorAsync(string visitorId, CancellationToken cancellationToken);
- /// <summary>
- /// 强拆去电
- /// </summary>
- /// <param name="outerId"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task ClearOuterAsync(string outerId, CancellationToken cancellationToken);
- /// <summary>
- /// 来电受理
- /// </summary>
- /// <param name="visitorId"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task AcceptVisitorAsync(string visitorId, CancellationToken cancellationToken);
- #endregion
- #region 连接/呼叫
- /// <summary>
- /// 分机呼分机
- /// </summary>
- /// <param name="from">主叫分机号</param>
- /// <param name="to">被叫分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task ExtToExtAsync(string from, string to, CancellationToken cancellationToken);
- /// <summary>
- /// 分机呼外部电话
- /// </summary>
- /// <param name="from">分机号</param>
- /// <param name="to">外部电话,外地电话加拨0</param>
- /// <param name="cancellationToken"></param>
- /// <param name="trunkid">指定中继线路(可为空),为空时默认由OM分配</param>
- /// <returns></returns>
- Task ExtToOuterAsync(string from, string to, CancellationToken cancellationToken, string trunkid = "");
- /// <summary>
- /// 来电转分机
- /// </summary>
- /// <param name="visitorId">来电会话ID</param>
- /// <param name="telNo">分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task VisitorToExtAsync(string visitorId, string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 来电转外部电话
- /// </summary>
- /// <param name="visitorId">来电会话ID</param>
- /// <param name="outerPhoneNum">外部电话,外地电话加拨0</param>
- /// <param name="cancellationToken"></param>
- /// <param name="display">来电号码,用来透传主叫号码,使去电方的来电显示号码为实际来电号码。</param>
- /// <returns></returns>
- Task VisitorToOuterAsync(string visitorId, string outerPhoneNum, CancellationToken cancellationToken,
- string display = "");
- /// <summary>
- /// 来电转语音菜单
- /// </summary>
- /// <param name="visitorId">来电会话ID</param>
- /// <param name="menuId">菜单ID</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task VisitorToMenuAsync(string visitorId, string menuId, CancellationToken cancellationToken);
- /// <summary>
- /// 来电转分机组
- /// </summary>
- /// <param name="visitorId"></param>
- /// <param name="groupId"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task VisitorToGroupAsync(string visitorId, string groupId, CancellationToken cancellationToken);
- /// <summary>
- /// 去电转分机
- /// </summary>
- /// <param name="outerId">去电会话ID</param>
- /// <param name="telNo">分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task OuterToExtAsync(string outerId, string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 去电转外部电话
- /// </summary>
- /// <param name="outerId">去电会话ID</param>
- /// <param name="outerPhoneNum">外部电话,外地电话加拨0</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task OuterToOuterAsync(string outerId, string outerPhoneNum, CancellationToken cancellationToken);
- /// <summary>
- /// 语音菜单呼叫分机
- /// </summary>
- /// <param name="menuId">语音菜单ID</param>
- /// <param name="telNo">分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task MenuToExtAsync(string menuId, string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 语音菜单呼外部电话
- /// </summary>
- /// <param name="menuId">语音菜单ID</param>
- /// <param name="outerPhoneNum">外部电话,外地电话加拨0</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task MenuToOuterAsync(string menuId, string outerPhoneNum, CancellationToken cancellationToken);
- /// <summary>
- /// 双向呼叫(回拨)
- /// </summary>
- /// <param name="outerOne">主叫外部电话,外地电话加拨0</param>
- /// <param name="outerTwo">被叫外部电话,外地电话加拨0</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task TwoWayOuterAsync(string outerOne, string outerTwo, CancellationToken cancellationToken);
- /// <summary>
- /// 语音插播(分机)
- /// </summary>
- /// <param name="voiceFileName">语音名称</param>
- /// <param name="telNo">分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task VoiceNewsFlashExtAsync(string voiceFileName, string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 语音插播(来电)
- /// </summary>
- /// <param name="voiceFileName">语音名称</param>
- /// <param name="visitorId">来电会话ID</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task VoiceNewsFlashVisitorAsync(string voiceFileName, string visitorId, CancellationToken cancellationToken);
- /// <summary>
- /// 语音插播(去电)
- /// </summary>
- /// <param name="voiceFileName">语音名称</param>
- /// <param name="outerId">去电会话ID</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task VoiceNewsFlashOuterAsync(string voiceFileName, string outerId, CancellationToken cancellationToken);
- /// <summary>
- /// 会议
- /// </summary>
- /// <param name="telNo">发起方分机号</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task ConferenceMeetingAsync(string telNo, CancellationToken cancellationToken);
- #endregion
- #region 监听和插播
- /// <summary>
- /// 监听分机
- /// </summary>
- /// <param name="firstTelNo">监听方</param>
- /// <param name="secondTelNo">被监听方</param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task MonitorExtAsync(string firstTelNo, string secondTelNo, CancellationToken cancellationToken);
- /// <summary>
- /// 从监听到插播状态变换
- /// 1. 已知:分机 A 在监听分机 B 与其通话方的通话;
- /// 2. 执行分机 A 的从监听到插播状态变换的 API;
- /// 3. 执行成功时,分机 A 与分机 B 建立通话,分机 B 的原通话方听保持音。
- /// </summary>
- /// <param name="telNo"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task MonitorExtToTalk(string telNo, CancellationToken cancellationToken);
- /// <summary>
- /// 从插播到监听状态变换
- /// 1. 已知:分机 A 在插播分机 B 的通话;
- /// 2. 执行分机 A 的从插播到监听状态变换的 API;
- /// 3. 执行成功时,分机 A 监听分机 B 及其原通话方的通话。
- /// </summary>
- /// <param name="telNo"></param>
- /// <param name="cancellationToken"></param>
- /// <returns></returns>
- Task MonitorExtToListen(string telNo, CancellationToken cancellationToken);
-
- #endregion
- }
- }
|