handler('DEBUG', 'new USSD request'); $ussdConfig = new UssdConfig($request->sc, $request->msisdn, $logger); if ($ussdConfig->state != NULL) { $logger->handler('DEBUG', 'cannot proceed USSD request due to an error --> '.$ussdConfig->state); Utils::ussdResponse(Config::$FREE_FLOW_BREAK, $ussdConfig->message); } $logger->handler('DEBUG', 'loading service config, serviceLink='.$ussdConfig->config->serviceLink.', mode='.$ussdConfig->config->mode); if (($ussdConfig->config->mode == Config::$TEST_MODE) && !preg_match('/'.$request->msisdn.'/', $ussdConfig->config->whiteList)) { $logger->handler('DEBUG', 'the service is in the test mode and the msisdn is not allowed to access to it'); Utils::ussdResponse(Config::$FREE_FLOW_BREAK, Config::$TEXT_TEST_MESSAGE); } $sessionManager = new SessionManager($request->sessionId); $url = Utils::buildUrl($request, $ussdConfig, $sessionManager); $logger->handler('DEBUG', 'app URL to launch *** '.$url); $appResponse = Utils::readAppResponse(HttpUtils::getUrl($url, $logger), $logger, $ussdConfig->ussdCode); $sessionManager->cleanOrContinue($appResponse->freeflow, $appResponse->next); Utils::ussdResponse($appResponse->freeflow, $appResponse->ussdstring); ?>