armor.tel

Enrutamiento de tráfico a números +999

Para operadores y propietarios de servidores SIP: cómo entregar llamadas y mensajes a números +999 y cómo te llegan a ti. Estándares abiertos, sin contrato ni registro. Cada número +999 pertenece a una persona verificada mediante Persona.

Números +999 para tu centralita

La forma más sencilla de conseguir números para empleados y departamentos: gratis, sin operador ni contrato, en un minuto en este sitio web. Diriges el número a tu centralita en la cuenta y, a partir de ahí, es un número entrante normal, salvo que las llamadas a él no cuestan nada.

  1. Coge un número

    En la aplicación Armor y, después, inicia sesión en tu cuenta en armor.tel.

  2. Diríjelo a tu centralita

    En la cuenta, junto al número: «Llamadas» → «a mi centralita» → el nombre del servidor, por ejemplo pbx.example.com.

  3. Recibe en la centralita

    La llamada llega a sip:+999…@pbx.example.com. El puerto sale del registro SRV _sip._udp; si no existe, es el 5060.

Enrutamiento: ENUM

Cada número emitido tiene un registro NAPTR en la zona e164.armor.tel. El nombre son los dígitos del número en orden inverso, separados por puntos. La zona está firmada con DNSSEC. Comprueba las firmas: de lo contrario, un registro falsificado significa un número secuestrado.

Señalización: SIP

Medios: RTP

Cómo va una llamada

  1. 100 Trying y luego 180

    El servidor despierta con un push los dispositivos dormidos del usuario y los hace sonar todos a la vez. El primer 180 puede tardar unos segundos.

  2. 200 OK del primero que contesta

    Los demás dispositivos dejan de sonar. Los medios pasan por el servidor de Armor; las direcciones están en el SDP de la respuesta.

  3. Errores

    404: el número no está emitido. 480: ningún dispositivo está en línea. 486: ocupado o rechazado. 503: límite alcanzado.

Mensajes

SIP MESSAGE a la misma dirección sip:+999…@sip.armor.tel, con un cuerpo text/plain o message/cpim. El servidor lo entrega a todos los dispositivos del usuario, y a los que están sin conexión cuando se conectan; la respuesta es 202. La respuesta del usuario va a la dirección de tu From, así que debe ser accesible desde internet.

Tráfico de +999 hacia ti

El servidor de Armor no hace llamadas salientes a otras redes. Un usuario de +999 llega a tus números a través de una cuenta contigo: añade tu línea a la aplicación y llama desde tu número. Para ti es un abonado SIP normal.

Ejemplo: Asterisk

PJSIP, Asterisk 18 o posterior. Las llamadas entrantes a tus números +999 se aceptan sin registro, pero solo para los números indicados. Las llamadas salientes a +999 van a la dirección de ENUM.

; pjsip.conf
[transport-udp]
type=transport
protocol=udp
bind=0.0.0.0:5060

; Calls to your +999: the caller found the PBX in ENUM, no registration
[anonymous]
type=endpoint
context=from-armor
disallow=all
allow=opus,g722,alaw,ulaw
rtp_symmetric=yes
rewrite_contact=yes
direct_media=no

; Calls to +999 from your PBX
[armor]
type=endpoint
context=from-armor
disallow=all
allow=opus,g722,alaw,ulaw
from_domain=pbx.example.com
direct_media=no
; extensions.conf
[from-armor]
; your +999 number -> an extension
exten => +9997309051305,1,Dial(PJSIP/101,30)
 same => n,Hangup()

; include in your users' context: include => to-armor
[to-armor]
exten => _+999XXXXXXXXXX,1,Set(URI=${ENUMLOOKUP(${EXTEN},sip,,1,e164.armor.tel)})
 same => n,GotoIf($["${URI}" = ""]?missing)
 same => n,Dial(PJSIP/armor/sip:${URI},60)
 same => n,Hangup()
 same => n(missing),Hangup(1)

Ejemplo: FreeSWITCH

Las llamadas entrantes las acepta el perfil external (puerto 5080: publica un registro SRV _sip._udp.pbx.example.com con este puerto). Las llamadas salientes pasan por mod_enum.

<!-- autoload_configs/enum.conf.xml (and mod_enum in modules.conf.xml) -->
<configuration name="enum.conf" description="ENUM">
  <settings>
    <param name="default-root" value="e164.armor.tel"/>
  </settings>
  <routes>
    <route service="E2U+SIP" regex="sip:(.*)" replace="sofia/external/$1"/>
  </routes>
</configuration>
<!-- dialplan/public/armor.xml: calls to your +999 -->
<include>
  <extension name="armor-in">
    <condition field="destination_number" expression="^\+9997309051305$">
      <action application="bridge" data="user/1001@${domain_name}"/>
    </condition>
  </extension>
</include>

<!-- dialplan/default/armor.xml: calls to +999 from the PBX -->
<include>
  <extension name="armor-out">
    <condition field="destination_number" expression="^(\+999\d{10})$">
      <action application="enum" data="$1 e164.armor.tel"/>
      <action application="bridge" data="${enum_auto_route}"/>
    </condition>
  </extension>
</include>

Pruebas

El número de prueba +999 100 000 00 01 contesta y dice la hora: una forma práctica de comprobar la ruta, el transporte y los medios. Para consultas y para unirte al catálogo, escribe a ops@armor.tel.