Exemplo n.º 1
0
 /**
  * Starts the relayer object
  *
  * @param Streamwide_Engine_Events_Event $event
  * @return void
  */
 public function onConnect(Streamwide_Engine_Events_Event $event)
 {
     $this->_relayer->setLeftCallLeg($this->_widget->getLeftCallLeg());
     $this->_relayer->setRightCallLeg($this->_widget->getRightCallLeg());
     if (!$this->_relayer->isRunning()) {
         $this->_relayer->start();
     }
     // Do we need to treat a MOVED signal?
     $specification = Streamwide_Engine_NotifyFilter_Factory::factory(Streamwide_Engine_NotifyFilter_Factory::T_EVT_PARAM, Streamwide_Engine_NotifyFilter_Factory::FILTER_INSTANCE_OF, array('moved', 'Streamwide_Engine_Signal'));
     if ($specification->isSatisfiedBy($event)) {
         $movedSignal = $event->getParam('moved');
         $event = new Streamwide_Engine_Events_Event(Streamwide_Engine_Events_Event::MOVED);
         $event->setParam('signal', $movedSignal);
         return $this->_relayer->onSignalReceived($event);
     }
 }
Exemplo n.º 2
0
 /**
  * Initialize the fax environment detection
  *
  * @return void
  */
 protected function _initFaxEnvDetection()
 {
     $this->_relayer->reset();
     $this->_relayer->setOptions(array(Streamwide_Engine_Automatic_Signal_Relayer::OPT_PRIORITY => PHP_INT_MAX));
     $this->_relayer->setLeftCallLeg($this->_sipCallLeg);
     $this->_relayer->setRightCallLeg($this->_msCallLeg);
     $this->_relayer->setEventsList(array(Streamwide_Engine_Events_Event::MOVED, Streamwide_Engine_Events_Event::FAILMOVED, Streamwide_Engine_Events_Event::OKMOVED));
     $this->_relayer->addEventListener(Streamwide_Engine_Events_Event::SIGNAL_RELAYED, array('callback' => array($this, 'onFaxEnvDetectionUpdate')));
     $this->_relayer->start();
 }
Exemplo n.º 3
0
 /**
  * Starts the relayer if it is not started
  *
  * @return boolean
  */
 protected function _startRelayer()
 {
     // Notify filter that is satisfied by an event object that has an OKMOVED signal
     // and that has a "from" parameter that is an instance of Streamwide_Engine_Media_Server_Call_Leg.
     // The OKMOVED signal has to have a "direction" parameter with a value that is present in the
     // _allowedNewDirections property
     $notifyFilter = Streamwide_Engine_NotifyFilter_Factory::factory(Streamwide_Engine_NotifyFilter_Factory::T_EVT_SIG_PARAM_NAME, Streamwide_Engine_NotifyFilter_Factory::FILTER_EQUAL_TO, Streamwide_Engine_Signal::OKMOVED)->logicalAnd(Streamwide_Engine_NotifyFilter_Factory::factory(Streamwide_Engine_NotifyFilter_Factory::T_EVT_PARAM, Streamwide_Engine_NotifyFilter_Factory::FILTER_INSTANCE_OF, array('from', 'Streamwide_Engine_Media_Server_Call_Leg')))->logicalAnd(Streamwide_Engine_NotifyFilter_Factory::factory(Streamwide_Engine_NotifyFilter_Factory::T_EVT_SIG_PARAM_PARAM, Streamwide_Engine_NotifyFilter_Factory::FILTER_IN_ARRAY, array('direction', $this->_allowedNewDirections)));
     $this->_relayer->addEventListener(Streamwide_Engine_Events_Event::SIGNAL_RELAYED, array('callback' => array($this, 'onSignalRelayed'), 'options' => array('notifyFilter' => $notifyFilter, 'autoRemove' => 'before')));
     if (!$this->_relayer->isRunning()) {
         $started = $this->_relayer->start();
         if (!$started) {
             $this->_relayer->removeEventListener(Streamwide_Engine_Events_Event::SIGNAL_RELAYED, array('callback' => array($this, 'onSignalRelayed')));
             return false;
         }
     }
     return true;
 }
Exemplo n.º 4
0
 /**
  * @return void
  */
 protected function _resetInternalWidgets()
 {
     $this->_relayer->reset();
     if (isset($this->_timer)) {
         $this->_timer->reset();
     }
 }