diff options
author | Harald Welte <laforge@netfilter.org> | 2009-12-19 22:23:05 +0100 |
---|---|---|
committer | Harald Welte <laforge@netfilter.org> | 2009-12-19 22:23:05 +0100 |
commit | da7ab74298b9fdb5eb27d6575e8a15683b69889f (patch) | |
tree | 88569305679abbd891724aa3004af5ea529034d0 /openbsc/include/openbsc/rtp_proxy.h | |
parent | bc814501e8a28f72e16a4662250af01aaa2a1489 (diff) |
RTP-enable MNCC API for LCR + ip.access
Instead of passing TRAU frames down the MNCC API to the call control
application like MNCC, we now decode the TRAU frame into the actual codec
frame. We do the same with the RTP packets in case of ip.access and
thus have a unified format of passing codec data from the BTS to
an application, independent of the BTS type.
This is only implemented for V1 full-rate at the moment, and needs
to be fixed.
Diffstat (limited to 'openbsc/include/openbsc/rtp_proxy.h')
-rw-r--r-- | openbsc/include/openbsc/rtp_proxy.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/openbsc/include/openbsc/rtp_proxy.h b/openbsc/include/openbsc/rtp_proxy.h index e9fc157cf..a3e45964c 100644 --- a/openbsc/include/openbsc/rtp_proxy.h +++ b/openbsc/include/openbsc/rtp_proxy.h @@ -34,6 +34,11 @@ enum rtp_rx_action { RTP_RECV_UPSTREAM, }; +enum rtp_tx_action { + RTP_SEND_NONE, + RTP_SEND_DOWNSTREAM, +}; + struct rtp_sub_socket { struct sockaddr_in sin_local; struct sockaddr_in sin_remote; @@ -56,15 +61,24 @@ struct rtp_socket { struct rtp_socket *other_sock; } proxy; struct { - void (*recv_cb)(struct msgb *msg); + struct gsm_network *net; + u_int32_t callref; } receive; }; + enum rtp_tx_action tx_action; + struct { + u_int16_t sequence; + u_int32_t timestamp; + u_int32_t ssrc; + } transmit; }; struct rtp_socket *rtp_socket_create(void); int rtp_socket_bind(struct rtp_socket *rs, u_int32_t ip); int rtp_socket_connect(struct rtp_socket *rs, u_int32_t ip, u_int16_t port); int rtp_socket_proxy(struct rtp_socket *this, struct rtp_socket *other); +int rtp_socket_upstream(struct rtp_socket *this, struct gsm_network *net, u_int32_t callref); int rtp_socket_free(struct rtp_socket *rs); +int rtp_send_frame(struct rtp_socket *rs, struct gsm_data_frame *frame); #endif /* _RTP_PROXY_H */ |