📄 ksippreferences.cpp
字号:
#include <qvbox.h>#include <qlabel.h>#include <qlineedit.h>#include <qdir.h>#include <qhbuttongroup.h>#include <qradiobutton.h>#include <qcheckbox.h>#include <qmultilineedit.h>#include <qsettings.h>#include "../dissipate2/sipprotocol.h"#include "../dissipate2/sipclient.h"#include "kphone.h"#include "sessioncontrol.h"#include "ksippreferences.h"#include "kstatics.h"KSipPreferences::KSipPreferences( SipClient *client, SessionControl *ca, QWidget *parent, const char *name ) : QTabDialog( parent, QString( name ) + "Global SIP Preferences" ){ c = client; sessionC = ca; pFix = QString::fromAscii( name); QVBox *vboxadv = new QVBox(); addTab( vboxadv, "Settings" ); // Via hiding radio buttons hidebg = new QHButtonGroup( "Hide Via", vboxadv ); QRadioButton *nohide = new QRadioButton( "Don't Hide", hidebg ); hidebg->insert( nohide, NoHide ); QRadioButton *hophide = new QRadioButton( "Request Next Hop", hidebg ); hidebg->insert( hophide, HideHop ); QRadioButton *routehide = new QRadioButton( "Request Full Route", hidebg ); hidebg->insert( routehide, HideRoute ); // Set max forwards (void) new QLabel( "Max Forwards", vboxadv ); maxforwards = new QLineEdit( vboxadv ); // PhoneBook (void) new QLabel( "XML-File for Phone Book:", vboxadv ); phonebook = new QLineEdit( vboxadv ); // RegistrationExpiresTime (void) new QLabel( "Expire Time of Registration (seconds):", vboxadv ); expires = new QLineEdit( vboxadv ); // SubscribeExpiresTime (void) new QLabel( "Expire Time of Presence Subscription (seconds):", vboxadv ); subscribeExpires = new QLineEdit( vboxadv ); // CT Notification Timer (void) new QLabel( "Expire Time of CT Notification (seconds):", vboxadv ); notiExpires = new QLineEdit( vboxadv ); // DTMF Sequence Timer (void) new QLabel( "Wait between DTMF seqences (milliseconds):", vboxadv ); dtmfWait = new QLineEdit( vboxadv ); // Remote Dialer rembg = new QHButtonGroup( "Remote Dialer", vboxadv ); QRadioButton *norem = new QRadioButton( "No remote dialer", rembg ); rembg->insert( norem, NoRem ); QRadioButton *yesrem = new QRadioButton( "Use remote dialer", rembg ); rembg->insert( yesrem, YesRem ); if( sessionC->getRem() ) { rembg->setButton( YesRem ); } else { rembg->setButton( NoRem ); }#ifdef SRTP QVBox* sboxs = new QVBox(); //sboxs->setFixedHeight(350); addTab( sboxs, tr("SRTP") ); srtp = new QHButtonGroup( tr("Mode"), sboxs ); QRadioButton* disabledB = new QRadioButton( tr("Disabled"), srtp ); srtp->insert( disabledB, disable ); QRadioButton* pskB = new QRadioButton( tr("SRTP Encryption)"), srtp ); srtp->insert( pskB, psk ); (void) new QLabel( tr("SRTP Master Key (length 30 characters):"), sboxs ); pskMasterKey = new QLineEdit( sboxs );#endif sessionC->setSrtpMode( 0 ); // Socket QVBox *vboxs = new QVBox( ); addTab( vboxs, "Socket" ); // UDP / TCP socket = new QHButtonGroup( "Socket Protocol (Kphone restart needed to apply change)", vboxs ); QRadioButton *udp = new QRadioButton( "UDP", socket ); socket->insert( udp, UDP ); QRadioButton *tcp = new QRadioButton( "TCP", socket ); socket->insert( tcp, TCP ); // STUN stun = new QHButtonGroup( "Use STUN Server (First activation works after reboot, only ", vboxs ); QRadioButton *StunYes = new QRadioButton( "Yes", stun ); stun->insert( StunYes, stunYes ); QRadioButton *StunNo = new QRadioButton( "No", stun ); stun->insert( StunNo, stunNo ); // Symmetric signalling /*symmetric = new QHButtonGroup( "Symmetric Signalling", vboxs ); QRadioButton *SymmetricYes = new QRadioButton( "Yes", symmetric ); symmetric->insert( SymmetricYes, symmetricYes ); QRadioButton *SymmetricNo = new QRadioButton( "No", symmetric ); symmetric->insert( SymmetricNo, symmetricNo ); */ // Symmetric media /*symMedia = new QHButtonGroup( "Symmetric Media", vboxs ); QRadioButton *SymMediaYes = new QRadioButton( "Yes", symMedia ); symMedia->insert( SymMediaYes, symMediaYes ); QRadioButton *SymMediaNo = new QRadioButton( "No", symMedia ); symMedia->insert( SymMediaNo, symMediaNo); */ (void) new QLabel( "STUN Server (address:port):", vboxs ); stunServerAddr = new QLineEdit( vboxs ); // Request period (void) new QLabel( "Request Period for STUN Server (second):", vboxs ); stunRequestPeriod = new QLineEdit( vboxs ); (void) new QLabel( "Media Min Port:", vboxs ); mediaMinPort = new QLineEdit( vboxs ); (void) new QLabel( "Media Max Port:", vboxs ); mediaMaxPort = new QLineEdit( vboxs ); (void) new QLabel( "Application Min Port:", vboxs ); appMinPort = new QLineEdit( vboxs ); (void) new QLabel( "Application Max Port:", vboxs ); appMaxPort = new QLineEdit( vboxs ); // Call Preferences QVBox *vboxprefs = new QVBox( ); addTab( vboxprefs, "Call Preferences" );//Kphone // Default user mode/* usedef = new QHButtonGroup( "Policy for Unknown Incoming URIs", vboxprefs ); QRadioButton *defmode = new QRadioButton( "Accept", usedef ); usedef->insert( defmode, DefMode ); QRadioButton *nodefmode = new QRadioButton( "Reject with Not Found", usedef ); usedef->insert( nodefmode, NoDefMode );*/ // Busy message (void) new QLabel( "Busy Message:", vboxprefs ); busymsg = new QMultiLineEdit( vboxprefs ); // Call Forwarding QVBox *vboxfor = new QVBox( ); addTab( vboxfor, "Call Forwarding and AA" ); forbg = new QHButtonGroup( "Call Forwarding Unconditional", vboxfor ); QRadioButton *nocforward = new QRadioButton( "Inactive", forbg ); forbg->insert( nocforward, FwInactive ); QRadioButton *cforward = new QRadioButton( "Active", forbg ); forbg->insert( cforward, FwActive ); // Forward to Uri (void) new QLabel( "Forward to:", vboxfor ); forwardaddr = new QLineEdit( vboxfor ); // Forward to message (void) new QLabel( "Call Forward Message:", vboxfor ); forwardmsg = new QMultiLineEdit( vboxfor ); // CFNA fnabg = new QHButtonGroup( "CFNA", vboxfor ); QRadioButton *nocfna = new QRadioButton( "Inactive", fnabg ); fnabg->insert( nocfna, FwInactive ); QRadioButton *cfna = new QRadioButton( "Active", fnabg ); fnabg->insert( cfna, FwActive ); // CFNA Forward to Uri (void) new QLabel( "CFNA Forward to:", vboxfor ); forwardNAaddr = new QLineEdit( vboxfor ); forwardNAaddr->setText(sessionC->getCallForwardNAUri()); // CFNA Ring Count (void) new QLabel( "CFNA Count:", vboxfor ); forwardNAcnt = new QLineEdit( vboxfor ); forwardNAcnt->setText(sessionC->getCallForwardNAcnt()); // AA auabg = new QHButtonGroup( "AutoAnswer", vboxfor ); QRadioButton *noaua = new QRadioButton( "Inactive", auabg ); auabg->insert( noaua, AuaInactive ); QRadioButton *aua = new QRadioButton( "Active", auabg ); auabg->insert( aua, AuaActive ); // CFNA Ring Count (void) new QLabel( "AutoAnswer Count:", vboxfor ); auacnt = new QLineEdit( vboxfor ); auacnt->setText(sessionC->getAuacnt()); setCancelButton(); connect( this, SIGNAL( cancelButtonPressed() ), this, SLOT( slotCancel() ) ); setOKButton(); connect( this, SIGNAL( applyButtonPressed() ), this, SLOT( slotOk() ) ); resetSettings();}KSipPreferences::~KSipPreferences( void ){}void KSipPreferences::slotOk( void ){ slotApply(); QDialog::accept();}void KSipPreferences::slotApply( void ){ switch( hidebg->id( hidebg->selected() ) ) { case HideHop: c->setHideViaMode( SipClient::HideHop ); break; case HideRoute: c->setHideViaMode( SipClient::HideRoute ); break; default: case NoHide: c->setHideViaMode( SipClient::DontHideVia ); break; } if( forbg->id( forbg->selected() ) == FwActive ) { c->setCallForward( true ); } else { c->setCallForward( false ); } if( fnabg->id( fnabg->selected() ) == FwActive ) { sessionC->setCFNA( true ); } else { sessionC->setCFNA( false ); } if( auabg->id( auabg->selected() ) == AuaActive ) {
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -