public function executeAction($params) { $eslCon = freeswitch_callmanager_Driver::getESL(); try { $responsestr = $eslCon->sendRecv('api show channels as xml')->getBody(); } catch (ESLException $e) { if (strpos($e->getMessage(), 'Not connected')) { echo '<div class="error">Unable to connect to the switch console. This usually means that mod_event_socket is not running, or that the password that you entered during the setup process has changed. The error message was:<br>' . $e->getMessage() . '</span>'; exit; } else { throw $e; } } if (trim($responsestr) == '0 total.' || trim($responsestr) == '+OK' || trim($responsestr) == '<result row_count="0"/>') { return array(); } if (substr(trim($responsestr), 0, 4) == '-ERR') { $this->_throwError($responsestr); } $channelStatus = xml::xmlstrtoarr($responsestr); if (count($channelStatus) == 0) { return $channelStatus; } else { if (isset($channelStatus['row']['uuid'])) { return array($channelStatus['row']); } else { return $channelStatus['row']; } } }
public static function buildcdrarray($cdrxml) { try { $xmlarr = xml::xmlstrtoarr($cdrxml); } catch (Exception $e) { Kohana::log('error', $e->getMessage()); return; } return arr::flatten($xmlarr); }
public function executeAction($params) { $this->checkRequiredParams('executeAction', $params); $this->assignEmptyParams($params, 2, array(null, false)); list($uuid, $details) = $params; $eslCon = freeswitch_callmanager_Driver::getESL(); try { if (!$details) { $responsestr = $eslCon->sendRecv('api show channels like ' . $uuid . ' as xml')->getBody(); } else { $responsestr = $eslCon->sendRecv('api uuid_dump ' . $uuid . ' xml')->getBody(); } } catch (ESLException $e) { if (strpos($e->getMessage(), 'Not connected')) { echo '<div class="error">Unable to connect to the switch console. This usually means that mod_event_socket is not running, or that the password that you entered during the setup process has changed. The error message was:<br>' . $e->getMessage() . '</div>'; exit; } else { throw $e; } } if (trim($responsestr) == '0 total.' || trim($responsestr) == '+OK' || trim($responsestr) == '<result row_count="0"/>') { return array(); } if (substr(trim($responsestr), 0, 4) == '-ERR') { $this->_throwError($responsestr); } $xmlarr = xml::xmlstrtoarr($responsestr); if (!$xmlarr || count($xmlarr) == 0) { return array(); } else { if (!$details) { if (isset($xmlarr['row']['uuid'])) { return array($xmlarr['row']); } else { return $xmlarr['row']; } } else { return $xmlarr['headers']; } } }