62 Commits

Author SHA1 Message Date
pat
4e4d559407 Fix tmsis -a. 2016-07-26 08:46:50 -07:00
pat
61072e77b0 Just move some LOG(DEBUG) messages into a scopedlock protected area. 2016-07-26 08:39:12 -07:00
pat
3f9396dd60 Reduce the post-reassignment sleep that is meant to prevent a race from 1 second to 400ms. This will reduce spurious "blocked more than one second at..." errors and hopefully is still long enough to overcome the race condition if the system is not too heavily loaded. This is a temporary measure - release6 eliminates these issues. 2016-07-14 07:42:57 -07:00
pat
af0221fab4 Fix TranEntry double deletion introduced by previous commit f93c48. 2016-07-14 07:06:40 -07:00
pat
c0cd4b778e Attempt to fix a locking problem in mmCheckSipMsgs and mmCheckTimers. Tickets #1905 and #1914. Formerly these methods held the global lock while running the transaction state machine; now they hold the global lock only to generate a temporary vector of transactions to process, then release the global lock and rely on a lock in the transaction to prevent simultaneous access to the state machine.
Keep deleted TranEntrys around a while after they are deleted to try to avoid crashes:
Add sDeletedTranEntrys list to hold last 100 deleted TranEntrys.
Add TranDeleted CCState.  Set this when transaction is being deleted.  Check for this state when starting state machines.
2016-07-14 07:06:02 -07:00
Michael Iedema
3d59f52a3f sync from commercial 64a79ce7a18f7e3ef3fe5aeacf3b6629980d30b2 2014-12-04 21:25:19 +01:00
Michael Iedema
f392193614 Fix bug in MOC to MTC calls (hat-tip Pat) 2014-07-24 19:35:07 -07:00
Michael Iedema
49087580a0 merge 5.0 preview from commercial 2014-07-16 23:57:22 +02:00
Michael Iedema
3b79030258 - make sure all RTP ports are unsigned
- prevents totally bogus SDP offers from being made due to conversion kabooms (m=audio 4294935774 RTP/AVP 3)
(upstream r8160)
2014-04-09 15:23:55 +02:00
Michael Iedema
e62971ef41 - remove qop element from REGISTER because proxies may try to reauth if it is present
- make sure SRES is always 8 characters in length, fixes periodic registration failures when leading zeros are present
(upstream r8155)
2014-04-09 15:20:19 +02:00
Michael Iedema
0ce13ce1b8 - add new SIP.Realm auth mode (upstream r8146) 2014-04-09 15:17:09 +02:00
svangundy
ae8258ec61 Checkpoint check in. Basic smqueue 3gpp functionality is working. Many, I hope all, crashes on invalid data are gone. Not working: addresses with a plus in them, text mode. Flag to force tags from openbts is enabled 2014-04-08 12:40:53 +02:00
Michael Iedema
c13f8bde8f merged in commercial openbts 2014-03-25 00:06:30 +01:00
Kurtis Heimerl
6dfce1265c ortp 0.20 compat
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@6191 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-08-15 23:23:42 +00:00
Kurtis Heimerl
5289a229d9 sync of openbts
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@6168 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-08-14 00:52:14 +00:00
Kurtis Heimerl
7178e8367e syncing commonlibs with Many thanks to Michael Iedema for these patches, makes config a lot better.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@5655 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-05-31 21:47:25 +00:00
Kurtis Heimerl
9c7ea38965 Roughly r4224 in private:
More reliable detection of busy condition on MTC.
Also adds new GSM state, "Busy Reject".

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4920 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-02-16 13:03:08 +00:00
Kurtis Heimerl
d26fa0a4aa r4223 in Private: Clean up properly when we get the SIP 486 response.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4919 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-02-16 13:02:31 +00:00
Kurtis Heimerl
f7903a1623 r 4258 in private: Check for defunct transactions when handling Paging Respone.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4918 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-02-16 12:43:44 +00:00
Kurtis Heimerl
96bd5dc4de r4259 in private:
More checking for defunct tranaactions.
Send RELEASE on TCH if the call fails before EA Assignment step.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4915 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-02-15 08:14:44 +00:00
Kurtis Heimerl
fe0dec2481 Alexander's patch: 3b05a4929c
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4913 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-02-15 07:12:05 +00:00
Kurtis Heimerl
f9e71e7747 Potentially fixed a bug where a message sent from the CLI isn't responded to, gets cleared from the paging table and then segfaults as it has no invite attached.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4882 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-02-05 10:05:19 +00:00
Kurtis Heimerl
a98dc82267 Patch 4545 in private:
Added support for performance-reporting counters.

