anchor.diff:              _ ->
                   % 通知连接者
                   ss_server:dispatch({invite_accept, From}, S),
  +                % 保存通知
  +                save_invite(accept, From, Account, S),
                   % 清理
                   W:send(?offline, [delete, TrackId]),
                   %erlang:display("invite_confirm ......"),
  
positive.code: %% 收到联系人邀请, 请求连接者同意
  invite_from(TrackId, From, S) ->
      force_login(fun() ->
          ss_server:dispatch({invite_from, TrackId, From}, S),
          {ok, S}
      end, S).
  
negative.code: chat_offline(TrackId, Content, From, #{world:=W}=S) ->
      force_login(fun() ->
          W:send(?offline, [delete, TrackId]),
          ss_server:dispatch({chat_offline, Content, From}, S),
          %% 保存接收记录
          save_chat(Content, From, maps:get(account, S), S),
          {ok, S}
      end, S).
  
  %% 聊天消息确认
  chat_online_confirm({Pid, Ref}, S) ->
      force_login(fun() ->
          erlang:display("chat confirm ...."),
          Pid ! {confirm, Ref},
  