; nc-03.ppt
Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out
Your Federal Quarterly Tax Payments are due April 15th Get Help Now >>

nc-03.ppt

VIEWS: 0 PAGES: 28

  • pg 1
									H.323, IP Multicast
  Conferencing,
   And TAPI 3.0
     Don Ryan
 Development Lead
Windows Networking
And Communications
Microsoft Corporation
           Agenda
   TAPI 3.0 key features
   TAPI 3.0 architecture
   H.323 TSP
   IP multicast conferencing TSP
   Rendezvous control
   Call to action




               H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 2
     TAPI 3.0 Key Features
 Unified call control and media streaming
  for PSTN and IP
 Integration with Windows NT® Active Directory
 Object-oriented, language-neutral COM API
 Enables scalable telephony
  server applications
   WDM streaming architecture
   Integrated with DirectShow™ for clients
 Essential component of
  networking infrastructure

                         H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 3
           TAPI 3.0 Architecture
                                                   Call         Media       Directory Terminal
                                                  control       control      control   control
          Call control

     TAPI 2.0 (C-API)                                          TAPI 3.0 (COM API)

                                                            Unimodem     H.323   IP-MC
                                                               MSP       MSP      MSP




                                                            DirectX streaming filter graph       LDAP
                   TAPI server

                                                                                                  NT
Unimodem     Voice Card    H.323                                   RTP       Codec       Audio    DS
                                   IP multicast
                TSP




                                        Winsock 2.0
 Modem       NDIS 5
 driver      Miniport
                                           TCP/IP
 Modem       ATM/ISDN
                                            NIC

                                          H.323, IP Multicast Conferencing, and TAPI 3.0          Slide 4
  What Is The H.323 TSP?
 TAPI Service Provider which enables
  TAPI 3.0 applications to communicate
  with H.323 compliant software
   Maps Q.931 call control to enhanced
    TAPI Service Provider Interface (TSPI)
   Maps H.245 multimedia control to new
    Media Service Provider Interface (MSPI)
   Stores and retrieves user addresses from
    Windows NT directory


                   H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 5
    H.323 TSP Key Features
   Each IP address considered line
   Media modes default to G.711 and H.261
   Media streaming done via DirectShow
   Multiple address formats supported
     User name
     Machine name
     IP address



                     H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 6
      H.323 Architecture

                        Multimedia control
                             (H.245)
H.323 TSP
                            Call control
                              (Q.931)

                                                              Local
H.323 MSP               Gatekeeper control
                                                               area
                              (RAS)
                                                             network
                                                            interface

  Video I/O      Video codec
 equipment       H.261, H.263
                                           RTP/RTCP
  Audio I/O      Audio codec
 equipment    G.711, G.723, G.729




                            H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 7
   H.323 Call Setup
(Using Windows NT directory)
     H.245 control channel messages
     Call signalling channel messages
     LDAP messages
                                                  1 - LDAP add
                                                  2 - LDAP add response
                                                  3 - LDAP search
                    Windows NT DS                 4 - LDAP search response
                                                  5 - Q.931 Setup
                                                  6 - Q.931 Connect
                                                  7 - H.245 Control Channel
              3     4                2
                               1

                          5
                          6
       Endpoint 1                   endpoint 2
                          7




                        H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 8
   H.323 Call Setup Notes
                (1 of 2)

 Call changes to connected state after
  H.245 logical channels negotiated
 TAPI then calls TSPI_lineGetID with
  device class “MediaProviderInfo” so
  TSP can pass command block to MSP
 H.323 MSP interprets command block
  and constructs DirectShow filter graph


                  H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 9
   H.323 Call Setup Notes
                (2 of 2)

 H.323 MSP invokes callback which
  passes status block back to TSP via
  TSPI_providerMSPData entry point
 TAPI automatically shuts down media
  stream when call changes to idle state
  via CloseMediaStream entry point
 TSP signals TAPI of logical channel
  modifications that occur after call is
  connected via LINE_MEDIAMODE
                  H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 10
             H.323 TSP Details

Endpoint 1         Endpoint 1        Windows NT               Endpoint 2              Endpoint 2
  (TAPI)          (H.323 TSP)            DS                  (H.323 TSP)                (TAPI)


                                                                     TSPI_lineOpen
                                                LDAP add
      TSPI_lineMakeCall
                           LDAP search


                                               Q.931 setup
                                                                           Offering


                                                                    TSPI_lineAnswer
                                              Q.931 connect


                                H.245 control messages

         Connected                                                    Connected




                                         H.323, IP Multicast Conferencing, and TAPI 3.0            Slide 11
                H.323 MSP Details

                Endpoint 1        Endpoint 1           Endpoint 1
                                                                        Endpoint 2
               (H.323 MSP)          (TAPI)            (H.323 TSP)



                     CreateMediaStream
                                          TSPI_lineGetID
DirectShow           UpdateMediaStream
filter graph
    started
                                           RTP/RTCP

                         MSP Callback
                                         TSPI_providerMSPData



                                         LINE_MEDIAMODE


                                          TSPI_lineGetID
                    UpdateMediaStream




                                           H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 12
        Using H.323 TSP
 Create and initialize TAPI object
 Enumerate addresses via TAPI object
 Enumerate supported address types
  and save address objects which
  support user names
 Create call object via address
 Create terminals and pass to call object
 Connect call with user as destination

                   H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 13
                     Example
          Filtering address objects
