Jump to content
Posted
  • Popular Post
comment_35854

Whatsapp Gateway | Multi Device


This script has been completely modified and many important features and fixes have been added by @Magd Almuntaser
He is now responsible for the updates of this script and has full intellectual property rights
So no one will violate the terms of use that he has set

Latest Features:
1. WhatsApp Account Connectivity

All types of WhatsApp Accounts to be able to connect with WhatsApp Gateway (Multi Number & Multi Device);
Ease of the WhatsApp Account connectivity process with a QRcode Scan or with an Authentication Code directly from your device.

2. Message

Availability of various types of (text messages, media, polls, lists, locations, VCard) can easily be used by you;
You can send mass messages for your marketing campaign activities, promotions or business programs easily and on a scheduled basis;
Setup automatic message replies with more natural (alami) and selected keywords for operational optimization of use;
Manage sent message history with automatic and scheduled deletions.

4. Integration

You can easily integrate your WhatsApp Account with various (AI) artificial intelligence services, namely ChatGPT, DALL-E, Gemini, and Cloude with API authentication codes only;
You can easily activate Ai for Single or Multiple use on your WhatsApp Account;
You can easily select Ai in your WhatsApp messages for WhatsApp Group, Private, or Both types;
You can easily setup call rejection automatically if there is a (Call) call and provide a specific response or information;
Setup your WhatsApp and Ai accounts more naturally (alami) with "Already read" status";
Setup your WhatsApp and Ai accounts more naturally (natural) with the status "Typing...".
You can easily integrate and communicate your services with the Webhook mechanism of WhatsApp Gateway | Multi Device.

5. Application Settings

Nowadays you can easily and quickly carry out the process of setting up the WhatsApp Gateway | Multi Device* application by Magd Almuntaser with the settings panel;
You can easily set up applications based on server ecosystem, smtp, etc quickly;
Multi language support (english, Indonesian, Indian, Spanish and Arabic) for easy use.

6. Developer Options

Currently WhatsApp Gateway | Multi Device* by Magd Almuntaser has provided various API services for your easy development consisting of:
        1). Send Message API
        2). Send Media API
        3). Send Poll API
        4). API Send Button
        5). Send API Templates
        6). Send List message API
        7). Send Location API
        8). Send VCard API
        9). Generate QR API
        10). Disconnect devices
        11). Create User API
        12). User Info API
        13). Device Info API
        14). Check Number API
        15). Webhook Example

Ease of setup and availability of the (API Key) API Key for authentication and authorization of your development process.

7. Security

Currently there is a 2 factor authentication (2FA) service available to maintain the security and comfort of application access;
A password reset service is available if you forget your account login information.


Coming Soon:

1. Landing page for Software as Service services (Subscription Services);
2. Payment gateway page management (QRIS, BCA virtual account, PayPal, Stripe);
3. Added user account management;
4. (ticket) obstacle reporting service for users and managers;
.. And many more.


 

  • Replies 4.1k
  • Views 248.4k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • Magd Almuntaser
    Magd Almuntaser

    What's new in version 9.0.0 so far: - Added landing page (welcome page). - Added plans system. - Added cronjob page. - Added Multi-Keyword in autoreply. - Added send message with footer. -

  • Magd Almuntaser
    Magd Almuntaser

    This version will not be released soon, because there are many people who violate rights without permission.. I told everyone to use the script for free, but if you want to sell the version or redev

  • Magd Almuntaser
    Magd Almuntaser

    Today the version will be released, and this is what's new in version 8.5.0: - Added send sticker feature. - Added wysiwyg whatsapp (text editing tools). - Added location, vcard, sticker in camp

Posted Images

Featured Replies

  • Author
comment_73998
4 minutes ago, agus amin said:

Sekaligus tambahkan form nya saat tambah device om

Saya telah mencoba membuat pengguna biasa dan mencoba menulis API, dan itu tersimpan secara otomatis. Masalahnya ada di browser Anda, bukan dari skripnya. Cobalah menggunakan browser lain. Tampaknya browser Anda memiliki ekstensi yang mencegah JavaScript Ajax bekerja dengan benar.

Mengenai penambahan fitur ChatGPT saat membuat perangkat baru, saya tidak berpikir itu penting karena fitur tersebut muncul langsung setelah membuat perangkat baru, jadi tidak baik untuk mengulanginya dua kali. Bahkan webhook juga tidak baik untuk muncul dua kali saat pembuatan dan setelah pembuatan, karena berada di halaman yang sama sebenarnya.

comment_73999
1 minute ago, Magd Almuntaser said:

