Hi,
I'm using function gc_SetInfoElem() to set CLIR while making an outbound call. But everytime I'm receiving an error:
gc_SetInfoElem() on device handle: 0x3f, GC ErrorValue: 0x89 - CCLIB specific, CCLibID: 6 - GC_DM3CC_LIB, CC ErrorValue : 0x 8016 - Internal error: IE size mismatch
What I'm doing wrong?
My code is:
IE_BLK ieblk;
GC_IE_BLK gc_ieblk;
GC_INFO gc_error_info;
char my_num[16];
sprintf(my_num,"123456789");
ieblk.length = strlen(my_num) + 5;
ieblk.data[0] = CALLER_NUMBER_IE;
ieblk.data[1] = strlen(my_num)+2;
ieblk.data[2] = ISDN_NUMB_PLAN;
ieblk.data[3] = (unsigned char)(0x80 | ISDN_PI_RESTRICT << 5 | USER_PROVIDED);
strcpy(&ieblk.data[4], my_num);
gc_ieblk.gclib = NULL;
gc_ieblk.cclib = &ieblk;
if (gc_SetInfoElem(dtihdl, &gc_ieblk) < 0)
{
gc_ErrorInfo(&gc_error_info);
printf("Error: gc_SetInfoElem() on device handle: 0x%lx, GC ErrorValue: 0x%hx - %s, CCLibID: %i - %s, CC ErrorValue : 0x % lx - %s\n",
dtihdl, gc_error_info.gcValue, gc_error_info.gcMsg,
gc_error_info.ccLibId, gc_error_info.ccLibName,
gc_error_info.ccValue, gc_error_info.ccMsg);
}