SlideShare una empresa de Scribd logo
1 de 15
Descargar para leer sin conexión
Small Logo




                   Video Conferencing
Application Note
                   Demo Application for
                   Dialogic Multimedia
                          ®



                   Products
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
             ®




Executive Summary
This application note presents a demo application and sample code that shows how the Dialogic Multimedia Products
                                                                                           ®



can support advanced video features for multimedia applications, such as video transcoding, video transrating and
image resizing, and multimedia conferencing. Topics include the design of the demo application, how conferencing
and multimedia resources can be used to implement advanced video features, and how to build, configure, and run
the demo.
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                      ®




Table of Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Video Conferencing Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
        Demo Feature List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Building the Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Configuring the Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Running the Demo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
Demo Application Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
        Main Application Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
        Objects Used to Handle the Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Multimedia Conferencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
        Multimedia Conference Video Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
        Adding Parties to the Conference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Image Overlay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Transcoding, Video Transrating, and Image Resizing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Coder Negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12




                                                                                          1
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                ®




Introduction
The Dialogic Multimedia Products support advanced video features, including video transcoding, video transrating and image
            ®



resizing, and multimedia conferencing. The specific products that support these advanced features are Dialogic® Multimedia
Software for AdvancedTCA Release 2.0 (MMP Software 2.0 for ATCA) for the Dialogic® Multimedia Platform for AdvancedTCA
(MMP for ATCA) and Dialogic® Multimedia Kit Software Release 1.0 for PCIe (MMK Software 1.0 for PCIe), which is part of the
Dialogic® Multimedia Kit for PCIe (MMK for PCIe).

The two software releases will be collectively referred to as MMP/MMK software throughout this application note.

The Dialogic Media Toolkit API (MTK API) is also included in the software release and can be used to control the layout of video
            ®



conferences and manipulate image overlays.

This application note describes a product demonstration application using advanced video features supported by MMP/MMK
software to implement a video conferencing application. The VideoConfDemo application accepts incoming SIP video calls,
plays a greeting video clip to each caller and then places each caller in a video conference. Dual Tone Multi-Frequency (DTMF)
signaling can be used to change the conference layout and assignment of callers to conference layout regions. With each change
in conference layout and region assignment, the callers are identified in the video output.

Information is included in this application note for building, configuring, and running the VideoConfDemo application. In addition,
the application design is discussed, showing how the different APIs are used to implement the demo features. The demo
application and sample code are available for download (see the For More Information section).

Video Conferencing Demo
The video conferencing demo is an application that is run using the MMP/MMK software media server and demonstrates some of
the advanced video features, including video transcoding, video conferencing, and the MTK API functions.

The video conferencing demo uses the following Dialogic APIs:
                                                          ®




•  Global Call API for 3PCC SIP IP call control
    
•  Conferencing API for multimedia conferencing
    
•  IP Media Library API for RTP multimedia streaming
    
•  Device Management API for connections between devices
    
•  Multimedia API for multimedia plays into a conference
    
•  Media Toolkit API for video conference layout manipulation
    
•  Media Toolkit API for video stream image overlay manipulation
    

MPEG-4 coder support has been introduced into MMP/MMK software, making it possible to use video transcoding to stream in
one video format and convert quickly to another video format. Both MPEG-4 and H.263 video coders are supported by the video
conferencing demo. For audio, G.711, G.723, G.729, and AMR coders are supported.

Video conferencing is the ability to place video-capable callers into a video conference. New video conferencing functions have
been added to the Dialogic Conferencing API to support building video conferences and setting the conference layouts. Parties
                           ®



attached to a conference are decoded into a common video format. The video inputs to the conference are mixed based on
conference layout parameters, and the output of the conference is encoded back to the conference party. Each party receives an
output stream encoded with the coder parameters specific to the party.


                                                                2
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                ®




The MTK API is a collection of libraries added to aid in video manipulation. The video conferencing demo uses the layout builder (lb_)
library functions to build the video conferencing layouts and to dynamically place parties into the conferencing regions. The demo
also uses the overlay builder library (ob_) functions to add an overlay that briefly displays a caller ID if there is a change in the number
of callers in the conference, the assignment of callers to regions in the conference layout, or the conference layout changes.

The video conferencing application creates a video conference and waits for SIP IP video callers to call into the MMP/MMK
software server to be placed into the video conference. The conference supports a configurable number of calls — up to nine
parties in the conference. When the application runs, it can optionally register its extension with a SIP Registrar to allow callers to
dial in by extension rather than by IP address.

The application supports SIP Video IP endpoints. 3G endpoints can be supported by using the 3G gateway demo included in
the MMP/MMK software. The conferencing root frame size is CIF. Audio and video coders are negotiated with each SIP endpoint
when the call is established, and transcoding, transrating, and resizing are performed to match each SIP endpoint with the
conference.

When a SIP video client calls the video conferencing demo, the demo is set to answer the call and can be configured to play a
greeting to the caller before placing the caller in the conference, or to place the caller directly into the conference. The conference
can be configured to a default conference layout and can present up to four conference layouts to the caller. Conference layouts of
1, 4, 6, and 9 panels are supported. Once in a video conference, a SIP video caller can press “*” to cycle through the configured
layouts or press “#” to rotate parties to different regions of the current conference layout.

Also, as a configurable option, the video conferencing demo can be configured to start the conference with “virtual caller” files to
simulate other parties in a conference. The virtual caller files can be any pre-recorded video and audio file set, and can serve as
a video greeting, marketing material, movie file, or video message clip played to party participants.

Demo Feature List
•  Conference Parties:
    
  - Up to nine parties in a conference

•  Supported coders:
    
  - Video coders supported: H.263, MPEG-4
  - Audio coders supported: G.711, G.723, G.729, AMR

•  Conferencing layouts:
    
  - 1,4,6,9 party layouts supported. A subset of layouts can be configured though .configuration (.config) file.
  - DTMF control of layout:
     - “*” - Cycle through configured layouts
     - “#” - Rotate parties within frames of the current layout

•  Options:
    
  - SIP registration
  - Optional greeting clip before being placed into conference
  - Optional “virtual callers” from multimedia clips




                                                                     3
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                  ®




Building the Demo
A makefile is included in the distribution and is used to build the application using the make facility.

make options:

  “make clean” — Removes intermediate object and executable files

  “make” or “make release” — Builds the release version of the executable

   “make debug” — Builds a debug version of the executable

Configuring the Demo
The demo may be configured by entering parameters at the command line or by using a configuration file.

The configuration parameters are:

config=xxx               use configuration file xxx, one line per item default=VideoConfDemo.cfg

port=nnn                 SIP port, default=5060

maxcalls=nnn             maximum number of calls, default=4, max=9

virtualcallers=nnn       number of virtual callers, default=0, max=8

registrar=n.n.n.n        IP address of SIP Registrar, default=10.10.10.10

phonenumber=nnnn         phone number to register for, default=1000

greeting=xxxx            base filename for greeting/introduction media .pcm and .vid files, default=no greeting clip

caller1=xxxx             base filename for 1st virtual caller media .pcm and .vid files, default=caller1

caller2=xxxx             base filename for 2nd virtual caller media .pcm and .vid files, default=caller2

caller3=xxxx             base filename for 3rd virtual caller media .pcm and. vid files, default=caller3

layouts=n,n...           allowed layouts - comma delimited, by number of regions 1,4,6 and/or 9, default=1,4,6,9

initiallayout=n          initial layout by number of regions 1,4,6 or 9, default=1

A note about virtual caller media clips. One or more virtual caller media clips may be specified, and clips will be assigned to virtual
callers in round-robin fashion. For example, three virtual callers are specified, caller1 is assigned “virtual1” and caller2 is assigned
“virtual2”. Virtual callers 1 and 3 will use the “virtual1” clip and virtual caller 2 will use the “virtual2” clip.

Running the Demo
To run the demo, execute ./VideoConfDemo[command line parameters] at the command prompt. The application will start and
initialize all the devices, displaying various progress information items in the console. Throughout execution, progress information,
including API calls, events, and errors, is displayed in the console and written to the file logfile.txt.

                                                                   4
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                ®




When a SIP video call is made into the MMP for ATCA or the MMK for PCIe, the VideoConfDemo application answers the call. If the
optional greeting is configured, the greeting is played to the caller before the caller is placed in the conference (see Figure 1). If the
optional greeting is not configured, the caller is placed immediately into the conference. While the greeting clip is being played, the
caller can end the greeting clip by pressing any DTMF digit key.




Figure 1. An Optional Greeting Being Played


