Voipnotes
Услуги
  • 3CX Phone System
    • Купить IP АТС - 3CX Phone System
Ещё
    Задать вопрос
    +7 (499) 113-65-73
    Заказать звонок
    sale@voipnotes.ru
    г. Москва 2-й Михайловский проезд 9
    +7 (499) 113-65-73
    Заказать звонок
    Voipnotes
    Услуги
    • 3CX Phone System
      • Купить IP АТС - 3CX Phone System
      Voipnotes
      Услуги
      • 3CX Phone System
        • Купить IP АТС - 3CX Phone System
        Voipnotes
        Voipnotes
        • Услуги
          • Назад
          • Услуги
          • 3CX Phone System
            • Назад
            • 3CX Phone System
            • Купить IP АТС - 3CX Phone System
        • +7 (499) 113-65-73
        sale@voipnotes.ru
        г. Москва 2-й Михайловский проезд 9
        • Главная
        • Блог
        • FreePBX:Рандомная подстановка номеров при исходящих вызовах

        FreePBX:Рандомная подстановка номеров при исходящих вызовах

        21 Мая 2015

        Бывают случаи, когда при исходящих вызовах требуется закрываться не одним номером, а произвольно подставлять номер из определенного диапазона (особенно актуально для коллекторов). В сегодняшней статье мы расскажем, как при исходящих вызовах рандомно (random) подставлять А-номер. В наличие у нас FreePBX с настроенным транком и пулом номеров: 4959999951,4959999952,4959999953,4959999954,4959999955.

        Первым делом создадим исходящее правило. Переходим во вкладку Outbound Routes (Исходящие правила) и создадим обычное правило, например:

          FreePBX-Rand.jpg

        Сохраняем (Submit Changes) и применяем (Apply Config).

         

        Теперь заходим в консоль и открываем файл

        nano /etc/asterisk/extensions_additional.conf

        Теперь нам нужно найти наше правило и соответствующий ему внутренний контекст FreePBX. В нашем случае ищем правило RandomOutbound. Находим примерно следующее:

        include => outrt-2 ; RandomOutbound

        В данном случае контекст для нашего правила (RandomOutbound) называется outrt-2. Найдем наш контекст outrt-2:

        [outrt-2] ; RandomOutbound
        include => outrt-2-custom
        exten => _8XXXXXXXXXX,1,Macro(user-callerid,LIMIT,EXTERNAL,)
        exten => _8XXXXXXXXXX/100,1,Macro(user-callerid,LIMIT,EXTERNAL,)
        exten => _8XXXXXXXXXX/100,n,Gosub(sub-record-check,s,1(out,${EXTEN},dontcare))
        exten => _8XXXXXXXXXX/100,n,ExecIf($[ "${CALLEE_ACCOUNCODE}" != "" ] ?Set(CDR(accountcode)=${CALLEE_ACCOUNCODE}))
        exten => _8XXXXXXXXXX/100,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
        exten => _8XXXXXXXXXX/100,n,Set(_NODEST=)
        exten => _8XXXXXXXXXX/100,n,Macro(dialout-trunk,2,${EXTEN},,off)
        exten => _8XXXXXXXXXX/100,n,Macro(outisbusy,)

        Открываем extensions_override_freepbx.conf

        nano /etc/asterisk/extensions_override_freepbx.conf

        И создадим новый контекст outrt-2 с исходящими правилами и подстановкой CID:

        [outrt-2]
        include => outrt-2
        exten => _8XXXXXXXXXX,1,Noop
        exten => _8XXXXXXXXXX,n,Gosub(pickCallerIDnum,cell${RAND(1,5)},1)
        exten => _8XXXXXXXXXX,n,Dial(SIP/название транка оператора/${EXTEN},30)

        [pickCallerIDnum]
        exten => cell1,1,Set(CALLERID(num)= 84959999951) ;Указываем номера которыми должен закрываться вызов
        same => n,Return
        exten => cell2,1,Set(CALLERID(num)= 84959999952);Указываем номера которыми должен закрываться вызов
        same => n,Return
        exten => cell3,1,Set(CALLERID(num)= 84959999953);Указываем номера которыми должен закрываться вызов
        same => n,Return
        exten => cell4,1,Set(CALLERID(num)= 84959999954);Указываем номера которыми должен закрываться вызов
        same => n,Return
        exten => cell5,1,Set(CALLERID(num)= 84959999955);Указываем номера которыми должен закрываться вызов
        same => n,Return

        В консоли Asterisk делаем dialplan reload и все должно заработать.

         

        Если в исходящих правилах вы ставили ограничение по определенным внутренними номерам или, например, запись вызова, то советуем полностью скопировать outrt 2 из extensions_additional.conf в extensions_override_freepbx.conf и добавить Gosub и [pickCallerIDnum] из предыдущего примера. Должно получиться примерно так:

        nano /etc/asterisk/extensions_override_freepbx.conf

        [outrt-2]
        include => outrt-2
        exten => _8XXXXXXXXXX/100,1,Macro(user-callerid,LIMIT,EXTERNAL,)
        exten => _8XXXXXXXXXX/100,n,Gosub(sub-record-check,s,1(out,${EXTEN},yes))
        exten => _8XXXXXXXXXX/100,n,Gosub(pickCallerIDnum,cell${RAND(1,5)},1)
        exten => _8XXXXXXXXXX/100,n,ExecIf($[ "${CALLEE_ACCOUNCODE}" != "" ] ?Set(CDR(accountcode)=${CALLEE_ACCOUNCODE}))
        exten => _8XXXXXXXXXX/100,n,Set(MOHCLASS=${IF($["${MOHCLASS}"=""]?default:${MOHCLASS})})
        exten => _8XXXXXXXXXX/100,n,Set(_NODEST=)
        exten => _8XXXXXXXXXX/100,n,Macro(dialout-trunk,2,${EXTEN},,off)
        exten => _8XXXXXXXXXX/100,n,Macro(outisbusy,)


        [pickCallerIDnum]
        exten => cell1,1,Set(CALLERID(num)= 84959999951) ;Указываем номера которыми должен закрываться вызов
        same => n,Return
        exten => cell2,1,Set(CALLERID(num)= 84959999952);Указываем номера которыми должен закрываться вызов
        same => n,Return
        exten => cell3,1,Set(CALLERID(num)= 84959999953);Указываем номера которыми должен закрываться вызов
        same => n,Return
        exten => cell4,1,Set(CALLERID(num)= 84959999954);Указываем номера которыми должен закрываться вызов
        same => n,Return
        exten => cell5,1,Set(CALLERID(num)= 84959999955);Указываем номера которыми должен закрываться вызов
        same => n,Return

        На этом наша настройка завершена.

        Если вы в статье нашли ошибки или несоответствия, мы будем благодарны, если вы напишите нам о них в комментариях.

        Нужна консультация?

        Наши специалисты ответят на любой интересующий вопрос

        Задать вопрос
        Поделиться
        Назад к списку
        © 2021 Все права защищены.
        +7 (499) 113-65-73
        Заказать звонок
        sale@voipnotes.ru
        г. Москва 2-й Михайловский проезд 9
        Политика конфиденциальности
        Версия для печати
        © 2021 Все права защищены.
        Заказать звонок
        Написать сообщение