Hi,
I pushed the branches tobias/supplementary_services to libosmocore and
openbsc repositories.
The idea is to enhance openbsc to be able to provide Supplementary
Services other than USSD.
I tried to implement activation, deactivation and interrogation in a
generic way. Registration is not yet implemented, also handling of
different teleservices is missing (Everything will be treated as
requested for "Telephony").
Call Waiting is now implemented on top of those changes (it is one of
the SS that doesn't need registration). (De-)Activation and
interrogation can be triggered from the phone using either the menu or
the MMI codes *43#, #43# and *#43# (see GSM 02.30).
So a call to a subscriber will now only proceed if said subscriber isn't
busy or CW has been provisioned and activated. (For details see the
commit messages.)
I know this isn't the most sexy new feature, but I needed it to test
something and maybe somebody wants to implement other supplementary
services like call forwarding...
-Tobias
Hi all,
On Tue, Feb 21, 2012 at 11:54, Harald Welte <laforge(a)gnumonks.org> wrote:
> On Tue, Feb 21, 2012 at 08:10:35AM +0100, Sylvain Munaut wrote:
>> As for live audio/video stream, I would suggest it's a bit of a
>> complication we don't need. We could just do recordings and upload
>> them publically or not afterwards depending on the speaker choice.
>
> that might be an idea, but in fact it would be better to have the
> speaker be able to decide not to be recorded in the first place ;)
>
> Rule number one of data protection: Don't even create/store data that
> you don't require to store... (German: "Datensparsamkeit")
Following up on this, it seems to me that there is an agreement that
we want to record talks where speaker doesn't object against
recording. So, I'll try to get a good FullHD camera today and bring it
to the conference, but we also need a tripod for a good quality
recording. Is there anyone local who could bring one? We don't want to
bring one from Moscow. :)
--
Regards,
Alexander Chemeris.
CEO, Fairwaves LLC / ООО УмРадио
http://fairwaves.ru
Hi Andreas,
I'm having some problems while bootstrapping RBS2308 with the existing
code. I think it is related to LAPD sequence number checkings:
lapd.c:595 TX: 02 01 02 00 0c 11 01 80 1e 02 27 17 59 06
0 00 00 00 00 00 00 00 00 00 00 00 00 ff e5 04 00
dahdi.c:248 dahdi TX (TS=1): 37 bytes
lapd_core.c:1832 msg-len 31 sent 31 left 0 N201 260 t byte 0c
lapd.c:345 RX: 02 01 01 04
lapd_core.c:1256 RR received in state LAPD_STATE_MF_EST
lapd_core.c:739 ack frame 1
lapd_core.c:216 stop T200
lapd_core.c:208 start T203
lapd_core.c:1780 lapd_send_i() called from line 1294
lapd.c:345 RX: 00 01 02 04 10 1c 1a 02 62 11 1c 11 01 80
lapd_core.c:1463 I received in state LAPD_STATE_MF_EST
lapd_core.c:1512 N(S) sequence error: N(S)=1, V(R)=0
^^^^^^^^^^^^^^
It seems to me that the BSC transmits data while something is still
coming from the BTS. Then, BSC's LAPD code silently drops the message
(without rejection).
Just a bit later the BSC gets a rejection from BTS's RSL layer.
lapd.c:595 TX: 00 01 09 00
dahdi.c:248 dahdi TX (TS=1): 6 bytes
lapd_core.c:224 stop T203
lapd_core.c:208 start T203
lapd_core.c:1780 lapd_send_i() called from line 1538
lapd.c:345 RX: 00 01 00 04 10 1c 1a 02 62 11 1c 11 01 80
lapd_core.c:1463 I received in state LAPD_STATE_MF_EST
lapd_core.c:1546 incrementing V(R) to 1
lapd_core.c:224 stop T203
lapd_core.c:208 start T203
lapd_core.c:1555 message in single I frame
abis_rsl.c:1128 (bts=0,trx=0) ERROR REPORT CAUSE=0x62(Message Sequence Error)
So the bootstrapping process never ends and the BTS never comes up.
Let me know if you can provide any clue to resolve this issue.
Thanks!
Hey all,
I've been working on connecting OpenBTS and osmo-bts ever since Harald
formed the openbts-osmo repo
(http://cgit.osmocom.org/cgit/openbts-osmo) and left me with a nice
muxer framework and L1-L2 separation. I've named it Osmo-USRP but you
can call it openbts-osmo or TrueBTS or whatever; it's not a big deal.
Unfortunately I'm running short on time for completing my MS research,
so testing is nowhere near complete but I figured I'd let the public
users help me out a bit here if they want to try it out. Many thanks
to Tom Tsou for helping me weed out bugs and test too.
I've only scratched the surface of testing it with USRP1, USRP2,
single vs. multiple PCs (Ubuntu and Fedora), and multiple BTSs. I've
been able to get a stable network of 1 and 2 BTSs across 2 PCs with
multiple MSs camped, and voice calls and SMS working. There seem to be
a few fickle and unknown issues depending on which PC/Linux
flavors/time of day I tested, and of course sometimes it will work for
a certain MS but not another. Sometimes MSs won't location update to
the network, or will hit errors when establishing a call; in the usual
case, this won't even free the TCH so if resources run out the BTS
must be rebooted. Just a few issues to name here, and I'm sure there
are more out there.
The current focus of work (when I can find time) is implementing
handover between cells. I'm not even sure if osmo-bts and OpenBTS
contain all the supporting functionality for handover (OpenBSC does
though). The MSs correctly send SACCH meas reports, the BSC detects
and decides to handover, and the TCH is activated, but I think the
Handover Command is getting lost in the BTS or the MS Handover Accept
bursts are being processed. The newly activated osmo-bts instance
segfaults somewhere in LAPDm. I haven't had time lately to pinpoint
the error, but just wanted to update on the current status of that.
Also, multiple configuration files are needed because I have network
parameters hard-coded (just for ease), which is elaborated some in the
wiki. I ran into a segfault/bug trying to implement passing in config
parameters from OpenBSC, and gave up to pursue more critical aspects
of the project.
Github repo:
https://github.com/tacooper
(first release tag for Osmo-USRP = v0.1)
README/Guide:
https://github.com/tacooper/Osmo-USRP/downloads
(issues, configuration, and example setup for single/multi-BTS networks)
If you'd like to help out by testing or even working on this project,
it is much appreciated, even if only to help me grow my understanding
of GSM networks through discussion.
Thanks!
Tom Cooper
When reading from RTP socket, the first read() may fail right after
connecting to remote socket. Subsequent read() will work as it should.
If the remote socket does not open fast enough, the transmitted RTP
payload can cause an ICMP (connection refused) packet reply. This causes
the read to fail with errno=111. In all other error cases, the errno is
logged at debug level. In all error cases, reading is not disabled.
---
openbsc/src/libtrau/rtp_proxy.c | 13 ++++++++++---
1 file changed, 10 insertions(+), 3 deletions(-)
diff --git a/openbsc/src/libtrau/rtp_proxy.c b/openbsc/src/libtrau/rtp_proxy.c
index 88753b6..23d0d1d 100644
--- a/openbsc/src/libtrau/rtp_proxy.c
+++ b/openbsc/src/libtrau/rtp_proxy.c
@@ -503,9 +503,16 @@ static int rtp_socket_read(struct rtp_socket *rs, struct rtp_sub_socket *rss)
return -ENOMEM;
rc = read(rss->bfd.fd, msg->data, RTP_ALLOC_SIZE);
- if (rc <= 0) {
- rss->bfd.when &= ~BSC_FD_READ;
- return rc;
+ if (rc == 0)
+ goto out_free;
+ if (rc < 0) {
+ /* Ignore "connection refused". this happens, If we open the
+ * socket faster than the remove side. */
+ if (errno == ECONNREFUSED)
+ goto out_free;
+ DEBUGPC(DLMUX, "Read of RTP socket (%p) failed (errno %d, "
+ "%s)\n", rs, errno, strerror(errno));
+ goto out_free;
}
msgb_put(msg, rc);
--
1.8.1.5
--------------060407040809040206020102--
When reading from RTP socket, the first read() may fail right after
connecting to remote socket. Subsequent read() will work as it should.
If the remote socket does not open fast enough, the transmitted RTP
payload can cause an ICMP (connection refused) packet reply. This causes
the read to fail with errno=111. In all other error cases, the errno is
logged at debug level. In all error cases, reading is not disabled.
---
openbsc/src/libtrau/rtp_proxy.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/openbsc/src/libtrau/rtp_proxy.c b/openbsc/src/libtrau/rtp_proxy.c
index 88753b6..bb158e8 100644
--- a/openbsc/src/libtrau/rtp_proxy.c
+++ b/openbsc/src/libtrau/rtp_proxy.c
@@ -503,9 +503,16 @@ static int rtp_socket_read(struct rtp_socket *rs, struct rtp_sub_socket *rss)
return -ENOMEM;
rc = read(rss->bfd.fd, msg->data, RTP_ALLOC_SIZE);
+ if (rc == 0)
+ goto out_free;
if (rc <= 0) {
- rss->bfd.when &= ~BSC_FD_READ;
- return rc;
+ /* Ignore "connection refused". this happens, If we open the
+ * socket faster than the remove side. */
+ if (errno == 111)
+ return 0;
+ DEBUGPC(DLMUX, "Read of RTP socket (%p) failed (errno %d)\n",
+ rs, errno);
+ goto out_free;
}
msgb_put(msg, rc);
--
1.8.1.5
--------------050303020108080701030307--
Hi Andreas,
After some extensive testing i have done using jolly/rtpmux branch to get
rtp to go directly between bsc and softswitch (yate in this case) i came
across following scenario.
MO call goes to OpenBSC/LCR then to yate routed back to OpenBSC/LCR and MT.
Signalling seems all fine including codec negotiating as through out the
path AMR/96 is been negotiated well. But once call connected, no rtp stream
exist and i see following error on OpenBSC.
received RTP frame with unknown payload type 98
Full topology and logs/trace from openbsc, LCR and yate is on this
attachment.
What could be the reason for bsc to get payload type 98.
http://pastebin.com/rPfMamx0
Rgds
Nik
Do I have to have mISDN for LCR even im not going to use any isdn interface
? Im trying to connect the NITB to LCR and LCR to asterisk all on ip.
Thanks for any help.
Rgds
Nik
Hello,
I am a student from Hong Kong and I take a project about openbsc.
I have a BTS that product from interWave.
I contacted interWave engineer and he said he can borrow us the E1 card to
connect BTS. But I don't know how to make openbsc to support this BTS.
I can provide some detail about this BTS if you need.
Thank,
Kwan