code: public void attachUserData(String connId, KeyValueCollection userData) throws WorkspaceApiException {
          try {
              VoicecallsidcompleteData completeData = new VoicecallsidcompleteData();
              completeData.setUserData(Util.toKVList(userData));
              UserDataOperationId data = new UserDataOperationId();
              data.data(completeData);
  
              ApiSuccessResponse response = this.voiceApi.attachUserData(connId, data);
              throwIfNotOk("attachUserData", response);
          } catch (ApiException e) {
              throw new WorkspaceApiException("attachUserData failed.", e);
          }
      }
docs: Attach the provided data to the call. This adds the data to the call even if data already exists
  with the provided keys.
  @param connId The connection ID of the call.
  @param userData The data to attach to the call. This is an array of objects with the properties key, type, and value.