По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В статье мы хотим рассказать про настройку функции пейдженга (Paging) в Cisco CME (CUCME).
Эта функция схожа с интеркомом, однако обеспечивает только одностороннюю автоматическую связь. Когда IP-телефон набирает номер пейджинга, то каждый телефон состоящий в группе пейджинга автоматически отвечает на звонок на громкой связи.
CMEподдерживает пейджинг в unicast и multicast конфигурации. Пейджинг в unicast конфигурации заставляет маршрутизатор CME отправлять отдельные сообщения на каждый из IP-телефонов в группе. Таким образом, если пять IP-телефонов состоят в группе пейджинга, то маршрутизатор CME будет передавать пять отдельных аудиосигналов устройствам и из-за нагрузки CME ограничивает группы до десяти телефонов. Конфигурация multicast позволяет маршрутизатору CME отправлять один аудиопоток, который будет получать только IP-телефоны состоящие в группе и это позволяет иметь в ней практически неограниченное количество IP-телефонов. Однако для поддержки multicast пейджинга необходимо настроить базовую сетевую среду для поддержки multicast трафика.
Настройка
Рассмотрим настройку unicast single-group пейджинга на CME. Для начала создадим номер DN для пейджинга:
CME(config)# ephone-dn 100
CME(config-ephone-dn)# number 55555
CME(config-ephone-dn)# paging
Если набрать номер 55555, то зазвонят все телефоны в группе пейджинга. Чтобы добавить телефон в группу необходимо выполнить команду paging-dn [номер группы]
CME(config)# ephone 1
CME(config-ephone)# paging-dn 100
CME(config-ephone)# exit
CME(config)# ephone 2
CME(config-ephone)# paging-dn 100
Чтобы настроить multicast paging нужно во время создания номера DN указать multicast IP адрес, и во время добавления телефона в группу указать аргумент multicast у команды paging-dn.
CME(config)# ephone-dn 100
CME(config-ephone-dn)# number 55555
CME(config-ephone-dn)# paging 239.1.1.1 port 2000
CME(config-ephone-dn)# exit
CME(config)# ephone 1
CME(config-ephone)# paging-dn 100 multicast
CME(config-ephone)# exit
CME(config)# ephone 2
CME(config-ephone)# paging-dn 100 multicast
Также можно создать номер, который будет распределять вызов на несколько пейджинговых групп одновременно. Для этого используется команда paging group, которая поддерживает до 10 групп. Такая настройка называется Multiple-Group Paging
CME(config)# ephone-dn 100
CME(config-ephone-dn)# number 55555
CME(config-ephone-dn)# paging
CME(config-ephone-dn)# exit
CME(config)# ephone-dn 200
CME(config-ephone-dn)# number 77777
CME(config-ephone-dn)# paging
CME(config-ephone-dn)# exit
CME(config)# ephone-dn 300
CME(config-ephone-dn)# number 99999
CME(config-ephone-dn)# paging group 100, 200
CME(config-ephone-dn)# exit
Эти настройки можно провести использую Cisco Configuration Professional (CCP) . Для этого там переходим во вкладку Unified Communications – Telephony Features – Paging Numbers и нажимаем Create. В открывшемся окне указываем номера для группы пейджинга и какие телефоны будут в нее входить. Для настройки Multiple-Group Paging нужно перейти во вкладку Unified Communications – Telephony Features – Paging Groups.
Желание использовать данные с внешних сервисов это вполне обычная практика. Так как многие из этих сервисов доступны по HTTP(S) (REST API, например), то в этой статье мы хотим показать простой способ обращения к этим сервисам по cURL и обработку данных в случае, если сервер вернет JSON. Все взаимодействия будут выполняться из диалплана.
Простой cURL запрос
В диалплане Asterisk существует функция CURL, которая позволяет получить содержимое WEB или FTP страницы. Синтаксис запроса следующий:
CURL(url,post-data)
url - URL, к которому мы будем выполнять обращение;
post-data - по умолчанию будет выполнен GET – запрос. Если в данном параметре будут указаны различные значения, то будет выполнен POST запрос с указанными в переменной данными;
Например:
exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest?num=84991234567)})
Здесь мы выполним GET запрос по указанному URL, а результат сохраним в переменной C_RESULT.
Использование HTTPS в запросах
Иногда, HTTPS запросы могут не срабатывать, так как удаленная сторона будет проверять наш SSL – сертификат. Если поставить параметр ssl_verifypeer=0, то такой проверки не будет:
same => n,Set(CURLOPT(ssl_verifypeer)=0)
Как воспользоваться этим в диалплане?
Легко. С помощью функции GotoIf мы можем определить действие, которое отработает на базе результата cURL:
exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest?num=84991234567)})
same => n,GotoIf($["${C_RESULT}" = "1"]?res1:res2)
same => n(res1),Verbose(CURL Result = 1)
same => n,Hangup
same => n(res2),Verbose(CURL Result != 1)
same => n,Hangup
Указанный код отправит GET - запрос на rest, в котором в параметре num передаст номер звонящего (можно указать соответствующую переменную диалплана Asterisk). В случае, если результатом выполнения запроса будет 1, то мы перейдем к выполнению шага res1, а противоположном случае, res2.
res_json для обработки JSON ответов
На самом деле, для API, является обычной практикой возврат ответа в виде JSON. Поэтому, нам следует преобразовать эти данные перед обработкой их. Для этого мы воспользуемся модулем res_json из JSON библиотеки, который создан для расширения базовых возможностей диалплана с точки зрения обработки JSON.
Почитайте материал об установке данного модуля по этой ссылке.
exten => _X.,1,Set(C_RESULT=${CURL(//merionet.ru/rest.json)})
same => n,Set(result=${JSONELEMENT(C_RESULT, result/somefield)})
same => n,GotoIf($["${result}" = "1"]?res1:res2)
same => n(res1),Verbose(CURL Result = 1)
same => n,Hangup
same => n(res2),Verbose(CURL Result != 1)
same => n,Hangup
Для теста, создайте у себя на web – сервере файл rest.json со следующим содержанием:
{
"result": {
"somefield": 1
}
}
Друг, на днях к нам в офис подъехал E1 - шлюз от китайского вендора Dinstar модели MTG200-1-E1. Взяв в руки коробку мы устремились в лабораторию – скрещивать шлюз с E1 потоком со стороны ТфОП и с IP – АТС Asterisk другой.
Коротко про шлюз
Произведем небольшой «анбоксинг» шлюза. Изделие поставляется в коробке и защищено специальной пленкой:
В комплект поставки входит:
Ethernet – кабель;
Провод для подключения E1 потока;
Консольный кабель;
Сам шлюз;
На фронтальной панели MTG200 расположились:
Индикатор питания;
Индикатор «алярмов»;
Физический разъем, предназначенный для сброса настроек устройства к заводским;
Консольный порт;
Индикация E1/T1 и Fast Ethernet интерфейсов;
Разворачиваем шлюз на 180 градусов и видим:
Разъем для подключения питания;
Физические интерфейсы для E1/T1;
Физический интерфейсы для Fast Ethernet;
Вот такой шлюз ожидает своего владельца :) Мы переходим к настройке связки с IP – АТС Asterisk с помощью FreePBX.
Связка со стороны Asterisk
Настройки мы будем выполнять с помощью графического интерфейса FreePBX 14 версии. Подключившись, переходим в раздел Connectivity → Trunks и добавляем новый транк для MTG200 (chan_sip). Дайте удобное для вас имя транка в поле Trunk Name. В разделе Outgoing (исходящие параметры) заполняем:
host=IP_адрес_Dinstar
type=friend
fromuser=логин
username=логин
secret=пароль
qualify=yes
port=5060
context=from-pstn
Переключаемся на вкладку Incoming (входящие параметры) и указываем следующие реквизиты:
disallow=all
allow=alaw&ulaw
canreinvite=no
context=from-pstn
dtmfmode=rfc2833
username=логин
secret=пароль
qualify=yes
insecure=invite
host=dynamic
type=friend
Отлично. Теперь давайте проверим статус этих пиров:
Мы немного забежали вперед, и, как видите, статус нашего входящего пира так же отмечен как OK. Это возможно, только после создания «плеча» в сторону Asterisk на шлюзе. Мы наглядно покажем этот процесс далее.
После, создайте входящий/исходящий маршрут для направления вызовов в нужном направлении или формате. Как это сделать, можно прочитать в этой статье.
Связка со стороны провайдера
Приступаем к настройке шлюза. Провайдер прислал нам следующие параметры:
Каждая настройка сильно зависит от параметров вашего провайдера. Свяжитесь с ним, перед настройкой
CRC выключен
D-канал User
А-номер от Вашей АТС должен приходить 10 знаков с типом National (49Xxxxxxxx)
План нумерации А-номера должен быть ISDN/Telephony
С ними мы и будем работать. По умолчанию, шлюз почти готов к работе – поменяем некоторые параметры. Переходим в раздел PRI Config → PRI Trunk и добавляем новый транк со следующими настройками:
Скорректируем SIP параметры: переходим в SIP Config → SIP Parameter:
Скорректируем SIP параметры: переходим в SIP Config → SIP Trunk. Указываем IP – адрес и порт со стороны Asterisk:
Настроим общие E1/T1 параметры: PSTN Group Config → E1/T1 Parameter :
Готово. Делаем телефонный звонок и проверяем, как занимаются тайм – слоты на нашем шлюзе: Status & Statistics → E1/T1 Status :
Мы сделали входящий звонок – как видите, зеленым цветом, отображается занятый тайм – слот, а сам звонок, улетает по SIP в сторону Asterisk.