diff --git a/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/Constant.java b/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/Constant.java index 19b819d..1fea724 100644 --- a/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/Constant.java +++ b/taoyao-signal-server/taoyao-boot/src/main/java/com/acgist/taoyao/boot/config/Constant.java @@ -121,6 +121,14 @@ public interface Constant { * 媒体类型 */ String KIND = "kind"; + /** + * 声音 + */ + String AUDIO = "audio"; + /** + * 视频 + */ + String VIDEO = "video"; /** * 索引 */ diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCallProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCallProtocol.java index 422219e..e2932d4 100644 --- a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCallProtocol.java +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionCallProtocol.java @@ -21,7 +21,9 @@ import com.acgist.taoyao.signal.protocol.ProtocolSessionAdapter; @Description( body = """ { - "clientId": "接收者ID" + "clientId": "接收者ID", + "audio" : 是否需要声音(true|false), + "video" : 是否需要视频(true|false) } """, flow = { @@ -52,7 +54,9 @@ public class SessionCallProtocol extends ProtocolSessionAdapter { callMessage.setBody(Map.of( Constant.NAME, client.status().getName(), Constant.CLIENT_ID, client.clientId(), - Constant.SESSION_ID, session.getId() + Constant.SESSION_ID, session.getId(), + Constant.AUDIO, MapUtils.get(body, Constant.AUDIO), + Constant.VIDEO, MapUtils.get(body, Constant.VIDEO) )); target.push(callMessage); } diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionPauseProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionPauseProtocol.java new file mode 100644 index 0000000..5550cdc --- /dev/null +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionPauseProtocol.java @@ -0,0 +1,41 @@ +package com.acgist.taoyao.signal.protocol.session; + +import java.util.Map; + +import com.acgist.taoyao.boot.annotation.Description; +import com.acgist.taoyao.boot.annotation.Protocol; +import com.acgist.taoyao.boot.model.Message; +import com.acgist.taoyao.signal.client.Client; +import com.acgist.taoyao.signal.client.ClientType; +import com.acgist.taoyao.signal.party.session.Session; +import com.acgist.taoyao.signal.protocol.ProtocolSessionAdapter; + +/** + * 暂停媒体信令 + * + * @author acgist + */ +@Protocol +@Description( + body = """ + { + "sessionId": "会话ID", + "type" : "媒体类型(audio|voice)" + } + """, + flow = "终端->信令服务->终端" +) +public class SessionPauseProtocol extends ProtocolSessionAdapter { + + public static final String SIGNAL = "session::pause"; + + public SessionPauseProtocol() { + super("暂停媒体信令", SIGNAL); + } + + @Override + public void execute(String clientId, ClientType clientType, Session session, Client client, Message message, Map body) { + session.pushRemote(clientId, message); + } + +} diff --git a/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionResumeProtocol.java b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionResumeProtocol.java new file mode 100644 index 0000000..e434e06 --- /dev/null +++ b/taoyao-signal-server/taoyao-signal/src/main/java/com/acgist/taoyao/signal/protocol/session/SessionResumeProtocol.java @@ -0,0 +1,41 @@ +package com.acgist.taoyao.signal.protocol.session; + +import java.util.Map; + +import com.acgist.taoyao.boot.annotation.Description; +import com.acgist.taoyao.boot.annotation.Protocol; +import com.acgist.taoyao.boot.model.Message; +import com.acgist.taoyao.signal.client.Client; +import com.acgist.taoyao.signal.client.ClientType; +import com.acgist.taoyao.signal.party.session.Session; +import com.acgist.taoyao.signal.protocol.ProtocolSessionAdapter; + +/** + * 恢复媒体信令 + * + * @author acgist + */ +@Protocol +@Description( + body = """ + { + "sessionId": "会话ID", + "type" : "媒体类型(audio|voice)" + } + """, + flow = "终端->信令服务->终端" +) +public class SessionResumeProtocol extends ProtocolSessionAdapter { + + public static final String SIGNAL = "session::resume"; + + public SessionResumeProtocol() { + super("恢复媒体信令", SIGNAL); + } + + @Override + public void execute(String clientId, ClientType clientType, Session session, Client client, Message message, Map body) { + session.pushRemote(clientId, message); + } + +}