libmsc/gsm_09_11.c: implement network-initiated sessions

This change introduces a possibility to establish network-initiated
SS/USSD transactions with a subscriber in either IDLE, or DEDICATED
state. In the first case, a new transaction is established using
Paging procedure. If a subscriber already has an active connection,
a separate new transaction is established.

TTCN-3 test case: I073893c6e11be27e9e36f98f11c1491d0c173985
Change-Id: Ief14f8914ef013bd6efd7be842f81fbf053f02e2
diff --git a/src/libmsc/transaction.c b/src/libmsc/transaction.c
index f2c80d7..4c351d3 100644
--- a/src/libmsc/transaction.c
+++ b/src/libmsc/transaction.c
@@ -31,6 +31,7 @@
 void *tall_trans_ctx;
 
 void _gsm48_cc_trans_free(struct gsm_trans *trans);
+void _gsm911_nc_ss_trans_free(struct gsm_trans *trans);
 
 /*! Find a transaction in connection for given protocol + transaction ID
  * \param[in] conn Connection in whihc we want to find transaction
@@ -129,6 +130,7 @@
 		conn_usage_token = MSC_CONN_USE_TRANS_SMS;
 		break;
 	case GSM48_PDISC_NC_SS:
+		_gsm911_nc_ss_trans_free(trans);
 		conn_usage_token = MSC_CONN_USE_TRANS_NC_SS;
 		break;
 	}