SIP and WebRTC

We will be using Kurento or some kind of media server/mixer in out setup because of the following reasons:

  1. Imagine a call between user A, B, C and D. When you don’t use any media server/mixer. User A will do an upload to user B, C and D, also user A receives streams from B, C and D. Same applies to other users. Meaning every user opens a specific stream to the other users. On a desktop / laptop maybe it won’t give you any problems (maybe with 16 users it will). But on a mobile device this isn’t a good practice, for the data usage and processor power to our experience.
  2. If you will be using SIP hardphones with video to your Asterisk server. These phones will most likely use H.264 video codec. So if you want to be able to have a video call between WebRTC client and a SIP hardphone client someone needs to do some video transcoding.
  3. If all media went peer-to-peer then you wouldn’t be able to record any video session, would you?

We are looking into JSSIP + Asterisk + Kurento because of the following reasons:

  1. Our users want the ability to always call a ‘traditional telephone line’.
  2. Kurento is needed for above reasons (or some other media server if that seems to do a better job)
  3. Connect through browser, android and ios (ios is still an issue)
  4. Ability to add other SIP services to the platform