Laporan panggilan sebenarnya muncul saat panggilan dilakukan, tetapi sangat sulit untuk menanganinya karena laporan yang ditampilkan pada gambar di bawah ini berasal dari socket perusahaan WhatsApp, bukan dari WhiskeySockets/Baileys. Jadi, kamu tidak bisa menangani socket perusahaan WhatsApp kecuali tim WhiskeySockets/Baileys yang membuatnya, atau kamu mengubah file mereka di GitHub dan membuat build versi tersebut. Namun, versi terbaru dari WhiskeySockets/Baileys tidak kompatibel dengan skrip ini dan membutuhkan perubahan total pada skrip.

Jadi, situasinya saat ini sangat sulit dan tidak akan berhasil untukmu. Tetapi saya harap kamu berhasil, karena ini adalah fitur yang hebat bagi mereka yang memiliki nomor bot.

image.png.9e5e98f49ae62246cc202443bfb68a2d.png

Tampilannya seperti ini kawan..

image.png.5c0c27479a11363f95b7e9a4ff2fa296.png

Anda bisa mencoba memanggil saya pada no ini 6281262559232

comment_74001
46 minutes ago, agus amin said:

@Magd Almuntaser gimana cara agar gemini tidak menjawab otomatis ke group whatsapp, kemudian tolong perbaiki api key gemini/chat gpt user tidak bisa menyimpan otomatis ke database di mpwa, kalau admin bisa menyimpan, untuk user belum

utk gemini bisa menjawab di group , menurut saya merupakan suatu hal yang bagus, hal ini tidak perlu dihilangkan.💯

comment_74005

Saya telah menambahi fungsi tolak panggilan pada script whatsapp.js, jika anda ingin mencobanya, tolong jangan replace filenya, perhatikan scriptnya, ambil potongan script yang saya tambahi, agar bisa sama-sama belajar membaca fungsi script. Jika ingin mereplace file silahkan Anda backup terlebih dulu file whatsapp.js anda.

kemudian pada phpmyadmin di tabel number tambahi column noCall dan textNoCall, noCall berisi yes atau no sedangkan textNoCall berisi pesan untuk dikirimkan setelah menolak panggilan.

image.thumb.png.ca8ec968a1b45e6d8a9a218453a58a8a.png

Restart nodejs, lihat apakah ada error atau tidak..

Selamat mencoba...

whatsapp.js

Edited by Dammah Sifla

comment_74006
8 minutes ago, Dammah Sifla said:

Saya telah menambahi fungsi tolak panggilan pada script whatsapp.js, jika anda ingin mencobanya, tolong jangan replace filenya, perhatikan scriptnya, ambil potongan script yang saya tambahi, agar bisa sama-sama belajar membaca fungsi script. Jika ingin mereplace file silahkan Anda backup terlebih dulu file whatsapp.js anda.

kemudian pada phpmyadmin di tabel number tambahi column noCall dan textNoCall, noCall berisi yes atau no sedangkan textNoCall berisi pesan untuk dikirimkan setelah menolak panggilan.

image.thumb.png.ca8ec968a1b45e6d8a9a218453a58a8a.png

Restart nodejs, lihat apakah ada error atau tidak..

Selamat mencoba...

whatsapp.js 19.44 kB · 0 downloads

@Dammah Sifla must we add those columns in DB???

comment_74007
9 minutes ago, Dammah Sifla said:

Saya telah menambahi fungsi tolak panggilan pada script whatsapp.js, jika anda ingin mencobanya, tolong jangan replace filenya, perhatikan scriptnya, ambil potongan script yang saya tambahi, agar bisa sama-sama belajar membaca fungsi script. Jika ingin mereplace file silahkan Anda backup terlebih dulu file whatsapp.js anda.

kemudian pada phpmyadmin di tabel number tambahi column noCall dan textNoCall, noCall berisi yes atau no sedangkan textNoCall berisi pesan untuk dikirimkan setelah menolak panggilan.

image.thumb.png.ca8ec968a1b45e6d8a9a218453a58a8a.png

Restart nodejs, lihat apakah ada error atau tidak..

Selamat mencoba...

whatsapp.js 19.44 kB · 0 downloads

if so create a migration file, so we will not get confused

  • Author
comment_74012

I see that there are many modifications to the bot such as chatgpt, gemini, personal or group messaging, and call cancellation, In the future, I may add other ai such as claude and DALL-E, so I think I will separate these features into a new page in the next version, below the Auto reply button in the menu, and make it (AI Bot).

comment_74016
4 hours ago, Dammah Sifla said:

