diff options
author | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-01-06 13:31:41 +0100 |
---|---|---|
committer | Holger Hans Peter Freyther <zecke@selfish.org> | 2011-01-06 14:31:16 +0100 |
commit | 6c4d2443b478e51741901676c990db8af1ec2ca2 (patch) | |
tree | 70b957fe701039d618d805ddbef86e84942a3017 /openbsc/src/abis_rsl.c | |
parent | 04d362f79d0e24a8ef45eddb9ed217834efdd20d (diff) |
rtp: Move the RTP Proxy code out of RSL into the BSC/MSC domain
Instead of creating the sockets in the RSL code we will do this
in the CRCX_ACK, MDCX_ACK, DLCX_IND signal handler of gsm_04_08.
Introduce a handover signal so we can repatch the RTP sockets in
the gsm_04_08 as well.
Diffstat (limited to 'openbsc/src/abis_rsl.c')
-rw-r--r-- | openbsc/src/abis_rsl.c | 30 |
1 files changed, 0 insertions, 30 deletions
diff --git a/openbsc/src/abis_rsl.c b/openbsc/src/abis_rsl.c index aa3d78a58..261181f01 100644 --- a/openbsc/src/abis_rsl.c +++ b/openbsc/src/abis_rsl.c @@ -1768,32 +1768,9 @@ static int abis_rsl_rx_ipacc_crcx_ack(struct msgb *msg) ipac_parse_rtp(lchan, &tv); - /* in case we don't use direct BTS-to-BTS RTP */ - if (!ipacc_rtp_direct) { - int rc; - /* the BTS has successfully bound a TCH to a local ip/port, - * which means we can connect our UDP socket to it */ - if (lchan->abis_ip.rtp_socket) { - rtp_socket_free(lchan->abis_ip.rtp_socket); - lchan->abis_ip.rtp_socket = NULL; - } - - lchan->abis_ip.rtp_socket = rtp_socket_create(); - if (!lchan->abis_ip.rtp_socket) - goto out_err; - - rc = rtp_socket_connect(lchan->abis_ip.rtp_socket, - lchan->abis_ip.bound_ip, - lchan->abis_ip.bound_port); - if (rc < 0) - goto out_err; - } - dispatch_signal(SS_ABISIP, S_ABISIP_CRCX_ACK, msg->lchan); return 0; -out_err: - return -EIO; } static int abis_rsl_rx_ipacc_mdcx_ack(struct msgb *msg) @@ -1817,7 +1794,6 @@ static int abis_rsl_rx_ipacc_dlcx_ind(struct msgb *msg) { struct abis_rsl_dchan_hdr *dh = msgb_l2(msg); struct tlv_parsed tv; - struct gsm_lchan *lchan = msg->lchan; rsl_tlv_parse(&tv, dh->data, msgb_l2len(msg)-sizeof(*dh)); @@ -1825,12 +1801,6 @@ static int abis_rsl_rx_ipacc_dlcx_ind(struct msgb *msg) print_rsl_cause(LOGL_DEBUG, TLVP_VAL(&tv, RSL_IE_CAUSE), TLVP_LEN(&tv, RSL_IE_CAUSE)); - /* the BTS tells us a RTP stream has been disconnected */ - if (lchan->abis_ip.rtp_socket) { - rtp_socket_free(lchan->abis_ip.rtp_socket); - lchan->abis_ip.rtp_socket = NULL; - } - dispatch_signal(SS_ABISIP, S_ABISIP_DLCX_IND, msg->lchan); return 0; |