/** * * @param string $psAct * @return boolean */ public function manager($psAct = '') { $lsAct = $this->request('act', $psAct); $lsNextAction = $this->request('nextaction', ''); $lnId = $this->request('id', ''); $lnExtension = $this->request('extension', ''); $lnPhone = $this->request('phone', ''); $lsSip = $this->request('sip', ''); $lsAudioChannel = $this->request('audiochannel', ''); $lsAudioPath = $this->request('audio', ''); $lsAudio = preg_replace($this->_sAudioPath, $this->_sAudioPathReal, $lsAudioPath); $lnExtension = String::formatPhone($lnExtension); $lnPhone = String::formatPhone($lnPhone); $this->set('sActionId', $this->get('sActionId') . "-{$lnId}"); $this->_aResponse[0]['Act'] = $lsAct; $this->_aResponse[0]['NextAction'] = $lsNextAction; $this->_aResponse[0]['Id'] = $lnId; $this->_aResponse[0]['Extension'] = $lnExtension; $this->_aResponse[0]['Phone'] = $lnPhone; $this->_aResponse[0]['Audio'] = $lsAudio; $this->_aResponse[0]['Sip'] = $lsSip; $this->_aResponse[0]['AudioChannel'] = $lsAudioChannel; $this->_aResponse[0]['Play'] = false; switch ($lsAct) { case "call": $lbReturn = $this->call($lnExtension, $lnPhone); break; case "hangup": $lbReturn = $this->hangup($lsSip); break; case "play": $lbReturn = $this->playAudio($lsSip, $lsAudio); break; case "stop": $lbReturn = $this->stopAudio($lsAudioChannel); break; case "queue": $lbReturn = $this->queue($lnExtension); break; case "status": $this->_nResponseTimeOut = 1; $lbReturn = $this->status($lnId, $lnExtension, $lnPhone, $lsAudioChannel); break; } if (!isset($this->_aResponse[0]['Response'])) { $this->_aResponse[0]['Response'] = 'Error'; } $this->_aResponse[0]['Return'] = $lbReturn; $this->_aResponse[0]['ErrorMessage'] = $this->_aError; return $lbReturn; }