ranap_common_cn: Handle non-terminal 'outcome' for RAB-ASS.resp
diff --git a/src/tests/ranap_common_cn.c b/src/tests/ranap_common_cn.c
index 7b94801..14a192f 100644
--- a/src/tests/ranap_common_cn.c
+++ b/src/tests/ranap_common_cn.c
@@ -109,6 +109,33 @@
 	return rc;
 }
 
+static int cn_ranap_rx_outcome_msg_co(void *ctx, RANAP_Outcome_t *imsg,
+					ranap_message *message)
+{
+	int rc = 0;
+
+	message->procedureCode = imsg->procedureCode;
+	message->criticality = imsg->criticality;
+
+	DEBUGP(DRANAP, "Rx CO O (%s)\n",
+		get_value_string(ranap_procedure_code_vals, imsg->procedureCode));
+
+	switch (imsg->procedureCode) {
+	case RANAP_ProcedureCode_id_RAB_Assignment:
+		/* RAB assignment response */
+		rc = ranap_decode_rab_assignmentresponseies(&message->msg.raB_AssignmentResponseIEs, &imsg->value);
+		break;
+	default:
+		LOGP(DRANAP, LOGL_NOTICE, "Received suspicious RANAP "
+		     "Procedure %s (O) from RNC, ignoring\n",
+		     get_value_string(ranap_procedure_code_vals, imsg->procedureCode));
+		rc = -1;
+		break;
+	}
+
+	return rc;
+}
+
 static int _cn_ranap_rx_co(void *ctx, RANAP_RANAP_PDU_t *pdu, ranap_message *message)
 {
 	int rc = 0;
@@ -127,6 +154,9 @@
 			     	      pdu->choice.unsuccessfulOutcome.procedureCode));
 		rc = -1;
 		break;
+	case RANAP_RANAP_PDU_PR_outcome:
+		rc = cn_ranap_rx_outcome_msg_co(ctx, &pdu->choice.successfulOutcome, message);
+		break;
 	default:
 		LOGP(DRANAP, LOGL_NOTICE, "Received suspicious RANAP "
 		     "presence %s (CO) from RNC, ignoring\n",