Import numbers
GET /v1/telephony/accounts/{account_id}/remote-numbers lists what the account
owns at the carrier, read live (so it also proves the credential works).
already_imported marks numbers Talqing already has. Then import the ones you
want:
string
required
The carrier account that owns the numbers.
string[]
required
Numbers to import. Normalized to E.164 and de-duplicated.
boolean
default:"true"
Provision each number as it is imported.
false writes the rows only; provision
them later.
If listing the carrier’s numbers fails, the whole request fails with
could not list numbers from <carrier> — usually a dead credential.
Region
Every number is hosted in one region,us (United States) or in (India), and
all its calls — inbound and outbound — run there. region is on every number.
+91numbers must bein. Indian regulation requires their calls to terminate in India;usis refused with422.- Every other number defaults to
us; chooseinif most of its callers are in India. - A region this deployment does not run is refused with
503.GET /v1/cataloglists the available ones underregions.
PATCH /v1/telephony/phone-numbers/{number_id} with
{"region": "in"}. On an active number the new region’s routing is built and
the carrier re-pointed before the old routing is removed; a move that fails
part-way returns 400 could not move … and the number keeps answering in its old
region — send it again. The account must be ready.
Assign an agent
POST /v1/telephony/phone-numbers/{number_id}/assign with agent_id makes the
number answer inbound calls:
- the number is
activeandcan_inboundis true (Exotel: the region’s console step is confirmed); - the carrier account is
ready; - the agent is published and its published version is a
voiceagent (videoandtextare refused); - the agent declares no variable that is
requiredwith nodefault— an inbound call has no request to supply it. See variables.
POST /v1/telephony/phone-numbers/{number_id}/unassign removes the agent. The
number stays provisioned and can still dial out; readiness becomes
needs_agent.
Readiness
readiness is the one field to show a person. It is computed on every read from
status, can_inbound and the routing.
status is one of pending, provisioning, active, error, disabled.
Provisioning
POST /v1/telephony/phone-numbers/{number_id}/provision wires the number up at
the carrier and in Talqing (pending → provisioning → active, or error with
status_message). Import already does this; call it to retry an error number,
finish one imported with provision: false, re-enable a disabled one, or
restore routing after its carrier account was re-enabled. It provisions a
connected account first; a disabled account is refused.
Per-number settings
PATCH /v1/telephony/phone-numbers/{number_id}:
Disable and re-enable
{"status": "disabled"} takes a number out of service. Talqing unmaps it at the
carrier, then removes its routing, then flips the row, so calls stop before the
dashboard shows it off. The assigned agent (inbound_agent_id) is kept.
Re-enabling takes two calls:
disabled, error or pending number accepts status: "pending"
(otherwise 400). A 409 means another live row in your workspace already
holds that E.164. Provisioning rebuilds the routing, including the kept agent.
Listing numbers
GET /v1/telephony/phone-numbers, optionally filtered by account_id;
limit (default 200) and offset paginate. GET .../phone-numbers/{number_id}
reads one.
Next
Inbound calls
What the agent knows when the phone rings, and what is refused.
Outbound calls
Dial out of a number you have imported.