Thursday, August 27, 2009

Tracing with System.Net

In my old blog, I had written a config file that shows how to enable trace logging for System.Net. Since it is useful, here is the config file again..


NOTE: If you are doing logging inside of the ASP.NET process, make sure to give the ASP.NET process identity WRITE permissions to the directory where you want the log to be written.

Sunday, August 23, 2009

Things I did at Microsoft: Outbound Dialing Rules for Exchange Unified Messaging

Continuing my series on things that I did at Microsoft: in this part, I talk about outbound dialing rules that I implemented for Exchange Server 2007.

Exchange Unified Messaging server provides the functionality to place outbound calls. For eg, imagine a customer calling the corporate switchboard, and looking up the person he wants to talk to, using the AutoAttendant. Imagine that the target person is not in the US, and in order to call him, a long distance call will need to be placed.

It is possible that the company might want to prevent that call and instead route the caller to an operator. This is implemented by the concept of dialing rules.

The UM administrator can configure dialing rules on the AutoAttendant, DialPlan or Mailbox Policy. When the UM server needs to place an outbound call, it consults the dialing rules, and figures out whether the call is allowed. It also figures out the effective number to be called - this number will have the correct outside line access code (for eg: prepending the target number with a '9' to signify to the PBX that the numbe is an external number).

More details about this feature can be found in this article: http://msexchangeteam.com/archive/2007/01/29/432440.aspx which discusses how to create dialing rules.


Implementing Traceroute with System.Net - Introduction

Previously, I have shown how you can implement a Ping utility using System.Net.Sockets.

The following are the links to the four part article that describe the implementation.

http://blogs.msdn.com/feroze_daud/archive/2005/10/20/483088.aspx
http://blogs.msdn.com/feroze_daud/archive/2005/10/23/483976.aspx
http://blogs.msdn.com/feroze_daud/archive/2005/10/24/484260.aspx
http://blogs.msdn.com/feroze_daud/archive/2005/10/26/485372.aspx

Ping is used to figure out if a destination host is responding on the network.

With a few modifications, we can change ping so that it shows us the routes that a packet is taking through the network.

In the next part, we will look at traceroute, and see how we can use the principles in writing our own traceroute utility from scratch.

Thursday, August 13, 2009

Things I did at Microsoft - Call Answering Rules

Larry Osterman started a series of posts on his blog, where he talks about the stuff he was doing in the past. So, I thought it would be a good idea to talk about suff I did at Microsoft.

One of the things that I am really proud about, is a feature I implemented for Exchange2009, which is called "Call Answering Rules". The best way to explain this, is to think about it as the equivalent of the Exchange/Outlook rules, but for your phone. This allows you to create rules that govern how incoming calls to your phone are routed.

Some of the examples of rules you can create are:

1) Forward all calls with a given caller-id to my cell phone.
2) If my client calls and I am in a meeting, forward to voicemail.
3) If a call comes, and my Free-Busy status says "Out of office", then call two other numbers configured by me.

I implemented the rules engine for this feature. You can get more details about the feature from the technet page documentation on this feature.

Hi!

Welcome to my blog. Here, I will post my thoughts on Software, as well as code snippets and other stuff.
For my previous blog, you can see https://blogs.msdn.com/feroze_daud