Voice API SDK — compatible con SignalWire y Twilio
Project description
AorusAPI SDK
SDK para la API de voz de AorusAPI. Compatible con el SDK oficial de SignalWire — solo cambia el import.
Instalación
pip install aorusapi
Configuración
Las credenciales se obtienen desde el dashboard: https://app.aorusapi.com
Ejemplo de settings.json:
{
"signalwire": {
"project_id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"api_token": "PTxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"space_url": "app.aorusapi.com"
}
}
Uso
import json
from aorusapi.rest import Client as SignalWireClient
# Cargar settings
with open("settings.json", "r") as f:
jsonsettings = json.load(f)
sw = jsonsettings["signalwire"]
# Inicializar cliente
signalwire_client = SignalWireClient(
sw["project_id"],
sw["api_token"],
signalwire_space_url=sw["space_url"]
)
# Crear llamada
call = signalwire_client.calls.create(
to="+1234567890",
from_="+0987654321",
url="https://mi-backend.com/voice",
method="POST",
timeout=28,
record=True,
status_callback="https://mi-backend.com/status_callback",
status_callback_event=["initiated", "ringing", "completed"],
recording_status_callback="https://mi-backend.com/notify_end",
machine_detection="Enable",
)
print(call.sid) # CAxxxxxxxxxxxxx
print(call.status) # queued
Parámetros de calls.create()
| Parámetro | Tipo | Descripción |
|---|---|---|
to |
str | Número destino en formato E.164 (+1234567890) |
from_ |
str | Número origen en formato E.164 |
url |
str | URL que devuelve el XML con las instrucciones de la llamada |
method |
str | Método HTTP para url (GET / POST) |
timeout |
int | Segundos antes de considerar la llamada sin respuesta |
record |
bool | Grabar la llamada |
status_callback |
str | URL que recibe los eventos de estado de la llamada |
status_callback_event |
list | Eventos a notificar: initiated, ringing, answered, completed |
recording_status_callback |
str | URL que recibe la notificación cuando la grabación está lista |
machine_detection |
str | Enable para activar detección de contestador automático |
machine_detection_timeout |
int | Segundos máximos para la detección AMD |
async_amd |
bool | Detección AMD asíncrona (no bloquea la llamada) |
async_amd_status_callback |
str | URL que recibe el resultado AMD cuando async_amd=True |
Consultar y modificar una llamada
# Obtener estado
call = signalwire_client.calls("CAxxxxxxxxxxxxx").fetch()
print(call.status)
# Colgar una llamada activa
signalwire_client.calls("CAxxxxxxxxxxxxx").update(status="completed")
# Redirigir a nuevo XML
signalwire_client.calls("CAxxxxxxxxxxxxx").update(url="https://mi-backend.com/nuevo-xml")
Migrar desde SignalWire
# Antes
from signalwire.rest import Client as SignalWireClient
# Después — el resto del código no cambia
from aorusapi.rest import Client as SignalWireClient
Migrar desde el archivo signalwire_replacement.py
# Antes
from signalwire_replacement import Client as SignalWireClient
# Después — el resto del código no cambia
from aorusapi.rest import Client as SignalWireClient
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aorusapi-1.0.1.tar.gz
(4.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aorusapi-1.0.1.tar.gz.
File metadata
- Download URL: aorusapi-1.0.1.tar.gz
- Upload date:
- Size: 4.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1406e4ce5ea40d7761ae8cbd0403c11851629b77f2d4626bb4a3a08f43da6d2c
|
|
| MD5 |
2ecc830b6005b64515b09f82a8dda6a2
|
|
| BLAKE2b-256 |
99927ae7539c777f6661b0e9aafaf00edc40c7776010a356c169b415ab10b2c6
|
File details
Details for the file aorusapi-1.0.1-py3-none-any.whl.
File metadata
- Download URL: aorusapi-1.0.1-py3-none-any.whl
- Upload date:
- Size: 4.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
526627e2363ba6b5b0d23d81eee60a2ec6373cd7f022df5361e28ccf660d1ef1
|
|
| MD5 |
2371497ccb7e9347ce908719af2e20e8
|
|
| BLAKE2b-256 |
e498d24b5d39501ec0a3d0038d846c82f5dad1253842ace396b1997ce8ed674b
|