mirror of
https://github.com/PentHertz/OpenBTS.git
synced 2026-05-02 13:20:05 +00:00
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
This commit is contained in:
parent
915aa7b1f7
commit
8d0a9799ef
7 changed files with 193 additions and 45 deletions
|
|
@ -179,6 +179,8 @@ class TransactionEntry {
|
|||
|
||||
bool SIPFinished() { ScopedLock lock(mLock); return mSIP.finished(); }
|
||||
|
||||
bool instigator() { ScopedLock lock(mLock); return mSIP.instigator(); }
|
||||
|
||||
SIP::SIPState MOCSendINVITE(const char* calledUser, const char* calledDomain, short rtpPort, unsigned codec);
|
||||
SIP::SIPState MOCResendINVITE();
|
||||
SIP::SIPState MOCWaitForOK();
|
||||
|
|
@ -200,10 +202,12 @@ class TransactionEntry {
|
|||
void MTCInitRTP() { ScopedLock lock(mLock); mSIP.MTCInitRTP(); }
|
||||
|
||||
SIP::SIPState MODSendBYE();
|
||||
SIP::SIPState MODSendUnavail();
|
||||
SIP::SIPState MODSendCANCEL();
|
||||
SIP::SIPState MODResendBYE();
|
||||
SIP::SIPState MODResendCANCEL();
|
||||
SIP::SIPState MODWaitForOK();
|
||||
SIP::SIPState MODWaitForBYEOK();
|
||||
SIP::SIPState MODWaitForCANCELOK();
|
||||
SIP::SIPState MODWaitFor487();
|
||||
|
||||
SIP::SIPState MTDCheckBYE();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue