Browse Source

Fix toPjString function.

Michał Słomkowski 8 years ago
parent
commit
2771986f37
2 changed files with 20 additions and 8 deletions
  1. 19 7
      PjsuaCommunicator.cpp
  2. 1 1
      PjsuaCommunicator.hpp

+ 19 - 7
PjsuaCommunicator.cpp

@@ -1,6 +1,5 @@
 #include "PjsuaCommunicator.hpp"
 
-
 #include <pjlib.h>
 #include <pjsua-lib/pjsua.h>
 #include <boost/algorithm/string/replace.hpp>
@@ -85,7 +84,9 @@ sip::PjsuaCommunicator::PjsuaCommunicator()
     pjsua_config generalConfig;
     pjsua_config_default(&generalConfig);
 
-    generalConfig.user_agent = toPjString("Mumsi Mumble-SIP Bridge");
+    string userAgent = "Mumsi Mumble-SIP Bridge";
+
+    generalConfig.user_agent = toPjString(userAgent);
     generalConfig.max_calls = 1;
 
     generalConfig.cb.on_incoming_call = &onIncomingCall;
@@ -121,6 +122,7 @@ void sip::PjsuaCommunicator::connect(
         std::string user,
         std::string password,
         unsigned int port) {
+
     pj_status_t status;
 
     pjsua_transport_config transportConfig;
@@ -150,10 +152,11 @@ pjmedia_port *sip::PjsuaCommunicator::createMediaPort() {
 
     pjmedia_port *mp = new pjmedia_port();
 
-    pj_str_t name = toPjString("Pjsuamp");
+    string name = "PjsuaMP";
+    auto pjName = toPjString(name);
 
     pj_status_t status = pjmedia_port_info_init(&(mp->info),
-                                                &name,
+                                                &pjName,
                                                 PJMEDIA_SIG_CLASS_PORT_AUD('s', 'i'),
                                                 SAMPLING_RATE,
                                                 1,
@@ -229,26 +232,35 @@ void sip::PjsuaCommunicator::registerAccount(string host, string user, string pa
     pjsua_acc_config_default(&accConfig);
 
     string uri = string("sip:") + user + "@" + host;
+    string regUri = "sip:" + host;
+    string scheme = "digest";
 
     pj_status_t status;
 
     status = pjsua_verify_sip_url(uri.c_str());
     if (status != PJ_SUCCESS) {
-        throw sip::Exception("failed to register account", status);
+        throw sip::Exception("invalid URI format", status);
     }
 
     logger.info("Registering account for URI: %s.", uri.c_str());
 
     accConfig.id = toPjString(uri);
-    accConfig.reg_uri = toPjString(string("sip:") + host);
+    accConfig.reg_uri = toPjString(regUri);
 
     accConfig.cred_count = 1;
     accConfig.cred_info[0].realm = toPjString(host);
-    accConfig.cred_info[0].scheme = toPjString("digest");
+    accConfig.cred_info[0].scheme = toPjString(scheme);
     accConfig.cred_info[0].username = toPjString(user);
     accConfig.cred_info[0].data_type = PJSIP_CRED_DATA_PLAIN_PASSWD;
     accConfig.cred_info[0].data = toPjString(password);
 
+    logger.error("id:%s", accConfig.id.ptr);
+    logger.error("reg_uri:%s", accConfig.reg_uri.ptr);
+    logger.error("realm:%s", accConfig.cred_info[0].realm.ptr);
+    logger.error("scheme:%s", accConfig.cred_info[0].scheme.ptr);
+    logger.error("username:%s", accConfig.cred_info[0].username.ptr);
+    logger.error("data:%s", accConfig.cred_info[0].data.ptr);
+
     pjsua_acc_id acc_id;
 
     status = pjsua_acc_add(&accConfig, PJ_TRUE, &acc_id);

+ 1 - 1
PjsuaCommunicator.hpp

@@ -35,7 +35,7 @@ namespace sip {
         std::string mesg;
     };
 
-    inline pj_str_t toPjString(std::string str) {
+    inline pj_str_t toPjString(std::string &str) {
         return pj_str(const_cast<char *>(str.c_str()));
     }