Saya telah menambahi fungsi tolak panggilan pada script whatsapp.js, jika anda ingin mencobanya, tolong jangan replace filenya, perhatikan scriptnya, ambil potongan script yang saya tambahi, agar bisa sama-sama belajar membaca fungsi script. Jika ingin mereplace file silahkan Anda backup terlebih dulu file whatsapp.js anda.

kemudian pada phpmyadmin di tabel number tambahi column noCall dan textNoCall, noCall berisi yes atau no sedangkan textNoCall berisi pesan untuk dikirimkan setelah menolak panggilan.

image.thumb.png.ca8ec968a1b45e6d8a9a218453a58a8a.png

Restart nodejs, lihat apakah ada error atau tidak..

Selamat mencoba...

whatsapp.js 19.44 kB · 1 download

Terima kasih banyak atas bantuannya saya akan mencobanya. 

Apakah yang anda maksud tabel Device? Karena saya tidak menemukan tabel number. 

Edited by nikokenzo

  • Author
comment_74023
1 hour ago, Jei Grey said:

@Magd Almuntaser

image.thumb.png.4d727f22744524c6be4e55db4824bced.png

run storage-link any eror like this. any solution?

Your hosting block symlink function ..

If you have vps you can enable this function and try again or run this command in SSH:

php artisan storage:link

If you don't have vps and you have aapanel you can create symlink from files ..

  • Author
comment_74024
7 hours ago, The Billionaire said:

@Magd Almuntaser I will need you on this build, I would have loved to do it, but since you are good at it let me leave it for you

Yes, I will do that. I might release the next version today or tomorrow.
It contains many fixes and additions.
Some of these additions include:

- new page for updating the version remotely with a single click without needing to download the compressed file (smart update)
- new page for the AI bot with all options
- Added Claude API
- Added an option for (read) for bot conversations
- The ability to choose if you want to integrate more than one bot and call it by name in the conversation or not
- The ability to enable or disable calls for the bot
- Fixed the date issue in (message history)
- Fixed the port page for those using SSL
... and more

comment_74025
16 minutes ago, Magd Almuntaser said:

Yes, I will do that. I might release the next version today or tomorrow.
It contains many fixes and additions.
Some of these additions include:

- new page for updating the version remotely with a single click without needing to download the compressed file (smart update)
- new page for the AI bot with all options
- Added Claude API
- Added an option for (read) for bot conversations
- The ability to choose if you want to integrate more than one bot and call it by name in the conversation or not
- The ability to enable or disable calls for the bot
- Fixed the date issue in (message history)
- Fixed the port page for those using SSL
... and more

we are waiting for it sir. thanks in advance

comment_74027
1 hour ago, Magd Almuntaser said:

Yes, I will do that. I might release the next version today or tomorrow.
It contains many fixes and additions.
Some of these additions include:

- new page for updating the version remotely with a single click without needing to download the compressed file (smart update)
- new page for the AI bot with all options
- Added Claude API
- Added an option for (read) for bot conversations
- The ability to choose if you want to integrate more than one bot and call it by name in the conversation or not
- The ability to enable or disable calls for the bot
- Fixed the date issue in (message history)
- Fixed the port page for those using SSL
... and more

Thanx you , ini luar biasa..👍

1 hour ago, Magd Almuntaser said:

Yes, I will do that. I might release the next version today or tomorrow.
It contains many fixes and additions.
Some of these additions include:

- new page for updating the version remotely with a single click without needing to download the compressed file (smart update)
- new page for the AI bot with all options
- Added Claude API
- Added an option for (read) for bot conversations
- The ability to choose if you want to integrate more than one bot and call it by name in the conversation or not
- The ability to enable or disable calls for the bot
- Fixed the date issue in (message history)
- Fixed the port page for those using SSL
... and more

Thanx you , ini luar biasa..👍

comment_74028
1 hour ago, Magd Almuntaser said:

Yes, I will do that. I might release the next version today or tomorrow.
It contains many fixes and additions.
Some of these additions include:

- new page for updating the version remotely with a single click without needing to download the compressed file (smart update)
- new page for the AI bot with all options
- Added Claude API
- Added an option for (read) for bot conversations
- The ability to choose if you want to integrate more than one bot and call it by name in the conversation or not
- The ability to enable or disable calls for the bot
- Fixed the date issue in (message history)
- Fixed the port page for those using SSL
... and more

We all always waiting this goodnews sir.. thank you,

comment_74029
2 hours ago, Magd Almuntaser said:

Yes, I will do that. I might release the next version today or tomorrow.
It contains many fixes and additions.
Some of these additions include:

