Join
This message type is intended to be used for the device OTAA on the AS side. This message is not generated if AppKey is provided to AS and AS could perform join procedure by itself.
You should use these parameters to provision an OTAA device to the network server through Management API or GUI:
encryption = APP
It means that application server will be responsible to perform activation procedure.activation = OTAA
Activation type is OTAA.
For better understanding of data flow for OTAA let's look through this diagram.
The sequence is the following:
Device initiates a join request and send it to the network server.
NS receive join request, process it, prepare join message and send it to the AS.
AS receives join message, with a join request enclosed and process it.
AS prepare join message with join accept inside and send it back to the NS.
NS receives join message from AS, prepare join accept message and send it to the end device.
Join Request
Join request - this a JSON object that is transferred from NS to AS.
Params
Join request contains the following fields:
Name | Description |
---|---|
net_id | Network identifier by LoraWAN, string, required |
dev_nonce | Is a random value for each end-device size: 2 bytes, string, required |
dev_eui | The end-device identifier, string, required |
dev_addr | The end-device address, string, required |
cf_list | List of channel frequencies, string, optional |
Example
{
"meta": {
"network": "9e9bf02a",
"packet_hash": "adc6bcac0d06195bc0329c3ef6a2d6ea",
"application": "b3a1067cf7085309",
"time": 1504638900.866375,
"device": "8c30dd074be218cb",
"packet_id": "287f9555a3e8b000ffc8c3c50f60e309",
"gateway": "017e8cd996cd3a0e"
},
"params": {
"dev_eui": "8c30dd074be218cb",
"dev_addr": "01d6dcd6",
"dev_nonce": "f9e7",
"net_id": "000000"
},
"type": "join_request"
}
Join Response
Join accept - this is a message join_response, that is transferred from AS to NS.
Params
Join response contains the following fields:
Name | Description |
---|---|
nwkskey | string, network session key, required |
accept_payload | string, Join-Accept message (BASE64-encoded, encrypted), required |
Example
{
"meta": {
"network": "9e9bf02a",
"packet_hash": "adc6bcac0d06195bc0329c3ef6a2d6ea",
"application": "b3a1067cf7085309",
"time": 1504638900.866375,
"device": "8c30dd074be218cb",
"packet_id": "287f9555a3e8b000ffc8c3c50f60e309",
"gateway": "017e8cd996cd3a0e"
},
"type": "join_response",
"params": {
"nwkskey": "d64c9050214b394aa2042f0e934b6180",
"accept_payload": "ysgRl452xNLep9S1NTIg2lomKDxUgn3DJ7DE+b00Ass"
}
}