main.cpp 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  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::NOTICE);
  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. pjsuaCommunicator.onStateChange = std::bind(
  27. &mumble::MumbleCommunicator::sendTextMessage,
  28. &mumbleCommunicator, _1);
  29. mumbleCommunicator.onIncomingPcmSamples = std::bind(
  30. &sip::PjsuaCommunicator::sendPcmSamples,
  31. &pjsuaCommunicator,
  32. _1, _2);
  33. mumbleCommunicator.connect(
  34. conf.getString("mumble.user"),
  35. conf.getString("mumble.password"),
  36. conf.getString("mumble.host"),
  37. conf.getInt("mumble.port"));
  38. pjsuaCommunicator.connect(
  39. conf.getString("sip.host"),
  40. conf.getString("sip.user"),
  41. conf.getString("sip.password"),
  42. conf.getInt("sip.port"));
  43. logger.info("Application started.");
  44. ioService.run();
  45. return 0;
  46. }