> Fetch clean Markdown by appending `.md` to any page URL under https://signalwire.com/docs or requesting it with the HTTP header `Accept: text/markdown`. The root index at https://signalwire.com/docs/llms.txt lists the available documentation indexes. # aiMessage > Send a message to an active AI session on a call via REST. Send a message to an active AI session on a call. This injects instructions or context into the AI agent's conversation without the caller hearing the message directly. ## **Request** ### Schema (`calling.ai_message`) ```yaml components: schemas: uuid: type: string format: uuid description: Universal Unique Identifier. title: uuid CallingCallRequestDiscriminatorMappingCallingAiMessageParamsRole: type: string enum: - system - user - assistant description: >- The role that the message is from. By convention pair with `message_text` (the validator itself does not enforce this). - `system`: Inject instructions or context that modify the AI's behavior mid-conversation without the caller hearing it. - `user`: Inject a message as if the caller said it. The AI will respond as if the caller spoke it. - `assistant`: Inject a message as if the AI said it. Appears as an AI response in the conversation history. title: CallingCallRequestDiscriminatorMappingCallingAiMessageParamsRole Calling.CallAIMessageResetParams: type: object properties: full_reset: type: boolean description: >- Whether to perform a full reset of the AI conversation, clearing all history. user_prompt: type: string description: A new user prompt to set after resetting the conversation. system_prompt: type: string description: A new system prompt to set after resetting the conversation. description: Parameters for resetting the AI conversation state. title: Calling.CallAIMessageResetParams CallingCallRequestDiscriminatorMappingCallingAiMessageParamsGlobalData: type: object properties: {} description: Arbitrary JSON data to merge into the AI session's global data store. title: CallingCallRequestDiscriminatorMappingCallingAiMessageParamsGlobalData CallingCallRequestDiscriminatorMappingCallingAiMessageParams: type: object properties: role: $ref: >- #/components/schemas/CallingCallRequestDiscriminatorMappingCallingAiMessageParamsRole description: >- The role that the message is from. By convention pair with `message_text` (the validator itself does not enforce this). - `system`: Inject instructions or context that modify the AI's behavior mid-conversation without the caller hearing it. - `user`: Inject a message as if the caller said it. The AI will respond as if the caller spoke it. - `assistant`: Inject a message as if the AI said it. Appears as an AI response in the conversation history. message_text: type: string description: >- The text content sent to the AI. Typically required unless `reset` is provided. reset: $ref: '#/components/schemas/Calling.CallAIMessageResetParams' description: Parameters for resetting the AI conversation state. global_data: $ref: >- #/components/schemas/CallingCallRequestDiscriminatorMappingCallingAiMessageParamsGlobalData description: >- Arbitrary JSON data to merge into the AI session's global data store. description: An object of parameters that will be utilized by the active command. title: CallingCallRequestDiscriminatorMappingCallingAiMessageParams Calling.CallAIMessageRequest: type: object properties: id: $ref: '#/components/schemas/uuid' description: The unique identifying ID of an existing call. params: $ref: >- #/components/schemas/CallingCallRequestDiscriminatorMappingCallingAiMessageParams description: An object of parameters that will be utilized by the active command. required: - id - params title: Calling.CallAIMessageRequest ``` ## **Response** ### Schema (`Calling.CallResponse`) ```yaml components: schemas: uuid: type: string format: uuid description: Universal Unique Identifier. title: uuid Calling.CallDirection: type: string enum: - inbound - outbound - outbound-api description: The direction of the call. title: Calling.CallDirection CallingCallLegSource: type: string enum: - realtime_api description: Source of this call. title: CallingCallLegSource Calling.ChargeDetails: type: object properties: description: type: string description: Description for this charge. charge: type: number format: double description: Charged amount. required: - description - charge description: One itemized charge applied to the call. title: Calling.ChargeDetails Calling.CallResponseStatus: type: string enum: - queued - initiated - created - ringing - answered - ending - ended - failed - canceled - completed description: The status of the call throughout its lifecycle. title: Calling.CallResponseStatus CallingCallLegType0: type: string enum: - relay_pstn_call title: CallingCallLegType0 CallingCallLegType1: type: string enum: - relay_sip_call title: CallingCallLegType1 CallingCallLegType2: type: string enum: - relay_webrtc_call title: CallingCallLegType2 CallingCallLegType: oneOf: - $ref: '#/components/schemas/CallingCallLegType0' - $ref: '#/components/schemas/CallingCallLegType1' - $ref: '#/components/schemas/CallingCallLegType2' description: Type of this call. title: CallingCallLegType Calling.CallLeg: type: object properties: id: $ref: '#/components/schemas/uuid' description: >- The unique identifier of the call on SignalWire. This can be used to update the call programmatically. from: type: string description: The origin number or address. to: type: string description: The destination number or address. direction: $ref: '#/components/schemas/Calling.CallDirection' description: The direction of the call. source: $ref: '#/components/schemas/CallingCallLegSource' description: Source of this call. url: type: - string - 'null' description: The URL associated with this call. charge: type: number format: double description: Total charge for this call. created_at: type: string format: date-time description: The date and time when the call was created. charge_details: type: array items: $ref: '#/components/schemas/Calling.ChargeDetails' description: Details on charges associated with this call. status: oneOf: - $ref: '#/components/schemas/Calling.CallResponseStatus' - type: 'null' description: The status of the call. duration: type: - integer - 'null' description: The duration of the call in seconds. duration_ms: type: - integer - 'null' description: The duration of the call in milliseconds. billing_ms: type: - integer - 'null' description: The billable duration of the call in milliseconds. type: $ref: '#/components/schemas/CallingCallLegType' description: Type of this call. parent_id: oneOf: - $ref: '#/components/schemas/uuid' - type: 'null' description: The parent call ID if this is a child call. required: - id - from - to - direction - source - url - charge - created_at - charge_details - status - duration - duration_ms - billing_ms - type - parent_id description: Returned when the call is a standard PSTN, SIP, or WebRTC call. title: Calling.CallLeg CallingFabricDeviceLegSource: type: string enum: - realtime_api description: Source of this call. title: CallingFabricDeviceLegSource CallingFabricDeviceLegType: type: string enum: - fabric_subscriber_device_leg description: Type of this call. title: CallingFabricDeviceLegType Calling.FabricDeviceLeg: type: object properties: id: $ref: '#/components/schemas/uuid' description: >- The unique identifier of the call on SignalWire. This can be used to update the call programmatically. from: type: string description: The origin number or address. to: type: string description: The destination number or address. direction: $ref: '#/components/schemas/Calling.CallDirection' description: The direction of the call. source: $ref: '#/components/schemas/CallingFabricDeviceLegSource' description: Source of this call. url: type: - string - 'null' description: The URL associated with this call. charge: type: number format: double description: Total charge for this call. created_at: type: string format: date-time description: The date and time when the call was created. charge_details: type: array items: $ref: '#/components/schemas/Calling.ChargeDetails' description: Details on charges associated with this call. status: description: >- The status of the call. Always null for Fabric subscriber device legs. type: $ref: '#/components/schemas/CallingFabricDeviceLegType' description: Type of this call. required: - id - from - to - direction - source - url - charge - created_at - charge_details - status - type description: >- Returned when the call is a Fabric subscriber device leg. The `status` field is always null for this type. title: Calling.FabricDeviceLeg Calling.CallResponse: oneOf: - $ref: '#/components/schemas/Calling.CallLeg' - $ref: '#/components/schemas/Calling.FabricDeviceLeg' title: Calling.CallResponse ``` ## **Example** ```typescript {10} import { RestClient } from "@signalwire/sdk"; const client = new RestClient({ project: "your-project-id", token: "your-api-token", host: "your-space.signalwire.com" }); // Inject a system instruction into the AI session await client.calling.aiMessage("call-id-xxx", { message_text: "The caller's account has been verified. You can proceed with the transfer.", role: "system", }); ``` > Send a message to an active AI session on a call via REST.