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

📄 uaconfiguration.cxx

📁 Vovida 社区开源的 SIP 协议源码
💻 CXX
📖 第 1 页 / 共 3 页
字号:
/* ==================================================================== * The Vovida Software License, Version 1.0  *  * Copyright (c) 2000 Vovida Networks, Inc.  All rights reserved. *  * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: *  * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer. *  * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in *    the documentation and/or other materials provided with the *    distribution. *  * 3. The names "VOCAL", "Vovida Open Communication Application Library", *    and "Vovida Open Communication Application Library (VOCAL)" must *    not be used to endorse or promote products derived from this *    software without prior written permission. For written *    permission, please contact vocal@vovida.org. * * 4. Products derived from this software may not be called "VOCAL", nor *    may "VOCAL" appear in their name, without prior written *    permission of Vovida Networks, Inc. *  * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESSED OR IMPLIED * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE AND * NON-INFRINGEMENT ARE DISCLAIMED.  IN NO EVENT SHALL VOVIDA * NETWORKS, INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT DAMAGES * IN EXCESS OF $1,000, NOR FOR ANY INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE * USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH * DAMAGE. *  * ==================================================================== *  * This software consists of voluntary contributions made by Vovida * Networks, Inc. and many individuals on behalf of Vovida Networks, * Inc.  For more information on Vovida Networks, Inc., please see * <http://www.vovida.org/>. * */static const char* const UaConfiguration_cxx_Version =    "$Id: UaConfiguration.cxx,v 1.35 2002/10/28 22:49:42 sprajpat Exp $";#include "global.h"#include <cassert>#include <cstdio>#include "cpLog.h"#include "parse3tuple.h"#include "Data.hxx"#include "UaConfiguration.hxx"using namespace Vocal;UaConfiguration* UaConfiguration::uaConfiguration = 0;UaConfiguration*UaConfiguration::instance(){    assert( uaConfiguration != 0 );    return uaConfiguration;}    // UaConfiguration::instancetypedef enum{    UserNameTag = 0,    DisplayNameTag,    PasswordTag,    LocalSipPortTag,    MinRtpPortTag,    MaxRtpPortTag,    SipTransportTag,    ProxyServerTag,    RegisterOnTag,    RegisterFromTag,    RegisterToTag,    RegisterExpiresTag,    RegisterActionTag,    NetworkRtpRateTag,    ProvideRingbackTag,    InitialDigitTimeoutTag,    InterDigitTimeoutTag,    DialPatternTag,    SpeedDialTag,    LoadGenOnTag,    RunModeTag,    StartTimeTag,    NumKickStartsTag,    CallUrlTag,    NumEndpointsTag,    CallDurationTag,    CallDelayTag,    CallRestartTimerTag,    AnswerRestartTimerTag,    AnswerDelayTag,    MonitorMsgOnTag,    MonitorMsgIntervalTag,    DialNumberTag,    RtpGenOnTag,    NumOfCallsTag,    CJTimeTag,    RsvpOnTag,    ProvisioningHostTag,    ProvisioningPortTag,    UsePolicyServerTag,    UaXferModeTag,    ConfServerTag,    DeviceNameTag,    CallWaitingOnTag,    CallIdOnTag,    CallIdTag,    UaTimeoutTag,    SubscribeOnTag,    SubscribeExpireTag,    SubscribeToTag,    VmServerTag,    LogFileNameTag,    NATAddressTag,    UaConfigurationTagMax} UaConfigurationTags;static const char* UaConfigurationTagString [] =    {        "User_Name",        "Display_Name",        "Pass_Word",        "Local_SIP_Port",        "Min_RTP_Port",        "Max_RTP_Port",        "SIP_Transport",        "Proxy_Server",        "Register_On",        "Register_From",        "Register_To",        "Register_Expires",        "Register_Action",        "Network_RTP_Rate",        "Provide_Ringback",        "Initial_Digit_Timeout",        "Inter_Digit_Timeout",        "Dial_Pattern",        "Speed_Dial",        "LoadGen_On",        "RunMode",        "StartTime",        "NumKickStarts",        "CallUrl",        "NumEndpoints",        "CallDuration",        "CallDelay",        "CallRestartTimer",        "AnswerRestartTimer",        "AnswerDelay",        "MonitorMsgOn",        "MonitorMsgInterval",        "DialNumber",        "RtpGenOn",        "NumOfCalls",        "CJTime",        "Rsvp_On",        "Provisioning_Host",        "Provisioning_Port",        "Use_Policy_Server",        "Ua_Xfer_Mode",        "Conference_Server",        "Device_Name",        "Call_Waiting_On",        "CallId_On",        "CallId",        "Ua_Timeout",        "Subscribe_On",        "Subscribe_Expires",        "Subscribe_To",        "VmServer",	"LogFilename",	"NATAddress",        "Unknown"    };voidUaConfiguration::parseCfgFileCallBack( char* tag, char* type, char* value ){    switch ( strConst2i( tag, UaConfigurationTagString, UaConfigurationTagMax ) )    {        case UserNameTag:        {            UaConfiguration::instance()->setUserName( value );        }        break;        case DisplayNameTag:        {            UaConfiguration::instance()->setDisplayName( value );        }        break;        case PasswordTag:        {            UaConfiguration::instance()->setPassword( value );        }        break;        case LocalSipPortTag:        {            UaConfiguration::instance()->setLocalSipPort( value );        }        break;	case MinRtpPortTag:	{            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setMinRtpPort( i );	}	break;	case MaxRtpPortTag:	{            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setMaxRtpPort( i );	}	break;        case SipTransportTag:        {            UaConfiguration::instance()->setSipTransport( value );        }        break;        case ProxyServerTag:        {            UaConfiguration::instance()->setProxyServer( value );        }        break;        case RegisterOnTag:        {            UaConfiguration::instance()->setRegisterOn( isEqualNoCase( string( value ), "True" ) );        }        break;        case RegisterFromTag:        {            UaConfiguration::instance()->setRegisterFrom( value );        }        break;        case RegisterToTag:        {            UaConfiguration::instance()->setRegisterTo( value );        }        break;        case RegisterExpiresTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setRegisterExpires( i );        }        break;        case RegisterActionTag:        {            UaConfiguration::instance()->setRegisterAction( value );        }        break;        case NetworkRtpRateTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setNetworkRtpRate( i );        }        break;        case ProvideRingbackTag:        {            int flag;            sscanf( value, "%d", &flag );            UaConfiguration::instance()->setProvideRingback( isEqualNoCase( string( value ), "True" ) ) ;        }        break;        case InitialDigitTimeoutTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setInitialDigitTimeout( i );        }        break;        case InterDigitTimeoutTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setInterDigitTimeout( i );        }        break;        case DialPatternTag:        {            int type;            char pattern[ VALUE_MAX_LENGTH ];            sscanf( value, "%d %s", &type, pattern );            UaConfiguration::instance()->addDialPattern( (DialMethodsType)type,                    pattern );        }        break;        case SpeedDialTag:        {            char key[ VALUE_MAX_LENGTH ];            char dest[ VALUE_MAX_LENGTH ];            sscanf( value, "%s %s", key, dest );            UaConfiguration::instance()->addSpeedDial( key, dest );        }        break;        case LoadGenOnTag:        {            UaConfiguration::instance()->setLoadGenOn( isEqualNoCase( string( value ), "True" ) );        }        break;        case StartTimeTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setStartTime( i );        }        break;        case NumKickStartsTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setNumKickStarts( i );        }        break;        case RunModeTag:        {            UaConfiguration::instance()->setRunMode( value );        }        break;        case CallUrlTag:        {            UaConfiguration::instance()->setCallUrl( value );        }        break;        case NumEndpointsTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setNumEndpoints(i);        }        break;        case CallDurationTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setCallDuration(i);        }        break;        case CallDelayTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setCallDelay(i);        }        break;        case CallRestartTimerTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setCallRestartTimer(i);        }        break;        case AnswerRestartTimerTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setAnswerRestartTimer( i );        }        break;        case AnswerDelayTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setAnswerDelay(i);        }        break;        case MonitorMsgOnTag:        {            UaConfiguration::instance()->setMonitorMsgOn( isEqualNoCase( string( value ), "True" ) );        }        break;        case MonitorMsgIntervalTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setMonitorMsgInterval(i);        }        break;        case DialNumberTag:        {            UaConfiguration::instance()->setDialNumber( value );        }        break;        case RtpGenOnTag:        {            UaConfiguration::instance()->setRtpGenOn( isEqualNoCase( string( value ), "True" ) );        }        break;        case NumOfCallsTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setNumOfCalls( i );        }        break;        case CJTimeTag:        {            UaConfiguration::instance()->setCJTimeOfDay( isEqualNoCase(string(value), "True") );        }        break;        case RsvpOnTag:        {            UaConfiguration::instance()->setRsvpOn( isEqualNoCase(string( value ), "True" ) );        }        break;        case ProvisioningHostTag:        {            UaConfiguration::instance()->setProvisioningHost( value );        }        break;        case ProvisioningPortTag:        {            int i;            sscanf( value, "%d", &i );            UaConfiguration::instance()->setProvisioningPort( i );        }        break;        case UsePolicyServerTag:        {            UaConfiguration::instance()->setUsePolicyServer( isEqualNoCase(string( value ), "True" ) );        }        break;        case UaXferModeTag:        {            UaXferMode xfermode = XferOff;            if ( string( value ) == "Transfer" )	    {                xfermode = XferOn;	    }            else if ( string( value ) == "Conference" )	    {                xfermode = ConfOn;	    }            UaConfiguration::instance()->setXferMode( xfermode );        }        break;        case ConfServerTag:        {            UaConfiguration::instance()->setConfServer( string(value) );        }        break;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -