SIP Providers

The SIP Providers page is used to create, update and delete SIP provider records, and to see whether each provider's registration is working. A provider record holds the details of an account with a third party SIP service, so your dial plans can place calls through it and it can send you incoming calls. The settings are explained below.

  • Name: the name that identifies the provider. Dial plans use it to place calls through the provider: sys.Dial("${dst}@myprovider") dials the number through the provider named myprovider, and its server and credentials are filled in for you. The name itself is never sent to the provider.
  • Address of record: the account the provider issued, as a SIP URI, for example sip:12345@sip.example.net.
  • Authentication username: the username used to answer the provider's authentication challenges for calls and registrations. It is often the same as the user part of the address of record, but not always.
  • Password: the password for the provider account, used to answer its authentication challenges. It is stored encrypted and never shown again once saved; enter a new one to change it.
  • Registrar: the provider's server, optionally with a port. Registration requests are sent to it, and so are calls a dial plan places through the provider.
  • Keep this registration active: if ticked, the server registers with the provider and keeps the registration alive, and its status is shown beside the provider. You usually only need to register to receive incoming calls from a provider; calls out through it work either way. Untick it to keep the settings without registering.
  • Contact URI: where the provider should send incoming calls. It's sent to the provider when registering. For incoming calls to reach SIPSorcery it must be the address of one of your SIP accounts, for example sip:fred@sipsorcery.com, and the call is then handled by that account: it rings the account's devices or runs its incoming dial plan. It must not be the provider account's own address of record; getting this wrong is the common failure, where the registration succeeds and incoming calls go nowhere.

Advanced settings

These are not normally needed, but can be used to refine how the server works with a provider.

  • Realm: overrides the realm used when answering authentication challenges. Leave it empty to use the host of the address of record, which is usually right.
  • Registration expiry: the number of seconds to ask for when registering, between 60 and 86,400. Providers often grant less, and what they actually granted is shown beside the registration.
  • Custom headers: an optional list of SIP headers, one per line, added to registration requests sent to the provider, for the occasional provider that needs one. Each must be a valid SIP header, for example P-src-ip: 127.0.0.1 or User-Agent: Joe Bloggs SIP Softphone. The Route header the server uses to reach the provider is set for you and can't be overridden.
  • Notes: free text for you, such as which login this is on the provider's own site or who to contact when it breaks. Nothing here is sent anywhere.

Read only providers

SIPSorcery can mark a provider as read only, for example while a problem with it is looked into. It's shown on the SIP Providers page with a read only badge and as not registered, and while it's read only:

  • it can't be edited or deleted, and its password can't be changed,
  • the server doesn't register with it, so incoming calls from it stop arriving, and
  • calls aren't placed through it. A dial plan that dials through it skips it and tries the rest of what it was dialling; the call's trace in Call History says the provider was skipped because it's read only. sys.SendRequest and sys.Callback don't use it either, and a Simple Wizard rule can't be saved with it.

See Read only dial plans and providers for how a dial plan is affected.

Caller ID

Calls through a provider go out as the provider account, because the provider authenticates and bills on it. To change what the called party sees, set the display name from your dial plan, for example sys.SetFromHeader("Your Name", nil, nil); see Dial Plans. Most providers ignore or reject a changed user part, so start with the display name.