r3342 - trunk/minisip/minisip/gui/textui

mafe at minisip.org mafe at minisip.org
Thu Jun 28 15:47:25 CEST 2007


Author: mafe
Date: 2007-06-28 15:47:25 +0200 (Thu, 28 Jun 2007)
New Revision: 3342

Modified:
   trunk/minisip/minisip/gui/textui/MinisipTextUI.cxx
Log:
 
Text ui functions to start and accept file transfers.

This has been used when evaluating MSRP as a suitable 
protocol to impelement secure reliable data channels for
SIP UAs.



Modified: trunk/minisip/minisip/gui/textui/MinisipTextUI.cxx
===================================================================
--- trunk/minisip/minisip/gui/textui/MinisipTextUI.cxx	2007-06-28 13:00:38 UTC (rev 3341)
+++ trunk/minisip/minisip/gui/textui/MinisipTextUI.cxx	2007-06-28 13:47:25 UTC (rev 3342)
@@ -56,6 +56,8 @@
 	addCommand("enable autoanswer");
 	addCommand("enable debugmsgs");
 	addCommand("disable debugmsgs");
+	addCommand("send"); //sends a file. Give file name as argument
+	addCommand("receive"); //accepts incoming files
 	addCommand("hangup");
 	addCommand("hide packets");
 	addCommand("register");
@@ -169,6 +171,27 @@
 		displayMessage("Register to proxy "+cmd.getParam()+" OK", green);
 	}
 
+	if (cmd.getOp()=="file_transfer_done"){
+		handled=true;
+		state="IDLE";
+		setPrompt(state);
+		displayMessage("File transfer done.",red);
+		callId=""; //FIXME: should check the callId of cmd.
+		inCall=false;
+	}
+
+	if (cmd.getOp()=="incoming_filetransfer_accept"){
+		handled=true;
+		if(state=="IDLE"){
+			state="RECEIVE?";
+			setPrompt(state);
+			callId=cmd.getDestinationId();
+			displayMessage("The file transfer from "+cmd.getParam(), blue);
+		}
+	}
+
+
+
 	if (cmd.getOp()=="register_sent"){
 		handled=true; // we don't need to inform the user
 	}
@@ -726,6 +749,35 @@
 		
 
 	}
+
+	if (command == "receive"){
+		CommandString c(callId, "accept_file_transfer");
+		sendCommand("sip", c);
+		displayMessage("Sent accept files command");
+		handled=true;
+                inCall = true;
+		state="RECEIVEING";
+	}
+
+
+
+	if (command.substr(0,4) == "send"){
+		string param = trim(command.substr(5));
+		vector<string> params = split(param, true, ' ');
+		if (params.size()<2){
+			displayMessage("Syntax: send <uri> <file1> [<file2> ...] ");
+		}else{
+			string uri=params[0];
+			CommandString command(callId, "start_filetransfer", uri);
+			for (int f=1; f< params.size(); f++)
+				command["filename"+itoa(f-1)]= params[f];
+			sendCommand("sip", command);
+			displayMessage("Starting file transfer...");
+		}
+		handled=true;
+	}
+
+
 	if (command == "join"){
 		CommandString command(callId, SipCommandString::accept_invite, currentcaller);
 		command.setParam3(currentconfname);



More information about the Minisip-devel mailing list