r3288 - in trunk: libminisip/include/libminisip/signaling/sip libminisip/source/subsystem_signaling/sip libmsip/include/libmsip libmsip/source libmsip/source/dialogs libmsip/source/messages libmsip/source/transactions
erik at minisip.org
erik at minisip.org
Tue May 22 22:08:46 CEST 2007
Author: erik
Date: 2007-05-22 22:08:46 +0200 (Tue, 22 May 2007)
New Revision: 3288
Modified:
trunk/libminisip/include/libminisip/signaling/sip/DefaultDialogHandler.h
trunk/libminisip/include/libminisip/signaling/sip/SipDialogConfVoip.h
trunk/libminisip/include/libminisip/signaling/sip/SipDialogPresenceClient.h
trunk/libminisip/include/libminisip/signaling/sip/SipDialogPresenceServer.h
trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoip.h
trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoipClient.h
trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoipServer.h
trunk/libminisip/source/subsystem_signaling/sip/DefaultDialogHandler.cxx
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/libminisip/source/subsystem_signaling/sip/SipDialogVoipClient.cxx
trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoipServer.cxx
trunk/libmsip/include/libmsip/SipDialogRegister.h
trunk/libmsip/include/libmsip/SipMessage.h
trunk/libmsip/include/libmsip/SipRequest.h
trunk/libmsip/include/libmsip/SipResponse.h
trunk/libmsip/include/libmsip/SipTransaction.h
trunk/libmsip/include/libmsip/SipTransactionInviteClient.h
trunk/libmsip/source/SipLayerTransaction.cxx
trunk/libmsip/source/SipLayerTransport.cxx
trunk/libmsip/source/dialogs/SipDialog.cxx
trunk/libmsip/source/dialogs/SipDialogRegister.cxx
trunk/libmsip/source/messages/SipMessage.cxx
trunk/libmsip/source/messages/SipRequest.cxx
trunk/libmsip/source/messages/SipResponse.cxx
trunk/libmsip/source/transactions/SipTransaction.cxx
trunk/libmsip/source/transactions/SipTransactionInviteClient.cxx
Log:
* Removed all branch processing from libminisip. This
can/should only be dealt with by the SIP stack.
This reduces the complexity of the TU.
* Simplified the implementation of serveral of the header
lookup methods in SipMessage by using an already existing
method.
* Removed the branch parameter from the SIP message
constructors
* Renamed SipMessage getDestinationBranch() to getBranch()
* Removed unused/unnecessary methods from the SipMessage
class.
Modified: trunk/libminisip/include/libminisip/signaling/sip/DefaultDialogHandler.h
===================================================================
--- trunk/libminisip/include/libminisip/signaling/sip/DefaultDialogHandler.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/include/libminisip/signaling/sip/DefaultDialogHandler.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -145,9 +145,9 @@
*/
bool modifyDialogConfig(std::string user, MRef<SipDialogConfig *> dialogConfig);
- void sendIMOk(MRef<SipRequest*> immessage, const std::string &branch);
+ void sendIMOk(MRef<SipRequest*> immessage);
- void sendIM(const std::string &branch, std::string msg, int seqno, std::string toUri);
+ void sendIM(std::string msg, int seqno, std::string toUri);
MRef<SipIdentity *> lookupTarget(const SipUri &uri);
};
Modified: trunk/libminisip/include/libminisip/signaling/sip/SipDialogConfVoip.h
===================================================================
--- trunk/libminisip/include/libminisip/signaling/sip/SipDialogConfVoip.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/include/libminisip/signaling/sip/SipDialogConfVoip.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -89,15 +89,15 @@
MRef<SipRequest*> getLastInvite();
void setLastInvite(MRef<SipRequest*> i);
- void sendInvite(const std::string &branch);
- void sendBye(const std::string &branch, int);
- void sendCancel(const std::string &branch);
- void sendAck(const std::string &branch);
- void sendInviteOk(const std::string &branch);
- void sendByeOk(MRef<SipRequest*> bye, const std::string &branch);
- void sendReject(const std::string &branch);
- void sendRinging(const std::string &branch);
- void sendNotAcceptable(const std::string &branch);
+ void sendInvite();
+ void sendBye(int);
+ void sendCancel();
+ void sendAck();
+ void sendInviteOk();
+ void sendByeOk(MRef<SipRequest*> bye);
+ void sendReject();
+ void sendRinging();
+ void sendNotAcceptable();
void modifyConfJoinInvite(MRef<SipRequest*>inv);
void modifyConfConnectInvite(MRef<SipRequest*>inv);
void modifyConfAck(MRef<SipRequest*>ack);
Modified: trunk/libminisip/include/libminisip/signaling/sip/SipDialogPresenceClient.h
===================================================================
--- trunk/libminisip/include/libminisip/signaling/sip/SipDialogPresenceClient.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/include/libminisip/signaling/sip/SipDialogPresenceClient.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -65,7 +65,7 @@
private:
- void sendSubscribe(const std::string &branch);
+ void sendSubscribe();
void sendNotifyOk(MRef<SipRequest*> notify);
void createSubscribeClientTransaction();
Modified: trunk/libminisip/include/libminisip/signaling/sip/SipDialogPresenceServer.h
===================================================================
--- trunk/libminisip/include/libminisip/signaling/sip/SipDialogPresenceServer.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/include/libminisip/signaling/sip/SipDialogPresenceServer.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -69,7 +69,7 @@
void removeUser( std::string user);
void addUser( std::string user);
- void sendNotify(const std::string &branch, std::string toUri, std::string callId);
+ void sendNotify(std::string toUri, std::string callId);
bool a0_start_default_startpresenceserver(const SipSMCommand &command);
bool a1_default_default_timerremovesubscriber(const SipSMCommand &command);
Modified: trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoip.h
===================================================================
--- trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoip.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoip.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -69,9 +69,9 @@
MRef<Session *> getMediaSession();
protected:
- void sendBye(const std::string &branch, int);
- void sendByeOk(MRef<SipRequest*> bye, const std::string &branch);
- void sendCancel(const std::string &branch);
+ void sendBye(int);
+ void sendByeOk(MRef<SipRequest*> bye);
+ void sendCancel();
MRef<SipRequest*> getLastInvite();
void setLastInvite(MRef<SipRequest*> i);
bool sortMIME(MRef<SipMessageContent *> Offer, std::string peerUri, int type);
@@ -95,10 +95,10 @@
void setUpStateMachine();
- void sendReferOk(const std::string &branch);
- void sendNotifyOk(MRef<SipRequest*> notif, const std::string &branch);
- void sendReferReject(const std::string &branch);
- void sendRefer(const std::string &branch, int, const std::string referredUri);
+ void sendReferOk();
+ void sendNotifyOk(MRef<SipRequest*> notif);
+ void sendReferReject();
+ void sendRefer(int, const std::string referredUri);
/* Ending a call */
bool a1001_incall_termwait_BYE( const SipSMCommand &command);
Modified: trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoipClient.h
===================================================================
--- trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoipClient.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoipClient.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -64,9 +64,9 @@
void setUpStateMachine();
- void sendInviteOk(const std::string &branch);
+ void sendInviteOk();
- void sendInvite(const std::string &branch);
+ void sendInvite();
void sendAck();
void sendPrack(MRef<SipResponse*>);
Modified: trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoipServer.h
===================================================================
--- trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoipServer.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/include/libminisip/signaling/sip/SipDialogVoipServer.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -75,9 +75,9 @@
void setUpStateMachine();
- void sendInviteOk(const std::string &branch);
- void sendReject(const std::string &branch);
- void sendNotAcceptable(const std::string &branch);
+ void sendInviteOk();
+ void sendReject();
+ void sendNotAcceptable();
void sendSessionProgress();
void sendPrackOk( MRef<SipRequest*> prack );
Modified: trunk/libminisip/source/subsystem_signaling/sip/DefaultDialogHandler.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/DefaultDialogHandler.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/source/subsystem_signaling/sip/DefaultDialogHandler.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -265,10 +265,8 @@
#ifdef DEBUG_OUTPUT
mdbg << "DefaultDialogHandler:: creating new server transaction for incoming SipIMMessage" << end;
#endif
- string branch = im->getDestinationBranch();
+ sendIMOk( im );
- sendIMOk(im, branch);
-
massert(dynamic_cast<SipMessageContentIM*>(*im->getContent())!=NULL);
MRef<SipMessageContentIM*> imref = (SipMessageContentIM*)*im->getContent();
@@ -301,9 +299,8 @@
}
MRef<SipRequest*> req = (SipRequest*)*pkt;
- string branch = req->getDestinationBranch();
MRef<SipResponse*> resp =
- new SipResponse(branch, statusCode, reasonPhrase, req);
+ new SipResponse( statusCode, reasonPhrase, req );
if (statusCode==405)
resp->addHeader(new SipHeader(new SipHeaderValueAllow("INVITE,MESSAGE,BYE,ACK,OPTIONS,PRACK") ));
@@ -361,7 +358,7 @@
if (cmdstr.getOp() == SipCommandString::outgoing_im){
++outsideDialogSeqNo;
- sendIM( "", cmdstr.getParam(), outsideDialogSeqNo, cmdstr.getParam2() );
+ sendIM( cmdstr.getParam(), outsideDialogSeqNo, cmdstr.getParam2() );
return true;
}
@@ -964,8 +961,8 @@
}
-void DefaultDialogHandler::sendIMOk(MRef<SipRequest*> bye, const string &branch){
- MRef<SipResponse*> ok= new SipResponse( branch, 200,"OK", bye );
+void DefaultDialogHandler::sendIMOk(MRef<SipRequest*> bye){
+ MRef<SipResponse*> ok= new SipResponse( 200,"OK", bye );
ok->getHeaderValueTo()->setParameter("tag","libminisip");
MRef<SipMessage*> pref(*ok);
@@ -974,7 +971,7 @@
}
-void DefaultDialogHandler::sendIM(const string &branch, string msg, int im_seq_no, string toUri){
+void DefaultDialogHandler::sendIM( string msg, int im_seq_no, string toUri ){
size_t posAt;
@@ -994,7 +991,6 @@
#endif
MRef<SipRequest*> im = SipRequest::createSipMessageIMMessage(
- std::string(branch),
itoa(rand()), //Generate random callId
toUri,
phoneconf->defaultIdentity->getSipUri(),
Modified: trunk/libminisip/source/subsystem_signaling/sip/SipDialogConfVoip.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/SipDialogConfVoip.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/source/subsystem_signaling/sip/SipDialogConfVoip.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -140,7 +140,7 @@
localCalled=false;
dialogState.remoteUri= command.getCommandString().getParam();
- sendInvite("");
+ sendInvite();
return true;
}else{
return false;
@@ -239,7 +239,7 @@
//BM
MRef<ConfMessageRouter*> ptr= confCallback;//(ConfMessageRouter*) *(getDialogContainer()->getConfCallback());
adviceList=(ptr->getConferenceController(confId)->getConnectedList());
- sendAck(getLastInvite()->getDestinationBranch());
+ sendAck();
if(!sortMIME(*resp->getContent(), peerUri, 3))
return false;
@@ -264,7 +264,7 @@
getLogEntry()->handle();
}
- sendByeOk(bye, "" );
+ sendByeOk( bye );
CommandString cmdstr(dialogState.callId, SipCommandString::remote_hang_up);
cmdstr.setParam3(confId);
@@ -288,7 +288,7 @@
SipSMCommand::dialog_layer,
SipSMCommand::dialog_layer)){
++dialogState.seqNo;
- sendBye("", dialogState.seqNo);
+ sendBye( dialogState.seqNo );
if (getLogEntry()){
(dynamic_cast< LogEntrySuccess * >(*( getLogEntry() )))->duration = time( NULL ) - getLogEntry()->start;
@@ -326,7 +326,7 @@
SipSMCommand::dialog_layer,
SipSMCommand::dialog_layer)){
- sendCancel("");
+ sendCancel();
getMediaSession()->stop();
signalIfNoTransactions();
@@ -441,7 +441,7 @@
getSipStack()->getCallback()->handleCommand("sip_conf", cmdstr );
}
- sendRinging("");
+ sendRinging();
if( getSipStack()->getStackConfig()->autoAnswer ){
CommandString accept( dialogState.callId, SipCommandString::accept_invite );
@@ -497,7 +497,7 @@
);
massert( !getLastInvite().isNull() );
- sendInviteOk(getLastInvite()->getDestinationBranch() );
+ sendInviteOk();
CommandString cmdstr2("", "myuri", getDialogConfig()->sipIdentity->getSipUri().getString());
@@ -527,7 +527,7 @@
CommandString cmdstr(dialogState.callId, SipCommandString::remote_cancelled_invite);
cmdstr.setParam3(confId);
getSipStack()->getCallback()->handleCommand("sip_conf", cmdstr );
- sendInviteOk("" );
+ sendInviteOk();
getMediaSession()->stop();
signalIfNoTransactions();
@@ -551,7 +551,7 @@
SipSMCommand::dialog_layer)){
- sendReject( getLastInvite()->getDestinationBranch() );
+ sendReject();
getMediaSession()->stop();
signalIfNoTransactions();
@@ -568,7 +568,7 @@
setLastInvite(MRef<SipRequest*>((SipRequest *)*command.getCommandPacket()));
- sendNotAcceptable( command.getCommandPacket()->getDestinationBranch() );
+ sendNotAcceptable();
signalIfNoTransactions();
return true;
@@ -590,7 +590,7 @@
nonce=resp->getAuthenticateProperty("nonce");
updateAuthentications( resp );
- sendInvite("");
+ sendInvite();
return true;
}else{
@@ -667,7 +667,7 @@
++dialogState.seqNo;
- sendBye("", dialogState.seqNo);
+ sendBye( dialogState.seqNo);
CommandString cmdstr(dialogState.callId, SipCommandString::security_failed);
cmdstr.setParam3(confId);
@@ -728,7 +728,7 @@
SipCommandString::hang_up,
SipSMCommand::dialog_layer,
SipSMCommand::dialog_layer)){
- sendCancel("");
+ sendCancel();
getMediaSession()->stop();
signalIfNoTransactions();
@@ -973,7 +973,7 @@
SipDialogConfVoip::~SipDialogConfVoip(){
}
-void SipDialogConfVoip::sendInvite(const string &branch){
+void SipDialogConfVoip::sendInvite(){
// mdbg << "ERROR: SipDialogVoip::sendInvite() UNIMPLEMENTED"<< end;
MRef<SipRequest*> inv;
@@ -981,7 +981,6 @@
//inv= MRef<SipInvite*>(new SipInvite(
inv = SipRequest::createSipMessageInvite(
- branch,
dialogState.callId,
SipUri(dialogState.remoteUri),
getDialogConfig()->sipIdentity->getSipUri(),
@@ -1050,7 +1049,7 @@
//#ifdef NEVERDEFINED_ERSADFS
-void SipDialogConfVoip::sendAck(const string &branch){
+void SipDialogConfVoip::sendAck(){
/* // mdbg << "ERROR: SipDialogVoip::sendAck() UNIMPLEMENTED" << end;
@@ -1098,7 +1097,6 @@
//MRef<SipAck *> ack = new SipAck(
MRef<SipRequest*> ack = SipRequest::createSipMessageAck(
- branch,
lastInvite,
lastResponse
);
@@ -1154,7 +1152,7 @@
}
//#endif
-void SipDialogConfVoip::sendBye(const string &branch, int bye_seq_no){
+void SipDialogConfVoip::sendBye( int bye_seq_no ){
MRef<SipRequest*> bye = createSipMessageBye();
@@ -1163,11 +1161,10 @@
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogConfVoip::sendCancel(const string &branch){
+void SipDialogConfVoip::sendCancel(){
massert( !lastInvite.isNull());
//MRef<SipCancel*> cancel = new SipCancel(
MRef<SipRequest*> cancel = SipRequest::createSipMessageCancel(
- branch,
lastInvite
// dialogState.remoteUri
);
@@ -1180,8 +1177,8 @@
getSipStack()->enqueueCommand( cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogConfVoip::sendInviteOk(const string &branch){
- MRef<SipResponse*> ok= new SipResponse(branch, 200,"OK", getLastInvite());
+void SipDialogConfVoip::sendInviteOk(){
+ MRef<SipResponse*> ok= new SipResponse( 200,"OK", getLastInvite());
ok->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
// There might be so that there are no SDP. Check!
@@ -1226,8 +1223,8 @@
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogConfVoip::sendByeOk(MRef<SipRequest*> bye, const string &branch){
- MRef<SipResponse*> ok= new SipResponse( branch, 200,"OK", bye );
+void SipDialogConfVoip::sendByeOk( MRef<SipRequest*> bye ){
+ MRef<SipResponse*> ok= new SipResponse( 200,"OK", bye );
ok->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipMessage*> pref(*ok);
@@ -1235,24 +1232,24 @@
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogConfVoip::sendReject(const string &branch){
- MRef<SipResponse*> ringing = new SipResponse(branch,486,"Temporary unavailable", getLastInvite());
+void SipDialogConfVoip::sendReject(){
+ MRef<SipResponse*> ringing = new SipResponse( 486, "Temporary unavailable", getLastInvite() );
ringing->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipMessage*> pref(*ringing);
SipSMCommand cmd( pref,SipSMCommand::dialog_layer, SipSMCommand::transaction_layer);
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogConfVoip::sendRinging(const string &branch){
- MRef<SipResponse*> ringing = new SipResponse(branch,180,"Ringing", getLastInvite());
+void SipDialogConfVoip::sendRinging(){
+ MRef<SipResponse*> ringing = new SipResponse( 180, "Ringing", getLastInvite() );
ringing->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipMessage*> pref(*ringing);
SipSMCommand cmd( pref, SipSMCommand::dialog_layer, SipSMCommand::transaction_layer);
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogConfVoip::sendNotAcceptable(const string &branch){
- MRef<SipResponse*> not_acceptable = new SipResponse(branch,606,"Not Acceptable", getLastInvite());
+void SipDialogConfVoip::sendNotAcceptable(){
+ MRef<SipResponse*> not_acceptable = new SipResponse( 606, "Not Acceptable", getLastInvite());
if( mediaSession && mediaSession->getErrorString() != "" ){
not_acceptable->addHeader(
new SipHeader(new SipHeaderValueWarning(getSipStack()->getStackConfig()->externalContactIP, 399, mediaSession->getErrorString() ) ));
Modified: trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceClient.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceClient.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceClient.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -107,7 +107,7 @@
void SipDialogPresenceClient::createSubscribeClientTransaction(){
++dialogState.seqNo;
- sendSubscribe("");
+ sendSubscribe();
}
@@ -239,7 +239,7 @@
return true;
}
- sendSubscribe("");
+ sendSubscribe();
return true;
}else{
@@ -351,12 +351,11 @@
SipDialogPresenceClient::~SipDialogPresenceClient(){
}
-void SipDialogPresenceClient::sendSubscribe(const string &branch){
+void SipDialogPresenceClient::sendSubscribe(){
MRef<SipRequest*> sub ;
sub = SipRequest::createSipMessageSubscribe(
- branch,
dialogState.callId,
toUri->getSipUri(),
getDialogConfig()->sipIdentity->getSipUri(),
Modified: trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceServer.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceServer.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/source/subsystem_signaling/sip/SipDialogPresenceServer.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -239,7 +239,7 @@
void SipDialogPresenceServer::sendNotice(string /*onlineStatus*/, string user){ //FIXME: use onlineStatus
++dialogState.seqNo;
string cid = "FIXME"+itoa(rand());
- sendNotify("", user, cid);
+ sendNotify( user, cid );
}
@@ -253,7 +253,7 @@
void SipDialogPresenceServer::sendSubscribeOk(MRef<SipRequest*> sub){
- MRef<SipResponse*> ok= new SipResponse("", 200,"OK", sub);
+ MRef<SipResponse*> ok= new SipResponse( 200,"OK", sub );
ok->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipMessage*> pref(*ok);
@@ -276,7 +276,7 @@
usersLock.unlock();
}
-void SipDialogPresenceServer::sendNotify(const string &branch, string toUri, string cid){
+void SipDialogPresenceServer::sendNotify( string toUri, string cid ){
MRef<SipRequest*> notify;
int32_t localSipPort;
@@ -285,7 +285,6 @@
MRef<SipIdentity*> toId( new SipIdentity(toUri));
notify = SipRequest::createSipMessageNotify(
- branch,
cid,
toId->getSipUri(),
getDialogConfig()->sipIdentity->getSipUri(),
Modified: trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoip.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoip.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoip.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -179,7 +179,7 @@
getLogEntry()->handle();
}
- sendByeOk(bye, "" );
+ sendByeOk(bye);
CommandString cmdstr(dialogState.callId, SipCommandString::remote_hang_up);
getSipStack()->getCallback()->handleCommand("gui", cmdstr);
@@ -207,7 +207,7 @@
SipSMCommand::dialog_layer)){
++dialogState.seqNo;
- sendBye("", dialogState.seqNo);
+ sendBye(dialogState.seqNo);
if (getLogEntry()){
(dynamic_cast< LogEntrySuccess * >(*( getLogEntry() )))->duration = time( NULL ) - getLogEntry()->start;
@@ -332,7 +332,7 @@
string referredUri = command.getCommandString().getParam();
++dialogState.seqNo;
- sendRefer("", dialogState.seqNo, referredUri);
+ sendRefer(dialogState.seqNo, referredUri);
return true;
}else{
@@ -403,7 +403,7 @@
cmd.setSource(command.getSource());
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
- sendNotifyOk(notif, "" );
+ sendNotifyOk( notif );
ret = true;
}
@@ -443,7 +443,7 @@
SipSMCommand::dialog_layer,
SipSMCommand::dialog_layer)){
- sendReferOk(lastRefer->getDestinationBranch() );
+ sendReferOk();
/* start a new call ... */
string uri = getReferredUri(lastRefer);
@@ -469,7 +469,7 @@
SipSMCommand::dialog_layer,
SipSMCommand::dialog_layer)){
- sendReferReject(lastRefer->getDestinationBranch());
+ sendReferReject();
return true;
}else{
@@ -602,7 +602,7 @@
mediaSession->unregister();
}
-void SipDialogVoip::sendBye(const string &branch, int bye_seq_no){
+void SipDialogVoip::sendBye(int bye_seq_no){
MRef<SipRequest*> bye = createSipMessageBye();
MRef<SipMessage*> pref(*bye);
@@ -610,7 +610,7 @@
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE);
}
-void SipDialogVoip::sendRefer(const string &branch, int refer_seq_no, const string referredUri){
+void SipDialogVoip::sendRefer(int refer_seq_no, const string referredUri){
MRef<SipRequest*> refer = createSipMessageRefer( referredUri );
MRef<SipMessage*> pref(*refer);
@@ -618,14 +618,10 @@
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogVoip::sendCancel(const string &branch){
+void SipDialogVoip::sendCancel(){
massert( !lastInvite.isNull());
- MRef<SipRequest*> cancel = SipRequest::createSipMessageCancel(
- lastInvite->getFirstViaBranch(),
- lastInvite
-// dialogState.remoteUri
- );
+ MRef<SipRequest*> cancel = SipRequest::createSipMessageCancel( lastInvite );
addRoute( cancel );
@@ -637,8 +633,8 @@
getSipStack()->enqueueCommand( cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogVoip::sendReferOk(const string &branch){
- MRef<SipResponse*> ok= new SipResponse(branch, 202,"OK", lastRefer);
+void SipDialogVoip::sendReferOk(){
+ MRef<SipResponse*> ok= new SipResponse( 202,"OK", lastRefer);
ok->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipHeaderValue *> contact =
new SipHeaderValueContact(
@@ -651,8 +647,8 @@
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogVoip::sendByeOk(MRef<SipRequest*> bye, const string &branch){
- MRef<SipResponse*> ok= new SipResponse( branch, 200,"OK", bye );
+void SipDialogVoip::sendByeOk(MRef<SipRequest*> bye){
+ MRef<SipResponse*> ok= new SipResponse( 200,"OK", bye );
ok->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipMessage*> pref(*ok);
@@ -660,8 +656,8 @@
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogVoip::sendNotifyOk(MRef<SipRequest*> notif, const string &branch){
- MRef<SipResponse*> ok= new SipResponse( branch, 200, "OK", notif );
+void SipDialogVoip::sendNotifyOk(MRef<SipRequest*> notif){
+ MRef<SipResponse*> ok= new SipResponse( 200, "OK", notif );
ok->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipMessage*> pref(*ok);
@@ -669,10 +665,9 @@
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogVoip::sendReferReject(const string &branch){
+void SipDialogVoip::sendReferReject(){
MRef<SipResponse*> forbidden =
- new SipResponse(branch,
- 403,"Forbidden",
+ new SipResponse( 403,"Forbidden",
*lastRefer
);
forbidden->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
Modified: trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoipClient.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoipClient.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoipClient.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -139,7 +139,7 @@
//set an "early" remoteUri ... we will update this later
dialogState.remoteUri= command.getCommandString().getParam();
- sendInvite("");
+ sendInvite();
return true;
}else{
@@ -185,7 +185,7 @@
if( !sortMIME( content , peerUri, 3) ){
// MIKEY failed
// TODO reason header
- sendCancel("");
+ sendCancel();
getMediaSession()->stop();
signalIfNoTransactions();
@@ -300,7 +300,7 @@
SipSMCommand::dialog_layer,
SipSMCommand::dialog_layer)){
- sendCancel("");
+ sendCancel();
getMediaSession()->stop();
signalIfNoTransactions();
@@ -376,7 +376,7 @@
}
++dialogState.seqNo;
- sendInvite("");
+ sendInvite();
return true;
}else{
@@ -390,7 +390,7 @@
++dialogState.seqNo;
- sendBye("", dialogState.seqNo);
+ sendBye(dialogState.seqNo);
CommandString cmdstr(dialogState.callId, SipCommandString::security_failed);
getSipStack()->getCallback()->handleCommand("gui", cmdstr);
@@ -523,13 +523,10 @@
}
-void SipDialogVoipClient::sendInvite(const string &branch){
- // mdbg << "ERROR: SipDialogVoipClient::sendInvite() UNIMPLEMENTED"<< end;
-
+void SipDialogVoipClient::sendInvite(){
MRef<SipRequest*> inv;
string keyAgreementMessage;
inv = SipRequest::createSipMessageInvite(
- branch,
dialogState.callId,
SipUri(dialogState.remoteUri),
getDialogConfig()->sipIdentity->getSipUri(),
@@ -579,7 +576,6 @@
inv->getHeaderValueFrom()->setParameter("tag",dialogState.localTag );
-// mdbg << "SipDialogVoipClient::sendInvite(): sending INVITE to transaction"<<end;
// ts.save( INVITE_END );
MRef<SipMessage*> pktr(*inv);
@@ -614,8 +610,8 @@
sendSipMessage( *prack );
}
-void SipDialogVoipClient::sendInviteOk(const string &branch){
- MRef<SipResponse*> ok= new SipResponse(branch, 200,"OK", getLastInvite());
+void SipDialogVoipClient::sendInviteOk(){
+ MRef<SipResponse*> ok= new SipResponse(200,"OK", getLastInvite());
ok->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipHeaderValue *> contact =
Modified: trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoipServer.cxx
===================================================================
--- trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoipServer.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libminisip/source/subsystem_signaling/sip/SipDialogVoipServer.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -274,7 +274,7 @@
getSipStack()->getCallback()->handleCommand("gui", cmdstr );
massert( !getLastInvite().isNull() );
- sendInviteOk(getLastInvite()->getDestinationBranch() );
+ sendInviteOk();
getMediaSession()->start();
@@ -309,7 +309,7 @@
getLogEntry()->handle();
}
- sendByeOk(bye, "" );
+ sendByeOk( bye );
CommandString cmdstr(dialogState.callId, SipCommandString::remote_hang_up);
getSipStack()->getCallback()->handleCommand("gui", cmdstr);
@@ -331,14 +331,14 @@
SipSMCommand::dialog_layer)) {
MRef<SipRequest*> cancel =
(SipRequest*)*command.getCommandPacket();
- const string branch = cancel->getFirstViaBranch();
- if (getLastInvite()->getFirstViaBranch() != branch)
- return false;
+/// const string branch = cancel->getFirstViaBranch();
+///
+/// if (getLastInvite()->getFirstViaBranch() != branch)
+/// return false;
// Send 487 Request Cancelled for INVITE
MRef<SipResponse*> cancelledResp = new SipResponse(
- branch,
487,
"Request Cancelled",
*getLastInvite()
@@ -350,7 +350,7 @@
getSipStack()->enqueueCommand(cancelledCmd, HIGH_PRIO_QUEUE);
// Send 200 OK for CANCEL
- MRef<SipResponse*> okResp = new SipResponse( branch, 200,"OK", cancel );
+ MRef<SipResponse*> okResp = new SipResponse( 200,"OK", cancel );
okResp->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipMessage*> okMsg(*okResp);
SipSMCommand okCmd( okMsg, SipSMCommand::dialog_layer,
@@ -383,7 +383,7 @@
SipSMCommand::dialog_layer)){
- sendReject( getLastInvite()->getDestinationBranch() );
+ sendReject();
getMediaSession()->stop();
signalIfNoTransactions();
@@ -402,7 +402,7 @@
dialogState.updateState( getLastInvite() );
- sendNotAcceptable( command.getCommandPacket()->getDestinationBranch() );
+ sendNotAcceptable( );
signalIfNoTransactions();
return true;
@@ -614,8 +614,8 @@
}
-void SipDialogVoipServer::sendInviteOk(const string &branch){
- MRef<SipResponse*> ok= new SipResponse(branch, 200,"OK", getLastInvite() );
+void SipDialogVoipServer::sendInviteOk(){
+ MRef<SipResponse*> ok= new SipResponse(200,"OK", getLastInvite() );
ok->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipHeaderValue *> contact =
@@ -667,8 +667,8 @@
getSipStack()->enqueueCommand(cmd, HIGH_PRIO_QUEUE );
}
-void SipDialogVoipServer::sendReject(const string &branch){
- MRef<SipResponse*> ringing = new SipResponse(branch,486,"Temporary unavailable", getLastInvite());
+void SipDialogVoipServer::sendReject(){
+ MRef<SipResponse*> ringing = new SipResponse(486,"Temporary unavailable", getLastInvite());
ringing->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
MRef<SipMessage*> pref(*ringing);
SipSMCommand cmd( pref,SipSMCommand::dialog_layer, SipSMCommand::transaction_layer);
@@ -695,8 +695,8 @@
sendSipMessage( *ringing );
}
-void SipDialogVoipServer::sendNotAcceptable(const string &branch){
- MRef<SipResponse*> not_acceptable = new SipResponse(branch,406,"Not Acceptable", getLastInvite());
+void SipDialogVoipServer::sendNotAcceptable(){
+ MRef<SipResponse*> not_acceptable = new SipResponse(406,"Not Acceptable", getLastInvite());
if( mediaSession && mediaSession->getErrorString() != "" ){
not_acceptable->addHeader(
new SipHeader(
Modified: trunk/libmsip/include/libmsip/SipDialogRegister.h
===================================================================
--- trunk/libmsip/include/libmsip/SipDialogRegister.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/include/libmsip/SipDialogRegister.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -53,7 +53,7 @@
bool getGuiFeedback();
void setGuiFeedback(bool fb);
- void send_register(std::string branch);
+ void sendRegister();
private:
bool a0_start_trying_register( const SipSMCommand &command);
bool a1_trying_registred_2xx( const SipSMCommand &command);
Modified: trunk/libmsip/include/libmsip/SipMessage.h
===================================================================
--- trunk/libmsip/include/libmsip/SipMessage.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/include/libmsip/SipMessage.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -83,15 +83,6 @@
* type. Headers and content must be added to the message
* to make it a valid SIP message. This is typically done
* in the constructor of the sub-class.
- * @param branch All SIP messages have a branch
- * value (which transaction they
- * belong to). This argument may be an
- * empty string.
- * @param type Each SIP message has a type. It
- * is a string that for a method
- * is the method string (for example
- * "INVITE"), and for a response it
- * is the string in SipResponse::type.
*/
SipMessage();
@@ -221,14 +212,6 @@
std::string getCSeqMethod();
/**
- * @return The branch parameter associated with the top
- * most via header, or an empty string if there is no via
- * header or if the branch is not set in the topmost via
- * header.
- */
- std::string getFirstViaBranch();
-
- /**
* @return The top most via header, or a null reference
* if there is no via header in the message.
*/
@@ -252,11 +235,6 @@
SipUri getTo();
/**
- * Removes all via headers that may be in the message.
- */
- void removeAllViaHeaders();
-
- /**
* @return The complete message as a string.
*/
virtual std::string getString() const =0;
@@ -282,7 +260,7 @@
* If it is non empty string it identifies which
* transaction it belongs to.
*/
- std::string getDestinationBranch();
+ std::string getBranch();
/**
* @return Number of headers in this message. Notice that
@@ -349,7 +327,6 @@
MRef<SipHeaderValueWWWAuthenticate*> getHeaderValueWWWAuthenticate(int i);
protected:
- void setBranch(std::string b){branch = b;}
/**
* Parses one line of text to a SIP header and adds it to
@@ -372,9 +349,6 @@
MRef<SipMessageContent*> content;
int parseHeaders(const std::string &buf, int startIndex);
- MRef<SipHeaderValueVia*> getViaHeader(bool first);
- std::string getViaHeaderBranch(bool first);
- std::string branch;
MRef<Socket*> sock;
};
Modified: trunk/libmsip/include/libmsip/SipRequest.h
===================================================================
--- trunk/libmsip/include/libmsip/SipRequest.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/include/libmsip/SipRequest.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -59,19 +59,13 @@
* but for PRACK requests you will have to adjust it.
*/
static MRef<SipRequest*> createSipMessageAck(
- const std::string &branch,
MRef<SipRequest*> origReq,
MRef<SipResponse*> resp,
bool provisional=false);
- static MRef<SipRequest*> createSipMessageCancel(
- const std::string &branch,
- MRef<SipRequest*> inv
-// std::string to_uri
- );
+ static MRef<SipRequest*> createSipMessageCancel( MRef<SipRequest*> inv );
static MRef<SipRequest*> createSipMessageIMMessage(
- const std::string &branch,
const std::string &call_id,
const SipUri& toUri,
const SipUri& fromUri,
@@ -80,7 +74,6 @@
static MRef<SipRequest*> createSipMessageInvite(
- const std::string &branch,
const std::string &call_id,
const SipUri &toUri,
const SipUri &fromUri,
@@ -90,7 +83,6 @@
);
static MRef<SipRequest*> createSipMessageNotify(
- const std::string &branch,
const std::string &call_id,
const SipUri& toUri,
const SipUri& fromUri,
@@ -98,7 +90,6 @@
);
static MRef<SipRequest*> createSipMessageRegister(
- const std::string &branch,
const std::string &call_id,
const SipUri ®istrar,
const SipUri &fromUri,
@@ -106,7 +97,6 @@
int32_t seq_no);
static MRef<SipRequest*> createSipMessageSubscribe(
- const std::string &branch,
const std::string &call_id,
const SipUri& toUri,
const SipUri& fromUri,
Modified: trunk/libmsip/include/libmsip/SipResponse.h
===================================================================
--- trunk/libmsip/include/libmsip/SipResponse.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/include/libmsip/SipResponse.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -49,7 +49,7 @@
public:
static const std::string type;
- SipResponse(std::string branch, int32_t status, std::string status_desc, MRef<SipRequest*> inv);
+ SipResponse(int32_t status, std::string status_desc, MRef<SipRequest*> inv);
virtual std::string getMemObjectType() const {return "SipResponse";}
Modified: trunk/libmsip/include/libmsip/SipTransaction.h
===================================================================
--- trunk/libmsip/include/libmsip/SipTransaction.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/include/libmsip/SipTransaction.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -123,8 +123,6 @@
std::string callId;
private:
-
- //std::string command;
int cSeqNo;
std::string cSeqMethod;
std::string branch;
Modified: trunk/libmsip/include/libmsip/SipTransactionInviteClient.h
===================================================================
--- trunk/libmsip/include/libmsip/SipTransactionInviteClient.h 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/include/libmsip/SipTransactionInviteClient.h 2007-05-22 20:08:46 UTC (rev 3288)
@@ -81,7 +81,7 @@
*/
void setDialogRouteSet(MRef<SipResponse *> resp);
- void sendAck(MRef<SipResponse *>, std::string branch="", bool provisional=false); //if no branch specified, use transaction branch attribute
+ void sendAck(MRef<SipResponse *>, bool provisional=false); //if no branch specified, use transaction branch attribute
private:
Modified: trunk/libmsip/source/SipLayerTransaction.cxx
===================================================================
--- trunk/libmsip/source/SipLayerTransaction.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/source/SipLayerTransaction.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -145,7 +145,7 @@
}
if (c.getType()==SipSMCommand::COMMAND_PACKET){
- string branch = c.getCommandPacket()->getDestinationBranch();
+ string branch = c.getCommandPacket()->getBranch();
if (branch.size()>0)
tid = branch + c.getCommandPacket()->getCSeqMethod();
}
@@ -166,7 +166,7 @@
string branch;
string seqMethod;
if (c.getType()==SipSMCommand::COMMAND_PACKET){
- branch = c.getCommandPacket()->getDestinationBranch();
+ branch = c.getCommandPacket()->getBranch();
seqMethod = c.getCommandPacket()->getCSeqMethod();
}
bool hasBranch = (branch!="");
Modified: trunk/libmsip/source/SipLayerTransport.cxx
===================================================================
--- trunk/libmsip/source/SipLayerTransport.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/source/SipLayerTransport.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -348,7 +348,7 @@
if( command.getType()==SipSMCommand::COMMAND_PACKET ){
MRef<SipMessage*> pack = command.getCommandPacket();
- string branch = pack->getDestinationBranch();
+ string branch = pack->getBranch();
bool addVia = pack->getType() != SipResponse::type;
if (branch==""){
@@ -784,8 +784,7 @@
|| !msg->getHeaderValueTo()
|| (isInvite && !msg->getHeaderValueNo(SIP_HEADER_TYPE_CONTACT,0))){
if (isRequest){
- MRef<SipMessage*> resp = new SipResponse(msg->getFirstViaBranch(),
- 400, "Required header missing", (SipRequest*)*msg );
+ MRef<SipMessage*> resp = new SipResponse( 400, "Required header missing", (SipRequest*)*msg );
resp->setSocket(msg->getSocket());
sendMessage(resp, "TL", false);
}
@@ -944,7 +943,7 @@
mdbg << "Transport error in SipLayerTransport: " << message << end;
cerr << "SipLayerTransport: sendMessage: exception thrown! " << message << endl;
#endif
- CommandString transportError( pack->getDestinationBranch()+pack->getCSeqMethod(),
+ CommandString transportError( pack->getBranch()+pack->getCSeqMethod(),
SipCommandString::transport_error,
"SipLayerTransport: "+message );
SipSMCommand transportErrorCommand(
Modified: trunk/libmsip/source/dialogs/SipDialog.cxx
===================================================================
--- trunk/libmsip/source/dialogs/SipDialog.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/source/dialogs/SipDialog.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -281,7 +281,7 @@
}
MRef<SipResponse*> SipDialog::createSipResponse( MRef<SipRequest*> req, int32_t status, const std::string &reason ){
- MRef<SipResponse*> resp = new SipResponse( req->getDestinationBranch(), status, reason, *req );
+ MRef<SipResponse*> resp = new SipResponse( status, reason, *req );
// FIXME don't change the To tag if it's already present in the request.
resp->getHeaderValueTo()->setParameter("tag",dialogState.localTag);
return resp;
Modified: trunk/libmsip/source/dialogs/SipDialogRegister.cxx
===================================================================
--- trunk/libmsip/source/dialogs/SipDialogRegister.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/source/dialogs/SipDialogRegister.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -57,9 +57,9 @@
+-------------+ a10 GUI(failed)
| +---------------------------------------------------------------+
cmdstr:proxy_regist| | 401 |
- a0 send_register | | a2 send_register |
+ a0 sendRegister | | a2 sendRegister |
| | +-+ cmdstr:setpass |
- V | | V a5 send_register |
+ V | | V a5 sendRegister |
+-------------+<-------------------------+ |
| S1 | 401 | |
+-->| Trying | a3 ask_dialog +---------------+ |
@@ -74,7 +74,7 @@
| | S2 | +----------+
+---| Registred | |
register | | |
- send_reg.. +-------------+ V a13: notransactions
+ sendRegist +-------------+ V a13: notransactions
| | +----------+
--------+ | |
a12 cmdstr:register <proxy> |terminated|
@@ -118,7 +118,7 @@
}
++dialogState.seqNo;
- send_register("");
+ sendRegister();
CommandString cmdstr( dialogState.callId, SipCommandString::register_sent);
cmdstr["identityId"] = getDialogConfig()->sipIdentity->getId();
@@ -200,7 +200,7 @@
}
++dialogState.seqNo;
- send_register("");
+ sendRegister();
//TODO: inform GUI
return true;
@@ -257,7 +257,7 @@
++dialogState.seqNo;
- send_register(/*trans->getBranch()*/"");
+ sendRegister();
return true;
}else{
return false;
@@ -337,7 +337,7 @@
}
++dialogState.seqNo;
- send_register("");
+ sendRegister();
CommandString cmdstr(dialogState.callId, SipCommandString::register_sent);
cmdstr["identityId"] = getDialogConfig()->sipIdentity->getId();
@@ -528,7 +528,7 @@
return ret;
}
-void SipDialogRegister::send_register(string branch){
+void SipDialogRegister::sendRegister(){
// mdbg << "SipDialogRegister: domain is "<< proxy_domain<< end;
@@ -547,7 +547,6 @@
}
MRef<SipRequest*> reg= SipRequest::createSipMessageRegister(
- branch,
dialogState.callId,
identity->getSipRegistrar()->getUri(),
identity->getSipUri(),
Modified: trunk/libmsip/source/messages/SipMessage.cxx
===================================================================
--- trunk/libmsip/source/messages/SipMessage.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/source/messages/SipMessage.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -143,14 +143,12 @@
}
int32_t SipMessage::getContentLength(){
- for (int32_t i=0; i< headers.size(); i++){
- MRef<SipHeaderValueContentLength*> len;
- if ((headers[i])->getType() == SIP_HEADER_TYPE_CONTENTLENGTH){
- len = MRef<SipHeaderValueContentLength*>((SipHeaderValueContentLength*)*(headers[i]->getHeaderValue(0)));
- return len->getContentLength();
- }
+ MRef<SipHeaderValue*> cl = getHeaderValueNo( SIP_HEADER_TYPE_CONTENTLENGTH, 0 );
+ if (cl){
+ return ((SipHeaderValueContentLength*)*cl)->getContentLength();
+ }else{
+ return 0;
}
- return 0;
}
string SipMessage::getHeadersAndContent() const{
@@ -229,7 +227,6 @@
{
uint32_t i;
- //string header;
for (i=0; buildFrom[i]!='\r' && buildFrom[i]!='\n'; i++){
if(i==buildFrom.size()){
#ifdef DEBUG_OUTPUT
@@ -265,51 +262,33 @@
merr << "WARNING: Sip message has content, but no content type! Content ignored."<< end;
}
}
-
- branch = getFirstViaBranch();
}
bool SipMessage::addLine(string line){
- //ts.save("SipMessage-creating header start");
MRef<SipHeader*> hdr = SipHeader::parseHeader(line);
- //ts.save("SipMessage-creating header end");
- if( hdr.isNull() ) //do not add if null
+ if( hdr.isNull() )
return false;
addHeader(hdr);
return true;
}
-
-MRef<SipHeaderValue*> findFirstHeaderValue(minilist<MRef<SipHeader*> > headers, int type)
-{
- for (int32_t i=0; i< headers.size(); i++){
- if ((headers[i])->getType() == type){
- return headers[i]->getHeaderValue(0);
-
- }
- }
- return NULL;
-}
-
void SipMessage::setContent(MRef<SipMessageContent*> c){
this->content=c;
if( content ){
string contentType = content->getContentType();
if( contentType != "" ){
- MRef<SipHeaderValue*> hdr = findFirstHeaderValue( headers, SIP_HEADER_TYPE_CONTENTTYPE );
+ MRef<SipHeaderValue*> hdr = getHeaderValueNo(SIP_HEADER_TYPE_CONTENTTYPE, 0);
if( hdr ){
- MRef<SipHeaderValueContentType*> contentTypeHdr =
- dynamic_cast<SipHeaderValueContentType*>(*hdr);
+ MRef<SipHeaderValueContentType*> contentTypeHdr = (SipHeaderValueContentType*)*hdr;
contentTypeHdr->setString(contentType);
+ } else{
+ MRef<SipHeaderValue*> contenttypep = new SipHeaderValueContentType( contentType );
+ addHeader( new SipHeader(contenttypep) );
}
- else{
- MRef<SipHeaderValueContentType*> contenttypep = new SipHeaderValueContentType( contentType );
- addHeader(new SipHeader(*contenttypep));
- }
}
}
}
@@ -319,77 +298,56 @@
}
string SipMessage::getCallId(){
- for (int32_t i=0; i< headers.size(); i++){
- MRef<SipHeaderValueCallID*> id;
- if ((headers[i])->getType() == SIP_HEADER_TYPE_CALLID){
- id = MRef<SipHeaderValueCallID*>((SipHeaderValueCallID*)*(headers[i]->getHeaderValue(0)));
- return id->getString();
- }
- }
- return "";
+ MRef<SipHeaderValue*> id = getHeaderValueNo( SIP_HEADER_TYPE_CALLID, 0 );
+ if (id)
+ return ((SipHeaderValue*)*id)->getString();
+ else
+ return "";
}
int32_t SipMessage::getCSeq(){
- for (int32_t i=0; i< headers.size(); i++){
- MRef<SipHeaderValueCSeq*> seq;
- if ((headers[i])->getType() == SIP_HEADER_TYPE_CSEQ){
- seq = MRef<SipHeaderValueCSeq*>((SipHeaderValueCSeq *)*(headers[i]->getHeaderValue(0)));
- return seq->getCSeq();
- }
+ MRef<SipHeaderValue*> seq = getHeaderValueNo( SIP_HEADER_TYPE_CSEQ, 0 );
+ if (seq){
+ return ((SipHeaderValueCSeq*)*seq)->getCSeq();
+ }else{
+ mdbg << "ERROR: Could not find command sequence number in sip Message."<< end;
+ return -1;
}
- mdbg << "ERROR: Could not find command sequence number in sip Message."<< end;
- return -1;
}
-string SipMessage::getViaHeaderBranch(bool first){
- string b;
- MRef<SipHeaderValueVia*> via = getViaHeader(first);
-
- if( !via.isNull() ){
- b = via->getParameter("branch");
- }
-
- return b;
+MRef<SipHeaderValueVia*> SipMessage::getFirstVia(){
+ MRef<SipHeaderValue*> via = getHeaderValueNo( SIP_HEADER_TYPE_VIA, 0 );
+ if (via)
+ return (SipHeaderValueVia*) *via;
+ else
+ return NULL;
}
-MRef<SipHeaderValueVia*> SipMessage::getViaHeader(bool first){
- MRef<SipHeaderValueVia*> via;
-
- for (int32_t i=0; i< headers.size(); i++){
- if ((headers[i])->getType() == SIP_HEADER_TYPE_VIA){
- via = MRef<SipHeaderValueVia*>((SipHeaderValueVia*)*(headers[i]->getHeaderValue(0)));
- if (first)
- return via;
- }
+void SipMessage::removeFirstVia(){
+ MRef<SipHeader*> hdr = getHeaderOfType( SIP_HEADER_TYPE_VIA, 0 );
+ if( hdr->getNoValues() > 1 ){
+ hdr->removeHeaderValue( 0 );
+ } else{
+ removeHeader( hdr );
}
- return via;
}
-
-MRef<SipHeaderValueVia*> SipMessage::getFirstVia(){
- return getViaHeader(true);
+string SipMessage::getBranch(){
+ MRef<SipHeaderValue*> firstVia = getHeaderValueNo( SIP_HEADER_TYPE_VIA, 0 );
+ if (firstVia){
+ return firstVia->getParameter("branch");
+ }else
+ return "";
}
-
-string SipMessage::getFirstViaBranch(){
- return getViaHeaderBranch(true);
-}
-
-string SipMessage::getDestinationBranch(){
- return branch;
-}
-
string SipMessage::getCSeqMethod(){
- for (int32_t i=0; i < headers.size(); i++){
- MRef<SipHeaderValueCSeq*> seq;
- if ((headers[i])->getType() == SIP_HEADER_TYPE_CSEQ){
- seq = MRef<SipHeaderValueCSeq*>((SipHeaderValueCSeq *)*(headers[i]->getHeaderValue(0)));
- return seq->getMethod();
- }
-
+ MRef<SipHeaderValue*> seq = getHeaderValueNo( SIP_HEADER_TYPE_CSEQ, 0 );
+ if (seq){
+ return ((SipHeaderValueCSeq*)*seq)->getMethod();
+ }else{
+ mdbg << "ERROR: Could not find command sequence method in sip Message."<< end;
+ return "";
}
- mdbg << "ERROR: Could not find command sequence method in sip Message."<< end;
- return "";
}
SipUri SipMessage::getFrom(){
@@ -410,41 +368,10 @@
return ret;
}
-void SipMessage::removeFirstVia(){
- MRef<SipHeader*> hdr = getHeaderOfType( SIP_HEADER_TYPE_VIA, 0 );
- if( hdr->getNoValues() > 1 ){
- hdr->removeHeaderValue( 0 );
- }
- else{
- removeHeader( hdr );
- }
-
- branch = getFirstViaBranch();
-}
-
void SipMessage::removeHeader(MRef<SipHeader*> header){
headers.remove( header );
}
-void SipMessage::removeAllViaHeaders(){
- bool done=false;
- int n=0;
- while (!done){
- done=true;
-
- for (int i=0; i<headers.size(); i++){
- if ((headers[i])->getType()==SIP_HEADER_TYPE_VIA){
- headers.remove(i);
- done=false;
- n++;
- i--;
- break;
- }
-
- }
- }
-}
-
MRef<SipHeaderValueFrom*> SipMessage::getHeaderValueFrom(){
MRef<SipHeader*> from = getHeaderOfType( SIP_HEADER_TYPE_FROM );
@@ -469,8 +396,7 @@
MRef<SipHeader *> h = getHeaderOfType( SIP_HEADER_TYPE_CONTACT );
if( h ){
- return MRef<SipHeaderValueContact*>(
- (SipHeaderValueContact*)*(h->getHeaderValue(0) ) );
+ return (SipHeaderValueContact*)*(h->getHeaderValue(0) );
}
return NULL;
}
@@ -512,28 +438,23 @@
}
string SipMessage::getWarningMessage(){
- for (uint32_t i = 0; i< (uint32_t)headers.size(); i++)
- if ((headers[i])->getType() == SIP_HEADER_TYPE_WARNING){
- string warning = ((SipHeaderValueWarning *)*(headers[i]->getHeaderValue(0)))->getWarning();
- return warning;
- }
- return "";
+
+ MRef<SipHeaderValue*> warn = getHeaderValueNo( SIP_HEADER_TYPE_WARNING, 0 );
+ if (warn)
+ return ((SipHeaderValueWarning*)*warn)->getWarning();
+ else{
+ return "";
+ }
}
list<string> SipMessage::getRouteSet() {
list<string> set;
-
- //merr << "CESC: SipMessage::getRouteSet() " << end;
- for( int i=0; i<headers.size(); i++ ) {
- if( headers[i]->getType() == SIP_HEADER_TYPE_RECORDROUTE ) {
- for( int j=0; j<headers[i]->getNoValues(); j++ ) {
- MRef<SipHeaderValueRecordRoute *> rr = (MRef<SipHeaderValueRecordRoute *>) ((SipHeaderValueRecordRoute *)*headers[i]->getHeaderValue(j));
- //merr << "CESC: SipMessage: Record-Route: (" << i << "," << j << ") : " << rr->getStringWithParameters() << end;
- set.push_back( rr->getStringWithParameters() );
- }
- //merr << "CESC: SipMessage: Record-Route: " << headers[i]->getString() << end;
- }
+ int n=0;
+ MRef<SipHeaderValue*> rr;
+ while ( ! (rr=getHeaderValueNo(SIP_HEADER_TYPE_RECORDROUTE,n++)).isNull() ){
+ set.push_back( ((SipHeaderValueRecordRoute*)*rr)->getStringWithParameters() );
}
+
return set;
}
Modified: trunk/libmsip/source/messages/SipRequest.cxx
===================================================================
--- trunk/libmsip/source/messages/SipRequest.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/source/messages/SipRequest.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -55,8 +55,7 @@
using namespace std;
-MRef<SipRequest*> SipRequest::createSipMessageAck(const string &branch,
- MRef<SipRequest*> origReq,
+MRef<SipRequest*> SipRequest::createSipMessageAck( MRef<SipRequest*> origReq,
MRef<SipResponse*> resp,
bool provisional)
{
@@ -95,19 +94,16 @@
}
-MRef<SipRequest*> SipRequest::createSipMessageCancel(const string &branch,
- MRef<SipRequest*> inv
-// string to_uri
- )
+MRef<SipRequest*> SipRequest::createSipMessageCancel( MRef<SipRequest*> r )
{
- MRef<SipRequest*> req = new SipRequest("CANCEL", inv->getUri());
+ MRef<SipRequest*> req = new SipRequest("CANCEL", r->getUri());
req->addHeader(new SipHeader( new SipHeaderValueMaxForwards(70)));
MRef<SipHeader *> header;
- int noHeaders = inv->getNoHeaders();
+ int noHeaders = r->getNoHeaders();
for (int32_t i=0; i< noHeaders; i++){
- header = inv->getHeaderNo(i);
+ header = r->getHeaderNo(i);
int type = header->getType();
bool add=false;
switch (type){
@@ -143,8 +139,7 @@
}
-MRef<SipRequest*> SipRequest::createSipMessageIMMessage(const string& branch,
- const string& callId,
+MRef<SipRequest*> SipRequest::createSipMessageIMMessage(const string& callId,
const SipUri& toUri,
const SipUri& fromUri,
int32_t seqNo,
@@ -170,8 +165,7 @@
}
}
-MRef<SipRequest*> SipRequest::createSipMessageInvite(const string &branch,
- const string &call_id,
+MRef<SipRequest*> SipRequest::createSipMessageInvite( const string &call_id,
const SipUri &toUri,
const SipUri &fromUri,
const SipUri &contact,
@@ -187,8 +181,7 @@
return req;
}
-MRef<SipRequest*> SipRequest::createSipMessageNotify(const string& branch,
- const string& callId,
+MRef<SipRequest*> SipRequest::createSipMessageNotify( const string& callId,
const SipUri& toUri,
const SipUri& fromUri,
int32_t seqNo
@@ -201,8 +194,7 @@
return req;
}
-MRef<SipRequest*> SipRequest::createSipMessageRegister(const string &branch,
- const string &call_id,
+MRef<SipRequest*> SipRequest::createSipMessageRegister( const string &call_id,
const SipUri ®istrar,
const SipUri &fromUri,
MRef<SipHeaderValueContact *> contactHdr,
@@ -220,8 +212,7 @@
}
-MRef<SipRequest*> SipRequest::createSipMessageSubscribe(const string &branch,
- const string &call_id,
+MRef<SipRequest*> SipRequest::createSipMessageSubscribe(const string &call_id,
const SipUri &toUri,
const SipUri &fromUri,
const SipUri &contact,
Modified: trunk/libmsip/source/messages/SipResponse.cxx
===================================================================
--- trunk/libmsip/source/messages/SipResponse.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/source/messages/SipResponse.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -51,15 +51,13 @@
const string SipResponse::type="RESPONSE";
-SipResponse::SipResponse(string branch_,
- int32_t status,
+SipResponse::SipResponse( int32_t status,
string status_desc_,
MRef<SipRequest*> req)
{
this->status_code=status;
this->status_desc=status_desc_;
- setBranch(branch_);
setContent(NULL);
MRef<SipHeaderValue*> mf = new SipHeaderValueMaxForwards(70);
Modified: trunk/libmsip/source/transactions/SipTransaction.cxx
===================================================================
--- trunk/libmsip/source/transactions/SipTransaction.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/source/transactions/SipTransaction.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -83,7 +83,7 @@
int seqNo = req->getCSeq();
string seqMethod = req->getCSeqMethod();
string callId = req->getCallId();
- string branch= req->getDestinationBranch();
+ string branch= req->getBranch();
#ifdef DEBUG_OUTPUT
mdbg << "TRANSACTION_CREATE: "<< seqMethod<<" "<<seqNo<<" branch="<<branch<<" callid=" << callId<<" client="<<fromTU<< endl;
Modified: trunk/libmsip/source/transactions/SipTransactionInviteClient.cxx
===================================================================
--- trunk/libmsip/source/transactions/SipTransactionInviteClient.cxx 2007-05-22 17:50:30 UTC (rev 3287)
+++ trunk/libmsip/source/transactions/SipTransactionInviteClient.cxx 2007-05-22 20:08:46 UTC (rev 3288)
@@ -557,20 +557,9 @@
}
-void SipTransactionInviteClient::sendAck(MRef<SipResponse*> resp, string br, bool provisional){
+void SipTransactionInviteClient::sendAck(MRef<SipResponse*> resp, bool provisional){
-// MRef<SipStackConfig *> conf;
-// if (dialog){
-// conf = dialog->getDialogConfig()->inherited;
-// }else{
-// conf = sipStack->getStackConfig();
-// }
-
- //merr << "CESC: SipTransInvClie:sendACK : dialogstate.remoteUri=" << dialog->dialogState.remoteUri << end;
-
-// MRef<SipMessage*> ref( *resp);
-
- MRef<SipRequest*> ack= SipRequest::createSipMessageAck( br,
+ MRef<SipRequest*> ack= SipRequest::createSipMessageAck(
lastInvite,
resp,
provisional
@@ -582,7 +571,7 @@
//((SipHeaderValueCSeq*)*ack->getHeaderValueNo(SIP_HEADER_TYPE_CSEQ, 0))->setCSeq(seq);
}
- send(MRef<SipMessage*>(*ack), true, br);
+ send(MRef<SipMessage*>(*ack), true, lastInvite->getBranch() );
}
More information about the Minisip-devel
mailing list