The initial conference layout is set by the configuration. Callers are placed in regions of the conference layout based on the order
that they called and are assigned a caller ID of “Caller1”, “Caller2”, etc. When a caller is added to the conference, the caller ID
for all callers is displayed for five seconds (see Figure 2). The audio from a caller is mixed into the conference audio. If an audio-
only call arrives for the conference, the audio is added to the conference and the video for that caller is blank. If virtual callers are
configured, the virtual caller clips are played in conference layout regions not used by actual callers up to the configured number
of virtual callers.

While in the conference, callers may choose to perform three operations:

1. Leave the conference by dropping the call.

2. Change the conference layout by pressing the “*” key.

3. Change the assignment of callers to conference layout regions by pressing the “#” key.

Note: When a caller operation is used, a caller ID displays for five seconds.

The conference layouts available are set by configuration. When the conference layout is changed by a caller, the conference
video output is changed to the next available layout.

Callers are arranged in the conference layout regions according to the order that they called. Actual callers are followed by virtual
callers. When the caller region assignments are changed by a caller, the assignments are rotated one position within the layout.



                                                                    5
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                ®




Figure 2. Four Callers in a Conference with a Caller ID Displayed for Each Caller

To exit the application, enter the letter “q” or “Q” in the console window and press return. The application will attempt to shutdown
gracefully. In the event that graceful shutdown is not possible, the application will continue to try and the user will have to abort
the application using Ctrl-C.

Demo Application Design
The VideoConfDemo application is designed to use an asynchronous programming model and to utilize a single thread for all
event handling. The software architecture is layered such that the callflow (business) logic is layered on top of Dialogic device
                                                                                                                            ®



handling logic. Operation of each callflow and device handling object is controlled by a state object.

The main application objects are defined by the GcManager, Conference, SipSession, VirtualCaller, and Configuration classes. The
objects used to handle Dialogic devices are defined by the GcSipDevice, IpmDevice, MediaDevice, Overlay, ConferenceBoardDevice,
ConferenceDevice, and ConferencePartyDevice classes.

Main Application Objects
GcManager object — Is responsible for initializing the Dialogic Global Call API, creating the other application objects and
                                                                        ®



dispatching events to the appropriate object.

Conference object — Is responsible for managing a conference device.

SipSession objects — Use the Conference object to add and remove themselves from the conference based on the callflow state,
and to change the conference layout and region assignment in response to DTMF input by the caller.

SipSession objects are responsible for accepting inbound calls, playing the optional greeting clip and adding themselves to the
conference. They use a SipDevice object to handle the Global Call API 3PCC SIP signaling, an IpmDevice object to handle control
of the RTP media streams, a MultimediaDevice object to handle playing the optional greeting clip, a conference party device used



                                                                    6
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                ®




                                                      Video Conferencing Demo


                                        GC Manager                                     Configuration


                                                                  SIP Session


                                                                            Multimedia              Conference
                            GC SIP Device            IPM Device
                                                                             Device                 Party Device


                                        Conference                                       Virtual Caller

                             Conference          Conference                     Multimedia           Conference
                            Board Device           Device                        Device              Party Device



Figure 3. Software Model

to interface to the conference, and an Overlay object to display a caller identifier overlay on the video stream. The SipSession
object also performs coder negotiation as part of SIP call setup. The SipSession state objects contain the logic for coordinating the
SIP signaling, IpmDevice, MediaDevice, and ConferencePartyDevice objects, and for transitioning from one state to another.

VirtualCaller objects — Join the conference at startup and remain in the conference until the application ends. They use a
MediaDevice object to continuously play a video clip and a ConferencePartyDevice to interface with the conference.

Objects Used to Handle the Devices
GcSipDevice objects — Are responsible for SIP call control using the Global Call API in 3PCC mode. The state machine for SIP
devices has two layers to separate the device state and the call state.

IpmDevice objects — Are responsible for handling the audio and video RTP streams to SIP callers.

MediaDevice objects — Are responsible for playing media clips used by both SipSession and VirtualCaller objects.

Overlay objects — Are responsible for applying an image overlay to a video stream. SipSession objects use them to display a caller
identifier when the conference video output changes layout or visible party region assignment.

A single ConferenceBoardDevice object — Is used to create ConferenceDevice and ConferencePartyDevice objects. The
ConferenceDevice object is used by the Conference object to control conference attributes. ConferencePartyDevice objects are
used by SipSession and VirtualCaller objects to connect to the conference.

Multimedia Conferencing
The CNF Conferencing API is used to provide conferencing features. The CNF conferencing model includes the concepts of board
devices, conference devices, and conference party devices. Using the CNF API for multimedia conferencing requires only that
the devices be multimedia devices. CNF devices are designated as multimedia devices by starting out with a multimedia board
device. This is accomplished by using a mcxBx device name to open a multimedia conference board device. Because conference
devices and conference party devices are opened using the board device, they are also multimedia devices.




                                                                      7
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
               ®




The VideoConfDemo CConference and CConferenceDevice classes implement the conferencing logic. The CConference class
is responsible for maintaining the lists of conference parties and virtual parties in the conference and for performing the logic
necessary to change the layout and visible parties from caller DTMF input. The CConferenceDevice class is responsible for
performing the actual API function calls and handling events.

Multimedia Conference Video Layout
The video layout of the multimedia conference is manipulated using Layout Builder, which is part of the MTK API.

The Layout Builder API allows for setting the size, location, and number of video regions in the conference output and for
controlling which conference party appears in each. This is accomplished in two steps (see Figure 4):

1. A layout template is created. The template defines the size, location, and number of regions. Some basic properties of the
   regions are set in the template.

2. The layout template is then applied to the conference and visible parties are assigned to the regions.



                              Application                                                    CNF Library    MTK Library


                                                    cnf_OpenConference(cnfBoardDevh)
    Open conference device
                                                           CNFEV_OPEN_CONF

                                                         lb_CreateLayoutTemplate()
    Create layout template
                                                              layoutTemplateH

    Set selection mode                     lb_GetRegionList(layoutTemplateH, &regionList, &count)
    for regions                                                 result code

                                           lb_SetSelectionMode(regionH,eLB_SELECTION_MODE)

                     for(all regions)                           result code


                                        CNF_VIDEO_LAYOUT_INFO layoutInfo;
                                        layoutInfo.LayoutSize = ELB_LAYOUT_SIZE_CIF
                                        layoutInfo.LayoutHandle = layoutTemplateH;

                                                   cnf_SetVideoLayout(cnfDevH,layoutInfo)

    Save layout handle for                         CNFEV_SET_VIDEO_LAYOUT(layoutH)
    future changes


Figure 4. Sequence Diagram for Setting up the Conference Video Layout




                                                                     8
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                ®




Creating a Conference Layout Template                                  have to be combined using the conference video layout. This
                                                                       requires that the video streams for visible conference parties
Specifying Layout Type                                                 be assigned to the layout regions (see Figure 5).
The lb_CreateLayoutTemplate(type) function returns a handle
                                                                       Video from conference parties are assigned to conference
to a layout template for the layout type specified. The MMP/
                                                                       layout regions by creating a CNF_VISIBLE_PARTY_LIST.
MMK software supports 1, 4 region layout types as well as
                                                                       Passing the list as a parameter to the cnf_SetVisiblePartyList()
custom layouts.
                                                                       function applies the region-party assignments and makes them
Note: Additional predefined layouts, such as 6 and 9 region            active. The CNF_VISIBLE_PARTY_LIST contains an array of
layout types, are planned for later releases of the MMP/MMK            CNF_VISIBLE_PARTY_INFO structures. The CNF_VISIBLE_
software.                                                              PARTY_INFO structure requires a handle to a conference party
                                                                       and a handle to a layout region. The application maintains a
The layout template is then used to set region properties and
                                                                       list of parties that have been added to the conference, and a
then applied to the conference.
                                                                       list of region handles is obtained by using the Layout Builder
Setting Region Properties                                              lb_GetRegionList() function.

After the layout template has been created, properties can             Image Overlay
be set for each region in the layout by iterating over a list of       The VideoConfDemo application includes a feature that displays
the regions obtained using the lb_GetRegionList() function.
                                                                       caller identifiers for each party for five seconds when a caller
The VideoConfDemo application can explicitly determine
                                                                       joins or leaves the conference, when the conference layout is
which conference party is displayed in each region. This
                                                                       changed, or when the visible parties are rotated within the layout.
application is enabled by calling the lb_SetSelectionMode
(regionHandle, mode) function for each region with mode set            The caller identifier is an image file applied as an overlay to the
to eLB_SELECTION_MODE_USER_SELECT. The default mode                    video stream coming from the caller into the conference.
is to have the region automatically set using the active talker
algorithm.                                                             Image overlays are created using the Overlay Builder, Stream
                                                                       Manipulation, and other MTK APIs. The VideoConfDemo
Applying the Conference Layout Template                                COverlay class contains the API calls to create an overlay and
                                                                       apply it to a video stream. The SipSession objects create an
