Javascript SIP library sip.js and JsSIP differences? - webrtc

I have three doubts that require some clear explanation .
A clear purpose of those two JavaScript SIP library in relation to Webrtc and sip signalling.
Difference between Sip.js and JsSIP JavaScript SIP Library.
Does IP PBX means sip server or sip proxy as well

Those are WEBRTC SIP libraries, the purpose is to add voice and video communication to a web app.
No major difference. both have more less the same features.
IP PBX means a business phone system, and a SIP server is the software that send the call to the phone device.

I also came across those both libraries today.
I figured out, that you can't use them with your General SIP-Provider, if the Provider didn't support Sip over Websocket.
But you can use it with your SIP-Server / PBX (like Asterisk or FreeSWITCH), or with an Sip-Proxy like http://oversip.net/ (you also can have a look at the Outbound-Info for more Information: http://oversip.net/documentation/misc/outbound/

Related

Twilio Chat - can we use the npm package `twilio-chat` on server side?

I am trying an approach to encapsulate Twilio to our back end and using our own web socket for real-time chat experience.
Can I use twilio-chat behind my web socket as a proxy server?
Twilio developer evangelist here.
twilio-chat is built as a browser based SDK and consequently relies on browser platform APIs, most notably web sockets. Node.js does not have a native or standard library implementation of web sockets, so you would have to polyfill them and likely other APIs into the global scope.
What I'm saying is that it's likely possible, but probably a hassle.

Test Automation: Automate outgoing calls from fixed phones registered with a Skype for Business IP-PBX

For test automation purposes, we're currently investigating upon how we can have a fixed phone registered with a Skype for Business IP-PBX (e.g. an AudioCodes phone or a Yealink phone or...), make an outgoing call upon request.
E.g. Our test automation platform would send a request to the Skype for Business Server to tell this server to initiate an outgoing call from phone A registered with that Skype for Business Server to an external phone B. So a little bit similar as JTAPI functionality...
I.e. Would this be feasible by using UCMA 5.0?
There is no way to SIP to make a physical phone make a call.
With UCMA you are effectively a softphone, so with UCMA you can make your "softphone" make a call.
With the Lync Client API you are remote controlling the Lync Client (Skype for Business client), so with the Lync Client API you can remote control the Lync Client to make a call.
The only way I can think of to make a physical phone dial would be to use a Polycom VVX phone linked to a instance of a Lync Client using there "Better Together" application. Then you can use the Lync Client API to remote control the Lync Client which would in turn remote control the Polycom VVX phone.
I haven't done this in a Skype/Lync environment but I've done something similar in Asterisk a long time ago. I don't remember all the details of the test any more.
One key to get hardware involved, if you don't use a BToE connection, is to leverage the "Auto Answer" answer feature on most handsets.
I have seen some phones also allow for some push/curl commands to be sent to the device. An example of this with a polycom is here. The post is old and it's been years since I messed with that, but I assume some of that function may still be in some devices/firmware. I haven't seen anything similar with AudioCodes or Yealink, but they maybe there as well.

How I make live video chat for my website

I want to add video chat option in my website please guide me how i do this task and what should i required for doing this.How much it's cost if i will make it for my website and also it's maintenance(Like server ETC).
You are looking for something like rtchub.com
If you want it free, you can develop it yourself, using WebRTC:
WebRTC is a free, open project that provides browsers and mobile
applications with Real-Time Communications (RTC) capabilities via
simple APIs. The WebRTC components have been optimized to best serve
this purpose.
See WebRTC Tutorial
On client side you use JavaScript (jQuery), and clients communication directly using browser, but you need server part and signaling mechanism, and you can use for example SignalR or Node.js.
As example you can look at my site: SignalRTC.
P.S. WebRTC works only on selected browsers, for example Chrome, FireFox, unfortunately not on IE or Edge.

Signalling channel for WebRTC

I want to create my own video chat application. I use the WebRTC framework. I read a few tutorials and each of theme assumes that signalling channel exists. How to implement my own signalling channel?
Since signalling is not defined for the WebRTC standard at the moment, it leaves you a few options. Check out this article for more info the following articles:
Signalling Options for WebRTC Applications
Choosing your signalling protocol
1.SIP over WebSockets
Companies like JSSIP offer a SIP signalling framework over Javascript. The advantage here is that it's interoperable with the usual VoIP structures.
JSSIP
SIPJS
SIPML5
2.The WebRTC Data Channel
Uncharted territory but viable!
Tutorial by Pusher
3.XMPP
If you take this route, it is probably either because you have an existing XMPP installation
Jingle
4.JSON over COMET or WebSockets
My favourite! WebRTC signalling shouldn't be done any other way than the Web way.
Matrix
Firebase
I hope this helps!
You can make a Node.js WebSocket server or other WebSocket server to broker the connection. Here is a simple guide that gets the first client talking to the server. An alternative is PeerJS, which can handle the signaling and alleviate most of the complexity of setting up the WebRTC call.
With serverless options available, vanilla HTTP AJAX options may not be bad for scalability and costs.
Create a plain HTTP(s) API exchanging information using JSON.

want to understand whatsapp work flow and architecture

I have some questions like how whatsapp server is working, though I read in internet, I want to understand much. And what is XMPP? how it is working, How can I send data through XMPP. how can I integrate XMPP with application, can anyone pls explain?
WhatsApp under the hood?
There are rumors WhatsApp uses a customized version of XMPP. Sources are closed so we can only guess.
Understanding XMPP will however give you all the tools to create your own WhatsApp clone.
What is XMPP?
According to Wikipedia (which hosts further references):
Extensible Messaging and Presence Protocol (XMPP) is a communications protocol for message-oriented middleware based on XML (Extensible Markup Language).
Which is to say that XMPP is an xml based convention for exchanging messages between parties. It's best known implementation is Ejabberd chat server.
XMPP can however be used for other things, among them the web of things.
How to send messages?
Assuming you want to create a chat application, you will need:
An Ejjaberd server up and running.
An appropriate xmpp SDK for you language/framework. Example: Smack for Java or agsXMPP for C#.
A good kick-starting tutorial about how xmpp works can he found here: part one and part two.
There is also the RFC which contains the most comprehensive documentation out there.