aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src
AgeCommit message (Collapse)AuthorFilesLines
2012-11-24use DLSMS and not DSMS in SMPP related code (merge with master)Harald Welte1-8/+8
2012-11-24SMPP: fix handling of UDH / multi-part for 7-bit messagesHarald Welte1-14/+47
... I would have never believed it is such a broken mindfuck.
2012-11-24SMPP: add small utility program 'smpp_mirror'Harald Welte5-21/+356
This program binds as ESME transceiver to a SMSC and simply mirrors back all SMS that it receives.
2012-11-24SMPP: Implement support for MO SMSHarald Welte5-124/+577
Each ESME can have a number of prefix-matching routes, or it can be a 'default route' to whcih all otherwise unknown SMS destinations are routed.
2012-11-24SMPP: VTY configuration of SMPP code, authentication supportHarald Welte7-15/+503
2012-11-21sms: Use the DLSMS instead of the DSMS category throughout our codeHolger Hans Peter Freyther6-73/+61
2012-11-21sms: Use the definitions from the libosmogsmHolger Hans Peter Freyther1-227/+5
Use the code that is shipped inside the libosmogsm library. Right now the signature (besides the static) and the implementation is the same. This makes using the libosmogsm SMC code more easy in the near future. For the gsm340_gen_oa we are now using a small wrapper to generate the proper type and numbering plan.
2012-11-16SMPP: build the smpp interface only in case of ./configure --enable-smppHarald Welte3-3/+7
2012-11-16SMPP: fix subscriber reference leak.Harald Welte1-1/+1
subscr_get_by_* is already increasing the refcount, we shouldn't do that a second time (thanks, Holger).
2012-11-16SMPP: More logging in error cases, fix UDH in 7bit ASCIIHarald Welte1-1/+17
2012-11-16SMPP: More consistent logging / error reportingHarald Welte1-25/+53
2012-11-16SMPP: Implement ALERT NOTIFICATION on attach/detach of subscribersHarald Welte3-2/+78
2012-11-16SMPP: Deal with DCS according to 03.38 and respect TP-PIDHarald Welte1-12/+11
2012-11-16SMPP: Introduce wrapper macro to memset all structures to zeroHarald Welte1-8/+14
For some reason, libsmpp34 is too smart to zero out the entire structure to which it is unpacking. This introduces an ugly wrapper macro to work around. This needs discussion with the libsmpp34 maintainer.
2012-11-16SMPP: Introduce ESME reference coountingHarald Welte4-18/+64
In case a ESME disappears after SUBMIT-SM but before the MT-SMS is delivered (transaction mode), we have to make sure the esme structure still exists.
2012-11-16SMPP: Implement transaction mode for SUBMIT-SMHarald Welte3-1/+78
WARNING: if the ESME disconnects, osmo_esme gets freed, and sms->smpp.esme might point to invalid/unallocated memory!
2012-11-16Initial support of SMPP interface for MT-SMSHarald Welte7-2/+775
2012-11-16Makefile: just a slight re-order / breaking of a lineHarald Welte1-3/+7
2012-11-12mgcp: Print both receivd and expected address in the error statementHolger Hans Peter Freyther1-2/+4
The log statement is split into two because inet_ntoa works on an internal buffer and would print the last address twice.
2012-11-12nat: Move the ctrl handling code into a separate fileHolger Hans Peter Freyther3-281/+328
Move to the control command handling out of the main file into a dedicated module. There are still some calls embedded into the main code but it will be moved soon.
2012-11-12mgcp: Send the jitter statistics at the end of the callHolger Hans Peter Freyther2-3/+11
2012-11-12mgcp: Calculate the jitter with the formula/code from the appendixHolger Hans Peter Freyther2-1/+43
Use a usec timestamp for the local time. The seconds to usec will swap over to the lower bits but this appears to be correct. The CLOCK_MONOTONIC is used to fulfill the RFC 3550 requirement even if it is a bit slower than the gettimeofday. Make sure to initialize transit in a way that the first transit time will be 0. Otherwise the jitter will contain the difference of the localtime and the remote time.
2012-11-12mgcp: Calculate the packet loss as of Appendix A of RFC 3550Holger Hans Peter Freyther2-4/+38
Calculate the expected packages and packet loss as of RFC 3550. The values should be clamped but our packet loss counter is 32 bits and not 24 and we should clamp at other values but I am waiting for some issues first before dealing with that.
2012-11-12mgcp: Calculate the wrap around as of Appendix A in RFC 3550Holger Hans Peter Freyther1-1/+20
This is missing the probation and the dealing with a remote restart. For the remote restart we will simply write a log statement as this is unlikely to happen during a call or if it does happen the call will be taken down by the BSC anyway.
2012-11-12mgcp: Document a difference between RFC 3550 and this codeHolger Hans Peter Freyther1-0/+8
Explain why this code deals with only one source and that this is a limit of some equipment (e.g. the nanoBTS).
2012-11-12mgcp: Align the variable naming with Appendix A of RFC 3550Holger Hans Peter Freyther1-4/+4
Align the naming inside the mgcp_rtp_state with the naming inside the 'source' struct of the appendix. Make first_seq_no/base_seq a uint16_t. This is removing rules for alignments and reduces the struct from 40 bytes to 36.
2012-11-12mgcp: Include statistics at the end of a connectionHolger Hans Peter Freyther1-9/+36
Follow the MGCP specification and send the collected statistics at the end of a call. Right now this does not include jitter, packet loss and delay.
2012-11-12mgcp: Remember the initial sequence number of the streamHolger Hans Peter Freyther1-0/+1
This information is required for calculating the packet loss at the end of a phone call.
2012-11-12mgcp: Count the received octets as of the MGCP specificationHolger Hans Peter Freyther2-0/+3
Count the received octets. This is encouraged by the MGCP specification. Use a 32bit counter that is good enough for more than 12 hours of a EFR call. This limit is good enough for the current configuration.
2012-11-12mgcp: Remove the lost_no from the mgcp statisticsHolger Hans Peter Freyther2-7/+2
The RFC 3435 specifies a different formula for calculating the lost packages. It involves the number of received packages and the delta of the sequence number.
2012-11-11bts: Really drop the BTS in case of an OML NACKHolger Hans Peter Freyther2-7/+6
The previous code didn't work as expected. The trx and dst pointer are located in an union and in the case of the Abis code the dst is used to point to the signalling link timeslot and not the TRX. The is_ipaccess_bts always returned false because the dst was casted to a trx while it was no trx. This fix was tested with the nack_test/NACKTest.st of the test repo.
2012-11-11sms: Re-order the include files after the separationf OpenBSC and osmocoreHolger Hans Peter Freyther1-3/+5
2012-11-07nat: sizeof char * != sizeof char[], make the code work on 64bit systemsHolger Hans Peter Freyther1-6/+6
The test cases were failing on 64bit systems because the sizeof code operated on the pointer size which is 8 and longer than the size that was intended to be used for comparing it.
2012-11-07nat: Inject a a=fmtp:%d to force the right AMR codeHolger Hans Peter Freyther1-3/+24
This assumes that AMR is used and/or the mode-set is ignored for other codecs by the remote end.
2012-11-02sms_queue: It is a bad idea to detach a subscriber on failed deliveryHolger Hans Peter Freyther1-13/+0
It is a bad idea to detach a subscriber. The subscriber will not be reachable until the next periodic updating cycle. In case we have too many failed deliveries we will need to reduce the period for the LU and implement a subscriber purging task. This is a preparation for the 29C3 and a problem Jolly experience with his type writer system.
2012-10-30mgcp: Fix the log message. This is inside the MDCX printing routineHolger Hans Peter Freyther1-1/+1
2012-10-29nat: Make MGCP helper routine static as it is internal to the MGCP codeHolger Hans Peter Freyther1-1/+1
2012-10-29nat: Document the high level goal of the MGCP/NAT routinesHolger Hans Peter Freyther1-2/+26
Provide some high level documentation that might help to understand what this code is supposed to be doing.
2012-10-27Set byte order defines when compiled on OSXTobias Engel2-2/+14
Byte order defines have a DARWIN prefix on OSX so the values openbsc expects are set from their Darwin counterparts when compiled on OSX.
2012-10-22si: Partially implement the range encoding for the SI.Holger Hans Peter Freyther4-220/+418
I saw the old copy of the "Appendix J" code too late and I have discovered some quirks and I am more familar with my implementation. Most noticable 'w' only needs to be as big as the input arfcn but requires the 'w' to be initialized. The power_of_2 implementation differs as well (mine matches the output of wirehsark). The f0 could be chosen in a better way but right now picking the lower bound is the easiest. It is not clear if to use modulo if the range is chosen in the middle. This can be improved in the future. Right now I have no bit fiddling for range128, 256 and 1024 as I was running out of time.
2012-10-18libbsc: fix message leaks on several error pathsPablo Neira Ayuso1-5/+9
This patch fixes several leak of msgbs in uncommon error paths. Add break at the end of default to make Holger and Peter happy ;-)
2012-10-18Allow setting of Control Channel Description parameters via VTYAndreas Eversberg3-4/+66
2012-10-09bsc: Do not print "SI 18" but SI2ter when the SI generation failsHolger Hans Peter Freyther1-2/+2
2012-10-08SI13: Set alpha value to a safer default of 0 instead of 10Harald Welte1-1/+1
alpha=0 (the new value) doesn't reduce MS transmission power during GPRS as much as we did with alpha=10. This is to optimize for coverage and to keep GPRS working at all cost, and not care about MS battery life time or uplink interference in surrounding cells. FIXME: This should be made configurable via the VTY and the normal default (unless configured otherwise by vty/config file) should be '6'.
2012-10-08bsc_init: Don't drop all BTSs because a single BTS had an errorHarald Welte1-6/+8
2012-09-29Fix: T3192 and T3193 must be similarAndreas Eversberg3-3/+3
In order to keep mobile at PACCH as long as possible the timer T3192 is set to 1500ms. This reduces the probablity of long lasting assignment process on CCCH for subsequent downlink TBFs.
2012-09-20mgcp: Add the disable color option to the mgcp binaryHolger Hans Peter Freyther1-0/+5
2012-09-19nncc_builtin: send CHAN MODE MODIFY after CALL PROCEEDINGHarald Welte1-6/+6
This is specified in fifugre 7.10c of 3GPP TS 04.08.
2012-09-17abis_nm: Provide a reason when an invalid channel configuration is usedHolger Hans Peter Freyther1-14/+42
Provide a human readable reason the channel combination is not allowed.
2012-09-17abis_nm: Log an error when the channel combination can not be set.Holger Hans Peter Freyther1-1/+1