Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2009-07-01 | ip.access test numbers | Harald Welte | 1 | -0/+8 | |
2009-07-01 | add more ipaccess 12.21 OML extension definitions | Harald Welte | 1 | -0/+40 | |
2009-06-29 | Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbsc | Harald Welte | 34 | -242/+2447 | |
2009-06-29 | ipaccess-find: remove compile-time specified local ip address | Harald Welte | 1 | -5/+14 | |
2009-06-27 | fix various RSL msgb memory leaks in error paths | Harald Welte | 2 | -4/+11 | |
2009-06-27 | cosmetic cleanup of LOCATION UPDATE REQ print-out | Harald Welte | 1 | -8/+8 | |
2009-06-27 | add new DMEAS debug category for measurement reporting | Harald Welte | 4 | -20/+23 | |
disable it by default | |||||
2009-06-26 | make tests compile again after talloc branch changes | Harald Welte | 3 | -5/+11 | |
2009-06-26 | use taloc_zero() rather than talloc() and explisit memset() | Harald Welte | 7 | -19/+10 | |
2009-06-26 | fix two segfaults | Harald Welte | 1 | -2/+5 | |
* when paging callback is called, we need to consider a failed paging operation (i.e. lchan == NULL) * we have to zero-initialize every transaction that is allocated | |||||
2009-06-26 | zero-initialize some more memory that we allocate | Harald Welte | 2 | -2/+2 | |
2009-06-26 | add FIXME about memory leak every time we close telnet | Harald Welte | 1 | -0/+3 | |
2009-06-26 | fix MNCC memory leak | Harald Welte | 1 | -0/+1 | |
after passing the mncc structure (contained in msgb) to the mncc layer, we have to release its memory. This leak was discovered as a direct result of using talloc. | |||||
2009-06-26 | use named variant when allocating msgb's | Harald Welte | 11 | -17/+22 | |
when we generate a talloc report (SIGUSR1), we can now see which system allocated a given msgb, this helps memory leak debugging | |||||
2009-06-26 | Merge branch 'master' into talloc | Harald Welte | 5 | -19/+1486 | |
2009-06-26 | updated RSL wireshark patch | Harald Welte | 1 | -33/+225 | |
* parse ip.access messages with different (any) attribute order * identify RTP and RTCP streams to the RTP plugin | |||||
2009-06-26 | fix typos | Harald Welte | 2 | -2/+2 | |
2009-06-25 | add new wireshark A-bis OML dissector, incomplete | Harald Welte | 1 | -0/+1463 | |
2009-06-25 | enable OML dissector lookup, register ourselves as "gsm_abis_ip" dissector | Harald Welte | 1 | -13/+17 | |
2009-06-25 | abis_nm.h: Fix various typos | Harald Welte | 1 | -4/+4 | |
2009-06-22 | Add parsing of 'L1 information' IE of MEASUREMENT RESULT | Harald Welte | 1 | -2/+43 | |
2009-06-22 | Add parsing of 'L1 information' IE of MEASUREMENT RESULT | Harald Welte | 1 | -2/+43 | |
2009-06-22 | Merge branch 'master' into talloc | Harald Welte | 0 | -0/+0 | |
2009-06-22 | fix various talloc / dynamic bts/trx related bugs | Harald Welte | 2 | -5/+13 | |
Prior to this patch, nanobts was not able to operate after recent changes | |||||
2009-06-21 | switch to dynamically allocated BTS and TRX data structures | Harald Welte | 10 | -128/+204 | |
This makes it much easier to do run-time configuration using the vty interface. | |||||
2009-06-20 | fix setfault during registration of VTY TRX function | Harald Welte | 1 | -1/+1 | |
2009-06-20 | introduce talloc all over OpenBSC | Harald Welte | 20 | -47/+2149 | |
2009-06-20 | fix setfault during registration of VTY TRX function | Harald Welte | 1 | -1/+1 | |
2009-06-20 | replace 'struct gsm_attr' by 'struct tlv_parsed' | Harald Welte | 1 | -7/+4 | |
This is where we will store the 12.21 / NM attributes for the given object. | |||||
2009-06-20 | Introduce BS and MS power control related functions | Harald Welte | 6 | -6/+212 | |
* add bts->band field plus corresponding VTY and commandline argument * add trx->nominal_power and trx->max_power_red fields * add rsl_chan_bs_power_ctrl() to control TRX RF power for a given TS * add rsl_chan_ms_power_ctrl() to control MS RF power for a given lchan. | |||||
2009-06-20 | BS11: use abis_nm_set_{bts,radio}_attr() | Harald Welte | 1 | -16/+14 | |
BS11 should only use the raw message sending function if there is no standard alternative. For TRX and BTS attributes, we have the standard variant. | |||||
2009-06-15 | mncc: Add IMSI to gsm_mncc | Andreas Eversberg | 2 | -2/+20 | |
This allows us to do subscriber lookups based on IMSI and e.g. establish MT calls to subscribers with no assigned extension. | |||||
2009-06-14 | Merge branch 'mncc-harald' | Harald Welte | 17 | -446/+2817 | |
2009-06-14 | Merge branch 'master' of gitosis@bs11-abis.gnumonks.org:openbsc | Harald Welte | 3 | -3/+3 | |
2009-06-14 | Use correct cause value and cause location | Andreas Eversberg | 1 | -10/+22 | |
Fixed indication of cause value and location. Replaced plain cause numbers by definitions from header file. diff --git a/openbsc/src/gsm_04_08.c b/openbsc/src/gsm_04_08.c index f323a2a..39e7b1f 100644 --- a/openbsc/src/gsm_04_08.c +++ b/openbsc/src/gsm_04_08.c @@ -1865,8 +1865,7 @@ int mncc_release_ind(struct gsm_network *net, struct gsm_trans *trans, memset(&rel, 0, sizeof(rel)); rel.callref = callref; - mncc_set_cause(&rel, GSM48_CAUSE_LOC_PRN_S_LU, - GSM48_CC_CAUSE_UNASSIGNED_NR); + mncc_set_cause(&rel, location, value); return mncc_recvmsg(net, trans, MNCC_REL_IND, &rel); } @@ -1879,7 +1878,9 @@ void free_trans(struct gsm_trans *trans) /* send release to L4, if callref still exists */ if (trans->callref) { /* Ressource unavailable */ - mncc_release_ind(trans->network, trans, trans->callref, 1, 47); + mncc_release_ind(trans->network, trans, trans->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); if (trans->state != GSM_CSTATE_NULL) new_cc_state(trans, GSM_CSTATE_NULL); } @@ -1960,7 +1961,7 @@ static int setup_trig_pag_evt(unsigned int hooknum, unsigned int event, subscr->extension); /* Temporarily out of order */ mncc_release_ind(transt->network, transt, transt->callref, - 1, 27); + 1, GSM48_CC_CAUSE_DEST_OOO); transt->callref = 0; free_trans(transt); break; @@ -2270,7 +2271,8 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) "This is not allowed!\n"); /* Temporarily out of order */ rc = mncc_release_ind(trans->network, trans, trans->callref, - 1, 47); + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); trans->callref = 0; free_trans(trans); return rc; @@ -2287,7 +2289,8 @@ static int gsm48_cc_tx_setup(struct gsm_trans *trans, void *arg) if ((trans_id_mask & 0x007f) == 0x7f) { /* no free transaction ID */ rc = mncc_release_ind(trans->network, trans, trans->callref, - 1, 47); + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); trans->callref = 0; free_trans(trans); return rc; @@ -3373,14 +3376,18 @@ int mncc_send(struct gsm_network *net, int msg_type, void *arg) "unknown callref %d\n", data->called.number, get_mncc_name(msg_type), data->callref); /* Invalid call reference */ - return mncc_release_ind(net, NULL, data->callref, 1, 81); + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_INVAL_TRANS_ID); } if (!data->called.number[0] && !data->called.imsi[0]) { DEBUGP(DCC, "(bts - trx - ts - ti) " "Received '%s' from MNCC with " "no number or IMSI\n", get_mncc_name(msg_type)); /* Invalid number */ - return mncc_release_ind(net, NULL, data->callref, 1, 28); + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_INV_NR_FORMAT); } /* New transaction due to setup, find subscriber */ if (data->called.number[0]) @@ -3394,7 +3401,9 @@ int mncc_send(struct gsm_network *net, int msg_type, void *arg) "unknown subscriber %s\n", data->called.number, get_mncc_name(msg_type), data->called.number); /* Unknown subscriber */ - return mncc_release_ind(net, NULL, data->callref, 1, 1); + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_UNASSIGNED_NR); } /* If subscriber is not "attached" */ if (!subscr->lac) { @@ -3404,14 +3413,18 @@ int mncc_send(struct gsm_network *net, int msg_type, void *arg) get_mncc_name(msg_type), data->called.number); subscr_put(subscr); /* Temporarily out of order */ - return mncc_release_ind(net, NULL, data->callref, 1, 27); + return mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_DEST_OOO); } /* Create transaction */ if (!(trans = calloc(1, sizeof(struct gsm_trans)))) { DEBUGP(DCC, "No memory for trans.\n"); subscr_put(subscr); /* Ressource unavailable */ - mncc_release_ind(net, NULL, data->callref, 1, 47); + mncc_release_ind(net, NULL, data->callref, + GSM48_CAUSE_LOC_PRN_S_LU, + GSM48_CC_CAUSE_RESOURCE_UNAVAIL); return -ENOMEM; } trans->callref = data->callref; | |||||
2009-06-14 | Fix lchan refcounting in case of IMSI DETACH | Andreas Eversberg | 1 | -2/+0 | |
Removed lchan_put() after IMSI detach function. We don't need to put lchan, because we don't hold a ressource. | |||||
2009-06-12 | make btstype2str return a const char* to make gcc 4.4 happy | Holger Hans Peter Freyther | 2 | -2/+2 | |
2009-06-12 | Merge commit 'origin/master' into mncc-harald | Harald Welte | 1 | -1/+1 | |
2009-06-12 | [misc] Fix make distcheck by adding compat_af_isdn.h | Holger Hans Peter Freyther | 1 | -1/+1 | |
2009-06-12 | SMS: fix parsing of destination phone number | Harald Welte | 1 | -2/+3 | |
2009-06-12 | Increase LCHAN_RELEASE_TIMEOUT to 10 seconds | Harald Welte | 1 | -1/+1 | |
If we release the LCHAN after the CM SERVICE ACK too early, we can no longer receive longer SMS messages... so let's increase it to 10 secs. | |||||
2009-06-12 | 04.08: Make mncc-harald branch work | Harald Welte | 1 | -2/+2 | |
This fixes two reasons for crashes due to uninitialized memory or wrong pointer passing introduced in my own mncc modifications | |||||
2009-06-12 | SMS: fix parsing of destination address BCD | Harald Welte | 1 | -1/+1 | |
this bug was introduced in Andreas' MNCC patches while altering decode_bcd_number(). | |||||
2009-06-12 | abis_nm: fix printing of ADMinistrative state | Harald Welte | 1 | -1/+1 | |
2009-06-11 | use less magic numbers (04.08 CC cause values) | Harald Welte | 3 | -13/+83 | |
Introduce a gsm48_cc_cause enum and use it from gsm_04_08 and MNCC, also make sure we use gsm48_cause_loc rather than plain numbers. | |||||
2009-06-10 | reworked MNCC codebase | Harald Welte | 15 | -441/+2731 | |
This is Harald's reworked MNCC base, slowly heading towards integration into master. The key changes are: * provide much more structure to the data in gsm_mncc * encode_* and decode_* functions now take a structure rather than tons of individual arguments (whose order nobody can remember) * make sure we don't have copies of the same code everywhere by introducing mncc_set_cause() and mncc_release_ind() * save horizontal screen space if possible * make sure we break lines > 80 characters | |||||
2009-06-10 | Merge commit 'origin/master' | Harald Welte | 14 | -43/+307 | |
2009-06-10 | [pcap] Write incoming packages without the extra mISDN header | Andreas Eversberg | 1 | -4/+7 | |
This patch fixes the PCAP logging. If frames are received from E1 interface, an 8 byte mISDN header (MISDN_HEADER_LEN) is in front of the RSL packet. When frames are transmitted to the E1 interface, the pcap_write_packet function will get a message buffer without the mISDN header in front of the RSL packet. The pcap file was tested and the output is correct. Follow up patches should make use the msgb->l2, make the ipaccess code use the pcap writing too... | |||||
2009-06-10 | Handle and dispatch paging requests in gsm_subscriber | Holger Freyther | 3 | -2/+110 | |
Implement subscr_get_channel and subscr_put_channel to a degree that SMS Submit and phone call scheduled at the same time will deliver both (one after the other). | |||||
2009-06-10 | [channel] Add a test case for the request foo in gsm_subscriber.c | Holger Hans Peter Freyther | 4 | -1/+88 | |
This is simulating a successfull request and is causing a segfault. The test is done with a "mock object" in this case a minimalistic paging implementation which is enough to show the crash. Compare that the callback data is supposed to be the same.... |