code: protected void fireFaxEvent(FaxMonitorEventID id,FaxJob faxJob,FaxJobStatus faxJobStatus)
      {
          //create new fax event
          FaxMonitorEvent event=new FaxMonitorEvent(id,faxJob,faxJobStatus);
  
          //get listeners
          FaxMonitorEventListener[] listeners=null;
          synchronized(this.faxClientActionEventListeners)
          {
              listeners=this.faxMonitorEventListeners.toArray(new FaxMonitorEventListener[this.faxMonitorEventListeners.size()]);
          }
          
          int amount=listeners.length;
          FaxMonitorEventListener listener=null;
          for(int index=0;index<amount;index++)
          {
              //get next element
              listener=listeners[index];
              
              //fire event
              if(listener!=null)
              {
                  switch(id)
                  {
                      case FAX_JOB_STATUS_CHANGE:
                          listener.faxJobStatusChanged(event);
                          break;
                      default:
                          throw new FaxException("Unable to support fax event, for event ID: "+id);
                  }
              }
          }
      }
docs: This function fires a new fax event.
  
  @param   id
  The fax event ID
  @param   faxJob
  The fax job
  @param   faxJobStatus
  The fax job status