feat(call): add media type support to call invite functionality
- Updated the WSHandler to include a media type field in the call invite request, allowing differentiation between voice and video calls. - Modified the CallService interface and implementation to accept the media type parameter during call invitations, enhancing call handling capabilities.
This commit is contained in:
@@ -450,6 +450,7 @@ func (h *WSHandler) handleCallInvite(ctx context.Context, client *ws.Client, pay
|
||||
var req struct {
|
||||
CalleeID string `json:"callee_id"`
|
||||
ConversationID string `json:"conversation_id"`
|
||||
MediaType string `json:"call_type"` // voice 或 video
|
||||
}
|
||||
if err := json.Unmarshal(payload, &req); err != nil {
|
||||
h.wsHub.SendError(client, "parse_error", "invalid call_invite format")
|
||||
@@ -460,7 +461,13 @@ func (h *WSHandler) handleCallInvite(ctx context.Context, client *ws.Client, pay
|
||||
return
|
||||
}
|
||||
|
||||
call, err := h.callService.Invite(ctx, client.UserID, req.CalleeID, req.ConversationID)
|
||||
// 前端传的 call_type 是 voice/video,默认为 voice
|
||||
mediaType := req.MediaType
|
||||
if mediaType != "video" {
|
||||
mediaType = "voice"
|
||||
}
|
||||
|
||||
call, err := h.callService.Invite(ctx, client.UserID, req.CalleeID, req.ConversationID, mediaType)
|
||||
if err != nil {
|
||||
zap.L().Warn("Failed to invite call",
|
||||
zap.String("caller_id", client.UserID),
|
||||
|
||||
Reference in New Issue
Block a user