Ошибка при попытке зарегистрировать pjsua2 через NAT - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь зарегистрировать pjsua2 "(pjsip)" на pabx-глотке, этот регистр работает нормально, когда нет nat, но когда есть nat, он не регистрируется. Я использую стандартные настройки, используемые демо .

bool SipAccount::start(){
    this->ep.libCreate();
    // Initialize endpoint
    this->ep.libInit(this->ep_cfg );

    // Create SIP transport. Error handling sample is shown
    this->tcfg.port = this->port;
    try {
        this->ep.transportCreate(PJSIP_TRANSPORT_UDP, this->tcfg);
    } catch (Error &err) {
        std::cout << err.info() << std::endl;
        return false;
    }

    // Start the library (worker threads etc)
    this->ep.libStart();
    std::cout << "*** PJSUA2 STARTED ***" << std::endl;

    // Configure an AccountConfig


    this->acfg.idUri = idUri.toLatin1().data();
    this->acfg.regConfig.registrarUri =  regUri.toLatin1().data();

    this->acfg.callConfig.timerMinSESec = 120;
    this->acfg.callConfig.timerSessExpiresSec = 1800;

    this->cred.username = this->username.toLatin1().data();
    this->cred.scheme = "digest";
    this->cred.realm = "*";
    this->cred.dataType = 0;
    this->cred.data = this->password.toLatin1().data();

    this->acfg.sipConfig.authCreds.push_back( this->cred );

    // Setup the account
    SipLine *l = new SipLine();
    l->setHandler(this->handler);
    l->create(acfg);

    // Here we don't have anything else to do..
    this->line = l;
    // pj_thread_sleep(10000);
    return true;
}

Моя проблема с rport с использованием pjsip, я не установил учетные данные, порт, используемый для связи, недействителен.

Это образец из заголовка, использованного в тесте

enter image description here

...