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