По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Ранее мы уже рассказывали про регулировку громкости в Asterisk. Этот метод рабочий, но весьма статичен. Поэтому в голову пришла интересная мысль. Представьте, вы совершаете звонок. И, неожиданно, ваш собеседник начинает "кричать" в трубку. Пусть кричит – наши нервы прошли и не такое, но дело в том, что громкость звонка задана жёстко в кастомном диалплане. Поэтому, ощущения от крика буду особенно острыми :) А теперь, вообразите, что у вас есть возможность сделать собеседника "тише" кнопками телефонного аппарата. А потом, когда он успокоится, сделать снова громче. Интересно? Поехали. Подготовка Откроем FreePBX. Открыв модуль сервисных кодов (feature codes), мы обнаружим, что в нем можно только изменить существующие коды, но добавить новые нельзя. Решение указанной в начале статьи задачи будет базироваться на встроенных функциях Asterisk. То есть мы не будем добавлять кастомный контекст. Настройка Открываем файл /etc/asterisk/globals_custom.conf. Этот файл позволяет переписать или добавить глобальные переменные, используемые Asterisk (как стандартные, так и ваши личные). Если данного файла нет, то его нужно создать. Например, вот так: touch /etc/asterisk/globals_custom.conf chown asterisk:asterisk /etc/asterisk/globals_custom.conf chmod 775 /etc/asterisk/globals_custom.conf В файл добавляем следующую конструкцию: DYNAMIC_FEATURES=VUp#VDown#MUp#MDown Vol=0 Mic=0 Мы задали специальные функции, которые понадобятся нам далее. Сейчас будем закреплять комбинации цифр за кодами. Для этого открываем файл etc/asterisk/features_applicationmap_custom.conf и запишем в него следующее: VUp => 52*,self,Macro,VolumeUp VDown => 58*,self,Macro,VolumeDown MUp => 54*,self,Macro,MicUp MDown => 56*,self,Macro,MicDown Мы закрепили за кодами выполнение макроса громкости, который мы напишем далее. Не пугайтесь - "странные" комбинации выбраны по причине того, что их просто запомнить, так как на клавиатуре телефона, это так называемый "крест", наподобие джойстика ;) Go ahead. Приступаем к самим макросам. Для этого открываем файл /etc/asterisk/extensions_custom.conf и добавляе: [from-internal-custom] Set(__DYNAMIC_FEATURES=VUp#VDown#MUp#MDown) Таким образом, мы подключаем добавленные коды в диалплан Asterisk, который генерирует FreePBX. Не спешите закрывать файл extensions_custom.conf. В него же добавляем механизм увеличения громкости. То есть, макросы о которых мы писали ранее: [macro-VolumeUp] exten => s,1,Set(Vol=$[${Vol}+5]) same => n,Set(VOLUME(TX)=${Vol}) [macro-VolumeDown] exten => s,1,Set(Vol=$[${Vol}-5]) same => n,Set(VOLUME(TX)=${Vol}) [macro-MUp] exten => s,1,Set(Mic=$[${Mic}+5]) same => n,Set(VOLUME(RX)=${Mic}) [macro-MDown] exten => s,1,Set(Mic=$[${Mic}-5]) same => n,Set(VOLUME(RX)=${Mic}) Можно выдохнуть. На этом правки закончены. Как вы могли заметить, почему-то "громкостей" несколько. Все достаточно просто. Это 2 макроса на увеличение и уменьшение громкости канала звука и, соответственно, канала микрофона. Что нам все эти коды дают (по сравнению с жестко прописанными числами)? В любой момент разговора, если вы плохо (тихо) слышите собеседника, нужно набрать на телефоне 52* и громкость увеличится, так можно делать несколько раз пока уровень громкости собеседника не станет приемлемым. Это работает и наоборот: 58* и собеседник становится "тише". Удобно, правда? :) Из плюсов - не надо прерывать звонок. Нет жёсткого ограничения громкости. Если разговор затягивается на длительное время, можно выставить комфортную слышимость. Ну а второй макрос, спросите вы? Представьте: что делать, если собеседник жалуется, что вас тихо слышно? Нет проблем. Набираем 54* и собеседник начинает нас лучше слышать, то есть, мы увеличиваем громкость канала нашего микрофона!
img
Предыдущий материал из цикла про ARP в IPv4. Ждет вас по ссылке. Как хост может узнать, следует ли пытаться отправить пакет хосту через сегмент, к которому он подключен, или отправить пакет на маршрутизатор для дальнейшей обработки? Если хост должен отправлять пакеты на маршрутизатор для дальнейшей обработки, как он может узнать, на какой маршрутизатор (если их несколько) отправлять трафик? Эти две проблемы вместе составляют проблему шлюза по умолчанию. Для IPv4 проблему довольно легко решить, используя префикс и длину префикса. Рисунок ниже демонстрирует нам это. Реализации IPv4 предполагают, что любой хост в пределах одной подсети IPv4 должен быть физически подключен к одному проводу. Как реализация может определить разницу? Маска подсети - это еще одна форма длины префикса, которая указывает, где заканчивается сетевой адрес и начинается адрес хоста. В этом случае предположим, что длина префикса равна 24 битам, или сетевой адрес равен /24. 24 указывает вам, сколько битов задано в маске подсети: 24 bits = 11111111.11111111.11111111.0000000 Поскольку в IPv4 используется десятичная запись маски, это также можно записать как 255.255.255.0. Чтобы определить, находится ли C на том же проводе, что и A, A будет: Логическое умножение маски подсети с адресом локального интерфейса Логическое умножение маски подсети с адресом назначения Сравните два результата; если они совпадают, целевой хост находится на том же канале связи, что и локальный интерфейс На рисунке ниже это продемонстрировано. На рисунке выше показано четыре IPv4-адреса; предположим, что A должен отправлять пакеты в C, D и E. Если A знает, что длина префикса локального сегмента составляет 24 бита либо с помощью ручной настройки, либо с помощью DHCPv4, то он может просто посмотреть на 24 наиболее значимых бита каждого адреса, сравнить его с 24 наиболее значимыми битами своего собственного адреса и определить, находится ли пункт назначения на сегменте или нет. Двадцать четыре бита IPv4-адреса создают хороший разрыв между третьей и четвертой секциями адреса (каждая секция IPv4-адреса представляет собой 8 бит адресного пространства, в общей сложности 32 бита адресного пространства). Любые два адреса с такими же левыми тремя секциями, что и у A, называемые сетевым адресом, находятся в одном сегменте; любой адрес, которого нет в сегменте. В этом случае сетевой адрес для A и C совпадает, поэтому A будет считать, что C находится в одном сегменте, и, следовательно, будет отправлять пакеты C напрямую, а не отправлять их на маршрутизатор. Для любого пункта назначения, который A считает вне сегмента, он будет отправлять пакеты на IPv4-адрес конечного пункта назначения, но на MAC-адрес шлюза по умолчанию. Это означает, что маршрутизатор, выступающий в качестве шлюза по умолчанию, примет пакет и переключит его на основе IPv4-адреса назначения. Как выбирается шлюз по умолчанию? Он либо настраивается вручную, либо включается в параметр DHCPv4. А что насчет D? Поскольку сетевые части адресов не совпадают, A будет считать, что D находится вне сегмента. В этом случае A отправит любой трафик для D на свой шлюз по умолчанию, которым является B. Когда B получит эти пакеты, он поймет, что A и D достижимы через один и тот же интерфейс (на основе своей таблицы маршрутизации), поэтому он будет отправлять ICMP-перенаправление на A, говоря ему, что нужно отправлять трафик на D напрямую, а не через B. IPv6 представляет собой более сложный набор проблем, которые необходимо решить при выборе шлюза по умолчанию, потому что IPv6 предполагает, что одно устройство может иметь много адресов IPv6, назначенных конкретному интерфейсу. Рисунок ниже демонстрирует это. На рисунке выше предположим, что администратор сети настроил следующие политики: Ни один хост не может подключаться к A, если у него нет адреса в диапазоне адресов 2001: db8: 3e8: 110 ::/64. Ни один хост не может подключиться к D, если у него нет адреса в диапазоне адресов 2001: db8: 3e8: 112 ::/64. Примечание: В реальном мире вы никогда не построили бы такую политику; это надуманная ситуация, чтобы проиллюстрировать проблему, поставленную в сети минимального размера. Гораздо более реальной проблемой такого же типа была бы одноадресная переадресация обратного пути (uRPF). Чтобы эти политики работали, администратор назначил 110::3 и 112::12 хосту C и 111::120 хосту F. Это может показаться странным, но совершенно законно для одного сегмента иметь несколько подсетей IPv6, назначенных в IPv6; также совершенно законно иметь одно устройство с несколькими адресами. На самом деле, в IPv6 существует множество ситуаций, когда одному устройству может быть назначен диапазон адресов. Однако с точки зрения длины префикса нет двух адресов, назначенных C или F, в одной подсети. Из-за этого IPv6 не полагается на длину префикса, чтобы определить, что находится в сегменте, а что нет. Вместо этого реализации IPv6 ведут таблицу всех подключенных хостов, используя запросы соседей, чтобы определить, что находится в сегменте, а что нет. Когда хост хочет отправить трафик из локального сегмента, он отправляет трафик на один из маршрутизаторов, о котором он узнал из объявлений маршрутизатора. Если маршрутизатор получает пакет, к которому, как он знает, другой маршрутизатор в сегменте имеет лучший маршрут (поскольку у маршрутизаторов есть таблицы маршрутизации, которые говорят им, какой путь выбрать к какому-либо конкретному месту назначения), маршрутизатор отправит сообщение перенаправления ICMPv6, сообщающее хосту использовать какой-либо другой маршрутизатор первого перехода для достижения пункта назначения. В следующей статьей мы поговорим про пакетную коммутацию.
img
Коммуникационная платформа Elastix обладает богатым функционалом и привлекательным интерфейсом. В сегодняшней статье мы пошагово разберем процесс настройки внутренних номеров (Extensions) на Elastix версии 4.0 и зарегистрируем программный «open – source» телефон MicroSIP Настройка на Elastix Переходим в web – интерфейс Elastix. Для этого введите IP – адрес АТС в браузере. Откроется окно авторизации. Введите логин и пароль администратора и нажмите Submit: Попадаем в интерфейс администратора IP – АТС. В левом меню навигации переходим в раздел PBX → PBX Configuration, где выбираем раздел настройке Extension, как показано на рисунке ниже (выделено красным): Мы будем подключать софтфон по протоколу SIP, поэтому, выбираем Generic SIP Device и нажимаем Submit: Для работы телефона достаточно создать только 3 реквизита, а именно: User Extension - внутренний номер абонента Display Name - отображаемое имя для абонента secret - пароль. Создается автоматически После заполнения данных полей, нажмите Submit, а затем Apply Config. Этого достаточно для работы софтфона, и если вы хотите сразу перейти к настройке самого программного телефона, нажмите на ссылку ниже, а мы пока рассмотрим все возможные опции в разделе Extensions: Настройка MicroSIP Разберем каждую опцию подробно. Начнем с раздела опций внутреннего номера (Extension Options): CID Num Alias - CallerID, который будет отражаться на телефонах вызываемых абонентов, в качестве определяемого номера. Эта опция может быть полезна в следующей ситуации: например, существует общий номер для сотрудников бухгалтерии (ринг группа). При звонках со своих внутренних номеров на другие экстеншены, у вызываемого абонента будет отражаться привычный номер ринг – группы, на который он обычно звонит для связи с Бухгалтерией. SIP Alias - используется при прямых SIP – звонках. Например, staff@merionet.ru. Outbound CID - исходящий CallerID (как правило, при внешних звонка через транк, провайдер так или иначе будет перекрывать CID). Asterisk Dial Options - перечень опций, передаваемых через команду Dial(). В нашем примере мы имеем значение tr. Здесь «t» означает возможность трансфера звонка вызываемым абонентом, а опция «r», генерирует гудок вызывающему абоненту при звонке. Ring Time - время звонка в секундах, перед отправкой вызова на голосовую почту. Call Forward Ring Time - время звонка в секундах, перед отправкой вызова на указанное направление недоступностей вида «не ответ» или «недоступность». Outbound Concurrency Limit - максимальное количество одновременных исходящих от пользователя вызовов. Call Waiting - данная опция позволяет получать параллельный во время разговора вызов по тому же каналу. Internal Auto Answer - если данное значение выставлено на Intercom, то будет происходить автоматический ответ на входящий вызов. Call Waiting - при включении данной опции, звонящему, будет предложено проговорить свое имя, после чего, звонок продолжится. Вызываемый абонент возьмет трубку и ему будет озвучено имя звонящего, и так же система спросит, ответить ли на этот звонок или нет. Pinless Dialing - если на исходящих маршрутах существует пин – код, то при включении этой опции, пользователю не потребуется его вводить. Emergency CID - при звонках через маршрут, который обозначен как «Аварийный» (Emergency Route), данный CallerID будет передаваться в сторону SIP – провайдеру превалируя над всеми правилами по изменению CID. Queue State Detection - если данный внутренний номер состоит в одной из очередей, то при опциях Use State и Ignore State (использовать или игнорировать состояние соответственно), данный номер будет вызваниваться в зависимости от состояния доступности, или нет. Перейдем к небольшому разделу Assigned DID/CID: DID Description - описание для DID (Direct Inward Dialing). По факту, DID это набранный внешним абонентом номер, при вызове которого звонок будет маршрутизирован на конкретный внутренний номер. Например, вы можете написать «Support» Add Inbound DID - входящий DID для этого внутреннего номера. При звонках на него вызов пробросится сразу на экстеншен. Add Inbound CID - CallerID, вызовы с которого, будут маршрутизироваться на внутренний номер . Теперь рассмотрим служебные опции настройки подключаемого устройства: dtmfmode - метод передачи DTMF сигналов. Как правило, это RFC 2833 canreinvite - при включении данной опции будут поддерживаться re-invite по протоколу SIP context - контекст обработки вызова. Советуем здесь оставить from-internal, если вы не создаете кастомные контексты. host - здесь можно указать IP – адрес, с которого будет подключаться устройство. Советуем оставить dynamic. - метод передачи DTMF сигналов. Как правило, это RFC 2833 trustrpid - доверять ли идентификатору RPID (Remote-Party-ID) sendrpid - должен ли Asterisk отправлять RPID на это устройство type - выберите тип устройства. Как правило, для конечных телефонных аппаратов используется friend nat - выберите опцию трансляции сетевых адресов. Рекомендуем оставить RFC 3581 port - оставьте стандартный SIP – порт 5060 qualify - при включенной данной опции, Asterisk посылает сообщения, в которых опрашивает состояние устройства qualifyfreq - частоты отправки сообщений qualify. Указывается в секундах. transport - транспортный протокол для передачи данных. avpf - видео/аудио профиль для передачи данных WebRTC icesupport - включить или выключить поддержку ICE (Interactive Connectivity Establishment), который позволяет корректную работу пользователей, находящихся за фаерволом. dtlsenable - использовать ли для этого устройства безопасный транспортный протокол DTLS (Datagram Transport Layer Security) dtlsverify - совершать ли проверку сертификата DTLS у данного устройства dtlssetup - на каких направлениях вызова использовать DTLS – входящих, исходящих или сразу обоих. encryption - использовать ли шифрование по протокол SRTP dial - как вызвать это устройство. В нашей примере, это SIP/111, то есть набор через SIP канал номера 111. mailbox - ящик голосовой почты для устройства deny - подсеть, с которой запрещен доступ к данному устройству permit - подсеть, с которой разрешен доступ к данному устройству Теперь давайте рассмотрим раздел Recording Optoins: Inbound External Calls - записывать ли входящие из города на этот внутренний номер Outbound External Calls - записывать ли исходящие в города с этого внутреннего номера Inbound Internal Calls - записывать ли входящие с других внутренних номеров на этот номер Outbound Internal Calls - записывать ли исходящие звонки с этого внутреннего номера на другие внутренние номера On Demand Recording - разрешить ли запись по требованию на этом телефоне. Запись сохраняется, если пользователь произведет набор сервисного кода *1 Record Priority Policy - приоритет записи разговоров. Например, если произошел разговор между двумя внутренними телефонными аппаратами, и у одного из них параметр, равен 20, а у другого 10, тот, у которого параметр выше сможет сохранить запись разговора, а тот, у которого ниже – нет. Теперь разберемся с голосовой почтой: Status - включить или выключить голосовую почту. Voicemail Password - пароль доступа к голосовой почте. Пароль должен содержать только цифры Email Address - адрес электронной почты, куда будут отправляться голосовые сообщения. Email Attachment - отправлять ли аудио голосовой почты в формате вложения в электронном письме Play CID -озвучивать ли абоненту, который собирается прослушать голосовую почту, номер звонящего. Play Envelope - озвучивать ли абоненту при прослушивании голосовой почты дату и время звонка Delete Voicemail - удалять ли звуковой файл с сервера после отправки его по электронной почте. И наконец, разберем важный пункт, который называется Optional Destinations, который отвечает за маршрутизацию вызова при таких обстоятельствах как «не ответ», «занято» и «недоступен»: No Answer - куда отправлять вызов, если абонент не ответил на звонок Busy - куда отправлять вызов, если абонент занят разговором Not Reachable - куда отправлять вызов, если телефонный аппарат абонента недоступен Настройка MicroSIP Итак, после того, как мы создали учетную запись для внутреннего номера, перейдем к настройке программного телефона. Переходим по пути Меню → Добавить аккаунт SIP сервер - IP – адрес Elastix Пользователь - внутренний номер созданного абонента Домен - так же указываем IP Эластикса Логин - еще раз указываем внутренний номер абонента Пароль - копируем пароль из поля secret Нажимаем «Сохранить». Как видим, наш софтфон зарегистрировался и находится в статусе «Онлайн»:
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59