r3280 - in trunk: libminisip/source/subsystem_signaling/sip libmsip/include/libmsip libmsip/source/dialogs
erik at minisip.org
erik at minisip.org
Mon May 21 14:27:52 CEST 2007
Author: erik
Date: 2007-05-21 14:27:52 +0200 (Mon, 21 May 2007)
New Revision: 3280
Modified:
trunk/libminisip/source/subsystem_signaling/sip/SipDialogConfVoip.cxx
trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceClient.cxx
trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceServer.cxx
trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoip.cxx
trunk/libmsip/include/libmsip/SipDialog.h
trunk/libmsip/source/dialogs/SipDialog.cxx
trunk/libmsip/source/dialogs/SipDialogManagement.cxx
trunk/libmsip/source/dialogs/SipDialogRegister.cxx
Log:
* A SIP dialog must have a CallId. Previously, each dialog had
to remember to generate a random CallId. Now this is done
in the SipDialog superclass.
It was easy to forget to set this inherited attribute, and
the code to do this should not be copied into each dialog
constructor.
Modified: trunk/libminisip/source/subsystem_signaling/sip/SipDialogConfVoip.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/SipDialogConfVoip.cxx 2007-05-21 09:01:14 UTC (rev 3279)
+++ trunk/libminisip/source/subsystem_signaling/sip/SipDialogConfVoip.cxx 2007-05-21 12:27:52 UTC (rev 3280)
@@ -905,7 +905,7 @@
SipDialogConfVoip::SipDialogConfVoip(MRef<ConfMessageRouter*> confCb, MRef<SipStack*> stack, MRef<SipIdentity*> ident, MRef<SipSoftPhoneConfiguration*> pconf, MRef<Session *> mediaSession, minilist<ConfMember> *conflist,string confid, string cid) :
- SipDialog(stack,ident),
+ SipDialog(stack,ident,cid),
confCallback(confCb),
lastInvite(NULL),
phoneconf(pconf),
@@ -943,11 +943,6 @@
//cerr << "CONFDIALOG: "+ ((*list)[1]).uri << endl;
//cerr << "CONFDIALOG: "+itoa(numConnected)<< endl;
- if (cid=="")
- dialogState.callId = itoa(rand())+"@"+getSipStack()->getStackConfig()->externalContactIP;
- else
- dialogState.callId = cid;
-
dialogState.localTag = itoa(rand());
/* We will fill that later, once we know if that succeeded */
@@ -956,7 +951,7 @@
setUpStateMachine();
}
SipDialogConfVoip::SipDialogConfVoip(MRef<ConfMessageRouter*> confCb, MRef<SipStack*> stack, MRef<SipIdentity*> ident, MRef<SipSoftPhoneConfiguration*> pconf, MRef<Session *> mediaSession, string confid, string cid) :
- SipDialog(stack,ident),
+ SipDialog(stack,ident, cid),
confCallback(confCb),
lastInvite(NULL),
phoneconf(pconf),
@@ -966,10 +961,6 @@
//cerr<<"SDCVididididididididididdididi "+confId<<endl;
//cerr << "CONFDIALOG: received"<< endl;
type="connect";
- if (cid=="")
- dialogState.callId = itoa(rand())+"@"+getSipStack()->getStackConfig()->externalContactIP;
- else
- dialogState.callId = cid;
dialogState.localTag = itoa(rand());
Modified: trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceClient.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceClient.cxx 2007-05-21 09:01:14 UTC (rev 3279)
+++ trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceClient.cxx 2007-05-21 12:27:52 UTC (rev 3280)
@@ -341,14 +341,10 @@
SipDialogPresenceClient::SipDialogPresenceClient(MRef<SipStack*> stack,
MRef<SipIdentity*> ident,
bool use_stun) :
- SipDialog(stack,ident),
+ SipDialog(stack,ident, ""),
useSTUN(use_stun)
{
-
- dialogState.callId = itoa(rand())+"@"+getSipStack()->getStackConfig()->externalContactIP;
-
dialogState.localTag = itoa(rand());
-
setUpStateMachine();
}
Modified: trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceServer.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceServer.cxx 2007-05-21 09:01:14 UTC (rev 3279)
+++ trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceServer.cxx 2007-05-21 12:27:52 UTC (rev 3280)
@@ -225,16 +225,11 @@
SipDialogPresenceServer::SipDialogPresenceServer(MRef<SipStack*> stack,
MRef<SipIdentity*> ident,
bool use_stun) :
- SipDialog(stack,ident),
+ SipDialog(stack,ident,""),
useSTUN(use_stun),
onlineStatus("online")
{
-
-// callId = itoa(rand())+"@"+getDialogConfig()->inherited.externalContactIP;
- dialogState.callId="";
-
dialogState.localTag=itoa(rand());
-
setUpStateMachine();
}
Modified: trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoip.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoip.cxx 2007-05-21 09:01:14 UTC (rev 3279)
+++ trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoip.cxx 2007-05-21 12:27:52 UTC (rev 3280)
@@ -584,17 +584,12 @@
MRef<SipSoftPhoneConfiguration*> pconf,
MRef<Session *> mediaSession,
string cid ) :
- SipDialog(stack,ident),
+ SipDialog(stack,ident, cid),
phoneconf(pconf),
mediaSession(mediaSession),
notifyEarlyTermination(false),
lastInvite(NULL)
{
- if (cid=="")
- dialogState.callId = itoa(rand())+"@"+getSipStack()->getStackConfig()->externalContactIP;
- else
- dialogState.callId = cid;
-
dialogState.localTag = itoa(rand());
/* We will fill that later, once we know if that succeeded */
Modified: trunk/libmsip/include/libmsip/SipDialog.h
===================================================================
--- trunk/libmsip/include/libmsip/SipDialog.h 2007-05-21 09:01:14 UTC (rev 3279)
+++ trunk/libmsip/include/libmsip/SipDialog.h 2007-05-21 12:27:52 UTC (rev 3280)
@@ -126,8 +126,11 @@
* Constructor.
* @param dContainer The Dialog Container
* @param callconf The Dialog Configuration
+ * @param callId If an empty string is given as the
+ * CallId, then a random callId will be
+ * generated.
*/
- SipDialog(MRef<SipStack*> stack, MRef<SipIdentity*> identity);
+ SipDialog(MRef<SipStack*> stack, MRef<SipIdentity*> identity, std::string callId);
/**
* Deconstructor.
Modified: trunk/libmsip/source/dialogs/SipDialog.cxx
===================================================================
--- trunk/libmsip/source/dialogs/SipDialog.cxx 2007-05-21 09:01:14 UTC (rev 3279)
+++ trunk/libmsip/source/dialogs/SipDialog.cxx 2007-05-21 12:27:52 UTC (rev 3280)
@@ -55,9 +55,15 @@
using namespace std;
-SipDialog::SipDialog(MRef<SipStack*> stack, MRef<SipIdentity*> identity):
+SipDialog::SipDialog(MRef<SipStack*> stack, MRef<SipIdentity*> identity, string cid):
StateMachine<SipSMCommand,string>(stack->getTimeoutProvider())
{
+ if (cid=="")
+ dialogState.callId = itoa(rand())+"@"+getSipStack()->getStackConfig()->externalContactIP;
+ else
+ dialogState.callId = cid;
+
+
callConfig = new SipDialogConfig(stack);
if (identity){
Modified: trunk/libmsip/source/dialogs/SipDialogManagement.cxx
===================================================================
--- trunk/libmsip/source/dialogs/SipDialogManagement.cxx 2007-05-21 09:01:14 UTC (rev 3279)
+++ trunk/libmsip/source/dialogs/SipDialogManagement.cxx 2007-05-21 12:27:52 UTC (rev 3280)
@@ -684,12 +684,9 @@
}
SipDialogManagement::SipDialogManagement(MRef<SipStack*> stack):
- SipDialog(stack, NULL)
+ SipDialog(stack, NULL, "shutdown_dialog")
{
- dialogState.callId = "shutdown_dialog";
-
setUpStateMachine();
- //cerr << "SipDialogManagement hello!"<<endl;
pendingHangUps = 0;
pendingDeRegs = 0;
}
Modified: trunk/libmsip/source/dialogs/SipDialogRegister.cxx
===================================================================
--- trunk/libmsip/source/dialogs/SipDialogRegister.cxx 2007-05-21 09:01:14 UTC (rev 3279)
+++ trunk/libmsip/source/dialogs/SipDialogRegister.cxx 2007-05-21 12:27:52 UTC (rev 3280)
@@ -456,35 +456,12 @@
}
SipDialogRegister::SipDialogRegister(MRef<SipStack*> stack, MRef<SipIdentity*> ident)
- : SipDialog(stack, ident),
+ : SipDialog(stack, ident, ""),
failCount(0),
guiFeedback(true)
{
setUpStateMachine();
- dialogState.callId = itoa(rand())+"@"+getDialogConfig()->sipStack->getStackConfig()->localIpString;
dialogState.localTag = itoa(rand());
-
-#if 0
- if (getDialogConfig()->sipIdentity->sipDomain==""){
- uint32_t i=0;
- string uri = getDialogConfig()->sipIdentity->getSipUri();
-
- for ( ; uri[i]!='@' && i<uri.length(); i++)
- ;
- massert(uri[i]=='@');
- i++;
-
- for ( ; i<uri.length(); i++) { //FIXME: Is this correct? (line below)
- getDialogConfig()->sipIdentity->sipDomain =
- getDialogConfig()->sipIdentity->sipDomain+uri[i];
- }
- }
-#endif
-
-#ifdef DEBUG_OUTPUT
- mdbg << "SipDialogRegister::SipDialogRegister: DEBUG - domain set to "<< getDialogConfig()->sipIdentity->getSipUri().getIp() << end;
-#endif
-
myDomain = getDialogConfig()->sipIdentity->getSipUri().getIp();
}
More information about the Minisip-devel
mailing list