PREV TOC HOME INDEX NEXT


3.4.19. gc_Start( )

The gc_Start( ) function is used to specify the number of IPT boards to create. See Section 2.2.1, IPT Board Devices for the meaning of an IPT board device. The number of IPT board devices is specified in the IPCCLIB_START_DATA structure; the maximum is 8. See Section 7.2, IPCCLIB_START_DATA for more information.

Note: When using the SIP protocol, multiple IPT boards are not currently supported.

The IPCCLIB_START_DATA structure contains a pointer to an IP_VIRTBOARD structure for each IPT board device that contains board information such as:

See Section 7.11, IP_VIRTBOARD for more information.

The total number of IPT devices is not necessarily the number of IPT devices used for H.323 calls plus the number of IPT devices used for SIP calls. Each IPT device can be used for both H.323 and SIP. If there are 2016 devices available (total_max_calls=2016, three Intel® NetStructure IPT boards), you can specify that all 2016 devices can be used for both H.323 calls (max_h323=2016) and SIP (max_sip=2016), or half are used for H.323 only (max_h323=1008) and half are used for SIP only (max_sip=1008), or any other such combination.

The default value for the maximum number of IPT devices is 120, but this can be set to a value up to 2016. See Section 7.11, IP_VIRTBOARD for more information. The local IP address for each IPT board device is a parameter of type IPADDR in the IP_VIRTBOARD structure. See Section 7.1, IPADDR for more information.

Notes:
1. When using Intel® NetStructure IPT boards that have higher numbers of IP resources, it is important to remember to change the default maximum number of IPT devices (120) to take advantage of the larger number of IP resources.
2. The GC_LIB_START structure must include both the GC_H3R_LIB and GC_IPM_LIB libraries since there are inter-dependencies.
3. The maximum value of the num_boards field is 8.
4. When using the H.323 stack, the maximum number of simultaneous calls recommended is 240.

The following code example shows how to create and populate an IPCCLIB_START_DATA structure when using the gc_Start( ) function.

    /* only 1 board is currently supported */
    #define BOARDS_NUM   1 
    
    /* initialize start parameters */
    IPCCLIB_START_DATA cclibStartData;
    memset(&cclibStartData,0,sizeof(IPCCLIB_START_DATA)); 
    
    IP_VIRTBOARD virtBoards[BOARDS_NUM];
    memset(virtBoards,0,sizeof(IP_VIRTBOARD)*BOARDS_NUM);
    
    cclibStartData.version     = 0x0100;   // must be set to 0x0100
    cclibStartData.delimiter   = ',';
    cclibStartData.num_boards  = BOARDS_NUM;
    cclibStartData.board_list  = virtBoards;
    
    virtBoards[0].version = 0x0100; 
    virtBoards[0].total_max_calls = IP_CFG_MAX_AVAILABLE_CALLS;
    virtBoards[0].h323_max_calls = IP_CFG_MAX_AVAILABLE_CALLS;
    virtBoards[0].sip_max_calls = IP_CFG_MAX_AVAILABLE_CALLS;
    virtBoards[0].localIP.ip_ver = IPVER4;    // must be set to IPVER4
    virtBoards[0].localIP.u_ipaddr.ipv4 = IP_CFG_DEFAULT;
    virtBoards[0].h323_signaling_port = IP_CFG_DEFAULT;
    virtBoards[0].sip_signaling_port = IP_CFG_DEFAULT;
    virtBoards[0].reserved = NULL;            // must be set to NULL
    
    CCLIB_START_STRUCT cclibStartStruct[] = {
        {"GC_IPM_LIB", NULL},
        {"GC_H3R_LIB", &cclibStartData}
    };
    
    GC_START_STRUCT gcStartStruct;
    gcStartStruct.cclib_list = cclibStartStruct;
    gcStartStruct.num_cclibs = 2;
    int rc = gc_Start(&gcStartStruct);
    if(GC_SUCCESS != rc) 
    {
        // handle the error
    } 

Some variations on the code above are as follows:

    /* open 120 IPT devices, 120 H323 calls, 120 SIP calls */
        virtBoards[0].total_max_calls = IP_CFG_DEFAULT;
        virtBoards[0].h323_max_calls = IP_CFG_DEFAULT;
        virtBoards[0].sip_max_calls = IP_CFG_DEFAULT;
    
    /* open 2016 IPT devices, 2016 H323 calls, 2016 SIP calls */
        virtBoards[0].total_max_calls = 2016;
        virtBoards[0].h323_max_calls = 2016;
        virtBoards[0].sip_max_calls = 2016;
    
    /* open 2016 IPT devices, 2016 H323 calls, no SIP calls */
        virtBoards[0].total_max_calls = 2016;
        virtBoards[0].h323_max_calls = IP_CFG_MAX_AVAILABLE_CALLS;
        virtBoards[0].sip_max_calls = IP_CFG_NO_CALLS;
    
    /* open 2016 IPT devices, 1008 H323 calls, 1008 SIP calls */
        virtBoards[0].total_max_calls = 2016;
        virtBoards[0].h323_max_calls = 1008;
        virtBoards[0].sip_max_calls = 1008; 

The following #defines have been provided as a convenience to the application developer:

The following restrictions apply when populating the IPCCLIB_START_DATA structure. The gc_Start( ) function will fail if these restrictions are not observed.


PREV TOC HOME INDEX NEXT

Click here to contact Telecom Support Resources

Copyright 2003, Intel Corporation
All rights reserved
This page generated February, 2003