2016-08-05 10 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は、カスタムヘッダーを渡すことで呼び出すためのコードです。残念ながら、ヘッダー値が要求に応じていないように見えるため、認証に失敗しています。

上記のコードは、ヘッダーを渡すためにpjsuaが提供するC++のすべてのドキュメントに従ってカスタムヘッダーとそれぞれの値を渡すのに正しいですが、呼び出しが確立されていないようであり、ヘッダーによる認証にサーバーで必要なピンを尋ねています。

いくつかのヘルプがありますか?

答えて

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を編集する必要が相手方であるために。あなたは、書面でこれを達成することができます:あなたはまた、他のいくつかの明確化のためにthisスレッドを確認することができます

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

希望します。

関連する問題