-1

I'm trying to debug the existent system, where calls are made via Asteriks. When accepting incoming calls, everything works fine, but on making outgoing call there is apparently no sound (but I accept 'addstream' event and attach stream to audio). Production code takes 500 lines, but this code does pretty much the same, but doesn't work as well

const socket = new JsSIP.WebSocketInterface('wss://callwss.agdevelopments.net');
socket.via_transport = 'wss';
const configuration = {
    password: "SIP4003!",
    realm: "callws,s.agdevelopments.net",
    register: true,
    session_timers: false,
    uri: "sip:4003@callwss.agdevelopments.net",
    sockets: [socket]
}
const ua = new JsSIP.UA(configuration)

//     Setup events
ua.on('connected', function () {
    console.log('Connected')
})
ua.on('disconnected', function () {
    console.log('Connected')
})

//    Make a call

const eventHandlers = {
    'progress': function (e) {
        console.log('call is in progress');
    },
    'failed': function (e) {
        console.log('call failed with cause: ' + (e.data ? e.data.cause : 'no cause'), e);
    },
    'ended': function (e) {
        console.log('call ended with cause: ' + (e.data ? e.data.cause : 'no cause'), e);
    },
    'confirmed': function (e) {
        console.log('call confirmed');
    },
    'addstream': (e) => {
        console.log('Add stream (event handlers)')
        audio.srcObject = e.stream
        audio.play()
    }
};

const options = {
    'eventHandlers': eventHandlers,
    'mediaConstraints': {'audio': true, 'video': false}
};

const audio = new window.Audio()

ua.on('registered', function () {
    const session = ua.call('0513887341', options)

    if (session.connection) {
        console.log('Connection is valid')

        session.connection.addEventListener('addstream', e => {
            console.log('Add stream')
            audio.srcObject = e.stream
            audio.play()
        })

        session.on('addstream', function(e){
            // set remote audio stream (to listen to remote audio)
            // remoteAudio is <audio> element on page
            const remoteAudio = audio
            remoteAudio.src = window.URL.createObjectURL(e.stream);
            remoteAudio.play();
        });
        session.connection.addEventListener('peerconnection', e => {
            console.log('Peer connection')
            audio.srcObject = e.stream
            audio.play()
        })
    } else {
        console.log('Connection is null')
    }
})

ua.on('newRTCSession', (data) => {
    console.log('New RTC Session')
    const session = data.session
    session.on('addstream', function(e){
        // set remote audio stream (to listen to remote audio)
        // remoteAudio is <audio> element on page
        const remoteAudio = audio
        remoteAudio.src = window.URL.createObjectURL(e.stream);
        remoteAudio.play();
    });

})

ua.start()

Also attaching screenshots from Asterisk. The first one is outgoing call with no sound, the second is incoming with sound

enter image description here

enter image description here

1 Answers1

-1

The issue was solved from IT side. There was no problems in JsSIP or code