Dialogic Dialogic Global Call IP IP Phone User Manual


 
Dialogic
®
Global Call IP Technology Guide — November 2007 447
Dialogic Corporation
8.3.4 gc_AnswerCall( ) Variances for IP
This function is only supported in asynchronous mode.
The rings parameter is ignored.
Coders can be set in advance of using gc_AnswerCall( ) by using gc_SetUserInfo( ). See
Section 8.3.26, “gc_SetUserInfo( ) Variances for IP”, on page 487 for more information.
The following code example shows how to use the gc_SetUserInfo( ) function to set coder
information before calls are answered using gc_AnswerCall( ).
/* Specifying coders before answering calls */
LINEDEV ldev;
CRN crn;
GC_PARM_BLK *target_datap;
/* Define Coder */
IP_CAPABILITY a_DefaultCapability;
gc_OpenEx(&ldev, ":N_iptB1T1:M_ipmB1C1:P_H323", EV_ASYNC, 0);
/* wait for GCEV_OPENEX event ... */
/* Set default coder for this ldev */
target_datap = NULL;
memset(&a_DefaultCapability,0,sizeof(IP_CAPABILITY));
a_DefaultCapability.capability = GCCAP_AUDIO_g7231_5_3k;
a_DefaultCapability.direction = IP_CAP_DIR_LCLTRANSMIT;
a_DefaultCapability.type = GCCAPTYPE_AUDIO;
a_DefaultCapability.extra.audio.frames_per_pkt = 1;
a_DefaultCapability.extra.audio.VAD = GCPV_DISABLE;
gc_util_insert_parm_ref(&target_datap, GCSET_CHAN_CAPABILITY,
IPPARM_LOCAL_CAPABILITY, sizeof(IP_CAPABILITY),
&a_DefaultCapability);
/* set both receive and transmit coders to be the same (since
the IPTxxx board does not support asymmetrical coders */
memset(&a_DefaultCapability,0,sizeof(IP_CAPABILITY));
a_DefaultCapability.capability = GCCAP_AUDIO_g7231_5_3k;
a_DefaultCapability.direction = IP_CAP_DIR_LCLRECEIVE;
a_DefaultCapability.type = GCCAPTYPE_AUDIO;
a_DefaultCapability.extra.audio.frames_per_pkt = 1;
a_DefaultCapability.extra.audio.VAD = GCPV_DISABLE;
gc_util_insert_parm_ref(&target_datap, GCSET_CHAN_CAPABILITY,
IPPARM_LOCAL_CAPABILITY, sizeof(IP_CAPABILITY),
&a_DefaultCapability);
gc_SetUserInfo(GCTGT_GCLIB_CHAN, ldev, target_datap, GC_ALLCALLS);
gc_util_delete_parm_blk(target_datap);
gc_WaitCall(ldev, NULL, NULL, 0, EV_ASYNC);
/*... Receive GCEV_OFFERED ... */
/*... Retrieve crn from metaevent... */
gc_AnswerCall(crn, 0, EV_ASYNC);
/*... Receive GCEV_ANSWERED ... */