Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Русский
    3. ioBroker
    4. Скрипты
    5. ioBroker скрипты
    6. Скрипт для ip телефонии - Asterisk

    NEWS

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    • Save The Date: ioBroker@Smart Living Forum Solingen, 14.06.

    Скрипт для ip телефонии - Asterisk

    This topic has been deleted. Only users with topic management privileges can see it.
    • V
      vtec last edited by

      Скрипт проговаривает имя звонящего. Если нет сопоставления номер = имя, то проговаривается номер телефона.

      В настройках 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+'.');
          }
      });
      
      
      1 Reply Last reply Reply Quote 0
      • aurodionov
        aurodionov last edited by

        Как asterisk отдаёт номера в iobroker? в диалплане?

        1 Reply Last reply Reply Quote 0
        • V
          vtec last edited by

          @aurodionov:

          Как 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)

          1 Reply Last reply Reply Quote 0
          • aurodionov
            aurodionov last edited by

            vtec, спасибо .

            1 Reply Last reply Reply Quote 0
            • aurodionov
              aurodionov last edited by

              vtec, извиняюсь за наглость, а как добавить вариант что номер не определился(скрыт)

              в логах выглядит так

              ! Start javascript script.js.incomingPhoneNumber
              ! Stop script script.js.incomingPhoneNumber
              ! saying: Входящий вызов с номера. null.
              ! saying: /opt/iobroker/node_modules/iobroker.sayit/Chord.mp3

              1 Reply Last reply Reply Quote 0
              • V
                vtec last edited by

                В список контактов добавил строку: 'null': 'номер не определён'.

                Вроде сработало.

                1 Reply Last reply Reply Quote 0
                • aurodionov
                  aurodionov last edited by

                  @vtec:

                  В список контактов добавил строку: 'null': 'номер не определён'.

                  Вроде сработало. `
                  Гениально, а я пытался отловить при помощи условий.

                  Одна голова хорошо, а две ….....альтернатива...

                  1 Reply Last reply Reply Quote 0
                  • First post
                    Last post

                  Support us

                  ioBroker
                  Community Adapters
                  Donate

                  595
                  Online

                  31.6k
                  Users

                  79.4k
                  Topics

                  1.3m
                  Posts

                  2
                  7
                  3463
                  Loading More Posts
                  • Oldest to Newest
                  • Newest to Oldest
                  • Most Votes
                  Reply
                  • Reply as topic
                  Log in to reply
                  Community
                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                  The ioBroker Community 2014-2023
                  logo