(Page 1 of 1 in this chapter)
typedef struct sccpAddr /* Called/Calling Party Address */
{
U8 presind; /* presence indicator */
U8 swType; /* switch type (ANSI/ITU-T) */
U8 subsystemInd; /* subsystem indicator */
U8 pointCodeInd; /* point code indicator */
U8 glTitleInd; /* global title indicator */
U8 routingInd; /* routing indicator */
U8 natIntInd; /* national/international ind. */
U8 subsystem; /* subsystem number */
U32 pointCode; /* point code */
U8 glTransType; /* global title translation type */
U8 encoding; /* address encoding scheme */
U8 numPlan; /* numbering plan */
U8 natAddrInd; /* nature of address indicator */
U8 glTitleLen; /* length of global title */
U8 glTitle[MAX_GLT_SZ]; /* Global Title */
} SccpAddr;
#define NOT_PRESENT 0 /* field not present in incoming msg
* or not included in outgoing msg */
#define PRESENT 1 /* field is present in incoming msg
* or to be included in outgoing msg */
#define SW_ITU 1 /* ITU operation */ #define SW_ANSI 2 /* ANSI operation */
#define SUBSYS_NONE 0x00 /* No subsystem number in address */ #define SUBSYS_INC 0x01 /* Addr contains subsystem number */
#define PTCODE_NONE 0x00 /* No point code in address */ #define PTCODE_INC 0x01 /* Addr contains point code */
#define GLT_NONE 0x00 /* No global title in address */
#define GLT_TT_NP_E 0x01 /* ANSI only - Global title includes
* translation type, numbering plan &
* encoding */
#define GLT_TT 0x02 /* ANSI only - Global title includes
* translation type only */
#define GLT_ITU_FMT1 0x01 /* ITU only - Global title includes
* encoding & nature of address only */
#define GLT_ITU_FMT2 0x02 /* ITU only - Global title includes
* translation type only */
#define GLT_ITU_FMT3 0x03 /* ITU only - Global title includes
* translation type, numbering plan &
* encoding */
#define GLT_ITU_FMT4 0x04 /* ITU only - Global title includes
* translation type, numbering plan,
* encoding and nature of address */
#define ROUTE_GLT 0x00 /* route uses global title only */ #define ROUTE_PC_SN 0x01 /* route uses point code + SSN */
#define ADDRIND_INT 0x00 /* International addr indicator */ #define ADDRIND_NAT 0x01 /* National address indicator */
#define SUBSYS_NONE 0x00 /* subsystem unknown or not used */ #define SUBSYS_SCCPMGMT 0x01 /* SCCP management subsystem */ #define SUBSYS_ISUP 0x03 /* ISUP subsystem */ #define SUBSYS_OMAP 0x04 /* operations, maint., admin. */ #define SUBSYS_MAP 0x05 /* mobile application part */ #define SUBSYS_HLR 0x06 /* home location register */ #define SUBSYS_VLR 0x07 /* visitor location register */ #define SUBSYS_MSC 0x08 /* mobile switching center */ #define SUBSYS_EIR 0x09 /* equipment ident. register */ #define SUBSYS_AUTH 0x0A /* authentication center */
#define ENC_UNKNOWN 0x00 /* Encoding unknown */
#define ENC_BCD_ODD 0x01 /* BCD, odd number of digits */
#define ENC_BCD_EVEN 0x02 /* BCD, even number of digits */
#define NP_UNK 0x00 /* unknown */
#define NP_ISDN 0x01 /* ISDN/telephony - E.164/E.163 */
#define NP_TEL 0x02 /* telephony numbering - E.163 */
#define NP_DATA 0x03 /* data numbering - X.121 */
#define NP_TELEX 0x04 /* telex numbering-Recomm. F.69 */
#define NP_MARITIME 0x05 /* Maritime mobile numbering */
#define NP_LANDMOB 0x06 /* Land mobile numbering */
#define NP_ISDNMOB 0x07 /* ISDN/mobile numbering */
#define NP_NATIONAL 0x08 /* natnl standard numbering */
#define NP_PRIVATE 0x09 /* private numbering */
#define NP_EXT 0x0f /* reserved for extension */
#define NATIND_SUBS 0x01 /* Subscriber number */
#define NATIND_NATL 0x03 /* national number */
#define NATIND_INTNATL 0x04 /* international number */
|
Octet 1
|
2nd Address Digit
|
1st (most significant) Address Digit
|
|
...
|
...
|
...
|
|
Octet n
|
m + 1th Address Digit or Filler
|
mth Address Digit
|
|
Bit Pattern
|
Digit/Signal
|
|
0000
|
0
|
|
0001
|
1
|
|
0010
|
2
|
|
0011
|
3
|
|
0100
|
4
|
|
0101
|
5
|
|
0110
|
6
|
|
0111
|
7
|
|
1000
|
8
|
|
1001
|
9
|
|
1010
|
spare
|
|
1011
|
code 11
|
|
1100
|
code 12
|
|
1101
|
spare
|
|
1110
|
spare
|
|
1111
|
ST
|
global title + translation type + numbering plan + encoding (GLT_TT_NP_E)
global title + translation type (GLT_ITU_FMT2)
global title + translation type + numbering plan + encoding (GLT_ITU_FMT3)
global title + translation type + numbering plan + encoding + nature of address (GLT_ITU_FMT4)
typedef U8 SccpCauseVal;
/* Error Cause Values (Error Message) */
#define ECDESTLRN 0 /* unassigned destination local ref. number */
#define ECSRCLRN 1 /* inconsistent source local reference number */
#define ECPOINTCODE 2 /* point code mismatch */
#define ECSERVCLASS 3 /* service class mismatch */
#define ECUNQUALIFIED 4 /* unqualified */
/* Refusal Cause Values (Connection Refused Message) */
#define REFCENDUSER 0 /* end user originated */
#define REFCUSERCONG 1 /* end user congested */
#define REFCUSERFAIL 2 /* end user failed */
#define REFCSCCPUSER 3 /* SCCP user originated */
#define REFCDESTUNK 4 /* destination unknown */
#define REFCDESTINACC 5 /* destination inaccessible */
#define REFCQOSPERM 6 /* QOS not avail (permanent) */
#define REFCQOSTRANS 7 /* QOS not avail (transient) */
#define REFCACCFAIL 8 /* Access failure */
#define REFCACCCONG 9 /* Access congestion */
#define REFCSUBSFAIL 10 /* Subsystem failure */
#define REFCSUBSCONG 11 /* Subsystem congestion */
#define REFCCONNTIMER 12 /* Connection timer expired */
#define REFCBADDATA 13 /* Inconsistent user data */
#define REFCNOTOBTAIN 14 /* Not obtainable */
#define REFCUNQUALIFIED 15 /* unqualified */
/* Release Cause Values (Released Message) */
#define RELCENDUSER 0 /* end user originated */
#define RELCUSERBUSY 1 /* end user busy */
#define RELCUSERFAIL 2 /* end user failed */
#define RELCSCCPUSER 3 /* SCCP user originated */
#define RELCREMPROC 4 /* remote procedure error */
#define RELCCONNDATA 5 /* inconsistent connection data */
#define RELCACCFAIL 6 /* Access failure */
#define RELCACCCONG 7 /* Access congestion */
#define RELCSUBSFAIL 8 /* Subsystem failure */
#define RELCSUBSCONG 9 /* Subsystem congestion */
#define RELCNETFAIL 10 /* Network failure */
#define RELCNETCONG 11 /* Network congestion */
#define RELCRESETTIMER 12 /* Reset timer expired */
#define RELCINACT 13 /* Inactivity timer expired */
#define RELCNOTOBTAIN 14 /* Not obtainable */
#define RELCUNQUALIFIED 15 /* unqualified */
/* Reset Cause Values (Reset Request Message) */
#define RESCENDUSER 0 /* end user originated */
#define RESCSCCPUSER 1 /* SCCP user originated */
#define RESCPSERR 2 /* sequence error - bad P(s) */
#define RESCPRERR 3 /* sequence error - bad P(r) */
#define RESCREMWIN 4 /* message out of window */
#define RESCREMPSERR 5 /* bad P(s) after reinit */
#define RESCREMGEN 6 /* general remote proc error */
#define RESCREMUSER 7 /* remote end user operational */
#define RESCNETWORK 8 /* network operational */
#define RESCACCESS 9 /* Access operational */
#define RESCNETCONG 10 /* Network congestion */
#define RESCNOTOBTAIN 11 /* Not obtainable */
#define RESCUNQUALIFIED 12 /* unqualified */
/* Return Cause Values (Class 0 & 1 Returned Messages) */
#define RETCGENTRANS 0 /* no translation for address of this nature */
#define RETCNOTRANS 1 /* no translation for this addr */
#define RETCSUBSCONG 2 /* Subsystem congestion */
#define RETCSUBSFAIL 3 /* Subsystem failure */
#define RETCUNQUIP 4 /* unequipped user */
#define RETCNETFAIL 5 /* network failure */
#define RETCNETCONG 6 /* Network congestion */
#define RETCUNQUALIFIED 7 /* unqualified */
#define RETCHOPCNT 8 /* hop counter violation */
#define RETCMSGXPORT 9 /* error in message transport */
#define RETCLOCALPROC 10 /* error in local processing */
#define RETCREASSEMBLY 11 /* destination can't do reassembly */
#define RETCBADISNI 0xF9 /* invalid ISNI routing request */
#define RETCAUTH 0xFA /* unauthorized message */
#define RETCINCOMPAT 0xFB /* message incompatibility */
#define RETCNOISNI 0xFC /* can't do ISNI constrained routing */
#define RETCREDISNI 0xFD /* redundant ISNI constrained routing
* information */
#define RETCISNIID 0xFE /* can't do ISNI identification */
typedef U8 SccpCredit;
typedef struct sccpData
{
U8 presind; /* presence indicator */
S16 dataLen; /* length of data */
U8 data[MAX_DATA_SZ]; /* user data */
} SccpData;
typedef U8 SccpEOS;
#define EOS_NO 0 /* not end of sequence */ #define EOS_YES 1 /* end of sequence */
typedef U8 SccpExpDatSel;
#define EDS_NONE 0 /* no expedited data */ #define EDS_REQ 1 /* expedited data requested */
typedef struct sccpProtoClass
{
U8 classInd; /* class indicator */
U8 msgHandling; /* message handling indicator */
} SccpProtoClass;
#define SCCP_CLASS0 0x00 /* 0-basic connectionless */ #define SCCP_CLASS1 0x01 /* 1-sequenced connectionless */ #define SCCP_CLASS2 0x02 /* 2-basic connection-oriented */ #define SCCP_CLASS3 0x03 /* 3-connection-oriented w/flow */
#define MSG_DISCARD 0x00 /* discard message on error */ #define MSG_RETURN 0x08 /* return message on error */
typedef U8 SccpRecConfSel;
#define RCS_NONE 0 /* no receipt confirmation */ #define RCS_REQ 1 /* receipt confirmation requested */
typedef U8 SccpNextRS;
typedef U8 SccpSmi;
#define SMI_UNKNOWN 0x00 /* unknown */
#define SMI_SOLO 0x01 /* subsystem not replicated */
#define SMI_DUP 0x02 /* subsystem is replicated */
#define SMI_DENIED 0x10 /* Indicate denial of coordinate state
* change */
typedef U8 SccpSsn;
typedef U8 SccpStatus;
#define SP_ACC 0x00 /* Signaling Point Accessible */
#define SP_INACC 0x01 /* Signaling Point inaccessible */
#define SP_INACC_NODROP 0x06 /* Signaling Point inaccessible,
* connections NOT dropped */
#define SS_OOS 0x03 /* Subsystem out of service */
#define SS_IS 0x04 /* Subsystem in service */
typedef struct sccpConnRqst
{
SccpProtoClass protoClass; /* protocol class (M) */
SccpAddr calledPty; /* called party address (M) */
SccpCredit credit; /* proposed window size (M) */
SccpAddr callingPty; /* calling party addr (O) */
SccpRecConfSel rcs; /* recpt confirm selected (M) */
SccpExpDatSel eds; /* expedited data selector (M) */
SccpData data; /* data (O) */
} SccpConnRqst;
typedef struct sccpCoordRqst
{
SccpSsn aSsn; /* affected subsystem (M) */
SccpSmi smi; /* subsystem multiplicity ind (M - Indication/Confirm
* only) */
SccpStatus status; /* New status (M - subsystem & SP state change
* indications only) */
} SccpCoordRqst;
typedef struct sccpDAckRqst
{
SccpNextRS rsn; /* rcv seq. # (M-normal data only- not used for
* expedited */
SccpCredit credit; /* window size (M-normal data only- not used for
* expedited) */
} SccpDAckRqst;
typedef struct sccpDataRqst
{
SccpData data; /* data (M) */
} SccpDataRqst;
typedef struct sccpReleased
{
SccpCauseVal relCause; /* release cause (M) */
SccpAddr rspPty; /* Release indication only- addr of responding
* party when outgoing connection refused (O) */
SccpData data; /* data (O) */
} SccpReleased;
typedef struct sccpResetRqst
{
SccpCauseVal resCause; /* release cause (M-Rqst & Indication only) */
} SccpResetRqst;
typedef struct sccpUdataRqst
{
SccpProtoClass protoClass; /* protocol class (M) */
SccpAddr calledPty; /* called party address (M) */
SccpAddr callingPty; /* calling party address(M) */
SccpEOS eos; /* end-of-sequence flag (M - class 1 only) */
SccpData data; /* data (M) */
} SccpUdataRqst;
(Page 1 of 1 in this chapter)