diff --git a/src/gui/qt/PhoneLine.cpp b/src/gui/qt/PhoneLine.cpp index 2ddd72d3ad9212dd33cfc687ebbb1e6a8642b6f7..4fd05f29a296ec86f9f3959a9410d0cf313f4a9e 100644 --- a/src/gui/qt/PhoneLine.cpp +++ b/src/gui/qt/PhoneLine.cpp @@ -417,6 +417,7 @@ PhoneLine::hangup(bool sendrequest) } clearCall(); } + emit hanguped(); clear(); clearPeer(); diff --git a/src/gui/qt/PhoneLine.hpp b/src/gui/qt/PhoneLine.hpp index 2a390585e23bd3602ca61e25be620de722a7df28..97acd883ac4b64865134634188f0e6ae4a3c7831 100644 --- a/src/gui/qt/PhoneLine.hpp +++ b/src/gui/qt/PhoneLine.hpp @@ -1,5 +1,6 @@ /* - * Copyright (C) 2004-2005 Savoir-Faire Linux inc. + * Copyright (C) 2004-2006 Savoir-Faire Linux inc. + * Author: Yan Morin <yan.morin@savoirfairelinux.com> * Author: Jean-Philippe Barrette-LaPierre * <jean-philippe.barrette-lapierre@savoirfairelinux.com> * @@ -155,6 +156,8 @@ signals: void talkingStarted(QTime); void talkingStopped(); void transfered(); + /** when the call is hangup */ + void hanguped(); private: void setCall(Call *call); diff --git a/src/gui/qt/PhoneLineButton.cpp b/src/gui/qt/PhoneLineButton.cpp index 95cfedc132c35b018a8c867cb270ab4914aa896d..d1dfad00b82c387c41cba0d08bd55c7d92718635 100644 --- a/src/gui/qt/PhoneLineButton.cpp +++ b/src/gui/qt/PhoneLineButton.cpp @@ -75,14 +75,12 @@ void PhoneLineButton::sendClicked() { if(isOn()) { - mIsFlashing = false; - mTimer->stop(); + stopFlashing(); emit selected(mLine); } else { if (mIsFlashing) { - mIsFlashing = false; - mTimer->stop(); + stopFlashing(); emit selected(mLine); } else { emit unselected(mLine); @@ -90,3 +88,8 @@ PhoneLineButton::sendClicked() } } +void +PhoneLineButton::stopFlashing() { + mIsFlashing = false; + mTimer->stop(); +} diff --git a/src/gui/qt/PhoneLineButton.hpp b/src/gui/qt/PhoneLineButton.hpp index 19bf532f2804a395969213b0a00d1f6d0c9e20e5..c7e74189708bcb1e2a4439c659f748f7edaeca0d 100644 --- a/src/gui/qt/PhoneLineButton.hpp +++ b/src/gui/qt/PhoneLineButton.hpp @@ -55,6 +55,10 @@ public slots: virtual void clearToolTip(); virtual void swap(); virtual void sendClicked(); + /** + * Stop the timer and the flashing + */ + void stopFlashing(); private: unsigned int mLine; diff --git a/src/gui/qt/SFLPhoneApp.cpp b/src/gui/qt/SFLPhoneApp.cpp index e26a4e3f31a76d19963d24e088fc8554d4fb4da6..6bdc8899fd4bafc413d36d2304d4584b9391c3ef 100644 --- a/src/gui/qt/SFLPhoneApp.cpp +++ b/src/gui/qt/SFLPhoneApp.cpp @@ -117,6 +117,8 @@ SFLPhoneApp::initConnections(SFLPhoneWindow *w) *pos, SLOT(setOn(bool))); QObject::connect(line, SIGNAL(backgrounded()), *pos, SLOT(suspend())); + QObject::connect(line, SIGNAL(hanguped()), + *pos, SLOT(stopFlashing())); QObject::connect(line, SIGNAL(peerUpdated(QString)), *pos, SLOT(setToolTip(QString))); QObject::connect(line, SIGNAL(peerCleared()), diff --git a/src/sipaccount.cpp b/src/sipaccount.cpp index 1ace8dbedbef5acb4d2aaacbcd737f0ff1b4d66f..ba027b7f2b41c67da69ec8a6ed45060222586a2b 100644 --- a/src/sipaccount.cpp +++ b/src/sipaccount.cpp @@ -54,7 +54,8 @@ SIPAccount::createVoIPLink() bool SIPAccount::registerAccount() { - if (_link && !_registered) { + if (_link) { + unregisterAccount(); SIPVoIPLink* tmplink = dynamic_cast<SIPVoIPLink*> (_link); if (tmplink) { tmplink->setProxy(Manager::instance().getConfigString(_accountID,SIP_PROXY)); diff --git a/src/sipcall.cpp b/src/sipcall.cpp index 7ce17a9daa229c25323aad53a610ccefb235de75..cb3fde09268c8412badd7fc963780d5f0d4f10c9 100644 --- a/src/sipcall.cpp +++ b/src/sipcall.cpp @@ -430,7 +430,7 @@ SIPCall::sdp_complete_message(sdp_message_t * remote_sdp, osip_message_t * msg) iPayload++; } if (listCodec.str().empty()) { - media << "m=" << remote_med->m_media << " 0 << " << remote_med->m_proto << " \r\n"; + media << "m=" << remote_med->m_media << " 0 " << remote_med->m_proto << " \r\n"; } else { // we add the media line + a=rtpmap list media << "m=" << remote_med->m_media << " " << getLocalExternAudioPort() << " RTP/AVP " << listCodec.str() << "\r\n";