Control Panel — API Documentation

Documentation

pushpublish.disconnect

Disconnects a PushPublish session. PushPublish sessions that have been stored using the pushpublish.add API can be disconnected by providing the app, instance, and push service ID. If a PushPublish session was created using pushpublish.connect or the push service was removed and now needs to be stopped, the app, instance, and entry name of the session can be used to disconnect a session that is not associated to a push service ID. The stream.active and stream.details commands will return stream data including pushpublish sessions that are currently running on the application or stream respectively. The entry name can be retrieved from these details and then used with this API to disconnect the session. To disconnect all pushes set entry name to *.

Example Code (PHP)

	$request = array(
		'command' => 'pushpublish.disconnect',
		'api_key' => 'APX4GKLM0RKQLSP2FBO1ROPKSSW47DZE',
		'timestamp' => time(),
		'cdn' => 158,
		
		/* disconnect using stored details */
		'push_service_id' => 1234,
		'app' => 'demo-origin', // optional, unless manually connected
		'inst' => 'live', // optional, unless manually connected
		'stream' => 'stream1', // optional, unless manually connected
		
		/* disconnect using entry name */
		'app' => 'demo-origin',
		'inst' => 'live',
		'entry_name' => 'session_1',
		
		'origin_url' => 'jb-origin.secdn.net', // optional
	);
	    //Create request signature
    $json_request = json_encode($request);
    $sig = base64_encode(hash_hmac('sha256', $json_request,
        '8fc8c48da81e6a2a06a9556379bf798af508dc0792497c678b4c3532ba8b637f', true));
    $request['signature'] = $sig;
    $json_request = json_encode($request);
    
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'https://api.scaleengine.net/stable/'); // Set the URL
    curl_setopt($ch, CURLOPT_POST, true); // Perform a POST
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // If not set, curl prints output to the browser
    curl_setopt($ch, CURLOPT_HEADER, false); // If set, curl returns headers as part of the data stream
    curl_setopt($ch, CURLOPT_POSTFIELDS, array('json' => $json_request)); //'Json' string or 'PHP' serialized return
    
    //If your PHP host does not have a proper SSL certificate bundle, you will need to turn off SSL Certificate Verification
    //This is dangerous, and should only be done temporarily until a proper certificate bundle can be installed
    //curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // Turns off verification of the SSL certificate.
    //curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Turns off verification of the SSL certificate.
    
    $response = curl_exec($ch); //Execute the API Call
    if (!$response) {
        die('Failed to connect to ScaleEngine API');
    }
    
    //Decode the response as an associative array 
    $arrResponse = json_decode($response, true); 
    if ($arrResponse) {
        //Operation completed successfully
        //TODO Add work here
        print_r($arrResponse);
    } else {
        //Operation failed
        echo 'An error occured processing your request:';
        print_r($response);
    }
    	

Request Fields

command [REQUIRED] [string] - API command to execute
cdn [REQUIRED] [int] - The ScaleEngine CDN ID of your account
api_key [REQUIRED] [string] - The API key provided as part of your account
timestamp [REQUIRED] [int] - The unix timestamp of your request, used to prevent authenticated API requests from being replayed
push_service_id [REQUIRED] [int] - ID of the stored PushPublish Service
app [REQUIRED] [string] - The ScaleEngine Application name
inst [REQUIRED] [String] - Name of the Application Instance
stream [REQUIRED] [string] - Stream name
entry_name [REQUIRED] [String] - Unique Key used to reference the PushPublish session. Required if connecting/disconnecting without a push service id
origin_url [REQUIRED] [string] - Defines the url address of an origin to be called. Defaults to jb-origin.secdn.net for origins and jb-chorigin.secdn.net for channels.

Example Result (JSON)

	{
	"message": "cupertino-akamai disconnected",
	"status": "success",
	"handle_time":"0.3795 seconds"
	}
	

Result Fields

message [string] - Debugging message
status [string] - "success" or "failure"
handle_time [float] - The amount of time spent processing your request