Dialogic Media Gateway - Dialogic HMP Software with Dialogic Media Gateways and T.38 Fax

Issue Description

If using a Dialogic 1000 Media Gateway (DMG 1000) or a Dialogic 2000 Media Gateway (DMG 2000) and Dialogic Host Media Processing (HMP) Software to send or receive a fax, DMG 1000 or DMG 2000 configurations changes are required to disable digit relay mode. 

By default, the DMG 1000 or DMG 2000 will send an RFC2833 packet notifying the Dialogic HMP Software system to switch to T.38 mode. Dialogic HMP Software does not start a fax session upon receiving a fax CNG tone or re-INVITE; Dialogic HMP Software only provides notifications of such events, and it is solely an application decision whether to start a fax session.

Solution Summary

The following section describes the required DMG 1000 or DMG 2000 configuration changes and  Dialogic HMP Software API procedure to correctly send or receive a fax.

DMG 1000 or DMG 2000 Configuration

  1. Connect to the DMG 1000 or DMG 2000 using the web interface 

Note: Each DMG 1000 or DMG 2000 is initially configured with a default IP address of 10.12.13.74. This allows the unit to be configured using a web browser by pointing the web browser to the default IP address. 

  1. When prompted, enter the username and password for the admin user and press <enter> 

NOTE

 The default administrator password is IpodAdmin

 

  1. Once logged in, navigate using the left side menu to 'Configuration' and click 'Gateway'

  2. Navigate to VoIP --> Media menu (v6.x) OR Gateway --> Gateway Advanced (v5.x). 

Change the RTP Fax/Modem Tone Relay Mode to: IN-BAND

  1. Be sure to save changes before exiting 

Dialogic HMP Software API Overview

The following overview summarizes the steps for transmitting and receiving faxes using Dialogic HMP Software. Note that the Dialogic HMP Software application must be configured in “Manual” mode to control the association and disassociation of media and T.38 Fax devices during each call by calling gc_SetConfigData(IP_MANUAL_MODE) before each gc_OpenEx( ).

For the purposes of this overview, it is assumed that the fax is being sent between two Dialogic HMP Software installations.

The descriptions are therefore in two parts: 

  • the actions taken at the sending end of the connection (near end)

  • the actions taken at the receiving end of the connection (far end)

Two Dialogic API libraries are used  for T.38

  • Dialogic Global Call API functions and events 

          o Call control for voice and T.38 Fax requests or notifications 

  • Dialogic Fax API - this is the same API as used for T.30 fax handling(i.e., fx_XXX). 

 

There are two ways in which T.38 faxes can be sent or received:

  1. Send/Receive Fax on an established voice session. 

          o The call is already set up for voice. 
          o Needs to switch over to Fax session. 

  1. Send/Receive Fax without an established voice session. 

          o Before the call, fax mode is set with gc_MakeCall (), indicating that the media type is 'fax'. 
          o After the call connects, the media session automatically becomes 'fax'. 


Dialogic HMP Software API Overview – Voice Session established 

  • After call connection has been established, the near end (sending side) initiates a T.38 session with: 

          o gc_SetUserInfo( ) with IPSET_FOIP set id and IPPARM_T38_CONNECT parm id. 
          o gc_Extension( ) with IPSET_SWITCH_CODEC set id and IPPARM_T38_INITIATE parm id. 
          o GCEV_EXTENSION is returned indicating completion of gc_Extension( ) function. 

  • Once the far end (receiving side) accepts the request to switch over to T.38 Fax session, the sending side receives: 

          o GCEV_EXTENSION event with IPSET_SWITCH_CODEC set id and IPPARM_READY parm id. 

  • The near end application then sends the fax – using the Dialogic Fax fx_xxx API. 

  • The far end receives the request to switch over T.38 session with: 

          o GCEV_EXTENSION event and IPSET_SWITCH_CODEC set id and IPPARM_T38_REQUEST parm id. 

  • The far end accepts the request to switch over to T.38 Fax session with: 

          o gc_SetUserInfo() with IPSET_FOIP set id and IPPARM_T38_CONNECT parm id. 
          o gc_Extension() with IPSET_SWITCH_CODEC set id and IPPARM_T38_ACCEPT parm id. 
          o GCEV_EXTENSION indicating returning of gc_Extension( ) function. 

  • Once successful completion of switching over to T.38 Fax session has occurred, the far end receives: 

          o GCEV_EXTENSION event with IPSET_SWITCH_CODEC set id and IPPARM_READY parm id. 

  • The far end application receives fax with Fax fx_xxx API 

Dialogic HMP Software API Overview – NO Voice Session established 

  • Before making the outbound call, the near end application sets T.38 capabilities: 

          o gc_SetUserInfo( ) with GCSET_CHAN_CAPABILITY set id and IPPARM_LOCAL_CAPABILITY parm id and GCCAP_DATA_t38UDPFax as parm value. 
          o gc_SetUserInfo( ) with IPSET_FOIP set id and IPPARM_T38_CONNECT parm id. 

  • After making the call with T.38 as media type connection, the near end application sends the fax using the Dialogic Fax fx_xxx API

  • The far end receives the incoming call with T.38 Fax: 

          o Notification is done by the GCEV_OFFERED event 
          o IPPARM_T38_OFFERED parm id in event data. 

  • The far end application answers the call with gc_AnswerCall( ) 

          o Waits for connection with GCEV_ANSWERED event 

  • After the call is connected, the application receives the fax with the fx_xxx API

Technical Discussion


NOTE

When a DMG 1000 or DMG 2000 is configured to disable digit relay mode and the codecs are negotiated with the DMG 1000 or DMG 2000, the gateway will be restricted to using low bit rate codecs.  Using an enhanced RTP coder will cause digit detection issues and, as a result, digits will fail to pass to the circuit side. Deleting the FaxCNG Call Progress Tone Event allows digit relay mode to be enabled, and, therefore, both a low bit rate codec and enhanced codec will work. 

Glossary of Acronyms / Terms 

T.38 – Protocol for transmitting and receiving Fax media over IP.

 

Related content