/* International signalling point codes (i.e. PCs with ni = 0) are allocated by the ITU, according to the processes described in Q.708. ITU keeps a database of all registered ISPCs which is publically available, with updates being provided in the operational bulletins. This function takes an ISPC and analyzes it according to these tables.  */
void analyze_q708_ispc(tvbuff_t *tvb, proto_tree *tree, int offset, int length, guint16 ispc)
/* International signalling point codes (i.e. PCs with ni = 0) are allocated by the ITU, according to the processes described in Q.708. ITU keeps a database of all registered ISPCs which is publically available, with updates being provided in the operational bulletins. This function takes an ISPC and analyzes it according to these tables.  */
void analyze_q708_ispc(tvbuff_t *tvb, proto_tree *tree, int offset, int length, guint16 ispc)
{
	guint16 sanc;
	sanc = ispc >> 3;
	proto_tree_add_uint_format_value(tree, hf_q708_sanc, tvb, offset, length, sanc,
		"%s (%u-%03u)",
		val_to_str_ext_const(sanc, &q708_sanc_areas_ext, "Unknown"),
		sanc >> 8, sanc & 0xff);
	proto_tree_add_string(tree, hf_q708_ispc_name, tvb, offset, length,
		val_to_str_ext_const(ispc, &q708_ispc_point_name_ext, "Unknown"));
	proto_tree_add_string(tree, hf_q708_ispc_operator_name, tvb, offset, length,
		val_to_str_ext_const(ispc, &q708_ispc_operator_name_ext, "Unknown"));
}