Goal (short description)

Goal is to server multiple sip domains in one instance of OpenSer or Ser

Applicability

Consider if you want to serve more domain on one server. Don't mess it with aliasing.
Alias: jan@software.cesnet.cz and jan@hardware.cesnet.cz lead to one identity
Multidomain: jan@software.cesnet.cz and jan@hardware.cesnet.cz can lead to diferent identity.
It also used for completely different domains like sipdomainA adn sipdomainB in one server.

Prerequisites (OS, dependencies on other software)

  • installed OpenSER or SER (tested with 0.9.x)

Configuration (OS agnostic)

Configuration file changes

  • Load the domain module
    loadmodule "/usr/local/lib/ser/modules/domain.so"
    
  • Look for all modules that you use and that have use_domain parameter and set it to 1 i.e.:
    modparam("usrloc|registrar|auth_db|avpops|group", "use_domain", 1)
    
  • Find all uri==myself tests and change them to (is_uri_host_local() || uri==myself) or
    just is_uri_host_local(). It depends whether you want to accept uri with server name, server name aliases or server IPs in domain part in particular test.
  • Find all from_uri==myself tests and change them to is_from_local(). This function checks from domain part against domain table
  • Remove domain name from authentication challenge. Server challenges several domains so the client is responsible to chose the right one.
        if (!proxy_authorize("", "subscriber")) {
                proxy_challenge("", "0");
                break;
        };
    
    
        if (!www_authorize("", "subscriber")) {
                www_challenge("", "0");
                break;
        };
    

Domain manipulation

  • serctl domain add domainname adds a new domain
  • serctl domain rm domainname removes domain

Domains can be added or removed by serctl without restarting the server.
Be careful if you set SIP_DOMAIN, rather delete it to avoid confusion. If you forget to use domain part when you manipulate with users SIP_DOMAIN is used. If it is not set you will warned.

DNS changes

Don't forget to set SRVs (and NAPTRs) for all server domains.

OS specific help

Validation, confirmation tests

Set user accounts in different domains (with different passwords), register clients and try to call them.

  • No labels