r2900 - in trunk: libminisip/source/sip libmsip/include/libmsip libmsip/source libmsip/source/dialogs libmsip/source/messages

mikma at minisip.org mikma at minisip.org
Sun Nov 12 18:00:24 CET 2006


Author: mikma
Date: 2006-11-12 18:00:23 +0100 (Sun, 12 Nov 2006)
New Revision: 2900

Modified:
   trunk/libminisip/source/sip/SipDialogConfVoip.cxx
   trunk/libminisip/source/sip/SipDialogVoip.cxx
   trunk/libminisip/source/sip/SipDialogVoipClient.cxx
   trunk/libmsip/include/libmsip/SipRequest.h
   trunk/libmsip/source/SipLayerTransport.cxx
   trunk/libmsip/source/dialogs/SipDialogRegister.cxx
   trunk/libmsip/source/messages/SipRequest.cxx
Log:
* Clean up SipRequest removing authentication and proxy arguments to message
  creation methods.

* Change uri parameters of type string to class SipUri.

* Use proxy transport in contact in register requests.


Modified: trunk/libminisip/source/sip/SipDialogConfVoip.cxx
===================================================================
--- trunk/libminisip/source/sip/SipDialogConfVoip.cxx	2006-11-12 15:32:30 UTC (rev 2899)
+++ trunk/libminisip/source/sip/SipDialogConfVoip.cxx	2006-11-12 17:00:23 UTC (rev 2900)
@@ -998,12 +998,10 @@
 	inv = SipRequest::createSipMessageInvite(
 				branch,
 				dialogState.callId,
-				dialogState.remoteUri,
-				getDialogConfig()->sipIdentity->sipDomain,	//TODO: Change API - not sure if proxy or domain
-				getDialogConfig()->sipIdentity->getSipProxy()->sipProxyPort,
+				SipUri(dialogState.remoteUri),
 				getDialogConfig()->inherited->externalContactIP,
 				getDialogConfig()->inherited->getLocalSipPort(phoneconf->useSTUN),
-				getDialogConfig()->sipIdentity->getSipUri(),
+				SipUri(getDialogConfig()->sipIdentity->getSipUri()),
 				dialogState.seqNo,
 				getDialogConfig()->inherited->getTransport(),
 				sipStack) ;
@@ -1188,8 +1186,8 @@
 	//MRef<SipCancel*> cancel = new SipCancel(
 	MRef<SipRequest*> cancel = SipRequest::createSipMessageCancel(
 			branch,
-			lastInvite,
-			dialogState.remoteUri
+			lastInvite
+// 			dialogState.remoteUri
 			);
 
 	cancel->getHeaderValueFrom()->setParameter("tag",dialogState.localTag);

Modified: trunk/libminisip/source/sip/SipDialogVoip.cxx
===================================================================
--- trunk/libminisip/source/sip/SipDialogVoip.cxx	2006-11-12 15:32:30 UTC (rev 2899)
+++ trunk/libminisip/source/sip/SipDialogVoip.cxx	2006-11-12 17:00:23 UTC (rev 2900)
@@ -624,8 +624,8 @@
 	
 	MRef<SipRequest*> cancel = SipRequest::createSipMessageCancel(
 			lastInvite->getFirstViaBranch(),
-			lastInvite,
-			dialogState.remoteUri
+			lastInvite
+// 			dialogState.remoteUri
 			);
 
 	addRoute( cancel );

Modified: trunk/libminisip/source/sip/SipDialogVoipClient.cxx
===================================================================
--- trunk/libminisip/source/sip/SipDialogVoipClient.cxx	2006-11-12 15:32:30 UTC (rev 2899)
+++ trunk/libminisip/source/sip/SipDialogVoipClient.cxx	2006-11-12 17:00:23 UTC (rev 2900)
@@ -643,14 +643,12 @@
 	inv = SipRequest::createSipMessageInvite(
 			branch,
 			dialogState.callId,
-			dialogState.remoteUri,
-			getDialogConfig()->sipIdentity->sipDomain,	//TODO: Change API - not sure if proxy or domain
-			getDialogConfig()->sipIdentity->getSipProxy()->sipProxyPort,
+			SipUri(dialogState.remoteUri),
 			getDialogConfig()->inherited->externalContactIP,
 			getDialogConfig()->inherited->getLocalSipPort(phoneconf->useSTUN),
-			getDialogConfig()->sipIdentity->getSipUri(),
+			SipUri(getDialogConfig()->sipIdentity->getSipUri()),
 			dialogState.seqNo,
-			getDialogConfig()->inherited->getTransport(),
+			getDialogConfig()->sipIdentity->getSipProxy()->getTransport(),
 			sipStack ) ;
 
 	addAuthorizations( inv );

