> ## Documentation Index
> Fetch the complete documentation index at: https://docs.telegent.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update Voice Route

> Update an existing voice route's configuration including SIP trunk settings, forwarding numbers, IVR menus, and workgroup assignments. Changes apply immediately to all numbers using this route.

**What this does:** Returns the updated route configuration. Only fields you send are changed. Changes apply immediately to all numbers using this route.

**Next steps:**
- Confirm the update — `GET /v1.0/voice/routes`
- View numbers using this route — `GET /v1.0/numbers/inventory`



## OpenAPI

````yaml /api-reference/openapi.json post /v1.0/voice/routes/update
openapi: 3.0.3
info:
  title: mPaaS Core APIs
  version: 1.0.8
  description: >-
    The Telegent mPaaS (Mobile Platform as a Service) API gives you full
    programmatic control over mobile phone numbers, messaging, voice routing,
    subscribers, and account management. Use these APIs to provision MVNO and
    IoT numbers, send and receive SMS/MMS, configure intelligent call routing,
    manage subscriber accounts, and apply AI Guardian controls. All requests
    require a Bearer token obtained from the Authentication endpoint. For
    support, visit https://support.telegent.com/support/home
  contact:
    name: Support
    email: support@telegent.com
  termsOfService: https://telegent.com/terms
  license:
    name: Use under LICX
    url: https://telegent.com/license
servers:
  - url: https://api.telegent.com/v1.0
security:
  - BearerAuth: []
tags:
  - name: OAuth2
  - name: AI Guardian
  - name: Accounts
  - name: Distributors
  - name: Message
  - name: Numbers
  - name: Voicemail
  - name: Packages
  - name: Products
  - name: Schedules
  - name: Services
  - name: Sims
  - name: Subscribers
  - name: Subscriptions
  - name: Voice
  - name: Workgroups
