This sample shows how to use Skype features in your ASP.NET 2.0 website. Based upon the Skype user name and standard phone number, you type in the appropriate fields. Six
LinkButtons are populated with the strings that Skype needs in a website to do the basic actions, which are:
- Make a Skype call via Skype.
- Request contact information.
- Start a chat.
- Send a file via Skype.
- Add a contact.
- Make a Skype Out Call.
Creating this sample
I started this sample by creating a new empty website, selected the Add New Item Under Website option, and selected a new
WebUserControl to add to my application that I called
SkypeSample (it gets the .ascx extension after creation). On this
WebsUserControl, I created the following controls:
Label with the
Text property Skype Name
Label with the
Text property Phone Nr
TextBox with the ID
TextBox with the ID
Button1 by default, with the
Text property set to Populate
LinkButtons called, by default,
- Six standard type
Images called, by default,
Further, I have added a folder Images to the project, and downloaded a set of images developers can use from the Skype website (Click here to download the images), and chosen the buttons I needed, and added them to the created image map. I set the path of my controls
Image6 to the appropriate image in my Images folder.
For Button1, I created an event called
Populate_Click, and the following code that will fire the method
SetSkypeStatus that I created later on.
Then I clicked on the UserControl to go to the code-behind, and created a method called
SetSkype and the needed strings for the application.
protected void SetSkype()
Image1.Visible = true;
Image2.Visible = true;
Image3.Visible = true;
Image4.Visible = true;
Image5.Visible = true;
Image6.Visible = true;
string SkypeName = txtSkypeName.Text;
string LandPhone = txtPhoneNr.Text;
string PathSkypeStatusString = "";
string SkypeAddContactString = "";
string SkypeCallString = "";
string SkypeLandCall = "";
string SkypeChattString = "";
string SkypeProfileString = "";
string SkypeSendFileString = "";
To populate the strings with values, I created
try blocks. The first block gets the status of the Skype user name that is typed in after the method is fired. As you can see in the code below, I created three strings (
sT); the last one of the three in the first
try block stands for the string total since I tried to create a string I can use to get the status of the Skype contact. As you can see below, the first part of the string is a URL that says where to look, and what icon to use. You could change the word "mediumicon" to, for example, "largeicon", and a large icon will be shown. The
string sT= part in this block sets the actual value of the string
sT to the string I want, the path to look plus the Skype user name I want the status of. The value
sT holds is then passed to the above created
PathSkypeStatusString; and I assign
PathSkypeStatusString as the value of the
Image1 URL, so at runtime, this image should show a medium icon with the current status of the user.
string s1 = "http://mystatus.skype.com/mediumicon/";
string s2 = SkypeName;
string sT = s1 + s2;
PathSkypeStatusString = sT;
Image1.ImageUrl = PathSkypeStatusString;
In the next part, I need more strings because the Skype user name will be in the middle of the string, so creating the complete string is a little more complicated.
s4 is important in this part because that is the action that will be performed at runtime, and
s6 in the text that will be visible in the
LinkButton. Again, I create the string
sT, pass the value to
SkypeCallString, and set the value of
LinkButton1 to the content of
SkypeCallString, so at runtime, this
Linkbutton will initiate the call when clicked. In the code, the HREF value is seen with no closing tag because that one is later added when I set the value of the string
string s2 = "skype:";
string s3 = SkypeName;
string s4 = "?call";
string s5 = '"'.ToString();
string s6 = ">Skype Me";
string sT = s1 + s2 + s3 + s4 + s5 + s6;
SkypeCallString = sT;
LinkButton1.Text = SkypeCallString;
I repeat this for all the actions that can be performed by the user, setting the values of the
LinkButtons to the actions I want them to perform. It's clear why the different actions always look like ?call, ?chat etc.
Running the sample code
To run the sample code, you just open the SkypeSample folder with Visual Studio, under the menu option File, Open, and the select the website. The code should be loaded, and when you hit F5, the sample application should run.
This sample is easy to use dynamically when you store the Skype user name and phone number in a database and present these values in your website, with, for example, a
DetailControl that you load with a data source. When you set the Skype user name and phone number as
DataKeys for the
DetailControl, you can use the values they hold at runtime for populating the strings (Skype user name and phone number). Below is a sample that shows how you could set the properties from Skype.
string SkypeName = DetailsView1.DataKey["Skype"].ToString();
string SkypeLandCall = DetailsView1.DataKey["CompanyPhone"].ToString();
Points of Interest
I am not saying that the code is perfect but it works well from my laptop. When I request the website from my local server, all Skype options work. The name Skype is copyright of Skype Limited.