CC: send correct messages (too much copy+paste) and better debug printout

diff --git a/src/gsm_04_08.c b/src/gsm_04_08.c
index 496d390..ecdd503 100644
--- a/src/gsm_04_08.c
+++ b/src/gsm_04_08.c
@@ -998,7 +998,7 @@
 	num_type = decode_bcd_number(called_number, sizeof(called_number),
 				     TLVP_VAL(&tp, GSM48_IE_CALLED_BCD)-1);
 
-	DEBUGP(DCC, "-> SETUP(tid=0x%02x,number='%s')\n", call->transaction_id,
+	DEBUGP(DCC, "A -> SETUP(tid=0x%02x,number='%s')\n", call->transaction_id,
 		called_number);
 
 	called_subscr = subscr_get_by_extension(called_number);
@@ -1006,7 +1006,7 @@
 		DEBUGP(DCC, "could not find subscriber, RELEASE\n");
 		put_lchan(msg->lchan);
 		return gsm48_tx_simple(msg->lchan, GSM48_PDISC_CC,
-					GSM48_MT_CC_RELEASE_COMPL);
+				GSM48_MT_CC_RELEASE_COMPL);
 	}
 
 	subscr_get(msg->lchan->subscr);
@@ -1034,14 +1034,14 @@
 	struct gsm_call *call = &msg->lchan->call;
 	struct gsm_lchan *other_lchan;
 
-	DEBUGP(DCC, "-> ALERTING\n");
+	DEBUGP(DCC, "A -> ALERTING\n");
 
 	/* forward ALERTING to other party */
 	other_lchan = lchan_find(msg->trx->bts, call->called_subscr);
 	if (!other_lchan)
 		return -EIO;
 
-	DEBUGP(DCC, "<- ALERTING\n");
+	DEBUGP(DCC, "B <- ALERTING\n");
 	return gsm48_tx_simple(other_lchan, GSM48_PDISC_CC,
 			       GSM48_MT_CC_ALERTING);
 }
@@ -1052,20 +1052,20 @@
 	struct gsm_lchan *other_lchan;
 	int rc;
 
-	DEBUGP(DCC, "-> CONNECT\n");
-	DEBUGP(DCC, "<- CONNECT ACK\n");
+	DEBUGP(DCC, "A -> CONNECT\n");
+	DEBUGP(DCC, "A <- CONNECT ACK\n");
 	/* MT+MO: need to respond with CONNECT_ACK and pass on */
 	rc = gsm48_tx_simple(msg->lchan, GSM48_PDISC_CC,
-			     GSM48_MT_CC_CONNECT);
+			     GSM48_MT_CC_CONNECT_ACK);
 
-	/* forward ALERTING to other party */
+	/* forward CONNECT to other party */
 	other_lchan = lchan_find(msg->trx->bts, call->called_subscr);
 	if (!other_lchan)
 		return -EIO;
 
-	DEBUGP(DCC, "<- CONNECT\n");
+	DEBUGP(DCC, "B <- CONNECT\n");
 	return gsm48_tx_simple(other_lchan, GSM48_PDISC_CC,
-			       GSM48_MT_CC_ALERTING);
+			       GSM48_MT_CC_CONNECT);
 }
 
 static int gsm48_cc_rx_disconnect(struct msgb *msg)
@@ -1076,11 +1076,12 @@
 
 
 	/* Section 5.4.3.2 */
-	DEBUGP(DCC, "-> DISCONNECT (state->RELEASE_REQ)\n");
+	DEBUGP(DCC, "A -> DISCONNECT (state->RELEASE_REQ)\n");
 	call->state = GSM_CSTATE_RELEASE_REQ;
 	if (call->state != GSM_CSTATE_NULL)
 		put_lchan(msg->lchan);
 	/* FIXME: clear the network connection */
+	DEBUGP(DCC, "A <- RELEASE\n");
 	rc = gsm48_tx_simple(msg->lchan, GSM48_PDISC_CC,
 			     GSM48_MT_CC_RELEASE);
 
@@ -1089,7 +1090,7 @@
 	if (!other_lchan)
 		return -EIO;
 
-	DEBUGP(DCC, "<- DISCONNECT\n");
+	DEBUGP(DCC, "B <- DISCONNECT\n");
 	return gsm48_tx_simple(other_lchan, GSM48_PDISC_CC,
 			       GSM48_MT_CC_DISCONNECT);
 }
@@ -1129,7 +1130,7 @@
 			     bcd_lv[0], bcd_lv+1);
 	}
 
-	DEBUGP(DCC, "<- SETUP\n");
+	DEBUGP(DCC, "B <- SETUP\n");
 
 	return gsm48_sendmsg(msg);
 }
@@ -1145,7 +1146,8 @@
 	case GSM48_MT_CC_CALL_CONF:
 		/* Response to SETUP */
 		DEBUGP(DCC, "-> CALL CONFIRM\n");
-		/* FIXME: we now need to MODIFY the channel */
+		/* we now need to MODIFY the channel */
+		rc = gsm48_tx_chan_mode_modify(msg->lchan, 0x01);
 		break;
 	case GSM48_MT_CC_RELEASE_COMPL:
 		/* Answer from MS to RELEASE */