Naručivanje iz prefiksa
Koristite ovu operaciju kada vas katalog prefiksa upućuje da naručite određenu količinu brojeva iz prefiksa umesto da birate pojedinačne dostupne brojeve. Počnite od zemalja, oblasti ili saveznih država i prefiksa. Sačuvajte identifikator prefiksa i tarifni plan iz istog svežeg rezultata. Za konkretan broj izabran sa liste dostupnih brojeva koristite Kupovina izabranog telefonskog broja.
Ovaj zahtev može dovesti do kupovine brojeva i nastanka troškova. On nije ponuda cene, rezervacija niti probno izvršavanje. Pre slanja proverite naknade za uspostavljanje usluge i mesečne naknade, cene minuta dolaznih poziva, uključene minute, kanale, zahteve za registraciju i ograničenja kupovine na nalogu. Rezultat kataloga ne rezerviše brojeve niti garantuje nepromenljivost cena. Provere dopune sredstava na nalogu mogu se obaviti pre realizacije; sama greška ne dokazuje da nije došlo do kupovine ili dopune sredstava na nalogu.
Slanje zahteva za kupovinu
Koristite omogućen API nalog preko HTTPS veze sa dozvoljene izvorne IP adrese. Podesite promenljive prema trenutnom izboru iz kataloga i odobrenoj konfiguraciji isporuke. Sledeća komanda kupuje jedan broj.
curl --silent --show-error --user "$API_USER:$API_PASSWORD" \
--data-urlencode 'quantity=1' \
--data-urlencode "price_id=$PRICE_ID" \
--data-urlencode "channels=$CHANNELS" \
--data-urlencode "reference=$ORDER_REFERENCE" \
--data-urlencode "uri=$VOICE_URI" \
"https://api.multitel.net/v3/order/$PREFIX_ID"Iznad je prikazan POST zahtev sa podacima obrasca. Koordinator takođe čita JSON objekat kada je Content-Type postavljen na application/json. JSON polja imaju prednost nad odgovarajućim poljima obrasca/zahteva. Dosledno koristite jedno kodiranje; ne šaljite neusaglašene vrednosti u parametrima upita i telu zahteva.
| Parametar | Značenje |
|---|---|
| identifikator prefiksa u putanji | UUID prefiksa koji vraća katalog. Identifikator zemlje, oblasti, cene ili pojedinačnog broja ne može da ga zameni. |
| quantity | Pošaljite ceo broj od 1 do 100. Podrazumevana vrednost je 1. Vrednosti manje od 1 svode se na 1; ovo nije zahtev koji služi samo za validaciju. Vrednosti veće od 100 izazivaju izuzetak pre uobičajene obrade odgovora ovog koordinatora, pa se za takav nevažeći unos nemojte oslanjati na njegov uobičajeni JSON format. |
| price_id | Javni identifikator cene izabranog plana. priceid je stariji alternativni naziv. Identifikator koji se ne podudara može bez upozorenja dovesti do izbora drugog plana; ovo polje ne garantuje strogo fiksiranje cene. Pre kupovine potvrdite gornje granice cena na nalogu, a nakon kupovine proverite vraćenu cenu. |
| channels | Broj kanala iz izabranog plana. Kada se ne koristi tačno podudaranje cene, podudaranje broja kanala može uticati na izbor zamenskog plana. Ono samo po sebi ne garantuje kupovinu određenog plana. |
| reference | Vaša oznaka kupovine ili grupe kupovina. Koristite kratku ASCII vrednost, najviše 255 bajtova; duže vrednosti se skraćuju. Čuva se uz uspešne kupovine i uključuje u povratna obaveštenja kada je navedena. Zasebne narudžbine mogu imati istu referencu. Ona nije ključ idempotentnosti: ponovnim slanjem ove operacije mogu se kupiti i naplatiti dodatni brojevi, čak i uz istu referencu i identična polja. |
| webhook_url | Opciona URL adresa za povratna obaveštenja. Koristite HTTPS krajnju tačku koju kontrolišete. HTTP i HTTPS URL adrese prolaze trenutnu osnovnu validaciju; nevažeća URL adresa se zanemaruje umesto da kupovina bude odbijena. Povratno obaveštenje je dodatno obaveštenje, a ne dokaz da se zahtev može bezbedno ponoviti. |
Podešavanja isporuke i obnove
Izaberite ista podešavanja isporuke koja biste koristili za broj na portalu. To su napredne konfiguracione vrednosti, a ne uputstva za kreiranje hostovane PBX centrale ili tranka za dolazne pozive. Ponovo koristite konfiguraciju naloga za koju znate da radi i proverite sačuvani broj nakon kupovine. Samo prihvatanje kupovine ne potvrđuje da isporuka glasovnih poziva ili SMS poruka radi.
| Polje | Upotreba i kompatibilnost |
|---|---|
| uri, uri2, uri3 | Primarno i dodatna odredišta za glasovne pozive. Navedite odredišta koja odgovaraju izabranim režimima prosleđivanja i zvonjenja. |
| forward_destination | Režim prosleđivanja glasovnih poziva. forwarding_destination i type su stariji alternativni nazivi. Ako se polje izostavi, koristi se podrazumevana vrednost odgovarajućeg toka kupovine; prazno polje nije pouzdan način da se ukloni postojeće podešavanje. |
| ring_type | Režim zvonjenja za glasovne pozive; ringtype je alternativni naziv. Koristite podržanu vrednost iz konfiguracije broja na svom nalogu. |
| sms_forward_destination, sms_uri | Režim i odredište isporuke SMS poruka. Stariji alternativni nazivi su smsringtype i smsuri. Neki tokovi kupovine primenjuju podrazumevano SMS odredište naloga kada je ovo prazno. Dostupnost SMS usluge zavisi od izabranog broja i njegove aktivacije/registracije. |
| overflow | Zahtevano podešavanje prelivanja poziva. Dostupnost plana i tok kupovine utiču na to da li je ono podržano. |
| force_codec, force_dtmf | Zahtevana podešavanja kodeka i DTMF signalizacije. Stariji alternativni nazivi su forcecodec i forcedtmf. Proverite sačuvanu konfiguraciju za izabrani fond brojeva. |
| origination_trunk_id | Identifikator postojeće konfiguracije tranka, gde je primenljivo. Ovo ne kreira trank. Ako se izostavi, koristi se podrazumevana vrednost toka kupovine. |
| autorenew | Zahtevano podešavanje obnove. Nemojte pretpostavljati da 0 isključuje obnovu: neki tokovi kupovine vrednost koja se smatra praznom, uključujući 0, tumače kao podrazumevano uključeno podešavanje. Proverite i, po potrebi, promenite obnovu za kupljeni broj na portalu. |
Ova polja se normalizuju i prosleđuju procesu kupovine, ali se njihovo trajno čuvanje razlikuje u zavisnosti od toka obrade fonda brojeva. Trenutna ruta za naručivanje ne pruža polja za strogo ograničenje ponuđene cene iz vodiča za kupovinu izabranog broja kao ekvivalentne zaštitne mehanizme. Koristite dozvole za kupovinu i ograničenja cena na nalogu i proverite dobijenu konfiguraciju broja.
Čitanje celog rezultata
Parsiranjem obradite JSON telo i proverite status.code i status.msg čak i kada HTTP zahtev uspe. Ova ruta sama formira svoj JSON odgovor, a ni zajednička pomoćna funkcija za odgovore ne preslikava nužno aplikacioni kod u HTTP status. Aplikacioni kodovi mogu biti JSON brojevi ili numerički stringovi. Nemojte zahtevati status.results; to polje nije prisutno u uobičajenom rezultatu naručivanja.
{
"status": {"code": "200", "msg": ""},
"response": {
"id": "o_fictional_example",
"numbers": ["12025550123"],
"price": {
"per_minute": "0.01",
"free_minutes": 0,
"setup_price": "1.25",
"monthly_price": "2.50",
"channels": 2
},
"features": ["voice"],
"needs_registration": 0,
"restrictions": "",
"registration_requirements": null
}
}Gore navedeni identifikator, broj i cene su izmišljeni. Tretirajte ID narudžbine kao neproziran identifikator, bez tumačenja njegove strukture. numbers navodi brojeve koje ovaj odgovor prijavljuje kao kupljene; uporedite dužinu te liste sa traženom količinom. Iznosi cena su stringovi, a ovaj odgovor zaokružuje novčane tarife na dva decimalna mesta, uključujući per_minute; za izvornu preciznost tarifa koristite svež katalog. Uključeni minuti i kanali mogu stići kao numeričke vrednosti ili numerički stringovi.
Blok sa cenom opisuje izabrani plan korišćen za formiranje odgovora, a ne detaljan račun za svaki broj niti ukupan iznos narudžbine. Različiti kandidati iz fonda brojeva mogu imati različite planove. Usaglasite pojedinačne kupljene brojeve i transakcije na nalogu umesto da množite iznose iz ovog bloka i pretpostavljate da time potvrđujete konačan ukupan iznos.
Delimične kupovine i neizvesni ishodi
Aplikacioni kod 200 može biti praćen upozorenjem i manjim brojem brojeva od traženog. Naknadni neuspeh ne poništava kupovinu već kupljenih brojeva. Sačuvajte vraćeni ID narudžbine, brojeve i poruku. Usaglasite te brojeve sa svojim fondom brojeva i transakcijama na nalogu pre nego što odlučite da li ćete naručiti preostalu količinu.
Istek vremena, prekid veze tokom zahteva, neispravno formatiran odgovor ili greška nakon slanja nisu dokaz da se ništa nije dogodilo. Nemojte automatski slati novi zahtev za kupovinu, čak ni sa istom referencom. Sačuvajte izvorni zahtev, referencu i svaki vraćeni ID narudžbine, proverite fond brojeva i transakcije na nalogu i obratite se podršci ako ishod ostane neizvestan.
Nepotvrđena narudžbina može vratiti aplikacioni kod 400 uz poruku da je potvrđivanje još u toku. Sačuvajte njen vraćeni ID narudžbine i usaglasite tu kupovinu; to nije uputstvo da je ponovo pošaljete. Mehanizam oporavka evidentirane narudžbine interno prati izvornu narudžbinu. Novi zahtev ovoj operaciji kreira zaseban pokušaj kupovine umesto da nastavlja narudžbinu prema vašoj referenci, pa može kupiti i naplatiti još brojeva. Nemojte koristiti ponovljene zahteve za kupovinu radi provere statusa ili pretraživanja fonda brojeva.
Registracija i aktivacija
Kupljenom ili dodeljenom broju i dalje može biti potrebna registracija ili aktivacija. Ako je needs_registration jednako 1, proverite restrictions i registration_requirements. Poslednje navedeno polje može upućivati na v3/get_requirements sa vrednostima za country i number_type. Završite odgovarajući postupak provere identiteta/adrese i potvrdite status broja pre nego što se oslonite na dolazne pozive ili razmenu poruka.
features opisuje oglašene mogućnosti; ne potvrđuje usmeravanje u stvarnom radu, odobrenje kampanje, isporuku SMS poruka niti prijem faksa. Proverite sačuvana podešavanja isporuke i obavite odgovarajući test usluge kada broj bude aktivan.
Povratna obaveštenja o narudžbini
Povratna obaveštenja šalju se metodom POST u JSON formatu koji sadrži status narudžbine i odgovor, uz vašu referencu ako je navedena. Šalju se za prijavljene kupovine, uključujući delimične rezultate. Neuspelo povratno obaveštenje ne poništava kupovinu. Isporuka se može ponoviti, pa obradite duplikate prema ID-u narudžbine i usaglasite brojeve umesto da šaljete novi zahtev za kupovinu.
Ova ruta ne dodaje kriptografski potpis povratnom obaveštenju. Tretirajte povratno obaveštenje kao obaveštenje koje treba usaglasiti sa fondom brojeva kojem pristupate uz autentifikaciju, a ne kao samostalno ovlašćenje za naplatu, aktiviranje usluga ili dodelu pristupa. Nemojte unositi API pristupne podatke u URL adresu za povratna obaveštenja. Slanje novog zahteva za kupovinu sa drugačijom URL adresom za povratna obaveštenja ne ažurira izvornu narudžbinu; time se kreira zaseban pokušaj kupovine. Sačuvajte izvorni ID narudžbine kada od podrške tražite da ispita njeno povratno obaveštenje.
Greške koje treba obraditi
| Ishod | Šta preduzeti |
|---|---|
| 400 i poruka o nevažećem prefiksu | Ponovo pročitajte katalog prefiksa i koristite njegov trenutni identifikator. Razlikujte ovo od poruke da je potvrđivanje izvorne narudžbine još u toku. |
| 403 ili neuspeh zbog pravila naloga ili stanja sredstava | Proverite dozvolu za kupovinu, gornje granice cena na nalogu, ograničenja količine i obezbeđivanje sredstava. Iz tih provera mogu se proslediti i drugi aplikacioni kodovi; sačuvajte stvarnu poruku. |
| 404 ili nema raspoloživih brojeva | Osvežite podatke o dostupnosti. Nemojte ponavljati kupovinu za prefiks čiji je fond brojeva iscrpljen. |
| 409 i poruka o potvrđivanju kupovine, odbijanju od strane pružaoca usluge ili otkazanoj narudžbini | Sačuvajte vraćeni ID narudžbine i stvarnu poruku. Usaglasite zahtev sa fondom brojeva, transakcijama na nalogu i podrškom pre slanja novog zahteva za kupovinu. Ponovna upotreba iste reference ne čini novi zahtev bezbednim. |
| 200 uz upozorenja ili manje brojeva | Neki brojevi su kupljeni. Usaglasite vraćenu dodelu brojeva i transakcije pre nego što naručite još brojeva. |
| Greška servera ili prenosa ili nečitljiv odgovor | Smatrajte rezultat potencijalno neizvesnim dok se na osnovu fonda brojeva i transakcija ne utvrdi šta se dogodilo. |