dial_langchain.tools

Classes

GetBillingTool

Base for Dial LangChain tools.

GetCallInput

GetCallTool

Base for Dial LangChain tools.

ListCallsInput

ListCallsTool

Base for Dial LangChain tools.

ListMessagesInput

ListMessagesTool

Base for Dial LangChain tools.

ListNumbersTool

Base for Dial LangChain tools.

MakeCallInput

MakeCallTool

Base for Dial LangChain tools.

PurchaseNumberInput

PurchaseNumberTool

Base for Dial LangChain tools.

ReplyToMessageInput

ReplyToMessageTool

Base for Dial LangChain tools.

SendMessageInput

SendMessageTool

Base for Dial LangChain tools.

SetNumberPropertiesInput

SetNumberPropertiesTool

Base for Dial LangChain tools.

StartTypingTool

Base for Dial LangChain tools.

StopTypingTool

Base for Dial LangChain tools.

TypingInput

WaitForMessageInput

WaitForMessageTool

Base for Dial LangChain tools.

Module Contents

class dial_langchain.tools.GetBillingTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

description: str = "Get the account's billing status: credit balance, subscription (if any), each number's billing...
name: str = 'get_billing'
class dial_langchain.tools.GetCallInput

Bases: pydantic.BaseModel

call_id: str
class dial_langchain.tools.GetCallTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = 'Fetch a single call by its id, including its current status.'
name: str = 'get_call'
class dial_langchain.tools.ListCallsInput

Bases: pydantic.BaseModel

direction: str | None
number_id: str | None
class dial_langchain.tools.ListCallsTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = 'List recent inbound and outbound calls on the account.'
name: str = 'list_calls'
class dial_langchain.tools.ListMessagesInput

Bases: pydantic.BaseModel

direction: str | None
number_id: str | None
class dial_langchain.tools.ListMessagesTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = 'List recent inbound and outbound messages on the account.'
name: str = 'list_messages'
class dial_langchain.tools.ListNumbersTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

description: str = 'List all available Dial phone numbers on the account.'
name: str = 'list_numbers'
class dial_langchain.tools.MakeCallInput

Bases: pydantic.BaseModel

from_number: str | None
from_number_id: str | None
idempotency_key: str | None
language: str | None
max_call_duration_seconds: int | None
outbound_instruction: str
to: str
transfer_to: str | None
voice_gender: str | None
class dial_langchain.tools.MakeCallTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = 'Initiate an AI voice call to a phone number.'
name: str = 'make_call'
class dial_langchain.tools.PurchaseNumberInput

Bases: pydantic.BaseModel

area_code: str | None
inbound_instruction: str
inbound_language: str | None
inbound_voice_gender: str | None
include_imessage: bool
class dial_langchain.tools.PurchaseNumberTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = 'Provision (buy) a new Dial phone number. Billable.'
name: str = 'purchase_number'
class dial_langchain.tools.ReplyToMessageInput

Bases: pydantic.BaseModel

body: str | None
message_id: str
reaction: str | None
class dial_langchain.tools.ReplyToMessageTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = 'Reply in-thread or react to an existing message. The reply goes out from the Dial number the...
name: str = 'reply_to_message'
class dial_langchain.tools.SendMessageInput

Bases: pydantic.BaseModel

body: str
channel: str
force_audio_file: bool
from_number: str | None
from_number_id: str | None
media_urls: list[str]
to: str
class dial_langchain.tools.SendMessageTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = 'Send a message to a phone number, optionally with media attachments (MMS). On an iMessage...
name: str = 'send_message'
class dial_langchain.tools.SetNumberPropertiesInput

Bases: pydantic.BaseModel

avatar_url: str | None
first_name: str | None
inbound_instruction: str | None
inbound_language: str | None
inbound_voice_gender: str | None
last_name: str | None
max_call_duration_seconds: int | None
nickname: str | None
number_id: str
class dial_langchain.tools.SetNumberPropertiesTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = "Update a Dial phone number's properties: its inbound instruction (the system prompt its AI...
name: str = 'set_number_properties'
class dial_langchain.tools.StartTypingTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = "Show a typing indicator to the recipient, as if composing a message from your number. iMessage...
name: str = 'start_typing'
class dial_langchain.tools.StopTypingTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = "Clear a typing indicator previously shown with start_typing. Delivering a message or reaction...
name: str = 'stop_typing'
class dial_langchain.tools.TypingInput

Bases: pydantic.BaseModel

from_number: str
to_number: str
class dial_langchain.tools.WaitForMessageInput

Bases: pydantic.BaseModel

phone_number_id: str
timeout_seconds: int
class dial_langchain.tools.WaitForMessageTool

Bases: _DialTool

Base for Dial LangChain tools.

Holds a shared DialClient (passed in, not constructed per call) so every tool reuses one connection pool. These tools are async-only: LangChain/LangGraph agents invoke them via _arun in their event loop, so the shared client is safe. arbitrary_types_allowed lets the Pydantic-based BaseTool carry the non-Pydantic DialClient as a field.

args_schema: type[pydantic.BaseModel]
description: str = 'Wait for the next inbound SMS or WhatsApp message and return it. Blocks until a message arrives...
name: str = 'wait_for_message'