Beispiel #1
0
PJ_DECL(pj_status_t) csipsimple_set_acc_user_data(pjsua_acc_id acc_id, csipsimple_acc_config* css_acc_cfg){

	csipsimple_acc_config *additional_acc_cfg = PJ_POOL_ZALLOC_T(css_var.pool, csipsimple_acc_config);
	pj_memcpy(additional_acc_cfg, css_acc_cfg, sizeof(csipsimple_acc_config));
	pj_strdup(css_var.pool, &additional_acc_cfg->p_preferred_identity, &css_acc_cfg->p_preferred_identity);

	pjsua_acc_set_user_data(acc_id, additional_acc_cfg);

	return PJ_SUCCESS;
}
Beispiel #2
0
SipAccount::~SipAccount() {
  Logger::debug("SipAccount::~SipAccount()...");
  m_pPhone = NULL;

  if (m_accId == -1) {
    return;
  }

  (void)pjsua_acc_set_user_data(m_accId, NULL);

  pj_status_t status = pjsua_acc_del(m_accId);
  m_accId = -1;
  if (status != PJ_SUCCESS) {
    Logger::warn("pjsua_acc_del() failed (%s)", Helper::getPjStatusAsString(status).c_str());
  }
}
Beispiel #3
0
bool SipAccount::add(struct SettingSipAccount* pSettings) {
  Logger::debug("SipAccount::add(%s)...", pSettings->toString().c_str());
  m_settings = *pSettings; // strcut copy

  // prepare account configuration
  pjsua_acc_config cfg;
  pjsua_acc_config_default(&cfg);
  
  std::ostringstream user_url_ss;
  user_url_ss << "sip:" << m_settings.fromUsername << "@" << m_settings.fromDomain;
  std::string user_url = user_url_ss.str();
  
  std::ostringstream provider_url_ss;
  provider_url_ss << "sip:" << m_settings.fromDomain;
  std::string provider_url = provider_url_ss.str();

  // create and define account
  cfg.id = pj_str((char*)user_url.c_str());
  cfg.reg_uri = pj_str((char*)provider_url.c_str());
  cfg.cred_count = 1;
  cfg.cred_info[0].realm = pj_str((char*)m_settings.fromDomain.c_str());
  cfg.cred_info[0].scheme = pj_str((char*)"digest");
  cfg.cred_info[0].username = pj_str((char*)m_settings.fromUsername.c_str());
  cfg.cred_info[0].data_type = PJSIP_CRED_DATA_PLAIN_PASSWD;
  cfg.cred_info[0].data = pj_str((char*)m_settings.fromPassword.c_str());

  // add account
  pj_status_t status = pjsua_acc_add(&cfg, PJ_TRUE, &m_accId);
  if (status != PJ_SUCCESS) {
    Logger::error("pjsua_acc_add() failed (%s)", Helper::getPjStatusAsString(status).c_str());
    return false;
  }

  status = pjsua_acc_set_user_data(m_accId, this);
  if (status != PJ_SUCCESS) {
    Logger::error("pjsua_acc_set_user_data() failed (%s)", Helper::getPjStatusAsString(status).c_str());
    return false;
  }

  return true;
}