E-1 CAS and T-1 robbed bit protocols require tone generation and detection capability and therefore require a voice or tone resource for setting up a call. Application development considerations for using dedicated voice (or tone) resources or shared voice (or tone) resources in an E-1 CAS and T-1 robbed bit environment are discussed in this chapter.
5.1. Dedicated Voice Resources
Applications requiring voice resources during the entire call (for example, voice-mail and announcements) must have enough voice channels to dedicate one channel to each network interface time slot. Global Call simplifies applications written to handle E-1 CAS and T-1 robbed bit protocols using dedicated voice resource configurations. To use Global Call functionality to set up dedicated resources, the application must pass both the network time slot and the voice channel to the gc_OpenEx( ) function. The Global Call API uses this information to automatically:
For CT Bus applications, applications using dedicated voice resources (a voice resource dedicated to a network resource) do not need to route the voice and network resources together nor issue the gc_Attach( ) function before making a call or when handling a pending call. For applications using shared voice resources, the voice resource must be attached to a network resource before call establishment. After call establishment, this voice resource may be detached and then attached to a different network resource.
To perform activities such as routing and voice store and forward, etc., use the gc_GetResourceH( ) function to obtain the voice and network handles associated with a line device. For example, before playing a file, you can retrieve the voice handle using the gc_GetResourceH( ) function. If needed, you may route other resources to the network interface (for example, to send a fax) and reroute the voice channel back to the network interface before setting up or waiting for another call. You must route the same voice channel back to the associated network interface channel because these two resources were internally attached when opened.
The following example illustrates the function calls that apply when using dedicated voice resources.
5.1.1. Dedicated Voice Resources Example
. | ||
.
#define MAXCHAN 30
struct linebag{
LINEDEV ldev;
CRN crn;
INT state;
}port[MAXCHAN+1]
.
.
| ||
/* Open a Global Call device with a voice channel and a network time slot */ | ||
1 ----> |
if (gc_OpenEx(&linedev, ":N_dtiB1T1:P_br_r2_o:V_dxxxB1C1", 0,
(void*)&port[port_index]) == GC_SUCCESS) {
| |
/*
* Wait for GCEV_UNBLOCKED event.
*/
| ||
.
.
/* Make an outgoing call */ | ||
2 ----> |
if (gc_MakeCall(linedev, &crn, "123456", NULL, 0,
EV_ASYNC) == GC_SUCCESS) {
| |
/*
* Wait for GCEV_CONNECTED event.
*/
| ||
} else {
| ||
/* Process error from gc_MakeCall( ) */ | ||
} | ||
} else {
| ||
/* Process error from gc_Open( ) */ | ||
} | ||
. . | ||
Legend: | ||
1 |
The gc_OpenEx( ) function:
CT Bus time slot routing and attaching are done automatically. The function need only be called once for a time slot/voice channel pair. | |
2 |
The gc_MakeCall( ) function is invoked once for each outbound call. | |
Click here to contact Telecom Support Resources
Copyright 2002, Intel Corporation