H 323 IP Multicast Conferencing And TAPI 3




























- Slides: 28
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. 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 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. 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. 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 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 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 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 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 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. 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 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 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. 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. 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 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 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 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 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 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 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. 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 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 = : : 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 = : : 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. 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 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 ™




























