← Back to CLI Utilities
CLI Utilities by @mackhendricks

dsiprouter-skill

Call the dSIPRouter REST API using the Postman

0
Source Code

dSIPRouter API skill

This skill is generated from the Postman collection and provides:

  • a safe curl calling convention
  • a bin/dsiprouter.sh helper CLI with subcommands for the collection’s requests
  • example payloads (where present in Postman)

Required environment

  • DSIP_ADDR β€” hostname/IP of your dSIPRouter node (no scheme)
  • DSIP_TOKEN β€” API bearer token
  • Optional: DSIP_INSECURE=1 to allow self-signed TLS (adds -k)

Base URL:

  • https://$DSIP_ADDR:5000/api/v1

Auth header:

  • Authorization: Bearer $DSIP_TOKEN

Safe calling convention

dsip_api() {
  local method="$1"; shift
  local path="$1"; shift

  local insecure=()
  if [ "${DSIP_INSECURE:-}" = "1" ]; then insecure=(-k); fi

  curl "${insecure[@]}" --silent --show-error --fail-with-body \
    --connect-timeout 5 --max-time 30 \
    -H "Authorization: Bearer ${DSIP_TOKEN}" \
    -H "Content-Type: application/json" \
    -X "${method}" "https://${DSIP_ADDR}:5000${path}" \
    "$@"
}

Preferred usage: the bundled helper CLI

# list subcommands
dsiprouter.sh help

# list endpoint groups
dsiprouter.sh endpointgroups:list | jq .

# create inbound mapping with your own JSON payload
dsiprouter.sh inboundmapping:create '{"did":"13132222223","servers":["#22"],"name":"Taste Pizzabar"}' | jq .

# or send the Postman sample body
dsiprouter.sh inboundmapping:create --sample | jq .

Kamailio

dsiprouter.sh kamailio:stats | jq .
dsiprouter.sh kamailio:reload | jq .

Endpoint catalog (from Postman)

endpointgroups

  • endpointgroups:list β†’ GET /api/v1/endpointgroups
  • endpointgroups:get β†’ GET /api/v1/endpointgroups/9 β€” Get a single endpointgroup
  • endpointgroups:create β†’ POST /api/v1/endpointgroups β€” Create an endpointgroup
  • endpointgroups:create_1 β†’ POST /api/v1/endpointgroups β€” Create an endpointgroup
  • endpointgroups:create_2 β†’ POST /api/v1/endpointgroups β€” Create an endpointgroup
  • endpointgroups:create_3 β†’ POST /api/v1/endpointgroups β€” Create an endpointgroup
  • endpointgroups:delete β†’ DELETE /api/v1/endpointgroups/53 β€” Delete endpointgroup
  • endpointgroups:update β†’ PUT /api/v1/endpointgroups/34 β€” Update an endpointgroup

kamailio

  • kamailio:reload β†’ POST /api/v1/reload/kamailio β€” Trigger a reload of Kamailio. This is needed after changes are made
  • kamailio:list β†’ GET /api/v1/kamailio/stats β€” Obtain call statistics

inboundmapping

  • inboundmapping:list β†’ GET /api/v1/inboundmapping β€” Get a list of inboundmappings
  • inboundmapping:create β†’ POST /api/v1/inboundmapping β€” Create new inboundmapping
  • inboundmapping:update β†’ PUT /api/v1/inboundmapping?did=13132222223 β€” Create new inboundmapping
  • inboundmapping:delete β†’ DELETE /api/v1/inboundmapping?did=13132222223 β€” Create new inboundmapping

leases

  • leases:list β†’ GET /api/v1/lease/[email protected]&ttl=5m β€” Get a single endpointgroup
  • leases:list_1 β†’ GET /api/v1/lease/[email protected]&ttl=1m&type=ip&auth_ip=172.145.24.2 β€” Get a single endpointgroup
  • leases:revoke β†’ DELETE /api/v1/lease/endpoint/34/revoke β€” Get a single endpointgroup

carriergroups

  • carriergroups:list β†’ GET /api/v1/carriergroups
  • carriergroups:create β†’ POST /api/v1/carriergroups

auth

  • auth:create β†’ POST /api/v1/auth/user
  • auth:update β†’ PUT /api/v1/auth/user/2
  • auth:delete β†’ DELETE /api/v1/auth/user/2
  • auth:list β†’ GET /api/v1/auth/user
  • auth:login β†’ POST /api/v1/auth/login

cdr

  • cdr:get β†’ GET /api/v1/cdrs/endpointgroups/17?type=csv&dtfilter=2022-09-14&email=True
  • cdr:get_1 β†’ GET /api/v1/cdrs/endpoint/54

Included files

  • bin/dsiprouter.sh