create

View as MarkdownOpen in Claude

Create a new SIP endpoint resource.

Request

idstringRequiredformat: "uuid"
The id of the Sip Endpoint
usernamestringRequired
The username of the Sip Endpoint
caller_idstringRequired
The caller ID that will showup when dialing from this Sip Endpoint
send_asstringRequired
The Sip username that will show up on the calle's side. Overrides the username.
cipherslist of enumsRequired
Ciphers that can be enabled for calls on this Sip Endpoint.
Allowed values:
codecslist of enumsRequired
Codecs that can be enabled for calls on this Sip Endpoint.
encryptionenumRequired
The set encryption type on the Sip Endpoint.
Allowed values:
call_handlerenumRequired
Specify how the SIP endpoint will handle outbound calls. - **default**: The SIP endpoint will pull the outbound policy setting from the [SIP Profile Settings](https://my.signalwire.com?page=sip_profile/edit). This allows centralized management of outbound call behavior across multiple endpoints from a single configuration. - **passthrough**: The SIP endpoint will be allowed to dial PSTN numbers. This permits outbound calling to traditional phone numbers without restrictions. - **block-pstn**: The SIP endpoint will be blocked from dialing PSTN numbers. Use this to restrict the endpoint from initiating calls to the public telephone network. - **resource**: Outbound calls from this SIP endpoint will dial the specified resource and execute its instructions. Requires setting `calling_handler_resource_id` to a valid resource. This enables custom call handling workflows for outbound calls.
Allowed values:
calling_handler_resource_idstring or nullRequiredformat: "uuid"
If `call_handler` is set to `resource`, this field expects the id of the set resouce. Will be `null` otherwise.

Response

typestringRequired
A string representation of the type of object this record is.
idstringRequiredformat: "uuid"
The unique identifier of the SIP endpoint.
usernamestringRequired
The username for the SIP endpoint.
caller_idstring or nullRequired
Friendly Caller ID used as the CNAM when dialing a phone number or the From when dialing another SIP Endpoint.
send_asstringRequired
When dialing a PSTN phone number, you must send it From a number you have purchased or verified. send_as indicates which number this endpoint has set as its origination. random indicates it will randomly choose a purchased or verified number from within the project.
cipherslist of stringsRequired
A list of encryption ciphers this endpoint will support.
codecslist of stringsRequired
A list of codecs this endpoint will support.
encryptionenumRequired
Whether connections to this endpoint require encryption or if encryption is optional.
Allowed values:
call_handlerenum or nullRequired
What type of handler you want to run on inbound calls.
calling_handler_resource_idstring or nullRequiredformat: "uuid"
The unique identifier of the calling handler resource.
call_request_urlstring or nullRequired
A string representing the LaML URL to access when a call is received. This is only used (and required) when call_handler is set to laml_webhooks.
call_request_methodenum or nullRequired
A string representing the HTTP method to use with call_request_url. Valid values are GET and POST.
Allowed values:
call_fallback_urlstring or nullRequired
A string representing the LaML URL to access when the call to call_request_url fails. This is only used (and required) when call_handler is set to laml_webhooks.
call_fallback_methodenum or nullRequired
A string representing the HTTP method to use with call_fallback_url. Valid values are GET and POST.
Allowed values:
call_status_callback_urlstring or nullRequired
A string representing a URL to send status change messages to. This is only used (and required) when call_handler is set to laml_webhooks.
call_status_callback_methodenum or nullRequired
A string representing the HTTP method to use with call_status_callback_url. Valid values are GET and POST.
Allowed values:
call_laml_application_idstring or nullRequired
A string representing the ID of the LaML application to forward incoming calls to. This is only used (and required) when call_handler is set to laml_application.
call_dialogflow_agent_idstring or nullRequired
A string representing the ID of the Dialogflow agent to forward incoming calls to. This is only used (and required) when call_handler is set to dialogflow.
call_relay_topicstring or nullRequired
A string representing the Relay topic to forward incoming calls to. This is only used (and required) when call_handler is set to relay_topic.
call_relay_topic_status_callback_urlstring or nullRequired
A string representing a URL to send status change messages to. This is only used (and required) when call_handler is set to relay_topic.
call_relay_contextstring or nullRequired
A string representing the Relay context to forward incoming calls to. This is only used (and required) when call_handler is set to relay_context.
call_relay_context_status_callback_urlstring or nullRequired
A string representing a URL to send status change messages to. This is only used (and required) when call_handler is set to relay_context.
call_relay_applicationstring or nullRequired
A string representing the Relay application to forward incoming calls to. This is only used (and required) when call_handler is set to relay_application.
call_video_room_idstring or nullRequiredformat: "uuid"
A string representing the ID of the Video Room to forward incoming calls to. This is only used (and required) when call_handler is set to video_room.
call_relay_script_urlstring or nullRequired
A string representing a URL of a SWML script to respond to incoming calls. This is only used (and required) when call_handler is set to relay_script.

Response Example

Response
1{
2 "type": "sip_endpoint",
3 "id": "67075301-69b2-4fc3-8a2c-c95a69a5665e",
4 "username": "c3p0",
5 "caller_id": "C-3P0",
6 "send_as": "random",
7 "ciphers": [
8 "string"
9 ],
10 "codecs": [
11 "string"
12 ],
13 "encryption": "required",
14 "call_handler": "ai_agent",
15 "calling_handler_resource_id": "fe4093d9-58c2-4931-b4b9-5679f82652c6",
16 "call_request_url": "string",
17 "call_request_method": "POST",
18 "call_fallback_url": "string",
19 "call_fallback_method": "POST",
20 "call_status_callback_url": "string",
21 "call_status_callback_method": "POST",
22 "call_laml_application_id": "string",
23 "call_dialogflow_agent_id": "string",
24 "call_relay_topic": "office",
25 "call_relay_topic_status_callback_url": "https://myapplication/handle_relay_callbacks",
26 "call_relay_context": "string",
27 "call_relay_context_status_callback_url": "https://myapplication/handle_relay_callbacks",
28 "call_relay_application": "string",
29 "call_video_room_id": "string",
30 "call_relay_script_url": "https://dev.signalwire.com/relay-bins/f9d13f68-f71e-4042-95bb-b07b9e2f2f92"
31}

Example

1from signalwire.rest import RestClient
2
3client = RestClient(
4 project="your-project-id",
5 token="your-api-token",
6 host="your-space.signalwire.com",
7)
8
9result = client.fabric.sip_endpoints.create(
10 username="my-endpoint", caller_id="+15551234567", send_as="+15551234567",
11 encryption="required", ciphers=["AEAD_AES_256_GCM_8"], codecs=["OPUS"],
12 call_handler="relay_app", calling_handler_resource_id="resource-id",
13)
14print(f"Created: {result['id']}")