2016-08-05 3 views
0

Ниже мой исходный код для pjsip призванию -PJSIP - Pjsua2 android: Как добавить заголовки во время звонка?

String buddy_uri = item.get("uri"); 

    SipHeaderVector sipHeaderVector = new SipHeaderVector(2); 

    SipHeader sipHeader1 = new SipHeader(); 
    sipHeader1.setHName("Header1"); 
    sipHeader1.setHValue("Value1"); 

    SipHeader sipHeader2 = new SipHeader(); 
    sipHeader.setHName("Header2"); 
    sipHeader.setHValue("Value2"); 

    sipHeaderVector.set(0,sipHeader1); 
    sipHeaderVector.set(1,sipHeader2); 

    MyCall call = new MyCall(account, -1); 

    CallOpParam prm = new CallOpParam(true); 

    SipTxOption sipTxOption = new SipTxOption(); 
    sipTxOption.setHeaders(sipHeaderVector); 
    prm.setTxOption(sipTxOption); 

    try { 
    call.makeCall(buddy_uri, prm); 
} catch (Exception e) { 
    call.delete(); 
    return; 
} 

Выше код PJSIP вызова путем передачи пользовательских заголовков. К сожалению, аутентификация терпит неудачу, поскольку, кажется, значения заголовка не идут в запросе.

Правильно ли указан код для передачи пользовательских заголовков и их соответствующих значений, как и вся документация C++, предоставленная pjsua для передачи заголовков, но кажется, что вызов не установлен и запрашивается некоторый вывод, который требуется на сервере для аутентификации через заголовки.

Может ли кто-нибудь помочь ???

ответ

0

Я не использую для передачи аргументов SipTxOption. Вот мой рабочий пример, который работает:

CallOpParam prm = new CallOpParam(true); 
    SipHeaderVector shv = new SipHeaderVector(); 
    SipHeader sh = new SipHeader(); 
    sh.setHName("headerName"); 
    sh.setHValue("headerValue"); 

    // add the sip header to the vector 
    shv.add(sh);   

    // set headers to the parameter object 
    prm.getTxOption().setHeaders(shv); 

    // make call using the desired parameters 
    try { 
     call.makeCall(buddy_uri, prm); 
    } catch (Exception e) { 
     call.delete(); 
     return; 
    } 

Но для того, чтобы SipHeaders быть другая сторона, вы должны отредактировать extensions_macro.conf пересылать пользовательские заголовки. Вы можете сделать это, написав:

exten => s,n,SIPAddHeader(headerName: ${SIP_HEADER(headerName)}) 

Вы также можете проверить this нить для некоторых других уточнений.

Надеюсь, это поможет.

Смежные вопросы