This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/OpenBSC@lists.osmocom.org/.
David Perez david at taddong.comHi! First of all, let me thank you all the developers and contributors of both OpenBSC and LCR. Congratulations for your amazing work! I am stuck with a problem while trying to get LCR and openbsc to work together through their unix socket (/tmp/bsc_mncc), and I was wondering if anyone on this list would be kind enough to give me some pointers. I include more details below, but this is the executive summary: I have two MS that can call each other with no problem when I start openbsc (osmo-nitb) in standalone mode (i.e. without the "--mncc-sock" option). However, when I start omso-nitb with that option, and I also start LCR, a call between the two MS cannot be establised. I think the problem may be related with the fact that LCR is not being able to identify the calling number, nor the called number, nor the IMSI of the caller. This can be seen in the following trace/debug messages of LCR: --- 000000 TRACE 13.09.12 18:17:49.248 CH(1): MNCC_SETUP_IND LCR<->BSC calling imsi= dialing number= [...] 000000 DEBUG (in apppbx.cpp/ea_message_port() line 2476): EPOINT(1) incoming call from callerid=imsi-, dialing= --- AFAIK, I'm using the latest version of each tool: I am using clones of the following git repositories, made around 10:00 AM CET today (13sep12): --- git clone git://git.osmocom.org/libosmocore.git git clone git://git.osmocom.org/libosmo-abis.git git clone git://git.osmocom.org/openbsc.git git clone git://git.misdn.eu/lcr.git/ --- At the end of this message I include a list of the last commits of these repositories, for reference. --- Executive summary ends here --- The long version of the explanation of the problem follows. I hope to have included enough information, but if you need extra details, please do not hesitate to let me know. First, without LCR, I start openbsc (osmo-nitb) in standalone mode, make a call from 2203 to 2201 (extension numbers I assigned in hlr.sqlite3), and everything works fine (the call gets established and voice flows in both directions): --- root at tli-pc-2001:/usr/local/bin# cat start-bsc-standalone #!/bin/sh echo "" echo "Starting _new_ BSC (openbsc) (=osmo-nitb) standalone..." /opt/new/openbsc/bin/osmo-nitb -c /etc/opt/new/openbsc/openbsc.cfg \ -l /var/opt/new/openbsc/hlr.sqlite3 root at tli-pc-2001:/usr/local/bin# start-bsc-standalone Starting _new_ BSC (openbsc) (=osmo-nitb) standalone... <0019> input/ipaccess.c:923 enabling ipaccess BSC mode DB: Database initialized. DB: Database prepared. <0007> sms_queue.c:232 Attempting to send 20 SMS <0019> input/ipa.c:322 accept()ed new link from 10.10.10.21 to port 3002 Failure Event Report Type=communication failure Severity=critical failure Probable cause= 03 03 11 Additional Text= <0019> input/ipa.c:322 accept()ed new link from 10.10.10.21 to port 3003 <0004> bsc_init.c:282 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 1 using MCC=001 MNC=01 LAC=2 CID=0 BSIC=63 TSC=7 <000b> bsc_api.c:374 Sending ChanModify for speech 33 1 <000b> osmo_msc.c:73 Assignment complete should not have been reached. <000b> bsc_api.c:374 Sending ChanModify for speech 33 1 <000b> osmo_msc.c:73 Assignment complete should not have been reached. --- Then, I shut down osmo_nitb with CTRL-C. Then, I start osmo-nitb for use with LCR (--mncc-sock): --- root at tli-pc-2001:/usr/local/bin# cat start-bsc-for_lcr #!/bin/sh echo "" echo "Starting _new_ BSC (openbsc) (=osmo-nitb) for use with LCR..." /opt/new/openbsc/bin/osmo-nitb -c /etc/opt/new/openbsc/openbsc.cfg \ -l /var/opt/new/openbsc/hlr.sqlite3 \ --mncc-sock --rtp-proxy root at tli-pc-2001:/usr/local/bin# start-bsc-for_lcr Starting _new_ BSC (openbsc) (=osmo-nitb) for use with LCR... <0019> input/ipaccess.c:923 enabling ipaccess BSC mode DB: Database initialized. DB: Database prepared. <0007> sms_queue.c:232 Attempting to send 20 SMS <0019> input/ipa.c:322 accept()ed new link from 10.10.10.21 to port 3002 <0019> input/ipa.c:322 accept()ed new link from 10.10.10.21 to port 3003 <0004> bsc_init.c:282 bootstrapping RSL for BTS/TRX (0/0) on ARFCN 1 using MCC=001 MNC=01 LAC=2 CID=0 BSIC=63 TSC=7 Failure Event Report Type=communication failure Severity=critical failure Probable cause= 03 03 11 Additional Text= --- Then, I start LCR: --- root at tli-pc-2001:/usr/local/bin# cat start-lcr #!/bin/sh echo "" echo "Starting _new_ LCR..." /opt/new/lcr/sbin/lcr start root at tli-pc-2001:/usr/local/bin# root at tli-pc-2001:/usr/local/bin# start-lcr Starting _new_ LCR... ** LCR Version 1.12 000000 DEBUG (in route.c/getrulesetbyname() line 1871): ruleset main found. 000000 DEBUG (in sip.cpp/sip_init() line 1913): SIP globals initialized 000000 DEBUG (in gsm.cpp/mncc_socket_retry_cb() line 1173): Connected to MNCC socket /tmp/bsc_mncc! LCR 1.12 started, waiting for calls... 000000 TRACE 13.09.12 18:16:22.091 --: LCR 1.12 started, waiting for calls... --- It attaches OK to the MNCC socket of openbsc. This message is displayed by openbsc: --- <0006> mncc_sock.c:274 MNCC Socket has connection with external call control application --- Then, I attempt to establish the same call as before, from 2203 to 2201. The call does not get established, and LCR shows the following messages: --- 000000 DEBUG (in port.cpp/Port() line 197): new port (1) of type 0x3101, name 'GSM-0-in' 000000 DEBUG (in gsm.cpp/Pgsm() line 194): Created new GSMPort(GSM-0-in). 000000 DEBUG (in gsm_bs.cpp/Pgsm_bs() line 56): Created new GSMBSPort(GSM-0-in). 000000 TRACE 13.09.12 18:17:49.248 CH(1): New call ref LCR<->BSC callref new=0x80000001 000000 TRACE 13.09.12 18:17:49.248 CH(1): Codec negotiation LCR<->BSC bearer capa='given by MS' speech version='AMR given' ignored='Not suitable for LCR' version='EFR given' ignored='Not suitable for LCR' version='Full Rate given' version='AMR Half Rate given' ignored='Not suitable for LCR' version='Half Rate given' ignored='Not suitable for LCR' 000000 TRACE 13.09.12 18:17:49.248 CH(1): MNCC_SETUP_IND LCR<->BSC calling imsi= dialing number= 000000 DEBUG (in endpoint.cpp/Endpoint() line 48): EPOINT(1): Allocating enpoint 1 and connecting it with: ioport 000000 DEBUG (in endpoint.cpp/portlist_new() line 150): EPOINT(1) allocating port_list, attaching to port 1 000000 DEBUG (in port.cpp/epointlist_new() line 128): PORT(1) allocating epoint_list. 000000 TRACE 13.09.12 18:17:49.249 CH(1): MNCC_LCHAN_MODIFY LCR<->BSC speech version='Full/Half Rate given' mode 0x01 000000 TRACE 13.09.12 18:17:49.249 CH(1): MNCC_CALL_PROC_REQ LCR<->BSC progress coding=3 location=1 descr=8 000000 DEBUG (in port.cpp/new_state() line 261): PORT(GSM-0-in) new state PORT_STATE_IDLE --> PORT_STATE_IN_PROCEEDING 000000 TRACE 13.09.12 18:17:49.249 CH(1): unknown LCR<->BSC 000000 DEBUG (in message.c/_message_put() line 61): message MESSAGE_SETUP written from 1 to 1 (memory 8bfaf48 at file gsm_bs.cpp, line 576) 000000 DEBUG (in message.c/message_get() line 106): message MESSAGE_SETUP reading from 1 to 1 (memory 8bfaf48) 000000 DEBUG (in apppbx.cpp/ea_message_port() line 2476): EPOINT(1) incoming call from callerid=imsi-, dialing= 000000 TRACE 13.09.12 18:17:49.249 EP(1): SETUP from CH(1) caller id number=imsi- present='not available' complete true 000000 DEBUG (in apppbx.cpp/port_setup() line 1372): EPOINT(1) incoming call is extension 000000 DEBUG (in apppbx.cpp/port_setup() line 1382): EPOINT(1) call from extension 'imsi-' the given extension doesn't exist: "/opt/new/lcr/var/lib/lcr/extensions/imsi-/settings" 000000 DEBUG (in extension.c/read_extension() line 58): the given extension doesn't exist: "/opt/new/lcr/var/lib/lcr/extensions/imsi-/settings" 000000 TRACE 13.09.12 18:17:49.250 EP(1): EXTENSION (not created) extension imsi- 000000 DEBUG (in message.c/_message_put() line 61): message MESSAGE_DISCONNECT written from 1 to 1 (memory 8bfe800 at file apppbx.cpp, line 4213) 000000 TRACE 13.09.12 18:17:49.250 EP(1): DISCONNECT to CH(1) cause value=21 location=1-Local-PBX 000000 DEBUG (in message.c/_message_put() line 61): message MESSAGE_TONE written from 1 to 1 (memory 8c020b8 at file apppbx.cpp, line 579) 000000 TRACE 13.09.12 18:17:49.250 EP(1): TONE to CH(1) directory default name cause_80 000000 DEBUG (in message.c/message_get() line 106): message MESSAGE_DISCONNECT reading from 1 to 1 (memory 8bfe800) 000000 TRACE 13.09.12 18:17:49.251 CH(1): MNCC_DISC_REQ LCR<->BSC progress coding=3 location=1 descr=8 cause coding=3 location=1 value=21 000000 DEBUG (in port.cpp/new_state() line 261): PORT(GSM-0-in) new state PORT_STATE_IN_PROCEEDING --> PORT_STATE_OUT_DISCONNECT 000000 DEBUG (in message.c/message_get() line 106): message MESSAGE_TONE reading from 1 to 1 (memory 8c020b8) 000000 DEBUG (in port.cpp/message_epoint() line 611): PORT(GSM-0-in) setting tone 'cause_80' dir '' 000000 TRACE 13.09.12 18:17:49.708 CH(1): MNCC_REL_IND LCR<->BSC 000000 DEBUG (in message.c/_message_put() line 61): message MESSAGE_RELEASE written from 1 to 1 (memory 8bf9950 at file gsm.cpp, line 585) 000000 DEBUG (in port.cpp/free_epointlist() line 84): PORT(1) removed epoint from port 000000 DEBUG (in port.cpp/new_state() line 261): PORT(GSM-0-in) new state PORT_STATE_OUT_DISCONNECT --> PORT_STATE_RELEASE 000000 DEBUG (in message.c/message_get() line 106): message MESSAGE_RELEASE reading from 1 to 1 (memory 8bf9950) 000000 DEBUG (in apppbx.cpp/ea_message_port() line 2562): EPOINT(1) release with cause=16 location=0 (terminal '', caller id 'imsi-') 000000 TRACE 13.09.12 18:17:49.709 EP(1): RELEASE from CH(1) cause value=16 location=0-User 000000 DEBUG (in apppbx.cpp/port_disconnect_release() line 2043): EPOINT(1) current multipoint cause 0 location 0, received cause 16 location 0. 000000 DEBUG (in apppbx.cpp/port_disconnect_release() line 2045): EPOINT(1) new multipoint cause 16 location 0. 000000 DEBUG (in action.cpp/process_hangup() line 2428): EPOINT(1): terminal '' 000000 DEBUG (in endpoint.cpp/free_portlist() line 189): EPOINT(1) removed port 1 from port_list of endpoint 000000 DEBUG (in apppbx.cpp/release() line 222): EPOINT(1): do pending release (joincause 16 location 0) 000000 DEBUG (in apppbx.cpp/release() line 240): EPOINT(1) do pending release (portcause 16 portlocation) 000000 DEBUG (in apppbx.cpp/release() line 319): EPOINT(1) do pending release of epoint itself. 000000 DEBUG (in gsm_bs.cpp/~Pgsm_bs() line 64): Destroyed GSM BS process(GSM-0-in). 000000 DEBUG (in gsm.cpp/~Pgsm() line 202): Destroyed GSM process(GSM-0-in). 000000 DEBUG (in port.cpp/~Port() line 209): removing port (1) of type 0x3101, name 'GSM-0-in' 000000 DEBUG (in endpoint.cpp/~Endpoint() line 138): removed endpoint 1. --- Latest commit of each tool: --- root at tli-pc-2001:/home/tliuser1/sw_openbsc_2/libosmocore# git log | head -6 commit eacba189b1a03c6a213b76df07dd766697017438 Author: Holger Hans Peter Freyther <zecke at selfish.org> Date: Tue Sep 11 12:27:47 2012 +0200 git: Ignore generated tests executables root at tli-pc-2001:/home/tliuser1/sw_openbsc_2/libosmocore# cd .. root at tli-pc-2001:/home/tliuser1/sw_openbsc_2# cd libosmo-abis/ root at tli-pc-2001:/home/tliuser1/sw_openbsc_2/libosmo-abis# git log | head -6 commit 84e5cb9b3496527d43af974f2f89396d8145d743 Author: Pablo Neira Ayuso <pablo at gnumonks.org> Date: Thu Aug 23 23:41:54 2012 +0200 ipaccess: fix leak of IPA control messages in the BTS side root at tli-pc-2001:/home/tliuser1/sw_openbsc_2/libosmo-abis# cd .. root at tli-pc-2001:/home/tliuser1/sw_openbsc_2# cd openbsc root at tli-pc-2001:/home/tliuser1/sw_openbsc_2/openbsc# cd openbsc root at tli-pc-2001:/home/tliuser1/sw_openbsc_2/openbsc/openbsc# git log | head -6 commit ca5d2111131101f7b8df40207b4c597b0e53f2cb Merge: c11889f 31b245b Author: Holger Hans Peter Freyther <zecke at selfish.org> Date: Tue Sep 11 18:02:46 2012 +0200 Merge branch 'feature/local-mscs' root at tli-pc-2001:/home/tliuser1/sw_openbsc_2/openbsc/openbsc# cd ../.. root at tli-pc-2001:/home/tliuser1/sw_openbsc_2# cd lcr root at tli-pc-2001:/home/tliuser1/sw_openbsc_2/lcr# git log | head -6 commit 6911e09b77aa1eaac35b595bb4082e1f4c59ca71 Author: Andreas Eversberg <jolly at eversberg.eu> Date: Sun Aug 19 20:50:10 2012 +0200 Allow calls to multiple interfaces simultaniosuly root at tli-pc-2001:/home/tliuser1/sw_openbsc_2/lcr# --- Any guidance would be appreciated. Best regards, David. ---- David Perez Founder & Senior Security Analyst Taddong david at taddong.com | +34-699982432 | www.taddong.com ---- 13sep12 19:50