PJSIP-pjsua2android:如何在调用时添加头?
下面是我的pjsip调用源代码-PJSIP-pjsua2android:如何在调用时添加头?,android,sip,pjsip,sip-server,Android,Sip,Pjsip,Sip Server,下面是我的pjsip调用源代码- String buddy_uri = item.get("uri"); SipHeaderVector sipHeaderVector = new SipHeaderVector(2); SipHeader sipHeader1 = new SipHeader(); sipHeader1.setHName("Header1"); sipHeader1.setHValue("Value1"); SipHeade
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++文档通过标题,但似乎调用未被建立,并要求在服务器上通过头文件进行身份验证的某些PIN。
有人能帮忙吗?我没有使用
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\u macro.conf
以转发自定义头。您可以通过以下方式完成此任务:
exten => s,n,SIPAddHeader(headerName: ${SIP_HEADER(headerName)})
您还可以检查线程以获得其他一些澄清
希望有帮助。我没有使用
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\u macro.conf
以转发自定义头。您可以通过以下方式完成此任务:
exten => s,n,SIPAddHeader(headerName: ${SIP_HEADER(headerName)})
您还可以检查线程以获得其他一些澄清
希望有帮助。我可以确认这是有效的。。。别忘了第二部分。。。否则,标头确实会到达sip服务器,但很可能不会传递到目标服务器。我可以确认这是有效的。。。别忘了第二部分。。。否则,报头会到达sip服务器,但很可能不会传递到目标服务器。