使用 JSSIP 在 From Header 中传递 PSTN 的来电显示
Passing CallerID for PSTN in From Header using JSSIP
我正在使用 JsSIP 连接到 FreeSwitch,然后连接到 PSTN。我希望在发件人 header 中传递来电显示。我的代码设置有点像这样:
var TheCallerIDTest = '+33...number in E164 format';
var TheSipClient = new JsSIP.UA({....}); //works fine
var TheHandlers = {
'sending': function (e) {
var TheSipURI = new JsSIP.URI('sip', TheCallerIDTest, 'MyFreeswitchServerUrl', 5060, null, null);
var TheHeader = new JsSIP.NameAddrHeader(TheSipURI, '', null);
//displays the correct From header just fine
console.log(TheHeader);
//here's where I want to modify the INVITE request
e.from = TheHeader;
},
}
var TheCallOptions = {
'eventHandlers': TheHandlers,
'mediaConstraints': { 'audio': true, 'video': false }
};
function TestCall() {
TheSipClient.start();
TheSipClient.call("+33...E164 number", TheCallOptions);
}
查看文档,https://jssip.net/documentation/3.3.x/api/session/#event_sending,我希望在 JsSIP.OutgoingRequest INVITE
请求的 'from' header 中添加一个 JsSIP.NameAddrHeader
。控制台输出记录了我要添加的正确的 From header。
但是,当我查看 JsSIP:RTCSession emit "sending" [request:InitialOutgoingInviteRequest
控制台日志时,它没有显示我要添加的 header,并且服务器上收到的 From header 不是我要发一个。
我的代码需要更改什么才能使其正常工作?
你需要这样做:
e.request.headers.From[0] = TheHeader;
删除一些您不想发送的其他 headers 也可能是有意义的。
我正在使用 JsSIP 连接到 FreeSwitch,然后连接到 PSTN。我希望在发件人 header 中传递来电显示。我的代码设置有点像这样:
var TheCallerIDTest = '+33...number in E164 format';
var TheSipClient = new JsSIP.UA({....}); //works fine
var TheHandlers = {
'sending': function (e) {
var TheSipURI = new JsSIP.URI('sip', TheCallerIDTest, 'MyFreeswitchServerUrl', 5060, null, null);
var TheHeader = new JsSIP.NameAddrHeader(TheSipURI, '', null);
//displays the correct From header just fine
console.log(TheHeader);
//here's where I want to modify the INVITE request
e.from = TheHeader;
},
}
var TheCallOptions = {
'eventHandlers': TheHandlers,
'mediaConstraints': { 'audio': true, 'video': false }
};
function TestCall() {
TheSipClient.start();
TheSipClient.call("+33...E164 number", TheCallOptions);
}
查看文档,https://jssip.net/documentation/3.3.x/api/session/#event_sending,我希望在 JsSIP.OutgoingRequest INVITE
请求的 'from' header 中添加一个 JsSIP.NameAddrHeader
。控制台输出记录了我要添加的正确的 From header。
但是,当我查看 JsSIP:RTCSession emit "sending" [request:InitialOutgoingInviteRequest
控制台日志时,它没有显示我要添加的 header,并且服务器上收到的 From header 不是我要发一个。
我的代码需要更改什么才能使其正常工作?
你需要这样做:
e.request.headers.From[0] = TheHeader;
删除一些您不想发送的其他 headers 也可能是有意义的。