SIP Registration Server
The registration server's functionality typically stands in setting up and tearing down functionality with a client by using the REGISTER and INVITE requests as well as clearing and retrieving registrations from a SIP url.
The Session Initiation Protocol provides the REGISTER functionality that is used mainly in a proxy configuration case.
This is used to locate individual users in case of a call, which is similar to an INVITE message sent to the server.
Message flow in registration of a SIP user agent on a registration server
The actual registration of a SIP user agent on a registration server is made using a pretty simple message flow like it follows:
- The user agent sends a REGISTER request to the server.
- The server answers with 401 Unauthorized.
- The user agent sends another REGISTER request with authorization information.
- The server acknowledges the registration by sending back 200 OK.
By changing some fields in the message, the registration cancelling is performed.
Interrogation of the server to identify contacts associated with a SIP url are made in the similar way.
Yate as a SIP registrar
In order to use Yate as a SIP registrar you can use one of the following modules:
- regfile.conf - the users will be set in a file
- register.conf - the users will be set in a database
- define custom module or script that handles: user.auth, user.register, user.unregister and call.route messages
Configure regfile module
Module regfile is used for autentication, registration, and routing of users configured in a file.
This is the easiest and the quickest way of configuring Yate if you have few users.
For each user you have to define a section that contains the [username] and parameter password with his associated value.
This is an example of defining a user in regfile.conf:
By configuring to save the registration information in a file, registration of the users will not be lost, if Yate is restarted. More configuration that can be dome in this file can be found in regfile module page.
Configure register module
Module register is used for autentication, registration, and routing of users from database.
There are database modules used to make the connection between Yate and an existing database.
From register module you can:
- set queries for each message.
- can track the number of ongoing calls for a user.
- store CDR in the database.