Нет звука при исходящем звонке через JsSIP (Asterisk) - PullRequest
0 голосов
/ 06 августа 2020

Пытаюсь отладить существующую систему, в которой звонки производятся через Астерикс. При приеме входящих вызовов все работает нормально, но при исходящем вызове, по-видимому, нет звука (но я принимаю событие addstream и прикрепляю поток к аудио). Производственный код занимает 500 строк, но этот код делает почти то же самое, но тоже не работает

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()

Также прилагаются скриншоты из Asterisk. Первый - исходящий без звука, второй - входящий со звуком

enter image description here

введите описание изображения здесь

1 Ответ

0 голосов
/ 06 августа 2020

Проблема решена со стороны IT. Проблем в JsSIP или коде

не было
...