Hey all,
I've got a bit of an interesting use case. I've been working to setup the OpenBSC
components in order to simulate stress testing a GSM network. I've been able to get
communications across the GSM working properly, with MSs able to place calls. However,
part of what I'm trying to do involves routing to a simulated PSTN. I turned to
sip-connector and asterisk, but my network immediately stopped working once I told the MSC
to use an external MNCC.
The setup involves two separate computers. The first is the BSS, which has a BSC, MGW,
virtual BTS, and two MSs running on mobile and virtphy. The second is the NSS, with the
MSC/VLR, HLR, MGW, and STP. The GSM is split between the two devices because of the
eventual goal to increase the number of BSSs to better simulate a real-world GSM.
This was all working fine, until I modified osmo-msc.cfg to include "mncc external
/tmp/msc_mncc". In parallel, I setup osmo-sip-connector and ran it on the NSS through
the same "/tmp/msc_mncc" socket, pointing it at Asterisk (also on the NSS). This
was all done according to the instructions listed here:
https://osmocom.org/projects/osmo-sip-conector/wiki/Howto.
Now whenever I place my calls (which I do through mobile's "call" VTY
command on the BSS), the call doesn't connect and simply gets released after 30
seconds. After doing some debugging, I've determined that Asterisk is not receiving
anything from the sip-connector. Meanwhile, the sip-connector is being told to delete any
connection basically as soon as it's created:
<0001> mncc.c:1005 MNCC rcvd message type: MNCC_SETUP_IND
<0001> mncc.c:566 Created call(5004) with MNCC leg(2147483652)
IMSI(001010000000001)
<0001> mncc.c:68 Starting Timer for MNCC_RTP_CREATE
<0001> mncc.c:164 MNCC sent message type: MNCC_RTP_CREATE
<0001> mncc.c:1005 MNCC rcvd message type: MNCC_REL_IND
<0001> mncc.c:636 Rcvd MNCC_REL_IND, Cause: RESOURCE_UNAVAIL
<0001> mncc.c:648 leg(2147483652) was released.
<0002> call.c:90 call(5004) released.
The MSC has the following as part of its output when a call is placed:
...
<0020> osmo_ss7.c:1933 0: asp-OsmoMSC-asp: xua_cli_read_cb(): sctp_recvmsg()
returned 48 (flags=0x80)
<0023> m3ua.c:714 0: asp-OsmoMSC-asp: Received M3UA Message (XFER:DATA)
<0023> m3ua.c:543 0: asp-OsmoMSC-asp: m3ua_rx_xfer
<0023> m3ua.c:566 0: asp-OsmoMSC-asp: m3ua_rx_xfer(): M3UA data header:
opc=2233=1.23.1 dpc=185=0.23.1
<0020> osmo_ss7_hmrt.c:276 m3ua_hmdc_rx_from_l2(): found dpc=185=0.23.1 as local
<0020> sccp_scrc.c:472 scrc_rx_mtp_xfer_ind_xua: HDR=(CO:CODT,V=0,LEN=0),
PART(T=Destination Reference,L=4,D=00000007), PART(T=Segmentation,L=4,D=00000000),
PART(T=Data,L=6,D=000422040120)
<0021> sccp_scoc.c:1664 Received CO:CODT for local reference 7
<0021> sccp_scoc.c:1698 SCCP-SCOC(7)[0x555adb5ddf40]{ACTIVE}: Received Event
RCOC-DT1.ind
<0021> sccp_user.c:175 Delivering N-DATA.indication to SCCP User
'OsmoMSC-A'
<0011> sccp_ran.c:108 (GERAN-A-7) sccp_ran_sap_up(N-DATA.indication)
<0003> ran_peer.c:591
ran_peer(GERAN-A:RI-SSN_PC:PC-1-23-1:SSN-BSSAP)[0x555adb5b1010]{READY}: Received Event
RAN_PEER_EV_MSG_UP_CO
<0007> ran_peer.c:407
msc_i(IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ)[0x555adb5d97e0]{READY}:
Received Event MSC_EV_FROM_RAN_UP_L2
<0011> ran_msg_a.c:790
msc_i(IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ)[0x555adb5d97e0]{READY}:
RAN decode: BSSMAP: CLEAR REQUEST
<0007> msc_i.c:85
msc_a(IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ)[0x555adb5daa50]{MSC_A_ST_COMMUNICATING}:
Received Event MSC_A_EV_FROM_I_PROCESS_ACCESS_SIGNALLING_REQUEST
<000b> msc_a.c:196
msc_a(IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ)[0x555adb5daa50]{MSC_A_ST_COMMUNICATING}:
+ msc_a_ran_dec: now used by 2 (cc,msc_a_ran_dec)
<0011> ran_msg_a.c:790
msc_a(IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ)[0x555adb5daa50]{MSC_A_ST_COMMUNICATING}:
RAN decode: BSSMAP: CLEAR REQUEST
<0011> msc_a.c:1612
msc_a(IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ)[0x555adb5daa50]{MSC_A_ST_COMMUNICATING}:
RAN decode: BSSMAP Clear Request
<0007> msc_a.c:1433
msc_a(IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ)[0x555adb5daa50]{MSC_A_ST_COMMUNICATING}:
Received Event MSC_A_EV_MO_CLOSE
<0007> msc_a.c:733
msc_a(IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ)[0x555adb5daa50]{MSC_A_ST_COMMUNICATING}:
State change to MSC_A_ST_RELEASING (X2, 30s)
<0011> msc_a.c:769
msc_a(IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ)[0x555adb5daa50]{MSC_A_ST_RELEASING}:
Releasing: msc_a use is 2 (cc,msc_a_ran_dec)
<000b> msc_a.c:773 VLR subscr IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97
+ msc_a_fsm_releasing_onenter: now used by 4
(attached,active-conn,CC,msc_a_fsm_releasing_onenter)
<000b> vlr.c:309 VLR subscr IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97 +
vlr_subscr_cancel_attach_fsm: now used by 5
(attached,active-conn,CC,msc_a_fsm_releasing_onenter,vlr_subscr_cancel_attach_fsm)
<000b> vlr.c:314 VLR subscr IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97 -
vlr_subscr_cancel_attach_fsm: now used by 4
(attached,active-conn,CC,msc_a_fsm_releasing_onenter)
<0001> transaction.c:230 trans(CC:INITIATED
IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ
callref-0x80000003 tid-8) Freeing transaction
<0005> gsm_04_08_cc.c:237 trans(CC:INITIATED
IMSI-001010000000001:MSISDN-1234567891:TMSI-0x9B96EF97:GERAN-A-7:CM_SERVICE_REQ
callref-0x80000003 tid-8) tx MNCC_REL_IND
...
Any thoughts as to why this one change to my GSM is suddenly stopping it from functioning
properly? Thanks, any help is greatly appreciated!
- James
P.S. I didn't want to include my config files for fear of making this message absurdly
long, but let me know if you want to see any and I'll gladly post them.