For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
Log inSign up
Support
GuidesReference
GuidesReference
    • Core
      • Overview
    • Agents
      • Overview
      • AgentBase
      • AgentServer
      • Configuration
      • ContextBuilder
      • DataMap
      • FunctionResult
      • Helper Functions & Utilities
      • LiveWire
      • PomBuilder
      • Prefabs
      • SkillBase
      • SkillManager
      • SkillRegistry
      • Skills
      • SwaigFunction
      • SwmlBuilder
      • SWMLService
        • addSection
        • addVerb
        • addVerbToSection
        • asRouter
        • extractSipUsername
        • getApp
        • getBasicAuthCredentials
        • getBuilder
        • getDocument
        • manualSetProxyUrl
        • onRequest
        • registerRoutingCallback
        • registerVerbHandler
        • renderDocument
        • renderSwml
        • resetDocument
        • run
        • serve
        • setOnRequestCallback
        • stop
    • RELAY
      • Overview
      • Actions
      • Call
      • Constants
      • Events
      • Message
      • RelayClient
      • RelayError
    • REST Client
      • Overview
      • Addresses
      • Calling
      • ChatResource
      • Compat
      • Datasphere
      • Fabric
      • ImportedNumbersResource
      • Logs
      • LookupResource
      • MFA
      • Number Groups
      • Phone Numbers
      • Project
      • PubSubResource
      • Queues
      • Recordings
      • Registry
      • RestClient
      • RestError
      • Short Codes
      • SIP Profile
      • Verified Callers
      • Video
LogoLogoSignalWire Docs
Log inSign up
Support
On this page
  • Parameters
  • Returns
  • Example
AgentsSWMLService

setOnRequestCallback

|View as Markdown|Open in Claude|
Was this page helpful?
Edit this page
Previous

stop

Next
Built with

Set a callback invoked per-request to dynamically build SWML. When set, the static SwmlBuilder is ignored and the callback’s returned SwmlBuilder is used instead.

Parameters

cb
OnRequestCallbackRequired

Callback function that receives (queryParams, bodyParams, headers) and returns a SwmlBuilder or Promise<SwmlBuilder>.

On GET requests, bodyParams is always an empty object ({}). The body is only parsed on POST requests.

Returns

this — Returns the service for method chaining.

Example

1import { SWMLService, SwmlBuilder } from '@signalwire/sdk';
2
3const service = new SWMLService({ name: 'dynamic-ivr' });
4
5service.setOnRequestCallback(async (queryParams, bodyParams, headers) => {
6 const builder = new SwmlBuilder();
7 builder.addVerb('answer', {});
8
9 if (queryParams.lang === 'es') {
10 builder.addVerb('play', { url: 'https://example.com/greeting-es.mp3' });
11 } else {
12 builder.addVerb('play', { url: 'https://example.com/greeting-en.mp3' });
13 }
14
15 builder.addVerb('hangup', {});
16 return builder;
17});
18
19await service.run();