Create SIP Extension
curl --request POST \
--url https://api.voxo.co/v2/admin/extensions/sip/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tenantId": 123,
"number": "<string>",
"name": "<string>",
"emergencyLocationId": 123,
"callLimit": 123
}
'import requests
url = "https://api.voxo.co/v2/admin/extensions/sip/"
payload = {
"tenantId": 123,
"number": "<string>",
"name": "<string>",
"emergencyLocationId": 123,
"callLimit": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tenantId: 123,
number: '<string>',
name: '<string>',
emergencyLocationId: 123,
callLimit: 123
})
};
fetch('https://api.voxo.co/v2/admin/extensions/sip/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voxo.co/v2/admin/extensions/sip/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'tenantId' => 123,
'number' => '<string>',
'name' => '<string>',
'emergencyLocationId' => 123,
'callLimit' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.voxo.co/v2/admin/extensions/sip/"
payload := strings.NewReader("{\n \"tenantId\": 123,\n \"number\": \"<string>\",\n \"name\": \"<string>\",\n \"emergencyLocationId\": 123,\n \"callLimit\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.voxo.co/v2/admin/extensions/sip/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tenantId\": 123,\n \"number\": \"<string>\",\n \"name\": \"<string>\",\n \"emergencyLocationId\": 123,\n \"callLimit\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voxo.co/v2/admin/extensions/sip/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tenantId\": 123,\n \"number\": \"<string>\",\n \"name\": \"<string>\",\n \"emergencyLocationId\": 123,\n \"callLimit\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"tenant": {
"id": 123,
"name": "<string>"
},
"name": "<string>",
"number": "<string>",
"email": "<string>",
"peerName": "<string>",
"callerIdNumber": "<string>",
"recording": "<string>",
"trunk": "<string>",
"trunkHost": "<string>",
"trunkCallerIdSource": "<string>",
"trunkEmergencyCallerIdOverride": "<string>",
"callLimit": 123,
"dialTimeout": 123,
"routingProfileId": 123,
"musicOnHoldId": 123,
"emergencyLocationId": 123,
"outboundDialPrefix": "<string>",
"includeInDialByName": "<string>",
"includeInPhonebook": "<string>",
"emergencyLocationComment": "<string>",
"branch": {
"id": 123,
"name": "<string>"
},
"emergencyLocation": {
"id": 123,
"address": "<unknown>"
},
"musicOnHold": {
"id": 123,
"name": "<string>"
},
"routingProfile": {
"id": 123,
"name": "<string>",
"type": "<string>"
}
}Extensions
Create SIP Extension
Create a SIP (trunk) extension
POST
/
v2
/
admin
/
extensions
/
sip
/
Create SIP Extension
curl --request POST \
--url https://api.voxo.co/v2/admin/extensions/sip/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"tenantId": 123,
"number": "<string>",
"name": "<string>",
"emergencyLocationId": 123,
"callLimit": 123
}
'import requests
url = "https://api.voxo.co/v2/admin/extensions/sip/"
payload = {
"tenantId": 123,
"number": "<string>",
"name": "<string>",
"emergencyLocationId": 123,
"callLimit": 123
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
tenantId: 123,
number: '<string>',
name: '<string>',
emergencyLocationId: 123,
callLimit: 123
})
};
fetch('https://api.voxo.co/v2/admin/extensions/sip/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.voxo.co/v2/admin/extensions/sip/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'tenantId' => 123,
'number' => '<string>',
'name' => '<string>',
'emergencyLocationId' => 123,
'callLimit' => 123
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.voxo.co/v2/admin/extensions/sip/"
payload := strings.NewReader("{\n \"tenantId\": 123,\n \"number\": \"<string>\",\n \"name\": \"<string>\",\n \"emergencyLocationId\": 123,\n \"callLimit\": 123\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.voxo.co/v2/admin/extensions/sip/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"tenantId\": 123,\n \"number\": \"<string>\",\n \"name\": \"<string>\",\n \"emergencyLocationId\": 123,\n \"callLimit\": 123\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.voxo.co/v2/admin/extensions/sip/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"tenantId\": 123,\n \"number\": \"<string>\",\n \"name\": \"<string>\",\n \"emergencyLocationId\": 123,\n \"callLimit\": 123\n}"
response = http.request(request)
puts response.read_body{
"id": 123,
"tenant": {
"id": 123,
"name": "<string>"
},
"name": "<string>",
"number": "<string>",
"email": "<string>",
"peerName": "<string>",
"callerIdNumber": "<string>",
"recording": "<string>",
"trunk": "<string>",
"trunkHost": "<string>",
"trunkCallerIdSource": "<string>",
"trunkEmergencyCallerIdOverride": "<string>",
"callLimit": 123,
"dialTimeout": 123,
"routingProfileId": 123,
"musicOnHoldId": 123,
"emergencyLocationId": 123,
"outboundDialPrefix": "<string>",
"includeInDialByName": "<string>",
"includeInPhonebook": "<string>",
"emergencyLocationComment": "<string>",
"branch": {
"id": 123,
"name": "<string>"
},
"emergencyLocation": {
"id": 123,
"address": "<unknown>"
},
"musicOnHold": {
"id": 123,
"name": "<string>"
},
"routingProfile": {
"id": 123,
"name": "<string>",
"type": "<string>"
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
Required string length:
2 - 10Pattern:
^\d+$Minimum string length:
3Available options:
NORMAL, IP Available options:
PAI, RPID, FROM Pattern:
^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$Pattern:
^[1-9]\d{9}$Response
200 - application/json
Created SIP extension
Extension ID
Owning tenant
Show child attributes
Show child attributes
Extension name
Extension number
Extension email
SIP peer name
Outbound caller ID number
Call recording mode
Trunk state
Trunk host
Trunk caller ID source
Trunk emergency caller ID override
Concurrent call limit
Inbound ring timeout (seconds)
Routing profile ID
Music on hold ID
Emergency location ID
Outbound dial prefix
Dial-by-name inclusion
Phonebook inclusion
Free-text emergency location comment
Branch)
Show child attributes
Show child attributes
Emergency location
Show child attributes
Show child attributes
Music on hold
Show child attributes
Show child attributes
Routing profile
Show child attributes
Show child attributes
Was this page helpful?