'failed', 'cause' => 'error', 'detail' => 'Database connection failed.')); exit; } token_auth(); //************************************************************************************* switch ( $_SERVER['PATH_INFO'] ) { case "/get": // Required GET parameters: // user: authentication username, SIP-username without domain component // domain: Domain/realm of the user. username + '@' + domain == SIP address. if ( array_key_exists('user', $_POST) || ( array_key_exists('username', $_POST) && array_key_exists('domain', $_POST ))) { $username = ""; $domain = ""; if ( array_key_exists('username', $_POST) ) { $username = $_POST['username']; $domain = $_POST['domain']; } else { $user = split_sipaddress($_POST['user']); if ( !$user ) { print json_encode ( array( 'response' => 'failed', 'cause' => 'invalid', 'detail' => 'Invalid SIP address') ); break; } list ( $username, $domain ) = $user; } // Dummy-response: $permission = get_permission( $username, $domain ); if ( $permission > -1 ) { print json_encode( array( 'response' => 'ok', 'permission' => $permission )); } else { if ( $permission == -1 ) print json_encode( array ( 'response' => 'failed', 'cause' => 'nonexistant', 'detail' => 'User does not exist.')); else print json_encode( array ( 'response' => 'failed', 'cause' => 'dbfail', 'detail' => 'Database lookup failed.')); } } else print json_encode ( array( 'response' => 'invalid') ); break; case "/set": // Required GET parameters: // user: authentication username, SIP-username without domain component // domain: Domain/realm of the user. username + '@' + domain == SIP address. if ( array_key_exists('permission', $_POST ) && ( array_key_exists('user', $_POST) || ( array_key_exists('username', $_POST) && array_key_exists('domain', $_POST ))) ) { $permission = 0; $username = ""; $domain = ""; if ( array_key_exists('permission', $_POST) ) $permission = $_POST['permission']; if ( array_key_exists('username', $_POST) ) { $username = $_POST['username']; $domain = $_POST['domain']; } else { $user = split_sipaddress($_POST['user']); if ( !$user ) { print json_encode ( array( 'response' => 'failed', 'cause' => 'invalid', 'detail' => 'Invalid SIP address') ); break; } list ( $username, $domain ) = $user; } // Dummy-response: $result = set_permission( $username, $domain, $permission ); if ( $result == 1 ) { print json_encode( array( 'response' => 'ok', 'permission' => $permission )); } else { print json_encode( array ( 'response' => 'failed', 'cause' => 'dbfail', 'detail' => 'Update query to database failed.')); } } else print json_encode ( array( 'response' => 'invalid') ); break; default: print json_encode ( array( 'response' => 'invalid') ); } mysql_close( $config['sql_link'] ); ?>