and

Patch 4588 in private:
For some reason, ReportingTest won't build on all systems.  Since it is not part of the actuall application, I am commenting it out from the Makefile.am for now.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4627 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-16 06:06:32 +00:00
Kurtis Heimerl
b6ad879c08 r4589 in private:
Renamed GSM.CCCH.PCH.Reserve to GSM.Channels.SDCCHReserve and fixed bugs in the comparison and startup test.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4614 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-11 08:07:00 +00:00
Kurtis Heimerl
4885efcd14 r4408 in private:
Add code from David to keep the transceiver running when OpenBTS crashes and check if it is running when starting up.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4512 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-23 08:35:46 +00:00
Kurtis Heimerl
a2b16cd268 r4317 in private:
Add a few SIP message fixes. Add function that may be used for accepting out of order 200 and 487 messages.

Note that some of this was pushed earlier for compilation reasons

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4511 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-23 08:34:42 +00:00
Kurtis Heimerl
768815e07f Oh kay. Lots of patches trying to catch up to mainline:
r4232: Major change in hos entries are removed from a TransactionTable.

>From now on, the only place were entries are actually removed is in TransactionTable::innerRemove.
Anywhere else, the remove methods just set a flag to tag the entry for later removal be innerRemove.
This allows us to survive situations where we try to touch transactions that have been removed already.  We still log at the ERR level, but no more segfaults.

Updated all of the TransactionTable "find" methods to not return pointers to dead or removed tranactions.

Updated find-by-channel search to return the transaction entry with the highest transaction number, which fixes a bug that sometimes picked up the wrong transaction records during EA TCH assignment.

r4253: New exception class for when someone tries to use a "removed" transaction.

r4254: Updated copyright notice.

r4265: Unlock TransactionEntry::mLock while blocked on SIP message FIFOs in SIPEngine.  This does wonders to reduce lock contention and make everything more snappy.

Use Mutex::tryLock in TransactionEntry::dead and if lock is held, assume that it is not dead.  This also does a lot to reduce lock contention.

r4294: Change Um congestion response back to SIP 503.

r4295: When deleting an entry that has failed to respond to paging, send a SIP 480 response so the switch knows that transaction is dead.

r4412: Fixed bug that was causing SIPInterface to crash when the IMSI cannot be extracted from the To: header.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4497 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-22 05:30:27 +00:00
Kurtis Heimerl
4acfd35688 r4218 in private:
Put dead transaction checks into 2 groups - 30-seconds and 180-seconds.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4495 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-22 05:28:36 +00:00
Kurtis Heimerl
f9b7ce9e55 Alexander noted a few errant "+"s that had snuck in from a previous manual merge. seems to have no effect, but now removed
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4489 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-15 00:10:56 +00:00
Kurtis Heimerl
94c045b1b3 r4436 in private:
Change the order in which RRLP messages are sent. Request, then provide assistance (if needed), then request.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4463 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-11 10:31:05 +00:00
Kurtis Heimerl
c7c4b4ae47 alexander's patch #2: A few typos in comments
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4460 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-11 10:16:26 +00:00
Kurtis Heimerl
de661af849 r4231 in private: If we receive messages in the middle of channel assignment, run them through the GSM dispatcher. Responses are still not going back on the correct channel, but even this is a huge improvement in clearing up calls after early cancellation.
Add a handler for L3 CC Statu message, and terminate the call if the message indicates an error.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4355 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-10-26 06:27:04 +00:00
Kurtis Heimerl
59c7664fba r4216 and 4217 in private:
Make multiple attempts at TCH channel assignment.  (Yes, I saw this do something useful during one test.)
Log abmormal Disconnect and Release at NOTICE level.

