code: @Override
      protected void submitFaxJobImpl(FaxJob faxJob)
      {
          //get fax job values
          String targetAddress=faxJob.getTargetAddress();
          String targetName=faxJob.getTargetName();
          if(targetName==null)
          {
              targetName="";
          }
          String senderName=faxJob.getSenderName();
          if(senderName==null)
          {
              senderName="";
          }
          File file=faxJob.getFile();
          String filePath=null;
          try
          {
              filePath=file.getCanonicalPath();
          }
          catch(Exception exception)
          {
              throw new FaxException("Unable to extract canonical path from file: "+file,exception);
          }
          String documentName=faxJob.getProperty(WindowsFaxClientSpi.FaxJobExtendedPropertyConstants.DOCUMENT_NAME_PROPERTY_KEY.toString(), "");
          
          //invoke fax action
          int faxJobIDInt=this.winSubmitFaxJob(this.faxServerName,targetAddress,targetName,senderName,filePath,documentName);
          
          //validate fax job ID
          WindowsFaxClientSpiHelper.validateFaxJobID(faxJobIDInt);
          
          //set fax job ID
          String faxJobID=String.valueOf(faxJobIDInt);
          faxJob.setID(faxJobID);
      }
docs: This function will submit a new fax job.<br>
  The fax job ID may be populated by this method in the provided
  fax job object.
  
  @param   faxJob
  The fax job object containing the needed information