По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Одним из важных компонентов установления соединения по протоколу SIP является протокол Session Description Protocol, или сокращенно SDP. О протоколе SDP впервые заговорили в 1998 году в рамках опубликованного RFC2327. Спустя 8 лет, в 2006 году протокол претерпел некоторые изменения, которые были отображены в RFC4566. Протокол SDP используется для установления соединения и согласования параметров передачи и приема аудио или видео потоков между оконечными устройствами. Наиболее важными параметрами обмена являются IP – адреса, номера портов и кодеки. Давайте разбираться? Пример SDP При установлении сессии SDP параметры передаются в рамках SIP – запросов. Давайте взглянем на один из таких запросов. В данном случае распарсим SIP INVITE, который прилетело на нашу IP – АТС Asterisk с помощью утилиты sngrep: INVITE sip:74996491913@192.168.x.xxx:5061;transport=UDP SIP/2.0 Via: SIP/2.0/UDP 80.xx.yy.zz:5060;branch=z9hG4bK-524287-1-MThkZjMzNzMyXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX;rport Via: SIP/2.0/UDP 80.xx.yy.zz:5077;branch=z9hG4bK-XXXXXXXXXXXXXXXX;rport=5077 Max-Forwards: 69 Record-Route: <sip:80.xx.yy.zz:5060;lr;transport=UDP> Contact: <sip:80.xx.yy.zz:5077> To: <sip:74996491913@80.xx.yy.zz> From: <sip:7925XXXXXXX@80.xx.yy.zz>;tag=qdpxhe2avyyjcqfn.o Call-ID: fb9909e8fYYYYYYYYYYYYYYYYYYYYYY CSeq: 479 INVITE Expires: 300 Allow: INVITE, ACK, BYE, CANCEL, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS, UPDATE Content-Disposition: session Content-Type: application/sdp User-Agent: Sippy P-Asserted-Identity: <sip:7925XXXXXXX@80.xx.yy.zz> Remote-Party-ID: <sip:7925XXXXXXX@80.xx.yy.zz>;party=calling h323-conf-id: 4133864240-4217115111-2706418710-XXXXXXXXX Portasip-3264-action: offer 1 cisco-GUID: 4133864240-4217115111-2706418710-XXXXXXXXX Content-Length: 278 v=0 o=Sippy 1011212504475793896 1 IN IP4 80.xx.yy.zz s=- c=IN IP4 80.xx.yy.zz t=0 0 m=audio 57028 RTP/AVP 0 8 18 101 a=rtpmap:0 PCMU/8000 a=rtpmap:8 PCMA/8000 a=rtpmap:18 G729/8000 a=fmtp:18 annexb=yes a=rtpmap:101 telephone-event/8000 a=fmtp:101 0-15 a=sendrecv В приведенном примере можно увидеть, что основная часть SIP – сообщения отделена от SDP сегмента пустой строкой. Помимо прочего, поле Content-Type, что сообщение сопоставимо с SDP параметрами. Про SDP поля Каждый из параметров SDP сообщения можно отнести к одной из следующих категорий: Имя сессии; Время, в течении которого сессия активна; Параметры медиа; Информация о пропускной способности; Контактная информация; Поговорим об основных параметрах. Они всегда имеют следующее обозначение: <поле> = <значение>. Поле всегда обозначается 1 буквой. Поле Значение Формат v= версия протокола v=0 o= инициатор сессии и соответствующие идентификаторы o=<имя_пользователя> <идентификатор_сессии> <версия> <тип_сети> <тип_адреса> <адрес>. В нашем примере поле o=Sippy 1011212504475793896 1 IN IP4 80.xx.yy.zz (IN - тип сети, интернет, IP4 - тип адреса, IPv4; s= имя сессии в нашем примере прочерк ("-"), имя сессии не указано; c= информация о подключении; Синтаксис таков: c=<тип_сети> <тип_адреса> <адрес>. В нашем примере IN IP4 80.xx.yy.zz. Параметры IN/IP4 объяснены выше. t= время активности сессии Синтаксис поля таков: t=<начальное_время> <конечное_время>. Это обязательное поле, но важно отметить, что оно весьма субъективно, так как невозможно предсказать точное время начала и окончания. В нашем примере t=0 0 m= тип передачи медиа данных, формат и адресация m=<тип_медиа> <порт> <транспорт> <формат_передачи>. Давайте разберемся - у нас m=audio 57028 RTP/AVP 0 8 18 101, это означает передачу аудио (может быть значение video, или передача обоих типов), порт передачи обозначен как 57028, транспорт, указанный как RTP/AVP, означает передачу по протоколу RTP в рамках стандарта Audio and Video Conferences with Minimal Control, который описан в RFC3551. После, первый 0 означает протокол G.711 uLaw, 8 означает G.711 ALaw, 18 означает G.729. То есть условно говоря, нам предложено предпочтение кодеков сначала G.711 uLaw, затем G.711 ALaw, и третьим приоритетом G.729. 101 означает поддержку динамического типа данных, например DTMF. a= параметры сессии a=<параметр> или a=<параметр><значение>. SDP сессия может содержать несколько дополнительных атрибутов передачи. Более подробно мы рассмотрим далее. Помимо указанных параметров, зачастую встречаются такие как k=, в рамках которого описывается метод шифрования, или i=, содержащий дополнительную информацию о сессии. Поговорим про параметры поля a=: Параметр Синтаксис и описание rtpmap a=rtpmap:<тип> <название_кодировки>/<частота_дискретизации> [/<параметры_кодирования>]. Данный параметр подсказывает имена кодеков, частоту и прочие параметры кодирования для данных, обозначенных в параметре m=. Например, у нас a=rtpmap:0 PCMU/8000, означает использование G.711 с импульсно - кодовой модуляцией по U - закону с частотой дискретизации 8000 Гц. sendrecv a=sendrecv Данный параметр указывает на то, что мы собираемся отправлять и получать медиа - данные. Например, возможно опция отправки (sendonly), только получение (recvonly) и отключения медиа (inactive); ptime a=ptime:<длительность_пакета> Продолжительность RTP - пакет (в миллисекундах). Условно говоря, какой длительности фрагмент голоса переносит один RTP - пакет; fmtp a=fmtp:<формат> <специальные_параметры> Параметр описывает дополнительные параметры сессии, например, такие как режим подавления тишины (VAD) и прочие;
img
Запись телефонных разговоров на IP – АТС Asterisk является безусловно важной «фичей» для любой организации. С другой стороны, с ростом количества записей уменьшается память на дисках. Рано или поздно, перед организацией встает вопрос об удалении старых файлов, для освобождения места. Мы разработали PHP скрипт, который автоматически удаляет записи разговоров (.wav) и данные в базе данных по этим звонкам старше определенного количества дней. Чтобы адаптировать его под себя, вам нужно просто указать максимальное количество дней для хранения записей. Скрипт автоматического удаления Сам скрипт написан на PHP и представляет собой 23 строчки кода. Основная переменная в скрипте - days. Укажите в ней количество дней, которое вы планируете хранить записи: <?php $days = 180; //записи, которые старше 180 дней будут удалены. Укажите здесь количество дней для удаления; $hostname = "localhost"; //если скрипт выполняется на том же сервере, что и IP - АТС Asterisk, то оставьте здесь localhost. В противном случае укажите IP - адрес; $username = "delete"; //логин для подключения к базе данных asteriskcdrdb $password = "333jIje45"; //пароль для подключения к базе данных asteriskcdrdb $dbName = "asteriskcdrdb"; $file = '/home/admin/log_mail.txt'; $cdate = date('Y-m-d H:i:s', strtotime('-'.$days.' days')); //определяем максимальную дату звонка. Все звонки старше этой даты, будут удалены; $adate = date('Y-m-d H:i:s'); //текущая дата для записи в лог – файл; /* создать соединение */ mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName) or die(mysql_error()); /* удаляем информацию о записях в таблице cdr*/ $query = "DELETE from cdr WHERE calldate < '$cdate';"; $res=mysql_query($query) or die(mysql_error()); /* Как много нашлось строк */ $number = mysql_affected_rows(); /* удаляем сами аудио - записи разговоров */ echo exec('find /var/spool/asterisk/monitor/ -type f -mtime +'.$days.' -exec rm -rf {} ;'); $current = "DELETE :: $adate :: $number records were deleted from CDR "; file_put_contents($file, $current, FILE_APPEND | LOCK_EX); //записываем запись в лог файл; ?> Скачать скрипт удаления записей Загруженный скрипт сохраните в формате .php. Адаптация скрипта на вашей АТС Первое, что необходимо сделать, это создать пользователя для доступа к базе данных, который будет иметь права на удаление. Для этого, даем следующие команды: [root@asterisk]# mysql mysql>CREATE USER 'delete'@'localhost' IDENTIFIED BY '333jIje45'; Теперь предоставляем необходимые права: mysql> GRANT DELETE, SELECT ON asteriskcdrdb.cdr TO 'delete'; Готово. Теперь скрипт необходимо запланировать через cron для регулярного выполнения. Даем команду crontab -e и добавляем следующую строку: */2 10-18 * * 1-5 /usr/bin/php /home/deletecdr.php В данном примере, наш скрипт будет отрабатывать каждые 2 минуты с понедельника по пятницу, с 10:00 до 18:00. Здесь, /home/deletecdr.php - полный путь к скрипту. Сохраняем изменения и наслаждаемся спокойствием за дисковое пространство :)
img
Интеграция CRM – системы и корпоративной системы связи (телефонии) позволяет значительно улучшить параметры обслуживания ваших клиентов. Диапазон возможностей очень широк: прослушивание звонков в интерфейсе CRM, всплывающая карточка при входящем звонке от клиента, умная маршрутизация, которая позволяет адресовать звонок на ответственного менеджера, который закреплен за клиентом в CRM, исходящие звонки «по щелчку» мышки на номер клиента, или как его часто называют click – to – call и история звонков по каждому конкретному клиенту – все это доступно для бизнеса, который решил объединить систему управления взаимоотношениями с клиентом и офисную телефонию. . Интересно? Тогда мы рады поделиться обзором возможностей интеграции 1С CRM и IP – АТС Asterisk. Всплывающая карточка клиента При входящем звонке от клиента, в интерфейсе 1С, при совпадении номера звонящего появляется карточка контрагента. Параллельно, создается документ «событие» типа «телефонный звонок». Как видно на скриншоте, у контрагента настроен персональный менеджер. При включенной функции «Умная маршрутизация», звонок приходит прямо на указанного менеджера, минуя настроенные в Asterisk правила маршрутизации. Это означает, что если в вашей организации настроено интерактивное голосовое меню (IVR), или простое голосовое приветствие, то клиенту, у которого настроен персональный менеджер не придется слушать его – звонок сразу отправится на внутренний номер ответственного менеджера. В другом случае, если клиент звонит вам впервые, то оператору будет предложено создать нового контрагента. Важный момент, что когда вы нажмете на кнопку «Добавить контрагента», в появившейся карточке будет автоматически добавлен номер звонящего: Кстати, мы посчитали: при условии интеграции 1С и телефонии, время обработки входящего звонка уменьшается на 2 минуты – вам просто не нужно идентифицировать клиента, а затем вручную вбивать его пользовательские параметры для поиска карточки – система сразу покажет всю необходимую информацию. История звонков История звонков хранится по каждому контрагенту отдельно, а так же, есть унифицированный интерфейс, в котором можно посмотреть статистику звонков по всем операторам. В интерфейсе будут доступны как входящие, так и исходящие звонки. Помимо этого, вы можете прослушать аудио запись разговора. Важно:Сами аудио файлы хранятся на сервере IP – АТС Asterisk. По факту, на копке прослушать, будут расположены ссылки на аудио – записи в папке /var/spool/asterisk/monitor Итак, переходим во вкладку «История звонков», как показано ниже: Откроется список звонков. Значком слева, обозначено направление звонка – входящее, или исходящее. Помимо этого, в таблице мы видим дату и время начала и окончания вызова, его продолжительность в секундах, направление, ссылка на аудио – запись, ответственного пользователя, которые обработал вызов, и контрагента, с которым этот вызов связан. Вся информация представлена в наглядном и интуитивно понятном исполнении. Звонки из 1С Мы снова все посчитали, и можем сказать, что набор номер из 1С экономит от 15 секунд на исходящем звонке. Цепочка получается следующая: оператора нажимает на карточке контрагента на кнопку «Позвонить» В открывшемся окне видим все контакты по указанному контрагенту. Чтобы позвонить по номеру, достаточно левой кнопкой мыши нажать на телефон: Как только мы нажмем на номер телефона контрагента, зазвонит наш настольный телефон. Как только мы поднимаем трубку, происходит соединение с контрагентом. Умная маршрутизация Настройка умной маршрутизации происходит на уровне IP – АТС Asterisk. Для корректной работы функционала переключения вызова на менеджера, достаточно просто поставить галочку в настройках входящего маршрута.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59