The conference layout template is applied to the conference            Overlay object and use it to add the caller identifier image
using the cnf_SetVideoLayout() function. The completion event
                                                                       overlay to the caller’s video stream going to the conference.
for this function contains a handle for the active layout. This
handle is different than the handle for the layout template.
                                                                       An image overlay is applied by creating an image overlay
Subsequent changes to the layout template can be applied to
                                                                       template and then applying the overlay template to a video
the conference by the calling cnf_SetVideoLayout() function
                                                                       stream of a device. The image overlay template is created
again.
                                                                       first by using the mtk_CreateImageTemplate() function. JPEG
Adding Parties to the Conference                                       files are used by the VideoConfDemo application for the
                                                                       image source so the mtk_CreateMediaFileTemplate() function
When a party is added to a conference using the cnf_AddParty()
                                                                       is used to specify the JPEG file. A bounding frame for the
function, the audio and video streams are available for mixing
into the conference output. The audio of all conference parties        image is set using a frame template created using the mtk_
is summed to create the output. The active talker algorithm can        CreateFrameTemplate() function, and its properties are set with
be enabled to limit the audio summation to the three loudest           the mtk_SetFramePositionOverlay() and mtk_SetFrameSize()
talkers. The video from the conference parties cannot just be          functions. The frame template is applied to the overlay template
summed into an output stream; instead, the individual streams          using the ob_SetOverlayBoundingFrame() function.



                                                                   9
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                  ®




                               Application                                                        CNF Library   MTK Library


                                                      cnf_AddParty( cnfDevh, &cnfPartyInfo)
    Add party to
    conference device                                          CNFEV_ADD_PARTY

                                                 lb_GetRegionList(layoutH, &regionList, &count)
    Set display mode
    for regions                                                     result code

                                                    lb_SetDisplayMode(regionH, displayMode)

                      for(all regions)                              result code

                                                     cnf_SetVideoLayout(cnfDevH, &layoutH)
    Update the layout
                                                      CNFEV_SET_VIDEO_LAYOUT(layoutH)

    Build visible parties list
                                         CNF_VISIBLE_PARTY_INFO visiblePartyInfo[N];
                                         for (all parties)
                                         {
                                                     visiblePartyInfo[n].PartyHandle=cnfPartyH;
                                                     visiblePartyInfo[n].RegionHandle=regionH;
                                         }



                                         CNF_VISIBLE_PARTY_LIST visiblePartyList;
                                         visiblePartyList=partyCount;
                                         visiblePartyList=partyInfoList;


                                                cnf_SetVisiblePartyList(cnfDevh, &visiblePartyList)
    Set visible parties
                                                       CNFEV_SET_VISABLE_PARTY_LIST


Figure 5. Sequence Diagram for Adding a Party to the Video Conference

After the overlay template is created and all properties have been set, the overlay template is applied to the video stream using the
sm_AddOverlays() function (used for stream manipulation). Figure 6 is an example of a caller ID used as an image overlay.

For additional information and a description of how to use image overlays, refer to Using Dialogic Media Toolkit API for Image
                                                                                                           ®



Overlay on Video Streams, and for information on converting text into images that can be used by the image overlay API, refer to
Using Dialogic Media Toolkit API and ImageMagick for Image Overlay on Video Streams (see the For More Information section).
              ®




Transcoding, Video Transrating, and Image Resizing
Each SIP caller may use a set of supported coders and coder parameters. The coders and parameters are detected as part of
call setup coder negotiation, and the IPM device streams are configured appropriately when the RTP stream is started. The
Multimedia devices used for playing clips are configured to use coders appropriate to the media files being played. As the coders
used by the callers and the media files may be different, transcoding will be required. Also, coder parameters such as video frame
rate and resolution format may be different, so video transrating and image resizing may be required.


                                                                        10
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                ®




Figure 6. Caller ID as an Image Overlay


These three functions are performed by the device management system when two devices are connected using the dev_PortConnect()
function. No explicit API for enabling transcoding, transrating, and resizing exists, but rather they are automatically performed as
a result of using the dev_PortConnect() function to join two multimedia streams. The actual transcoding, transrating, and resizing
operations are determined by the media file, MM, IPM, and CNF device settings.

Coder Negotiation
Coder negotiation is performed when an inbound call is offered. The coders proposed in the SIP INVITE message SDP are
matched against the local capabilities. If a match is found, the coder resource is reserved and the call is answered. If a match
cannot be found, the inbound call is rejected.

A set of classes is used to create coder objects for both the offer SDP and local capabilities. Each supported coder class has
the logic to obtain coder-specific parameters from the SIP INVITE message SDP as well as from IPM_AUDIO_CODER_INFO and
IPM_VIDEO_CODER_INFO local capabilities structures initialized for the supported coders. The classes also have the logic to
compare two coders and to export the SDP for a matched coder.

When an inbound call is offered, the VideoConfDemo SipSession object builds a remote capabilities list and a local capabilities
list, and then finds the first match between the two lists. If a match is found and a coder resource can be reserved, then the call
is accepted. Otherwise, the call is rejected.

Summary
The video conferencing demo shows how the MMP/MMK software can support advanced video features for multimedia
applications, such as video transcoding, video transrating and image resizing, and multimedia conferencing.

This application note also described the features of the VideoConfDemo application, and provided information on how to build,
configure, and run the VideoConfDemo application. The high-level design of the application was presented, as was a description
of how conferencing and multimedia resources can be used to implement the video features of the application.


                                                                11
Application Note
Video Conferencing Demo Application for
Dialogic Multimedia Products
                 ®




References

A Zip file containing the demo application and sample code application can be downloaded at
http://www.dialogic.com/goto/?11167

Using Dialogic Media Toolkit API for Image Overlay on Video Streams —
             ®



http://www.dialogic.com/goto/?11011

Using Dialogic Media Toolkit API and ImageMagick for Image Overlay on Video Streams —
             ®



http://www.dialogic.com/goto/?11033-01

Dialogic Media Toolkit API Library Reference —
       ®



http://www.dialogic.com/manuals/docs/media_toolkit_api_v2.pdf

Dialogic Multimedia API Library Reference —
       ®



http://www.dialogic.com/manuals/docs/multimedia_api_v1.pdf

Dialogic Multimedia API Programming Guide —
       ®



http://www.dialogic.com/manuals/docs/multimedia_programming_lin_v2.pdf

Dialogic IP Media Library API Library Reference —
       ®



http://www.dialogic.com/manuals/docs/ip_media_api_hmp_v8.pdf

Dialogic IP Media Library API Programming Guide —
       ®



http://www.dialogic.com/manuals/docs/ip_media_programming_hmp_v3.pdf

Dialogic Conferencing API Library Reference —
       ®



http://www.dialogic.com/manuals/docs/conferencing_api_v2.pdf

Dialogic Conferencing API Programming Guide —
       ®



http://www.dialogic.com/manuals/docs/conferencing_programming_v2.pdf

Dialogic Device Management API Library Reference —
       ®



http://www.dialogic.com/manuals/docs/device_mgmt_api_v7.pdf

Dialogic Global Call API Library Reference —
       ®



http://www.dialogic.com/manuals/docs/globalcall_api_hmp_v4.pdf

Dialogic Global Call API Programming Guide —
       ®



http://www.dialogic.com/manuals/docs/globalcall_programming_hmp_v4.pdf

Dialogic Global Call IP Technology Guide —
       ®



http://www.dialogic.com/manuals/docs/globalcall_for_ip_hmp_v10.pdf

Kapanga Softphone information —
http://www.kapanga.net




                                                            12
Small Logo




www.dialogic.com

Dialogic Corporation
9800 Cavendish Blvd., 5th floor
Montreal, Quebec
CANADA H4M 2V9

INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH PRODUCTS OF DIALOGIC CORPORATION OR ITS SUBSIDIARIES (“DIALOGIC”). NO LICENSE, EXPRESS
OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN A SIGNED AGREEMENT
BETWEEN YOU AND DIALOGIC, DIALOGIC ASSUMES NO LIABILITY WHATSOEVER, AND DIALOGIC DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/
OR USE OF DIALOGIC® PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY
INTELLECTUAL PROPERTY RIGHT OF A THIRD PARTY.

Dialogic products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications.

Dialogic may make changes to specifications, product descriptions, and plans at any time, without notice.

Dialogic is a registered trademark of Dialogic Corporation. Dialogic’s trademarks may be used publicly only with permission from Dialogic. Such permission may only be
granted by Dialogic’s legal department at 9800 Cavendish Blvd., 5th Floor, Montreal, Quebec, Canada H4M 2V9. Any authorized use of Dialogic’s trademarks will be subject
to full respect of the trademark guidelines published by Dialogic from time to time and any use of Dialogic’s trademarks requires proper acknowledgement.

