Multicasting messages updating frame counter but not appearing in LoraWAN frames

My chirpstack server is running in a AWS EC2 instance on a ubuntu machine. I have created a multicast-group via the chirpstack web app, assigned the nodes to multicast group and setting the correct values for the mcastdevaddr, mcastnwkskey, and mcastappskey, I tried to POST a message to that multicast group using the API with following code-

<?php

#recieve json post data
header("Content-type: application/json");
$json = file_get_contents('php://input');
$_POST = json_decode($json,true);

// Get JWT TOKEN FROM Chirpstack
#auth endpoint & credentials
$chirpstack_login_url = "http://...chirpstackurl:8080/api/internal/login";
$chirpstack_credentials = [
    'email' => 'email',
    'password' => 'password'
];

#initialize cURL session & set options
$curl = curl_init($chirpstack_login_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,  json_encode($chirpstack_credentials));

#Set headers
curl_setopt($curl, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
#Execute cURL request
$response = json_decode(curl_exec($curl));
#Close cURL session
curl_close($curl);
$jwt = $response->jwt;

#get multicastid & downlink command
// for testing
$command ="Data";
$multicastid = "8b7bddb1-b8c1-49e9-89e5-bffe464c57a7";

$downlink_url = "http://...chirpstackurl:8080/api/multicast-groups/" . $multicastid . "/queue";
$command_data = [
    'multicastQueueItem' => [
        'data' => base64_encode($command),
        'fPort' => 8,
        'multicastGroupID' => $multicastid

    ]
];

#initialize cURL session & set options
$downlink_curl = curl_init($downlink_url);
curl_setopt($downlink_curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($downlink_curl, CURLOPT_POST, true);
curl_setopt($downlink_curl, CURLOPT_POSTFIELDS,  json_encode($command_data));

$http_headers = ['Content-Type: application/json','Accept: application/json'];
$bearer_auth = "Grpc-Metadata-Authorization: Bearer " . $jwt;
array_push($http_headers,$bearer_auth);
#Set headers
curl_setopt($downlink_curl, CURLOPT_HTTPHEADER, $http_headers);
#Execute cURL request
$response = curl_exec($downlink_curl);
$http_status = curl_getinfo($downlink_curl, CURLINFO_HTTP_CODE);
#Close cURL session
curl_close($downlink_curl);
echo $http_status;

I got a 200 response code. It is updating the Multicast Frame Counter but nothing is appearing in the LoraWAN frames. I have tested single-cast downlinks, which work correctly.

Is there something that I’m missing or doing incorrectly that would explain why I am not seeing the multicast data in the LoraWAN frames under Gateway tab?

1 Like

Hi,
did you solve the problem. I’m facing the same issue using Chirpstack V3.
Regards,
Stefan

Both of you, you need to send Multicast Group Setup Commands and Multicast Class C Session Commands as per the remote multicast setup document. After these commands you can enqueue a multicast message.