var request=require('request'); //*********************************************************************single number messages********************************************************************// //send message to only one number module.exports.sendOne=function(authkey,number,message,senderid,route,dialcode,callback) { var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }; //with unicode module.exports.sendOnewithUnicode=function(authkey,number,message,senderid,route,dialcode,callback) { var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode+'&unicode=1'; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }; //flash message module.exports.sendOnewithFlash=function(authkey,number,message,senderid,route,dialcode,callback) { var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode+'&flash=1'; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }; //json response module.exports.sendOneandGetJson=function(authkey,number,message,senderid,route,dialcode,callback) { var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode+'&response=json'; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }; //Schedule message //date should be yyyy-MM-dd time should be HH:mm:ss (24H format) module.exports.scheduleOne=function(authkey,number,message,senderid,route,dialcode,date,time,callback) { var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode+'&schtime='+date+' '+time; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }; //Schedule message with unicode //date should be yyyy-MM-dd time should be HH:mm:ss (24H format) module.exports.scheduleOnewithUnicode=function(authkey,number,message,senderid,route,dialcode,date,time,callback) { var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode+'&schtime='+date+' '+time+'&unicode=1'; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }; //******************************************************************************multiple numbers******************************************************************// //send message to multiple numbers module.exports.sendMultiple=function(authkey,numbers,message,senderid,route,dialcode,callback) { numbers.forEach(function(number){ var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }); }; //with unicode module.exports.sendMultiplewithUnicode=function(authkey,numbers,message,senderid,route,dialcode,callback) { numbers.forEach(function(number){ var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode+'&unicode=1'; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }); }; //flash message module.exports.sendMultiplewithFlash=function(authkey,numbers,message,senderid,route,dialcode,callback) { numbers.forEach(function(number){ var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode+'&flash=1'; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }); }; //json response module.exports.sendMultipleandGetJson=function(authkey,numbers,messages,senderid,route,dialcode,callback) { numbers.forEach(function(number){ var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode+'&response=json'; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }); }; //Schedule message //date should be yyyy-MM-dd time should be HH:mm:ss (24H format) module.exports.scheduleMultiple=function(authkey,numbers,message,senderid,route,dialcode,date,time,callback) { numbers.forEach(function(number){ var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode+'&schtime='+date+' '+time; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }); }; //Schedule message with unicode //date should be yyyy-MM-dd time should be HH:mm:ss (24H format) module.exports.scheduleMultiplewithUnicode=function(authkey,numbers,message,senderid,route,dialcode,date,time,callback) { numbers.forEach(function(number){ var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&mobiles='+number+'&message='+message+'&sender='+senderid+'&route='+route+'&country='+dialcode+'&schtime='+date+' '+time+'&unicode=1'; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }); }; //**********************************************************************************send to group********************************************************************// module.exports.sendtoGroup=function(authkey,message,senderid,groupid,callback) { var url='http://api.msg91.com/api/sendhttp.php?authkey='+authkey+'&message='+message+'&sender='+senderid+'&group_id='+groupid; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }; //*********************************************************************************Voice SMS***************************************************************************// //-----------------------send using draft file //single number module.exports.sendOneVoiceSmsusingDraft=function(authkey,number,draft_file_name,senderno,route,campaign,duration,schtimestart,schtimeend,callback) { var url='http://api.msg91.com/send_voice_mail.php?authkey='+authkey+'&campaign='+campaign+'&sender='+senderno+'&mobiles='+number+'&duration='+duration+'&draft_file_name'+draft_file_name+'&route='+route+'&schtimestart='+schtimestart+'&schtimeend'+schtimeend; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckVoiceSmsError(body,function(response){ callback(response); }); } }); } //multiple numbers module.exports.sendMVoiceSmsusingDraft=function(authkey,numbers,draft_file_name,senderno,route,campaign,duration,schtimestart,schtimeend,callback) { numbers.forEach(function(number){ var url='http://api.msg91.com/send_voice_mail.php?authkey='+authkey+'&campaign='+campaign+'&sender='+senderno+'&mobiles='+number+'&duration='+duration+'&draft_file_name'+draft_file_name+'&route='+route+'&schtimestart='+schtimestart+'&schtimeend'+schtimeend; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckVoiceSmsError(body,function(response){ callback(response); }); } }); }); } //----------------------send using url of file //single number module.exports.sendVoiceSmsusingUrl=function(authkey,number,url_file_name,senderno,route,campaign,duration,schtimestart,schtimeend,callback) { var url='http://api.msg91.com/send_voice_mail.php?authkey='+authkey+'&campaign='+campaign+'&sender='+senderno+'&mobiles='+number+'&duration='+duration+'&url_file_name'+url_file_name+'&route='+route+'&schtimestart='+schtimestart+'&schtimeend'+schtimeend; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckVoiceSmsError(body,function(response){ callback(response); }); } }); } //multiple number module.exports.sendMVoiceSmsusingUrl=function(authkey,numbers,url_file_name,senderno,route,campaign,duration,schtimestart,schtimeend,callback) { numbers.forEach(function(number){ var url='http://api.msg91.com/send_voice_mail.php?authkey='+authkey+'&campaign='+campaign+'&sender='+senderno+'&mobiles='+number+'&duration='+duration+'&url_file_name'+url_file_name+'&route='+route+'&schtimestart='+schtimestart+'&schtimeend'+schtimeend; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckVoiceSmsError(body,function(response){ callback(response); }); } }); }); } //check balance module.exports.checkBalance=function(authkey,route,callback) { var url='http://api.msg91.com/api/balance.php?authkey='+authkey+'&type='+route; var encodeurl=encodeURI(url); request(encodeurl, function (error, response, body) { if (!error && response.statusCode == 200) { //check for error CheckSmsError(body,function(response){ callback(response); }); } }); }; //check for error response function CheckSmsError(body,callback) { switch(body) { case 'code: 101': callback('Missing Mobile No.'); break; case 'code: 102': callback('Missing Message'); break; case 'code: 103': callback('Missing Password'); break; case 'code: 202': callback('Invalid Mobile No.'); break; case 'code: 203': callback('Invalid Sender ID'); break; case 'code: 207': callback('Auth Key Invalid'); break; case 'code: 208': callback('IP is black listed'); break; case 'code: 301': callback('Not Have Sufficient Balance to Send Sms'); break; case 'code: 302': callback('Expired User Account'); break; case 'code: 303': callback('Banned User Account.'); break; case 'code: 306': callback('This route is currently unavailable'); break; case 'code: 307': callback('Schedule time is Incorrect'); break; case 'code: 308': callback('Campaign name cannot greater than 32 characters'); break; case 'code: 309': callback('Selected group(s) may not belongs to you'); break; case 'code: 310': callback('SMS is too long. System pause this request automatically.'); break; case 'code: 311': callback('Request discarded because same request was generated twice within 10 seconds.'); break; default: callback(body); } } //check for error response function CheckVoiceSmsError(body,callback) { switch(body) { case 'code: 104': callback('Missing Username.'); break; case 'code: 105': callback('Missing Password'); break; case 'code: 201': callback('Invalid Username Or Password'); break; case 'code: 601': callback('Sender ID must be numeric'); break; case 'code: 602': callback('Your Current Route is disabled,Kindly Select another Route'); break; case 'code: 603': callback('This Sender ID is blacklisted, Please Use a different Sender ID.'); break; case 'code: 604': callback('Please Enter Atleast One Correct Number To Send SMS'); break; case 'code: 606': callback('Scheduled Date Cannot Be More than Three Weeks'); break; case 'code: 607': callback('Please Enter Campaign Name'); break; case 'code: 608': callback('Scheduled SMS Cannot Be Less Than Current Time'); break; case 'code: 609': callback('End Time Cannot Be Less Than Or Equal To Schedule Time'); break; case 'code: 610': callback('Duration can not be set to be zero'); break; case 'code: 614': callback('No voice file found Please enter voice file and proceed'); break; case 'code: 615': callback('Invalid file Type,Allow Extension are wav,wave,mp3,wma,ra,m4a,arm'); break; case 'code: 001': callback('Unable To Connect Database'); break; case 'code: 002': callback('Unable To Select Database'); break; default: callback(body); } }