Modified: trunk/libmsip/include/libmsip/SipRequest.h
===================================================================
--- trunk/libmsip/include/libmsip/SipRequest.h	2006-11-12 15:32:30 UTC (rev 2899)
+++ trunk/libmsip/include/libmsip/SipRequest.h	2006-11-12 17:00:23 UTC (rev 2900)
@@ -58,83 +58,60 @@
 		 * but for PRACK requests you will have to adjust it.
 		 */
 		static MRef<SipRequest*> createSipMessageAck(
-				std::string branch,
+				const std::string &branch,
 				MRef<SipRequest*> origReq,
 				MRef<SipResponse*> resp,
 				bool provisional=false);
 
 		static MRef<SipRequest*> createSipMessageCancel(
-				std::string branch,
-				MRef<SipRequest*> inv,
-				std::string to_uri
+				const std::string &branch,
+				MRef<SipRequest*> inv
+// 				std::string to_uri
 				);
 
 		static MRef<SipRequest*> createSipMessageIMMessage(
-				std::string branch,
-				std::string call_id,
-				std::string toUri,
+				const std::string &branch,
+				const std::string &call_id,
+				const SipUri& toUri,
 				const SipUri& fromUri,
 				int32_t seq_no,
-				std::string msg);
+				const std::string &msg);
 
 
 		static MRef<SipRequest*> createSipMessageInvite(
 				const std::string &branch,
 				const std::string &call_id,
-				const std::string &tel_no,
-				const std::string &proxyAddr,
-				int32_t proxyPort,
+				const SipUri &toUri,
 				const std::string &localAddr,
 				int32_t localSipPort,
-				const std::string &from_tel_no,
+				const SipUri &fromUri,
 				int32_t seq_no,
 				const std::string &transport,
 				MRef<SipStack*> stack
 				);
 
-		static MRef<SipRequest*> createSipMessageInvite(
+		static MRef<SipRequest*> createSipMessageNotify(
 				const std::string &branch,
 				const std::string &call_id,
-				const std::string &tel_no,
-				const std::string &proxyAddr,
-				int32_t proxyPort,
-				const std::string &localAddr,
-				int32_t localSipPort,
-				const std::string &from_tel_no,
-				int32_t seq_no,
-				const std::string &username,
-				const std::string &nonce,
-				const std::string &realm,
-				const std::string &password,
-				const std::string &transport,
-				MRef<SipStack*> stack);
-
-		static MRef<SipRequest*> createSipMessageNotify(
-				std::string branch,
-				std::string call_id,
 				const SipUri& toUri,
 				const SipUri& fromUri,
 				int32_t seq_no
 				);
 
 		static MRef<SipRequest*> createSipMessageRegister(
-				std::string branch,
-				std::string call_id,
-				std::string domainarg,
-				std::string localIp,
+				const std::string &branch,
+				const std::string &call_id,
+				const std::string &domainarg,
+				const std::string &localIp,
 				int32_t sip_listen_port,
-				std::string from_tel_no,
+				const SipUri &fromUri,
 				int32_t seq_no,
-				std::string transport,
-				int expires,
-				std::string auth_id="",
-				std::string realm="",
-				std::string nonce="",
-				std::string password="");
+				const std::string &transport,
+				int expires);
 
 		static MRef<SipRequest*> createSipMessageSubscribe(
-				std::string branch,
-				std::string call_id,
+				const std::string &branch,
+				const std::string &call_id,
 				const SipUri& toUri,
 				const SipUri& fromUri,
 				int32_t seq_no);
@@ -158,9 +135,11 @@
 		virtual void setMethod(const std::string &method);
 		virtual std::string getMethod() const;
 
