Dialogic Support Helpweb
Dialogic® Multimedia Platform for AdvancedTCA
M3G Device Connections
Using dev_PortConnect() with the 3G-324M, Multimedia and IP media Library APIsProblem:
Connecting a 3G device to a media streaming device can be a confusing process. The simple CTBus xx_Listen() call, used by many Dialogic® technologies has been replaced in some cases by dev_Connect(). For a list of valid dev_Connect() devices, please see
Device Management API Library Reference for Dialogic® Host Media Processing Software Release 3.1LIN and
Device Management API Library Reference for Dialogic® Multimedia Software for AdvancedTCA Release 1.1
In the case of the M3G API, a third connection mechanism, dev_PortConnect(), is used.
This technote explains how to use dev_PortConnect() to connect 3G devices to Multimedia (MM) and IP Media Library (IPML) devices. Note that other dev_PortConnect() interconnections between these device types are also possible. This includes 3G-3G, which could be used in a loopback situation.
Solution:
The first thing to remember is that a multimedia device consists of both an audio and video component. So, each of the operations have to be done, separately, for each component.
The end result of a successful full-duplex connection should look like this:
The transmit packet stream of media (MM/IPML) device should be connected to the receive side of the 3G device. Conversely, the transmit packet stream of the 3G device should be connected to the receive side of the media device.
Before any connections are done, all devices must, of course, be open. Then, DM_PORT_INFO structs for all ports involved must be filled. This is done by issuing the following two calls on both devices involved in the connection:
These calls are asynchronous, so the info arrives with the successful
completion event (DMEV_GET_TX_PORT_INFO or DMEV_GET_RX_PORT_INFO) from the call.
At this point, the port information must be parsed (between audio/video and transmit/receive) and saved for later use with dev_PortConnect():
Once the port info has been acquired, the port connects can be done. All devices (MM, 3G, IPML) use dev_PortConnect() in a similar fashion, so only one example will be given here. In this case, a 3G device's transmit ports are being connected to an IPML device's receive ports:
Remember, the code above only connects one audio/video set of transmit ports (3G) to one set of receive ports. (IPML) This results in a half-duplex connection from 3G to IPML. A similar connection sequence must happen with transmit ports from IPML and receive ports from 3G. In this case, the device handle used for the dev_PortConnect() call will be the IPML device handle. This will usually result in a pair of symmetric calls to connection methods similar to these:
See the M3G-SIP gateway demo for a full example of the use of dev_PortConnect() with IPML. The demo can be found in the release distribution in the Demos directory /usr/dialogic/demos/3GDemo/m3g-sip_gateway. See also Device Management API Library Reference for both Dialogic® Multimedia Software for AdvancedTCA Release 1.1 and Dialogic® Host Media Processing Software Release 3.1LIN, for documentation on dev_PortConnect(). (See Related Documentation section below)
Related Documentation
Device Management API Library Reference for Dialogic® Host Media Processing Software Release 3.1LIN
Device Management API Library Reference for Dialogic® Multimedia Software for AdvancedTCA Release 1.1
Glossary
IPML IP Media Library
In the case of the M3G API, a third connection mechanism, dev_PortConnect(), is used.
This technote explains how to use dev_PortConnect() to connect 3G devices to Multimedia (MM) and IP Media Library (IPML) devices. Note that other dev_PortConnect() interconnections between these device types are also possible. This includes 3G-3G, which could be used in a loopback situation.
Solution:
The first thing to remember is that a multimedia device consists of both an audio and video component. So, each of the operations have to be done, separately, for each component.
The end result of a successful full-duplex connection should look like this:
| 3G | MM/IPML |
| Audio | Tx --------------- | ----------------- Rx | Rx --------------- | ----------------- Tx |
| Video | |
| Tx --------------- | ----------------- Rx |
| Rx --------------- | ----------------- Tx |
The transmit packet stream of media (MM/IPML) device should be connected to the receive side of the 3G device. Conversely, the transmit packet stream of the 3G device should be connected to the receive side of the media device.
Before any connections are done, all devices must, of course, be open. Then, DM_PORT_INFO structs for all ports involved must be filled. This is done by issuing the following two calls on both devices involved in the connection:
if ( dev_GetTransmitPortInfo(IPMHandle, this) != DEV_SUCCESS ) |
These calls are asynchronous, so the info arrives with the successful
completion event (DMEV_GET_TX_PORT_INFO or DMEV_GET_RX_PORT_INFO) from the call.
At this point, the port information must be parsed (between audio/video and transmit/receive) and saved for later use with dev_PortConnect():
DM_PORT_INFO_LIST* pPortInfoList |
Once the port info has been acquired, the port connects can be done. All devices (MM, 3G, IPML) use dev_PortConnect() in a similar fashion, so only one example will be given here. In this case, a 3G device's transmit ports are being connected to an IPML device's receive ports:
// Assume these all contain valid port info |
Remember, the code above only connects one audio/video set of transmit ports (3G) to one set of receive ports. (IPML) This results in a half-duplex connection from 3G to IPML. A similar connection sequence must happen with transmit ports from IPML and receive ports from 3G. In this case, the device handle used for the dev_PortConnect() call will be the IPML device handle. This will usually result in a pair of symmetric calls to connection methods similar to these:
p3GObject->DoPortConnect(pIPMLObject->GetAudioRxPortInfo(), pIPMLObject->GetVideoRxPortInfo()); |
See the M3G-SIP gateway demo for a full example of the use of dev_PortConnect() with IPML. The demo can be found in the release distribution in the Demos directory /usr/dialogic/demos/3GDemo/m3g-sip_gateway. See also Device Management API Library Reference for both Dialogic® Multimedia Software for AdvancedTCA Release 1.1 and Dialogic® Host Media Processing Software Release 3.1LIN, for documentation on dev_PortConnect(). (See Related Documentation section below)
Related Documentation
Device Management API Library Reference for Dialogic® Host Media Processing Software Release 3.1LIN
Device Management API Library Reference for Dialogic® Multimedia Software for AdvancedTCA Release 1.1
Glossary
IPML IP Media Library
Feedback


