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