/** * 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); } }
/** * 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(); }
/** * @return boolean */ protected function _startRelayer() { $eventsList = array(array('name' => Streamwide_Engine_Events_Event::TRANSFER, 'source' => Streamwide_Engine_Automatic_Signal_Relayer::SIG_SRC_LEFT), array('name' => Streamwide_Engine_Events_Event::TRFINFO, 'source' => Streamwide_Engine_Automatic_Signal_Relayer::SIG_SRC_RIGHT), array('name' => Streamwide_Engine_Events_Event::OKTRANSFER, 'source' => Streamwide_Engine_Automatic_Signal_Relayer::SIG_SRC_RIGHT), array('name' => Streamwide_Engine_Events_Event::FAILTRANSFER, 'source' => Streamwide_Engine_Automatic_Signal_Relayer::SIG_SRC_RIGHT)); $this->_relayer->reset(); $this->_relayer->setLeftCallLeg($this->_leftCallLeg); $this->_relayer->setRightCallLeg($this->_rightCallLeg); $this->_relayer->setEventsList($eventsList); $this->_relayer->addEventListener(Streamwide_Engine_Events_Event::SIGNAL_RELAYED, array('callback' => array($this, 'onSignalRelayed'))); $this->_relayer->addEventListener(Streamwide_Engine_Events_Event::ERROR, array('callback' => array($this, 'onRelayerError'), 'options' => array('autoRemove' => 'before'))); if (!$this->_relayer->start()) { $this->_relayer->reset(); $this->dispatchErrorEvent(self::RELAYER_START_ERR_CODE); return false; } return true; }