H 323 IP Multicast Conferencing And TAPI 3

  • Slides: 28
Download presentation
H. 323, IP Multicast Conferencing, And TAPI 3. 0 Don Ryan Development Lead Windows

H. 323, IP Multicast Conferencing, And TAPI 3. 0 Don Ryan Development Lead Windows Networking And Communications Microsoft Corporation

Agenda n n n TAPI 3. 0 key features TAPI 3. 0 architecture H.

Agenda n n n 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 n Unified call control and media streaming for PSTN

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

TAPI 3. 0 Architecture Call control TAPI 2. 0 (C-API) Media control TAPI 3.

TAPI 3. 0 Architecture Call control TAPI 2. 0 (C-API) Media control TAPI 3. 0 (COM API) Unimodem MSP Unimodem H. 323 MSP IP-MC MSP Direct. X streaming filter graph TAPI server Voice Card TSP Directory Terminal control IP multicast RTP Codec Audio LDAP NT DS Winsock 2. 0 Modem driver NDIS 5 Miniport Modem ATM/ISDN TCP/IP NIC H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 4

What Is The H. 323 TSP? n TAPI Service Provider which enables TAPI 3.

What Is The H. 323 TSP? n TAPI Service Provider which enables TAPI 3. 0 applications to communicate with H. 323 compliant software u Maps Q. 931 call control to enhanced TAPI Service Provider Interface (TSPI) u Maps H. 245 multimedia control to new Media Service Provider Interface (MSPI) u 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 n n Each IP address considered line Media modes

H. 323 TSP Key Features n n Each IP address considered line Media modes default to G. 711 and H. 261 Media streaming done via Direct. Show Multiple address formats supported u User name u Machine name u 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)

H. 323 Architecture Multimedia control (H. 245) H. 323 TSP Call control (Q. 931) H. 323 MSP Video I/O equipment Gatekeeper control (RAS) Local area network interface Video codec H. 261, H. 263 RTP/RTCP Audio I/O equipment Audio codec 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

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 4 - LDAP search response 5 - Q. 931 Setup 6 - Q. 931 Connect 7 - H. 245 Control Channel Windows NT DS 3 4 1 2 5 Endpoint 1 6 7 endpoint 2 H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 8

H. 323 Call Setup Notes (1 of 2) n Call changes to connected state

H. 323 Call Setup Notes (1 of 2) n Call changes to connected state after H. 245 logical channels negotiated n TAPI then calls TSPI_line. Get. ID with device class “Media. Provider. Info” so TSP can pass command block to MSP n H. 323 MSP interprets command block and constructs Direct. Show filter graph H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 9

H. 323 Call Setup Notes (2 of 2) n H. 323 MSP invokes callback

H. 323 Call Setup Notes (2 of 2) n H. 323 MSP invokes callback which passes status block back to TSP via TSPI_provider. MSPData entry point n TAPI automatically shuts down media stream when call changes to idle state via Close. Media. Stream entry point n 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 (TAPI) Endpoint 1 (H. 323 TSP) TSPI_line. Make.

H. 323 TSP Details Endpoint 1 (TAPI) Endpoint 1 (H. 323 TSP) TSPI_line. Make. Call Windows NT DS Endpoint 2 (H. 323 TSP) LDAP add Endpoint 2 (TAPI) TSPI_line. Open LDAP search Q. 931 setup Q. 931 connect Offering TSPI_line. Answer H. 245 control messages Connected H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 11

H. 323 MSP Details Endpoint 1 (H. 323 MSP) Endpoint 1 (TAPI) Endpoint 1

H. 323 MSP Details Endpoint 1 (H. 323 MSP) Endpoint 1 (TAPI) Endpoint 1 (H. 323 TSP) Endpoint 2 Create. Media. Stream TSPI_line. Get. ID Direct. Show filter graph started Update. Media. Stream RTP/RTCP MSP Callback TSPI_provider. MSPData LINE_MEDIAMODE TSPI_line. Get. ID Update. Media. Stream H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 12

Using H. 323 TSP n n n Create and initialize TAPI object Enumerate addresses

Using H. 323 TSP n n n 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 p. Address->_Enumerate.