- new page for updating the version remotely with a single click without needing to download the compressed file (smart update)
- new page for the AI bot with all options
- Added Claude API
- Added an option for (read) for bot conversations
- The ability to choose if you want to integrate more than one bot and call it by name in the conversation or not
- The ability to enable or disable calls for the bot
- Fixed the date issue in (message history)
- Fixed the port page for those using SSL
... and more

Luar biasa master

comment_74037
4 hours ago, Magd Almuntaser said:

Yes, I will do that. I might release the next version today or tomorrow.
It contains many fixes and additions.
Some of these additions include:

- new page for updating the version remotely with a single click without needing to download the compressed file (smart update)
- new page for the AI bot with all options
- Added Claude API
- Added an option for (read) for bot conversations
- The ability to choose if you want to integrate more than one bot and call it by name in the conversation or not
- The ability to enable or disable calls for the bot
- Fixed the date issue in (message history)
- Fixed the port page for those using SSL
... and more

Thank you sir. 

comment_74044
On 7/11/2024 at 12:09 AM, Magd Almuntaser said:

How To Run (Whatsapp Gateway Multi Device) Via SSL
(For All Version)

((Cpanel+Cloudflare))

 

In this guide, we will use SSL for cPanel and Cloudflare users only.

1- we need to know that Cloudflare uses these ports exclusively:

443
2053
2083
2087
2096

8443
We will use port 8443 because it is not used by cPanel.

2-  let's assume the script is located at this domain:

https:// magd.com/ws

We will go to Cloudflare and select SSL/TLS -> Overview, then choose Full.

image.thumb.jpeg.27a536c007888bb9469fa03d971a8c28.jpeg

 

3- we will edit the .env file located in the root directory of the script and change these fields to https:// and Port to 8443
 

APP_URL=https://magd .com
WA_URL_SERVER=https://magd .com:8443
PORT_NODE=8443

4- we will login to cPanel, go to SSL/TLS:

image.jpeg.665b2a65a119f62217e5539beaa117ad.jpeg

and then Manage SSL sites:

image.jpeg.e34273c20eb386411ff6dcbe3176d844.jpeg

5- Now we will select Use Certificate for New Site:

image.jpeg.834449444e0a8b069fa6f4da36c9e5dd.jpeg

Two fields will appear. The first is Certificate: (CRT) which we will copy and save in a file named cert.pem. The other is Private Key (KEY) which we will save in a file named key.pem:

image.jpeg.087e3b6d551147b10f973ab1b7ec994b.jpeg

6- We will upload the two files we saved, cert.pem and key.pem, to the root directory of the script. Then, we will edit the server.js file and replace this code from:

/**
 * EXPRESS FOR ROUTING
 */
const express = require("express");
const app = express();
const http = require("http");
const server = http.createServer(app);

To:
 

/**
 * EXPRESS FOR ROUTING
 */
const serverOptions = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
}

const express = require("express");
const app = express();
const https = require("https");
const server = https.createServer(serverOptions, app);

7- And finally, the last step, is to edit the routes/web.php file and add this code at the end of the file:
 

URL::forceScheme('https');

 

Now you can restart Node.js and enjoy using the script over HTTPS
I will later post how to use SSL on the aaPanel control panel. Therefore, if anyone has a website using this panel, please send your site details (PM) so I can use them for the explanation, as I don't currently have aaPanel 🙂

THIS IS ERROR 

ReferenceError: Cannot access 'fs' before initialization
    at Object.<anonymous> (/home/kdletqgj/message.aacademy.in/server.js:10:8)
    at Module._compile (node:internal/modules/cjs/loader:1358:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
    at Module.load (node:internal/modules/cjs/loader:1208:32)
    at Module._load (node:internal/modules/cjs/loader:1024:12)
    at Module.require (node:internal/modules/cjs/loader:1233:19)
    at require (node:internal/modules/helpers:179:18)
    at startApplication (/usr/local/lsws/fcgi-bin/lsnode.js:48:15)
    at Object.<anonymous> (/usr/local/lsws/fcgi-bin/lsnode.js:16:1)
    at Module._compile (node:internal/modules/cjs/loader:1358:14)

Node.js v20.14.0
/home/kdletqgj/message.aacademy.in/server.js:10
  key: fs.readFileSync('key.pem'),
       ^


MY SERVER.JS IS 
 

const wa = require("./server/whatsapp");
const fs = require("fs");
const dbs = require('./server/database/index');
require("dotenv").config();
const lib = require("./server/lib");
global.log = lib.log;

/**
 * EXPRESS FOR ROUTING
 */
const serverOptions = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
}

