Hello Pooh!
Sorry, I’ll be calling just telephone now, I didn’t know that could be misunderstood, so thanks for the info.
I’m developing an Web project that connects to the asterisk with the Javascript Lib SIPML5, I don’t know all the details about how the lib does the call, but I know that it’s through WebRTC
On the project we have one workflow that it’s something like:
a) how is the camera connected to Asterisk?
The user uses WebApp to do one videocall with one phone. The WebApp it’s located in one computer, that have one webcam connected into it. The microphone that is used it’s the Webcam internal mic.
b) which codec is being used for video?
The codec that we use in both sides( Phone and WebApp ) it’s the Video Codec H264, VP9 and VP8, and the audio codec that we use are Alaw, Ulaw, Opus, g726, g722, g729 and gsm.
I think we need to see a SIP packet capture (including SDP) to understand
what’s happening here.
Latter I will send here the logs from the events and try to capture the SIP packet. But can I use Wireshark, or do you recommend any other software
So, the end which initiates the connection gets good audio and video from the
start, whereas the end being called gets immediate audio, but the video takes
a while to become stable? Is that correct?
Yes, the end which initiates the connection gets good audio and video from the start, the other end gets audio from the start, but the video gets a while to appear, or you can just cover up the camera and then the video would start working on telephone
What happens if you place the call the other way around - from the
(video)phone to the web app?
The same thing
#makeCall = () => {
watch(() => this.#store.makeCall, () => {
if (this.#store.makeCall) {
this.#store.$patch({ showDialog: false, showCallDialog: true });
setTimeout(() => {
this.#sipCallConfiguration.audio_remote = document.getElementById(“remote_audio”);
this.#sipCallConfiguration.video_remote = document.getElementById(“remote_video”);
this.#sipCallConfiguration.video_local = document.getElementById(“local_video”);
this.#currentSessionCall = this.#sipStack.newSession(‘call-audiovideo’, this.#sipCallConfiguration);
console.log(‘000’, this.#sipCallConfiguration);
this.#currentSessionCall.call(${this.#siaConfigurationStore.ramalToCall}@${this.#siaConfigurationStore.sipServer}
);
this.#endCallListener();
}, 1000);
}
}
);
}
#acceptCall = () => {
this.#store.$patch({ showDialog: false });
this.#store.$patch({ showCallDialog: true });
this.#stopRingbackTone();
this.#endCallListener();
setTimeout(() => {
this.#sipCallConfiguration.audio_remote = document.getElementById(“remote_audio”);
this.#sipCallConfiguration.video_remote = document.getElementById(“remote_video”);
this.#sipCallConfiguration.video_local = document.getElementById(“local_video”);
this.#currentSessionCall.accept(this.#sipCallConfiguration);
console.log(this.#sipCallConfiguration);
}, 2000);
}
#sipCallConfiguration = {
audio_remote: document.getElementById(“remote_audio”),
video_local: document.getElementById(“local_video”),
video_remote: document.getElementById(“remote_video”),
bandwidth: { audio: 320, video: 320 },
video_size: { minWidth: 150, minHeight: 150, maxWidth: undefined, maxHeight: undefined },
events_listener: { events: ‘', listener: this.#eventsListener },
sip_caps: [
{ name: ‘+g.oma.sip-im’ },
{ name: ‘language’, value: ‘"en,fr"’ }
]
}
#createSipStack = () => {
this.#sipStack = new SIPml.Stack({
realm: ‘fadami.local’,
impi: ${this.#siaConfigurationStore.ramalUser}
,
impu: this.#siaConfigurationStore.serverConnectorUrl,
password: this.#siaConfigurationStore.ramalUserPassword,
display_name: ${this.#siaConfigurationStore.ramalNumber}
,
websocket_proxy_url: wss://${this.#siaConfigurationStore.sipServer}:8089/ws
,
outbound_proxy_url: tcp://${this.#siaConfigurationStore.sipServer}:5060
,
enable_rtcweb_breaker: true,
disable_video: false,
events_listener: { events: '’, listener: this.#eventsListener },
sip_headers: [
{ name: ‘User-Agent’, value: ‘IM-client/OMA1.0 sipML5-v1.0.0.0’ },
{ name: ‘Organization’, value: ‘Fadami’ }
]
}
);
}