Example Filtering address objects // retrieve address type enumerator from address object p. Address->_Enumerate. Address. Type(&p. Enum. Address. Types ); // retrieve next address type from enumerator object while (p. Enum. Address. Types->Next(1, &dw. Type, NULL) == S_OK) { // is the type we are looking for? if (dw. Type == T 3_ADDRESSTYPE_EMAILNAME) { // save address object } } // release enumerator object p. Enum. Address. Types->Release(); H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 14

Example Making a call // create call using user name as destination p. Address->Create.

Example Making a call // create call using user name as destination p. Address->Create. Call(bstr. User. Name, &p. Call); // set up the media terminals p. Call->Select. Media. Terminals(var. MTArray); // connect call p. Call->Connect(TRUE); // call is now in connected state // disconnect call and release object p. Call->Disconnect(Disconnect. Code); p. Call->Release(); H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 15

What Is The IP-MC TSP? n TAPI Service Provider which enables TAPI 3. 0

What Is The IP-MC TSP? n TAPI Service Provider which enables TAPI 3. 0 applications to participate in SDP-based IP multicast conferences u Maps minimalistic call control to TSPI u Maps SDP session descriptions to MSPI u Retrieves conferences from Windows NT directory n 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 n n Each IP address considered line Address format is

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

What Is SDP? n Session Description Protocol used to describe multicast sessions u Title

What Is SDP? n Session Description Protocol used to describe multicast sessions u Title u Originator u Description u Time and date u Media formats available n 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 n Conferences stored in Windows NT directory in text-based SDP format

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

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

Joining Conference Endpoint 1 Windows NT DS . . . Endpoint 2 Endpoint N LDAP Add Endpoint 1 Windows NT DS . . . Endpoint 2 Endpoint N LDAP search Endpoint 1 Windows NT DS Endpoint 2 . . . Endpoint N IP multicast H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 20

Using IP-MC TSP n n n Create and initialize TAPI object Enumerate addresses via

Using IP-MC TSP n n n 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 p. Address->Create. Call(bstr.

Example Joining a conference // create call using conference as destination p. Address->Create. Call(bstr. Conference. Name, &p. Call); // set up the media terminals p. Call->Select. Media. Terminals(var. MTArray); // connect call p. Call->Connect(TRUE); // call is now in connected state // disconnect call and release object p. Call->Disconnect(Disconnect. Code); p. Call->Release(); H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 22

What Is Rendezvous Control? n COM object used to add, delete, and enumerate IP

What Is Rendezvous Control? n 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

Example Initializing rendezvous control #include <rend. h> // query for conference directory interface HRESULT hr = : : Co. Create. Instance( CLSID_Conference. Directory, NULL, CLSCTX_INPROC_SERVER, IID_ITConference. Directory, (void **)&p. ITDir ); // initialize conference directory hr = p. ITDir->Init(bstr. Server. Name, bstr. Dir. Path); H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 24

Example Creating conference // allocate bstr representation of conference name bstr. Conf. Name =

Example Creating conference // allocate bstr representation of conference name bstr. Conf. Name = : : Sys. Alloc. String(“My Conference”); // create conference on specified server and retrieve object hr = p. ITDir->Create. Conference(bstr. Conf. Name, &p. ITConf ); // // use conference object to override default conference // parameters stored in registry // // release object p. ITConf->Release(); H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 25

Example Enumerating conferences // retrieve conference enumerator from rendezvous control hr = p. ITDir->get__New.

Example Enumerating conferences // retrieve conference enumerator from rendezvous control hr = p. ITDir->get__New. Enum( (IUnknown **) &p. IEnum. Conf ); // retrieve next conference from the server while (p. IEnum. Conf->Next(1, &var. ITConf, &c. Conferences. Get) == S_OK) { // cast variant into dispatch pointer p. ITConference = (ITConference *) V_DISPATCH(&var. ITConf); // manipulate conference object // release conference object p. ITConference->Release(); } // release enumerator p. IEnum. Conf->Release(); H. 323, IP Multicast Conferencing, and TAPI 3. 0 Slide 26

Call To Action n Write telephony applications to the TAPI 3. 0 interfaces u

Call To Action n Write telephony applications to the TAPI 3. 0 interfaces u Combine traditional and Internet telephony u Rich and flexible media control u Accessible from Visual Basic® and Java™ n Continue writing TAPI Service Providers n 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 ™

http: //www. microsoft. com/msdn/pdc ™