Commit Graph

64 Commits

Author SHA1 Message Date
Michael Iedema
32f2258e6b Revert "update other bits in OpenBTS to use safer read() signature"
This reverts commit e09152ccb5.
2016-06-10 06:41:23 -07:00
Michael Iedema
e09152ccb5 update other bits in OpenBTS to use safer read() signature 2016-05-06 18:19:19 +02:00
Michael Iedema
3d59f52a3f sync from commercial 64a79ce7a18f7e3ef3fe5aeacf3b6629980d30b2 2014-12-04 21:25:19 +01:00
Michael Iedema
49087580a0 merge 5.0 preview from commercial 2014-07-16 23:57:22 +02:00
Michael Iedema
a10ae80981 intelligently detect which version of libortp is in use and adjust api usage accordingly 2014-07-10 12:11:25 +02:00
Michael Iedema
3e5cffbf5d - upstream r8284
- temporary workaround: conditionally strip '+' from MOSMS URI so mod_sms processes it correctly if realm mode is enabled
2014-04-18 01:26:29 +02:00
Michael Iedema
9fb7ea7288 - handle SMS differently when using a realm
(upstream r8194)
2014-04-09 18:15:50 +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
Michael Iedema
735faa60ef - add GSM.CallerID.Source so the source string for numeric caller id in SIP INVITES can be selected 2014-04-09 14:04:18 +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
Kurtis Heimerl
0d163d98c7 Right now OpenBTS requires a port field in inbound invites. This shouldn't be the case, a lacking port should be assumed to be 5060, the SIP standard port. This patch adds this feature.
423e4c2adf
2014-04-04 20:13:13 +02:00
Michael Iedema
c13f8bde8f merged in commercial openbts 2014-03-25 00:06:30 +01:00
Kurtis Heimerl
ae2591f20e Fixes handover assert. Basically, an earlier patch changed the RTP packet size.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@7154 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-12-31 00:44:10 +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
826c4f655f removing extraneous sqlite3 calls
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@5840 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-07-01 05:30:23 +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
2e1a7ed5d9 Merging another fix from Private. This one didn't count sip state fail as finished, leading to extra 480s
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4914 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-02-15 07:39:02 +00:00
Kurtis Heimerl
db0753a41c Synced sqlite3utils with private and fixed a small recursive bug in SIPEngine that was already fixed in private
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4912 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2013-02-15 02:57:54 +00:00
Kurtis Heimerl
2e9298dd54 reverted some fixes to keep synced with private branch
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4676 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-22 05:12:01 +00:00
Kurtis Heimerl
bd1ab51ed6 Correction of trivial warnings.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4670 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-22 04:30:56 +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
aa1e334cd9 r4605 in private:
Make the sending of 100 Trying optional for SIP MESSAGE, even though it violates RFC3428.
Closes #1194.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4613 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-12-11 06:11:23 +00:00
Kurtis Heimerl
10d16dd2d7 Fixed DTMF to follow the protocol instead of the hacky ortp business.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4523 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-24 10:32:27 +00:00
Kurtis Heimerl
5d83ca1591 r4299 in private:
Adds error checking in SIPMessages

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4510 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-23 08:34:10 +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
9536ac91dd r4252 in private:
Clarifying comment on removal of SIP FIFOs.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4496 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-11-22 05:29:12 +00:00
Kurtis Heimerl
272297cae9 r4230 in private: Do not create a new transaction if a call error condition can be identified early enough in SIPInterface::checkInvite.
r4229 in private: Added accessor for L3 CC Call State element.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4354 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-10-26 06:26:55 +00:00
Kurtis Heimerl
8a62a1c971 r4145 and 4210 in private:
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
2012-10-26 06:25:42 +00:00
Kurtis Heimerl
fc11da0de7 r4209 in private:
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
2012-10-26 06:25:32 +00:00
Kurtis Heimerl
d11974d660 r4166 in private:
Check to see if the channel is really active before issuing 486 Busy Here response.

git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@4176 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-09-24 20:02:45 +00:00
Kurtis Heimerl
b742914460 r4162 in private:
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
2012-09-24 20:02:36 +00:00
Kurtis Heimerl
d3af77f81f r4161 in private:
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
2012-09-24 20:02:32 +00:00
Kurtis Heimerl
e27757e1b6 Set state to fail instead of throwing a timeout in MOSMSWaitForSubmit
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3925 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-07-24 05:55:51 +00:00
Kurtis Heimerl
18accf3dc8 Fixed null pointer in MOSMSSubmit.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3923 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-07-24 05:29:37 +00:00
Kurtis Heimerl
0c199eb886 We no longer repeat INVITEs when we get a 100 TRYING.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3883 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-07-11 00:06:25 +00:00
Kurtis Heimerl
7e34fd52d6 removed notice about not caring about 100 trying messages. RFCs be damned, the proxies use them.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3857 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-06-28 06:10:45 +00:00
Kurtis Heimerl
f8ef9a060b SIP MESSAGES now wait when they receive a 100 TRYING, rather than repeating themselves.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3856 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-06-28 06:10:41 +00:00
Kurtis Heimerl
6b648a8399 Fixes #991 in public. We now appropriately handle rejections of our SIP MESSAGE content
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3812 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-06-19 21:33:26 +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
4e4552d65f attempting to fix #937 in public, basically forgot to check if sip_method exists.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3700 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-05-31 02:44:12 +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
2c1c69d9e4 moved subscriberRegistry code around SIPInterface so that it only updates on an outgoing REGISTER, INVITE, or MESSAGE
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3361 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-03-24 22:38:08 +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
73fd4c986c Fixes #718 in public. We now have a user agent header in all of our sip packets.
git-svn-id: http://wush.net/svn/range/software/public/openbts/trunk@3270 19bc5d8c-e614-43d4-8b26-e1612bc8e597
2012-03-06 07:46:17 +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
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