📄 sip_unregister_state.hxx
字号:
//====================================================================// // Copyright (C) 2006-2007, Frank.Ning// // Filename: sip_unregister_state.hxx// Author: Frank.Ning <zegong.ning@dinglicom.com>// Description: // // $Id:$// //====================================================================#ifndef __SIP_UNREGISTER_STATE_HXX__#define __SIP_UNREGISTER_STATE_HXX__static const char* const sip_unregister_state_hxx_version = "$Id:$";#include "state.hxx"struct sip_unregister_state : public fsm::state<sip_unregister_state, FetionRegisterStateList, bool>{ bool on_process( shared_ptr<event> evt ) { shared_ptr<sip_event> sip_evt; sip_evt.reset( evt ); if( !evt ) return false ; shared_ptr<sip_cmd> cmd; cmd.reset( sip_evt->get_msg( ) ); if( cmd ) return on_process( cmd ); shared_ptr<sip_status> status; status.reset( sip_evt->get_msg( ) ); if( status ) return on_process( status ); return false ; } bool on_process( shared_ptr<sip_cmd> cmd ) { if( cmd->get_method( ) == "R" || cmd->get_method( ) == "REGISTER" ) { shared_ptr<sip_expires> expires; expires.reset( cmd->get_hdr( HDR_EXPIRES ) ); if( expires->get_delta_sec( ) == 0 ) { ua_callctl::instance( ).stop( ); } } return false ; } bool on_process( shared_ptr<sip_status> status ) { shared_ptr<sip_cseq> cseq; cseq.reset( status->get_hdr( HDR_CSEQ ) ); if( cseq->get_method( ) == "R" || cseq->get_method( ) == "REGISTER" ) { shared_ptr<sip_expires> expires; expires.reset( status->get_hdr( HDR_EXPIRES ) ); if( expires->get_delta_sec( ) == 0 ) ua_callctl::instance( ).stop( ); } return false ; }};#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -