mirror of
https://github.com/RangeNetworks/openbts.git
synced 2025-11-04 22:03:17 +00:00
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
This commit is contained in:
@@ -97,7 +97,7 @@ SIPEngine::SIPEngine(const char* proxy, const char* IMSI)
|
|||||||
mSIPIP(gConfig.getStr("SIP.Local.IP")),
|
mSIPIP(gConfig.getStr("SIP.Local.IP")),
|
||||||
mINVITE(NULL), mLastResponse(NULL), mBYE(NULL),
|
mINVITE(NULL), mLastResponse(NULL), mBYE(NULL),
|
||||||
mCANCEL(NULL), mERROR(NULL), mSession(NULL),
|
mCANCEL(NULL), mERROR(NULL), mSession(NULL),
|
||||||
mTxTime(0), mRxTime(0), mState(NullState),
|
mTxTime(0), mRxTime(0), mState(NullState), mInstigator(false),
|
||||||
mDTMF('\0'),mDTMFDuration(0)
|
mDTMF('\0'),mDTMFDuration(0)
|
||||||
{
|
{
|
||||||
assert(proxy);
|
assert(proxy);
|
||||||
@@ -210,6 +210,8 @@ void SIPEngine::saveERROR(const osip_message_t *ERROR, bool mine)
|
|||||||
osip_message_clone(ERROR,&mERROR);
|
osip_message_clone(ERROR,&mERROR);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if 0
|
||||||
|
This was replaced with a simple flag set during MO transactions.
|
||||||
/* we're going to figure if the from field is us or not */
|
/* we're going to figure if the from field is us or not */
|
||||||
bool SIPEngine::instigator()
|
bool SIPEngine::instigator()
|
||||||
{
|
{
|
||||||
@@ -218,6 +220,7 @@ bool SIPEngine::instigator()
|
|||||||
return (!strncmp(from_uri->username,mSIPUsername.c_str(),15) &&
|
return (!strncmp(from_uri->username,mSIPUsername.c_str(),15) &&
|
||||||
!strncmp(from_uri->host, mSIPIP.c_str(), 30));
|
!strncmp(from_uri->host, mSIPIP.c_str(), 30));
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void SIPEngine::user( const char * IMSI )
|
void SIPEngine::user( const char * IMSI )
|
||||||
{
|
{
|
||||||
@@ -434,6 +437,7 @@ SIPState SIPEngine::MOCSendINVITE( const char * wCalledUsername,
|
|||||||
LOG(INFO) << "user " << mSIPUsername << " state " << mState;
|
LOG(INFO) << "user " << mSIPUsername << " state " << mState;
|
||||||
// Before start, need to add mCallID
|
// Before start, need to add mCallID
|
||||||
gSIPInterface.addCall(mCallID);
|
gSIPInterface.addCall(mCallID);
|
||||||
|
mInstigator = true;
|
||||||
|
|
||||||
// Set Invite params.
|
// Set Invite params.
|
||||||
// new CSEQ and codec
|
// new CSEQ and codec
|
||||||
@@ -1123,6 +1127,7 @@ SIPState SIPEngine::MOSMSSendMESSAGE(const char * wCalledUsername,
|
|||||||
LOG(INFO) << "SIP send to " << wCalledUsername << "@" << wCalledDomain << " MESSAGE " << messageText;
|
LOG(INFO) << "SIP send to " << wCalledUsername << "@" << wCalledDomain << " MESSAGE " << messageText;
|
||||||
// Before start, need to add mCallID
|
// Before start, need to add mCallID
|
||||||
gSIPInterface.addCall(mCallID);
|
gSIPInterface.addCall(mCallID);
|
||||||
|
mInstigator = true;
|
||||||
|
|
||||||
// Set MESSAGE params.
|
// Set MESSAGE params.
|
||||||
char tmp[50];
|
char tmp[50];
|
||||||
|
|||||||
@@ -126,6 +126,7 @@ private:
|
|||||||
//@}
|
//@}
|
||||||
|
|
||||||
SIPState mState; ///< current SIP call state
|
SIPState mState; ///< current SIP call state
|
||||||
|
bool mInstigator; ///< true if this side initiated the call
|
||||||
|
|
||||||
/**@name RFC-2833 DTMF state. */
|
/**@name RFC-2833 DTMF state. */
|
||||||
//@{
|
//@{
|
||||||
@@ -161,7 +162,7 @@ public:
|
|||||||
|
|
||||||
/** Return if the communication was started by us (true) or not (false) */
|
/** Return if the communication was started by us (true) or not (false) */
|
||||||
/* requires an mINVITE be established */
|
/* requires an mINVITE be established */
|
||||||
bool instigator();
|
bool instigator() const { return mInstigator; }
|
||||||
|
|
||||||
/** Set the user to IMSI<IMSI> and generate a call ID; for mobile-originated transactions. */
|
/** Set the user to IMSI<IMSI> and generate a call ID; for mobile-originated transactions. */
|
||||||
void user( const char * IMSI );
|
void user( const char * IMSI );
|
||||||
|
|||||||
Reference in New Issue
Block a user