mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-07-10 06:41:08 +08:00
来电铃声
This commit is contained in:
parent
f9250283c1
commit
1444496c9d
@ -108,6 +108,19 @@ func (s *rtcServer) handleInvite(ctx context.Context, req *rtc.SignalInviteReq,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 从主叫用户资料获取铃声 URL,注入到邀请信息中,被叫方收到后播放主叫方铃声
|
||||||
|
if inviterInfo, err := s.userClient.GetUserInfo(ctx, req.UserID); err == nil && inviterInfo.CallRingtoneURL != "" {
|
||||||
|
inv.CallerRingtoneURL = inviterInfo.CallRingtoneURL
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询被叫方铃声 URL,供主叫方在等待时播放
|
||||||
|
var calleeRingtoneURL string
|
||||||
|
if len(inv.InviteeUserIDList) > 0 {
|
||||||
|
if inviteeInfo, err := s.userClient.GetUserInfo(ctx, inv.InviteeUserIDList[0]); err == nil {
|
||||||
|
calleeRingtoneURL = inviteeInfo.CallRingtoneURL
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if _, err := s.roomClient.CreateRoom(ctx, &livekit.CreateRoomRequest{Name: inv.RoomID}); err != nil {
|
if _, err := s.roomClient.CreateRoom(ctx, &livekit.CreateRoomRequest{Name: inv.RoomID}); err != nil {
|
||||||
log.ZError(ctx, "handleInvite", err, "r", err.Error())
|
log.ZError(ctx, "handleInvite", err, "r", err.Error())
|
||||||
return nil, errs.WrapMsg(err, "LiveKit CreateRoom failed", "roomID", inv.RoomID)
|
return nil, errs.WrapMsg(err, "LiveKit CreateRoom failed", "roomID", inv.RoomID)
|
||||||
@ -147,9 +160,10 @@ func (s *rtcServer) handleInvite(ctx context.Context, req *rtc.SignalInviteReq,
|
|||||||
|
|
||||||
log.ZDebug(ctx, "handleInvite", "token", token, "roomID", inv.RoomID, "liveURL", s.config.RpcConfig.LiveKit.ExternalAddress)
|
log.ZDebug(ctx, "handleInvite", "token", token, "roomID", inv.RoomID, "liveURL", s.config.RpcConfig.LiveKit.ExternalAddress)
|
||||||
return &rtc.SignalInviteResp{
|
return &rtc.SignalInviteResp{
|
||||||
Token: token,
|
Token: token,
|
||||||
RoomID: inv.RoomID,
|
RoomID: inv.RoomID,
|
||||||
LiveURL: s.config.RpcConfig.LiveKit.ExternalAddress,
|
LiveURL: s.config.RpcConfig.LiveKit.ExternalAddress,
|
||||||
|
CalleeRingtoneURL: calleeRingtoneURL,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -164,6 +178,19 @@ func (s *rtcServer) handleInviteInGroup(ctx context.Context, req *rtc.SignalInvi
|
|||||||
inv.InviterUserID = req.UserID
|
inv.InviterUserID = req.UserID
|
||||||
inv.InitiateTime = time.Now().UnixMilli()
|
inv.InitiateTime = time.Now().UnixMilli()
|
||||||
|
|
||||||
|
// 从主叫用户资料获取铃声 URL,注入到邀请信息中,被叫方收到后播放主叫方铃声
|
||||||
|
if inviterInfo, err := s.userClient.GetUserInfo(ctx, req.UserID); err == nil && inviterInfo.CallRingtoneURL != "" {
|
||||||
|
inv.CallerRingtoneURL = inviterInfo.CallRingtoneURL
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询第一位被叫的铃声 URL,供主叫方在等待时播放
|
||||||
|
var calleeRingtoneURL string
|
||||||
|
if len(inv.InviteeUserIDList) > 0 {
|
||||||
|
if inviteeInfo, err := s.userClient.GetUserInfo(ctx, inv.InviteeUserIDList[0]); err == nil {
|
||||||
|
calleeRingtoneURL = inviteeInfo.CallRingtoneURL
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if _, err := s.roomClient.CreateRoom(ctx, &livekit.CreateRoomRequest{Name: inv.RoomID}); err != nil {
|
if _, err := s.roomClient.CreateRoom(ctx, &livekit.CreateRoomRequest{Name: inv.RoomID}); err != nil {
|
||||||
return nil, errs.WrapMsg(err, "LiveKit CreateRoom failed", "roomID", inv.RoomID)
|
return nil, errs.WrapMsg(err, "LiveKit CreateRoom failed", "roomID", inv.RoomID)
|
||||||
}
|
}
|
||||||
@ -206,9 +233,10 @@ func (s *rtcServer) handleInviteInGroup(ctx context.Context, req *rtc.SignalInvi
|
|||||||
}
|
}
|
||||||
|
|
||||||
return &rtc.SignalInviteInGroupResp{
|
return &rtc.SignalInviteInGroupResp{
|
||||||
Token: token,
|
Token: token,
|
||||||
RoomID: inv.RoomID,
|
RoomID: inv.RoomID,
|
||||||
LiveURL: s.config.RpcConfig.LiveKit.ExternalAddress,
|
LiveURL: s.config.RpcConfig.LiveKit.ExternalAddress,
|
||||||
|
CalleeRingtoneURL: calleeRingtoneURL,
|
||||||
}, nil
|
}, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -49,6 +49,7 @@ func UserDB2Pb(user *relationtb.User) *sdkws.UserInfo {
|
|||||||
PhoneVisibility: user.PhoneVisibility,
|
PhoneVisibility: user.PhoneVisibility,
|
||||||
CallAcceptSetting: user.CallAcceptSetting,
|
CallAcceptSetting: user.CallAcceptSetting,
|
||||||
MsgReceiveSetting: user.MsgReceiveSetting,
|
MsgReceiveSetting: user.MsgReceiveSetting,
|
||||||
|
CallRingtoneURL: user.CallRingtoneURL,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -59,16 +60,17 @@ func UsersDB2Pb(users []*relationtb.User) []*sdkws.UserInfo {
|
|||||||
func UserPb2DB(user *sdkws.UserInfo) *relationtb.User {
|
func UserPb2DB(user *sdkws.UserInfo) *relationtb.User {
|
||||||
fullName := BuildFullName(user.FirstName, user.LastName)
|
fullName := BuildFullName(user.FirstName, user.LastName)
|
||||||
return &relationtb.User{
|
return &relationtb.User{
|
||||||
UserID: user.UserID,
|
UserID: user.UserID,
|
||||||
Nickname: user.Nickname,
|
Nickname: user.Nickname,
|
||||||
FaceURL: user.FaceURL,
|
FaceURL: user.FaceURL,
|
||||||
Ex: user.Ex,
|
Ex: user.Ex,
|
||||||
CreateTime: time.UnixMilli(user.CreateTime),
|
CreateTime: time.UnixMilli(user.CreateTime),
|
||||||
AppMangerLevel: user.AppMangerLevel,
|
AppMangerLevel: user.AppMangerLevel,
|
||||||
GlobalRecvMsgOpt: user.GlobalRecvMsgOpt,
|
GlobalRecvMsgOpt: user.GlobalRecvMsgOpt,
|
||||||
FirstName: user.FirstName,
|
FirstName: user.FirstName,
|
||||||
LastName: user.LastName,
|
LastName: user.LastName,
|
||||||
FullName: fullName,
|
FullName: fullName,
|
||||||
|
CallRingtoneURL: user.CallRingtoneURL,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -85,6 +87,7 @@ func UserPb2DBMap(user *sdkws.UserInfo) map[string]any {
|
|||||||
"last_name": user.LastName,
|
"last_name": user.LastName,
|
||||||
"app_manager_level": user.AppMangerLevel,
|
"app_manager_level": user.AppMangerLevel,
|
||||||
"global_recv_msg_opt": user.GlobalRecvMsgOpt,
|
"global_recv_msg_opt": user.GlobalRecvMsgOpt,
|
||||||
|
"call_ringtone_url": user.CallRingtoneURL,
|
||||||
}
|
}
|
||||||
for key, value := range fields {
|
for key, value := range fields {
|
||||||
if v, ok := value.(string); ok && v != "" {
|
if v, ok := value.(string); ok && v != "" {
|
||||||
@ -147,5 +150,8 @@ func UserPb2DBMapEx(user *sdkws.UserInfoWithEx) map[string]any {
|
|||||||
if user.MsgReceiveSetting != nil {
|
if user.MsgReceiveSetting != nil {
|
||||||
val["msg_receive_setting"] = user.MsgReceiveSetting.Value
|
val["msg_receive_setting"] = user.MsgReceiveSetting.Value
|
||||||
}
|
}
|
||||||
|
if user.CallRingtoneURL != nil {
|
||||||
|
val["call_ringtone_url"] = user.CallRingtoneURL.Value
|
||||||
|
}
|
||||||
return val
|
return val
|
||||||
}
|
}
|
||||||
|
|||||||
@ -57,6 +57,8 @@ type User struct {
|
|||||||
PhoneVisibility int32 `bson:"phone_visibility"`
|
PhoneVisibility int32 `bson:"phone_visibility"`
|
||||||
CallAcceptSetting int32 `bson:"call_accept_setting"`
|
CallAcceptSetting int32 `bson:"call_accept_setting"`
|
||||||
MsgReceiveSetting int32 `bson:"msg_receive_setting"`
|
MsgReceiveSetting int32 `bson:"msg_receive_setting"`
|
||||||
|
// CallRingtoneURL 用户自定义来电铃声 URL;对方来电时播放此铃声
|
||||||
|
CallRingtoneURL string `bson:"call_ringtone_url"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *User) GetNickname() string {
|
func (u *User) GetNickname() string {
|
||||||
|
|||||||
2
protocol
2
protocol
@ -1 +1 @@
|
|||||||
Subproject commit 0db6a732426df40792921f861112e32785405e8d
|
Subproject commit 8bdb641d1356efc61620c0d37647a86f5dc94973
|
||||||
Loading…
x
Reference in New Issue
Block a user