Share via


This content is no longer actively maintained. It is provided as is, for anyone who may still be using these technologies, with no warranties or claims of accuracy with regard to the most recent product version or service release.

BranchCollection

The BranchCollection class represents an unordered collection of client transactions (branches) associated with a server transaction. Each client transaction is represented as a ClientTransaction object, and can be obtained through the IEnumerator interface returned by the BranchCollection.GetEnumerator method.

A BranchCollection object is obtained by referencing the ServerTransaction.Branches property, which contains all of the client transactions defined for that server transaction.

This class implements the IEnumerable interface.

The BranchCollection class is derived from the System.Object class.

Public Methods

The BranchCollection class has the following public methods.

Method

Description

External .NET Framework Class Reference

Inherited from System.Object. Determines whether the specified System.Object is equal to the current System.Object.

BranchCollection.GetEnumerator

Obtains an IEnumerator interface used for iterating through the branch collection.

External .NET Framework Class Reference

Inherited from System.Object. Serves as a hash function for a particular type, suitable for use in hashing algorithms and data structures like a hash table.

External .NET Framework Class Reference

Inherited from System.Object. Gets the System.Type of the current instance.

External .NET Framework Class Reference

Inherited from System.Object. Returns a System.String that represents the current System.Object.

Public Properties

The BranchCollection class has the following public properties.

Property

Description

BranchCollection.Count

Data type: Int32

Access type: Read-only

Contains the total number of elements in the BranchCollection.

BranchCollection.IsEmpty

Data type: Boolean

Access type: Read-only

Indicates whether the BranchCollection object is empty (has no elements).

Example Code

The following code sample sets up response event handlers for a request that proxies an incoming request and forks it to a remote logging alias. Requests are dispatched to this method from the MSPL script in the application manifest using the Dispatch MSPL function.

public void OnRequest(object sender, RequestReceivedEventArgs rreArgs)
{

ServerTransaction myServerTx = rreArgs.ServerTransaction;
myServerTx.EnableForking = true;

// proxy request to user as well as fork to remote logging alias

ClientTransaction proxyClientTx = myServerTx.CreateBranch();
ClientTransaction loggingClientTx = myServerTx.CreateBranch();

Request loggingReq = rreArgs.Request.Clone("sip:logger@northwind.com");

// Register for responses to these proxied requests by iterating through the
// BranchCollection in myServerTx.Branches and hooking up an event handler

foreach (ClientTransaction branch in myServerTx.Branches)
{
   branch.ResponseReceived += new ResponseReceivedEventHandler(OnResponse);
}

proxyClientTx.SendRequest(rreArgs.Request);
loggingClientTx.SendRequest(loggingReq);

}

Requirements

Redistributable: Requires Microsoft Office Communications Server 2007.

Namespace:Microsoft.Rtc.Sip Namespace

Assembly: ServerAgent (in ServerAgent.dll)

Concepts

ClientTransaction