The names of actual companies and products mentioned herein are the trademarks of their respective owners. Dialogic encourages all users of its products to procure all
necessary intellectual property licenses required to implement their concepts or applications, which licenses may vary from country to country.

Any use case(s) shown and/or described herein represent one or more examples of the various ways, scenarios or environments in which Dialogic products can be used.
Such use case(s) are non-limiting and do not represent recommendations of Dialogic as to whether or how to use Dialogic products.

Using the AMR-NB resource in connection with certain Dialogic® products does not grant the right to practice the AMR-NB standard. To seek a patent license agreement to
practice the standard, contact the VoiceAge Corporation at http://www.voiceage.com/licensing.php.

Copyright © 2008 Dialogic Corporation      All rights reserved.                                                                                                 09/08   111091-01

Más contenido relacionado

Destacado

Janus Software Demo for Solar Companies - CRM - Field Service GPS Application
Janus Software Demo for Solar Companies - CRM - Field Service GPS ApplicationJanus Software Demo for Solar Companies - CRM - Field Service GPS Application
Janus Software Demo for Solar Companies - CRM - Field Service GPS ApplicationChuong Thai
 
Question and Answer Software - admengroup
Question and Answer Software - admengroupQuestion and Answer Software - admengroup
Question and Answer Software - admengroupadmengroupnews
 
Answer to Question 8 in the Application form- IE University Madrid
Answer to Question 8 in the Application form- IE University MadridAnswer to Question 8 in the Application form- IE University Madrid
Answer to Question 8 in the Application form- IE University MadridPhilippo206
 
Question Answering - Application and Challenges
Question Answering - Application and ChallengesQuestion Answering - Application and Challenges
Question Answering - Application and ChallengesJens Lehmann
 
Computer questions with answers
Computer questions with answersComputer questions with answers
Computer questions with answersletsguru guru
 
Open domain Question Answering System - Research project in NLP
Open domain  Question Answering System - Research project in NLPOpen domain  Question Answering System - Research project in NLP
Open domain Question Answering System - Research project in NLPGVS Chaitanya
 
RIA Screen Layouts
RIA Screen LayoutsRIA Screen Layouts
RIA Screen LayoutsTheresa Neil
 
Online Exam Portal for Campus
Online Exam Portal for CampusOnline Exam Portal for Campus
Online Exam Portal for Campusganeshpaul6
 
online examination portal project presentation
online examination portal project presentationonline examination portal project presentation
online examination portal project presentationShobhit Jain
 
Online examination system
Online examination systemOnline examination system
Online examination systemAj Maurya
 
Final ppt of project
Final ppt of projectFinal ppt of project
Final ppt of projectRuchi Gulati
 
Presentation on project report
Presentation on project reportPresentation on project report
Presentation on project reportramesh_x
 
Final Year Project Presentation
Final Year Project PresentationFinal Year Project Presentation
Final Year Project PresentationSyed Absar
 

Destacado (18)

Janus Software Demo for Solar Companies - CRM - Field Service GPS Application
Janus Software Demo for Solar Companies - CRM - Field Service GPS ApplicationJanus Software Demo for Solar Companies - CRM - Field Service GPS Application
Janus Software Demo for Solar Companies - CRM - Field Service GPS Application
 
Coats web portal
Coats web portalCoats web portal
Coats web portal
 
Can a LMS run smoothly of Iphone?
Can a LMS run smoothly of Iphone?Can a LMS run smoothly of Iphone?
Can a LMS run smoothly of Iphone?
 
KioWare Lite Kiosk Software Demo
KioWare Lite Kiosk Software DemoKioWare Lite Kiosk Software Demo
KioWare Lite Kiosk Software Demo
 
Question and Answer Software - admengroup
Question and Answer Software - admengroupQuestion and Answer Software - admengroup
Question and Answer Software - admengroup
 
Answer to Question 8 in the Application form- IE University Madrid
Answer to Question 8 in the Application form- IE University MadridAnswer to Question 8 in the Application form- IE University Madrid
Answer to Question 8 in the Application form- IE University Madrid
 
Question Answering - Application and Challenges
Question Answering - Application and ChallengesQuestion Answering - Application and Challenges
Question Answering - Application and Challenges
 
Computer questions with answers
Computer questions with answersComputer questions with answers
Computer questions with answers
 
Open-ended Visual Question-Answering
Open-ended  Visual Question-AnsweringOpen-ended  Visual Question-Answering
Open-ended Visual Question-Answering
 
Open domain Question Answering System - Research project in NLP
Open domain  Question Answering System - Research project in NLPOpen domain  Question Answering System - Research project in NLP
Open domain Question Answering System - Research project in NLP
 
RIA Screen Layouts
RIA Screen LayoutsRIA Screen Layouts
RIA Screen Layouts
 
Online Exam Portal for Campus
Online Exam Portal for CampusOnline Exam Portal for Campus
Online Exam Portal for Campus
 
online examination portal project presentation
online examination portal project presentationonline examination portal project presentation
online examination portal project presentation
 
Online examination system
Online examination systemOnline examination system
Online examination system
 
Final Year Project Presentation
Final Year Project PresentationFinal Year Project Presentation
Final Year Project Presentation
 
Final ppt of project
Final ppt of projectFinal ppt of project
Final ppt of project
 
Presentation on project report
Presentation on project reportPresentation on project report
Presentation on project report
 
Final Year Project Presentation
Final Year Project PresentationFinal Year Project Presentation
Final Year Project Presentation
 

Similar a Video Conferencing Demo Application for Dialogic® Multimedia ...

Considerations for Creating Streamed Video Content over 3G ...
Considerations for Creating Streamed Video Content over 3G ...Considerations for Creating Streamed Video Content over 3G ...
Considerations for Creating Streamed Video Content over 3G ...Videoguy
 
Streaming Video Solutions White Paper
Streaming Video Solutions White PaperStreaming Video Solutions White Paper
Streaming Video Solutions White PaperVideoguy
 
Video Conferencing, The Enterprise and You
Video Conferencing, The Enterprise and YouVideo Conferencing, The Enterprise and You
Video Conferencing, The Enterprise and YouVideoguy
 
Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...Videoguy
 
Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...Videoguy
 
Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...Videoguy
 
Video production in the cloud for live streaming
Video production in the cloud for live streamingVideo production in the cloud for live streaming
Video production in the cloud for live streamingPaul Richards
 
MAA M1 Mst Ctr Room.pdf
MAA M1 Mst Ctr Room.pdfMAA M1 Mst Ctr Room.pdf
MAA M1 Mst Ctr Room.pdfkeith519207
 
Module 2 3
Module 2 3Module 2 3
Module 2 3ryanette
 
Video Conferencing
Video ConferencingVideo Conferencing
Video ConferencingVideoguy
 
Video Conferencing
Video ConferencingVideo Conferencing
Video ConferencingVideoguy
 
architekture.com, inc.
architekture.com, inc.architekture.com, inc.
architekture.com, inc.Videoguy
 
Utf 8'en'ibm sametime 9 - voice and video deployment
Utf 8'en'ibm sametime 9 - voice and video deployment Utf 8'en'ibm sametime 9 - voice and video deployment
Utf 8'en'ibm sametime 9 - voice and video deployment a8us
 
Radvision videoconference streamingsolutionscookbook
Radvision videoconference streamingsolutionscookbookRadvision videoconference streamingsolutionscookbook
Radvision videoconference streamingsolutionscookbookJaved Hashmi
 
Videoconference Streaming Solutions Cookbook
Videoconference Streaming Solutions CookbookVideoconference Streaming Solutions Cookbook
Videoconference Streaming Solutions CookbookVideoguy
 
How to add video conferencing via API to your website or app
How to add video conferencing via API to your website or appHow to add video conferencing via API to your website or app
How to add video conferencing via API to your website or appEnablex1
 
Install shieldtuner7
Install shieldtuner7Install shieldtuner7
Install shieldtuner7kid_kaito
 
Digital Content Retrieval Final Report
Digital Content Retrieval Final ReportDigital Content Retrieval Final Report
Digital Content Retrieval Final ReportKourosh Sajjadi
 
Web application developers_guide_sip_polycom
Web application developers_guide_sip_polycomWeb application developers_guide_sip_polycom
Web application developers_guide_sip_polycomVictor Jaramillo
 
B-Translator as a Software Engineering Project
B-Translator as a Software Engineering ProjectB-Translator as a Software Engineering Project
B-Translator as a Software Engineering ProjectDashamir Hoxha
 

Similar a Video Conferencing Demo Application for Dialogic® Multimedia ... (20)

Considerations for Creating Streamed Video Content over 3G ...
Considerations for Creating Streamed Video Content over 3G ...Considerations for Creating Streamed Video Content over 3G ...
Considerations for Creating Streamed Video Content over 3G ...
 
