Some more ISUP decoding and encoding routines, mostly for phone numbers
diff --git a/src/isup.hrl b/src/isup.hrl
index fc6bd32..b00eee3 100644
--- a/src/isup.hrl
+++ b/src/isup.hrl
@@ -1,53 +1,102 @@
% Table 1 / Q.762 - ISDN user part message acronyms
+% Table C-3 / Q.762
+-define(ISUP_MSGT_ACM, 2#00000110). % Address complete
+-define(ISUP_MSGT_ANM, 2#00001001). % Answer
+%-define(ISUP_MSGT_APM). % Application transport
+-define(ISUP_MSGT_BLA, 2#00010101). % Blocking acknowledgement
+-define(ISUP_MSGT_BLO, 2#00010011). % Blocking
+-define(ISUP_MSGT_CCR, 2#00010001). % Continuity check request
+-define(ISUP_MSGT_CFN, 2#00101111). % Confusion
+-define(ISUP_MSGT_CGB, 2#00011000). % Circuit group blocking
+-define(ISUP_MSGT_CGBA,2#00011010).% Circuit group blocking acknowledgement
+-define(ISUP_MSGT_CGU, 2#00011001). % Circuit group unblocking
+-define(ISUP_MSGT_CGUA,2#00011011).% Circuit group unblocking acknowledgement
+-define(ISUP_MSGT_CON, 2#00000111). % Connect
+-define(ISUP_MSGT_COT, 2#00000101). % Continuity
+-define(ISUP_MSGT_CPG, 2#00101100). % Call progress
+-define(ISUP_MSGT_CRG, 2#00110001). % Charge information
+-define(ISUP_MSGT_CQM, 2#00101010). % Circuit group query
+-define(ISUP_MSGT_CQR, 2#00101011). % Circuit group query response
+-define(ISUP_MSGT_DRS, 2#00100111). % Delayed release (reserved – used in 1988 version)
+-define(ISUP_MSGT_FAA, 2#00100000). % Facility accepted
+%-define(ISUP_MSGT_FAC). % Facility
+-define(ISUP_MSGT_FAR, 2#00011111). % Facility request
+-define(ISUP_MSGT_FOT, 2#00001000). % Forward transfer
+-define(ISUP_MSGT_FRJ, 2#00100001). % Facility reject
+-define(ISUP_MSGT_GRA, 2#00101001). % Circuit group reset acknowledgement
+-define(ISUP_MSGT_GRS, 2#00010111). % Circuit group reset
+-define(ISUP_MSGT_IAM, 2#00000001). % Initial address
+%-define(ISUP_MSGT_IDR). % Identification request
+%-define(ISUP_MSGT_IRS). % Identification response
+-define(ISUP_MSGT_INF, 2#00000100). % Information
+-define(ISUP_MSGT_INR, 2#00000011). % Information request
+-define(ISUP_MSGT_LPA, 2#00100100). % Loop back acknowledgement
+%-define(ISUP_MSGT_LOP). % Loop prevention
+%-define(ISUP_MSGT_NRM). % Network resource management
+-define(ISUP_MSGT_OLM, 2#00110000). % Overload
+-define(ISUP_MSGT_PAM, 2#00101000). % Pass-along
+%-define(ISUP_MSGT_PRI). % Pre-release information
+-define(ISUP_MSGT_REL, 2#00001100). % Release
+-define(ISUP_MSGT_RES, 2#00001110). % Resume
+-define(ISUP_MSGT_RLC, 2#00010000). % Release complete
+-define(ISUP_MSGT_RSC, 2#00010010). % Reset circuit
+-define(ISUP_MSGT_SAM, 2#00000010). % Subsequent address
+%-define(ISUP_MSGT_SDM). % Subsequent directory number
+%-define(ISUP_MSGT_SGM). % Segmentation
+-define(ISUP_MSGT_SUS, 2#00001101). % Suspend
+-define(ISUP_MSGT_UBL, 2#00010100). % Unblocking
+-define(ISUP_MSGT_UBA, 2#00010110). % Unblocking acknowledgement
+-define(ISUP_MSGT_UCIC,2#00101110).% Unequipped circuit identification code
+%-define(ISUP_MSGT_UPA). % User part available
+%-define(ISUP_MSGT_UPT). % User part test
+-define(ISUP_MSGT_USR, 2#00101101). % User-to-user information
--define(ISUP_MSGT_ACM). % Address complete
--define(ISUP_MSGT_ANM). % Answer
--define(ISUP_MSGT_APM). % Application transport
--define(ISUP_MSGT_BLA). % Blocking acknowledgement
--define(ISUP_MSGT_BLO). % Blocking
--define(ISUP_MSGT_CCR). % Continuity check request
--define(ISUP_MSGT_CFN). % Confusion
--define(ISUP_MSGT_CGB). % Circuit group blocking
--define(ISUP_MSGT_CGBA).% Circuit group blocking acknowledgement
--define(ISUP_MSGT_CGU). % Circuit group unblocking
--define(ISUP_MSGT_CGUA).% Circuit group unblocking acknowledgement
--define(ISUP_MSGT_CON). % Connect
--define(ISUP_MSGT_COT). % Continuity
--define(ISUP_MSGT_CPG). % Call progress
--define(ISUP_MSGT_CRG). % Charge information
--define(ISUP_MSGT_CQM). % Circuit group query
--define(ISUP_MSGT_CQR). % Circuit group query response
--define(ISUP_MSGT_DRS). % Delayed release (reserved – used in 1988 version)
--define(ISUP_MSGT_FAA). % Facility accepted
--define(ISUP_MSGT_FAC). % Facility
--define(ISUP_MSGT_FAR). % Facility request
--define(ISUP_MSGT_FOT). % Forward transfer
--define(ISUP_MSGT_FRJ). % Facility reject
--define(ISUP_MSGT_GRA). % Circuit group reset acknowledgement
--define(ISUP_MSGT_GRS). % Circuit group reset
--define(ISUP_MSGT_IAM). % Initial address
--define(ISUP_MSGT_IDR). % Identification request
--define(ISUP_MSGT_IRS). % Identification response
--define(ISUP_MSGT_INF). % Information
--define(ISUP_MSGT_INR). % Information request
--define(ISUP_MSGT_LPA). % Loop back acknowledgement
--define(ISUP_MSGT_LOP). % Loop prevention
--define(ISUP_MSGT_NRM). % Network resource management
--define(ISUP_MSGT_OLM). % Overload
--define(ISUP_MSGT_PAM). % Pass-along
--define(ISUP_MSGT_PRI). % Pre-release information
--define(ISUP_MSGT_REL). % Release
--define(ISUP_MSGT_RES). % Resume
--define(ISUP_MSGT_RLC). % Release complete
--define(ISUP_MSGT_RSC). % Reset circuit
--define(ISUP_MSGT_SAM). % Subsequent address
--define(ISUP_MSGT_SDM). % Subsequent directory number
--define(ISUP_MSGT_SGM). % Segmentation
--define(ISUP_MSGT_SUS). % Suspend
--define(ISUP_MSGT_UBL). % Unblocking
--define(ISUP_MSGT_UBA). % Unblocking acknowledgement
--define(ISUP_MSGT_UCIC).% Unequipped circuit identification code
--define(ISUP_MSGT_UPA). % User part available
--define(ISUP_MSGT_UPT). % User part test
--define(ISUP_MSGT_USR). % User-to-user information
+% TABLE C-4/Q.767
+-define(ISUP_PAR_ACC_TRANSP, 2#00000011). % Access transport
+-define(ISUP_PAR_AUT_CONG_LVL, 2#00100111). % Automatic congestion level
+-define(ISUP_PAR_BACKW_CALL_IND, 2#00010001). % Backward call indicators
+-define(ISUP_PAR_CALL_MOD_IND, 2#00010111). % Call modification indicators
+-define(ISUP_PAR_CALL_REF, 2#00000001). % Call reference
+-define(ISUP_PAR_CALLED_P_NUM, 2#00000100). % Called party number
+-define(ISUP_PAR_CALLING_P_NUM, 2#00001010). % Calling party number
+-define(ISUP_PAR_CALLING_P_CAT, 2#00001001). % Calling party category
+-define(ISUP_PAR_CAUSE_IND, 2#00010010). % Cause indicators
+-define(ISUP_PAR_CG_SUB_MSGT_IND, 2#00010101). % Circuit group supervision message type indicator
+-define(ISUP_PAR_CIRC_STATE_IND, 2#00100110). % Circuit state indicator
+-define(ISUP_PAR_CLSD_U_INTERL_CODE, 2#00011010). % Closed user interlock code
+-define(ISUP_PAR_CONNECTED_NUM, 2#00100001). % Connected number
+-define(ISUP_PAR_CONN_REQ, 2#00001101). % Connection request
+-define(ISUP_PAR_CONTINUITY_IND, 2#00010000). % Continuity idnicators
+-define(ISUP_PAR_END_OF_OPT, 2#00000000). % End of optional parameters
+-define(ISUP_PAR_EVENT_INFO, 2#00100100). % Event information
+-define(ISUP_PAR_FACILITY_IND, 2#00011000). % Facility indicators
+-define(ISUP_PAR_FW_CALL_IND, 2#00000111). % Forward call indicators
+-define(ISUP_PAR_INFO_IND, 2#00001111). % Information indicators
+-define(ISUP_PAR_INFO_REQ_IND, 2#00001110). % Information request indicatos
+-define(ISUP_PAR_NAT_OF_CONN_IND, 2#00000110). % Nature of connection indicators
+-define(ISUP_PAR_OPT_BW_CALL_IND, 2#00101001). % Optional backward call indicators
+-define(ISUP_PAR_OPT_FW_CALL_IND, 2#00001000). % Optional forward call indicators
+-define(ISUP_PAR_ORIG_CALLED_NUM, 2#00101000). % Original called number
+-define(ISUP_PAR_RANGE_AND_STATUS, 2#00010110). % Range and status
+-define(ISUP_PAR_REDIR_NUM, 2#00001011). % Redirecting number
+-define(ISUP_PAR_REDIR_INFO, 2#00010011). % Redirection information
+-define(ISUP_PAR_REDIRECTION_NUM, 2#00001100). % Redirection number
+-define(ISUP_PAR_SIGN_POINT_CODE, 2#00011110). % Signalling point code
+-define(ISUP_PAR_SUBSEQ_NUM, 2#00000101). % Subsequent number
+-define(ISUP_PAR_SUSP_RES_IND, 2#00100010). % Suspend/resume indicators
+-define(ISUP_PAR_XMIT_NET_SEL, 2#00100011). % Transmit network selection
+-define(ISUP_PAR_TRANSM_MED_REQ, 2#00000010). % Transmission medium requirement
+-define(ISUP_PAR_USER_SERV_INFO, 2#00011101). % User service information
+-define(ISUP_PAR_USER_USER_IND, 2#00101010). % User-to-user indicators
+-define(ISUP_PAR_USER_USER_INFO, 2#00100000). % User-to-user information
+
+-record(party_number, {
+ nature_of_addr_ind,
+ internal_net_num, % only in called party
+ number_incompl_ind, % only in calling party
+ numbering_plan,
+ present_restrict, % only in calling party
+ screening_ind, % only in calling party
+ phone_number}
+ ).