VersionSetting up Overlapped Receiving 81

· Descriptions of the structures returned by nccGetCallStatus and nccGetExtendedCallStatus, when NMS ISDN is active.
· An explanation of how to send extended call information with call control messages.

|
Operation
|
Supported?
|
|---|---|
|
Receiving inbound calls
|
Yes
|
|
Placing outbound calls
|
Yes
|
|
Releasing calls
|
Yes
|
|
Call blocking
|
Yes
|
|
Call transfer
|
No
|
|
Call hold/retrieve
|
No
|


· A call is a connection between two parties (or a connection in the making, or a former connection) on a line. Multiple calls can exist simultaneously on a line. However, only one call at a time can be Active (for example, not disconnected or held).

· Informational events do not change the line or call state. For example, the protocol error event, NCCEVN_PROTOCOL_ERROR, provides information about abnormalities on the line including false seizure, too many incoming digits, or premature answer while dialing.


· Unsolicited events, which can occur at any time, regardless of the application's current activities. Usually, unsolicited events indicate that something has happened on the line. These events are summarized in Section 4.4.2.




Figure 10. NCC Line State Diagram



· Call nccGetExtendedCallStatus. This function returns an NCC_ISDN_EXT_CALL_STATUS structure containing protocol-specific information about the call.

#define NCC_MAX_CALLING_NAME 63
typedef struct
{
DWORD size; /* No of bytes written to by callstatus */
|
Field
|
DMS
|
NI2
|
4ESS
|
5ESS
|
NTT
|
AU S
|
HKT
|
KOR
|
TWN
|
VN6
|
EUR
|
QSIG
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
size
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
|
state
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
|
calledaddr
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
|
callingaddr
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
x1
|
|
pendingcommand
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|

char origlineinfo; /* Originating line information */
2 Field may be filled when the call is alerting.
3 Field may be filled when the call is released.

d1dn * t1tn
where:
- d1dn are the digits to dial.
- t1tn are the subaddress digits to dial, if needed. If no subaddress is used, omit the * and t digits from the string.
· The calling party information is passed in the callingaddr argument. The NMS ISDN TCP expects this digit string to be formatted as follows:
a1an * s1sn
where:
- a1an are the address of the party.
- s1sn are the subaddress digits of the party, if used. If no subaddress is used, omit the * and s digits from the string.






Figure 12. Sequence Diagram for Answering an Inbound Call
Figure 13. Sequence Diagram for Rejecting an Inbound Call
Figure 14. Sequence Diagram for Accepting and then Answering an Inbound Call
Figure 15. Sequence Diagram for Accepting and then Rejecting an Inbound Call
Figure 16. Sequence Diagram for Immediately Rejecting an Inbound Call

Figure 17. Sequence Diagram for an Outbound Call

Figure 18. Sequence Diagram for Placing a Call with Overlapped Sending
Figure 19. Sequence Diagram for Handling Overlapped Receiving of Digits

Figure 20. Sequence Diagram for Network-Initiated Release
Figure 21. Sequence Diagram for Application-Initiated Release

· Call answering (with nccAnswerCall)
· Call accepting (with nccAcceptCall)
· Call rejection (with nccRejectCall)
· Call disconnect (with nccDisconnectCall)
· Call establishment (with nccSendDigits)
2. Specify the p_data structure as the void * argument in the appropriate function invocation.

typedef struct
{
DWORD size; /* Size of this structure */
char uui[NCC_ISDN_MAX_UUI + 1]; /* UUI */
CALLEDNUM callednumber; /* Called number substructure */
CALLINGNUM callingnumber; /* Calling number substructure */
REDIRECTINGNUM redirectingnumber; /* Redirecting number substructure */
WORD service; /* Service */
WORD nsf_present; /* NSF usage flag */
WORD nsf_service_feature; /* Service or feature is set in the */
/* coding field */
WORD nsf_facility_coding; /* NSF coding */
} PLACECALL_EXT;
typedef struct
{
DWORD size; /* Size of this structure */
WORD plan;
/* Q.931 numbering plan of calling address */
WORD type
/* Q.931 numbering type of calling address */
WORD screen /* Q.931 ANI screening indicator */
WORD presentation; /* Q.931 caller ID presentation indicator */
} CALLINGNUM;
typedef struct
{
DWORD size; /* Size of called number */
WORD plan;
/* Q.931 numbering plan of called address */
WORD type
/* Q.931 numbering type of called address */
} CALLEDNUM;
{
DWORD size; /* Size of this structure */
char digits[33]; /* Redirecting address */
char pad[3]; /* padding */
WORD plan;
/* Q.931 numbering plan of redirecting address */
WORD type;
/* Q.931 numbering type of redirecting address */
WORD screen;
/* Q.931 redirecting address screening indicator */
WORD presentation;
/* Q.931 redirecting address presentation indicator */
WORD reason;
/* Q.931 reason for redirection */
WORD pad[1] /*padding */
} REDIRECTING_NUM;
|
PLACECALL_EXT Field
|
4ESS
|
E10
|
NI2
|
DMS100
|
ETSI
|
VN6
|
HKG
|
AUSTEL1
|
NTT
|
KOREA
|
TAIWAN
|
QSIG
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
uui
|
x
|
x
|
x
|
|
x
|
x
|
|
|
x
|
x
|
x
|
|
|
callednumber
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
|
callingnumber
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
|
redirectingnumber
|
x
|
x
|
x
|
x
|
|
|
|
|
|
|
|
|
|
service
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
|
nsf_present
|
x
|
|
|
|
|
|
|
|
|
|
|
|
|
nsf_service_feature
|
x
|
|
|
|
|
|
|
|
|
|
|
|
|
nsf_facility_coding
|
x
|
|
|
|
|
|
|
|
|
|
|
|

typedef struct
{
DWORD size; /* Size of this structure */
char uui [NCC_ISDN_MAX_UUI + 1]; /* UUI */
} ANSWERCALL_EXT;
|
ANSWERCALL_EXT Field
|
4ESS
|
E10
|
NI2
|
DMS100
|
ETSI
|
VN6
|
HKG
|
AUSTEL1
|
NTT
|
KOREA
|
TAIWAN
|
QSIG
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
uui
|
x
|
x
|
|
|
x
|
x
|
|
|
x
|
x
|
x
|
|
|
Field
|
Description
|
|---|---|
|
uui
|
Pointer to a string with user-to-user information (132 chars max)
|

typedef struct
{
DWORD size; /* Size of this structure */
char uui [NCC_ISDN_MAX_UUI + 1]; /* UUI */
WORD cause; /* Cause value */
WORD progressdescription; /* Progress description */
} ACCEPTCALL_EXT;
|
ACCEPTCALL_EXT Field (PROGRESS message)
|
4ESS
|
E10
|
NI2
|
DMS100
|
ETSI
|
VN6
|
HKG
|
AUSTEL1
|
NTT
|
KOREA
|
TAIWAN
|
QSIG
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
uui
|
Not sent
| |||||||||||
|
cause
|
x
|
x
|
x
|
x
|
x
|
|
|
|
|
|
|
|
|
progressdescription
|
x
|
x
|
x
|
x
|
x
|
|
|
|
|
|
|
|
|
ACCEPTCALL_EXT Field (ALERTING message)
|
4ESS
|
E10
|
NI2
|
DMS100
|
ETSI
|
VN6
|
HKG
|
AUSTEL1
|
NTT
|
KOREA
|
TAIWAN
|
QSIG
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
uui
|
x
|
x
|
|
|
x
|
x
|
|
|
x
|
x
|
x
|
|
|
cause
|
Not sent
| |||||||||||
|
progressdescription
|
|
x
|
x
|
x
|
x
|
x
|
|
|
x
|
x
|
x
|
|
|
Field
|
Description
|
|---|---|
|
size
|
Size of ACCEPTCALL_EXT
|
|
uui
|
Pointer to a string with user-to-user information (132 chars max)
|
|
cause
|
Cause
|
|
progressdescription
|
Progress description
|

typedef struct
{
DWORD size; /* Size of this structure */
char uui [NCC_ISDN_MAX_UUI + 1]; /* UUI */
WORD cause; /* Disconnect cause (NCC value) */
WORD pad;
} REJECTCALL_EXT;
|
REJECTCALL_EXT Field
|
4ESS
|
E10
|
NI2
|
DMS100
|
ETSI
|
VN6
|
HKG
|
AUSTEL1
|
NTT
|
KOREA
|
TAIWAN
|
QSIG
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
uui
|
x
|
x
|
x
|
|
x
|
x
|
|
|
x
|
x
|
x
|
|
|
cause
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
|
Fields
|
Description
|
|---|---|
|
size
|
Size of REJECTCALL_EXT
|
|
uui
|
Pointer to a string with user-to-user information (132 chars max)
|
|
cause
|
Cause
|

typedef struct
{
DWORD size; /* Size of this structure */
char uui [NCC_ISDN_MAX_UUI + 1]; /* UUI */
WORD cause; /* Disconnect cause (NCC value) */
WORD pad;
} DISCONNECTCALL_EXT;
|
DISCONNECTCALL_EXT Field
|
4ESS
|
E10
|
NI2
|
DMS100
|
ETSI
|
VN6
|
HKG
|
AUSTEL1
|
NTT
|
KOREA
|
TAIWAN
|
QSIG
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
uui
|
x
|
x
|
|
|
x
|
x
|
|
|
x
|
x
|
x
|
|
|
cause
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
x
|
|
Field
|
Description
|
|---|---|
|
size
|
Size of DISCONNECTCALL_EXT
|
|
uui
|
Pointer to a string with user-to-user info (132 chars max)
|
|
cause
|
Cause
|

{
DWORD size; /* Size of this structure */
CALLEDNUM callednumer; /* Called number substructure */
} SENDDIGITS_EXT;
typedef struct
{
DWORD size; /* Size of called number */
WORD plan; /* Q.931 numbering plan of called address */
WORD type; /* Q.931 numbering type of called address */
} CALLEDNUM;
|
SENDDIGITS_EXT Field
|
4ESS
|
E10
|
NI2
|
DMS100
|
ETSI
|
VN6
|
HKG
|
AUSTEL1
|
NTT
|
KOREA
|
TAIWAN
|
QSIG
|
|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
callednumber
|
|
|
|
|
xx
|
x
|
|
|
|
x
|
x
|
t
|
|
Field
|
Description
|
|---|---|
|
callednumber.size
|
Size of the SENDDIGITS_EXT structure
|
|
callednumber.plan
|
Q.931 numbering plan of called address
|
|
callednumber.type
|
Q.931 number type of called address
|


|
Variant
|
NT/TE
|
Capabilities
| ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
CALLER_ID
|
MEDIA_IN_SETUP
|
DISCONNECT_IN_ANY_STATE
|
HOLD_IN_ANY_STATE
|
SEND_LINE_MESSAGE
|
SEND_CALL_MESSAGE
|
EXTENDED_CALL_STATUS
|
AUTOMATIC_TRANSFER
|
SUPERVISED_TRANSFER
|
HOLD_CALL
|
OVERLAPPED_SENDING
|
SET_BILLING
|
ACCEPT_CALL
|
|
DMS
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
| |
|
NI2
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
| |
|
4ESS
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
| |
|
5ESS
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
| |
|
AUS1
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
| |
|
HKT
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
| |
|
KOR
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
x
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
x
|
|
x
| |
|
NTT
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
|
|
x
| |
|
TWN
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
x
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
x
|
|
x
| |
|
ETSI
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
x
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
x
|
|
x
| |
|
VN6
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
x
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
x
|
|
x
| |
|
QSI
|
NT:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
x
|
|
x
|
|
TE:
|
x
|
x
|
x
|
|
|
|
x
|
|
|
|
x
|
|
x
| |
Version