various CC updates:
* correctly lchan_put the second lchan of a call at teardown
* map the RTP streams of ip.access onto each other
* fix bug that prevented a CONNECt message to ever reach the 'B' side
diff --git a/include/openbsc/gsm_04_08.h b/include/openbsc/gsm_04_08.h
index ddf5535..de48fe8 100644
--- a/include/openbsc/gsm_04_08.h
+++ b/include/openbsc/gsm_04_08.h
@@ -489,8 +489,7 @@
int gsm0408_rcvmsg(struct msgb *msg);
void gsm0408_generate_lai(struct gsm48_loc_area_id *lai48, u_int16_t mcc,
u_int16_t mnc, u_int16_t lac);
-int gsm48_cc_tx_setup(struct gsm_lchan *lchan, struct gsm_subscriber *called,
- struct gsm_subscriber *calling);
+int gsm48_cc_tx_setup(struct gsm_lchan *lchan, struct gsm_subscriber *calling);
enum gsm_chan_t get_ctype_by_chreq(struct gsm_bts *bts, u_int8_t ra);
enum gsm_chreq_reason_t get_reason_by_chreq(struct gsm_bts *bts, u_int8_t ra);
diff --git a/include/openbsc/gsm_data.h b/include/openbsc/gsm_data.h
index 7c320d8..50a11fa 100644
--- a/include/openbsc/gsm_data.h
+++ b/include/openbsc/gsm_data.h
@@ -61,14 +61,20 @@
GSM_CSTATE_RELEASE_REQ,
};
+struct gsm_lchan;
+struct gsm_subscriber;
+
/* One end of a call */
struct gsm_call {
enum gsm_call_type type;
enum gsm_call_state state;
u_int8_t transaction_id; /* 10.3.2 */
- /* the 'local' subscriber */
- struct gsm_subscriber *subscr;
+ /* the 'local' channel */
+ struct gsm_lchan *local_lchan;
+ /* the 'remote' channel */
+ struct gsm_lchan *remote_lchan;
+
/* the 'remote' subscriber */
struct gsm_subscriber *called_subscr;
};