NEWS
Скрипт для ip телефонии - Asterisk
-
Скрипт проговаривает имя звонящего. Если нет сопоставления номер = имя, то проговаривается номер телефона.
В настройках Asteriska настроил, чтобы передавался номер звонящего в ioBroker созданной мной переменной incomingPhoneNumber.
Телефоны выдуманные
createState("incomingPhoneNumber"); on({id:'incomingPhoneNumber', change:'any'}, function (obj) { var idSayIt = "sayit.0.tts.text"; var date = new Date(); var hour = date.getHours(); var volume = 100; var incomingPhone = String(obj.newState.val); if(hour == 23) volume = 70; var callerList = { '562629': 'Петя', '520291': 'Вася', '522011': 'Федя', '89050000022': 'Мой номер', }; //Если такой номер есть в массиве var callerName = callerList[incomingPhone]; var lengthPhone = incomingPhone.length; if(callerName){ setState (idSayIt, volume+';Входящий вызов. '+callerName+'.'); //Если нет, то формируем номер в более читаемый вид }else{ if(lengthPhone == 6) incomingPhone = incomingPhone.substr(0,2)+'-'+ incomingPhone.substr(2,2)+'-'+ incomingPhone.substr(4,2); else if(lengthPhone == 11) incomingPhone = incomingPhone.substr(0,1)+'-'+ incomingPhone.substr(1,3)+'-'+ incomingPhone.substr(4,3)+'-'+incomingPhone.substr(7,4); setState (idSayIt, volume+';Входящий вызов. '+incomingPhone+'.'); } });
-
Как asterisk отдаёт номера в iobroker? в диалплане?
-
Как asterisk отдаёт номера в iobroker? в диалплане? `
В extensions.conf
[DID_trunk_1]
include=DID_trunk_1_default
[DID_trunk_1_default]
exten=_X.,1,system(curl "http://192.168.0.200:8087/set/javascrip … LERID(num)}")
exten=_X.,2,Goto(default,100,1)
-
vtec, спасибо .
-
vtec, извиняюсь за наглость, а как добавить вариант что номер не определился(скрыт)
в логах выглядит так
! Start javascript script.js.incomingPhoneNumber
! Stop script script.js.incomingPhoneNumber
! saying: Входящий вызов с номера. null.
! saying: /opt/iobroker/node_modules/iobroker.sayit/Chord.mp3 -
В список контактов добавил строку: 'null': 'номер не определён'.
Вроде сработало.
-
В список контактов добавил строку: 'null': 'номер не определён'.
Вроде сработало. `
Гениально, а я пытался отловить при помощи условий.Одна голова хорошо, а две ….....альтернатива...