main.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "log4cpp/Category.hh"
  2. #include "log4cpp/FileAppender.hh"
  3. #include "log4cpp/OstreamAppender.hh"
  4. #include "PjsuaCommunicator.hpp"
  5. #include "MumbleCommunicator.hpp"
  6. #include "Configuration.hpp"
  7. int main(int argc, char *argv[]) {
  8. log4cpp::Appender *appender1 = new log4cpp::OstreamAppender("console", &std::cout);
  9. appender1->setLayout(new log4cpp::BasicLayout());
  10. log4cpp::Category &logger = log4cpp::Category::getRoot();
  11. logger.setPriority(log4cpp::Priority::DEBUG);
  12. logger.addAppender(appender1);
  13. if (argc == 1) {
  14. logger.crit("No configuration file provided. Use %s {config file}", argv[0]);
  15. return 1;
  16. }
  17. config::Configuration conf(argv[1]);
  18. boost::asio::io_service ioService;
  19. sip::PjsuaCommunicator pjsuaCommunicator;
  20. mumble::MumbleCommunicator mumbleCommunicator(ioService);
  21. using namespace std::placeholders;
  22. pjsuaCommunicator.onIncomingPcmSamples = std::bind(
  23. &mumble::MumbleCommunicator::sendPcmSamples,
  24. &mumbleCommunicator,
  25. _1, _2);
  26. mumbleCommunicator.onIncomingPcmSamples = std::bind(
  27. &sip::PjsuaCommunicator::sendPcmSamples,
  28. &pjsuaCommunicator,
  29. _1, _2);
  30. mumbleCommunicator.connect(
  31. conf.getString("mumble.user"),
  32. conf.getString("mumble.password"),
  33. conf.getString("mumble.host"),
  34. conf.getInt("mumble.port"));
  35. pjsuaCommunicator.connect(
  36. conf.getString("sip.host"),
  37. conf.getString("sip.user"),
  38. conf.getString("sip.password"),
  39. conf.getInt("sip.port"));
  40. logger.info("Application started.");
  41. ioService.run();
  42. return 0;
  43. }