По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Перед тем как начать: это цикл статей. Мы рекомендуем до этого материала ознакомиться со статьей про Interlayer Discovery. Хотя IPv6 является основной темой этих лекций, в некоторых случаях IPv4 представляет собой полезный пример решения; Address Resolution Protocol IPv4 (ARP) является одним из таких случаев. ARP - это очень простой протокол, используемый для решения проблемы межуровневого обнаружения, не полагаясь на сервер любого типа. Рисунок ниже будет использован для объяснения работы ARP. Предположим, A хочет отправить пакет C. Зная IPv4-адрес C, 203.0.113.12 недостаточно, чтобы A правильно сформировал пакет и поместил его на канал связи по направлению к C. Чтобы правильно построить пакет, A также должен знать: Находится ли C на том же канале связи, что и A MAC или физический адрес C Без этих двух частей информации A не знает, как инкапсулировать пакет в канал связи, поэтому C фактически получит пакет, а B проигнорирует его. Как можно найти эту информацию? На первый вопрос, находится ли C на том же канале вязи, что и A, можно ответить, рассмотрев IP-адрес локального интерфейса, IP-адрес назначения и маску подсети. ARP решает вторую проблему, сопоставляя IP-адрес назначения с MAC-адресом назначения, с помощью следующего процесса: Хост A отправляет широковещательный пакет каждому устройству в сети, содержащему адрес IPv4, но не MAC-адрес. Это запрос ARP; это запрос A на MAC-адрес, соответствующий 203.0.113.12. B и D получают этот пакет, но не отвечают, поскольку ни один из их локальных интерфейсов не имеет адреса 203.0.113.12. Хост C получает этот пакет и отвечает на запрос, снова используя unicast пакет. Этот ответ ARP содержит как IPv4-адрес, так и соответствующий MAC-адрес, предоставляя A информацию, необходимую для создания пакетов в направлении C. Когда A получает этот ответ, он вставляет сопоставление между 203.0.113.12 и MAC-адресом, содержащимся в ответе, в локальном кэше ARP. Эта информация будет храниться до истечения времени ожидания; правила тайм-аута записи кэша ARP различаются в зависимости от реализации и часто могут быть настроены вручную. Продолжительность кэширования записи ARP - это баланс между слишком частым повторением одной и той же информации в сети в случае, когда сопоставление IPv4-адресов с MAC-адресами не меняется очень часто, и отслеживанием любых изменений в расположении устройство в случае, когда конкретный адрес IPv4 может перемещаться между хостами. Когда A получает этот ответ, он вставляет сопоставление между 203.0.113.12 и MAC-адресом, содержащимся в ответе, в локальный кэш ARP. Эта информация будет храниться до тех пор, пока не истечет время ожидания; правила для тайм-аута записи кэша ARP варьируются в зависимости от реализации и часто могут быть настроены вручную. Продолжительность кэширования записи ARP - это баланс между тем, чтобы не повторять одну и ту же информацию слишком часто в сети, в случае, когда сопоставление IPv4-MAC-адресов меняется не очень часто, и идти в ногу с любыми изменениями в местоположении устройства, в случае, когда конкретный IPv4-адрес может перемещаться между хостами. Любое устройство, получающее ответ ARP, может принять пакет и кэшировать содержащуюся в нем информацию. Например, B, получив ответ ARP от C, может вставить сопоставление между 203.0.113.12 и MAC-адресом C в свой кэш ARP. Фактически, это свойство ARP часто используется для ускорения обнаружения устройств, когда они подключены к сети. В спецификации ARP нет ничего, что требовало бы от хоста ожидания запроса ARP для отправки ответа ARP. Когда устройство подключается к сети, оно может просто отправить ответ ARP с правильной информацией о сопоставлении, чтобы ускорить процесс начального подключения к другим узлам на том же проводе; это называется gratuitous ARP. Gratuitous ARP также полезны для Duplicate. Gratuitous ARP также полезны для обнаружения дублирующихся адресов (Duplicate Address Detection - DAD); если хост получает ответ ARP с адресом IPv4, который он использует, он сообщит о дублированном адресе IPv4. Некоторые реализации также будут посылать серию gratuitous ARPs в этом случае, чтобы предотвратить использование адреса или заставить другой хост также сообщить о дублирующемся адресе. Что произойдет, если хост A запросит адрес, используя ARP, который не находится в том же сегменте, например, 198.51.100.101 на рисунке 5? В этой ситуации есть две разные возможности: Если D настроен для ответа как прокси-ARP, он может ответить на запрос ARP с MAC-адресом, подключенным к сегменту. Затем A кэширует этот ответ, отправляя любой трафик, предназначенный для E, на MAC-адрес D, который затем может перенаправить этот трафик на E. Наиболее широко распространенные реализации по умолчанию не включают прокси-ARP. A может отправлять трафик на свой шлюз по умолчанию, который представляет собой локально подключенный маршрутизатор, который должен знать путь к любому пункту назначения в сети. IPv4 ARP - это пример протокола, который отображает interlayer идентификаторы путем включения обоих идентификаторов в один протокол. Обнаружение соседей IPv6 IPv6 заменяет более простой протокол ARP серией сообщений Internet Control Message Protocol (ICMP) v6. Определены пять типов сообщений ICMPv6: Тип 133, запрос маршрутизатора Тип 134, объявление маршрутизатора Тип 135, запрос соседа Тип 136, объявление соседа Тип 137, перенаправление Рисунок ниже используется для объяснения работы IPv6 ND. Чтобы понять работу IPv6 ND, лучше всего проследить за одним хостом, поскольку он подключен к новой сети. Хост A на рисунке ниже используется в качестве примера. A начнет с формирования link local address, как описано ранее. Предположим, A выбирает fe80 :: AAAA в качестве link local address. Теперь A использует этот link local address в качестве адреса источника и отправляет запрос маршрутизатору на link local multicast address (адрес многоадресной рассылки для всех узлов). Это сообщение ICMPv6 типа 133. B и D получают этот запрос маршрутизатора и отвечают объявлением маршрутизатора, которое является сообщением ICMPv6 типа 134. Этот одноадресный пакет передается на локальный адрес канала A, используемый в качестве адреса источника, fe80 :: AAAA. Объявление маршрутизатора содержит информацию о том, как вновь подключенный хост должен определять информацию о своей локальной конфигурации в виде нескольких флагов. Флаг M указывает, что хост должен запросить адрес через DHCPv6, потому что это управляемый канал. Флаг O указывает, что хост может получать информацию, отличную от адреса, который он должен использовать через DHCPv6. Например, DNS-сервер, который хост должен использовать для разрешения имен DNS, должен быть получен с помощью DHCPv6. Если установлен флаг O, а не флаг M, A должен определить свой собственный IPv6-адрес интерфейса. Для этого он определяет набор префиксов IPv6, используемых в этом сегменте, исследуя поле информации о префиксе в объявлении маршрутизатора. Он выбирает один из этих префиксов и формирует IPv6-адрес, используя тот же процесс, который он использовал для формирования link local address: он добавляет локальный MAC-адрес (EUI-48 или EUI-64) к указанному префиксу. Этот процесс называется SLAAC. Теперь хост должен убедиться, что он не выбрал адрес, который использует другой хост в той же сети; он должен выполнять DAD. Чтобы выполнить обнаружение повторяющегося адреса: Хост отправляет серию сообщений запроса соседей, используя только что сформированный IPv6-адрес и запрашивая соответствующий MAC-адрес (физический). Это сообщения ICMPv6 типа 135, передаваемые с link local address, уже назначенного интерфейсу. Если хост получает объявление соседа или запрос соседа с использованием того же адреса IPv6, он предполагает, что локально сформированный адрес является дубликатом; в этом случае он сформирует новый адрес, используя другой локальный MAC-адрес, и попытается снова. Если хост не получает ни ответа, ни запроса соседа другого хоста, использующего тот же адрес, он предполагает, что адрес уникален, и назначает вновь сформированный адрес интерфейсу. Устранение ложных срабатываний при обнаружении повторяющегося адреса Процесс DAD, описанный здесь, может привести к ложным срабатываниям. В частности, если какое-то другое устройство на канале связи передает исходные пакеты запроса соседа обратно к A, оно будет считать, что это от другого хоста, требующего тот же адрес, и, следовательно, объявит дубликат и попытается сформировать новый адрес. Если устройство постоянно повторяет все запросы соседей, отправленные A, A никогда не сможет сформировать адрес с помощью SLAAC. Чтобы решить эту проблему, RFC7527 описывает усовершенствованный процесс DAD. В этом процессе A будет вычислять одноразовый номер, или, скорее, случайно выбранную серию чисел, и включать ее в запрос соседей, используемый для проверки дублирования адреса. Этот одноразовый номер включен через расширения Secure Neighbor Discovery (SEND) для IPv6, описанные в RFC3971. Если A получает запрос соседа с тем же значением nonce, который он использовал для отправки запроса соседа вовремя DAD, он сформирует новый одноразовый номер и попытается снова. Если это произойдет во второй раз, хост будет считать, что пакеты зацикливаются, и проигнорирует любые дальнейшие запросы соседей с собственным одноразовым номером в них. Если полученные запросы соседей имеют одноразовый номер, отличный от того, который выбрал локальный хост, хост будет предполагать, что на самом деле существует другой хост, который выбрал тот же адрес IPv6, и затем сформирует новый адрес IPv6. Как только у него есть адрес для передачи данных, A теперь требуется еще одна часть информации перед отправкой информации другому хосту в том же сегменте - MAC-адрес принимающего хоста. Если A, например, хочет отправить пакет в C, он начнет с отправки multicast сообщения запроса соседа на C с запросом его MAC-адреса; это сообщение ICMPv6 типа 135. Когда C получает это сообщение, он ответит с правильным MAC-адресом для отправки трафика для запрошенного IPv6-адреса; это сообщение ICMPv6 типа 136. В то время как предыдущий процесс описывает объявления маршрутизатора, отправляемые в ответ на запрос маршрутизатора, каждый маршрутизатор будет периодически отправлять объявления маршрутизатора на каждом подключенном интерфейсе. Объявление маршрутизатора содержит поле lifetime, указывающее, как долго действует объявление маршрутизатора. А теперь почитайте о проблемах шлюза по умолчанию. У нас получился отличным материал на эту тему.
img
Сегодня подробно расскажем как найти практическое применение знаниям, полученным в статье про структуру asteriskcdrdb, а именно, как сделать ежедневные отчеты о входящих звонках на почту. Создание скрипта Чтобы наш .php скрипт смог подключиться к базе данных, необходимо создать пользователя, с правами, которые буду позволять ему извлекать необходимую информацию. Для этого, подключимся к нашему серверу по SSH [root@asterisk]# mysql mysql>CREATE USER ' user'@'localhost' IDENTIFIED BY 'P@ssw0rd'; На данном этапе мы создали пользователя user с паролем P@ssw0rd. Далее дадим ему необходимые права: mysql> GRANT SELECT ON asteriskcdrdb.cdr TO 'user' Создадим файл с расширением .php, в котором мы отразим подключение к нашей базе данных. Запишем эту конструкцию так: $hostname = "localhost"; //адрес хоста. Скрипт мы будем запускать на той же машине, на которой находится БД asteriskcdrdb; $username = "user"; //отражаем пользователя $password = "P@ssw0rd"; //пароль для созданного нами пользователя $dbName = "asteriskcdrdb"; //база данных, в которой хранятся необходимые нам данные $today = date('y-m-d'); // сегодняшняя дата в формате 2016-03-25 $counter = 1; // счетчик mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); // соединиться к БД mysql_select_db($dbName) or die(mysql_error()); //выбрать базу данных. Если произойдет ошибка - вывести ее $headers = "; charset=windows-1251 "; //заголовок для письма $headers .= "From: Мерион Нетворкс <info@merionet.ru> "; $headers .= "Reply-To: info@merionet.ru "; Предположим, что все входящие звонки приходят на номер секретаря – 100. Так же мы знаем, что при звонке из города, мы видим номер звонящего, который содержит в себе больше 3 символов (пусть у нас используется трехзначная внутренняя нумерация). Наша задача сводится к формулировке запроса к таблице cdr. Добавляем к нашему .php файлу: $query = "SELECT `dst` , `src` , `duration` , `dstchannel` , `calldate` , `disposition` FROM `cdr` WHERE `calldate` >='$today 00:00:00' AND `calldate` <='$today 23:59:59' AND LENGTH( `src` ) >3 AND `dst` = '100';" ; $res=mysql_query($query) or die(mysql_error()); // Выполнить запрос. Если произойдет ошибка - вывести ее. $number = mysql_num_rows($res); // Как много нашлось строк У нас почти все готово. Осталось только обработать данные на выходе. Для этого, нам понадобится следующая конструкция: //формируем шапку нашей таблицы со значениями $mes .= ' table style="max-width: 575px;border-bottom:none; margin: 0 auto;border-spacing: inherit;"> thead> tr style="border-bottom: 2px solid #05477c;"> th style="padding:10px; color: #fff; max-width: 150px;background:#05477c;">Порядковый номер</th> th style="padding:10px; color: #fff; max-width: 150px;background:#05477c;">Дата</th> th style="padding:10px; color: #fff; max-width: 100px;background:#05477c;">От кого</th> th style="padding:10px; color: #fff; max-width: 45px;background:#05477c;">Кому</th> th style="padding:10px; color: #fff; max-width: 45px;background:#05477c;">Статус звонка</th> /tr> /thead>'; //перебираем значения ассоциативного массива. Число элементов данного массива равно числу строк на выходе sql запроса while ($row=mysql_fetch_array($res)) { $mes .= ' tbody> tr style="width: 100px;"> td style="padding:10px; border-bottom: 1px solid #eee; text-align:center;">'.$counter.'</td> td style="padding:10px; border-bottom: 1px solid #eee; text-align:center;min-width: 100px;">'. $row['calldate'].'</td> td style="padding:10px; border-bottom: 1px solid #eee; text-align:center;min-width: 100px;">'. $row['src'].'</td> td style="padding:10px; border-bottom: 1px solid #eee; text-align:center;">'.$row['dst'].'</td> td style="padding:10px; text-align:center; border-bottom: 1px solid #eee; min-width: 120px; ">'.$row['disposition'].'</td> /tr>'; $counter = $counter + 1; } Теперь, мы храним в переменной $mes html таблицу, которая готова к отправке на почту. Добавим в конец скрипта: mail("info@merionet.ru", 'Все входящие за '.$today.'', $mes, $headers); ВАЖНО! Если вы используете кириллические символы, установите кодировку .php файла на Кириллицу (windows-1251) Итак, готово. Давайте посмотрим что приходит нам на почту: Работает. Давайте сделаем ежедневное задание на отработку этого скрипта через cron. Сделаем, например, ежедневно, в 17:30, когда рабочий день подходит к концу: 30 17 * * * php /home/admin/mail_report.php Не забудьте в начала скрипта поставить открывающий тэг php, а в конце скрипта закрывающий.
img
В нашей базе знаний очень много материалов посвящено CRM – системам. Оно и понятно, ведь на сегодняшний день CRM – это одно из самых распространенных, доступных и необходимых решений для современного бизнеса. Сегодня мы расскажем об одной из таких систем, которая была разработана нашими партнерами – amoCRM. amoCRM – это универсальная система взаимоотношений с клиентами, ориентированная на малый и средний бизнес, главным предназначением которой, является учет и систематизация всех клиентов, задач, продаж и сделок в компании. Другими словами, amoCRM это некая реляционная база данных, которую заполняют менеджеры отдела продаж, занося туда всю информацию о клиенте, полученную после первичного контакта, будь то обратная форма связи на сайте, письмо на почту или телефонный звонок. Разработчики amoCRM сделали свой продукт очень удобным, многофункциональным и совместимым с другими решениями, а благодаря открытому API и виджетам любой партнер или клиент может расширить возможности amoCRM в соответствии с его нуждами и пожеланиями. Одной из главных особенностей amoCRM является установка, а точнее ее отсутствие. То есть в отличие от многих других решений, amoCRM не имеет дистрибутива, ее не поставляют на диске и нельзя скачать по ссылке, так как это SaaS (Software As A Service) продукт. Поэтому за его постоянной работоспособностью и своевременным обновлением следят непосредственно специалисты компании amoCRM, а клиентам остается только зарегистрироваться на сайте и начать пользоваться. После успешной регистрации, клиента встречает дружелюбный и интуитивно понятный интерфейс amoCRM, содержащий 6 вкладок: Рабочий стол Сделки Контакты Задачи Аналитика Настройки (Видны только пользователю с правами администратора) Здесь нужно уделить некоторое время терминологии amoCRM, которая, впрочем, может быть Вам уже знакома, однако лишним это не будет, так как в процессе работы с amoCRM (да и любой другой CRM системой) данные термины будут фигурировать очень часто. Лид (lead) – потенциальный клиент Контакт – данные, по которым можно связаться с клиентом (тел, email, fax, Skype) Сделка – двусторонний договор на предоставление чего либо Задача - напоминание ответственному менеджеру о чём либо (позвонить, написать, встретиться с клиентом) Воронка продаж – графическое представление процесса продажи товара или услуги, состоящее из нескольких этапов и показывающее на каком этапе отсеивается большая часть клиентов В терминологии amoCRM задачи, сделки, контакты и прочие термины, называются “сущностями” и представляют из себя таблицы данных, которые так или иначе могут быть связаны между собой образуя единую реляционную базу данных. Рассмотрим каждую вкладку amoCRM подробнее. Рабочий стол Данная вкладка, по сути, является окном самой актуальной информации в Вашей компании. Здесь отображаются самые последние контакты, сделки, события и задачи, добавленные в CRM, а также их текущий статус: первый контакт, переговоры, на согласовании и др. Кроме того существует возможность поиска и сортировки событий по любому периоду времени и другим критериям. Рабочий стол позволяет также самостоятельно добавить новую задачу или контакт и посмотреть текущее состояние воронки продаж. Сделки На данной вкладке отображаются все продажи, которые проводятся в компании. Их можно отсортировать, например, отобразив только сделки, которые ведете Вы или сделки, по которым не назначены/просрочены задачи и т.п. Для каждой сделки отображается следующая информация: Название (Например, название предоставляемой услуги) Ответственный менеджер (Человек из Вашей компании, ведущий данную сделку) Основной контакт (Человек со стороны клиента) Компания (Юридическое название компании, с которой ведется сделка) Статус (Текущий статут сделки в воронке продаж: завершена, отклонена и т.п) Бюджет (Объем денежных средств, выделенных на данную сделку) Сделки можно посмотреть в виде и списка и в виде воронки. В виде списка В виде воронки Если база сделок уже имеется, то ее можно просто импортировать на этапе внедрения AmoCRM. Также на данной вкладке можно создать новую сделку, добавить к ней тэг или примечание. Контакты Данная вкладка содержит все контакты всех клиентов Вашей компании, которые можно отсортировать по наличию или отсутствию по ним задач, просроченным задачам и так далее. На данной вкладке можно также добавить новый контакт, самостоятельно заполнив всю необходимую информацию. Задачи На данной вкладке находятся все задачи, которые были заведены за время работы amoCRM. Кроме того, можно создать новую задачу, заполнив следующие поля: Срок выполнения Контакт или сделка, к которой относится задача Ответственный менеджер Тип задачи (связаться с клиентом, выслать КП и т.п) Примечание Аналитика Данная вкладка содержит 5 внутренних вкладок с разными типами отчетности: Анализ продаж Показывает сколько в среднем сделки находятся в каждом из статусов воронки продаж. Сводный отчет Содержит отчет обо всех открытых сделках и показывает на каком этапе воронки продаж они находятся. Отчет по сотрудникам Анализирует конкретного менеджера и его загруженность, основываясь на данных анализа его сделок, задач и контактов. Список событий Содержит отчет обо всех действиях, которые были совершены за время пользования amoCRM Настройки Вкладка для администратора системы. Здесь можно изменить название и адрес Вашего аккаунта, часовой пояс и валюту, настроить список IP-адресов, которым будет разрешен доступ в систему и ее API, дополнить или изменить статусы сделок, поменять их цвет, добавить новые поля в карточки сделок, контактов и компаний, посмотреть свой тарифный план и срок его завершения, добавлять в систему новых пользователей, настраивать им права, добавлять их в отделы и группы, назначать отделам и группам руководителя. Во вкладке История посещений содержится лог авторизаций. Это информация о посещении пользователями CRM Вашего аккаунта, такая как: дата, имя пользователя, браузер и IP адрес, с которого пользователь зашёл в аккаунт. Отдельно нужно сказать о вкладке Виджеты. Данная вкладка содержит список доступных и рекомендованных виджетов с подробным описанием каждого для расширения возможностей amoCRM. Виджеты позволяют интегрировать amoCRM с другими приложениями, например IP-телефонии или приложениями SMS и Email-рассылок и сервисами online чатов. Если в Вашей компании есть разработчик, он может написать свой виджет в соответствии с особенностями Вашего бизнеса. Несмотря на довольно объемную многофункциональность,amoCRM очень удобна и проста в работе. Она не требует дополнительных установок и настроек, а благодаря бесплатным мобильным приложениям для Android и iOS является полностью мобильной системой, избавляя Вас от необходимости постоянно находиться за стационарным компьютером.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59