// retrieve address type enumerator from address object
pAddress->_EnumerateAddressType(&pEnumAddressTypes );

// retrieve next address type from enumerator object
while (pEnumAddressTypes->Next(1, &dwType, NULL) == S_OK)
{
         // is the type we are looking for?
         if (dwType == T3_ADDRESSTYPE_EMAILNAME)
          {
                    // save address object
          }
}

// release enumerator object
pEnumAddressTypes->Release();
                           H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 14
            Example
           Making a call
// create call using user name as destination
pAddress->CreateCall(bstrUserName,&pCall);

// set up the media terminals
pCall->SelectMediaTerminals(varMTArray);

// connect call
pCall->Connect(TRUE);

// call is now in connected state

// disconnect call and release object
pCall->Disconnect(DisconnectCode);
pCall->Release();

                    H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 15
  What Is The IP-MC TSP?
 TAPI Service Provider which enables
  TAPI 3.0 applications to participate in
  SDP-based IP multicast conferences
    Maps minimalistic call control to TSPI
    Maps SDP session descriptions to MSPI
    Retrieves conferences from
     Windows NT directory
 IP-MC TSP will be enhanced to support
  Session Initiation Protocol (SIP)

                    H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 16
    IP-MC TSP Key Features
   Each IP address considered line
   Address format is conference name
   Media streaming done via DirectShow
   Multiple media formats supported
     G.711, H.261, H.263
 Enables efficient group communication
     Data hits network only once
     Adding more users does not increase
      bandwidth consumption

                     H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 17
           What Is SDP?
 Session Description Protocol used
  to describe multicast sessions
     Title
     Originator
     Description
     Time and date
     Media formats available
 Text-based and stored in Windows NT
  directory via rendezvous control

                    H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 18
       IP-MC TSP Notes
 Conferences stored in Windows NT
  directory in text-based SDP format
 TSP resolves conference names into
  SDP information which it then parses
  for media stream information
 TSP changes to connected state upon
  successful parsing of SDP
 MSP constructs DirectShow filter graph
  using same method described above

                  H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 19
  Joining Conference

Endpoint 1
             Windows NT   Endpoint 2             ...   Endpoint N
                 DS

                     LDAP Add




Endpoint 1
             Windows NT   Endpoint 2             ...   Endpoint N
                 DS


                                       LDAP search




Endpoint 1
             Windows NT   Endpoint 2             ...   Endpoint N
                 DS

                                  IP multicast



                           H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 20
        Using IP-MC TSP
 Create and initialize TAPI object
 Enumerate addresses via TAPI object
 Enumerate supported address types
  and save address objects which
  support conference names
 Create call object via address
 Create terminals and pass to call object
 Connect call with conference
  name as destination
                   H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 21
                Example
       Joining a conference
// create call using conference as destination
pAddress->CreateCall(bstrConferenceName,&pCall);

// set up the media terminals
pCall->SelectMediaTerminals(varMTArray);

// connect call
pCall->Connect(TRUE);

// call is now in connected state

// disconnect call and release object
pCall->Disconnect(DisconnectCode);
pCall->Release();

                        H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 22
What Is Rendezvous Control?
  COM object used to add, delete, and
   enumerate IP multicast conferences




                 H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 23
               Example
Initializing rendezvous control
#include <rend.h>

// query for conference directory interface
HRESULT hr = ::CoCreateInstance(
                       CLSID_ConferenceDirectory,
                       NULL,
                       CLSCTX_INPROC_SERVER,
                       IID_ITConferenceDirectory,
                       (void **)&pITDir
                       );

// initialize conference directory
hr = pITDir->Init(bstrServerName, bstrDirPath);


                      H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 24
                   Example
           Creating conference
// allocate bstr representation of conference name
bstrConfName = ::SysAllocString(“My Conference”);

// create conference on specified server and retrieve object
hr = pITDir->CreateConference(bstrConfName, &pITConf );

//
// use conference object to override default conference
// parameters stored in registry
//

// release object
pITConf->Release();


                           H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 25
                      Example
      Enumerating conferences
// retrieve conference enumerator from rendezvous control
hr = pITDir->get__NewEnum( (IUnknown **) &pIEnumConf );

// retrieve next conference from the server
while (pIEnumConf->Next(1, &varITConf, &cConferencesGet) == S_OK)
{
           // cast variant into dispatch pointer
           pITConference = (ITConference *) V_DISPATCH(&varITConf);

         // manipulate conference object

         // release conference object
         pITConference->Release();
}
// release enumerator
pIEnumConf->Release();
                               H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 26
          Call To Action
 Write telephony applications
  to the TAPI 3.0 interfaces
   Combine traditional and
    Internet telephony
   Rich and flexible media control
   Accessible from Visual Basic® and Java™
 Continue writing TAPI Service Providers
 Write codecs and payload handlers for
  the TAPI 3.0 distributed media model

                   H.323, IP Multicast Conferencing, and TAPI 3.0   Slide 27
http://www.microsoft.com/msdn/pdc



                                    ™

								
To top