Harald Welte | 5f0738b | 2010-12-19 22:56:07 +0100 | [diff] [blame] | 1 | |
| 2 | % Table 1 / Q.713 - SCCP Message Types |
| 3 | -define(SCCP_MSGT_CR, 1). % Connection request |
| 4 | -define(SCCP_MSGT_CC, 2). % Connection confirm |
| 5 | -define(SCCP_MSGT_CREF, 3). % Connection refused |
| 6 | -define(SCCP_MSGT_RLSD, 4). % Released |
| 7 | -define(SCCP_MSGT_RLC, 5). % Release complete |
| 8 | -define(SCCP_MSGT_DT1, 6). % Data form 1 |
| 9 | -define(SCCP_MSGT_DT2, 7). % Data form 2 |
| 10 | -define(SCCP_MSGT_AK, 8). % Data acknowledgement |
| 11 | -define(SCCP_MSGT_UDT, 9). % Unitdata |
| 12 | -define(SCCP_MSGT_UDTS, 10). % Unitdata service |
| 13 | -define(SCCP_MSGT_ED, 11). % Expedited data |
| 14 | -define(SCCP_MSGT_EA, 12). % Expedited data ack |
| 15 | -define(SCCP_MSGT_RSR, 13). % Reset Request |
| 16 | -define(SCCP_MSGT_RSC, 14). % Reset Confirmation |
| 17 | -define(SCCP_MSGT_ERR, 15). % Protocol data unit error |
| 18 | -define(SCCP_MSGT_IT, 16). % Inactivity test |
| 19 | -define(SCCP_MSGT_XUDT, 17). % Extended unitdata |
| 20 | -define(SCCP_MSGT_XUDTS, 18). % Extended unitdata service |
| 21 | -define(SCCP_MSGT_LUDT, 19). % Long unitdata |
| 22 | -define(SCCP_MSGT_LUDTS, 20). % Long unitdata service |
| 23 | |
| 24 | % Table 2 / Q.713 - SCCP parameter name codes |
| 25 | -define(SCCP_PNC_END_OF_OPTIONAL, 0). |
| 26 | -define(SCCP_PNC_DESTINATION_LOCAL_REFERENCE, 1). |
| 27 | -define(SCCP_PNC_SOURCE_LOCAL_REFERENCE, 2). |
| 28 | -define(SCCP_PNC_CALLED_PARTY_ADDRESS, 3). |
| 29 | -define(SCCP_PNC_CALLING_PARTY_ADDRESS, 4). |
| 30 | -define(SCCP_PNC_PROTOCOL_CLASS, 5). |
| 31 | -define(SCCP_PNC_SEGMENTING, 6). |
| 32 | -define(SCCP_PNC_RECEIVE_SEQ_NUMBER, 7). |
| 33 | -define(SCCP_PNC_SEQUENCING, 8). |
| 34 | -define(SCCP_PNC_CREDIT, 9). |
| 35 | -define(SCCP_PNC_RELEASE_CAUSE, 10). |
| 36 | -define(SCCP_PNC_RETURN_CAUSE, 11). |
| 37 | -define(SCCP_PNC_RESET_CAUSE, 12). |
| 38 | -define(SCCP_PNC_ERROR_CAUSE, 13). |
| 39 | -define(SCCP_PNC_REFUSAL_CAUSE, 14). |
| 40 | -define(SCCP_PNC_DATA, 15). |
| 41 | -define(SCCP_PNC_SEGMENTATION, 16). |
| 42 | -define(SCCP_PNC_HOP_COUNTER, 17). |
| 43 | -define(SCCP_PNC_IMPORTANCE, 18). |
| 44 | -define(SCCP_PNC_LONG_DATA, 19). |
| 45 | |
Harald Welte | ba6fdbb | 2011-01-23 22:04:39 +0100 | [diff] [blame] | 46 | % According to Q.713 Section 3.4.1 |
| 47 | -define(SCCP_GTI_NO_GT, 2#0000). |
| 48 | -define(SCCP_GTI_NAT_ONLY, 2#0001). |
| 49 | -define(SCCP_GTI_TT_ONLY, 2#0010). |
| 50 | -define(SCCP_GTI_TT_NP_ENC, 2#0011). |
| 51 | -define(SCCP_GTI_TT_NP_ENC_NAT, 2#0100). |
| 52 | |
| 53 | % According to Q.731 Section 3.4.2.2 |
| 54 | -define(SCCP_SSN_UNKNOWN, 2#000000000). |
| 55 | -define(SCCP_SSN_SCCP_MGMT, 2#000000001). |
| 56 | -define(SCCP_SSN_ITU_T, 2#000000010). |
| 57 | -define(SCCP_SSN_ISUP, 2#000000011). |
| 58 | -define(SCCP_SSN_OAM, 2#000000100). |
| 59 | -define(SCCP_SSN_MAP, 2#000000101). |
| 60 | -define(SCCP_SSN_HLR, 2#000000110). |
| 61 | -define(SCCP_SSN_VLR, 2#000000111). |
| 62 | -define(SCCP_SSN_MSC, 2#000001000). |
| 63 | -define(SCCP_SSN_EIR, 2#000001001). |
| 64 | -define(SCCP_SSN_AUC, 2#000001010). |
| 65 | -define(SCCP_SSN_ISDN_SS, 2#000001011). |
| 66 | -define(SCCP_SSN_RES_NAT, 2#000001100). |
| 67 | -define(SCCP_SSN_BISDN, 2#000001101). |
| 68 | -define(SCCP_SSN_TC_TEST, 2#000001110). |
| 69 | |
Harald Welte | 21cde2e | 2011-12-08 00:45:43 +0100 | [diff] [blame] | 70 | % According to Q.731 Section 3.4.2.3.1 |
| 71 | -define(SCCP_NAI_SUBSCRIBER, 2#00000001). |
| 72 | -define(SCCP_NAI_NATIONA_SIGN, 2#00000011). |
| 73 | -define(SCCP_NAI_INTERNATIONAL, 2#00000100). |
| 74 | |
Harald Welte | e15005e | 2011-10-09 14:12:53 +0200 | [diff] [blame] | 75 | % According to Q.713 Section 3.11 - Release Cause |
Harald Welte | abfa83e | 2012-01-28 14:08:34 +0100 | [diff] [blame^] | 76 | -define(SCCP_CAUSE_REL_USER_ORIG, 2#00000000). |
| 77 | -define(SCCP_CAUSE_REL_USER_CONG, 2#00000001). |
| 78 | -define(SCCP_CAUSE_REL_USER_FAILURE, 2#00000010). |
| 79 | -define(SCCP_CAUSE_REL_SCCP_USER_ORIG, 2#00000011). |
| 80 | -define(SCCP_CAUSE_REL_REM_PROC_ERR, 2#00000100). |
| 81 | -define(SCCP_CAUSE_REL_INCONS_CONN_DAT, 2#00000101). |
| 82 | -define(SCCP_CAUSE_REL_ACCESS_FAIL, 2#00000110). |
| 83 | -define(SCCP_CAUSE_REL_ACCESS_CONG, 2#00000111). |
| 84 | -define(SCCP_CAUSE_REL_SUBSYS_FAILURE, 2#00001000). |
| 85 | -define(SCCP_CAUSE_REL_SUBSYS_CONG, 2#00001001). |
| 86 | -define(SCCP_CAUSE_REL_MTP_FAILURE, 2#00001010). |
| 87 | -define(SCCP_CAUSE_REL_NET_CONG, 2#00001011). |
| 88 | -define(SCCP_CAUSE_REL_EXP_T_RES, 2#00001100). |
| 89 | -define(SCCP_CAUSE_REL_EXP_T_IAR, 2#00001101). |
| 90 | -define(SCCP_CAUSE_REL_UNQUALIFIED, 2#00001111). |
| 91 | -define(SCCP_CAUSE_REL_SCCP_FAILURE, 2#00010000). |
Harald Welte | e15005e | 2011-10-09 14:12:53 +0200 | [diff] [blame] | 92 | |
| 93 | % According to Q.713 Section 3.12 - Return Cause |
| 94 | -define(SCCP_CAUSE_RET_NOTRANS_NATURE, 2#00000000). |
| 95 | -define(SCCP_CAUSE_RET_NOTRANS_ADDR, 2#00000001). |
| 96 | -define(SCCP_CAUSE_RET_SUBSYS_CONG, 2#00000010). |
| 97 | -define(SCCP_CAUSE_RET_SUBSYS_FAILURE, 2#00000011). |
| 98 | -define(SCCP_CAUSE_RET_UNEQUIP_USER, 2#00000100). |
| 99 | -define(SCCP_CAUSE_RET_MTP_FAILURE, 2#00000101). |
| 100 | -define(SCCP_CAUSE_RET_NET_CONG, 2#00000110). |
| 101 | -define(SCCP_CAUSE_RET_UNQUALIFIED, 2#00000111). |
| 102 | -define(SCCP_CAUSE_RET_ERR_MSG_TRANSP, 2#00001000). |
| 103 | -define(SCCP_CAUSE_RET_ERR_LOCAL_PROC, 2#00001001). |
| 104 | -define(SCCP_CAUSE_RET_DEST_NO_REASS, 2#00001010). |
| 105 | -define(SCCP_CAUSE_RET_SCCP_FAILURE, 2#00001011). |
| 106 | -define(SCCP_CAUSE_RET_HOP_CTR_FAIL, 2#00001100). |
| 107 | -define(SCCP_CAUSE_RET_SEG_NOT_SUPP, 2#00001101). |
| 108 | -define(SCCP_CAUSE_RET_SEG_FAILURE, 2#00001110). |
| 109 | |
| 110 | % According to Q.713 Section 3.13 - Reset Cause |
Harald Welte | abfa83e | 2012-01-28 14:08:34 +0100 | [diff] [blame^] | 111 | -define(SCCP_CAUSE_RES_ENDU_ORIGINATED, 2#00000000). |
| 112 | -define(SCCP_CAUSE_RES_SCCP_USER_ORIG, 2#00000001). |
| 113 | -define(SCCP_CAUSE_RES_MSGO_OOO_PS, 2#00000010). |
| 114 | -define(SCCP_CAUSE_RES_MSGO_OOO_PR, 2#00000011). |
| 115 | -define(SCCP_CAUSE_RES_MSGO_OO_WIND, 2#00000100). |
| 116 | -define(SCCP_CAUSE_RES_INC_PS_REINIT, 2#00000101). |
| 117 | -define(SCCP_CAUSE_RES_REM_GENERAL, 2#00000110). |
| 118 | -define(SCCP_CAUSE_RES_REM_OPERATIONAL, 2#00000111). |
| 119 | -define(SCCP_CAUSE_RES_NET_OPERATIONAL, 2#00001000). |
| 120 | -define(SCCP_CAUSE_RES_ACC_OPERATIONAL, 2#00001001). |
| 121 | -define(SCCP_CAUSE_RES_NET_CONG, 2#00001010). |
| 122 | -define(SCCP_CAUSE_RES_UNQUALIFIED, 2#00001100). |
Harald Welte | e15005e | 2011-10-09 14:12:53 +0200 | [diff] [blame] | 123 | |
| 124 | % According to Q.713 Section 3.14 - Error Cause |
Harald Welte | abfa83e | 2012-01-28 14:08:34 +0100 | [diff] [blame^] | 125 | -define(SCCP_CAUSE_ERR_LRN_UNASSIGNED, 2#00000000). |
| 126 | -define(SCCP_CAUSE_ERR_LRN_MISMATCH, 2#00000001). |
| 127 | -define(SCCP_CAUSE_ERR_PC_MISMATCH, 2#00000010). |
| 128 | -define(SCCP_CAUSE_ERR_SCLASS_MISMATCH, 2#00000011). |
| 129 | -define(SCCP_CAUSE_ERR_UNQUALIFIED, 2#00000100). |
Harald Welte | e15005e | 2011-10-09 14:12:53 +0200 | [diff] [blame] | 130 | |
| 131 | % According to Q.713 Section 3.15 - Refusal Cause |
| 132 | -define(SCCP_CAUSE_REF_ENDU_ORIGINATED, 2#00000000). |
| 133 | -define(SCCP_CAUSE_REF_ENDU_CONGESTION, 2#00000001). |
| 134 | -define(SCCP_CAUSE_REF_ENDU_FAILURE, 2#00000010). |
| 135 | -define(SCCP_CAUSE_REF_USER_ORIGINATED, 2#00000011). |
| 136 | -define(SCCP_CAUSE_REF_DEST_UNKNOWN, 2#00000100). |
| 137 | -define(SCCP_CAUSE_REF_DEST_INACCESS, 2#00000101). |
| 138 | -define(SCCP_CAUSE_REF_QOS_UNAVAIL_TRANS, 2#00000110). |
| 139 | -define(SCCP_CAUSE_REF_QOS_UNAVAIL_NTRANS, 2#00000111). |
| 140 | -define(SCCP_CAUSE_REF_ACCESS_FAIL, 2#00001000). |
| 141 | -define(SCCP_CAUSE_REF_ACCES_CONGESTION, 2#00001001). |
| 142 | -define(SCCP_CAUSE_REF_SUBSYS_FAILURE, 2#00001010). |
| 143 | -define(SCCP_CAUSE_REF_SUBSYS_CONGESTION, 2#00001011). |
| 144 | -define(SCCP_CAUSE_REF_EXP_CONN_EST_TMR, 2#00001100). |
| 145 | -define(SCCP_CAUSE_REF_INCOMP_USER_DATA, 2#00001101). |
| 146 | -define(SCCP_CAUSE_REF_HOP_COUNTER_VIOL, 2#00010000). |
| 147 | -define(SCCP_CAUSE_REF_NO_GTT_FOR_NATURE, 2#00010010). |
| 148 | -define(SCCP_CAUSE_REF_UNEQUIPPED_USER, 2#00010011). |
| 149 | |
Harald Welte | 7dadde8 | 2011-10-19 13:40:39 +0200 | [diff] [blame] | 150 | % SCCP sub-system numbers |
| 151 | -define(SCCP_SSN_MAP_HLR, 6). |
| 152 | -define(SCCP_SSN_MAP_VLR, 7). |
| 153 | -define(SCCP_SSN_MAP_MSC, 8). |
| 154 | -define(SCCP_SSN_MAP_EIR, 9). |
| 155 | -define(SCCP_SSN_MAP_GMLC, 145). |
| 156 | -define(SCCP_SSN_MAP_gsmSCF, 147). |
| 157 | -define(SCCP_SSN_MAP_SGSN, 149). |
| 158 | -define(SCCP_SSN_MAP_GGSN, 150). |
Harald Welte | ba6fdbb | 2011-01-23 22:04:39 +0100 | [diff] [blame] | 159 | |
Harald Welte | dd54086 | 2011-11-04 22:25:40 +0100 | [diff] [blame] | 160 | -type sccp_msg_type() :: 0..255. |
| 161 | -type sccp_proto_class() :: 0..3. |
Harald Welte | 5f0738b | 2010-12-19 22:56:07 +0100 | [diff] [blame] | 162 | |
| 163 | % a single parsed SCCP message |
| 164 | -record(sccp_msg, { |
Harald Welte | dd54086 | 2011-11-04 22:25:40 +0100 | [diff] [blame] | 165 | msg_type :: sccp_msg_type(), |
Harald Welte | 5f0738b | 2010-12-19 22:56:07 +0100 | [diff] [blame] | 166 | parameters |
| 167 | }). |
| 168 | |
| 169 | |
Harald Welte | 2b4b267 | 2011-02-03 12:50:41 +0100 | [diff] [blame] | 170 | -record(global_title, { |
Harald Welte | dd54086 | 2011-11-04 22:25:40 +0100 | [diff] [blame] | 171 | gti :: 0..15, |
Harald Welte | 21cde2e | 2011-12-08 00:45:43 +0100 | [diff] [blame] | 172 | nature_of_addr_ind :: 0..127, |
Harald Welte | 2b4b267 | 2011-02-03 12:50:41 +0100 | [diff] [blame] | 173 | trans_type, |
Harald Welte | dd54086 | 2011-11-04 22:25:40 +0100 | [diff] [blame] | 174 | encoding :: 0..15, |
| 175 | numbering_plan:: 0..15, |
Harald Welte | 2b4b267 | 2011-02-03 12:50:41 +0100 | [diff] [blame] | 176 | phone_number |
| 177 | }). |
| 178 | |
| 179 | -record(sccp_addr, { |
| 180 | res_nat_use, |
| 181 | route_on_ssn, |
| 182 | point_code, % optional |
| 183 | ssn, % optional |
| 184 | global_title % optional |
| 185 | }). |