/** * Tears down the fixture * This method is called after a test is executed. * * @access protected */ protected function tearDown() { // remove phone, location, template $phoneBackend = new Voipmanager_Backend_Snom_Phone(); $snomLocationBackend = new Voipmanager_Backend_Snom_Location(); $snomTemplateBackend = new Voipmanager_Backend_Snom_Template(); $snomSoftwareBackend = new Voipmanager_Backend_Snom_Software(); $snomSettingBackend = new Voipmanager_Backend_Snom_Setting(); $snomLineBackend = new Voipmanager_Backend_Snom_Line(); $asteriskSipPeerBackend = new Voipmanager_Backend_Asterisk_SipPeer(); $callHistoryBackend = Phone_Backend_Factory::factory(Phone_Backend_Factory::CALLHISTORY); $snomPhoneSettingBackend = new Voipmanager_Backend_Snom_PhoneSettings(); $snomPhoneSettingBackend->delete($this->_objects['phone']->getId()); $phoneBackend->delete($this->_objects['phone']->getId()); $snomLocationBackend->delete($this->_objects['location']->getId()); $snomTemplateBackend->delete($this->_objects['template']->getId()); $snomSoftwareBackend->delete($this->_objects['software']->getId()); $snomSettingBackend->delete($this->_objects['setting']->getId()); $snomLineBackend->delete($this->_objects['line']->getId()); $asteriskSipPeerBackend->delete($this->_objects['sippeer']->getId()); $callHistoryBackend->delete($this->_objects['call1']->getId()); $callHistoryBackend->delete($this->_objects['call2']->getId()); }
/** * Sets up the fixture. * This method is called before a test is executed. * * @access protected */ protected function setUp() { parent::setUp(); $this->_json = new Phone_Frontend_Json(); $this->_adminUser = Tinebase_Core::getUser(); $this->_objects['location'] = new Voipmanager_Model_Snom_Location(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => 'phpunit test location', 'registrar' => 'registrar')); $this->_objects['software'] = new Voipmanager_Model_Snom_Software(array('id' => Tinebase_Record_Abstract::generateUID())); $this->_objects['setting'] = new Voipmanager_Model_Snom_Setting(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => 'test setting', 'description' => 'test setting')); $this->_objects['template'] = new Voipmanager_Model_Snom_Template(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => 'phpunit test location', 'model' => 'snom320', 'software_id' => $this->_objects['software']->getId(), 'setting_id' => $this->_objects['setting']->getId())); $this->_objects['phone'] = new Voipmanager_Model_Snom_Phone(array('id' => Tinebase_Record_Abstract::generateUID(), 'macaddress' => "1234567890cd", 'description' => 'user phone', 'location_id' => $this->_objects['location']->getId(), 'template_id' => $this->_objects['template']->getId(), 'current_model' => 'snom320', 'redirect_event' => 'none')); $this->_objects['phone1'] = new Voipmanager_Model_Snom_Phone(array('id' => Tinebase_Record_Abstract::generateUID(), 'macaddress' => "a234567890cd", 'description' => 'second user phone', 'location_id' => $this->_objects['location']->getId(), 'template_id' => $this->_objects['template']->getId(), 'current_model' => 'snom320', 'redirect_event' => 'none')); $this->_objects['phone2'] = new Voipmanager_Model_Snom_Phone(array('id' => Tinebase_Record_Abstract::generateUID(), 'macaddress' => "1a34567890cd", 'description' => 'jsmith phone', 'location_id' => $this->_objects['location']->getId(), 'template_id' => $this->_objects['template']->getId(), 'current_model' => 'snom320', 'redirect_event' => 'none')); $this->_objects['phonesetting'] = new Voipmanager_Model_Snom_PhoneSettings(array('phone_id' => $this->_objects['phone']->getId(), 'web_language' => 'English')); $this->_objects['phonesetting1'] = new Voipmanager_Model_Snom_PhoneSettings(array('phone_id' => $this->_objects['phone1']->getId(), 'web_language' => 'English')); $this->_objects['phonesetting2'] = new Voipmanager_Model_Snom_PhoneSettings(array('phone_id' => $this->_objects['phone2']->getId(), 'web_language' => 'English')); $this->_objects['phoneOwner'] = array('account_id' => $this->_adminUser->getId(), 'account_type' => 'user'); $this->_objects['phoneOwner2'] = array('account_id' => $this->_personas['jsmith']->getId(), 'account_type' => 'user'); $rights = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_PhoneRight', array($this->_objects['phoneOwner'])); $rights1 = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_PhoneRight', array($this->_objects['phoneOwner'])); $rights2 = new Tinebase_Record_RecordSet('Voipmanager_Model_Snom_PhoneRight', array($this->_objects['phoneOwner2'])); $this->_objects['phone']->rights = $rights; $this->_objects['phone1']->rights = $rights1; $this->_objects['phone2']->rights = $rights2; $this->_objects['context'] = new Voipmanager_Model_Asterisk_Context(array('id' => Tinebase_Record_Abstract::generateUID(), 'name' => 'test context', 'description' => 'test context')); $this->_objects['sippeer'] = new Voipmanager_Model_Asterisk_SipPeer(array('id' => Tinebase_Record_Abstract::generateUID(), 'context_id' => $this->_objects['context']->getId())); $this->_objects['sippeer1'] = new Voipmanager_Model_Asterisk_SipPeer(array('id' => Tinebase_Record_Abstract::generateUID(), 'context_id' => $this->_objects['context']->getId())); $this->_objects['sippeer2'] = new Voipmanager_Model_Asterisk_SipPeer(array('id' => Tinebase_Record_Abstract::generateUID(), 'context_id' => $this->_objects['context']->getId())); $this->_objects['line'] = new Voipmanager_Model_Snom_Line(array('id' => Tinebase_Record_Abstract::generateUID(), 'snomphone_id' => $this->_objects['phone']->getId(), 'asteriskline_id' => $this->_objects['sippeer']->getId(), 'linenumber' => 1, 'lineactive' => 1)); $this->_objects['line1'] = new Voipmanager_Model_Snom_Line(array('id' => Tinebase_Record_Abstract::generateUID(), 'snomphone_id' => $this->_objects['phone1']->getId(), 'asteriskline_id' => $this->_objects['sippeer1']->getId(), 'linenumber' => 1, 'lineactive' => 1)); $this->_objects['line2'] = new Voipmanager_Model_Snom_Line(array('id' => Tinebase_Record_Abstract::generateUID(), 'snomphone_id' => $this->_objects['phone2']->getId(), 'asteriskline_id' => $this->_objects['sippeer2']->getId(), 'linenumber' => 1, 'lineactive' => 1)); // create phone, location, template, rights $phoneBackend = new Voipmanager_Backend_Snom_Phone(array('modelName' => 'Phone_Model_MyPhone')); $snomLocationBackend = new Voipmanager_Backend_Snom_Location(); $snomSettingBackend = new Voipmanager_Backend_Snom_Setting(); $snomPhoneSettingBackend = new Voipmanager_Backend_Snom_PhoneSettings(); $snomTemplateBackend = new Voipmanager_Backend_Snom_Template(); $snomSoftwareBackend = new Voipmanager_Backend_Snom_Software(); $snomLineBackend = new Voipmanager_Backend_Snom_Line(); $asteriskSipPeerBackend = new Voipmanager_Backend_Asterisk_SipPeer(); $asteriskContextBackend = new Voipmanager_Backend_Asterisk_Context(); $snomSoftwareBackend->create($this->_objects['software']); $snomLocationBackend->create($this->_objects['location']); $snomSettingBackend->create($this->_objects['setting']); $snomTemplateBackend->create($this->_objects['template']); $phoneBackend->create($this->_objects['phone']); $phoneBackend->create($this->_objects['phone1']); $phoneBackend->create($this->_objects['phone2']); $phoneBackend->setPhoneRights($this->_objects['phone']); $phoneBackend->setPhoneRights($this->_objects['phone1']); $phoneBackend->setPhoneRights($this->_objects['phone2']); $asteriskContextBackend->create($this->_objects['context']); $asteriskSipPeerBackend->create($this->_objects['sippeer']); $asteriskSipPeerBackend->create($this->_objects['sippeer1']); $asteriskSipPeerBackend->create($this->_objects['sippeer2']); $snomLineBackend->create($this->_objects['line']); $snomLineBackend->create($this->_objects['line1']); $snomLineBackend->create($this->_objects['line2']); $snomPhoneSettingBackend->create($this->_objects['phonesetting']); $snomPhoneSettingBackend->create($this->_objects['phonesetting1']); $snomPhoneSettingBackend->create($this->_objects['phonesetting2']); /******************** call history *************************/ $phoneController = Phone_Controller::getInstance(); $this->_objects['call1'] = new Phone_Model_Call(array('id' => 'phpunitcallhistoryid1', 'line_id' => $this->_objects['line']->getId(), 'phone_id' => $this->_objects['phone']->getId(), 'direction' => Phone_Model_Call::TYPE_INCOMING, 'source' => '26', 'destination' => '0406437435')); $this->_objects['call2'] = new Phone_Model_Call(array('id' => 'phpunitcallhistoryid2', 'line_id' => $this->_objects['line']->getId(), 'phone_id' => $this->_objects['phone']->getId(), 'direction' => Phone_Model_Call::TYPE_INCOMING, 'source' => '26', 'destination' => '050364354')); $this->_objects['call2a'] = new Phone_Model_Call(array('id' => 'phpunitcallhistoryid2a', 'line_id' => $this->_objects['line1']->getId(), 'phone_id' => $this->_objects['phone1']->getId(), 'direction' => Phone_Model_Call::TYPE_INCOMING, 'source' => '27', 'destination' => '050364354')); $this->_objects['call3'] = new Phone_Model_Call(array('id' => 'phpunitcallhistoryid3', 'line_id' => $this->_objects['line2']->getId(), 'phone_id' => $this->_objects['phone2']->getId(), 'direction' => Phone_Model_Call::TYPE_INCOMING, 'source' => '78', 'destination' => '050998877')); $this->_objects['call4'] = new Phone_Model_Call(array('id' => 'phpunitcallhistoryid4', 'line_id' => $this->_objects['line2']->getId(), 'phone_id' => $this->_objects['phone2']->getId(), 'direction' => Phone_Model_Call::TYPE_INCOMING, 'source' => '78', 'destination' => '05036998877')); $this->_objects['paging'] = array('start' => 0, 'limit' => 50, 'sort' => 'start', 'dir' => 'ASC'); $this->_objects['filter1'] = array(array('field' => 'query', 'operator' => 'contains', 'value' => '')); $this->_objects['filter2'] = array(array('field' => 'query', 'operator' => 'contains', 'value' => '05036'), array('field' => 'phone_id', 'operator' => 'AND', 'value' => array(array('field' => ':id', 'operator' => 'equals', 'value' => $this->_objects['phone1']->getId())))); $this->_objects['filter2a'] = array(array('field' => 'query', 'operator' => 'contains', 'value' => '05036'), array('field' => 'phone_id', 'operator' => 'AND', 'value' => array(array('field' => ':id', 'operator' => 'equals', 'value' => $this->_objects['phone1']->getId())))); $this->_objects['filter2b'] = array(array('field' => 'destination', 'operator' => 'contains', 'value' => '05036')); $this->_objects['filter3'] = array(array('field' => 'phone_id', 'operator' => 'AND', 'value' => array(array('field' => ':id', 'operator' => 'equals', 'value' => $this->_objects['phone']->getId())))); $this->_objects['filter4'] = array(array('field' => 'phone_id', 'operator' => 'AND', 'value' => array(array('field' => ':id', 'operator' => 'equals', 'value' => $this->_objects['phone2']->getId())))); $this->_objects['filter5'] = array(array('field' => 'query', 'operator' => 'contains', 'value' => '998877')); // create calls $phoneController->callStarted($this->_objects['call1']); $phoneController->callStarted($this->_objects['call2']); $phoneController->callStarted($this->_objects['call2a']); $phoneController->callStarted($this->_objects['call3']); $phoneController->callStarted($this->_objects['call4']); }
/** * appendPhoneLines * * @param Voipmanager_Model_Snom_Phone $_phone * @param SimpleXMLElement $_xml */ protected function _appendPhoneLines(Voipmanager_Model_Snom_Phone $_phone, SimpleXMLElement $_xml) { if (!$_phone->lines) { return; } $asteriskPeer = new Voipmanager_Backend_Asterisk_SipPeer($this->_db); $snomLocation = new Voipmanager_Backend_Snom_Location($this->_db); $lines = array(); $location = $snomLocation->get($_phone->location_id); foreach ($_phone->lines as $snomLine) { $line = array(); $line['user_active'] = $snomLine->lineactive == 1 ? 'on' : 'off'; $line['user_idle_text'] = $snomLine->idletext; $asteriskLine = $asteriskPeer->get($snomLine->asteriskline_id); // remove <some tag> from the end of the line $line['user_realname'] = trim(preg_replace('/<\\d+>$/', '', $asteriskLine->callerid)); $line['user_name'] = $asteriskLine->name; $line['user_host'] = $location->registrar; $line['user_mailbox'] = $asteriskLine->mailbox; $line['user_pass'] = $asteriskLine->secret; $line['user_server_type'] = 'asterisk'; $lines[$snomLine->linenumber] = $line; } foreach ($lines as $lineId => $line) { foreach ($line as $key => $value) { $child = $_xml->addChild($key, $value); $child->addAttribute('idx', $lineId); $child->addAttribute('perm', 'RO'); } // reset old dialplan $child = $_xml->addChild('user_dp_str'); $child->addAttribute('idx', $lineId); $child->addAttribute('perm', 'RO'); } }