code: public void makeCall(
              String destination,
              KeyValueCollection userData,
              KeyValueCollection reasons,
              KeyValueCollection extensions
      ) throws WorkspaceApiException {
          try {
              VoicemakecallData data = new VoicemakecallData();
              data.destination(destination);
              data.setUserData(Util.toKVList(userData));
              data.setExtensions(Util.toKVList(extensions));
              data.setReasons(Util.toKVList(reasons));
              MakeCallData makeCallData = new MakeCallData().data(data);
  
              ApiSuccessResponse response = this.voiceApi.makeCall(makeCallData);
              throwIfNotOk("makeCall", response);
  
          } catch (ApiException e) {
              throw new WorkspaceApiException("makeCall failed.", e);
          }
      }
docs: Make a new call to the specified destination.
  @param destination The number to call.
  @param userData A key/value pairs list of the user data that should be attached to the call.
  @param reasons Information on causes for, and results of, actions taken by the user of the current DN. For details about reasons, refer to the [*Genesys Events and Models Reference Manual*](https://docs.genesys.com/Documentation/System/Current/GenEM/Reasons). (optional)
  @param extensions Media device/hardware reason codes and similar information. For details about extensions, refer to the [*Genesys Events and Models Reference Manual*](https://docs.genesys.com/Documentation/System/Current/GenEM/Extensions). (optional)