Check an owned number before enabling agent voice
Verify number ownership, Telnyx routing, allowed peers and voice admission before planning an agent conversation.
Map messaging profiles, voice connections, permissions and asynchronous outcomes before sharing a number between workflows.
A stable phone number can be the public identity for both messages and conversations, but those services have separate configuration and operating behavior. Start by recording the number ID, owning project and capabilities rather than assuming every owned number supports every channel. An SMS acknowledgement tells you that a messaging request was accepted; it says nothing about voice routing, audio transport or an allowed conversation peer. This distinction matters when an onboarding screen says phone ready even though only one half of the intended workflow has actually been configured.
The Lupin operator configures TELNYX_MESSAGING_PROFILE_ID for SMS and TELNYX_CONNECTION_ID for voice, alongside the provider API key. Both depend on correctly routed callbacks, but their event types and resulting resource states differ. A messaging profile problem belongs in the SMS investigation; a voice connection or transfer failure belongs in the call investigation. Do not repair one by repeatedly buying numbers or modifying the other. Ask which provider operation failed and whether its configuration was present when that operation entered the durable journal.
SMS delivery and a human answering a call are asynchronous outcomes. A successful dial is not an answered conversation, and a successful send is not proof of delivery or reading. Store the returned call or message resource ID and refresh its state rather than using a shared success flag. For example, an appointment assistant can mark a text as submitted while its associated callback remains unanswered. Only provider-confirmed state should drive a decision to stop retries, release a reminder or tell a user that somebody was reached.
Persist a separate stable idempotency key for each approved send or dial, together with its channel and saved payload. Reuse that key only for the same action. If an SMS has an uncertain provider outcome, do not start a call automatically as a workaround; that changes the user-visible action and may incur another charge. A useful support record contains the owned number, channel, resource ID, operation ID and observed provider state. It lets an operator reconcile the failed branch while preserving the successful branch and the number’s public identity.
Suppose a reminder text is delivered but the proposed callback returns telnyx_not_configured. Keep the successful message record intact and investigate the voice connection configuration. Do not resend the text or purchase a replacement number. The incident contains one completed messaging outcome and one unadmitted voice request, requiring different recovery steps.
Reviewed against current checked-in Lupin routes, shared contracts and official provider references. No live calls, OAuth authorizations, app actions or purchases were performed.
Prepared with AI assistance by Lupin editorial. How we research and maintain these guides.