пїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅ
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Привет всем! В сегодняшней статье мы хотим рассказать об одном крайне полезном трюке, который поможет сохранить время Вам и клиентам, позвонившим в Вашу компанию. Демонстрировать этот функционал мы будем на IP-АТС Asterisk через графический интерфейс FreePBX 14. Данная статья будет особенно актуальна для тех, кто пользуется переадресацией входящих звонков на мобильный телефон. Возможно, кто-то уже использует данный способ, но многие могут о нем и не знать. Кейс Итак, представим себе такую гипотетическую ситуацию: К нам в компанию позвонил клиент; Звонок поступил на ринг группу 345, в которой находится 3 внутренних номера; Звонки с этих внутренних номеров переадресовываются на мобильные номера менеджеров; И вот на своём мобильном телефоне звонок клиента принял менеджер Алексей; Они общаются, и тут у клиента возникает вопрос к инженеру, клиент просит перевести его на инженера; Алексей может находиться вне офиса и не за стационарным телефоном и не может перевести звонок клиента обратно; Он просит клиента перезвонить на общий номер компании и донабрать внутренний номер инженера; Ситуация вполне нормальная, но мы вынуждены просить нашего клиента звонить повторно, донабирать номер, тратить свое время и так далее. Вот бы было здорово иметь возможность перевести звонок клиента на нужный номер прямо с мобильного? А ещё лучше, если мы сможем поговорить с человеком, на которого нужно перевести звонок и узнать не занят ли он, прежде чем делать трансфер! Такая возможность есть и сейчас мы объясним как её реализовать. Решение Дело в том, что когда звонки с нашей IP-АТС переводятся на мобильный телефон, то канал между ними не разрывается. Например, если у вас включена запись, то вы можете увидеть, что такие звонки также записываются. А значит, мы можем контролировать такие звонки на любом устройстве, даже на мобильном телефоне. Делать трансфер, ставить на ожидание, парковать и так далее. Для того, чтобы открылась возможность сделать трансфер на другой номер, находясь в звонке, нужно передать приложению Asterisk Dial() нужный аргумент. Во FreePBX это настраивается в Settings → Advanced Settings в разделе Dialplan and Operational. Здесь есть два поля - Asterisk Dial Options, в котором можно добавить аргументы Dial() при совершении внутренних звонков и Asterisk Outbound Trunk Dial Options, который отвечает за обработку аргументов Dial() при совершении внешних звонков через транк, как раз это поле нам и нужно. По умолчанию в данном поле всего один аргумент - большая буква T. Этот аргумент позволяет позвонившей стороне сделать трансфер используя feature code - ## Сервисный код ## соответствует функции “слепого” трансфера -In-Call Asterisk Blind Transfer Однако, когда мы принимаем звонок на мобильном телефоне, то являемся вызываемой стороной, поэтому нам нужен другой аргумент – маленькая буква t. С помощью данного аргумента, мы сможем делать трансфер находясь в звонке, используя всё тот же feature code - ##. Итак, можно добавить аргумент t в поле Asterisk Outbound Trunk Dial Options, но тогда этот функционал распространится на все транки, которые созданы на вашей IP-АТС. Есть более безопасный способ включить трансфер на принимающей стороне. Для этого переходим в Connectivity → Trunks и в настройках транка на вкладке General ищем опцию Asterisk Trunk Dial Options По умолчанию, в данной опции мы так же увидим аргумент T, так как стоит параметр System, который просто подтягивает значения аргумента из Asterisk Outbound Trunk Dial Options в Advanced Settings Выбрав параметр Override, мы можем записать сюда какие угодно аргументы и они будут действовать только для данного конкретного транка. Запишем сюда маленькую t. Итак, теперь, если Вы приняли вызов на мобильном телефоне, а человек, с которым Вы разговариваете просит перевести его на другого сотрудника, Вы можете просто: Нажать ## на своём мобильном телефоне, после чего Вы услышите в трубке сообщение “перевод”; Набрать нужный номер (например - 529). В это время позвонивший будет слышать музыку на ожидании; Вызов автоматически завершится, а звонок будет переадресован тому, чей номер Вы набрали; Profit; А помните мы говорили, что можно ещё поговорить с тем, кому нужно перевести вызов, прежде чем его переводить, чтобы уточнить не занят ли этот человек? Так вот такая возможность при принятии звонка на мобильном тоже есть! Если мы откроем возможные сервисные коды (feature code) функций трансфера, то увидим, что их два - ## - In-Call Asterisk Blind Transfer, который мы уже знаем, и *2 - функция консультативного трансфера - In-Call Asterisk Attended Transfer. Таким образом, можно также пользоваться консультативным трансфером, в этом случае нужно: Нажать *2 на своём мобильном телефоне, после чего Вы услышите в трубке сообщение “перевод”; Набрать нужный номер (например - 529). В это время позвонивший будет слышать музыку на ожидании; Дождаться, пока человек, которому нужно перевести вызов, ответит и узнать у него можно ли делать перевод. Если он сбросит или не возьмёт трубку, то ваш разговор с ожидающим на линии абонентом возобновится и Вы сможете объяснить ему, что соединиться не удалось; Если человек, которому нужно перевести вызов готов поговорить с ожидающим на линии абонентом, то нужно просто завершить вызов. Тогда разговор продолжится уже между ними; Кстати! Номер, который Вы набираете после того или иного сервисного кода, не обязательно должен быть внутренним. Это может быть любой другой номер (например, мобильный - *289012345678). Главное набирать его в таком формате, чтобы Ваша IP-АТС могла до него дозвониться.
img
Сегодня, в этой статье, вы узнаете, как формируются соседства BGP внутри автономной системы, между автономными системами и даже между маршрутизаторами, которые не связаны напрямую. Кроме того, мы рассмотрим аутентификацию BGP. Предыдущие статьи цикла про BGP: Основы протокола BGP Построение маршрута протоколом BGP Видео: Основы BGP за 7 минут BGP-пиринг Учитывая, что BGP является протоколом маршрутизации AS-to-AS, вполне логично, что внешний BGP (т.е. eBGP) является ключевым компонентом в его операциях. Самое первое, что нам нужно учитывать при работе с eBGP, - это то, что стандарты построены таким образом, что требуется прямое подключение. Это требование конечно можно обойти, но этот момент необходимо рассмотреть. Поскольку предполагается прямое соединение, протокол BGP выполняет две вещи: Он будет проверять значение времени жизни (TTL), и что значение time-to-live установлено в 1. Это означает прямую связь между одноранговыми узлами EBGP. Осуществляется проверка, что два устройства находятся в одной подсети. Еще один важный момент рассмотрения пирингов eBGP - это TCP-порты, которые будут использоваться. Это особенно важно для конфигураций брандмауэров, которые защищают автономные системы. Первый спикер BGP, который инициирует изменения состояния, приходящие по мере формирования соседства, будет получать трафик из случайного TCP-порта, а конечным портом будет TCP-порт 179. Отвечающий спикер BGP будет получать трафик с TCP-порта 179, а порт назначения будет случайным портом. Брандмауэры должны быть перенастроены с учетом изменений в коммуникации. На основе этих изменений спикер BGP инициирует сеанс, и это, вносит изменения для будущего сеанса. Некоторые администраторы даже создают механизмы для обеспечения того, чтобы сформированные пиринги были получены из известного направления. А как насчет IPv6? Ну, как было сказано ранее в предыдущей статье, BGP очень гибок и работает с IPv6, поскольку протокол был изначально спроектирован с учетом IPv6. Вы можете формировать пиринги eBGP (и iBGP) с использованием IPv6- адресации, даже если вы используются префиксы IPv4 для информации о достижимости сетевого уровня. Чтобы сформировать в нашей сети пиринг eBGP, необходимо выполнить следующие действия: Запустите процесс маршрутизации для BGP и укажите локальный AS (router bgp local_as_number). Предоставить удаленному спикеру eBGP IP- адрес и удаленному AS номер (neighbor ip-_of_neighbor remote-as remote_as_number). Пример 1 демонстрирует конфигурацию и проверку EBGP пиринга между маршрутизаторами TPA1 и ATL. Пример 1: Настройка пиринга eBGP ATL#conf t Enter configuration commands, one per line. End with CNTL/Z. ATL(config)#router bgp 220 ATL(config-router)#neighbor 30.30.30.1 remote-as 110 ATL(config-router)#end ATL# TPAl#conf t Enter configuration commands, one per line. End with CNTL/Z. TPA1(config)router bgp 110 TPA1(config-router)#neighbor 30.30.30.2 remote-as 220 TPA1(config-router)#end TPA1# TPAl#show ip bgp summary BGP router identifier 30.30.30.1, local AS number 110 BGP table version is 4, main routing table version 4 1 network entries using 120 bytes of memory 1 path entries using 52 bytes of memory 1/1 BGP path/bestpath attribute entries using 124 bytes of memory 1 BGP AS-PATH entries using 24 bytes of memory 0 BGP route-map cache entries using 0 bytes of memory 0 BGP filter-list cache entries using 0 bytes of memory BGP using 320 total bytes of memory BGP activity 2/1 prefixes, 2/1 paths, scan interval 60 secs Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd 30.30.30.2 4 220 413 414 4 0 0 06:12:46 1 TPA1# Примечание: чтобы облегчить понимание BGP, вы можете включить функцию debug ip bgp, при настройке пиринга. Это позволит увидеть переходные состояния в соседстве. Кроме того, чтобы получить больше информации о соседствах, вы можете использовать команду show ip bgp neighbors. Создание eBGP пиринга, на основе IPv6, выполняется также очень просто, как и на основе IPv4. Единственное изменение заключается в том, что мы заменяем адресацию в IPv4 на IPv6 и активируем соседство. Семейства адресов в маршрутизаторах Cisco для BGP позволяют запускать множество различных схем информирования о достижимости сетевого уровня (NLRI) в рамках одного и того же общего процесса BGP. Пример 2 демонстрирует подход к пирингу IPv6. Пример 2: конфигурация пиринга EBGP с использованием IPv6 ATL#conf t Enter configuration commands, one per line. End with CNTL/Z. ATL(config)#router bgp 220 ATL(config-router)#neighbor 2201:1212:1212::2 remote-as 110 ATL(config-router-af)#neighbor 2201:1212:1212::2 activate ATL(config-router-af)#end ATL# iBGP-пиринг Если вы внимательно посмотрите на топологию, вы можете заметить, что что-то выглядит необычно. Видно, что есть iBGP-пиринг. Почему существует пиринг iBGP, созданный между TPA1 и TPA2? Это выглядит совершенно неуместно. В данном случае, как говорится, внешность может быть обманчива. Главное, что вы должны усвоить относительно BGP, является тот факт, что существует нечто, называемое правилом разделения горизонта (Split Horizon Rule) iBGP. Это правило гласит, что ни один спикер iBGP не может принять обновление и затем отправить это же обновление другому узлу iBGP. Так же в требовании говориться, о полном объединении наших спикеров iBGP для обеспечения полной осведомленности о префиксах. Еще одним важным аспектом, связанным с iBGP, является избыточность. Мы хотим установить несколько физических связей между устройствами, но что произойдет, если связь, используемая для BGP, прервется? Как мы автоматически переключимся к пирингу, используя альтернативное подключение? Простой способ решить эту проблему заключается в реализации loopback-адресов и использовании этих адресов для однорангового соединения. Это то, что мы часто делаем с нашими пирингами BGP, и это может потребовать, дополнительной настройки при использовании подключения к провайдеру. Например, в Cisco мы должны специально указать, что источником пиринга является loopback IP- адрес. Примечание: еще одним важным аспектом при пиринге между петлевыми адресами в iBGP является то, что loopback-адреса фактически доступны между спикерами BGP. Именно здесь очень удобно использовать протокол внутреннего шлюза (IGP), такой как OSPF или EIGRP. Пример 3 показывает конфигурацию пиринга iBGP между устройствами TPA и TPA1. Обратите внимание, что мы используем петлевой подход в том случае, если мы хотим добавить избыточные связи между устройствами в будущем. Пример 3: Настройка пиринга iBGP TPA#conf t Enter configuration commands, one per line. End with CNTL/Z. TPA(config)router bgp 110 TPA(config-router)#neighbor 8.8.8.8 remote-as 110 TPA(config-router)#neighbor 8.8.8.8 update-source loopbackO TPA(config-router)#end TPA# TPAl#conf t Enter configuration commands, one per line. End with CNTL/Z. TPA1(config)#router bgp 110 TPA1(config-router)#neighbor 5.5.5.5 remote-as 110 TPA1(config-router)#neighbor 5.5.5.5 update-source loopbackO TPA1(config-router)#end TPA1# eBGP Multihop В разделе eBGP-пиринг этой статьи, обсуждалось, что ваши соседи будут связаны напрямую. В разделе iBGP мы обсуждали преимущество пиринга между loopback для избыточности. Теперь пришло время ответить на вопрос: Что делать, если ваши спикеры eBGP не подключены напрямую? На самом деле, если мы хотим пиринговать между loopback с eBGP, чтобы воспользоваться потенциальной избыточностью. Как сделать это, поскольку интерфейсы loopback не связаны напрямую друг с другом? BGP решает эту проблему с помощью опции eBGP multihop. С помощью настройки eBGP multihop вы указываете максимальное количество допустимых прыжков. Это пропускает проверку BGP для TTL на значение равное 1, рассмотренное ранее в этой статье. Но как насчет требования прямого подключения? BGP отключает эту проверку в фоновом режиме автоматически, при использовании функции eBGP multihop. Пример 4 демонстрирует настройку eBGP multihop между TPA1 и ATL. Здесь нужен multihop, потому что мы настраиваем пиринг между loopback устройств. Пример 4: eBGP Multihop ATL#conf t Enter configuration commands, one per line. End with CNTL/Z. ATL(config)#router bgp 220 ATL(config-router)#neighbor 8.8.8.8 remote-as 110 ATL(config-router)#neighbor 8.8.8.8 update-source loopbackO ATL(config-router)#neighbor 8.8.8.8 ebgp-multihop 2 ATL(config-router)#end ATL# TPAl#conf t Enter configuration commands, one per line. End with CNTL/Z. TPA1(config)router bgp 110 TPA1(config-router)#neighbor 7.7.7.7 remote-as 220 TPA1(config-router)#neighbor 7.7.7.7 update-source loopbackO TPA1(config-router)#neighbor 7.7.7.7 ebgp-multihop 2 TPA1(config-router)#end TPA1# BGP аутентификация Большинство организаций сегодня добавляют аутентификацию в свои настройки BGP, чтобы защитить их от различного рода атак. По общему признанию, аутентификацию немного сложнее настроить на BGP, чем с на других протоколах маршрутизации, поскольку конфигурация — пирингов- это ручной процесс, который должен выполнен на обоих устройствах. Даже с учетом вышесказанного, аутентификация устройств (eBGP или даже iBGP) - отличная идея. В Cisco настройка аутентификации осуществляется просто. Необходимо задать пароль (т.е. общий секрет) на каждое устройство, настроенное для пиринга. Обязательно усвойте, что этот пароль будет отображаться в открытом виде (по умолчанию) внутри вашей сети. Можно использовать команду service password-encryption для выполнения по крайней мере простого шифрования тех незашифрованных текстовых паролей, которые появляются в конфигурации маршрутизатора. Аутентификация с шифрованием Message Digest 5 (MD5) – это результат простого задания пароля на устройствах. Пример 5 отображает аутентификацию, добавленную в конфигурации для TPA1 и ATL. Пример 5. Настройка аутентификации для BGP-пиринга ATL#conf t Enter configuration commands, one per line. End with CNTL/Z. ATL(config)#router bgp 220 ATL(config-router)#neighbor 8.8.8.8 remote-as 110 ATL(config-router)#neighbor 8.8.8.8 update-source loopbackO ATL(config-router)#neighbor 8.8.8.8 ebgp-multihop 2 ATL(config-router)#neighbor 8.8.8.8 password MySuperSecret121 ATL(config-router)#end ATL# TPAl#conf t Enter configuration commands, one per line. End with CNTL/Z. TPA1(config)router bgp 110 TPA1(config-router)#neighbor 7.7.7.7 remote-as 220 TPA1(config-router)#neighbor 7.7.7.7 update-source loopbackO TPA1(config-router)#neighbor 7.7.7.7 ebgp-multihop 2 ATL(config-router)#neighbor 7.7.7.7 password MySuperSecret121 TPA1(config-router)#end TPA1#
img
В данной статье будет рассмотрен модуль Asterisk CLI – Command Line Interface, другими словами – консоль Asterisk. Данный инструмент является многоцелевым и может выполнять следующие функции: Получение информации о системных компонентах Asterisk Настройка системной конфигурации Просмотр логов, ошибок и предупреждений в реальном времени Генерация звонков в целях проведения тестов Просмотр расширенной документации – для API, приложений, функций, настройки модулей и так далее. Далее рассмотрим процесс вызова консоли – есть несколько путей. Через веб-интерфейс FreePBX Для этого необходимо открыть веб-интерфейс Вашей АТС и далее пройти по следующему пути: Admin –> Asterisk CLI После этого откроется страница, на которой можно вводить команды. По SSH С помощью удаленного доступа – по SSHTelnet с использованием терминала (к примеру, PuTTy). При таком типе подключения необходимо будет ввести логин и пароль, и затем ввести команду: [root@localhost ~]#asterisk -rvvvv Примечание: Количество букв «v» означает уровень логирования в CLI. Т.е чем больше букв – тем больше информации будет «сыпаться» на экран. Как только был получен доступ, возможно будет вывести следующую информацию: Телефонные звонки Регистрацию абонентов Уведомления о появлении новых абонентов Запросить перезагрузку системных компонентов (экстеншенов, транков и т.д) Все команды имеют следующий синтаксис: module name -> action type -> parameters (Название модуля –> Тип действия -> Параметры) К примеру – команда sip show peers, которая выведет список зарегистрированных chan_sip абонентов. Если же ваша АТС работает некорректно – к примеру, Asterisk не стартует вообще, стоит попробовать вызвать консоль с другим набором настроек, которые позволят начать специфическую отладку приложений – логирование порядка загрузки, соединения с базой данной, количества попыток регистрации и прочее. Кроме того, есть возможность запускать команды CLI без непосредственного ввода команд, описанных выше. Для этого необходимо напрямую обратиться к модулю Asterisk: [root@localhost ~]#asterisk -rx 'reload now' К примеру, данная команда перезагрузит весь модуль Asterisk. Самые нужные команды Ниже будут приведены описания некоторых часто используемых команд: localhost*CLI>DIALPLAN SHOW \ вывод вашего диалплана (правила маршрутизации вызовов) localhost*CLI>CORE SHOW TRANSLATION \ вывод таблицы с методами транскодирования кодеков localhost*CLI>SIP SET DEBUG PEER PHONE_EXT \ запуск отладки определенного экстеншена (с указанием номера экстеншена) localhost*CLI>SIP SET DEBUG IP PEER_IP \ запуск отладки определенного абонента по его сетевому адресу localhost*CLI>SIP SET DEBUG OFF \ отключение режима отладки localhost*CLI>RELOAD \ перезагрузка модуля Asterisk, не всей АТС целиком. Может использоваться после внесения измерений localhost*CLI>RESTART NOW \ перезагрузка всей системы в целом, может понадобиться если команды reload недостаточно или в целях регулярной плановой перезагрузки. Главная команда, которую нужно усвоить – help, она выводит все прочие команды. Очень удобный внутренний инструмент.
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59