Usmjeravanje prometa na brojeve +999
Za operatere i vlasnike SIP servera: kako isporučiti pozive i poruke na brojeve +999 i kako oni stižu do vas. Otvoreni standardi, bez ugovora i registracije. Svaki broj +999 pripada osobi provjerenoj preko Persone.
Brojevi +999 za vašu centralu
Najjednostavniji način da dobijete brojeve za zaposlenike i odjele: besplatno, bez operatera i ugovora, za minutu na ovoj stranici. U računu usmjerite broj na svoju centralu i od tada je to običan dolazni broj, samo što pozivi na njega ne koštaju ništa.
- Broj za svakoga. Do tri broja po osobi: za odjele, recepciju, projekte. Broj pripada provjerenoj osobi i ne može se lažirati.
- Izravni pozivi. Korisnici Armora i druge centrale pronalaze vaš broj u ENUM-u i zovu vašu centralu izravno, bez posrednika i naplate po minuti.
- Zovite +999 sami. Korisnici vaše centrale biraju bilo koji +999, a centrala pronalazi adresu u ENUM-u. Primjeri za Asterisk i FreeSWITCH nalaze se u nastavku.
Uzmite broj
U aplikaciji Armor, zatim se prijavite u račun na armor.tel.
Usmjerite ga na svoju centralu
U računu, pored broja: „Pozivi” → „na moju centralu” → naziv servera, na primjer pbx.example.com.
Primanje na centrali
Poziv stiže na sip:+999…@pbx.example.com. Port se uzima iz SRV zapisa _sip._udp, a inače je 5060.
Usmjeravanje: ENUM
Svaki izdani broj ima NAPTR zapis u zoni e164.armor.tel. Ime čine znamenke broja obrnutim redoslijedom, odvojene točkama. Zona je potpisana DNSSEC-om. Provjeravajte potpise: inače krivotvoreni zapis znači otet broj.
- Upit za +999 730 905 13 05: 5.0.3.1.5.0.9.0.3.7.9.9.9.e164.armor.tel IN NAPTR
- Odgovor: 10 10 "u" "E2U+sip" "!^.*$!sip:+9997309051305@sip.armor.tel!" .
- NXDOMAIN znači da broj nije izdan ili je otpušten. Ne šaljite takve pozive: server odgovara 404.
- Predmemorija. Zapisi imaju TTL od 5 minuta. Otpušteni broj ne izdaje se ponovno 90 dana.
Signalizacija: SIP
- Adresa dolazi iz NAPTR-a; server i port razrješavaju se prema RFC 3263 (SRV _sips._tcp, _sip._tcp, _sip._udp).
- TLS se preporučuje: port 5061 (SRV _sips._tcp), certifikat Let's Encrypt za sip.armor.tel, SNI je obavezan, klijentski certifikat nije potreban. Nešifrirano: UDP i TCP na portu 5080.
- Bez registracije i lozinke. Svaki server koji pronađe broj u ENUM-u može nazvati +999.
- From se korisniku prosljeđuje kakav jest i ne provjerava se. Upišite broj pozivatelja u formatu E.164 s „+”.
- Ograničenja: 10 INVITE-a u sekundi s jedne adrese i 30 istodobnih poziva po broju. Iznad toga: 503 s Retry-After.
- Ponovna slanja prema RFC 3261; preko TCP/TLS-a držite vezu otvorenom, uz CRLF keep-alive.
Medij: RTP
- Bez transkodiranja. Server proksira RTP i ne dira kodeke u SDP-u: dogovaraju se s uređajem korisnika. Uređaji podržavaju Opus, G.722, G.711 A/µ.
- SRTP i ZRTP prolaze: a=zrtp-hash i ZRTP paketi stižu do korisnika. Ako vaša strana podržava ZRTP, poziv je šifriran između vas i korisnika.
- DTMF: RFC 4733 (telephone-event) u RTP-u.
- Nije podržano: early media i late offer. INVITE bez SDP-a dobiva 488.
Kako teče poziv
100 Trying, zatim 180
Server push obavijesti budi uspavane uređaje korisnika i zvoni na svima odjednom. Prvi 180 može potrajati nekoliko sekundi.
200 OK od prvog koji se javi
Ostali uređaji prestaju zvoniti. Medij ide preko Armor servera; adrese su u SDP-u odgovora.
Greške
404: broj nije izdan. 480: nijedan uređaj nije na mreži. 486: zauzeto ili odbijeno. 503: ograničenje dosegnuto.
Poruke
SIP MESSAGE na istu adresu sip:+999…@sip.armor.tel, s tijelom text/plain ili message/cpim. Server je isporučuje na sve uređaje korisnika, a na one koji nisu na mreži kad se jave; odgovor je 202. Korisnikov odgovor ide na adresu iz vašeg From-a, pa ona mora biti dostupna s interneta.
Promet od +999 prema vama
Armor server ne upućuje odlazne pozive u druge mreže. Korisnik +999 dolazi do vaših brojeva preko računa kod vas: doda vašu liniju u aplikaciju i zove s vašeg broja. Za vas je to običan SIP pretplatnik.
- Što trebamo od vas: SIP pristup (adresa, prijava, lozinka, TLS), prosljeđivanje na SIP adresu i, po želji, SMS preko SIP MESSAGE-a.
- Za postavljanje u dva dodira dajte korisnicima QR kod s postavkama u formatu Linphone remote provisioning. Aplikacija ga pročita.
- Katalog operatera. Možemo vas dodati na popis operatera u aplikaciji: korisnik odabere vas i prijavi se u račun kod vas preko OAuth-a, a aplikacija sama preuzme postavke. Potrebni su vam OAuth prijava i endpoint s postavkama.
- Provjeren broj +999 u From-u pri pozivu prema vama nije dostupan. Ako vam treba, javite nam se.
Primjer: Asterisk
PJSIP, Asterisk 18 i noviji. Dolazni pozivi na vaše brojeve +999 prihvaćaju se bez registracije, ali samo za navedene brojeve. Odlazni pozivi na +999 idu na adresu iz ENUM-a.
; 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)- Sigurno. Kontekst from-armor sadrži samo vaše brojeve, pa tuđi poziv ne može proći kroz centralu.
- Broj nije izdan: ENUM je prazan i poziv se odmah završava, bez pokušaja spajanja.
Primjer: FreeSWITCH
Dolazne pozive prihvaća profil external (port 5080: objavite SRV zapis _sip._udp.pbx.example.com s tim portom). Odlazni pozivi idu preko 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>- Kontekst public prihvaća samo navedene brojeve: FreeSWITCH odbija sve ostalo.
Testiranje
Probni broj +999 100 000 00 01 odgovara i govori vrijeme: zgodan način da provjerite rutu, transport i medij. Za pitanja i pridruživanje katalogu pišite na ops@armor.tel.