Bulk Solutions / Livekit - Registration

Username and password trunks with LiveKit Cloud.

Bulk Solutions registration trunks use a username and password. LiveKit Cloud can use those credentials for outbound digest authentication. It cannot send a SIP REGISTER, so Bulk inbound registration trunks are not compatible with LiveKit Cloud. Use IP Based Authentication for inbound.

No SIP REGISTER Outbound digest auth supported sip.bulkvs.com UDP/TCP 5060

Does LiveKit support registration?

Official LiveKit telephony support lists SIP REGISTER as not supported. Digest authentication on INVITE is supported.

MethodBulk SolutionsLiveKit Cloud
SIP REGISTER every 25 seconds Required for inbound registration trunks Not supported
Username / password on outbound INVITE (digest) Supported on a registration trunk group Supported via authUsername / authPassword
IP-based authentication Supported Supported — see the IP authentication guide
Use IP authentication for inbound LiveKit. A Bulk registration trunk only delivers inbound calls to the IP that last registered. LiveKit Cloud never sends REGISTER, so those inbound calls have nowhere to land.

Inbound registration trunks

These Bulk steps work for a PBX or SBC that can register. They do not work when LiveKit is the only SIP endpoint.

  1. Create the Bulk registration trunk

    In the Bulk portal go to Interconnection → Trunk Group - Manage → SIP Registration Trunk Group → Create. Open the trunk group to view the username and password.

  2. Why LiveKit cannot complete this step

    Bulk expects the customer system to register to our SBCs every 25 seconds or less. LiveKit Cloud does not send REGISTER and is not a SIP registrar. Do not point a Bulk inbound registration trunk at YOURSUBDOMAIN.sip.livekit.cloud.

  3. What to do instead

    For LiveKit inbound, use an IP-authenticated host and trunk group and send the DID to your LiveKit SIP URI. Full steps are in the IP-based LiveKit guide.

    If you already have a PBX that registers to Bulk, keep that registration for inbound and hairpin or transfer the call into LiveKit from the PBX. LiveKit still needs an inbound trunk and dispatch rule on its side.

You do not register each DID separately. One Bulk registration trunk group can own many numbers. That model still requires something in front of LiveKit that can maintain the 25-second registration.

Outbound with registration credentials

Use the Bulk registration trunk username and password on a LiveKit outbound trunk. LiveKit sends an INVITE to sip.bulkvs.com and answers the digest challenge. No REGISTER is sent.

  1. Get Bulk credentials

    Go to Interconnection → Trunk Group - Manage and select the registration trunk group. Copy the username and password.

  2. Create a LiveKit outbound trunk

    In LiveKit Cloud go to Telephony → SIP trunks → Create new trunk → Outbound:

    {
      "name": "Bulk registration outbound",
      "address": "sip.bulkvs.com",
      "numbers": [
        "+13109060901"
      ],
      "authUsername": "YOUR_BULK_TRUNK_USERNAME",
      "authPassword": "YOUR_BULK_TRUNK_PASSWORD"
    }

    Replace the placeholders with the Bulk trunk credentials. Address must be sip.bulkvs.com, not a single SBC IP.

  3. Place a call

    {
      "sip_trunk_id": "ST_xxxxxxxxxxxx",
      "sip_call_to": "+13105551212",
      "room_name": "outbound-test",
      "participant_identity": "bulk-test",
      "wait_until_answered": true
    }

    Send destinations as 13109060901@sip.bulkvs.com or the 10-digit form. LiveKit will attach digest credentials from the trunk.

Shared SIP settings

ItemValue
SIP proxy / SRVsip.bulkvs.com
SIP port5060
Bulk signaling IPsx.x.x.x - find IPs in our portal -> interconnection guide -> IP Based Authentication
CodecsG.711u, G.729a, T.38 pass-through where available
DTMFRFC2833 and inband (G.711u)

Caller ID rules

Caller ID must be a number on the Bulk account in one of these formats or the call is rejected:

FormatExample
10 digits3109060901
11 digits13109060901
E.164+13109060901
If Bulk rejects outbound INVITEs until a registration is active, use the IP-authenticated outbound path instead and allow LiveKit Cloud source ranges on the Bulk host list.

E911

PurposeSend the call to
Emergency911@sip.bulkvs.com
Verify the 911 database address922@sip.bulkvs.com or 933@sip.bulkvs.com
Do not use 911 for connectivity tests. Use 922 or 933 first.

Test plan

Outbound digest

LiveKit → Bulk

  1. Create the LiveKit outbound trunk with Bulk username and password.
  2. Call a number you control with CreateSIPParticipant.
  3. If Bulk returns 407 and then the call connects, digest auth is working.
  4. Confirm caller ID is your Bulk DID.
Inbound

Use IP authentication

  1. Do not assign the DID to a registration trunk for LiveKit.
  2. Follow the IP authentication guide.
  3. Dial the DID and confirm an INVITE in LiveKit Telephony → Calls.

Troubleshooting

SymptomWhat to check
Inbound never arrives at LiveKitThe DID is on a registration trunk and nothing is registering. Move the DID to an IP trunk group pointed at the LiveKit SIP URI.
LiveKit or a PBX gets SIP 405 on REGISTERExpected. LiveKit does not accept or send REGISTER.
Outbound 407 looping or 403Wrong username/password on the LiveKit outbound trunk, or Bulk requires an active registration before digest INVITEs are accepted.
Outbound rejected caller IDFrom number is not 10-digit, 11-digit, or +1 E.164.
Asterisk note from Bulk guidedefaultexpiry=25 applies only to systems that actually REGISTER. It has no effect in LiveKit.

Need help?

Send the DID, LiveKit SIP URI, trunk group name, approximate call time, and Call-ID. We can pull the SIP ladder.

Bulk Solutions support
Phone: 855-906-0901 or 310-906-0901
Email: support@bulkvs.com

IP-based LiveKit guide: livekit-ipbased-howto.php
LiveKit SIP feature list: docs.livekit.io/telephony