本文整理汇总了C++中OsConfigDb::loadFromFile方法的典型用法代码示例。如果您正苦于以下问题:C++ OsConfigDb::loadFromFile方法的具体用法?C++ OsConfigDb::loadFromFile怎么用?C++ OsConfigDb::loadFromFile使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OsConfigDb
的用法示例。
在下文中一共展示了OsConfigDb::loadFromFile方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: secret
// Initialize
OsStatus
SipRedirectorFallback::initialize(OsConfigDb& configDb,
int redirectorNo,
const UtlString& localDomainHost)
{
Os::Logger::instance().log(FAC_SIP, PRI_DEBUG,
"%s::SipRedirectorFallback Loading mapping rules from '%s'",
mLogName.data(), mFileName.data());
mMappingRulesLoaded = mMap.loadMappings(mFileName);
#ifndef __USE_OLD_FALLBACKRULES_SCHEMA__
Os::Logger::instance().log(FAC_SIP, PRI_DEBUG,
"%s::SipRedirectorFallback using new, location-aware %s format",
mLogName.data(), mFileName.data());
#else
Os::Logger::instance().log(FAC_SIP, PRI_DEBUG,
"%s::SipRedirectorFallback using old, non-location-aware %s format",
mLogName.data(), mFileName.data());
#endif
// read the domain configuration
OsConfigDb domainConfiguration;
domainConfiguration.loadFromFile(SipXecsService::domainConfigPath());
// get the shared secret for generating signatures
SharedSecret secret(domainConfiguration);
// Set secret for signing SipXauthIdentity
SipXauthIdentity::setSecret(secret.data());
return mMappingRulesLoaded ? OS_SUCCESS : OS_FAILED;
}
示例2: SharedSecret
// Constructor
SipNonceDb::SipNonceDb()
{
// read the (global) domain configuration
OsConfigDb domainConfiguration;
domainConfiguration.loadFromFile(SipXecsService::domainConfigPath());
// get the shared secret for generating signatures
mpNonceSignatureSecret = new SharedSecret(domainConfiguration);
}
示例3: startAgents
SipConfigServerAgent* SipConfigServerAgent::startAgents(const char* configFileName)
{
int sipTcpPort;
int sipUdpPort;
int sipTlsPort;
OsConfigDb configDb;
if(configDb.loadFromFile(configFileName) == OS_SUCCESS)
{
osPrintf("Found config file: %s\n", configFileName);
}
else
{
configDb.set("SIP_SDS_UDP_PORT", "5090");
configDb.set("SIP_SDS_TCP_PORT", "5090");
configDb.set("SIP_SDS_TLS_PORT", "5091");
configDb.set(CONFIG_SETTING_LOG_DIR, "");
configDb.set(CONFIG_SETTING_LOG_LEVEL, "");
configDb.set(CONFIG_SETTING_LOG_CONSOLE, "");
if (configDb.storeToFile(configFileName) != OS_SUCCESS)
osPrintf("Could not store config file: %s\n", configFileName);
}
sipTcpPort = configDb.getPort("SIP_SDS_UDP_PORT") ;
sipUdpPort = configDb.getPort("SIP_SDS_TCP_PORT") ;
sipTlsPort = configDb.getPort("SIP_SDS_TLS_PORT") ;
// Start the sip stack
SipUserAgent* pAgent = new SipUserAgent(sipTcpPort,
sipUdpPort,
sipTlsPort,
NULL, // public IP address (nopt used in proxy)
NULL, // default user (not used in proxy)
NULL, // default SIP address (not used in proxy)
NULL, // outbound proxy
NULL, // directory server
NULL, // registry server
NULL, // auth scheme
NULL, //auth realm
NULL, // auth DB
NULL, // auth user IDs
NULL, // auth passwords
NULL, // line mgr
SIP_DEFAULT_RTT, // first resend timeout
TRUE, // default to UA transaction
SIPUA_DEFAULT_SERVER_UDP_BUFFER_SIZE, // socket layer read buffer size
SIPUA_DEFAULT_SERVER_OSMSG_QUEUE_SIZE // OsServerTask message queue size
);
pAgent->start();
// Start the SipConfigServerAgent
SipConfigServerAgent* pConfigAgent = new SipConfigServerAgent(pAgent) ;
pConfigAgent->start() ;
return(pConfigAgent);
}
示例4: createMediaTaskandFlowGraph
//******************************************************************************
void createMediaTaskandFlowGraph()
{
// Create foundation Media Task & Flow Graph
OsSysLog::initialize(0, "mstream");
OsSysLog::setLoggingPriority(PRI_DEBUG);
OsSysLog::enableConsoleOutput(true);
OsConfigDb cfgDb;
if (cfgDb.loadFromFile("mstream.cfg") == OS_SUCCESS)
cout << "(Read " << cfgDb.numEntries()
<< " config entries from mstream.cfg)" << endl;
// Creates a sipXmediaFactoryImpl
pFactory = sipXmediaFactoryFactory(&cfgDb);
MpMediaTask* pMediaTask = MpMediaTask::getMediaTask();
//sleep(0);
char sdesName[64];
sprintf(sdesName, "mstream-%d", OsProcess::getCurrentPID());
cout << "Setting SDES NAME to " << sdesName << endl;
#ifdef INCLUDE_RTCP
CSourceDescription* pSdes = CSourceDescription::GetLocalSDES();
pSdes->SetAllComponents(
/* NAME */ (unsigned char*)sdesName,
/* EMAIL */ (unsigned char*)"",
/* PHONE */ (unsigned char*)"",
/* APPLICATION */ (unsigned char*)"",
/* LOCATION */ (unsigned char*)"",
/* NOTES */ (unsigned char*)"",
/* PRIVATE */ (unsigned char*)"");
#endif
selectFlowGraph(createFlowGraph());
if (initialFocus)
{
pIf->giveFocus();
cout << "Gave focus to this interface" << endl;
}
{
SdpCodecList codecList;
//UtlString codecs = "PCMU PCMA TELEPHONE-EVENT";
UtlString codecNames = "PCMU";
codecList.addCodecs(codecNames);
codecList.getCodecs(numCodecs, pCodecArray);
}
}
示例5: load
OsStatus ConfigRPC::load(OsConfigDb& dataset)
{
OsStatus status = dataset.loadFromFile(mPath);
if ( OS_SUCCESS != status )
{
Os::Logger::instance().log(FAC_KERNEL, PRI_ERR,
"ConfigRPC failed to load '%s' from '%s'",
data(), mPath.data()
);
}
return status;
}
示例6: getSipConfigServerAgent
SipConfigServerAgent* SipConfigServerAgent::getSipConfigServerAgent()
{
UtlBoolean isStarted ;
// If the task object already exists, and the corresponding low-level task
// has been started, then use it
if (spInstance != NULL && spInstance->isStarted())
return spInstance;
// If the task does not yet exist or hasn't been started, then acquire
// the lock to ensure that only one instance of the task is started
sLock.acquire();
if (spInstance == NULL)
{
OsPath workingDirectory ;
if ( OsFileSystem::exists( CONFIG_ETC_DIR ) )
{
workingDirectory = CONFIG_ETC_DIR;
OsPath path(workingDirectory);
path.getNativePath(workingDirectory);
}
else
{
OsPath path;
OsFileSystem::getWorkingDirectory(path);
path.getNativePath(workingDirectory);
}
UtlString ConfigfileName = workingDirectory +
OsPathBase::separator +
CONFIG_SETTINGS_FILE ;
// Initialize the OsSysLog
OsConfigDb configDb ;
configDb.loadFromFile(ConfigfileName) ;
initializeLog(&configDb) ;
spInstance = startAgents(ConfigfileName);
}
isStarted = spInstance->isStarted();
if (!isStarted)
{
isStarted = spInstance->start();
// assert(isStarted);
}
sLock.release();
return spInstance;
}
示例7: readConfig
// Read config information.
void SipRedirectorAliasDB::readConfig(OsConfigDb& configDb)
{
// read the domain configuration
OsConfigDb domainConfiguration;
domainConfiguration.loadFromFile(SipXecsService::domainConfigPath());
// get the shared secret for generating signatures
SharedSecret secret(domainConfiguration);
// Set secret for signing SipXauthIdentity
SipXauthIdentity::setSecret(secret.data());
UtlString base64;
NetBase64Codec::encode(secret, base64);
Os::Logger::instance().log(FAC_SIP, PRI_DEBUG,
"SipRedirectorAliasDB::readConfig"
"%s::readConfig "
"set SipXauthIdentity secret",
mLogName.data()
);
}
示例8: readConfig
// Read config information.
void SipRedirectorAliasDB::readConfig(OsConfigDb& configDb)
{
// read the domain configuration
OsConfigDb domainConfiguration;
domainConfiguration.loadFromFile(SipXecsService::domainConfigPath());
// get the shared secret for generating signatures
SharedSecret secret(domainConfiguration);
// Set secret for signing SipXauthIdentity
SipXauthIdentity::setSecret(secret.data());
UtlString base64;
NetBase64Codec::encode(secret, base64);
Os::Logger::instance().log(FAC_SIP, PRI_DEBUG,
"SipRedirectorAliasDB::readConfig"
"%s::readConfig "
"set SipXauthIdentity secret",
mLogName.data()
);
_enableDiversionHeader = configDb.getBoolean("SIP_REGISTRAR_ADD_DIVERSION", FALSE);
_enableEarlyAliasResolution = configDb.getBoolean("SIP_REGISTRAR_EARLY_ALIAS_RESOLUTION", FALSE);
}
示例9: main
//
// The main entry point to sipXrls.
//
int main(int argc, char* argv[])
{
// Configuration Database (used for OsSysLog)
OsConfigDb configDb;
UtlString argString;
for (int argIndex = 1; argIndex < argc; argIndex++)
{
osPrintf("arg[%d]: %s\n", argIndex, argv[argIndex]);
argString = argv[argIndex];
NameValueTokenizer::frontBackTrim(&argString, "\t ");
if (argString.compareTo("-v") == 0)
{
osPrintf("Version: %s (%s)\n", VERSION, PACKAGE_REVISION);
return 1;
}
else
{
osPrintf("usage: %s [-v]\nwhere:\n -v provides the software version\n",
argv[0]);
return 1;
}
}
// Load configuration file.
OsPath workingDirectory;
if (OsFileSystem::exists(CONFIG_ETC_DIR))
{
workingDirectory = CONFIG_ETC_DIR;
OsPath path(workingDirectory);
path.getNativePath(workingDirectory);
}
else
{
OsPath path;
OsFileSystem::getWorkingDirectory(path);
path.getNativePath(workingDirectory);
}
UtlString fileName = workingDirectory +
OsPathBase::separator +
CONFIG_SETTINGS_FILE;
if (configDb.loadFromFile(fileName) != OS_SUCCESS)
{
fprintf(stderr, "Failed to load config DB from file '%s'",
fileName.data());
exit(1);
}
// Initialize log file
initSysLog(&configDb);
// Read the user agent parameters from the config file.
int udpPort;
if (configDb.get(CONFIG_SETTING_UDP_PORT, udpPort) != OS_SUCCESS)
{
udpPort = RLS_DEFAULT_UDP_PORT;
}
int tcpPort;
if (configDb.get(CONFIG_SETTING_TCP_PORT, tcpPort) != OS_SUCCESS)
{
tcpPort = RLS_DEFAULT_TCP_PORT;
}
UtlString bindIp;
if (configDb.get(CONFIG_SETTING_BIND_IP, bindIp) != OS_SUCCESS ||
!OsSocket::isIp4Address(bindIp))
bindIp = RLS_DEFAULT_BIND_IP;
UtlString resourceListFile;
if ((configDb.get(CONFIG_SETTING_RLS_FILE, resourceListFile) !=
OS_SUCCESS) ||
resourceListFile.isNull())
{
Os::Logger::instance().log(LOG_FACILITY, PRI_CRIT,
"Resource list file name is not configured");
return 1;
}
UtlString domainName;
if ((configDb.get(CONFIG_SETTING_DOMAIN_NAME, domainName) !=
OS_SUCCESS) ||
domainName.isNull())
{
Os::Logger::instance().log(LOG_FACILITY, PRI_CRIT,
"Resource domain name is not configured");
return 1;
}
UtlString realm;
if ((configDb.get(CONFIG_SETTING_AUTHENTICATE_REALM, realm) !=
OS_SUCCESS) ||
realm.isNull())
{
Os::Logger::instance().log(LOG_FACILITY, PRI_CRIT,
//.........这里部分代码省略.........
示例10: proxy
int proxy()
{
int proxyTcpPort;
int proxyUdpPort;
int proxyTlsPort;
UtlString bindIp;
int maxForwards;
UtlString domainName;
UtlString proxyRecordRoute;
UtlString routeName;
UtlString authScheme;
UtlString ipAddress;
OsMsgQShared::setQueuePreference(OsMsgQShared::QUEUE_UNLIMITED);
OsSocket::getHostIp(&ipAddress);
OsPath ConfigfileName = SipXecsService::Path(SipXecsService::ConfigurationDirType,
CONFIG_SETTINGS_FILE);
OsConfigDb configDb;
if(OS_SUCCESS != configDb.loadFromFile(ConfigfileName))
{
exit(1);
}
// Initialize the OsSysLog...
initSysLog(&configDb);
std::set_terminate(catch_global);
configDb.get(CONFIG_SETTING_BIND_IP, bindIp);
if ((bindIp.isNull()) || !OsSocket::isIp4Address(bindIp))
{
bindIp = "0.0.0.0";
}
Os::Logger::instance().log(FAC_SIP, PRI_INFO, "%s: %s", CONFIG_SETTING_BIND_IP,
bindIp.data());
osPrintf("%s: %s", CONFIG_SETTING_BIND_IP, bindIp.data());
UtlString hostname;
configDb.get("SIPX_PROXY_HOST_NAME", hostname);
if (!hostname.isNull())
{
// bias the selection of SRV records so that if the name of this host is an alternative,
// it wins in any selection based on random weighting.
SipSrvLookup::setOwnHostname(hostname);
}
Os::Logger::instance().log(FAC_SIP, PRI_INFO, "SIPX_PROXY_HOST_NAME : %s", hostname.data());
proxyUdpPort = configDb.getPort("SIPX_PROXY_UDP_PORT");
if (!portIsValid(proxyUdpPort))
{
proxyUdpPort = 5060;
}
Os::Logger::instance().log(FAC_SIP, PRI_INFO, "SIPX_PROXY_UDP_PORT : %d", proxyUdpPort);
proxyTcpPort = configDb.getPort("SIPX_PROXY_TCP_PORT") ;
if (!portIsValid(proxyTcpPort))
{
proxyTcpPort = 5060;
}
Os::Logger::instance().log(FAC_SIP, PRI_INFO, "SIPX_PROXY_TCP_PORT : %d", proxyTcpPort);
proxyTlsPort = configDb.getPort("SIPX_PROXY_TLS_PORT") ;
if (!portIsValid(proxyTlsPort))
{
proxyTlsPort = 5061;
}
Os::Logger::instance().log(FAC_SIP, PRI_INFO, "SIPX_PROXY_TLS_PORT : %d", proxyTlsPort);
configDb.get("SIPX_PROXY_MAX_FORWARDS", maxForwards);
if(maxForwards <= 0) maxForwards = SIP_DEFAULT_MAX_FORWARDS;
Os::Logger::instance().log(FAC_SIP, PRI_INFO, "SIPX_PROXY_MAX_FORWARDS : %d", maxForwards);
osPrintf("SIPX_PROXY_MAX_FORWARDS : %d\n", maxForwards);
int branchTimeout = -1;
configDb.get("SIPX_PROXY_BRANCH_TIMEOUT", branchTimeout);
if(branchTimeout < 4)
{
branchTimeout = 24;
}
int defaultExpires;
int defaultSerialExpires;
configDb.get("SIPX_PROXY_DEFAULT_EXPIRES", defaultExpires);
configDb.get("SIPX_PROXY_DEFAULT_SERIAL_EXPIRES", defaultSerialExpires);
if(defaultExpires <= 0 )
{
defaultExpires = DEFAULT_SIP_TRANSACTION_EXPIRES;
}
else if(defaultExpires > DEFAULT_SIP_TRANSACTION_EXPIRES)
{
Os::Logger::instance().log(FAC_SIP, PRI_WARNING,
"SipXproxymain::proxy "
"large default expires value: %d NOT RECOMMENDED",
defaultExpires);
}
if(defaultSerialExpires <= 0 ||
defaultSerialExpires >= defaultExpires)
{
defaultSerialExpires = DEFAULT_SIP_SERIAL_EXPIRES;
}
Os::Logger::instance().log(FAC_SIP, PRI_INFO, "SIPX_PROXY_DEFAULT_EXPIRES : %d", defaultExpires);
//.........这里部分代码省略.........
示例11: if
/** The main entry point to the StatusServer */
int
main(int argc, char* argv[] )
{
OsConfigDb configDb ; // Params for OsSysLog init
UtlBoolean interactiveSet = false;
UtlString argString;
for(int argIndex = 1; argIndex < argc; argIndex++)
{
Os::Logger::instance().log(LOG_FACILITY, PRI_INFO, "arg[%d]: %s\n", argIndex, argv[argIndex]) ;
argString = argv[argIndex];
NameValueTokenizer::frontBackTrim(&argString, "\t ");
if(argString.compareTo("-v") == 0)
{
Os::Logger::instance().log(LOG_FACILITY, PRI_INFO, "Version: %s %s\n", VERSION, PACKAGE_REVISION);
return(1);
}
else if( argString.compareTo("-i") == 0)
{
interactiveSet = true;
Os::Logger::instance().log(LOG_FACILITY, PRI_INFO, "Entering Interactive Mode\n");
}
else
{
Os::Logger::instance().log(LOG_FACILITY, PRI_INFO, "usage: %s [-v] [-i]\nwhere:\n -v provides the software version\n"
" -i start the server in an interactive made\n",
argv[0]);
return(1);
}
}
// initialize log file
OsPath workingDirectory;
if (OsFileSystem::exists(CONFIG_ETC_DIR))
{
workingDirectory = CONFIG_ETC_DIR;
OsPath path(workingDirectory);
path.getNativePath(workingDirectory);
}
else
{
OsPath path;
OsFileSystem::getWorkingDirectory(path);
path.getNativePath(workingDirectory);
}
UtlString fileName = workingDirectory +
OsPathBase::separator +
CONFIG_SETTINGS_FILE;
if (configDb.loadFromFile(fileName) != OS_SUCCESS)
{
exit(1);
}
initSysLog(&configDb) ;
// Fetch Pointer to the OsServer task object, note that
// object uses the IMDB so it is important to shut this thread
// cleanly before the signal handler exits
StatusServer* pStatusServer = StatusServer::getInstance();
pServerTask = static_cast<OsServerTask*>(pStatusServer);
// Do not exit, let the proxy do its stuff
while( !Os::UnixSignals::instance().isTerminateSignalReceived() )
{
if( interactiveSet)
{
int charCode = getchar();
if(charCode != '\n' && charCode != '\r')
{
if( charCode == 'e')
{
Os::Logger::instance().enableConsoleOutput(true);
} else if( charCode == 'd')
{
Os::Logger::instance().enableConsoleOutput(false);
} else
{
// pStatusServer->printMessageLog();
}
}
} else
{
OsTask::delay(2000);
}
}
// Remove the current process's row from the IMDB
// Persisting the database if necessary
cout << "Cleaning Up..Start." << endl;
// This is a server task so gracefully shutdown the
// server task using the waitForShutdown method, this
// will implicitly request a shutdown for us if one is
// not already in progress
if ( pServerTask != NULL )
{
//.........这里部分代码省略.........
示例12: main
//
// The main entry point to the sipXpark
//
int main(int argc, char* argv[])
{
// Configuration Database (used for OsSysLog)
OsConfigDb configDb;
// Register Signal handlers so we can perform graceful shutdown
pt_signal(SIGINT, sigHandler); // Trap Ctrl-C on NT
pt_signal(SIGILL, sigHandler);
pt_signal(SIGABRT, sigHandler); // Abort signal 6
pt_signal(SIGFPE, sigHandler); // Floading Point Exception
pt_signal(SIGSEGV, sigHandler); // Address access violations signal 11
pt_signal(SIGTERM, sigHandler); // Trap kill -15 on UNIX
#if defined(__pingtel_on_posix__)
pt_signal(SIGHUP, sigHandler); // Hangup
pt_signal(SIGQUIT, sigHandler);
pt_signal(SIGPIPE, SIG_IGN); // Handle TCP Failure
pt_signal(SIGBUS, sigHandler);
pt_signal(SIGSYS, sigHandler);
pt_signal(SIGXCPU, sigHandler);
pt_signal(SIGXFSZ, sigHandler);
pt_signal(SIGUSR1, sigHandler);
pt_signal(SIGUSR2, sigHandler);
#endif
UtlString argString;
for (int argIndex = 1; argIndex < argc; argIndex++)
{
osPrintf("arg[%d]: %s\n", argIndex, argv[argIndex]);
argString = argv[argIndex];
NameValueTokenizer::frontBackTrim(&argString, "\t ");
if(argString.compareTo("-v") == 0)
{
osPrintf("Version: %s (%s)\n", SIPXCHANGE_VERSION, SIPXCHANGE_VERSION_COMMENT);
return(1);
}
else
{
osPrintf("usage: %s [-v]\nwhere:\n -v provides the software version\n",
argv[0]);
return(1);
}
}
// Load configuration file file
OsPath workingDirectory;
if (OsFileSystem::exists(CONFIG_ETC_DIR))
{
workingDirectory = CONFIG_ETC_DIR;
OsPath path(workingDirectory);
path.getNativePath(workingDirectory);
}
else
{
OsPath path;
OsFileSystem::getWorkingDirectory(path);
path.getNativePath(workingDirectory);
}
UtlString fileName = workingDirectory +
OsPathBase::separator +
CONFIG_SETTINGS_FILE;
if (configDb.loadFromFile(fileName) != OS_SUCCESS)
{
exit(1);
}
// Initialize log file
initSysLog(&configDb);
// Read the user agent parameters from the config file.
int UdpPort;
if (configDb.get(CONFIG_SETTING_UDP_PORT, UdpPort) != OS_SUCCESS)
{
UdpPort = DEFAULT_UDP_PORT;
}
int TcpPort;
if (configDb.get(CONFIG_SETTING_TCP_PORT, TcpPort) != OS_SUCCESS)
{
TcpPort = DEFAULT_TCP_PORT;
}
int HttpPort;
if (configDb.get(CONFIG_SETTING_HTTP_PORT, HttpPort) != OS_SUCCESS)
{
HttpPort = DEFAULT_HTTP_PORT;
}
// Bind the SIP user agent to a port and start it up
SipUserAgent* userAgent = new SipUserAgent(TcpPort, UdpPort);
userAgent->start();
UtlString domainName;
configDb.get(CONFIG_SETTING_DOMAIN_NAME, domainName);
int refreshTimeout;
//.........这里部分代码省略.........
示例13: supervisorMain
//.........这里部分代码省略.........
OsTask::blockSignals();
// Create a new task to wait for signals. Only that task
// will ever see a signal from the outside.
SignalTask* signalTask = new SignalTask();
signalTask->start() ;
// All osPrintf output should go to the console until the log file is initialized.
enableConsoleOutput(true);
// Initialize the log file.
Os::LoggerHelper::instance().processName = "Supervisor";
UtlString logFile = SipXecsService::Path(SipXecsService::LogDirType, "sipxsupervisor.log");
Os::LoggerHelper::instance().initialize(PRI_DEBUG, logFile.data());
if (!bOriginalSupervisor)
{
Os::Logger::instance().log(FAC_SUPERVISOR, PRI_CRIT,
"Restarting sipxsupervisor after unexpected shutdown");
}
Os::Logger::instance().log(FAC_SUPERVISOR, PRI_NOTICE,
">>>>> Starting sipxsupervisor version %s",
VERSION);
// Now that the log file is initialized, stop sending osPrintf to the console.
// All relevant log messages from this point on must use Os::Logger::instance().log().
enableConsoleOutput(false);
fflush(NULL); // Flush all output so children don't get a buffer of output
// Open the supervisor configuration file
OsConfigDb supervisorConfiguration;
OsPath supervisorConfigPath = SipXecsService::Path(SipXecsService::ConfigurationDirType,
CONFIG_SETTINGS_FILE);
if (OS_SUCCESS != supervisorConfiguration.loadFromFile(supervisorConfigPath.data()))
{
Os::Logger::instance().log(FAC_SUPERVISOR,PRI_WARNING,
"Failed to open supervisor configuration file at '%s'",
supervisorConfigPath.data()
);
}
// Set logging based on the supervisor configuration - TODO change default to "NOTICE" ?
OsSysLogPriority logPri = SipXecsService::setLogPriority(supervisorConfiguration, SUPERVISOR_PREFIX, PRI_INFO );
Os::Logger::instance().setLoggingPriorityForFacility(FAC_ALARM, logPri);
// Open the domain configuration file
OsConfigDb domainConfiguration;
OsPath domainConfigPath = SipXecsService::domainConfigPath();
if (OS_SUCCESS != domainConfiguration.loadFromFile(domainConfigPath.data()))
{
Os::Logger::instance().log(FAC_SUPERVISOR,PRI_ERR,
"Failed to open domain configuration '%s'",
domainConfigPath.data()
);
}
// @TODO const char* managementIpBindAddress;
int managementPortNumber;
managementPortNumber = domainConfiguration.getPort(SipXecsService::DomainDbKey::SUPERVISOR_PORT);
if (PORT_NONE == managementPortNumber)
{
Os::Logger::instance().log(FAC_SUPERVISOR,PRI_WARNING,
"%s not configured in '%s', using default: %d",
SipXecsService::DomainDbKey::SUPERVISOR_PORT,
domainConfigPath.data(), DEFAULT_SUPERVISOR_PORT
);
managementPortNumber=DEFAULT_SUPERVISOR_PORT;
示例14: main
//
// The main entry point to the sipXpark
//
int main(int argc, char* argv[])
{
// Configuration Database (used for OsSysLog)
OsConfigDb configDb;
// Register Signal handlers so we can perform graceful shutdown
pt_signal(SIGINT, sigHandler); // Trap Ctrl-C on NT
pt_signal(SIGILL, sigHandler);
pt_signal(SIGABRT, sigHandler); // Abort signal 6
pt_signal(SIGFPE, sigHandler); // Floading Point Exception
pt_signal(SIGSEGV, sigHandler); // Address access violations signal 11
pt_signal(SIGTERM, sigHandler); // Trap kill -15 on UNIX
#if defined(__pingtel_on_posix__)
pt_signal(SIGHUP, sigHandler); // Hangup
pt_signal(SIGQUIT, sigHandler);
pt_signal(SIGPIPE, SIG_IGN); // Handle TCP Failure
pt_signal(SIGBUS, sigHandler);
pt_signal(SIGSYS, sigHandler);
pt_signal(SIGXCPU, sigHandler);
pt_signal(SIGXFSZ, sigHandler);
pt_signal(SIGUSR1, sigHandler);
pt_signal(SIGUSR2, sigHandler);
#endif
UtlString argString;
for(int argIndex = 1; argIndex < argc; argIndex++)
{
osPrintf("arg[%d]: %s\n", argIndex, argv[argIndex]);
argString = argv[argIndex];
NameValueTokenizer::frontBackTrim(&argString, "\t ");
if(argString.compareTo("-v") == 0)
{
osPrintf("Version: %s (%s)\n", SIPXCHANGE_VERSION, SIPXCHANGE_VERSION_COMMENT);
return(1);
}
else
{
osPrintf("usage: %s [-v]\nwhere:\n -v provides the software version\n",
argv[0]);
return(1);
}
}
// Load configuration file file
OsPath workingDirectory;
if (OsFileSystem::exists(CONFIG_ETC_DIR))
{
workingDirectory = CONFIG_ETC_DIR;
OsPath path(workingDirectory);
path.getNativePath(workingDirectory);
}
else
{
OsPath path;
OsFileSystem::getWorkingDirectory(path);
path.getNativePath(workingDirectory);
}
UtlString fileName = workingDirectory +
OsPathBase::separator +
CONFIG_SETTINGS_FILE;
if (configDb.loadFromFile(fileName) != OS_SUCCESS)
{
exit(1);
}
// Initialize log file
initSysLog(&configDb);
// Read the user agent parameters from the config file.
int UdpPort;
if (configDb.get(CONFIG_SETTING_UDP_PORT, UdpPort) != OS_SUCCESS)
{
UdpPort = PRESENCE_DEFAULT_UDP_PORT;
}
int TcpPort;
if (configDb.get(CONFIG_SETTING_TCP_PORT, TcpPort) != OS_SUCCESS)
{
TcpPort = PRESENCE_DEFAULT_TCP_PORT;
}
UtlString bindIp;
if (configDb.get(CONFIG_SETTING_BIND_IP, bindIp) != OS_SUCCESS ||
!OsSocket::isIp4Address(bindIp))
{
bindIp = PRESENCE_DEFAULT_BIND_IP;
}
// Bind the SIP user agent to a port and start it up
SipUserAgent* userAgent = new SipUserAgent(TcpPort, UdpPort, PORT_NONE,
NULL, NULL, bindIp );
userAgent->start();
if (!userAgent->isOk())
{
//.........这里部分代码省略.........
示例15: main
int main(int argc, char* argv[])
{
const char* configFileName = "siptest-config";
int proxyTcpPort;
int proxyUdpPort;
int proxyTlsPort;
OsConfigDb configDb;
// siptest uses osPrintf for output, so we have to un-suppress it.
enableConsoleOutput(TRUE);
if(configDb.loadFromFile(configFileName) == OS_SUCCESS)
{
osPrintf("Found config file: %s\n", configFileName);
}
else
{
configDb.set("SIP_TEST_UDP_PORT", "3000");
configDb.set("SIP_TEST_TCP_PORT", "3000");
configDb.set("SIP_TEST_TLS_PORT", "3001");
if(configDb.storeToFile(configFileName) == OS_SUCCESS)
{
osPrintf("Could not write config file: %s\n", configFileName);
}
}
proxyUdpPort = configDb.getPort("SIP_TEST_UDP_PORT") ;
proxyTcpPort = configDb.getPort("SIP_TEST_TCP_PORT") ;
proxyTlsPort = configDb.getPort("SIP_TEST_TLS_PORT") ;
UtlBoolean commandStatus = CommandProcessor::COMMAND_SUCCESS;
char buffer[1024];
char* commandLine;
CommandProcessor processor;
SipLineMgr* lineMgr = new SipLineMgr();
SipRefreshMgr* refreshMgr = new SipRefreshMgr();
lineMgr->StartLineMgr();
lineMgr->initializeRefreshMgr( refreshMgr );
SipUserAgent* sipUA = new SipUserAgent( proxyTcpPort
,proxyUdpPort
,proxyTlsPort
,NULL // default publicAddress
,NULL // default defaultUser
,NULL // default defaultSipAddress
,NULL // default sipProxyServers
,NULL // default sipDirectoryServers
,NULL // default sipRegistryServers
,NULL // default authenicateRealm
,NULL // default authenticateDb
,NULL // default authorizeUserIds
,NULL // default authorizePasswords
,lineMgr
);
sipUA->allowMethod(SIP_REGISTER_METHOD);
sipUA->allowMethod(SIP_SUBSCRIBE_METHOD);
sipUA->allowMethod(SIP_NOTIFY_METHOD);
sipUA->start();
sipUA->startMessageLog();
osPrintf( "SIP logging Started\n" );
refreshMgr->init( sipUA );
CommandMsgProcessor* msgProc = new CommandMsgProcessor(sipUA);
msgProc->start();
processor.registerCommand("help", new HelpCommand(&processor));
processor.registerCommand("?", new HelpCommand(&processor));
processor.registerCommand("history", new HistoryCommand(&processor));
processor.registerCommand("send", new SipSendCommand(sipUA));
processor.registerCommand("lsend", new SipLSendCommand());
processor.registerCommand("get", new HttpGetCommand());
processor.registerCommand("respond", new RespondCommand(msgProc));
processor.registerCommand("rt", new RespondTemplate(msgProc));
processor.registerCommand("rrespond", new ResendResponse(msgProc));
processor.registerCommand("log", new SipLogCommand(*sipUA));
processor.registerCommand("auth", new AuthCommand(lineMgr));
processor.registerCommand("sleep", new SleepCommand());
processor.registerCommand("quit", new ExitCommand());
processor.registerCommand("exit", new ExitCommand());
//Initialization
UtlBoolean doPrompt = isatty(STDIN_FILENO);
if ( doPrompt )
{
printf("Enter command or help/? for help\n");
printf("SIPdriver: ");
}
for ( commandStatus = CommandProcessor::COMMAND_SUCCESS;
( commandStatus < CommandProcessor::COMMAND_FAILED_EXIT
&& commandStatus != CommandProcessor::COMMAND_SUCCESS_EXIT
&& (commandLine = fgets(buffer,1024,stdin))
);
//.........这里部分代码省略.........