mgcp-cli: Allow submitting X-Osmux on CRCX request
Change-Id: I73b4c62baf39050da81d65553cbea07bc51163de
diff --git a/src/libosmo-mgcp-client/mgcp_client.c b/src/libosmo-mgcp-client/mgcp_client.c
index c28f5d2..bbef9ef 100644
--- a/src/libosmo-mgcp-client/mgcp_client.c
+++ b/src/libosmo-mgcp-client/mgcp_client.c
@@ -1104,6 +1104,7 @@
int rc = 0;
int rc_sdp;
bool use_sdp = false;
+ char buf[32];
msg->l2h = msg->data;
msg->cb[MSGB_CB_MGCP_TRANS_ID] = trans_id;
@@ -1207,6 +1208,15 @@
msgb_printf(msg, MGCP_X_OSMO_IGN_HEADER "%s\r\n",
mgcp_msg->x_osmo_ign & MGCP_X_OSMO_IGN_CALLID ? " C": "");
+ /* Add X-Osmo-Osmux */
+ if ((mgcp_msg->presence & MGCP_MSG_PRESENCE_X_OSMO_OSMUX_CID)) {
+ snprintf(buf, sizeof(buf), " %d", mgcp_msg->x_osmo_osmux_cid);
+ rc +=
+ msgb_printf(msg, MGCP_X_OSMO_OSMUX_HEADER "%s\r\n",
+ mgcp_msg->x_osmo_osmux_cid == -1 ? " *": buf);
+ }
+
+
/* Add session description protocol (SDP) */
if (use_sdp
&& (mgcp_msg->verb == MGCP_VERB_CRCX
diff --git a/src/libosmo-mgcp-client/mgcp_client_fsm.c b/src/libosmo-mgcp-client/mgcp_client_fsm.c
index 75d583b..0d16720 100644
--- a/src/libosmo-mgcp-client/mgcp_client_fsm.c
+++ b/src/libosmo-mgcp-client/mgcp_client_fsm.c
@@ -126,6 +126,11 @@
mgcp_msg->x_osmo_ign = info->x_osmo_ign;
mgcp_msg->presence |= MGCP_MSG_PRESENCE_X_OSMO_IGN;
}
+
+ if (info->x_osmo_osmux_use) {
+ mgcp_msg->x_osmo_osmux_cid = info->x_osmo_osmux_cid;
+ mgcp_msg->presence |= MGCP_MSG_PRESENCE_X_OSMO_OSMUX_CID;
+ }
}
static void add_audio(struct mgcp_msg *mgcp_msg, struct mgcp_conn_peer *info)