# GetVideoState Method The GetVideoState method returns the state of the video image provided by the VoIPVideoCtrl control. Syntax
    [long=] SiteKiosk.Plugins("SitePhone").GetVideoState(local)
Parameters
local | Boolean value that specifies whether the local or remote state should be queried.
Return Value Returns a Long value that contains the current video state. Remarks Possible status flags are: LiveEnabled = 0x1; LocalEnabled = 0x2; Rendering =0x4; Unknown = 0x8; Examples The following example shows the use of the GetVideoState method. The example is a complete test page that demonstrates how to make video calls to other Skype accounts with SiteKiosk using a fully configured SkypeKit from the Skype/SIP settings of SiteKiosk.
    <html>
    <head>
    <script type="text/jscript">
    	window.external.InitScriptInterface();

    	var gk_SitePhone = null;
    	var gb_StateOnline = false;
    	var gb_LocalEnabled = true;
    	var gb_RemoteEnabled = true;

    	function Log(text)
    	{
    		document.getElementById('logmessage').innerHTML = text +
    		"<br />" + document.getElementById('logmessage').
    		innerHTML;
    	}

    	function OnUnload()
    	{
    		if (gk_SitePhone == null)
    			return;
    		try
    		{
    			var Video1 = document.getElementById('Video1');
    			Video1.StopRendering();
    			Video1.ReleaseProviderPlugin();
    			var Video2 = document.getElementById('Video2');
    			Video2.StopRendering();
    			Video2.ReleaseProviderPlugin();
    		}
    		catch (e)
    		{
    			alert("OnUnload: " + e.message);
    		}
    	}

    	function OnLoad()
    	{

    		gk_SitePhone = SiteKiosk.Plugins("SitePhone");
    		if (gk_SitePhone == null)
    		{
    			alert("SitePhone is not defined");
    			return;
    		}

    		//init video controls
    		try
    		{
    			var Video1 = document.getElementById('Video1');
    			var Video2 = document.getElementById('Video2');

    			Video1.LoadParticipantAvatar(SiteKiosk.
    			SiteKioskDirectory + "\Skins\\Public\\Startpages\\
    			VoiceVideoSupport\\images\\image_men.png");

    			Video1.PollFrequency = 25;
    			Video1.SetProviderPlugin(gk_SitePhone, false);

    			Video2.PollFrequency = 25;
    			Video2.SetProviderPlugin(gk_SitePhone, true);

    			gk_SitePhone.OnStateChanged = OnStateChanged;
    			gk_SitePhone.OnOwnVideoStateChanged =
    			OnOwnVideoStateChanged;
    			gk_SitePhone.OnOtherVideoStateChanged =
    			OnOtherVideoStateChanged;
    			gk_SitePhone.OnCallStateChanged = OnCallStateChanged;
    			gk_SitePhone.OnAvailabilityChanged =
    			OnAvailabilityChanged;

    			if(gk_SitePhone.State == 3) //online
    				window.setTimeout("OnStateChanged()", 100);

    			var lw_State = gk_SitePhone.GetVideoState(true);
    			if(( lw_State & 0x2) == 0x2)
    				window.setTimeout
    				("OnOwnVideoStateChanged()", 100);

    		}
    		catch (e)
    		{
    			alert("Exception during OnLoad: " + e.message);
    		}
    	}

    	function OnAvailabilityChanged(aw_Status, as_Callee)
    	{
    		Log("OnAvailabilityChanged callee=" + as_Callee +
    		" Status= " + aw_Status);
    	}

    	function OnStateChanged()
    	{
    		if(gk_SitePhone.State == 3) //online
    		{
    			Log(">> OnStateChanged fired. State changed
    			to 3/online. Querying Skype contacts...");
    			EnumContacts(1);
    		}
    	}

    	function GetAvailability()
    	{
    		if (gk_SitePhone == null)
    			return;
    		try
    		{
    			var ls_Abonent = GetNumber();
    			var status = gk_SitePhone.GetContactAvailability
    			(ls_Abonent);
    			Log(">> Availability: " + status);
    		}
    		catch(e)
    		{
    			alert("Exception on GetAvailability: " + e.message);
    		}
    	}

    	function EnumContacts(ae_Filter)
    	{
    		// enum all contacts
    		try
    		{
    			var KnownContacts = new Enumerator(gk_SitePhone.
    			GetContactNames(ae_Filter));
    			for (; !KnownContacts.atEnd(); KnownContacts.
    			moveNext())
    			{
    				Log("Contact: " + KnownContacts.item());
    			}
    		}
    		catch(e)
    		{
    			alert("Exception on EnumContacts: " + e.message);
    		}
    	}

    	function OnCallStateChanged()
    	{
    		try
    		{
    			var le_Status = gk_SitePhone.CallStatus;
    			Log(">> OnCallStateChanged= " + le_Status);
    			if(le_Status ==5)
    				gb_StateOnline = true;
    			else
    				gb_StateOnline = false;
    		}
    		catch (e)
    		{
    			gb_StateOnline = false;
    		}
    	}

    	function OnOwnVideoStateChanged()
    	{
    		try
    		{
    			var lw_State = gk_SitePhone.GetVideoState(true);
    			if(gb_LocalEnabled && (lw_State & 0x6)==0x2)
    				ToogleRendering(true, true)

    			var hex = new String();
    			hex = lw_State;
    			Log(">> Local VideoStateChanged= 0x" + hex.
    			toString(16));
    		}
    		catch (e)
    		{
    		}
    	}

    	function OnOtherVideoStateChanged()
    	{
    		try
    		{
    			var lw_State = gk_SitePhone.GetVideoState(false);
    			if(gb_RemoteEnabled && (lw_State & 0x5)==0x1)
    				ToogleRendering(true, false)

    			var hex = new String();
    			hex = lw_State;
    			Log(">> Remote VideoStateChanged= 0x" + hex.
    			toString(16));
    		}
    		catch (e)
    		{
    		}
    	}

    	function ToogleRendering(ab_OnOff, ab_Local)
    	{
    		try
    		{
    			if(ab_OnOff)
    				if(ab_Local)
    				{
    					gb_LocalEnabled = true;
    					Video2.StartRendering();
    				}
    				else
    				{
    					gb_RemoteEnabled = false;
    					Video1.StartRendering();
    				}
    			else
    				if(ab_Local)
    				{
    					gb_LocalEnabled = false;
    					Video2.StopRendering();
    				}
    				else
    				{
    					gb_RemoteEnabled = false;
    					Video1.StopRendering();
    				}
    		}
    		catch(e)
    		{
    		}
    	}

    	function GetNumber()
    	{
    		return document.getElementById('id_phone').value;
    	}

    	function StartVideoCall()
    	{
    		if (gk_SitePhone != null && !gb_StateOnline)
    		{
    			var ls_Abonent = GetNumber();
    			try
    			{
    				gk_SitePhone.StartCall(ls_Abonent);
    			}
    			catch (e)
    			{
    				alert("CallVideo: "+ e);
    			}
    		}
    		else
    		{
    			alert("SitePhone not enabled or already online");
    		}
    	}

    	function StopVideoCall()
    	{
    		if (gk_SitePhone == null || !gb_StateOnline)
    		return;

    		var ls_Abonent = GetNumber();
    		try
    		{
    			gk_SitePhone.FinishCall();
    			gb_StateOnline = false;
    		}
    		catch (e)
    		{
    			alert("StopVideo: "+ e);
    		}
    	}

    	function RequestAuth()
    	{
    		if (gk_SitePhone == null)
    			return;
    		var ls_Abonent = GetNumber();
    		try
    		{
    			Log("Auth request to " + ls_Abonent + (gk_SitePhone.
    			SendAuthRequest(ls_Abonent,
    			'Make me your buddy :)') ? " succeeded" : " failed"));
    		}
    		catch (e)
    		{
    			alert("RequestAuth: "+ e);
    		}
    	}

    	function CheckIfLocal()
    	{
    		Log(Video2.IsLocalVideo);
    	}
    </script>
    </head>
    <body onunload='OnUnload();' bgcolor='#FFFFFF'
    id="PageBody">
    <INPUT TYPE="button" VALUE="Click this button first to
    initialize the page! See log messages below to monitor
    activities." onClick='OnLoad();'>
    <br />
    <object id="Video1" width="320" height="300"
    classid="CLSID:F3C97217-4999-4EAE-85D6-B2CDA3674870">
    <PARAM/>
    <PARAM NAME="BackColor" VALUE="255">
    </object>
    <object id="Video2" width="448" height="300"
    classid="CLSID:F3C97217-4999-4EAE-85D6-B2CDA3674870">
    <PARAM/>
    <PARAM NAME="BackColor" VALUE="63728">
    </object>
    <br />
    <INPUT TYPE="button" VALUE="Start Remote"
    onClick='ToogleRendering(true, false);'>
    <INPUT TYPE="button" VALUE="Stop Remote"
    onClick='ToogleRendering(false, false);'>
    REMOTE<->LOCAL
    <INPUT TYPE="button" VALUE="Start Local"
    onClick='ToogleRendering(true, true);'>
    <INPUT TYPE="button" VALUE="Stop Local"
    onClick='ToogleRendering(false, true);'>
    <INPUT TYPE="button" VALUE="  Local Video or not? "
    onClick='CheckIfLocal();'>
    <br />
    <br />
    Skype Name: <input type="text" id="id_phone" size="38"/>
    <INPUT TYPE="button" VALUE="Start Call"
    onClick='StartVideoCall();'>
    <INPUT TYPE="button" VALUE="Stop Call"
    onClick='StopVideoCall();'>
    <INPUT TYPE="button" VALUE="Request Auth"
    onClick='RequestAuth();'>
    <INPUT TYPE="button" VALUE="Get Availability"
    onClick='GetAvailability();'>
    <br />
    <br />
    LAST LOG MESSAGE: <span id="logmessage"
    style="bgcolor:red">Please initialize the page with the
    button at the top of the page!</span>
    </body>
    </html>
Applies to SiteKiosk v8.7 (and later versions). Back to top