paths:
  /v1.0/voice/routes/update:
    post:
      tags:
        - Voice
      summary: Update Voice Route
      description: >-
        Update an existing voice route's configuration including SIP trunk
        settings, forwarding numbers, IVR menus, and workgroup assignments.
        Changes apply immediately to all numbers using this route.


        **What this does:** Returns the updated route configuration. Only fields
        you send are changed. Changes apply immediately to all numbers using
        this route.


        **Next steps:**

        - Confirm the update — `GET /v1.0/voice/routes`

        - View numbers using this route — `GET /v1.0/numbers/inventory`
      parameters: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required:
                - CallRouteId
              properties:
                CallRouteId:
                  type: string
                  description: Call Route ID to update (CRID) - Required
                  example: CRID-509de94f-79cc-429b-a317-2102654dabbb
                RouteName:
                  type: string
                  description: Friendly name for voice route
                  example: Main SIP Trunk
                RouteType:
                  type: string
                  enum:
                    - Trunk
                    - URL
                    - Forward
                  description: Type of voice routing
                  example: Trunk
                VoiceUrl:
                  type: string
                  format: uri
                  example: https://domain.com
                VoiceUrlMethod:
                  type: string
                  enum:
                    - GET
                    - POST
                  example: GET
                TrunkIp1:
                  type: string
                  example: 20.87.87.87
                TrunkIp2:
                  type: string
                  example: 20.87.87.86
                TrunkPort1:
                  type: string
                  example: '5061'
                TrunkPort2:
                  type: string
                  example: '5060'
                TrunkTransport1:
                  type: string
                  enum:
                    - UDP
                    - TCP
                    - TLS
                  example: UDP
                TrunkTransport2:
                  type: string
                  enum:
                    - UDP
                    - TCP
                    - TLS
                  example: TCP
                TrunkEnabled1:
                  type: boolean
                  example: true
                TrunkEnabled2:
                  type: boolean
                  example: false
                RouteEnabled:
                  type: boolean
                  example: true
                VoiceAuthenticationType:
                  type: string
                  enum:
                    - Basic
                    - Bearer
                  description: Authentication type for voice URL
                  example: Basic
                VoiceUsername:
                  type: string
                  description: Username for voice URL authentication
                  example: admin
                VoicePasswordToken:
                  type: string
                  description: Password or bearer token for voice URL authentication
                  example: passwordORbearerToken
                CallbackVoiceUrl:
                  type: string
                  format: uri
                  description: Callback URL for voice events
                  example: https://apiendpoint.com
                CallbackVoiceUrlMethod:
                  type: string
                  enum:
                    - GET
                    - POST
                  description: HTTP method for callback voice URL
                  example: POST
                TrunkUri1:
                  type: string
                  format: uri
                  description: URI for primary SIP trunk
                  example: https://pstn.joonto.com
                TrunkUri2:
                  type: string
                  format: uri
                  description: URI for secondary SIP trunk
                  example: https://pstn2.joonto.com
                Trunk1Priortiy:
                  type: integer
                  description: Priority for primary trunk (lower = higher priority)
                  example: 10
                Trunk1Weight:
                  type: integer
                  description: Weight for primary trunk load balancing
                  example: 10
                Trunk2Priortiy:
                  type: integer
                  description: Priority for secondary trunk (lower = higher priority)
                  example: 20
                Trunk2Weight:
                  type: integer
                  description: Weight for secondary trunk load balancing
                  example: 20
                HeaderManipulation:
                  type: string
                  description: Header manipulation rule identifier
                  example: HMI8802029
                EnableSipRefer:
                  type: boolean
                  description: Enable SIP REFER for call transfers
                  example: true
                TransferCallerId:
                  type: string
                  enum:
                    - Transferee
                    - Transferor
                    - Transferee/Transferor
                  description: Caller ID to use for transferred calls
                  example: Transferee/Transferor
                SymmetricRtp:
                  type: boolean
                  description: Enable symmetric RTP for NAT traversal
                  example: true
                EnableTrpSecureTrunk:
                  type: boolean
                  description: Enable TLS/SRTP for secure trunk communication
                  example: true
                EnablePstnTransfer:
                  type: boolean
                  description: Enable PSTN call transfers
                  example: true
                IpWhitelist:
                  type: array
                  description: List of whitelisted IP addresses
                  items:
                    type: object
                    properties:
                      IpAddress:
                        type: string
                        description: IP address to whitelist
                        example: 20.20.10.10
                  example:
                    - IpAddress: 20.20.10.10
                    - IpAddress: 20.20.10.20
                CnamLookup:
                  type: boolean
                  description: Enable CNAM lookup for caller ID name
                  example: true
                TerminationUriSubdomain:
                  type: string
                  description: Subdomain for SIP termination URI
                  example: client
                EnableCallStreaming:
                  type: boolean
                  description: Enable real-time call audio streaming
                  example: true
                WssUri:
                  type: string
                  format: uri
                  description: WebSocket Secure URI for call streaming
                  example: wss://192.67.88.2
                IntelligentRouteEnabled:
                  type: boolean
                  description: Enable intelligent routing features
                  example: true
      responses:
        '200':
          description: Update Voice Route
          content:
            application/json:
              schema:
                type: object
              examples:
                example:
                  value:
                    CallRouteId: CRID-509de94f-79cc-429b-a317-2102654dabbb
                    AccountId: AID-ab12345-2725-45a1-bd5e-526ed19799xx
                    RouteName: Main SIP Trunk
                    RouteType: Trunk
                    VoiceUrl: https://domain.com
                    VoiceUrlMethod: GET
                    TrunkIp1: 20.87.87.87
                    TrunkIp2: 20.87.87.86
                    TrunkPort1: '5061'
                    TrunkPort2: '5060'
                    TrunkTransport1: UDP
                    TrunkTransport2: TCP
                    TrunkUri1: https://pstn.joonto.com
                    TrunkUri2: https://pstn2.joonto.com
                    TrunkEnabled1: true
                    TrunkEnabled2: false
                    Trunk1Priortiy: 10
                    Trunk1Weight: 10
                    Trunk2Priortiy: 20
                    Trunk2Weight: 20
                    HeaderManipulation: HMI8802029
                    EnableSipRefer: true
                    TransferCallerId: Transferee/Transferor
                    SymmetricRtp: true
                    EnableTrpSecureTrunk: true
                    EnablePstnTransfer: true
                    CnamLookup: true
                    TerminationUriSubdomain: client
                    EnableCallStreaming: true
                    WssUri: wss://192.67.88.2
                    IpWhiteList: []
        '400':
          description: Bad Request
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/BadRequest_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequest_Result'
              examples:
                example:
                  value:
                    StatusCode: 400
                    Message: >-
                      Bad request: one or more required fields are missing or
                      contain an invalid value.
            text/json:
              schema:
                $ref: '#/components/schemas/BadRequest_Result'
        '401':
          description: Unauthorized
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Unauthorized_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/Unauthorized_Result'
              examples:
                example:
                  value:
                    StatusCode: 401
                    Message: >-
                      Unauthorized: Bearer token is missing, expired, or
                      invalid. Re-authenticate via POST /v1.0/oauth2/tokens.
            text/json:
              schema:
                $ref: '#/components/schemas/Unauthorized_Result'
        '403':
          description: Forbidden
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/Forbidden_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/Forbidden_Result'
              examples:
                example:
                  value:
                    StatusCode: 403
                    Message: >-
                      Forbidden: your token does not have permission to access
                      this resource. Check the ApiEndpoint scope.
            text/json:
              schema:
                $ref: '#/components/schemas/Forbidden_Result'
        '404':
          description: Not Found
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/NotFound_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/NotFound_Result'
              examples:
                example:
                  value:
                    StatusCode: 404
                    Message: >-
                      Not found: the requested resource does not exist or
                      belongs to a different account.
            text/json:
              schema:
                $ref: '#/components/schemas/NotFound_Result'
        '405':
          description: Method Not Allowed
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed_Result'
              examples:
                example:
                  value:
                    StatusCode: 405
                    Message: >-
                      Method not allowed: verify the HTTP method required for
                      this endpoint.
            text/json:
              schema:
                $ref: '#/components/schemas/MethodNotAllowed_Result'
        '408':
          description: Request Timeout
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/RequestTimeout_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/RequestTimeout_Result'
              examples:
                example:
                  value:
                    StatusCode: 408
                    Message: >-
                      Request timeout: the server did not receive a complete
                      request within the allowed time. Retry with exponential
                      backoff.
            text/json:
              schema:
                $ref: '#/components/schemas/RequestTimeout_Result'
        '429':
          description: Too Many Requests
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/TooManyRequests_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests_Result'
              examples:
                example:
                  value:
                    StatusCode: 429
                    Message: >-
                      Too many requests: rate limit exceeded. Slow your request
                      cadence and retry after a short delay.
            text/json:
              schema:
                $ref: '#/components/schemas/TooManyRequests_Result'
        '500':
          description: Server Error
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/InternalServerError_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError_Result'
              examples:
                example:
                  value:
                    StatusCode: 500
                    Message: >-
                      Internal server error: an unexpected error occurred. If
                      the problem persists contact support@telegent.com.
            text/json:
              schema:
                $ref: '#/components/schemas/InternalServerError_Result'
        '503':
          description: Service Unavailable
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ServiceUnavailable_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailable_Result'
              examples:
                example:
                  value:
                    StatusCode: 503
                    Message: >-
                      Service unavailable: the API is temporarily unavailable.
                      Retry after a short delay.
            text/json:
              schema:
                $ref: '#/components/schemas/ServiceUnavailable_Result'
        '504':
          description: Gateway Timeout
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/GatewayTimeout_Result'
            application/json:
              schema:
                $ref: '#/components/schemas/GatewayTimeout_Result'
              examples:
                example:
                  value:
                    StatusCode: 504
                    Message: >-
                      Gateway timeout: an upstream service did not respond in
                      time. Retry with exponential backoff.
            text/json:
              schema:
                $ref: '#/components/schemas/GatewayTimeout_Result'
      x-codeSamples:
        - lang: JSON
          source: |-
            {
              "CallRouteId": "CRID-509de94f-79cc-429b-a317-2102654dabbb",
              "RouteName": "Main SIP Trunk",
              "RouteType": "Trunk",
              "VoiceUrl": "https://domain.com",
              "VoiceUrlMethod": "GET",
              "VoiceAuthenticationType": "Basic",
              "VoiceUsername": "admin",
              "VoicePasswordToken": "passwordORbearerToken",
              "CallbackVoiceUrl": "https://apiendpoint.com",
              "CallbackVoiceUrlMethod": "POST",
              "TrunkIp1": "20.87.87.87",
              "TrunkIp2": "20.87.87.86",
              "TrunkPort1": "5061",
              "TrunkPort2": "5060",
              "TrunkTransport1": "UDP",
              "TrunkTransport2": "TCP",
              "TrunkUri1": "https://pstn.joonto.com",
              "TrunkUri2": "https://pstn2.joonto.com",
              "TrunkEnabled1": true,
              "TrunkEnabled2": false,
              "Trunk1Priortiy": 10,
              "Trunk1Weight": 10,
              "Trunk2Priortiy": 20,
              "Trunk2Weight": 20,
              "HeaderManipulation": "HMI8802029",
              "EnableSipRefer": true,
              "TransferCallerId": "Transferee/Transferor",
              "SymmetricRtp": true,
              "EnableTrpSecureTrunk": true,
              "EnablePstnTransfer": true,
              "IpWhitelist": [{"IpAddress": "20.20.10.10"}, {"IpAddress": "20.20.10.20"}],
              "CnamLookup": true,
              "TerminationUriSubdomain": "client",
              "EnableCallStreaming": true,
              "WssUri": "wss://192.67.88.2",
              "IntelligentRouteEnabled": true,
              "RouteEnabled": true,
              "AccountId": "AID-ab12345-2725-45a1-bd5e-526ed19799xx"
            }
        - lang: cURL
          source: |-
            curl -X POST https://api.telegent.com/v1.0/voice/routes/update \
              -H 'Authorization: Bearer YOUR_TOKEN' \
              -H 'Content-Type: application/json' \
              -d '{
                "CallRouteId": "CRID-509de94f-79cc-429b-a317-2102654dabbb",
                "RouteName": "Main SIP Trunk",
                "RouteType": "Trunk",
                "VoiceUrl": "https://domain.com",
                "VoiceUrlMethod": "GET",
                "TrunkIp1": "20.87.87.87",
                "TrunkPort1": "5061",
                "RouteEnabled": true,
                "AccountId": "AID-ab12345-2725-45a1-bd5e-526ed19799xx"
              }'
components:
  schemas:
    BadRequest_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    Unauthorized_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    Forbidden_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    NotFound_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    MethodNotAllowed_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    RequestTimeout_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    TooManyRequests_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    InternalServerError_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    ServiceUnavailable_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false
    GatewayTimeout_Result:
      required:
        - StatusCode
      type: object
      properties:
        StatusCode:
          type: integer
          format: int32
        Message:
          type: string
          nullable: true
      additionalProperties: false

````