⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ksippreferences.cpp

📁 KphoneSI (kpsi) is a SIP (Session Initiation Protocol) user agent for Linux, with which you can in
💻 CPP
📖 第 1 页 / 共 2 页
字号:
#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 + -