GetContactNames Method



 
The GetContactNames method loads an avatar image into the VoIPVideoCtrl control.


Syntax

    [obj=] SiteKiosk.Plugins("SitePhone").GetContactNames(filter)
    
Parameters
    filter Long value that specifies the path to an avatar image.
Return Value
    Returns a collection containing the specified contact names.
Remarks
    Possible filter flags are:

    ALL_KNOWN_CONTACTS = 1;
    ALL_BUDDIES = 2;
    SKYPE_BUDDIES = 2;
    SKYPEOUT_BUDDIES = 2;
    ONLINE_BUDDIES = 2;
    UNKNOWN_OR_PENDINGAUTH_BUDDIES = 2;
    RECENTLY_CONTACTED_CONTACTS = 2;
    CONTACTS_WAITING_MY_AUTHORIZATION = 2;
    CONTACTS_AUTHORIZED_BY_ME = 2;
    CONTACTS_BLOCKED_BY_ME = 2;
    UNGROUPED_BUDDIES = 2;
    CUSTOM_GROUP = 2;
    PROPOSED_SHARED_GROUP = 2;
    SHARED_GROUP = 2;
    EXTERNAL_CONTACTS = 2;
Examples
    The following example shows the use of the GetContactNames 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