mumsi/main.cpp

69 lines
2.0 KiB
C++
Raw Normal View History

#include "PjsuaCommunicator.hpp"
#include "MumbleCommunicator.hpp"
2015-11-09 00:51:51 +01:00
#include "IncomingConnectionValidator.hpp"
2015-10-17 22:27:37 +02:00
#include "Configuration.hpp"
2015-07-13 18:14:35 +02:00
#include <log4cpp/FileAppender.hh>
#include <log4cpp/OstreamAppender.hh>
2015-11-09 00:51:51 +01:00
#include <log4cpp/PatternLayout.hh>
int main(int argc, char *argv[]) {
2015-09-29 02:26:45 +02:00
log4cpp::Appender *appender1 = new log4cpp::OstreamAppender("console", &std::cout);
2015-11-09 00:51:51 +01:00
log4cpp::PatternLayout layout;
layout.setConversionPattern("%d [%p] %c: %m%n");
appender1->setLayout(&layout);
2015-09-29 02:26:45 +02:00
log4cpp::Category &logger = log4cpp::Category::getRoot();
2015-11-04 00:53:52 +01:00
logger.setPriority(log4cpp::Priority::NOTICE);
2015-09-29 02:26:45 +02:00
logger.addAppender(appender1);
2015-10-17 22:27:37 +02:00
if (argc == 1) {
logger.crit("No configuration file provided. Use %s {config file}", argv[0]);
return 1;
}
config::Configuration conf(argv[1]);
2015-10-16 22:41:37 +02:00
2015-11-09 00:51:51 +01:00
sip::IncomingConnectionValidator connectionValidator(conf.getString("sip.validUriExpression"));
2015-10-30 13:43:06 +01:00
boost::asio::io_service ioService;
2015-11-09 00:51:51 +01:00
sip::PjsuaCommunicator pjsuaCommunicator(connectionValidator);
2015-07-13 18:14:35 +02:00
2015-11-03 02:13:15 +01:00
mumble::MumbleCommunicator mumbleCommunicator(ioService);
2015-11-02 23:41:49 +01:00
using namespace std::placeholders;
2015-11-03 02:13:15 +01:00
pjsuaCommunicator.onIncomingPcmSamples = std::bind(
&mumble::MumbleCommunicator::sendPcmSamples,
2015-11-02 23:41:49 +01:00
&mumbleCommunicator,
_1, _2);
2015-11-04 00:53:52 +01:00
pjsuaCommunicator.onStateChange = std::bind(
&mumble::MumbleCommunicator::sendTextMessage,
&mumbleCommunicator, _1);
2015-11-03 02:13:15 +01:00
mumbleCommunicator.onIncomingPcmSamples = std::bind(
&sip::PjsuaCommunicator::sendPcmSamples,
&pjsuaCommunicator,
_1, _2);
mumbleCommunicator.connect(
conf.getString("mumble.user"),
conf.getString("mumble.password"),
conf.getString("mumble.host"),
conf.getInt("mumble.port"));
2015-11-02 23:41:49 +01:00
pjsuaCommunicator.connect(
conf.getString("sip.host"),
conf.getString("sip.user"),
conf.getString("sip.password"),
conf.getInt("sip.port"));
2015-09-29 02:26:45 +02:00
logger.info("Application started.");
2015-07-13 18:14:35 +02:00
2015-10-30 13:43:06 +01:00
ioService.run();
2015-10-16 22:41:37 +02:00
return 0;
2015-07-13 18:14:35 +02:00
}