Dialogic Support Helpweb
Dialogic® Host Media Processing (HMP) Software
Modifying ISDN Variants At Runtime On Dialogic® DM/IP and Dialogic® DM3 Media Boards
Summary:
How to modify ISDN protocol variants at runtime on Dialogic® DM/IP Boards and Dialogic® DM3 Media Boards' Spans
Abstract:
This technote outlines how to change ISDN protocol variants or types at runtime on Dialogic® DNI300 and DMV600 and DMV1200 boards. This can be accomplished for any such Dialogic® board that has already downloaded ISDN protocols. A sample application is also attached to this technote.
Examples of Dialogic® DM/IP Boards are as follows: (Note: Can be used on Dialogic® Host Media Processing (HMP) Software Release 2.0 for Windows® and Dialogic® HMP Software Release 3.0 for Windows®:
- Dialogic® DNI300TEPHMP Digital Network Interface Board
- Dialogic® DNI601TEPHMP Digital Network Interface Board
- Dialogic® DNI1200TEPHMP Digital Network Interface Board
- Dialogic® DMV600BTEP Media Board
- Dialogic® DMV1200BTEP Media Board
ISDN variants are different flavors of ISDN protocols, available for each span. For example, a DNI1200TEPHMP board has 5ESS protocols for each of its 4 spans at download time. If an application is programmed properly, it can use the API calls outlined below to change the protocols, where all 4 spans will run NI2 without downloading again.
This is done via a gc_SetConfigData() call made on a digital board device (e.g. dtiB1) after an instance of a GC_PARM_BLK is filled it with the right properties.
Feature tested satisfactorily on System Release 6.0 PCI Windows SU152 and Dialogic® Host Media Processing Software Release 2.0 for Windows® SU140. It was included in prior builds however, some issues were present which needed to be adjusted before this feature was fully usable.
How to Change ISDN Variants:
Changing ISDN variants at runtime can be done on the spans of the boards specified above via the gc_SetConfigData() on a digital board device handle.
The parameters provided to the gc_SetConfigData()function call are the following:
- target_type = GCTGT_CCLIB_NETIF
- target_id = the trunk line device handle, as obtained from gc_OpenEx( ) with a devicename string of “:N_dtiBx:P...”
- target_datap = GC_PARM_BLKP parameter pointer, as constructed by the utility function gc_util_insert_parm_ref( )
- time_out = time interval (in seconds) during which the target object must be updated with the data. If the interval is exceeded, the update request is ignored. This parameter is supported in synchronous mode only, and it is ignored when set to 0.
- update_cond = GCUPDATE_IMMEDIATE
- request_idp = pointer to the location for storing the request ID
- mode = EV_ASYNC for asynchronous execution or EV_SYNC for synchronous execution
The GC_PARM_BLK instance can be filled out via the gc_util_insert_parm_ref( ) function call with the following parameters:
- parm_blkpp = pointer to the address of a valid GC_PARM_BLK structure where the parameter and value are to be inserted
- setID = GCSET_PROTOCOL
- parmID = GCPARM_PROTOCOL_NAME
- data_size = strlen(“<protocol_name>”), for example strlen(“4ess”)
- data = “<protocol_name>”, for example, “4ess” (a null-terminated string). For ISDN protocols, the protocol name must be one of the supported protocols listed in the CONFIG file that corresponds to the PCD/FCD file that is downloaded. Only protocols of the same line type can be selected, that is, if the trunk is of line type E1, then only a protocol variant that is valid for E1 can be selected.
- GCEV_SETCONFIGDATA to indicate that the request to dynamically change the protocol has been successfully initiated.
- GCEV_SETCONFIGDATA_FAIL to indicate that the request to change the protocol has failed. More information is available from the GC_RTCM_EVTDATA structure associated with the event.
- Make sure the protocol name string provided as a parameter to gc_util_insert_parm_ref( ) in the data field is set in lowercase -- meaning "4ess" instead of "4ESS."
- The ISDN protocol name must be one of the supported protocols listed in the CONFIG file that corresponds to the PCD/FCD file that is downloaded. Only protocols of the same line type can be selected, that is, if the trunk is of line type E1, then only a protocol variant that is valid for E1 can be selected.
Here is an excerpt from the gnetworkonly_hmpqsb_4_ni2.config file (DMV1200BTEP board's file when all four spans were downloaded for NI2):
!
! ISDN Protocol variant definitions
!
Variant VariantFormat 2 ! ISDN format (isdndefs.h)
Variant ProtocolType 1 ! 4ESS,NI2=1, 5ESS=2, DMS=3, NTT=4, NET5=7, DASS2=8, DPNSS=9 , QSIGE1=10, QSIGT1=11
Variant InterCallDelay 1000 ! msecs. Time to impose between outbound calls.
Variant DisconnectTimeout 100 ! msecs. Delay between Proceeding and alert/connect.
Sample code:
The sample code provided is called ISDNVariantChange and it is a Visual C++ 6.0 Project. It is compiled and linked via GlobalCall and SRL libraries from Dialogic HMP Software 2.0 SU140.
If using this release, an executable version is already included in the Release directory or if needed, this project can be recompiled and linked in a later version. It can be run via the command line with the following parameters:
ISDNVariantChange <digital board device> <protocol name>
e.g.
If dtiB1 was originally downloaded with NI2 protocol, it can be changed to 4ESS via the following:
ISDNVariantChange dtiB1 4ess
If successful, the application will receive a GCEV_SETCONFIDATA event.
If unsuccessful, the application will receive a GCEV_SETCONFIGDATAFAIL event.
Here is a sample run with output:
"E:\Technote Apps\ISDNVariantChange\Release>isdnvariantchange dtiB5 ni2
Excellent
Your parameters are as follows:
Span = dtiB5 and new protocol = ni2
GC_APP : Call Control libraries status -
GC_ICAPI_LIB - available
GC_ISDN_LIB - available
GC_ANAPI_LIB - available
GC_PDKRT_LIB - available
GC_SS7_LIB - is not available for use
GC_DM3CC_LIB - available
GC_IPM_LIB - available
GC_H3R_LIB - available
GC_CUSTOM1_LIB - configured
GC_CUSTOM2_LIB - configured
gc_Start succeeded
Enabled handler for GC events
gc_OpenEx succeeded
Successfully called gc_util_insert_parm_ref for protocol = ni2
Successfully called gc_SetConfigData to set protcol variant to ni2
Waiting for completion event....................................................
................................................................................
Received GCEV_SETCONFIGDATA event"
Dialogic® Product List