Accessors for Cause element in L3 CC Release.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4350 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-10-26 06:26:15 +00:00
Kurtis Heimerl
6cb6fd1fb7 r4167 in private:
On cancellation of inbound MTC, respond with 486 Busy Here instead of 480 Temporarily Unavailable.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4177 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-09-24 20:02:48 +00:00
Kurtis Heimerl
559eedfb17 r4164 in private:
Make gTransactionTable.clearDeadEntries() much less agressive.  See ticket #1128 for an example of the problem that can cause.

Also includes commented-out code for a method on TransactionTable to detect busy users, but we didn't need it.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4175 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-09-24 20:02:41 +00:00
Kurtis Heimerl
56d93e6c0a r4160 in private: Change in level of a logging message.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4172 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-09-24 20:02:28 +00:00
Kurtis Heimerl
744777e60b Fixed #146 in public. We now update the TMSI table on all outgoing transactions as well as when we receive an answer to a paging request
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4159 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-09-23 22:42:58 +00:00
Kurtis Heimerl
182fde503d adding regex back into MobilityManagement for OpenRegistration. It's in the manual, we should have it in the code.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4151 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-09-21 20:07:40 +00:00
Kurtis Heimerl
6344347af0 Fixed #40 in public. We now handle CMServiceAbort correctly.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3973 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-07-31 23:07:04 +00:00
Kurtis Heimerl
af13ea7902 Fixed #932 and #905 in public. OpenBTS now responds negatively to SIP
re-invites, though the specific effect of this depends on the client
 sending the re-invite. In the case of FS, it causes the RTP stream to
 break. We also now complain when invites time out, sending an alert to the
 user about the proxy status.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3810 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-06-19 20:22:20 +00:00
Kurtis Heimerl
32c86513e3 $ dropped by the network by retransmitting.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3677 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-05-28 01:07:16 +00:00
Kurtis Heimerl
3b32f8f1a4 Had error code backwards for SR, caused spurious SR failure messages. Fixed.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3356 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-03-23 06:25:20 +00:00
Kurtis Heimerl
d0a80878e8 Fixes #580 in public. We had some transactions getting stuck in the transaction table, but no longer. We more aggressively clear the table.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3300 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-03-10 02:42:55 +00:00
Kurtis Heimerl
8d0a9799ef Fixes #734 in public, , as well as rearchitects a number of SIP
control flows. Basically, there was a small bug where I forgot to listen
 for an OK, which caused transactions to stick around too long and fuck
 everything up. That was quickly fixed, but my compulsion required me to
 reorganize the code to avoid such errors in the future. I implemented
 another new feature as well, we now respond with a 480 Temporarily
 Unavailable message (rather than cancel) when canceling an INCOMING call.
 The prior behavior was incorrect.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3264 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-03-05 03:53:57 +00:00
Kurtis Heimerl
915aa7b1f7 Fixed canceling bug in Public. I'm missing my personal radio (loaned to class) and so it's not well tested... something is up with FS and cancels.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3244 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-02-28 01:30:24 +00:00
Kurtis Heimerl
7244fa7271 Fixes #499 in public. If our ACK was missed, the switch would resend an OK and we didn't respond to it. We do now.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3237 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-02-25 21:46:49 +00:00
Kurtis Heimerl
ec026dfe2e Fixes #692 in public. This updates the SR (ip/port) for a user on every SIP transaction. Also standardizes SR interface to use just strings, no more external char*. Will modify actual SR later.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3236 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-02-25 21:07:11 +00:00
Kurtis Heimerl
3f264a9e86 Fixes #711 in private. We now check RTP ports before allocation, to ensure they're not already in use.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3225 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-02-24 07:59:11 +00:00
Kurtis Heimerl
56dd0dd9df Fixing RRLP timeouts during LUR. We now query for RRLP after the LUR has completed but before the channel is closed.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3202 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-02-18 09:21:48 +00:00
Kurtis Heimerl
a1609072d7 Brandon Creighton's patch: A lot of refactoring, but separates global object creation from initialization. Allows for logging of database initialization failures.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3165 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-02-10 01:45:41 +00:00