const express = require("express");
const app = express();
const https = require("https");
const server = https.createServer(serverOptions, app);

/**
 * SOCKET.IO
 */
const { Server } = require("socket.io");
const io = new Server(server);
const port = process.env.PORT_NODE;
app.use((req, res, next) => {
  res.set("Cache-Control", "no-store");
  req.io = io;
  // res.set('Cache-Control', 'no-store')
  next();
});

const bodyParser = require("body-parser");

// parse application/x-www-form-urlencoded
app.use(
  bodyParser.urlencoded({
    extended: false,
    limit: "50mb",
    parameterLimit: 100000,
  })
);
// parse application/json
app.use(bodyParser.json());
app.use(express.static("src/public"));
app.use(require("./server/router"));

// console.log(process.argv)

io.on("connection", (socket) => {
  socket.on("StartConnection", (data) => {
    wa.connectToWhatsApp(data, io);
  });
  socket.on("ConnectViaCode", (data) => {
    wa.connectToWhatsApp(data, io, true);
  });
  socket.on("LogoutDevice", (device) => {
    wa.deleteCredentials(device, io);
  });
});
server.listen(port, console.log(`Server run and listening port: ${port}`));

dbs.db.query("SELECT * FROM devices WHERE status = 'Connected'", (err, results) => {
    if (err) {
      console.error('Error executing query:', err);
    }
    results.forEach(row => {
      const number = row.body;
      if (/^\d+$/.test(number)) {
        wa.connectToWhatsApp(number);
      }
    });
});

  • Author
comment_74045
11 minutes ago, sonu kumar saini said:

THIS IS ERROR 

ReferenceError: Cannot access 'fs' before initialization
    at Object.<anonymous> (/home/kdletqgj/message.aacademy.in/server.js:10:8)
    at Module._compile (node:internal/modules/cjs/loader:1358:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1416:10)
    at Module.load (node:internal/modules/cjs/loader:1208:32)
    at Module._load (node:internal/modules/cjs/loader:1024:12)
    at Module.require (node:internal/modules/cjs/loader:1233:19)
    at require (node:internal/modules/helpers:179:18)
    at startApplication (/usr/local/lsws/fcgi-bin/lsnode.js:48:15)
    at Object.<anonymous> (/usr/local/lsws/fcgi-bin/lsnode.js:16:1)
    at Module._compile (node:internal/modules/cjs/loader:1358:14)

Node.js v20.14.0
/home/kdletqgj/message.aacademy.in/server.js:10
  key: fs.readFileSync('key.pem'),
       ^


MY SERVER.JS IS 
 

const wa = require("./server/whatsapp");
const fs = require("fs");
const dbs = require('./server/database/index');
require("dotenv").config();
const lib = require("./server/lib");
global.log = lib.log;

/**
 * EXPRESS FOR ROUTING
 */
const serverOptions = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
}

const express = require("express");
const app = express();
const https = require("https");
const server = https.createServer(serverOptions, app);

/**
 * SOCKET.IO
 */
const { Server } = require("socket.io");
const io = new Server(server);
const port = process.env.PORT_NODE;
app.use((req, res, next) => {
  res.set("Cache-Control", "no-store");
  req.io = io;
  // res.set('Cache-Control', 'no-store')
  next();
});

const bodyParser = require("body-parser");

// parse application/x-www-form-urlencoded
app.use(
  bodyParser.urlencoded({
    extended: false,
    limit: "50mb",
    parameterLimit: 100000,
  })
);
// parse application/json
app.use(bodyParser.json());
app.use(express.static("src/public"));
app.use(require("./server/router"));

// console.log(process.argv)

io.on("connection", (socket) => {
  socket.on("StartConnection", (data) => {
    wa.connectToWhatsApp(data, io);
  });
  socket.on("ConnectViaCode", (data) => {
    wa.connectToWhatsApp(data, io, true);
  });
  socket.on("LogoutDevice", (device) => {
    wa.deleteCredentials(device, io);
  });
});
server.listen(port, console.log(`Server run and listening port: ${port}`));

dbs.db.query("SELECT * FROM devices WHERE status = 'Connected'", (err, results) => {
    if (err) {
      console.error('Error executing query:', err);
    }
    results.forEach(row => {
      const number = row.body;
      if (/^\d+$/.test(number)) {
        wa.connectToWhatsApp(number);
      }
    });
});

Download the attcachment and replace ..
if you still have a problem, downgrade your node to v18

server.js

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

Recently Browsing 0

  • No registered users viewing this page.

Latest Updated Files