main.cpp 1.8 KB

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