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
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
Don't go the ringing state until we really get the 180 response.
Log potetial re-INVITEs.
Simpler version of SIPEngine::sameINVITE just checks CSeq, on the assumption that CallID already matched when we searched the transaction table.
Faster and does not rely on string conversion.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4347 19bc5d8c-e614-43d4-8b26-e1612bc8e597
Changes in SIP logging.
* Change "cannot parse" message to "out of place" and downgrade it.
* When we get a re-INVITE, log at the CRIT level.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4346 19bc5d8c-e614-43d4-8b26-e1612bc8e597
Detect busy users and respond with 486 Busy Here.
This fixes one complaint, but is a stop-gap until we implement a proper multi-transaction state machine in GSM L3.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4174 19bc5d8c-e614-43d4-8b26-e1612bc8e597
SIPEngine::instigator now based on a flag instead of a string comparison.
For some reason that we need to understand, string comparisons on oSIP messages are really not reliable.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4173 19bc5d8c-e614-43d4-8b26-e1612bc8e597
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
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