|
|
@@ -0,0 +1,57 @@ |
|
|
'use strict'; |
|
|
const DBus = require('dbus'); |
|
|
const co = require('co'); |
|
|
let bus = DBus.getBus('system'); |
|
|
let mm = bus.getInterface.bind(bus, 'org.freedesktop.ModemManager1'); |
|
|
|
|
|
co(function*(){ |
|
|
let messaging = yield new Promise((res, rej)=>{ |
|
|
mm('/org/freedesktop/ModemManager1', 'org.freedesktop.DBus.ObjectManager', (err, manager)=>{ |
|
|
if(err){ rej(err); return } |
|
|
|
|
|
manager.GetManagedObjects((err, modems)=>{ |
|
|
if(err){ rej(err); return } |
|
|
|
|
|
let pathModems = Object.keys(modems); |
|
|
mm(pathModems[0], 'org.freedesktop.ModemManager1.Modem.Messaging', (err, messaging)=>{ |
|
|
if(err){ rej(err); return } |
|
|
res(messaging); |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
|
|
|
let SMSpath = yield new Promise((res, rej)=>{ |
|
|
messaging.Create({number:'5512345678', text:'Hello there/Hola ahí'}, (err, SMSpath)=>{ |
|
|
if(err){ rej(err); return } |
|
|
res(SMSpath); |
|
|
}); |
|
|
}); |
|
|
|
|
|
mm(SMSpath, 'org.freedesktop.ModemManager1.Sms', (err, sms)=>{ |
|
|
if(err){ throw new Error(err) } |
|
|
sms.Send(); |
|
|
}); |
|
|
|
|
|
return new Promise((res, rej)=>{ |
|
|
mm(SMSpath, 'org.freedesktop.DBus.Properties', (err, sms)=>{ |
|
|
if(err){ rej(err); return } |
|
|
sms.on('PropertiesChanged', (iface, changed)=>{ |
|
|
console.log(changed); |
|
|
if(changed.State == 5){ |
|
|
res(); |
|
|
}else{ |
|
|
rej(new Error('Envío no completado'+ changed)); |
|
|
} |
|
|
}); |
|
|
}); |
|
|
}); |
|
|
}) |
|
|
.then(_=>{ |
|
|
console.log('Eso fue todo amigos') |
|
|
process.exit(); |
|
|
}) |
|
|
.catch(err=>{ |
|
|
console.error(err); |
|
|
process.exit(); |
|
|
}); |