Set or update SIP inbound config
curl --request PATCH \
--url https://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/ \
--header 'Content-Type: application/json' \
--data '
{
"sipUri": "<string>",
"username": "<string>",
"password": "<string>"
}
'import requests
url = "https://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/"
payload = {
"sipUri": "<string>",
"username": "<string>",
"password": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({sipUri: '<string>', username: '<string>', password: '<string>'})
};
fetch('https://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/', 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://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'sipUri' => '<string>',
'username' => '<string>',
'password' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/"
payload := strings.NewReader("{\n \"sipUri\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
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.patch("https://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/")
.header("Content-Type", "application/json")
.body("{\n \"sipUri\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"sipUri\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"succeed": true,
"data": {
"configId": "<string>",
"projectId": "<string>",
"sipUri": "<string>",
"username": "<string>",
"hasPassword": true,
"createdAt": "<string>",
"updatedAt": "<string>"
}
}voice
Set or update SIP inbound config
Upsert the project’s SIP inbound configuration. On first call (no active config), sipUri is required and the project’s voice platform must be enabled. On subsequent calls, any non-empty subset patches the existing config — omitted fields are preserved, explicit null for username/password clears them. Resulting state must satisfy: username and password are either both set or both null (half-credentials are rejected). Requires Authorization: Basic base64(projectId:projectSecret).
PATCH
/
projects
/
{projectId}
/
voice
/
sip-inbound
/
Set or update SIP inbound config
curl --request PATCH \
--url https://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/ \
--header 'Content-Type: application/json' \
--data '
{
"sipUri": "<string>",
"username": "<string>",
"password": "<string>"
}
'import requests
url = "https://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/"
payload = {
"sipUri": "<string>",
"username": "<string>",
"password": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({sipUri: '<string>', username: '<string>', password: '<string>'})
};
fetch('https://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/', 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://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PATCH",
CURLOPT_POSTFIELDS => json_encode([
'sipUri' => '<string>',
'username' => '<string>',
'password' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"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://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/"
payload := strings.NewReader("{\n \"sipUri\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"<string>\"\n}")
req, _ := http.NewRequest("PATCH", url, payload)
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.patch("https://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/")
.header("Content-Type", "application/json")
.body("{\n \"sipUri\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://spectrum.photon.codes/projects/{projectId}/voice/sip-inbound/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Patch.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"sipUri\": \"<string>\",\n \"username\": \"<string>\",\n \"password\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"succeed": true,
"data": {
"configId": "<string>",
"projectId": "<string>",
"sipUri": "<string>",
"username": "<string>",
"hasPassword": true,
"createdAt": "<string>",
"updatedAt": "<string>"
}
}Path Parameters
Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Body
application/jsonapplication/x-www-form-urlencodedmultipart/form-data
Was this page helpful?
⌘I