#ifndef _q1902_3E_H_ #define _q1902_3E_H_ #include "define.h" #include "q765_5e.h" /******************************************/ /******** BICC SIO (Q.1901E C.7.3) ********/ /******************************************/ #define BICC_SI 13 /******************************************/ /* Message Type Codes (Q.1902-3E, page 5) */ /******************************************/ #define M_ACM 0x06//Address complete #define M_ANM 0x09//Answer #define M_APM 0x41//Application transport #define M_BLO 0x13//Blocking #define M_BLA 0x15//Blocking acknowledgement #define M_CPG 0x2c//Call progress #define M_CGB 0x18//Circuit/CIC group blocking #define M_CGBA 0x1a//Circuit/CIC group blocking acknowledgement #define M_CQM 0x2a//Circuit/CIC group query (national use) #define M_CQR 0x2b//Circuit/CIC group query response (national use) #define M_GRS 0x17//Circuit/CIC group reset #define M_GRA 0x29//Circuit/CIC group reset acknowledgement #define M_CGU 0x19//Circuit/CIC group unblocking #define M_CGUA 0x1b//Circuit/CIC group unblocking acknowledgement #define M_CRG 0x31//Charge information (national use) #define M_CFN 0x2f//Confusion #define M_CON 0x07//Connect #define M_COT 0x05//Continuity #define M_FAC 0x33//Facility #define M_FAA 0x20//Facility accepted #define M_FRJ 0x21//Facility reject #define M_FAR 0x1f//Facility request #define M_FOT 0x08//Forward transfer #define M_IDR 0x36//Identification request #define M_IRS 0x37//Identification response #define M_INF 0x04//Information (national use) #define M_INR 0x03//Information request (national use) #define M_IAM 0x01//Initial address #define M_LOP 0x40//Loop prevention #define M_NRM 0x32//Network resource management #define M_PRI 0x42//Pre-release information #define M_REL 0x0c//Release #define M_RLC 0x10//Release complete #define M_RSC 0x12//Reset circuit/CIC #define M_RES 0x0e//Resume #define M_SGM 0x38//Segmentation #define M_SAM 0x02//Subsequent address #define M_SDM 0x43//Subsequent Directory Number (national use) #define M_SUS 0x0d//Suspend #define M_UBL 0x14//Unblocking #define M_UBA 0x16//Unblocking acknowledgement #define M_UCIC 0x2e//Unequipped CIC (national use) #define M_USR 0x2d//User-to-user information /*********************************************/ /* Parameter Name Codes (Q.1902-3E, page 10) */ /*********************************************/ #define P_APPTRANS 0x78//Application transport #define P_BACKCALLIND 0x11//Backward call indicators #define P_CALLEDPTYNUM 0x04//Called party number #define P_CALLINGPTYNUM 0x0a//Calling party number #define P_CALLINGPTYCAT 0x09//Calling party's category #define P_CAUSEIND 0x02//Cause indicators #define P_CICGRPSPV 0x15//Circuit/CIC group supervision message type #define P_COLLECTCALLREQ 0x79//Collect call request #define P_CONFTREATIND 0x72//Conference treatment indicators #define P_CONNNUM 0x21//Connected number #define P_CORRELATIONID 0x65//Correlation id #define P_EVENINFO 0x24//Event information #define P_FACIND 0x18//Facility indicator #define P_FWDCALLIND 0x07//Forward call indicators #define P_NATCONNIND 0x06//Nature of connection indicators #define P_ORIGCALLEDNUM 0x28//Original called number #define P_RANGESTATUS 0x16//Range and status #define P_REDIRGNUM 0x0b//Redirecting number #define P_REDIRINFO 0x13//Redirection information #define P_SCFID 0x66//SCF id #define P_SUBSEQNUM 0x05//Subsequent number #define P_SUSRESIND 0x22//Suspend/Resume indicators #define P_TRANSMEDREQ 0x02//Transmission medium requirement #define P_UTUIND 0x2a//User-to-user indicators #define P_UTUINFO 0x20//User-to-user information #define P_CALLDIVERINFO 0x36//Call diversion information #define P_OPTBACKCALLIND 0x29//Optional backward call indicators /**********************************************/ /* Parameter Structure (Q.1902-3E, section 6) */ /**********************************************/ #define MAX_BICC_DIGIT 32 #define BICC_STATUS_LEN 32 #define BICC_APP_LEN 200 #define MAX_DIAGNOSTIC_LEN 32 typedef struct AppTrans_struct { u8 pres; u8 aci[2]; //Application context identifier u8 :6; u8 sni:1; //Send notification indicator u8 rci:1; //Release call indicator u16 :1; u16 si:1; //Sequence indicator u16 segment:6; //APM segmentation indicator u16 :1; u16 slr:7; //Segmentation local reference // APM-user information (For APM'98-user application only) // ApmUser_struct apm_info; } AppTrans_struct; typedef struct BackCallInd_struct { u8 pres; u8 val[2]; } BackCallInd_struct; typedef struct CalledPtyNum_struct { u8 pres; u8 nai; u8 inn; u8 npi; u8 numOfDigit; u8 digit[MAX_BICC_DIGIT]; } CalledPtyNum_struct; typedef struct CallingPtyNum_struct { u8 pres; u8 nai; u8 ni; u8 npi; u8 apri; u8 si; u8 numOfDigit; u8 digit[MAX_BICC_DIGIT]; } CallingPtyNum_struct; typedef struct CallingPtyCat_struct { u8 pres; u8 val; } CallingPtyCat_struct; /* defined in Q.850E */ typedef struct CauseInd_struct { u8 pres; u8 codingStd; u8 location; u8 causeVal; //diagnostic } CauseInd_struct; typedef struct CicGrpSpv_struct { u8 pres; u8 val; } CicGrpSpv_struct; typedef struct CollectCallReq_struct { u8 pres; u8 val; } CollectCallReq_struct; typedef struct ConfTreatInd_struct { u8 pres; u8 val; } ConfTreatInd_struct; typedef struct ConnNum_struct { u8 pres; u8 nai; u8 npi; u8 apri; u8 si; u8 numOfDigit; u8 digit[MAX_BICC_DIGIT]; } ConnNum_struct; typedef struct EventInfo_struct { u8 pres; u8 val; } EventInfo_struct; typedef struct FacInd_struct { u8 pres; u8 val; } FacInd_struct; typedef struct FwdCallInd_struct { u8 pres; u8 val[2]; } FwdCallInd_struct; typedef struct GenericNumber_struct { u8 pres; u8 nqi; //Number qualifier indicator u8 nai; u8 ni; u8 npi; u8 apri; u8 si; u8 numOfDigit; u8 digit[MAX_BICC_DIGIT]; } GenericNumber_struct; typedef struct GenericDigits_struct /* Generic Digits */ { u8 pres; u8 typeOfDigits; u8 encodeScheme; u8 numOfDigit; u8* digits; } GenericDigits_struct; typedef GenericDigits_struct CorrelationId_struct; //R10 //typedef struct CorrelationId_struct { //R9 // u8 pres; // u8 digit[4]; //4 bytes //}CorrelationId_struct; typedef struct NatConnInd_struct { u8 pres; u8 val; } NatConnInd_struct; typedef struct OrigCalledNum_struct { u8 pres; u8 nai; u8 npi; u8 apri; u8 numOfDigit; u8 digit[MAX_BICC_DIGIT]; } OrigCalledNum_struct; typedef struct RangeStatus_struct { u8 pres; u8 range; u8 status[BICC_STATUS_LEN]; } RangeStatus_struct; typedef struct RedirgNum_struct { u8 pres; u8 nai; u8 npi; u8 apri; u8 numOfDigit; u8 digit[MAX_BICC_DIGIT]; } RedirgNum_struct; typedef struct RedirInfo_struct{ u8 pres; u8 redInd; u8 origRedirReason; u8 redirCounter; u8 redirReason; }RedirInfo_struct; typedef GenericDigits_struct ScfId_struct; /*typedef struct ScfId_struct { u8 pres; u8 nai; u8 inn; u8 npi; u8 numOfDigit; u8 digit[MAX_BICC_DIGIT]; }ScfId_struct; */ typedef struct SubseqNum_struct { u8 pres; u8 numOfDigit; u8 digit[MAX_BICC_DIGIT]; } SubseqNum_struct; typedef struct SusResInd_struct { u8 pres; u8 val; } SusResInd_struct; typedef struct TransMedReq_struct { u8 pres; u8 val; } TransMedReq_struct; typedef struct UserToUserInd_struct { u8 pres; u8 val; } UserToUserInd_struct; typedef struct UserToUserInfo_struct { u8 pres; u8 len; u8 val[129]; } UserToUserInfo_struct; typedef struct CallDiverInfo_struct { u8 pres; u8 notifSubsOption; u8 redirReason; }CallDiverInfo_struct; typedef struct OptBackCallInd_struct { u8 pres; u8 inbandInfoInd; u8 callDiverOccurInd; u8 simpSegmInd; u8 mlppUserInd; }OptBackCallInd_struct; /********************************************/ /* Message structure (Q.1902-3E, section 7) */ /********************************************/ typedef struct BiccAcm_struct { BackCallInd_struct backCall;//F AppTrans_struct app; CauseInd_struct cause; ConfTreatInd_struct confTreat; OptBackCallInd_struct optBackCall; UserToUserInd_struct utuInd; UserToUserInfo_struct utuInfo; } BiccAcm_struct; typedef struct BiccAnm_struct { AppTrans_struct app; BackCallInd_struct backCall; ConfTreatInd_struct confTreat; ConnNum_struct connNum; UserToUserInd_struct utuInd; UserToUserInfo_struct utuInfo; } BiccAnm_struct; typedef struct BiccApm_struct { AppTrans_struct app; } BiccApm_struct; typedef struct BiccCpg_struct { EventInfo_struct eventInfo;//F AppTrans_struct app; BackCallInd_struct backCall; CallDiverInfo_struct calldiver; CauseInd_struct cause; ConfTreatInd_struct confTreat; ConnNum_struct connNum; UserToUserInd_struct utuInd; UserToUserInfo_struct utuInfo; } BiccCpg_struct; typedef struct BiccCgb_struct { CicGrpSpv_struct cicGrpSpv;//F RangeStatus_struct rangeStatus;//V } BiccCgb_struct; typedef struct BiccCgba_struct { CicGrpSpv_struct cicGrpSpv;//F RangeStatus_struct rangeStatus;//V } BiccCgba_struct; typedef struct BiccCgu_struct { CicGrpSpv_struct cicGrpSpv;//F RangeStatus_struct rangeStatus;//V } BiccCgu_struct; typedef struct BiccCgua_struct { CicGrpSpv_struct cicGrpSpv;//F RangeStatus_struct rangeStatus;//V } BiccCgua_struct; typedef struct BiccGrs_struct { RangeStatus_struct rangeStatus;//V } BiccGrs_struct; typedef struct BiccGra_struct { RangeStatus_struct rangeStatus;//V } BiccGra_struct; typedef struct BiccCon_struct { BackCallInd_struct backCall;//F AppTrans_struct app; ConfTreatInd_struct confTreat; ConnNum_struct connNum; UserToUserInd_struct utuInd; UserToUserInfo_struct utuInfo; } BiccCon_struct; typedef struct BiccIam_struct { NatConnInd_struct natConn;//F FwdCallInd_struct fwdCall;//F CallingPtyCat_struct callingPtyCat;//F TransMedReq_struct transMedReq;//F CalledPtyNum_struct calledPtyNum;//V AppTrans_struct app; CallingPtyNum_struct callingPtyNum; CollectCallReq_struct collectCallReq; ConfTreatInd_struct confTreat; CorrelationId_struct correlationId; OrigCalledNum_struct origCalledNum; RedirgNum_struct redirgNum; RedirInfo_struct redirInfo; ScfId_struct scfId; UserToUserInd_struct utuInd; UserToUserInfo_struct utuInfo; } BiccIam_struct; typedef struct BiccRel_struct { CauseInd_struct cause;//V UserToUserInd_struct utuInd; UserToUserInfo_struct utuInfo; } BiccRel_struct; typedef struct BiccRlc_struct { CauseInd_struct cause; } BiccRlc_struct; typedef struct BiccRes_struct { SusResInd_struct susRes;//F //Optional } BiccRes_struct; typedef struct BiccSus_struct { SusResInd_struct susRes;//F //Optional } BiccSus_struct; typedef struct BiccSam_struct { SubseqNum_struct subseqNum;//V //Optional } BiccSam_struct; typedef struct BiccMsg_struct { }BiccMsg_struct; typedef union BiccMsg_union { BiccAcm_struct acm; BiccAnm_struct anm; BiccApm_struct apm; BiccCpg_struct cpg; BiccCgb_struct cgb; BiccCgba_struct cgba; BiccCgu_struct cgu; BiccCgua_struct cgua; BiccGrs_struct grs; BiccGra_struct gra; BiccCon_struct con; BiccIam_struct iam; BiccRel_struct rel; BiccRlc_struct rlc; BiccRes_struct res; BiccSus_struct sus; BiccSam_struct sam; } BiccMsg_union; #endif