A SIP address or SIP URI is a Uniform Resource Identifier written in firstname.lastname@example.org format (semantically, much like an e-mail address). It addresses a specific telephone extension on a voice over IP system (such as a private branch exchange) or an E.164 telephone number dialled through a specific gateway.
The SIP and SIPS URI schemes are described in RFC 3261, which defines the Session Initiation Protocol. The default Internet port address is :5060 for sip: and :5061 for sips: unless explicitly specified in the URI.
In theory, a telephone extension with a published SIP address may be configured to be callable for free from anywhere on the Internet.
An address like:
instructs a SIP client to make a (usually UDP) connection to voip-provider.example.net:5060 (which may be a gateway) and ask to be connected to the destination user at 1-999-123-4567. The gateway may require the user REGISTER using SIP before placing this call.
As a SIP address is text, much like an e-mail address, it may contain non-numeric characters. As the client may be a SIP phone or other device with just a numeric, telephone-like keypad, various schemes exist to associate an entirely numeric identifier to a publicly reachable SIP address. These include the iNum Initiative (which issues E.164-formatted numbers, where the corresponding SIP address is the number '@sip.inum.net'), SIP Broker-style services (which associate a numeric *prefix to the SIP domain name) and the e164.org and e164.arpa domain name servers (which convert numbers to addresses one-by-one as DNS reverse-lookups).
SIP addresses may be used directly in configuration files (for instance, in Asterisk (PBX) installations) or specified through the web interface of a voice-over-IP gateway provider (usually as a call forwarding destination or an address book entry). Systems which allow speed dial from a user's address book using a vertical service code may allow a short numeric code (like *75xx) to be translated to a pre-stored alphanumeric SIP address.
Spam and security issues
In theory, the owner of a SIP-capable telephone handset could publish a SIP address from which they could be freely and directly reached worldwide, in much the same way that SMTP e-mail recipients may be contacted from anywhere at almost no cost to the message sender. Anyone with a broadband connection could install a softphone (such as Ekiga) and call any of these SIP addresses for free.
In practice, various forms of network abuse are discouraging creation and publication of openly reachable SIP addresses:
- The spam (electronic) which has rendered SMTP the "spam mail transport protocol" could potentially make published sip: numbers unusable as the numbers are flooded with automatic announcement devices delivering pre-recorded advertisements. Unlike mailto:, sip: establishes a voice call which interrupts the human recipient in real time with a ringing telephone.
- SIP is vulnerable to Caller ID spoofing as the displayed name and number, much like the return address on e-mail, is supplied by the sender and not authenticated.
- Servers supporting inbound sip: connections are routinely targeted with unauthorised REGISTER attempts with random numeric usernames and passwords, a brute force attack intended to impersonate individual off-premise extensions on the local PBX
- Servers supporting inbound sip: connections are also targeted with unsolicited attempts to reach outside numbers, usually premium-rate destinations such as caller-pays-airtime mobile exchanges in foreign countries.
In the server logs, this looks like:
- [Oct 23 15:04:02] NOTICE: chan_sip.c:21614 handle_request_invite: Call from to extension '011972599950423' rejected because extension not found in context 'default'.
- [Oct 23 15:04:04] NOTICE: chan_sip.c:21614 handle_request_invite: Call from to extension '9011972599950423' rejected because extension not found in context 'default'.
- [Oct 23 15:04:07] NOTICE: chan_sip.c:21614 handle_request_invite: Call from to extension '7011972599950423' rejected because extension not found in context 'default'.
- [Oct 23 15:04:08] NOTICE: chan_sip.c:21614 handle_request_invite: Call from to extension '972599950423' rejected because extension not found in context 'default'.
an attempt to call a Palestinian mobile telephone (Israel, country code +972) by randomly trying 9- (a common code for an outside line from an office PBX), 011- (the overseas call prefix in the North American Numbering Plan) and 7- (on the off-chance a PBX is using it instead of 9- for an outside line). Security tools such as firewalls or fail2ban must therefore be deployed to prevent unauthorised outside call attempts; many VoIP providers also disable overseas calls to all but countries specifically requested as enabled by the subscriber.
sips: URI scheme
SIPS allows resources to specify that they should be reached securely. It mandates that each hop over which the request is forwarded up to the target domain must be secured with TLS. The last hop from the proxy of the target domain to the user agent has to be secured according to local policies.
SIPS protects against attackers which try to listen on the signaling link. It does not provide real end-to-end security, since encryption is only hop-by-hop and every single intermediate proxy has to be trusted.
- Session Initiation Protocol
- Federated VoIP and telephone number mapping
- Security Descriptions for SDP
- Mikey key exchange method
- ZRTP end-to-end key exchange proposal