r3196 - trunk/libminisip/source/sip
mikma at minisip.org
mikma at minisip.org
Tue Feb 6 18:48:52 CET 2007
Author: mikma
Date: 2007-02-06 18:48:51 +0100 (Tue, 06 Feb 2007)
New Revision: 3196
Modified:
trunk/libminisip/source/sip/SipDialogVoipClient.cxx
trunk/libminisip/source/sip/SipDialogVoipServer.cxx
Log:
Build peer uri used for authentication from remote uri,
but containing user and host only. The certificates should contain these
uri as alternative names.
Modified: trunk/libminisip/source/sip/SipDialogVoipClient.cxx
===================================================================
--- trunk/libminisip/source/sip/SipDialogVoipClient.cxx 2007-02-06 16:41:23 UTC (rev 3195)
+++ trunk/libminisip/source/sip/SipDialogVoipClient.cxx 2007-02-06 17:48:51 UTC (rev 3196)
@@ -174,8 +174,10 @@
dialogState.updateState( resp );
}
- //string peerUri = command.getCommandPacket()->getTo().getString();
- string peerUri = dialogState.remoteUri; //use the dialog state ...
+ // Build peer uri used for authentication from remote uri,
+ // but containing user and host only.
+ SipUri peer(dialogState.remoteUri);
+ string peerUri = peer.getProtocolId() + ":" + peer.getUserIpString();
MRef<SipMessageContent *> content = resp->getContent();
if( !content.isNull() ){
MRef<SdpPacket*> sdp((SdpPacket*)*content);
@@ -197,7 +199,7 @@
sendPrack(resp);
if( resp->getStatusCode() == 180 ){
- CommandString cmdstr(dialogState.callId, SipCommandString::remote_ringing, peerUri, (getMediaSession()->isSecure()?"secure":"unprotected"));
+ CommandString cmdstr(dialogState.callId, SipCommandString::remote_ringing, getMediaSession()->getPeerUri(), (getMediaSession()->isSecure()?"secure":"unprotected"));
getSipStack()->getCallback()->handleCommand("gui", cmdstr);
}
@@ -244,12 +246,13 @@
#endif
MRef<SipResponse*> resp( (SipResponse*)*command.getCommandPacket() );
- string peerUri = dialogState.remoteUri;
+ // Build peer uri used for authentication from remote uri,
+ // but containing user and host only.
+ SipUri peer(dialogState.remoteUri);
+ string peerUri = peer.getProtocolId() + ":" + peer.getUserIpString();
dialogState.updateState( resp );
sendAck();
- //string peerUri = resp->getFrom().getString();
-
setLogEntry( new LogEntryOutgoingCompletedCall() );
getLogEntry()->start = time( NULL );
getLogEntry()->peerSipUri = peerUri;
@@ -259,7 +262,7 @@
bool ret = sortMIME(*resp->getContent(), peerUri, 3);
- CommandString cmdstr(dialogState.callId, SipCommandString::invite_ok, "",
+ CommandString cmdstr(dialogState.callId, SipCommandString::invite_ok, getMediaSession()->getPeerUri(),
(getMediaSession()->isSecure()?"secure":"unprotected"));
getSipStack()->getCallback()->handleCommand("gui", cmdstr);
@@ -537,10 +540,14 @@
//There might be so that there are no SDP. Check!
MRef<SdpPacket *> sdp;
if (mediaSession){
+ // Build peer uri used for authentication from remote uri,
+ // but containing user and host only.
+ SipUri peer(dialogState.remoteUri);
+ string peerUri = peer.getProtocolId() + ":" + peer.getUserIpString();
#ifdef ENABLE_TS
ts.save("getSdpOffer");
#endif
- sdp = mediaSession->getSdpOffer();
+ sdp = mediaSession->getSdpOffer( peerUri );
#ifdef ENABLE_TS
ts.save("getSdpOffer");
#endif
Modified: trunk/libminisip/source/sip/SipDialogVoipServer.cxx
===================================================================
--- trunk/libminisip/source/sip/SipDialogVoipServer.cxx 2007-02-06 16:41:23 UTC (rev 3195)
+++ trunk/libminisip/source/sip/SipDialogVoipServer.cxx 2007-02-06 17:48:51 UTC (rev 3196)
@@ -166,9 +166,12 @@
setLastInvite(inv);
dialogState.updateState( getLastInvite() );
+
+ // Build peer uri used for authentication from remote uri,
+ // but containing user and host only.
+ SipUri peer(dialogState.remoteUri);
+ string peerUri = peer.getProtocolId() + ":" + peer.getUserIpString();
- string peerUri = dialogState.remoteUri;
-
if(!sortMIME(*command.getCommandPacket()->getContent(), peerUri, 10)){
merr << "No MIME match" << end;
return false;
@@ -191,10 +194,12 @@
setLastInvite(inv);
dialogState.updateState( inv );
+
+ // Build peer uri used for authentication from remote uri,
+ // but containing user and host only.
+ SipUri peer(dialogState.remoteUri);
+ string peerUri = peer.getProtocolId() + ":" + peer.getUserIpString();
- //string peerUri = command.getCommandPacket()->getFrom().getString().substr(4);
- string peerUri = dialogState.remoteUri;
-
if(!sortMIME(*inv->getContent(), peerUri, 10)){
merr << "No MIME match" << end;
return false;
@@ -233,7 +238,7 @@
*/
CommandString cmdstr(dialogState.callId,
SipCommandString::incoming_available,
- dialogState.remoteUri,
+ getMediaSession()->getPeerUri(),
(getMediaSession()->isSecure()?"secure":"unprotected")
);
getSipStack()->getCallback()->handleCommand("gui", cmdstr );
@@ -262,7 +267,8 @@
#endif
CommandString cmdstr(dialogState.callId,
- SipCommandString::invite_ok,"",
+ SipCommandString::invite_ok,
+ getMediaSession()->getPeerUri(),
(getMediaSession()->isSecure()?"secure":"unprotected")
);
getSipStack()->getCallback()->handleCommand("gui", cmdstr );
@@ -457,7 +463,7 @@
CommandString cmdstr(dialogState.callId,
SipCommandString::incoming_available,
- dialogState.remoteUri,
+ getMediaSession()->getPeerUri(),
(getMediaSession()->isSecure()?"secure":"unprotected")
);
getSipStack()->getCallback()->handleCommand("gui", cmdstr );
More information about the Minisip-devel
mailing list