Streaming Video Solutions White Paper
Streaming Video Solutions White PaperStreaming Video Solutions White Paper
Streaming Video Solutions White Paper
 
Video Conferencing, The Enterprise and You
Video Conferencing, The Enterprise and YouVideo Conferencing, The Enterprise and You
Video Conferencing, The Enterprise and You
 
Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...
 
Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...
 
Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...Deployment Of Multi-Network Video And Voice Conferencing On A ...
Deployment Of Multi-Network Video And Voice Conferencing On A ...
 
Video production in the cloud for live streaming
Video production in the cloud for live streamingVideo production in the cloud for live streaming
Video production in the cloud for live streaming
 
MAA M1 Mst Ctr Room.pdf
MAA M1 Mst Ctr Room.pdfMAA M1 Mst Ctr Room.pdf
MAA M1 Mst Ctr Room.pdf
 
Module 2 3
Module 2 3Module 2 3
Module 2 3
 
Video Conferencing
Video ConferencingVideo Conferencing
Video Conferencing
 
Video Conferencing
Video ConferencingVideo Conferencing
Video Conferencing
 
architekture.com, inc.
architekture.com, inc.architekture.com, inc.
architekture.com, inc.
 
Utf 8'en'ibm sametime 9 - voice and video deployment
Utf 8'en'ibm sametime 9 - voice and video deployment Utf 8'en'ibm sametime 9 - voice and video deployment
Utf 8'en'ibm sametime 9 - voice and video deployment
 
Radvision videoconference streamingsolutionscookbook
Radvision videoconference streamingsolutionscookbookRadvision videoconference streamingsolutionscookbook
Radvision videoconference streamingsolutionscookbook
 
Videoconference Streaming Solutions Cookbook
Videoconference Streaming Solutions CookbookVideoconference Streaming Solutions Cookbook
Videoconference Streaming Solutions Cookbook
 
How to add video conferencing via API to your website or app
How to add video conferencing via API to your website or appHow to add video conferencing via API to your website or app
How to add video conferencing via API to your website or app
 
Install shieldtuner7
Install shieldtuner7Install shieldtuner7
Install shieldtuner7
 
Digital Content Retrieval Final Report
Digital Content Retrieval Final ReportDigital Content Retrieval Final Report
Digital Content Retrieval Final Report
 
Web application developers_guide_sip_polycom
Web application developers_guide_sip_polycomWeb application developers_guide_sip_polycom
Web application developers_guide_sip_polycom
 
B-Translator as a Software Engineering Project
B-Translator as a Software Engineering ProjectB-Translator as a Software Engineering Project
B-Translator as a Software Engineering Project
 

Más de Videoguy

Energy-Aware Wireless Video Streaming
Energy-Aware Wireless Video StreamingEnergy-Aware Wireless Video Streaming
Energy-Aware Wireless Video StreamingVideoguy
 
Microsoft PowerPoint - WirelessCluster_Pres
Microsoft PowerPoint - WirelessCluster_PresMicrosoft PowerPoint - WirelessCluster_Pres
Microsoft PowerPoint - WirelessCluster_PresVideoguy
 
Proxy Cache Management for Fine-Grained Scalable Video Streaming
Proxy Cache Management for Fine-Grained Scalable Video StreamingProxy Cache Management for Fine-Grained Scalable Video Streaming
Proxy Cache Management for Fine-Grained Scalable Video StreamingVideoguy
 
Free-riding Resilient Video Streaming in Peer-to-Peer Networks
Free-riding Resilient Video Streaming in Peer-to-Peer NetworksFree-riding Resilient Video Streaming in Peer-to-Peer Networks
Free-riding Resilient Video Streaming in Peer-to-Peer NetworksVideoguy
 
Instant video streaming
Instant video streamingInstant video streaming
Instant video streamingVideoguy
 
Video Streaming over Bluetooth: A Survey
Video Streaming over Bluetooth: A SurveyVideo Streaming over Bluetooth: A Survey
Video Streaming over Bluetooth: A SurveyVideoguy
 
Video Streaming
Video StreamingVideo Streaming
Video StreamingVideoguy
 
Reaching a Broader Audience
Reaching a Broader AudienceReaching a Broader Audience
Reaching a Broader AudienceVideoguy
 
ADVANCES IN CHANNEL-ADAPTIVE VIDEO STREAMING
ADVANCES IN CHANNEL-ADAPTIVE VIDEO STREAMINGADVANCES IN CHANNEL-ADAPTIVE VIDEO STREAMING
ADVANCES IN CHANNEL-ADAPTIVE VIDEO STREAMINGVideoguy
 
Impact of FEC Overhead on Scalable Video Streaming
Impact of FEC Overhead on Scalable Video StreamingImpact of FEC Overhead on Scalable Video Streaming
Impact of FEC Overhead on Scalable Video StreamingVideoguy
 
Application Brief
Application BriefApplication Brief
Application BriefVideoguy
 
Video Streaming Services – Stage 1
Video Streaming Services – Stage 1Video Streaming Services – Stage 1
Video Streaming Services – Stage 1Videoguy
 
Streaming Video into Second Life
Streaming Video into Second LifeStreaming Video into Second Life
Streaming Video into Second LifeVideoguy
 
Flash Live Video Streaming Software
Flash Live Video Streaming SoftwareFlash Live Video Streaming Software
Flash Live Video Streaming SoftwareVideoguy
 
Streaming Video Formaten
Streaming Video FormatenStreaming Video Formaten
Streaming Video FormatenVideoguy
 
iPhone Live Video Streaming Software
iPhone Live Video Streaming SoftwareiPhone Live Video Streaming Software
iPhone Live Video Streaming SoftwareVideoguy
 
Glow: Video streaming training guide - Firefox
Glow: Video streaming training guide - FirefoxGlow: Video streaming training guide - Firefox
Glow: Video streaming training guide - FirefoxVideoguy
 
Video and Streaming in Nokia Phones v1.0
Video and Streaming in Nokia Phones v1.0Video and Streaming in Nokia Phones v1.0
Video and Streaming in Nokia Phones v1.0Videoguy
 
Video Streaming across wide area networks
Video Streaming across wide area networksVideo Streaming across wide area networks
Video Streaming across wide area networksVideoguy
 

Más de Videoguy (20)

Energy-Aware Wireless Video Streaming
Energy-Aware Wireless Video StreamingEnergy-Aware Wireless Video Streaming
Energy-Aware Wireless Video Streaming
 
Microsoft PowerPoint - WirelessCluster_Pres
Microsoft PowerPoint - WirelessCluster_PresMicrosoft PowerPoint - WirelessCluster_Pres
Microsoft PowerPoint - WirelessCluster_Pres
 
Proxy Cache Management for Fine-Grained Scalable Video Streaming
Proxy Cache Management for Fine-Grained Scalable Video StreamingProxy Cache Management for Fine-Grained Scalable Video Streaming
Proxy Cache Management for Fine-Grained Scalable Video Streaming
 
Adobe
AdobeAdobe
Adobe
 
Free-riding Resilient Video Streaming in Peer-to-Peer Networks
Free-riding Resilient Video Streaming in Peer-to-Peer NetworksFree-riding Resilient Video Streaming in Peer-to-Peer Networks
Free-riding Resilient Video Streaming in Peer-to-Peer Networks
 
Instant video streaming
Instant video streamingInstant video streaming
Instant video streaming
 
Video Streaming over Bluetooth: A Survey
Video Streaming over Bluetooth: A SurveyVideo Streaming over Bluetooth: A Survey
Video Streaming over Bluetooth: A Survey
 
Video Streaming
Video StreamingVideo Streaming
Video Streaming
 
Reaching a Broader Audience
Reaching a Broader AudienceReaching a Broader Audience
Reaching a Broader Audience
 
ADVANCES IN CHANNEL-ADAPTIVE VIDEO STREAMING
ADVANCES IN CHANNEL-ADAPTIVE VIDEO STREAMINGADVANCES IN CHANNEL-ADAPTIVE VIDEO STREAMING
ADVANCES IN CHANNEL-ADAPTIVE VIDEO STREAMING
 
Impact of FEC Overhead on Scalable Video Streaming
Impact of FEC Overhead on Scalable Video StreamingImpact of FEC Overhead on Scalable Video Streaming
Impact of FEC Overhead on Scalable Video Streaming
 
Application Brief
Application BriefApplication Brief
Application Brief
 
Video Streaming Services – Stage 1
Video Streaming Services – Stage 1Video Streaming Services – Stage 1
Video Streaming Services – Stage 1
 
Streaming Video into Second Life
Streaming Video into Second LifeStreaming Video into Second Life
Streaming Video into Second Life
 
Flash Live Video Streaming Software
Flash Live Video Streaming SoftwareFlash Live Video Streaming Software
Flash Live Video Streaming Software
 
