diff --git a/lib/apiserver/routers/smstools-config.js b/lib/apiserver/routers/smstools-config.js
index 8490fe2..f007609 100644
--- a/lib/apiserver/routers/smstools-config.js
+++ b/lib/apiserver/routers/smstools-config.js
@@ -157,6 +157,14 @@ async function pageQueuesAndProviders(req, res) {
     res.end(await queuesAndProviders.dump());
 }
 
+function pageModemQueueName(req, res) {
+    const modemName = req.params.modemName || req.query.modemName || req.query.modem_name;
+    res.json({
+        modemName,
+        queueName: queuesAndProviders.getModemQueueName(modemName),
+    });
+}
+
 router.get('/', pageIndex);
 router.get('/generate', pageGenerate);
 router.get('/modems', pageModemList);
@@ -167,3 +175,5 @@ router.post('/modem/set-single-value/:modemName', bodyParser.json({ type: '*/jso
 router.get('/modem/delete/:modemName', pageModemDelete);
 router.get('/install-config', pageInstallConfig);
 router.get('/queues-and-providers', pageQueuesAndProviders);
+router.get('/modem-queue-name', pageModemQueueName);
+router.get('/modem-queue-name/:modemName', pageModemQueueName);
diff --git a/lib/smstools-config/queues-and-providers.js b/lib/smstools-config/queues-and-providers.js
index 6533da1..b4f80d0 100644
--- a/lib/smstools-config/queues-and-providers.js
+++ b/lib/smstools-config/queues-and-providers.js
@@ -89,3 +89,7 @@ exports.dump = async (mkdirIfQueueDirNotExists) => {
 
     return `${configLines.join('\n')}\n\n${providerLines.join('\n')}`;
 };
+
+exports.getModemQueueName = (modemName) => {
+    (smstoolsConfig.queues || []).find((queue) => (queue.modems || []).indexOf(modemName) >= 0);
+};