Guides

Make a Call

Overview

This guide uses the full SIP.js API. The SIP.js Simple API is intended to help get beginners up and running quickly.

HTML

Create an HTML file. In the file include the SIP.js library, as well as any other javascript that will be used.

A <video> element is need to display the video stream. The <video> element adds a standard way for browsers to display video over the internet without additional plugins. This makes <video> elements perfect for WebRTC.

Within the <body> tags, there is a remoteVideo <video> element, to display the video of the person being called. There is also a localVideo <video> element, to display the video stream that is being sent to the person being called. The local video stream should always be muted to prevent feedback.

1
2
3
4
5
6
7
8
9
10
11
12
<html>
  <head>
    <link rel="stylesheet" href="my-styles.css">
  </head>
  <body>
    <video id="remoteVideo"></video>
    <video id="localVideo" muted="muted"></video>

    <script src="sip-0.10.0.min.js"></script>
    <script src="my-javascript.js"></script>
  </body>
</html>

Javascript

Creating a UA

In order to send messages, create a SIP user agent. Calling SIP.UA() method, with no parameters, creates an anonymous user agent.

1
var userAgent = new SIP.UA();

After the user agent has connected to the SIP server, an invite can be sent to make a call and thereby create a SIP session.

Sending an Invite

To send an invite you will need the target user’s SIP address and any extra options to define the session. Then you can call the invite method on the user agent. The invite function returns a session object that will be used for the current session.

1
var session = userAgent.invite('bob@example.com');

After the invite method is invoked, the browser will ask for permission to access the camera and microphone. Permission must be allowed to make the call. The person being called has the choice of accepting or rejecting the call.

Attaching Media

Please see the attach media guide.

Ending a Session

To end a session, simply call the terminate method on the session to send a bye.

1
session.terminate();