Streaming Video Formaten
Streaming Video FormatenStreaming Video Formaten
Streaming Video Formaten
 
iPhone Live Video Streaming Software
iPhone Live Video Streaming SoftwareiPhone Live Video Streaming Software
iPhone Live Video Streaming Software
 
Glow: Video streaming training guide - Firefox
Glow: Video streaming training guide - FirefoxGlow: Video streaming training guide - Firefox
Glow: Video streaming training guide - Firefox
 
Video and Streaming in Nokia Phones v1.0
Video and Streaming in Nokia Phones v1.0Video and Streaming in Nokia Phones v1.0
Video and Streaming in Nokia Phones v1.0
 
Video Streaming across wide area networks
Video Streaming across wide area networksVideo Streaming across wide area networks
Video Streaming across wide area networks
 

Video Conferencing Demo Application for Dialogic® Multimedia ...

  • 1. Small Logo Video Conferencing Application Note Demo Application for Dialogic Multimedia ® Products
  • 2. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® Executive Summary This application note presents a demo application and sample code that shows how the Dialogic Multimedia Products ® can support advanced video features for multimedia applications, such as video transcoding, video transrating and image resizing, and multimedia conferencing. Topics include the design of the demo application, how conferencing and multimedia resources can be used to implement advanced video features, and how to build, configure, and run the demo.
  • 3. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® Table of Contents Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Video Conferencing Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Demo Feature List . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Building the Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Configuring the Demo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Running the Demo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Demo Application Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Main Application Object . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Objects Used to Handle the Devices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Multimedia Conferencing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Multimedia Conference Video Layout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Adding Parties to the Conference. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Image Overlay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Transcoding, Video Transrating, and Image Resizing. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Coder Negotiation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1
  • 4. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® Introduction The Dialogic Multimedia Products support advanced video features, including video transcoding, video transrating and image ® resizing, and multimedia conferencing. The specific products that support these advanced features are Dialogic® Multimedia Software for AdvancedTCA Release 2.0 (MMP Software 2.0 for ATCA) for the Dialogic® Multimedia Platform for AdvancedTCA (MMP for ATCA) and Dialogic® Multimedia Kit Software Release 1.0 for PCIe (MMK Software 1.0 for PCIe), which is part of the Dialogic® Multimedia Kit for PCIe (MMK for PCIe). The two software releases will be collectively referred to as MMP/MMK software throughout this application note. The Dialogic Media Toolkit API (MTK API) is also included in the software release and can be used to control the layout of video ® conferences and manipulate image overlays. This application note describes a product demonstration application using advanced video features supported by MMP/MMK software to implement a video conferencing application. The VideoConfDemo application accepts incoming SIP video calls, plays a greeting video clip to each caller and then places each caller in a video conference. Dual Tone Multi-Frequency (DTMF) signaling can be used to change the conference layout and assignment of callers to conference layout regions. With each change in conference layout and region assignment, the callers are identified in the video output. Information is included in this application note for building, configuring, and running the VideoConfDemo application. In addition, the application design is discussed, showing how the different APIs are used to implement the demo features. The demo application and sample code are available for download (see the For More Information section). Video Conferencing Demo The video conferencing demo is an application that is run using the MMP/MMK software media server and demonstrates some of the advanced video features, including video transcoding, video conferencing, and the MTK API functions. The video conferencing demo uses the following Dialogic APIs: ® •  Global Call API for 3PCC SIP IP call control   •  Conferencing API for multimedia conferencing   •  IP Media Library API for RTP multimedia streaming   •  Device Management API for connections between devices   •  Multimedia API for multimedia plays into a conference   •  Media Toolkit API for video conference layout manipulation   •  Media Toolkit API for video stream image overlay manipulation   MPEG-4 coder support has been introduced into MMP/MMK software, making it possible to use video transcoding to stream in one video format and convert quickly to another video format. Both MPEG-4 and H.263 video coders are supported by the video conferencing demo. For audio, G.711, G.723, G.729, and AMR coders are supported. Video conferencing is the ability to place video-capable callers into a video conference. New video conferencing functions have been added to the Dialogic Conferencing API to support building video conferences and setting the conference layouts. Parties ® attached to a conference are decoded into a common video format. The video inputs to the conference are mixed based on conference layout parameters, and the output of the conference is encoded back to the conference party. Each party receives an output stream encoded with the coder parameters specific to the party. 2
  • 5. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® The MTK API is a collection of libraries added to aid in video manipulation. The video conferencing demo uses the layout builder (lb_) library functions to build the video conferencing layouts and to dynamically place parties into the conferencing regions. The demo also uses the overlay builder library (ob_) functions to add an overlay that briefly displays a caller ID if there is a change in the number of callers in the conference, the assignment of callers to regions in the conference layout, or the conference layout changes. The video conferencing application creates a video conference and waits for SIP IP video callers to call into the MMP/MMK software server to be placed into the video conference. The conference supports a configurable number of calls — up to nine parties in the conference. When the application runs, it can optionally register its extension with a SIP Registrar to allow callers to dial in by extension rather than by IP address. The application supports SIP Video IP endpoints. 3G endpoints can be supported by using the 3G gateway demo included in the MMP/MMK software. The conferencing root frame size is CIF. Audio and video coders are negotiated with each SIP endpoint when the call is established, and transcoding, transrating, and resizing are performed to match each SIP endpoint with the conference. When a SIP video client calls the video conferencing demo, the demo is set to answer the call and can be configured to play a greeting to the caller before placing the caller in the conference, or to place the caller directly into the conference. The conference can be configured to a default conference layout and can present up to four conference layouts to the caller. Conference layouts of 1, 4, 6, and 9 panels are supported. Once in a video conference, a SIP video caller can press “*” to cycle through the configured layouts or press “#” to rotate parties to different regions of the current conference layout. Also, as a configurable option, the video conferencing demo can be configured to start the conference with “virtual caller” files to simulate other parties in a conference. The virtual caller files can be any pre-recorded video and audio file set, and can serve as a video greeting, marketing material, movie file, or video message clip played to party participants. Demo Feature List •  Conference Parties:   - Up to nine parties in a conference •  Supported coders:   - Video coders supported: H.263, MPEG-4 - Audio coders supported: G.711, G.723, G.729, AMR •  Conferencing layouts:   - 1,4,6,9 party layouts supported. A subset of layouts can be configured though .configuration (.config) file. - DTMF control of layout: - “*” - Cycle through configured layouts - “#” - Rotate parties within frames of the current layout •  Options:   - SIP registration - Optional greeting clip before being placed into conference - Optional “virtual callers” from multimedia clips 3
  • 6. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® Building the Demo A makefile is included in the distribution and is used to build the application using the make facility. make options: “make clean” — Removes intermediate object and executable files “make” or “make release” — Builds the release version of the executable “make debug” — Builds a debug version of the executable Configuring the Demo The demo may be configured by entering parameters at the command line or by using a configuration file. The configuration parameters are: config=xxx use configuration file xxx, one line per item default=VideoConfDemo.cfg port=nnn SIP port, default=5060 maxcalls=nnn maximum number of calls, default=4, max=9 virtualcallers=nnn number of virtual callers, default=0, max=8 registrar=n.n.n.n IP address of SIP Registrar, default=10.10.10.10 phonenumber=nnnn phone number to register for, default=1000 greeting=xxxx base filename for greeting/introduction media .pcm and .vid files, default=no greeting clip caller1=xxxx base filename for 1st virtual caller media .pcm and .vid files, default=caller1 caller2=xxxx base filename for 2nd virtual caller media .pcm and .vid files, default=caller2 caller3=xxxx base filename for 3rd virtual caller media .pcm and. vid files, default=caller3 layouts=n,n... allowed layouts - comma delimited, by number of regions 1,4,6 and/or 9, default=1,4,6,9 initiallayout=n initial layout by number of regions 1,4,6 or 9, default=1 A note about virtual caller media clips. One or more virtual caller media clips may be specified, and clips will be assigned to virtual callers in round-robin fashion. For example, three virtual callers are specified, caller1 is assigned “virtual1” and caller2 is assigned “virtual2”. Virtual callers 1 and 3 will use the “virtual1” clip and virtual caller 2 will use the “virtual2” clip. Running the Demo To run the demo, execute ./VideoConfDemo[command line parameters] at the command prompt. The application will start and initialize all the devices, displaying various progress information items in the console. Throughout execution, progress information, including API calls, events, and errors, is displayed in the console and written to the file logfile.txt. 4
  • 7. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® When a SIP video call is made into the MMP for ATCA or the MMK for PCIe, the VideoConfDemo application answers the call. If the optional greeting is configured, the greeting is played to the caller before the caller is placed in the conference (see Figure 1). If the optional greeting is not configured, the caller is placed immediately into the conference. While the greeting clip is being played, the caller can end the greeting clip by pressing any DTMF digit key. Figure 1. An Optional Greeting Being Played The initial conference layout is set by the configuration. Callers are placed in regions of the conference layout based on the order that they called and are assigned a caller ID of “Caller1”, “Caller2”, etc. When a caller is added to the conference, the caller ID for all callers is displayed for five seconds (see Figure 2). The audio from a caller is mixed into the conference audio. If an audio- only call arrives for the conference, the audio is added to the conference and the video for that caller is blank. If virtual callers are configured, the virtual caller clips are played in conference layout regions not used by actual callers up to the configured number of virtual callers. While in the conference, callers may choose to perform three operations: 1. Leave the conference by dropping the call. 2. Change the conference layout by pressing the “*” key. 3. Change the assignment of callers to conference layout regions by pressing the “#” key. Note: When a caller operation is used, a caller ID displays for five seconds. The conference layouts available are set by configuration. When the conference layout is changed by a caller, the conference video output is changed to the next available layout. Callers are arranged in the conference layout regions according to the order that they called. Actual callers are followed by virtual callers. When the caller region assignments are changed by a caller, the assignments are rotated one position within the layout. 5
  • 8. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® Figure 2. Four Callers in a Conference with a Caller ID Displayed for Each Caller To exit the application, enter the letter “q” or “Q” in the console window and press return. The application will attempt to shutdown gracefully. In the event that graceful shutdown is not possible, the application will continue to try and the user will have to abort the application using Ctrl-C. Demo Application Design The VideoConfDemo application is designed to use an asynchronous programming model and to utilize a single thread for all event handling. The software architecture is layered such that the callflow (business) logic is layered on top of Dialogic device ® handling logic. Operation of each callflow and device handling object is controlled by a state object. The main application objects are defined by the GcManager, Conference, SipSession, VirtualCaller, and Configuration classes. The objects used to handle Dialogic devices are defined by the GcSipDevice, IpmDevice, MediaDevice, Overlay, ConferenceBoardDevice, ConferenceDevice, and ConferencePartyDevice classes. Main Application Objects GcManager object — Is responsible for initializing the Dialogic Global Call API, creating the other application objects and ® dispatching events to the appropriate object. Conference object — Is responsible for managing a conference device. SipSession objects — Use the Conference object to add and remove themselves from the conference based on the callflow state, and to change the conference layout and region assignment in response to DTMF input by the caller. SipSession objects are responsible for accepting inbound calls, playing the optional greeting clip and adding themselves to the conference. They use a SipDevice object to handle the Global Call API 3PCC SIP signaling, an IpmDevice object to handle control of the RTP media streams, a MultimediaDevice object to handle playing the optional greeting clip, a conference party device used 6
  • 9. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® Video Conferencing Demo GC Manager Configuration SIP Session Multimedia Conference GC SIP Device IPM Device Device Party Device Conference Virtual Caller Conference Conference Multimedia Conference Board Device Device Device Party Device Figure 3. Software Model to interface to the conference, and an Overlay object to display a caller identifier overlay on the video stream. The SipSession object also performs coder negotiation as part of SIP call setup. The SipSession state objects contain the logic for coordinating the SIP signaling, IpmDevice, MediaDevice, and ConferencePartyDevice objects, and for transitioning from one state to another. VirtualCaller objects — Join the conference at startup and remain in the conference until the application ends. They use a MediaDevice object to continuously play a video clip and a ConferencePartyDevice to interface with the conference. Objects Used to Handle the Devices GcSipDevice objects — Are responsible for SIP call control using the Global Call API in 3PCC mode. The state machine for SIP devices has two layers to separate the device state and the call state. IpmDevice objects — Are responsible for handling the audio and video RTP streams to SIP callers. MediaDevice objects — Are responsible for playing media clips used by both SipSession and VirtualCaller objects. Overlay objects — Are responsible for applying an image overlay to a video stream. SipSession objects use them to display a caller identifier when the conference video output changes layout or visible party region assignment. A single ConferenceBoardDevice object — Is used to create ConferenceDevice and ConferencePartyDevice objects. The ConferenceDevice object is used by the Conference object to control conference attributes. ConferencePartyDevice objects are used by SipSession and VirtualCaller objects to connect to the conference. Multimedia Conferencing The CNF Conferencing API is used to provide conferencing features. The CNF conferencing model includes the concepts of board devices, conference devices, and conference party devices. Using the CNF API for multimedia conferencing requires only that the devices be multimedia devices. CNF devices are designated as multimedia devices by starting out with a multimedia board device. This is accomplished by using a mcxBx device name to open a multimedia conference board device. Because conference devices and conference party devices are opened using the board device, they are also multimedia devices. 7
  • 10. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® The VideoConfDemo CConference and CConferenceDevice classes implement the conferencing logic. The CConference class is responsible for maintaining the lists of conference parties and virtual parties in the conference and for performing the logic necessary to change the layout and visible parties from caller DTMF input. The CConferenceDevice class is responsible for performing the actual API function calls and handling events. Multimedia Conference Video Layout The video layout of the multimedia conference is manipulated using Layout Builder, which is part of the MTK API. The Layout Builder API allows for setting the size, location, and number of video regions in the conference output and for controlling which conference party appears in each. This is accomplished in two steps (see Figure 4): 1. A layout template is created. The template defines the size, location, and number of regions. Some basic properties of the regions are set in the template. 2. The layout template is then applied to the conference and visible parties are assigned to the regions. Application CNF Library MTK Library cnf_OpenConference(cnfBoardDevh) Open conference device CNFEV_OPEN_CONF lb_CreateLayoutTemplate() Create layout template layoutTemplateH Set selection mode lb_GetRegionList(layoutTemplateH, &regionList, &count) for regions result code lb_SetSelectionMode(regionH,eLB_SELECTION_MODE) for(all regions) result code CNF_VIDEO_LAYOUT_INFO layoutInfo; layoutInfo.LayoutSize = ELB_LAYOUT_SIZE_CIF layoutInfo.LayoutHandle = layoutTemplateH; cnf_SetVideoLayout(cnfDevH,layoutInfo) Save layout handle for CNFEV_SET_VIDEO_LAYOUT(layoutH) future changes Figure 4. Sequence Diagram for Setting up the Conference Video Layout 8
  • 11. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® Creating a Conference Layout Template have to be combined using the conference video layout. This requires that the video streams for visible conference parties Specifying Layout Type be assigned to the layout regions (see Figure 5). The lb_CreateLayoutTemplate(type) function returns a handle Video from conference parties are assigned to conference to a layout template for the layout type specified. The MMP/ layout regions by creating a CNF_VISIBLE_PARTY_LIST. MMK software supports 1, 4 region layout types as well as Passing the list as a parameter to the cnf_SetVisiblePartyList() custom layouts. function applies the region-party assignments and makes them Note: Additional predefined layouts, such as 6 and 9 region active. The CNF_VISIBLE_PARTY_LIST contains an array of layout types, are planned for later releases of the MMP/MMK CNF_VISIBLE_PARTY_INFO structures. The CNF_VISIBLE_ software. PARTY_INFO structure requires a handle to a conference party and a handle to a layout region. The application maintains a The layout template is then used to set region properties and list of parties that have been added to the conference, and a then applied to the conference. list of region handles is obtained by using the Layout Builder Setting Region Properties lb_GetRegionList() function. After the layout template has been created, properties can Image Overlay be set for each region in the layout by iterating over a list of The VideoConfDemo application includes a feature that displays the regions obtained using the lb_GetRegionList() function. caller identifiers for each party for five seconds when a caller The VideoConfDemo application can explicitly determine joins or leaves the conference, when the conference layout is which conference party is displayed in each region. This changed, or when the visible parties are rotated within the layout. application is enabled by calling the lb_SetSelectionMode (regionHandle, mode) function for each region with mode set The caller identifier is an image file applied as an overlay to the to eLB_SELECTION_MODE_USER_SELECT. The default mode video stream coming from the caller into the conference. is to have the region automatically set using the active talker algorithm. Image overlays are created using the Overlay Builder, Stream Manipulation, and other MTK APIs. The VideoConfDemo Applying the Conference Layout Template COverlay class contains the API calls to create an overlay and apply it to a video stream. The SipSession objects create an The conference layout template is applied to the conference Overlay object and use it to add the caller identifier image using the cnf_SetVideoLayout() function. The completion event overlay to the caller’s video stream going to the conference. for this function contains a handle for the active layout. This handle is different than the handle for the layout template. An image overlay is applied by creating an image overlay Subsequent changes to the layout template can be applied to template and then applying the overlay template to a video the conference by the calling cnf_SetVideoLayout() function stream of a device. The image overlay template is created again. first by using the mtk_CreateImageTemplate() function. JPEG Adding Parties to the Conference files are used by the VideoConfDemo application for the image source so the mtk_CreateMediaFileTemplate() function When a party is added to a conference using the cnf_AddParty() is used to specify the JPEG file. A bounding frame for the function, the audio and video streams are available for mixing into the conference output. The audio of all conference parties image is set using a frame template created using the mtk_ is summed to create the output. The active talker algorithm can CreateFrameTemplate() function, and its properties are set with be enabled to limit the audio summation to the three loudest the mtk_SetFramePositionOverlay() and mtk_SetFrameSize() talkers. The video from the conference parties cannot just be functions. The frame template is applied to the overlay template summed into an output stream; instead, the individual streams using the ob_SetOverlayBoundingFrame() function. 9
  • 12. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® Application CNF Library MTK Library cnf_AddParty( cnfDevh, &cnfPartyInfo) Add party to conference device CNFEV_ADD_PARTY lb_GetRegionList(layoutH, &regionList, &count) Set display mode for regions result code lb_SetDisplayMode(regionH, displayMode) for(all regions) result code cnf_SetVideoLayout(cnfDevH, &layoutH) Update the layout CNFEV_SET_VIDEO_LAYOUT(layoutH) Build visible parties list CNF_VISIBLE_PARTY_INFO visiblePartyInfo[N]; for (all parties) { visiblePartyInfo[n].PartyHandle=cnfPartyH; visiblePartyInfo[n].RegionHandle=regionH; } CNF_VISIBLE_PARTY_LIST visiblePartyList; visiblePartyList=partyCount; visiblePartyList=partyInfoList; cnf_SetVisiblePartyList(cnfDevh, &visiblePartyList) Set visible parties CNFEV_SET_VISABLE_PARTY_LIST Figure 5. Sequence Diagram for Adding a Party to the Video Conference After the overlay template is created and all properties have been set, the overlay template is applied to the video stream using the sm_AddOverlays() function (used for stream manipulation). Figure 6 is an example of a caller ID used as an image overlay. For additional information and a description of how to use image overlays, refer to Using Dialogic Media Toolkit API for Image ® Overlay on Video Streams, and for information on converting text into images that can be used by the image overlay API, refer to Using Dialogic Media Toolkit API and ImageMagick for Image Overlay on Video Streams (see the For More Information section). ® Transcoding, Video Transrating, and Image Resizing Each SIP caller may use a set of supported coders and coder parameters. The coders and parameters are detected as part of call setup coder negotiation, and the IPM device streams are configured appropriately when the RTP stream is started. The Multimedia devices used for playing clips are configured to use coders appropriate to the media files being played. As the coders used by the callers and the media files may be different, transcoding will be required. Also, coder parameters such as video frame rate and resolution format may be different, so video transrating and image resizing may be required. 10
  • 13. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® Figure 6. Caller ID as an Image Overlay These three functions are performed by the device management system when two devices are connected using the dev_PortConnect() function. No explicit API for enabling transcoding, transrating, and resizing exists, but rather they are automatically performed as a result of using the dev_PortConnect() function to join two multimedia streams. The actual transcoding, transrating, and resizing operations are determined by the media file, MM, IPM, and CNF device settings. Coder Negotiation Coder negotiation is performed when an inbound call is offered. The coders proposed in the SIP INVITE message SDP are matched against the local capabilities. If a match is found, the coder resource is reserved and the call is answered. If a match cannot be found, the inbound call is rejected. A set of classes is used to create coder objects for both the offer SDP and local capabilities. Each supported coder class has the logic to obtain coder-specific parameters from the SIP INVITE message SDP as well as from IPM_AUDIO_CODER_INFO and IPM_VIDEO_CODER_INFO local capabilities structures initialized for the supported coders. The classes also have the logic to compare two coders and to export the SDP for a matched coder. When an inbound call is offered, the VideoConfDemo SipSession object builds a remote capabilities list and a local capabilities list, and then finds the first match between the two lists. If a match is found and a coder resource can be reserved, then the call is accepted. Otherwise, the call is rejected. Summary The video conferencing demo shows how the MMP/MMK software can support advanced video features for multimedia applications, such as video transcoding, video transrating and image resizing, and multimedia conferencing. This application note also described the features of the VideoConfDemo application, and provided information on how to build, configure, and run the VideoConfDemo application. The high-level design of the application was presented, as was a description of how conferencing and multimedia resources can be used to implement the video features of the application. 11
  • 14. Application Note Video Conferencing Demo Application for Dialogic Multimedia Products ® References A Zip file containing the demo application and sample code application can be downloaded at http://www.dialogic.com/goto/?11167 Using Dialogic Media Toolkit API for Image Overlay on Video Streams — ® http://www.dialogic.com/goto/?11011 Using Dialogic Media Toolkit API and ImageMagick for Image Overlay on Video Streams — ® http://www.dialogic.com/goto/?11033-01 Dialogic Media Toolkit API Library Reference — ® http://www.dialogic.com/manuals/docs/media_toolkit_api_v2.pdf Dialogic Multimedia API Library Reference — ® http://www.dialogic.com/manuals/docs/multimedia_api_v1.pdf Dialogic Multimedia API Programming Guide — ® http://www.dialogic.com/manuals/docs/multimedia_programming_lin_v2.pdf Dialogic IP Media Library API Library Reference — ® http://www.dialogic.com/manuals/docs/ip_media_api_hmp_v8.pdf Dialogic IP Media Library API Programming Guide — ® http://www.dialogic.com/manuals/docs/ip_media_programming_hmp_v3.pdf Dialogic Conferencing API Library Reference — ® http://www.dialogic.com/manuals/docs/conferencing_api_v2.pdf Dialogic Conferencing API Programming Guide — ® http://www.dialogic.com/manuals/docs/conferencing_programming_v2.pdf Dialogic Device Management API Library Reference — ® http://www.dialogic.com/manuals/docs/device_mgmt_api_v7.pdf Dialogic Global Call API Library Reference — ® http://www.dialogic.com/manuals/docs/globalcall_api_hmp_v4.pdf Dialogic Global Call API Programming Guide — ® http://www.dialogic.com/manuals/docs/globalcall_programming_hmp_v4.pdf Dialogic Global Call IP Technology Guide — ® http://www.dialogic.com/manuals/docs/globalcall_for_ip_hmp_v10.pdf Kapanga Softphone information — http://www.kapanga.net 12
  • 15. Small Logo www.dialogic.com Dialogic Corporation 9800 Cavendish Blvd., 5th floor Montreal, Quebec CANADA H4M 2V9 INFORMATION IN THIS DOCUMENT IS PROVIDED IN CONNECTION WITH PRODUCTS OF DIALOGIC CORPORATION OR ITS SUBSIDIARIES (“DIALOGIC”). NO LICENSE, EXPRESS OR IMPLIED, BY ESTOPPEL OR OTHERWISE, TO ANY INTELLECTUAL PROPERTY RIGHTS IS GRANTED BY THIS DOCUMENT. EXCEPT AS PROVIDED IN A SIGNED AGREEMENT BETWEEN YOU AND DIALOGIC, DIALOGIC ASSUMES NO LIABILITY WHATSOEVER, AND DIALOGIC DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY, RELATING TO SALE AND/ OR USE OF DIALOGIC® PRODUCTS INCLUDING LIABILITY OR WARRANTIES RELATING TO FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR INFRINGEMENT OF ANY INTELLECTUAL PROPERTY RIGHT OF A THIRD PARTY. Dialogic products are not intended for use in medical, life saving, life sustaining, critical control or safety systems, or in nuclear facility applications. Dialogic may make changes to specifications, product descriptions, and plans at any time, without notice. Dialogic is a registered trademark of Dialogic Corporation. Dialogic’s trademarks may be used publicly only with permission from Dialogic. Such permission may only be granted by Dialogic’s legal department at 9800 Cavendish Blvd., 5th Floor, Montreal, Quebec, Canada H4M 2V9. Any authorized use of Dialogic’s trademarks will be subject to full respect of the trademark guidelines published by Dialogic from time to time and any use of Dialogic’s trademarks requires proper acknowledgement. The names of actual companies and products mentioned herein are the trademarks of their respective owners. Dialogic encourages all users of its products to procure all necessary intellectual property licenses required to implement their concepts or applications, which licenses may vary from country to country. Any use case(s) shown and/or described herein represent one or more examples of the various ways, scenarios or environments in which Dialogic products can be used. Such use case(s) are non-limiting and do not represent recommendations of Dialogic as to whether or how to use Dialogic products. Using the AMR-NB resource in connection with certain Dialogic® products does not grant the right to practice the AMR-NB standard. To seek a patent license agreement to practice the standard, contact the VoiceAge Corporation at http://www.voiceage.com/licensing.php. Copyright © 2008 Dialogic Corporation All rights reserved. 09/08 111091-01