所以我正在使用jssip 3.2.10在React项目上进行调用。
服务器已在Asterisk和CentOS上设置。
我可以在呼叫接收方听完我的地方拨打电话,但是我听不到他们的声音,也听不到呼叫发出的等待(传统)蜂鸣声。
它确实可以与一些sipml5 / asterisk udp在线测试一起使用,所以我认为这是我的客户端问题。我在Chrome和Firefox(均为最新版本,结果相同)上进行了测试。
我的设置
我有一个名为sip.js的助手:
const arr10 = (arr) => arr.map(x => x * 10);
console.log( arr10( [1, 2, 3] ) );
然后在我的主要组件上执行以下操作:
const JsSIP = require('jssip')
const GLOBAL = require('../globals')
function register(user, pass, cb) {
console.log('Registering to SIP')
JsSIP.debug.disable('JsSIP:*')
const address = GLOBAL.jssip_server + ':' + GLOBAL.jssip_port
let socket = new JsSIP.WebSocketInterface('ws://' + address + '/ws')
const configuration = {
sockets: [socket],
uri: 'sip:' + user + '@' + GLOBAL.jssip_server,
authorization_user: user,
password: pass,
connection_recovery_min_interval: 3,
register: true
}
let ua = new JsSIP.UA(configuration)
ua.start()
cb(ua)
}
export {
register
}
当我尝试拨打电话时,请执行以下操作:
componentDidMount() {
if(GLOBAL.jssip) {
this.props.dispatch(connecting(true))
register('***', '***', (ua) => {
this.setState({ua: ua}, () => {
this.state.ua.on("registered", () => {
this.props.dispatch(connecting(false))
this.setState({critical: false})
})
this.state.ua.on("registrationFailed", () => {
this.props.dispatch(connecting(false))
this.setState({critical: true})
})
})
})
}
}
有人知道如何解决此问题吗?
答案 0 :(得分:1)
在此感谢您的回答: How to handle audio stream in JsSIP?
我找到了解决方案,我需要在呈现调用的文件中添加:
addpoly.rma(x=ma.time03, row = 1.5, transf=exp, mlab="", level=95, efac=0)
将doCall的最后一位更改为:
<audio ref={(audio) => {this.audioElement = audio}} id="audio-element"></audio>