예제 #1
0
파일: Sender.php 프로젝트: cwcw/cms
 /**
  * A MOVED/OKMOVED/FAILMOVED signal has been relayed.
  *
  * @param Streamwide_Engine_Events_Event $event
  * @return void
  */
 public function onFaxEnvDetectionUpdate(Streamwide_Engine_Events_Event $event)
 {
     $signal = $event->getParam('signal');
     $signalName = $signal->getName();
     switch ($signalName) {
         case Streamwide_Engine_Signal::MOVED:
             $this->_waitUpdateConfirmation = true;
             break;
         case Streamwide_Engine_Signal::FAILMOVED:
             $this->_waitUpdateConfirmation = false;
             if (!$this->_mediaPlayer->isPlaying()) {
                 $this->_relayer->reset();
                 return $this->_createFaxEnv();
             }
             break;
         case Streamwide_Engine_Signal::OKMOVED:
             $this->_waitUpdateConfirmation = false;
             $specification = Streamwide_Engine_NotifyFilter_Factory::factory(Streamwide_Engine_NotifyFilter_Factory::T_SIG_PARAM, Streamwide_Engine_NotifyFilter_Factory::FILTER_EQUAL_TO, array('policy', 'image'));
             if ($specification->isSatisfiedBy($signal)) {
                 $this->_mediaPlayer->reset();
                 $this->_timer->reset();
                 $this->_relayer->reset();
                 return $this->_faxSend();
             }
             if (!$this->_mediaPlayer->isPlaying()) {
                 $this->_relayer->reset();
                 return $this->_createFaxEnv();
             }
             break;
     }
 }