Ta emot inkommande SMS
Om en callback URL för inkommande SMS anges i kontoinställningarna skickas inkommande SMS-meddelanden till den webbadressen när de är tillgängliga. Innehållet i dessa SMS-meddelanden beskrivs nedan.
Vårt system skickar inkommande SMS med POST och förväntar sig ett svar på 200 OK om SMS:et levereras korrekt. Om någon annan status (dvs. en felstatus) tas emot kommer inkommande SMS att skickas igen vid ett senare tillfälle.
Du hanterar din callback-url i användarportalen: https://portal.ip1.net/accounts/ → Inställningar för inkommande SMS (Se bild nedan)
Callback Payload
{
"id": "5c613848879973045cf39ac4",
"batchId": "5c613848879973045cf39ac3",
"owner": "ip1-XXXXX",
"sender": "46712345678",
"recipient": "456189040623",
"body": "Hi my name is earl",
"direction": "mo",
"segments": 1,
"type":"SMS",
"datacoding": "GSM",
"priority": 1,
"statuses": [
{
"created": "2018-10-23T17:43:21Z",
"code": 201,
"duration": 1
}
],
"modified": "2018-10-23T17:43:19Z",
"mcc": "431",
"mnc": "20"
}
id
Ett unikt ID för det specifika meddelandet.
batchId
Ett ID för alla meddelanden som tagits emot i samma begäran som detta meddelande. Detta är vanligtvis bara ett meddelande.
owner
Konto-ID för SMS-kontot som äger meddelandet.
sender
Avsändar-ID för det inkommande meddelandets upphovsman.
recipient
Mottagaren av meddelandet (t.ex. ditt virtuella nummer).
body
Det inkommande meddelandets innehåll.
direction
Avgör om meddelandet skickades eller mottogs av våra system. Bör alltid vara mo
här.
mt
en akronym för mobile terminated.mo
en akronym för mobile originated.
segments
Om det inkommande meddelandet innehåller fler tecken än ett enda sms kan innehålla kommer meddelandet att delas upp i flera sms, även känt som sammanhängande sms. Den här egenskapen anger hur många sms meddelandet behöver skickas.
datacoding
Anger datakodningsschemat som används för att skicka meddelandet i fråga.
priority
Den prioritet som meddelandet skickades i. Prioritet 1 är standard och är den lägsta prioritet som är tillgänglig. Prioritet 2 är högre prioritet.
statuses
En lista bestående av statusuppdateringar.
- statuses[].created
- När statusen lades till
- statuses[].code
- Den specifika statuskoden. Fler kan läggas till i framtiden
- statuses[].duration
- Berättar om detta är den senaste statusuppdateringen eller om det kan komma fler statusuppdateringar
Inkommande meddelanden har bara en angiven status då den gick in i våra system utifrån. För mer information om våra statuskoder för meddelanden, se avsnittet om statuskoder.
modified
När det inkommande SMS:et senast uppdaterades.
mcc
Lands-delen av bladoperatören kan specificeras här om den tillhandahålls av operatören.
MCC
är en akronym för Mobile Country Code
mnc
Nätverksdelen av bladoperatören kan specificeras här om den tillhandahålls av operatören.
MNC
är en akronym för Mobile Network Code
Kodexempel
Nedan hittar du ett kodexempel för en callback för inkommande SMS-trafik.
Callback för inkommande SMS C#
[Route("callback")]
[ApiController]
public class CallbackController : ControllerBase
{
private readonly SqlConnection Connection;
public CallbackController()
{
Connection = new SqlConnection("Connection String");
Connection.Open();
}
[HttpPost("")]
public ActionResult HandleCallback(IncommingSms request)
{
using (SqlCommand cmd = new SqlCommand("INSERT INTO [Messaging].[SmsMessage] ([Sender],[Body]) VALUES (@sender, @body)", Connection))
{
cmd.Parameters.AddWithValue("@sender", request.Sender);
cmd.Parameters.AddWithValue("@body", request.Body);
int result = cmd.ExecuteNonQuery();
}
return Ok();
}
}
public class IncommingSms
{
public string Id { get; set; }
public string BatchId { get; set; }
public string Owner { get; set; }
public string Sender { get; set; }
public string Recipient { get; set; }
public string Body { get; set; }
public string Direction { get; set; }
public int Segments { get; set; }
public string Type { get; set; }
public string Datacoding { get; set; }
public int Priority { get; set; }
public List Statuses { get; set; }
public DateTime Modified { get; set; }
public string Mcc { get; set; }
public string Mnc { get; set; }
}
public class Status
{
public DateTime Created { get; set; }
public int Code { get; set; }
public int Duration { get; set; }
}