diff options
-rw-r--r-- | openbsc/include/openbsc/mgcp_internal.h | 9 | ||||
-rw-r--r-- | openbsc/src/libmgcp/mgcp_protocol.c | 5 | ||||
-rw-r--r-- | openbsc/src/libmgcp/osmux.c | 8 |
3 files changed, 12 insertions, 10 deletions
diff --git a/openbsc/include/openbsc/mgcp_internal.h b/openbsc/include/openbsc/mgcp_internal.h index 2b44e40be..2236b2a9b 100644 --- a/openbsc/include/openbsc/mgcp_internal.h +++ b/openbsc/include/openbsc/mgcp_internal.h @@ -173,10 +173,11 @@ struct mgcp_endpoint { /* tap for the endpoint */ struct mgcp_rtp_tap taps[MGCP_TAP_COUNT]; - /* osmux is enabled/disabled */ - int osmux; - /* osmux internal to unbatch messages for this endpoint */ - struct osmux_out_handle osmux_out; + struct { + int enable; + /* handle to unbatch messages */ + struct osmux_out_handle out; + } osmux; }; #define ENDPOINT_NUMBER(endp) abs(endp - endp->tcfg->endpoints) diff --git a/openbsc/src/libmgcp/mgcp_protocol.c b/openbsc/src/libmgcp/mgcp_protocol.c index 1198c24a6..0989cc6eb 100644 --- a/openbsc/src/libmgcp/mgcp_protocol.c +++ b/openbsc/src/libmgcp/mgcp_protocol.c @@ -327,7 +327,8 @@ static struct msgb *create_response_with_sdp(struct mgcp_endpoint *endp, len = snprintf(sdp_record, sizeof(sdp_record), "I: %u%s\n\n", endp->ci, - endp->cfg->osmux && endp->osmux ? "\nX-Osmux: On" : ""); + endp->cfg->osmux && endp->osmux.enable ? + "\nX-Osmux: On" : ""); if (len < 0) return NULL; @@ -346,7 +347,7 @@ static struct msgb *create_response_with_sdp(struct mgcp_endpoint *endp, static void send_dummy(struct mgcp_endpoint *endp) { - if (endp->osmux) + if (endp->osmux.enable) osmux_send_dummy(endp); else mgcp_send_dummy(endp); diff --git a/openbsc/src/libmgcp/osmux.c b/openbsc/src/libmgcp/osmux.c index 2f135e747..456892ea3 100644 --- a/openbsc/src/libmgcp/osmux.c +++ b/openbsc/src/libmgcp/osmux.c @@ -272,7 +272,7 @@ int osmux_read_from_bsc_nat_cb(struct osmo_fd *ofd, unsigned int what) "sending extracted RTP from OSMUX to BSC via endpoint=%u " "(allocated=%d)\n", ENDPOINT_NUMBER(endp), endp->allocated); - osmux_xfrm_output(osmuxh, &endp->osmux_out, &list); + osmux_xfrm_output(osmuxh, &endp->osmux.out, &list); osmux_tx_sched(&list, scheduled_tx_bts_cb, endp); } out: @@ -360,7 +360,7 @@ int osmux_read_from_bsc_cb(struct osmo_fd *ofd, unsigned int what) "sending extracted RTP from OSMUX to MSC via endpoint=%u " "(allocated=%d)\n", ENDPOINT_NUMBER(endp), endp->allocated); - osmux_xfrm_output(osmuxh, &endp->osmux_out, &list); + osmux_xfrm_output(osmuxh, &endp->osmux.out, &list); osmux_tx_sched(&list, scheduled_tx_net_cb, endp); } out: @@ -423,7 +423,7 @@ int osmux_enable_endpoint(struct mgcp_endpoint *endp, int role) LOGP(DMGCP, LOGL_NOTICE, "OSMUX requested, ENABLING.\n"); } - osmux_xfrm_output_init(&endp->osmux_out, + osmux_xfrm_output_init(&endp->osmux.out, (endp->ci * rtp_ssrc_winlen) + (random() % rtp_ssrc_winlen)); @@ -435,7 +435,7 @@ int osmux_enable_endpoint(struct mgcp_endpoint *endp, int role) endp->type = MGCP_OSMUX_BSC; break; } - endp->osmux = 1; + endp->osmux.enable = 1; return 0; } |