Skip to content

RingCentral ​

RingCentral is a communications app for calling, messaging, meetings, and team collaboration. Protocol Launcher allows you to generate RingCentral URL scheme links.

Usage ​

There are two ways to use this library:

  • On-Demand import from subpaths enables tree-shaking and keeps bundles small.
  • Full Import from the root package is convenient but includes all app modules.

Pick On-Demand for production builds; Full Import is fine for quick scripts or demos.

Select Installation Method

On-Demand
Recommended. Optimized for production.
Full Import
Convenient. Good for quick scripts.

Notes ​

This module follows RingCentral's official URI Scheme Reference. It exposes the documented rcmobile:// mobile links, rcapp://r/signin, tel: and sms: system URI forms, RingCentral web app links under https://app.ringcentral.com, the documented desktop /r/... paths, and RingCentral Video join links under https://v.ringcentral.com.

The desktopSms() helper only serializes content for the official number + content form. It does not create an undocumented content-only URL.

Mobile Call and SMS ​

Generate the documented RingCentral mobile call and SMS draft URIs. These can start communication flows, so the docs show generated examples without live preview links.

On-Demand
ts
import { call, sms } from 'protocol-launcher/ringcentral'

const callUrl = call({
  phoneNumber: '15551234567',
})

const smsUrl = sms({
  phoneNumber: '15551234567',
})

Mobile Screens ​

Open RingCentral mobile screens documented by the rcmobile:// catalog.

On-Demand
ts
import { conference, meeting, contacts, voicemail, history } from 'protocol-launcher/ringcentral'

const conferenceUrl = conference()
const meetingUrl = meeting()
const contactsUrl = contacts()
const voicemailUrl = voicemail()
const historyUrl = history()

Mobile Team Messaging ​

Open RingCentral mobile Team Messaging resources using the documented rcmobile://glip/... URIs.

On-Demand
ts
import { openTeam, openChat, openPost, openFile, openTask, openEvent } from 'protocol-launcher/ringcentral'

const teamUrl = openTeam({
  teamId: 'team-123',
})

const directMessageUrl = openChat({
  userId: 'user-123',
})

const postUrl = openPost({
  postId: 'post-123',
})

const fileUrl = openFile({
  fileId: 'file-123',
})

const taskUrl = openTask({
  taskId: 'task-123',
})

const eventUrl = openEvent({
  eventId: 'event-123',
})

Sign In ​

Launch the RingCentral app sign-in screen.

On-Demand
ts
import { signIn } from 'protocol-launcher/ringcentral'

const url = signIn()

System URI Forms ​

Generate the tel: and sms: URI forms listed in RingCentral's reference. These use the default phone or SMS app rather than the rcmobile:// scheme.

On-Demand
ts
import { tel, systemSms } from 'protocol-launcher/ringcentral'

const telUrl = tel({
  phoneNumber: '15551234567',
})

const defaultSmsUrl = systemSms({
  phoneNumber: '15551234567',
})

Generate RingCentral web app deep links under the documented production base URL.

On-Demand
ts
import { openWebTeamChat, openWebInvitation, openWebGroup, openWebMessageThread, openWebChat, openWebTeamMessage, openWebTask, openWebFile, openWebEvent } from 'protocol-launcher/ringcentral'

const teamChatUrl = openWebTeamChat({
  groupId: 'group-123',
})

const invitationUrl = openWebInvitation({
  groupId: 'group-123',
  email: 'member@example.com',
})

const groupUrl = openWebGroup({
  groupId: 'group-123',
})

const messageThreadUrl = openWebMessageThread({
  messageId: 'message-123',
})

const chatUrl = openWebChat({
  chatId: 'chat-123',
})

const teamMessageUrl = openWebTeamMessage({
  teamId: 'team-123',
  messageId: 'message-123',
})

const taskUrl = openWebTask({
  taskId: 'task-123',
})

const fileUrl = openWebFile({
  fileId: 'file-123',
})

const eventUrl = openWebEvent({
  eventId: 'event-123',
})

Desktop Paths ​

Generate the documented /r/... RingCentral desktop paths. RingCentral documents the production base URL separately as https://app.ringcentral.com/, but these helpers return the exact path forms shown in the catalog.

On-Demand
ts
import { desktopCall, desktopDialer, desktopSms, desktopFax } from 'protocol-launcher/ringcentral'

const desktopCallUrl = desktopCall({
  phoneNumber: '15551234567',
})

const dialerUrl = desktopDialer()

const prefilledDialerUrl = desktopDialer({
  phoneNumber: '15551234567',
})

const smsComposerUrl = desktopSms()

const prefilledSmsUrl = desktopSms({
  phoneNumber: '15551234567',
  content: 'Hello from Protocol Launcher',
})

const faxComposerUrl = desktopFax()

RingCentral Video ​

Open a RingCentral Video meeting, optionally with a prefilled password.

On-Demand
ts
import { joinVideo } from 'protocol-launcher/ringcentral'

const meetingUrl = joinVideo({
  meetingId: '123456789',
})

const meetingWithPasswordUrl = joinVideo({
  meetingId: '123456789',
  password: 'passcode',
})

Official Documentation ​