/** * 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; }