diff options
Diffstat (limited to 'kopete/plugins/netmeeting/netmeetinginvitation.cpp')
-rw-r--r-- | kopete/plugins/netmeeting/netmeetinginvitation.cpp | 183 |
1 files changed, 0 insertions, 183 deletions
diff --git a/kopete/plugins/netmeeting/netmeetinginvitation.cpp b/kopete/plugins/netmeeting/netmeetinginvitation.cpp deleted file mode 100644 index b42f9e93..00000000 --- a/kopete/plugins/netmeeting/netmeetinginvitation.cpp +++ /dev/null @@ -1,183 +0,0 @@ -/* - msninvitation.cpp - - Copyright (c) 2003 by Olivier Goffart <ogoffart @ kde.org> - - ************************************************************************* - * * - * This program is free software; you can redistribute it and/or modify * - * it under the terms of the GNU General Public License as published by * - * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * - * * - ************************************************************************* -*/ - -#include "netmeetinginvitation.h" - -#include "kopeteuiglobal.h" - -#include "msnchatsession.h" -#include "msnswitchboardsocket.h" -#include "msncontact.h" -#include "kopetemetacontact.h" - -#include <tdelocale.h> -#include <tdemessagebox.h> -#include <kdebug.h> -#include <tdeconfig.h> -#include <tdeglobal.h> - - -#include <tqtimer.h> -#include <kprocess.h> - -NetMeetingInvitation::NetMeetingInvitation(bool incoming, MSNContact *c, TQObject *parent) - : TQObject(parent) , MSNInvitation( incoming, NetMeetingInvitation::applicationID() , i18n("NetMeeting") ) -{ - m_contact=c; - oki=false; -} - - -NetMeetingInvitation::~NetMeetingInvitation() -{ -} - - -TQString NetMeetingInvitation::invitationHead() -{ - TQTimer::singleShot( 10*60000, this, TQT_SLOT( slotTimeout() ) ); //send TIMEOUT in 10 minute if the invitation has not been accepted/refused - return TQString( MSNInvitation::invitationHead()+ - "Session-Protocol: SM1\r\n" - "Session-ID: {6672F94C-45BF-11D7-B4AE-00010A1008DF}\r\n" //FIXME i don't know what is the session id - "\r\n").utf8(); -} - -void NetMeetingInvitation::parseInvitation(const TQString& msg) -{ - TQRegExp rx("Invitation-Command: ([A-Z]*)"); - rx.search(msg); - TQString command=rx.cap(1); - if( msg.contains("Invitation-Command: INVITE") ) - { - MSNInvitation::parseInvitation(msg); //for the cookie - - unsigned int result = KMessageBox::questionYesNo( Kopete::UI::Global::mainWidget(), - i18n("%1 wants to start a chat with NetMeeting; do you want to accept it? " ).arg(m_contact->metaContact()->displayName()), - i18n("MSN Plugin") , i18n("Accept"),i18n("Refuse")); - - MSNChatSession* manager=dynamic_cast<MSNChatSession*>(m_contact->manager()); - - if(manager && manager->service()) - { - if(result==3) // Yes == 3 - { - TQCString message=TQString( - "MIME-Version: 1.0\r\n" - "Content-Type: text/x-msmsgsinvite; charset=UTF-8\r\n" - "\r\n" - "Invitation-Command: ACCEPT\r\n" - "Invitation-Cookie: " + TQString::number(cookie()) + "\r\n" - "Session-ID: {6672F94C-45BF-11D7-B4AE-00010A1008DF}\r\n" //FIXME - "Session-Protocol: SM1\r\n" - "Launch-Application: TRUE\r\n" - "Request-Data: IP-Address:\r\n" - "IP-Address: " + manager->service()->getLocalIP()+ "\r\n" - "\r\n" ).utf8(); - - - manager->service()->sendCommand( "MSG" , "N", true, message ); - oki=false; - TQTimer::singleShot( 10* 60000, this, TQT_SLOT( slotTimeout() ) ); //TIMOUT afte 10 min - } - else //No - { - manager->service()->sendCommand( "MSG" , "N", true, rejectMessage() ); - emit done(this); - } - } - } - else if( msg.contains("Invitation-Command: ACCEPT") ) - { - if( ! incoming() ) - { - MSNChatSession* manager=dynamic_cast<MSNChatSession*>(m_contact->manager()); - if(manager && manager->service()) - { - TQCString message=TQString( - "MIME-Version: 1.0\r\n" - "Content-Type: text/x-msmsgsinvite; charset=UTF-8\r\n" - "\r\n" - "Invitation-Command: ACCEPT\r\n" - "Invitation-Cookie: " + TQString::number(cookie()) + "\r\n" - "Session-ID: {6672F94C-45BF-11D7-B4AE-00010A1008DF}\r\n" //FIXME: what is session id? - "Session-Protocol: SM1\r\n" - "Launch-Application: TRUE\r\n" - "Request-Data: IP-Address:\r\n" - "IP-Address: " + manager->service()->getLocalIP() + "\r\n" - "\r\n" ).utf8(); - manager->service()->sendCommand( "MSG" , "N", true, message ); - } - rx=TQRegExp("IP-Address: ([0-9\\:\\.]*)"); - rx.search(msg); - TQString ip_address = rx.cap(1); - startMeeting(ip_address); - kdDebug() << k_funcinfo << ip_address << endl; - } - else - { - rx=TQRegExp("IP-Address: ([0-9\\:\\.]*)"); - rx.search(msg); - TQString ip_address = rx.cap(1); - - startMeeting(ip_address); - } - } - else //CANCEL - { - emit done(this); - } -} - -void NetMeetingInvitation::slotTimeout() -{ - if(oki) - return; - - MSNChatSession* manager=dynamic_cast<MSNChatSession*>(m_contact->manager()); - - if(manager && manager->service()) - { - manager->service()->sendCommand( "MSG" , "N", true, rejectMessage("TIMEOUT") ); - } - emit done(this); - -} - - -void NetMeetingInvitation::startMeeting(const TQString & ip_address) -{ - //TODO: use TDEProcess - - TDEConfig *config=TDEGlobal::config(); - config->setGroup("Netmeeting Plugin"); - TQString app=config->readEntry("NetmeetingApplication","ekiga -c callto://%1").arg(ip_address); - - kdDebug() << k_funcinfo << app << endl ; - - TQStringList args=TQStringList::split(" ", app); - - TDEProcess p; - for(TQStringList::Iterator it=args.begin() ; it != args.end() ; ++it) - { - p << *it; - } - p.start(); -} - -#include "netmeetinginvitation.moc" - - - - |