-		virtual void setUri(const std::string &uri);
-		virtual std::string getUri() const;
+// 		virtual void setUri(const std::string &uri);
 
+		virtual void setUri(const SipUri &uri);
+		virtual const SipUri& getUri() const;
+
 		/**
 		 * Insert a route first in the list of routes, forcing
 		 * the request through the proxy.
@@ -209,7 +188,7 @@
 
 	private:
 		std::string method;
-		std::string uri;
+		SipUri uri;
 };
 
 

Modified: trunk/libmsip/source/SipLayerTransport.cxx
===================================================================
--- trunk/libmsip/source/SipLayerTransport.cxx	2006-11-12 15:32:30 UTC (rev 2899)
+++ trunk/libmsip/source/SipLayerTransport.cxx	2006-11-12 17:00:23 UTC (rev 2900)
@@ -518,7 +518,7 @@
 		}
 		else {
 			MRef<SipRequest*> req = (SipRequest*)*pack;
-			uri.setUri(req->getUri());
+			uri = req->getUri();
 		}
 
 		if( uri.isValid() ){

Modified: trunk/libmsip/source/dialogs/SipDialogRegister.cxx
===================================================================
--- trunk/libmsip/source/dialogs/SipDialogRegister.cxx	2006-11-12 15:32:30 UTC (rev 2899)
+++ trunk/libmsip/source/dialogs/SipDialogRegister.cxx	2006-11-12 17:00:23 UTC (rev 2900)
@@ -699,7 +699,7 @@
 		getDialogConfig()->inherited->getLocalSipPort(true), //if udp, use stun
 		getDialogConfig()->sipIdentity->getSipUri(),
 		dialogState.seqNo,
-		getDialogConfig()->inherited->getTransport(),
+		getDialogConfig()->sipIdentity->getSipProxy()->getTransport(),
 		getDialogConfig()->sipIdentity->getSipProxy()->getRegisterExpires_int()
 		);
 

Modified: trunk/libmsip/source/messages/SipRequest.cxx
===================================================================
--- trunk/libmsip/source/messages/SipRequest.cxx	2006-11-12 15:32:30 UTC (rev 2899)
+++ trunk/libmsip/source/messages/SipRequest.cxx	2006-11-12 17:00:23 UTC (rev 2900)
@@ -55,7 +55,7 @@
 
 using namespace std;
 
-MRef<SipRequest*> SipRequest::createSipMessageAck(string branch,
+MRef<SipRequest*> SipRequest::createSipMessageAck(const string &branch,
 		MRef<SipRequest*> origReq,
 		MRef<SipResponse*> resp,
 		bool provisional)
@@ -94,13 +94,13 @@
 }
 
 
-MRef<SipRequest*> SipRequest::createSipMessageCancel(string branch,
-							MRef<SipRequest*> inv,
-							string to_uri
+MRef<SipRequest*> SipRequest::createSipMessageCancel(const string &branch,
+							MRef<SipRequest*> inv
+// 							string to_uri
 							)
 {
 	MRef<SipRequest*> req = new SipRequest(branch, "CANCEL");
-	req->setUri(to_uri);
+	req->setUri(inv->getUri());
 
 	req->addHeader(new SipHeader( new SipHeaderValueMaxForwards(70)));
 	
@@ -141,12 +141,12 @@
 }
 
 
-MRef<SipRequest*> SipRequest::createSipMessageIMMessage(string branch,
-							string callId,
-							std::string toUri,
+MRef<SipRequest*> SipRequest::createSipMessageIMMessage(const string& branch,
+							const string& callId,
+							const SipUri& toUri,
 							const SipUri& fromUri,
 							int32_t seqNo,
-							string msg)
+							const string& msg)
 {
 	MRef<SipRequest*> req = new SipRequest(branch, "MESSAGE");
 	req->setUri(toUri);
@@ -158,45 +158,27 @@
 
 static void addHeaders( MRef<SipRequest*> req,
 		const string &call_id,
-		const string &tel_no,	//FIXME: Send uris as const SipURI&
-		const string &proxyAddr,
-		int32_t proxyPort,
+		const SipUri &toUri,
 		const string &localAddr,
 		int32_t localSipPort,
-		const string &from_tel_no,
+		const SipUri &fromUri,
 		int32_t seq_no,
-		const string &username,
-		const string &nonce,
-		const string &realm,
-		const string &password,
 		const string &transport,
 		MRef<SipStack*> stack
 		)
 {
 
-	req->setUri(tel_no);
+	req->setUri(toUri);
 
-	MRef<SipHeader*> hdr;
-	
-	SipUri fromUri(from_tel_no);
+// 	SipUri fromUri(from_tel_no);
 	req->addHeader(new SipHeader( new SipHeaderValueFrom(fromUri) ) );
 
-	SipUri toUri(tel_no);
+// 	SipUri toUri(tel_no);
 	req->addHeader(new SipHeader( new SipHeaderValueTo(toUri) ));
 	
 	req->addHeader(new SipHeader(new SipHeaderValueCallID(call_id)) );
-
-	SipUri uri;
-	uri.setParams(tel_no,proxyAddr,"",proxyPort);
-	
-	if ( username.length()>0 || nonce.length()>0 || realm.length()>0 ){
-		req->addHeader(new SipHeader( 
-				new SipHeaderValueProxyAuthorization("INVITE",tel_no,realm, nonce, "",uri, username, password,"DIGEST") )
-				);
-	}
-
 	req->addHeader(new SipHeader(new SipHeaderValueCSeq("INVITE",seq_no)));
-	req->addHeader(new SipHeader(new SipHeaderValueContact(from_tel_no, localAddr, localSipPort,"",transport)));
+	req->addHeader(new SipHeader(new SipHeaderValueContact(fromUri.getUserName(), localAddr, localSipPort,"",transport)));
 	req->addHeader(new SipHeader(new SipHeaderValueUserAgent(HEADER_USER_AGENT_DEFAULT)));
 	if (stack){
 		req->addHeader(new SipHeader(new SipHeaderValueSupported(stack->getAllSupportedExtensionsStr())));
@@ -205,130 +187,72 @@
 
 MRef<SipRequest*> SipRequest::createSipMessageInvite(const string &branch,
 							const string &call_id,
-							const string &tel_no,
-							const string &proxyAddr,
-							int32_t proxyPort,
+							const SipUri &toUri,
 							const string &localAddr,
 							int32_t localSipPort,
-							const string &from_tel_no,
+							const SipUri &fromUri,
 							int32_t seq_no,
 							const string &transport,
 							MRef<SipStack*> stack
                 )
 {
 	MRef<SipRequest*> req = new SipRequest(branch,"INVITE");
-	addHeaders(req, call_id, tel_no, 
-			proxyAddr, proxyPort, 
+	addHeaders(req, call_id, toUri, 
 			localAddr, localSipPort, 
-			from_tel_no, seq_no, 
-			"","","","",transport, stack);
+			fromUri, seq_no, 
+			transport, stack);
 
 	return req;
 }
 
-MRef<SipRequest*> SipRequest::createSipMessageInvite(const string &branch,
-							const string &call_id,
-							const string &tel_no,
-							const string &proxyAddr,
-							int32_t proxyPort,
-							const string &localAddr,
-							int32_t localSipPort,
-							const string &from_tel_no,
-							int32_t seq_no,
-							const string &username,
-							const string &nonce,
-							const string &realm,
-							const string &password,
-							const string &transport,
-							MRef<SipStack*> stack)
-{
-	MRef<SipRequest*> req = new SipRequest(branch, "INVITE");
-	
-	addHeaders(req, call_id, tel_no, 
-			proxyAddr, proxyPort, 
-			localAddr, localSipPort, 
-			from_tel_no, seq_no, 
-			username, nonce, realm, password, transport,stack);
-	return req;
-}
-
-
-
-
-
-MRef<SipRequest*> SipRequest::createSipMessageNotify(string branch,
-							string callId,
+MRef<SipRequest*> SipRequest::createSipMessageNotify(const string& branch,
+							const string& callId,
 							const SipUri& toUri,
 							const SipUri& fromUri,
 							int32_t seqNo
 							)
 {
 	MRef<SipRequest*> req = new SipRequest(branch, "NOTIFY");
-	req->setUri(toUri.getString());
+	req->setUri(toUri);
 	req->addDefaultHeaders(fromUri, toUri,"NOTIFY",seqNo,callId);
 	req->addHeader(new SipHeader(new SipHeaderValueUserAgent(HEADER_USER_AGENT_DEFAULT)));
 	req->addHeader(new SipHeader(new SipHeaderValueEvent("presence")));
 	return req;
 }
 
-MRef<SipRequest*> SipRequest::createSipMessageRegister(string branch,
-							string call_id,
-							string domain,
-							string localIp,
+MRef<SipRequest*> SipRequest::createSipMessageRegister(const string &branch,
+							const string &call_id,
+							const string &domain,
+							const string &localIp,
 							int32_t sip_listen_port,
-							string from_tel_no,	//FIXME: use SipUri
+							const SipUri &fromUri,
 							int32_t seq_no,
-							string transport,
-							int expires,
-							string auth_id,
-							string realm,
-							string nonce,
-							string password)
+							const string &transport,
+							int expires)
 {
 	MRef<SipRequest*> req = new SipRequest(branch, "REGISTER","sip:"+domain);
 
 	req->setUri("sip:" + domain);
 
-	SipUri fromUri(from_tel_no);
-	SipUri toUri(from_tel_no);
-	req->addDefaultHeaders(fromUri,toUri,"REGISTER",seq_no,call_id);
-	
+	req->addDefaultHeaders(fromUri,fromUri,"REGISTER",seq_no,call_id);
 	 
-	req->addHeader(new SipHeader(new SipHeaderValueContact(from_tel_no, localIp, sip_listen_port,"",transport, expires)));
+	req->addHeader(new SipHeader(new SipHeaderValueContact(fromUri.getUserName(), localIp, sip_listen_port,"",transport, expires)));
 	req->addHeader(new SipHeader(new SipHeaderValueUserAgent(HEADER_USER_AGENT_DEFAULT)));
-
-	SipUri uri;
-	uri.setParams("", localIp,"", sip_listen_port);
-	if (auth_id!=""){
-		MRef<SipHeaderValue*> authp = 
-			new SipHeaderValueAuthorization(
-					"REGISTER",
-					from_tel_no, 
-					realm, 
-					nonce, 
-					"", 
-					uri, 
-					auth_id, 
-					password,
-					"Digest");
-		req->addHeader(new SipHeader(*authp));
-	}
-	
 	req->setContent(NULL);
 
 	return req;
 }
 
 
-MRef<SipRequest*> SipRequest::createSipMessageSubscribe(string branch,
-							string call_id,
+MRef<SipRequest*> SipRequest::createSipMessageSubscribe(const string &branch,
+							const string &call_id,
 							const SipUri &toUri,
 							const SipUri &fromUri,
 							int32_t seq_no)
 {
 	MRef<SipRequest*> req = new SipRequest(branch, "SUBSCRIBE", toUri.getString() );
 
-	req->setUri(toUri.getString());
+	req->setUri(toUri);
 
 	req->addDefaultHeaders(fromUri, toUri,"SUBSCRIBE",seq_no, call_id);
 	
@@ -357,8 +281,8 @@
 		SipMessage(branch), method(method),
 		uri(uri)
 {
-	if( this->uri == "" )
-		this->uri = "sip:";
+// 	if( this->uri == "" )
+// 		this->uri = "sip:";
 }
 
 SipRequest::SipRequest(string &build_from): SipMessage(-1, build_from){
@@ -428,7 +352,7 @@
 }
 
 string SipRequest::getString() const{
-	return getMethod() + " " + getUri() + " SIP/2.0\r\n"
+	return getMethod() + " " + getUri().getRequestUriString() + " SIP/2.0\r\n"
 		+ getHeadersAndContent();
 }
 
@@ -472,11 +396,15 @@
 	return ret;
 }
 
-void SipRequest::setUri(const string &uri){
-	this->uri = buildUri(uri);
+// void SipRequest::setUri(const string &uri){
+// 	setUri(SipUri(buildUri(uri)));
+// }
+
+void SipRequest::setUri(const SipUri &uri){
+	this->uri = uri;
 }
 
-string SipRequest::getUri() const{
+const SipUri &SipRequest::getUri() const{
 	return uri;
 }
 



More information about the Minisip-devel mailing list