亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? calldialog.cxx

?? 這是一個開源碼的sip用戶代理 寫的都很清楚是用C++語言開發的 對于研究sip協議的朋友絕對是有很好的參考價值
?? CXX
?? 第 1 頁 / 共 2 頁
字號:
/* *  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. * *  This program is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU Library General Public License for more details. * *  You should have received a copy of the GNU General Public License *  along with this program; if not, write to the Free Software *  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *//* Copyright (C) 2004  * * Authors: Erik Eliasson <eliasson@it.kth.se> *          Johan Bilien <jobi@via.ecp.fr>*/#include"CallDialog.h"#include<libmsip/SipSMCommand.h>#include<libmsip/SipCommandString.h>#include<libmsip/SipMessageTransport.h>#include"../../../sip/SipSoftPhoneConfiguration.h"#include"../../../sip/DefaultDialogHandler.h"#include"MinisipMainWindowWidget.h"#include<qmessagebox.h>#define config mainWidget->getSipSoftPhoneConfiguration()#ifdef EMBEDDED_CALLDIALOGSCallDialog::CallDialog(string callId, MinisipMainWindowWidget *main, TimeoutProvider<string> *tp): QWidget(0,"Call"), callId(callId), mainWidget(main),#elseCallDialog::CallDialog(string callId, MinisipMainWindowWidget *main, TimeoutProvider<string> *tp): QDialog(0,"Call",FALSE, WDestructiveClose), callId(callId), mainWidget(main),#endif		vlayout(this),		buttonlayout(),		status("Connecting...", this), 		security_status("", this),		checkRecord("Record call", this),		acceptButton("OK", this),		rejectButton("Hang up", this),		timeoutProvider(tp),		bell(NULL){	vlayout.addWidget(&status);	status.setAlignment(AlignCenter);		vlayout.addWidget(&security_status);	security_status.setAlignment(AlignCenter);		vlayout.addWidget(&checkRecord);	buttonlayout.addWidget(&acceptButton);	buttonlayout.addWidget(&rejectButton);	vlayout.addLayout(&buttonlayout);	connect(&acceptButton,SIGNAL(clicked()), this, SLOT(acceptClicked()) );	connect(&rejectButton,SIGNAL(clicked()), this, SLOT(rejectClicked()) );		hideAcceptButton();	//status.setMinimumWidth(250);	bell=NULL;}#ifdef EMBEDDED_CALLDIALOGSCallDialog::CallDialog(string callId, MinisipMainWindowWidget *main, TimeoutProvider<string> *tp,string incomingFrom, string secured): QWidget(0,"Call"), callId(callId), mainWidget(main),#elseCallDialog::CallDialog(string callId, MinisipMainWindowWidget *main, TimeoutProvider<string> *tp,string incomingFrom, string secured): QDialog(0,"Call",FALSE,WDestructiveClose), callId(callId), mainWidget(main),#endif		vlayout(this),		buttonlayout(),		status("Connecting...", this), 		security_status("The call is ", this),		checkRecord("Record call", this),		acceptButton("OK", this),		rejectButton("Hang up", this),		timeoutProvider(tp){	status.setText(("Incoming call\nfrom "+ incomingFrom).c_str());	bell = new Bell(timeoutProvider);        if( bell != NULL ){ 	        bell->start();        }		vlayout.addWidget(&status);	status.setAlignment(AlignCenter);	security_status.setText(("The call is <b>"+secured+"</b>").c_str());	vlayout.addWidget(&security_status);	security_status.setAlignment(AlignCenter);	vlayout.addWidget(&checkRecord);	buttonlayout.addWidget(&acceptButton);	buttonlayout.addWidget(&rejectButton);	vlayout.addLayout(&buttonlayout);	connect(&acceptButton,SIGNAL(clicked()), this, SLOT(acceptClicked()) );	connect(&rejectButton,SIGNAL(clicked()), this, SLOT(rejectClicked()) );}void CallDialog::hideAcceptButton(){	acceptButton.hide();}string CallDialog::getCallId(){	return callId;}void CallDialog::timeout(string c){	mainWidget->handleCommand(CommandString(callId,c));}void CallDialog::acceptClicked(){	CommandString accept(callId, SipCommandString::accept_invite);//        SipSMCommand cmd(accept,SipSMCommand::remote, SipSMCommand::TU);	mainWidget->getCallback()->guicb_handleCommand(/*cmd*/ accept);        if( bell != NULL ){	        bell->stop();	        delete bell;	        bell = NULL;        }}void CallDialog::rejectClicked(){//	cerr << "CallDialog::rejectClicked: clicked"<< endl;	if (rejectButton.text()=="Close"){		timeoutProvider->cancel_request(this, SipCommandString::close_window);		mainWidget->removeCallDialog(callId);		done(0);		return;	}	if (rejectButton.text()=="Hang up"){		mainWidget->removeCallDialog(callId);//		if (status.text()=="Ringing..."){//			SMCommand cncl(callId, SMCommand::cancel);//			mainWidget->log(LOG_INFO, "Sending cancel command for call id " +callId);//			mainWidget->getSipPhone()->doCommand(cncl);////		}else{		CommandString hup(callId, SipCommandString::hang_up);//		mainWidget->log(LOG_INFO, "Sending hang up command for call id " +callId);                //SipSMCommand cmd(hup, SipSMCommand::remote, SipSMCommand::TU);		mainWidget->getCallback()->guicb_handleCommand(/*cmd*/hup);		if( bell != NULL ){			bell->stop();			delete bell;			bell = NULL;		}//		}		done(0);		return;	}	/* Moved to Accept button		if (rejectButton.text()=="Answer"){		CommandString accept(callId, SipCommandString::accept_invite);		mainWidget->getSipPhone()->enqueueCommand(SipSMCommand(accept,SipSMCommand::remote, SipSMCommand::TU));		cerr <<"stopping bell..."<< endl;		bell->stop();		cerr << "deleteing bell"<< endl;		delete bell;	}*/}bool CallDialog::handleCommand(CommandString command){	if (callId == command.getDestinationId()){		if (command.getOp()==SipCommandString::remote_user_not_found){			hideAcceptButton();			status.setText("<b>User not found</b>");			checkRecord.setChecked(false);			checkRecord.setEnabled(false);			rejectButton.setText("Close");//			repaint();//			mainWidget->removeCallDialog(callId); 	// Dialog will still exist until close is 								// clicked - just not receive any SIP commands		}		if (command.getOp()==SipCommandString::invite_ok){			string who;			if (command.getParam().length()>0)				who = " with " + command.getParam();						status.setText(("In call"+who).c_str());						security_status.setText(("The call is "+command.getParam2()).c_str());			hideAcceptButton();			rejectButton.setText("Hang up");//			repaint();					}		if (command.getOp()==SipCommandString::authentication_failed){			status.setText("<b>Authentication failed</b>");			checkRecord.setChecked(false);			checkRecord.setEnabled(false);			rejectButton.setText("Close");			//repaint();			timeoutProvider->request_timeout(5000, this, SipCommandString::close_window);//			mainWidget->removeCallDialog(callId); 	// Dialog will still exist until close is 								// clicked - just not receive any SIP commands		}				if (command.getOp()==SipCommandString::invite_no_reply){			status.setText("No reply");			checkRecord.setChecked(false);			checkRecord.setEnabled(false);			hideAcceptButton();			rejectButton.setText("Close");//			repaint();			timeoutProvider->request_timeout(5000, this, SipCommandString::close_window);//			mainWidget->removeCallDialog(callId); 	// Dialog will still exist until close is 								// clicked - just not receive any SIP commands		}				if (command.getOp()==SipCommandString::transport_error){			status.setText("The call failed due to a network error");			checkRecord.setChecked(false);			checkRecord.setEnabled(false);			rejectButton.setText("Close");//			repaint();			timeoutProvider->request_timeout(5000, this, SipCommandString::close_window);//			mainWidget->removeCallDialog(callId); 	// Dialog will still exist until close is 								// clicked - just not receive any SIP commands		}		if (command.getOp()==SipCommandString::remote_hang_up){			status.setText("Call ended");//			status.repaint();//			checkRecord.setChecked(false);//			checkRecord.setEnabled(false);			security_status.setText("");			rejectButton.setText("Close");//			repaint();			timeoutProvider->request_timeout(5000, this, SipCommandString::close_window);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产不卡视频在线播放| 伊人开心综合网| 婷婷综合五月天| 91浏览器在线视频| 白白色亚洲国产精品| 欧美国产精品劲爆| 一色桃子久久精品亚洲| 日韩免费观看2025年上映的电影| 欧美日韩一区不卡| 99re在线视频这里只有精品| 91理论电影在线观看| 欧美调教femdomvk| 欧美日本乱大交xxxxx| 久久久不卡影院| 极品少妇xxxx精品少妇| 精品国产三级电影在线观看| 国产原创一区二区三区| 国产精品国产三级国产有无不卡| 色婷婷综合久色| 奇米四色…亚洲| 久久久久99精品国产片| 色综合天天在线| 美女精品一区二区| 国产精品久久久久久久久搜平片 | 一本色道**综合亚洲精品蜜桃冫 | 欧美丝袜丝交足nylons图片| 奇米精品一区二区三区在线观看| 久久久精品国产免费观看同学| hitomi一区二区三区精品| 亚洲韩国一区二区三区| 欧美成人乱码一区二区三区| 波多野结衣中文一区| 日韩av电影免费观看高清完整版| 国产性天天综合网| 欧美日韩国产一二三| 在线综合视频播放| 国产成人av电影在线| 午夜视频在线观看一区二区| 久久久精品国产99久久精品芒果 | 欧美日韩免费在线视频| 国产一区在线精品| 亚洲高清不卡在线| 国产精品久久久久久久久晋中| 9191久久久久久久久久久| 丁香亚洲综合激情啪啪综合| 日韩高清不卡一区| 亚洲色图清纯唯美| 久久视频一区二区| 欧美精品欧美精品系列| 成人国产一区二区三区精品| 美女视频一区二区三区| 亚洲精品福利视频网站| 国产蜜臀97一区二区三区| 91精品国产美女浴室洗澡无遮挡| 91国偷自产一区二区使用方法| 国产激情精品久久久第一区二区| 午夜婷婷国产麻豆精品| 一区二区高清在线| 日韩一区在线看| 亚洲国产成人在线| 精品国产伦一区二区三区观看方式| 欧美最新大片在线看| 9色porny自拍视频一区二区| 国产麻豆91精品| 久久国产欧美日韩精品| 久久精品噜噜噜成人88aⅴ| 亚洲www啪成人一区二区麻豆| 亚洲精品国产视频| 亚洲欧美视频一区| 亚洲精品中文在线影院| 国产精品黄色在线观看| 国产精品毛片a∨一区二区三区| 26uuu另类欧美亚洲曰本| 精品久久国产97色综合| 日韩欧美国产精品一区| 日韩一级完整毛片| 日韩免费观看2025年上映的电影 | 一本一道波多野结衣一区二区| 成人影视亚洲图片在线| 成人免费视频免费观看| 成人午夜视频在线观看| 9人人澡人人爽人人精品| av成人免费在线| 色婷婷久久一区二区三区麻豆| 91在线免费视频观看| 日本久久电影网| 欧美日韩国产天堂| 91超碰这里只有精品国产| 8x福利精品第一导航| 日韩一级大片在线| 久久尤物电影视频在线观看| 国产日韩v精品一区二区| 中文字幕免费在线观看视频一区| 中文一区二区完整视频在线观看| 中文字幕av一区二区三区高| 亚洲视频一区二区免费在线观看| 亚洲乱码一区二区三区在线观看| 亚洲一区在线观看免费| 爽好久久久欧美精品| 久久成人精品无人区| 成人教育av在线| 在线观看一区不卡| 日韩三级视频在线看| 日本一区二区三级电影在线观看| 亚洲美腿欧美偷拍| 偷窥少妇高潮呻吟av久久免费| 激情图区综合网| www.成人网.com| 欧美精品在线一区二区三区| 久久亚洲一区二区三区四区| 亚洲欧美偷拍另类a∨色屁股| 亚洲在线视频网站| 国产一区二区按摩在线观看| 色狠狠av一区二区三区| 日韩欧美在线一区二区三区| 欧美激情一区在线| 婷婷中文字幕综合| 国产91富婆露脸刺激对白| 欧美视频日韩视频在线观看| 久久九九久精品国产免费直播| 亚洲免费看黄网站| 国产一区二区不卡| 欧美日韩另类一区| 国产日韩在线不卡| 日韩国产成人精品| 色综合中文综合网| 国产裸体歌舞团一区二区| 91久久精品一区二区三区| 欧美成人伊人久久综合网| 最新不卡av在线| 国内精品视频一区二区三区八戒| 91成人在线精品| 亚洲国产精品高清| 久久国产精品色| 欧美日韩成人在线一区| 国产精品嫩草久久久久| 久久99国产精品麻豆| 欧美色网站导航| 中文字幕一区二区三区在线播放| 美女网站在线免费欧美精品| 在线观看三级视频欧美| 国产精品久久夜| 国产在线精品一区二区不卡了| 欧美日韩激情一区二区| 最好看的中文字幕久久| 国产成人免费高清| 精品欧美乱码久久久久久| 亚洲国产精品综合小说图片区| 99r国产精品| 国产精品免费av| 国产精品18久久久| 精品国产青草久久久久福利| 石原莉奈在线亚洲三区| 国产精品欧美久久久久无广告 | 日韩一区二区三区观看| 一区二区三区精品视频在线| 成人精品在线视频观看| 国产视频一区二区在线| 久久精品国产一区二区三区免费看| 欧美午夜精品久久久久久孕妇| 综合亚洲深深色噜噜狠狠网站| 成人精品免费看| 欧美激情一区二区三区全黄 | 欧美aaaaaa午夜精品| 91精品在线麻豆| 日韩一区精品视频| 在线91免费看| 麻豆一区二区三| 日韩美女视频在线| 国产在线观看一区二区| 久久婷婷色综合| 国产高清在线精品| 国产精品拍天天在线| 色综合视频在线观看| 一区二区三区在线视频观看58| 91在线视频网址| 亚洲综合色自拍一区| 欧美日韩一区视频| 日韩av一二三| 久久综合久久99| 成人av在线影院| 亚洲精品视频一区二区| 欧美日韩一区二区三区不卡| 日韩高清一区在线| 久久免费电影网| 99久久综合国产精品| 亚洲一区在线观看网站| 91精品国产美女浴室洗澡无遮挡| 韩国三级中文字幕hd久久精品| 国产色产综合产在线视频| 成av人片一区二区| 亚洲成人一二三| 精品少妇一区二区三区日产乱码| 国产一区二区视频在线播放| 国产精品电影一区二区| 精品视频1区2区3区| 蜜桃视频在线观看一区| 国产精品美女久久久久久久| 欧洲av在线精品| 国内外成人在线|