r3194 - in trunk/libminisip: include/libminisip/mediahandler
source/mediahandler
mikma at minisip.org
mikma at minisip.org
Tue Feb 6 16:52:59 CET 2007
Author: mikma
Date: 2007-02-06 16:52:58 +0100 (Tue, 06 Feb 2007)
New Revision: 3194
Modified:
trunk/libminisip/include/libminisip/mediahandler/Session.h
trunk/libminisip/source/mediahandler/Session.cxx
Log:
Add peer uri to Session. Used when authenticating the peer and getting
the connected uri.
Modified: trunk/libminisip/include/libminisip/mediahandler/Session.h
===================================================================
--- trunk/libminisip/include/libminisip/mediahandler/Session.h 2007-02-05 20:16:29 UTC (rev 3193)
+++ trunk/libminisip/include/libminisip/mediahandler/Session.h 2007-02-06 15:52:58 UTC (rev 3194)
@@ -97,7 +97,8 @@
* @param anatSupported Use ANAT (RFC 4091)
* @returns a reference to the SDP object
*/
- MRef<SdpPacket *> getSdpOffer( bool anatSupported = false );
+ MRef<SdpPacket *> getSdpOffer( const std::string &peerUri = "",
+ bool anatSupported = false );
/**
* Used by the SIP stack to query the session description
@@ -242,6 +243,11 @@
std::list< MRef<MediaStreamSender *> > getMediaStreamSenders() {
return mediaStreamSenders;
}
+
+ /**
+ * Return authenticated peer URI
+ */
+ const std::string &getPeerUri() const;
/**
CallRecorder object ... we store it as MObject because it creates
Modified: trunk/libminisip/source/mediahandler/Session.cxx
===================================================================
--- trunk/libminisip/source/mediahandler/Session.cxx 2007-02-05 20:16:29 UTC (rev 3193)
+++ trunk/libminisip/source/mediahandler/Session.cxx 2007-02-06 15:52:58 UTC (rev 3194)
@@ -68,7 +68,8 @@
identity(aIdentity) {}
const std::string getUri() const{
- return identity->getSipUri().getString();
+ return identity->getSipUri().getProtocolId() + ":" +
+ identity->getSipUri().getUserIpString();
}
MRef<SipSim*> getSim() const{
@@ -289,7 +290,7 @@
return result;
}
-MRef<SdpPacket *> Session::getSdpOffer( bool anatSupported ){ // used by the initiator when creating the first message
+MRef<SdpPacket *> Session::getSdpOffer( const string &peerUri, bool anatSupported ){ // used by the initiator when creating the first message
MRef<SdpPacket *> result;
list< MRef<MediaStreamReceiver *> >::iterator i;
std::list<std::string>::iterator iAttribute;
@@ -339,7 +340,7 @@
addStreams();
- keyMgmtMessage = mikey->initiatorCreate( type );
+ keyMgmtMessage = mikey->initiatorCreate( type, peerUri );
if( mikey->error() ){
// something went wrong
return NULL;
@@ -463,11 +464,17 @@
/* get the keymgt: attribute */
string keyMgmtMessage =
answer->getSessionLevelAttribute( "key-mgmt" );
+
+ if( !peerUri.empty() ){
+ mikey->getKeyAgreement()->setPeerUri( peerUri );
+ }
+
if( !mikey->initiatorAuthenticate( keyMgmtMessage ) ){
errorString = "Could not authenticate the key management message";
fprintf( stderr, "Auth failed\n");
return false;
}
+ this->peerUri = mikey->peerUri();
string mikeyErrorMsg = mikey->initiatorParse();
if( mikeyErrorMsg != "" ){
@@ -637,15 +644,16 @@
addStreams();
- if( !mikey->responderAuthenticate( keyMgmtMessage ) ){
+ if( !mikey->responderAuthenticate( keyMgmtMessage, peerUri ) ){
errorString = "Incoming key management message could not be authenticated";
// if( ka ){
errorString += mikey->authError();
// }
return false;
}
- else //Here we set the offer in ka
- mikey->setMikeyOffer();
+ this->peerUri = mikey->peerUri();
+ //Here we set the offer in ka
+ mikey->setMikeyOffer();
}
else{
/*securityConfig.*/ka_type = KEY_MGMT_METHOD_NULL;
@@ -1067,6 +1075,10 @@
mediaStreamReceivers.clear();
}
+const std::string &Session::getPeerUri() const{
+ return peerUri;
+}
+
void Session::addStreams() {
MediaStreamSenders::iterator i;
MediaStreamSenders::iterator last = mediaStreamSenders.end();
More information about the Minisip-devel
mailing list