This post has NOT been accepted by the mailing list yet.
I have been working with Layer23 stack of OsmocomBB since a couple of months.
I decided to try MNCC socket interface without LCR (I'm aware there is an implementation embedded in LCR gsm-ms).
I reverse engineered and wrote a simple C application taking mncc.h.
Problem: I'm unable to make a call on live network, although it does channel allocation, ciphering etc.
1. Create MNCC struct and write on to the osmocomBB socket
2. OsmocomBB parses it well and request for channel, ciphering mode, init MM, sending SETUP etc works great.
3. However, in response to step.2 after sending SETUP it returns with (ms 1) Received 'RELEASE_COMPL' in CC state INITIATED. Why does it release CC?
4. I further debugged, the reason for release is in fn. gsm48_cc_rx_release_compl in (gsm8_cc.c) it says mncc-cause = GSM48_IE_CAUSE. with no description.
I really don't know whats causing this issue. Any help would be much appreciated.
Or It would be very kind if someone could guide me.
My mncc socket create code:
struct gsm_mncc *mncc;
int i = 0;
int call_ref = new_callref++;
mncc = create_mncc(MNCC_SETUP_REQ, call_ref);
mncc->bearer_cap.radio = 3; /** Support TCH/H also*/
/** Supported rates **/
mncc->bearer_cap.speech_ver[i++] = 2; /* support full rate v2 */
mncc->bearer_cap.speech_ver[i++] = 0; /* support full rate v1 */
mncc->bearer_cap.speech_ver[i++] = 1; /* support half rate v2 */
mncc->bearer_cap.speech_ver[i] = -1; /* end of list */
/** END **/