main.cpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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(
  21. ioService,
  22. pjsuaCommunicator,
  23. conf.getString("mumble.user"),
  24. conf.getString("mumble.password"),
  25. conf.getString("mumble.host"),
  26. conf.getInt("mumble.port"));
  27. using namespace std::placeholders;
  28. pjsuaCommunicator.onIncomingSamples = std::bind(
  29. &mumble::MumbleCommunicator::sendAudioFrame,
  30. &mumbleCommunicator,
  31. _1, _2);
  32. pjsuaCommunicator.connect(
  33. conf.getString("sip.host"),
  34. conf.getString("sip.user"),
  35. conf.getString("sip.password"),
  36. conf.getInt("sip.port"));
  37. logger.info("Application started.");
  38. ioService.run();
  39. return 0;
  40. }