summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeels Hofmeyr <neels@hofmeyr.de>2019-11-12 01:23:04 +0100
committerNeels Hofmeyr <neels@hofmeyr.de>2019-11-12 20:11:53 +0100
commitdb9c43a64bbf1d9ee886a63304a603b02f701217 (patch)
treea76194b3f291bf4595b1be50ce6227f01120948a
parent900105ee4985c8fb980868584818a3b740920653 (diff)
msc: add sdp to MNCCneels/hlr
-rw-r--r--library/MNCC_EncDec.cc3
-rw-r--r--library/MNCC_Types.ttcn134
-rw-r--r--library/mncc.h4
3 files changed, 96 insertions, 45 deletions
diff --git a/library/MNCC_EncDec.cc b/library/MNCC_EncDec.cc
index b4937e7..f2692d7 100644
--- a/library/MNCC_EncDec.cc
+++ b/library/MNCC_EncDec.cc
@@ -259,7 +259,7 @@ MNCC__PDU dec__MNCC__PDU(const OCTETSTRING& in)
case MNCC_RTP_FREE:
in_rtp = (const struct gsm_mncc_rtp *) in_mncc;
rtp = MNCC__PDU__Rtp(in_rtp->callref, in_rtp->ip, in_rtp->port, in_rtp->payload_type,
- in_rtp->payload_msg_type);
+ in_rtp->payload_msg_type, in_rtp->sdp);
u.rtp() = rtp;
break;
default:
@@ -315,6 +315,7 @@ MNCC__PDU dec__MNCC__PDU(const OCTETSTRING& in)
sign.imsi() = CHARSTRING(in_mncc->imsi);
sign.lchan__type() = in_mncc->lchan_type;
sign.lchan__mode() = in_mncc->lchan_mode;
+ sign.sdp() = in_mncc->sdp;
u.signal() = sign;
break;
}
diff --git a/library/MNCC_Types.ttcn b/library/MNCC_Types.ttcn
index 828f341..a45c7ba 100644
--- a/library/MNCC_Types.ttcn
+++ b/library/MNCC_Types.ttcn
@@ -360,7 +360,9 @@ type record MNCC_PDU_Signal {
charstring imsi,
uint8_t lchan_type, /* empty in OSmoMSC */
- uint8_t lchan_mode /* empty in OsmoMSC */
+ uint8_t lchan_mode, /* empty in OsmoMSC */
+
+ charstring sdp optional
};
@@ -374,7 +376,9 @@ type record MNCC_PDU_Rtp {
uint32_t ip,
uint16_t rtp_port,
uint32_t payload_type,
- uint32_t payload_msg_type
+ uint32_t payload_msg_type,
+
+ charstring sdp optional
};
type record MNCC_PDU_Hello {
@@ -464,7 +468,8 @@ template MNCC_PDU ts_MNCC_SIMPLE(MNCC_MsgType msg_type, uint32_t call_id) := {
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -656,7 +661,8 @@ template MNCC_PDU tr_MNCC_SETUP_ind(template uint32_t call_id := ?, template MNC
emergency := *,
imsi := imsi,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -688,7 +694,8 @@ template (value) MNCC_PDU ts_MNCC_SETUP_ind(uint32_t call_id, MNCC_number called
emergency := omit,
imsi := imsi,
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -719,7 +726,8 @@ template MNCC_PDU ts_MNCC_SETUP_CNF(uint32_t call_id, template MNCC_number conne
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -750,7 +758,8 @@ template MNCC_PDU tr_MNCC_SETUP_cnf(uint32_t call_id, template MNCC_number conne
emergency := *,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -791,7 +800,8 @@ template MNCC_PDU tr_MNCC_REJ_req(template uint32_t call_id, template MNCC_cause
emergency := omit,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -822,7 +832,8 @@ template MNCC_PDU ts_MNCC_REJ_ind(uint32_t call_id, template MNCC_cause cause :=
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -855,7 +866,8 @@ template MNCC_PDU tr_MNCC_CALL_CONF_ind(template uint32_t call_id, template MNCC
emergency := omit,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -887,7 +899,8 @@ template MNCC_PDU ts_MNCC_CALL_CONF_ind(uint32_t call_id,
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -922,7 +935,8 @@ template MNCC_PDU ts_MNCC_CALL_PROC_req(uint32_t call_id, template MNCC_bearer_c
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -955,7 +969,8 @@ template MNCC_PDU tr_MNCC_CALL_PROC_req(template uint32_t call_id,
emergency := omit,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -988,7 +1003,8 @@ template MNCC_PDU ts_MNCC_PROGRESS_req(uint32_t call_id, MNCC_progress prog,
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1021,7 +1037,8 @@ template MNCC_PDU ts_MNCC_ALERT_req(uint32_t call_id, template MNCC_progress pro
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1053,7 +1070,8 @@ template MNCC_PDU tr_MNCC_ALERT_req(template uint32_t call_id,
emergency := omit,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -1088,7 +1106,8 @@ template MNCC_PDU tr_MNCC_ALERT_ind(template uint32_t call_id, template MNCC_pro
emergency := *,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -1120,7 +1139,8 @@ template (value) MNCC_PDU ts_MNCC_ALERT_ind(uint32_t call_id,
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1152,7 +1172,8 @@ template MNCC_PDU ts_MNCC_NOTIFY_req(uint32_t call_id, MNCC_notify notify) := {
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1183,7 +1204,8 @@ template MNCC_PDU tr_MNCC_NOTIFY_ind(template uint32_t call_id, template MNCC_no
emergency := *,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -1217,7 +1239,8 @@ template MNCC_PDU tr_MNCC_DISC_ind(template uint32_t call_id := ?, template MNCC
emergency := *,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -1249,7 +1272,8 @@ template (value) MNCC_PDU ts_MNCC_DISC_ind(uint32_t call_id, template (value) MN
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1283,7 +1307,8 @@ template MNCC_PDU ts_MNCC_DISC_req(uint32_t call_id, MNCC_cause cause,
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1316,7 +1341,8 @@ template MNCC_PDU tr_MNCC_DISC_req(template uint32_t call_id,
emergency := *,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -1349,7 +1375,8 @@ template MNCC_PDU tr_MNCC_REL_ind(template uint32_t call_id := ?, template MNCC_
emergency := *,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -1381,7 +1408,8 @@ template (value) MNCC_PDU ts_MNCC_REL_ind(uint32_t call_id,
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1413,7 +1441,8 @@ template MNCC_PDU ts_MNCC_REL_req(uint32_t call_id, MNCC_cause cause,
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1443,7 +1472,8 @@ template MNCC_PDU tr_MNCC_REL_req(template uint32_t call_id, template MNCC_cause
emergency := omit,
imsi := ?,
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1490,7 +1520,8 @@ template MNCC_PDU ts_MNCC_FACILITY_req(uint32_t call_id, charstring fac) := {
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1521,7 +1552,8 @@ template MNCC_PDU tr_MNCC_FACILITY_ind(template uint32_t call_id := ?, template
emergency := *,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -1552,7 +1584,8 @@ template MNCC_PDU tr_MNCC_START_DTMF_ind(template uint32_t call_id := ?, templat
emergency := *,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -1583,7 +1616,8 @@ template MNCC_PDU ts_MNCC_START_DTMF_rsp(uint32_t call_id, MNCC_keypad keypad) :
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1614,7 +1648,8 @@ template MNCC_PDU ts_MNCC_START_DTMF_rej(uint32_t call_id, MNCC_cause cause) :=
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1653,7 +1688,8 @@ template MNCC_PDU tr_MNCC_MODIFY_ind(template uint32_t call_id := ?, template MN
emergency := *,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -1684,7 +1720,8 @@ template MNCC_PDU ts_MNCC_MODIFY_rsp(uint32_t call_id, MNCC_bearer_cap bcap) :=
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1715,7 +1752,8 @@ template MNCC_PDU ts_MNCC_MODIFY_req(uint32_t call_id, MNCC_bearer_cap bcap) :=
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1747,7 +1785,8 @@ template MNCC_PDU tr_MNCC_MODIFY_cnf(template uint32_t call_id := ?,
emergency := *,
imsi := ?,
lchan_type := ?,
- lchan_mode := ?
+ lchan_mode := ?,
+ sdp := *
}
}
}
@@ -1778,7 +1817,8 @@ template MNCC_PDU ts_MNCC_USERINFO_req(uint32_t call_id, MNCC_useruser uu, integ
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1810,7 +1850,8 @@ template MNCC_PDU tr_MNCC_USERINFO_ind(template uint32_t call_id := ?, template
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1849,7 +1890,8 @@ template MNCC_PDU ts_MNCC_HOLD_rej(uint32_t call_id, MNCC_cause cause) := {
emergency := omit,
imsi := "",
lchan_type := 0,
- lchan_mode := 0
+ lchan_mode := 0,
+ sdp := ""
}
}
}
@@ -1877,7 +1919,8 @@ template MNCC_PDU ts_MNCC_SIMPLE_RTP(MNCC_MsgType msg_type, uint32_t call_id) :=
ip := 0,
rtp_port := 0,
payload_type := 0,
- payload_msg_type := 0
+ payload_msg_type := 0,
+ sdp := ""
}
}
}
@@ -1897,7 +1940,8 @@ template MNCC_PDU tr_MNCC_RTP_CREATE(template uint32_t call_id := ?,
ip := ip,
rtp_port := rtp_port,
payload_type := payload_type,
- payload_msg_type := ?
+ payload_msg_type := ?,
+ sdp := *
}
}
}
@@ -1911,7 +1955,8 @@ template MNCC_PDU ts_MNCC_RTP_CONNECT(uint32_t call_id, uint32_t ip, uint32_t rt
ip := ip,
rtp_port := rtp_port,
payload_type := pt,
- payload_msg_type := 0
+ payload_msg_type := 0,
+ sdp := ""
}
}
}
@@ -1926,7 +1971,8 @@ template MNCC_PDU tr_MNCC_RTP_CONNECT(template uint32_t call_id,
ip := ip,
rtp_port := rtp_port,
payload_type := pt,
- payload_msg_type := 0
+ payload_msg_type := 0,
+ sdp := ""
}
}
}
diff --git a/library/mncc.h b/library/mncc.h
index 3e00db8..9aff948 100644
--- a/library/mncc.h
+++ b/library/mncc.h
@@ -265,6 +265,8 @@ struct gsm_mncc {
unsigned char lchan_type;
unsigned char lchan_mode;
+
+ char sdp[1024];
};
struct gsm_data_frame {
@@ -296,6 +298,8 @@ struct gsm_mncc_rtp {
uint16_t port;
uint32_t payload_type;
uint32_t payload_msg_type;
+
+ char sdp[1024];
};
struct gsm_mncc_bridge {