PBX

Сегодня у нас рубрика: письмо в студию. Собственно, текст:

Друзья, хочу рассказать Вам одну историю из жизни под громким, или не очень, названием «Как Webitel CallManager помогает в обычных жизненных ситуациях».

Итак, пишу Вам с Ipad сидя на лестничной клетке своей квартиры.

Все произошло очень банально, как и любая ситуация, которая вызывает к самому себе только эмоции сожаления и фразу «ну ты и дурак»… 🙂

Планирую во вторник (20.11.2012) провести вебинар, на котором расскажу о функциональных возможностях нашего нового продукта Terrasoft Webitel CallManager. Если Вам интересно, что он из себя представляет — регистрируйтесь на вебинар. Так же, можете задавать вопросы в комментариях к данному посту.

Установил на своем SIP-телефоне последнюю прошивку от Yealink (v.61) и увидел новый пункт меню: MulticastIP. Проверим как он работает! В диалплан FreeSWITCH добавлю новый пункт с Multicast Paging группой, на который звонить будет по номеру 7243:

 <action application="answer"/>
 <action application="esf_page_group" data="224.168.168.168 34567"/>

В Yealink можно прописать 10 Multicast групп. Прописываем нашу группу «Селектор» на объявленный в диалплане IP 224.168.168.168 и порт 34567:

Звоним и любуемся (и говорить не забываем): Прошивка 61 — англоязычная, если для Вас это помеха, тогда ждем скорого выхода (в ноябре обещали) русскоязычной версии 70 от IP.Matika.

Softswitch — Выпуск #04 от 15.09.2012

После перерыва в 3 недели я записал 4 выпуск!
Из новостей. Обновились: YATE, 3CX, Asterisk. Мысли о безопасности программных IP АТС.
Практика отправки SMS, FAX и как пропустить 30 звонков через канал в 0,5 Mbps
Встречаем новый кодек Opus. Когда уже наступит эра HD телефонии???
У нас есть первый победитель!
Жду Ваших вопросов!

Продолжая серию публикаций о SMS, сегодня хочу рассказать о еще одной удобной функции, которую легко реализовать в АТС. Типовая ситуация: менеджер звонит на мобильный клиента, а тот просит sms-кой скинуть свои контакты… Мы уже говорили о SMS-визитках, но это же исходящий звонок, здесь наш сценарий не сработает! Как быть? Просто, воспользуемся уже знакомым bind_meta_app application. В dialplan, когда звоним на мобильные, добавим вызов вот такого action:

В самом JavaScript сценарии у меня будет простенькая визиточка, но Вы сможете делать даже личные sms для каждого менеджера! Вот пример кода для моего провайдера:

use("CURL");

var CallerID = session.destination;
var SMS = " \
 \
Nashy kontakty: (044)591-92-81, (032)232-77-57, office@it-sfera.com.ua, www.it-sfera.com.ua" ;

console_log("info","Send SMS Card: \n" + SMS + "\n");
var curl = new CURL();
curl.run("POST", "http://sms.it-sfera.com/websend/", SMS);

Теперь менеджер во время разговора с клиентом может просто нажать *0 на SIP-телефоне и клиент получает SMS-визитку на свой телефон. Удобно, вчера дважды сам воспользовался этой функцией!

FreeSWITCHДумаю, что многие используют переадресацию звонков на мобильный, когда вне офиса. Да, это очень удобная функция современной АТС: уходишь, включил переадресацию на мобильный (или по расписанию) и принимаешь важные звонки… Но, одним из неудобных моментов такой переадресации — отсутствие понимания с какого номера пришел звонок (у нас то всегда отображается офисный номер!). Для себя я решил этот вопрос следующим образом: приходит переадресованный звонок, разговариваю, надо узнать номер звонящего — нажимаю *9 и получаю SMS. Как это работает? В предыдущем посте я описал как отправить SMS о пропущенном звонке, так что останавливаться на самом SMS не буду. Все, что нужно, это добавить в dialplan, когда срабатывает переадресация, вызов вот такого action:

&lt;action application=&quot;bind_meta_app&quot; data=&quot;9 b s lua::smsinfo.lua ${cell}&quot;/&gt;

Я использую application bind_meta_app, который позволяет привязывать в уже отвеченном разговоре на заданную комбинацию DTMF запуск разных сценариев. Вот я и запускаю на *9 Lua скрипт с отправкой SMS:

local CallerName = session:getVariable("caller_id_name")
local CallerNumber = session:getVariable("caller_id_number")

function urlencode (s)
 return (string.gsub (s, "%W",
        function (str)
                return string.format ("%%%02X", string.byte (str) )
        end ))
end

local SMS = '<?xml version="1.0" encoding="UTF-8" ?> \
<request method="send-sms" login="login" passw="password"> \
<msg id="1" phone="' ..cell.. '" sn="IT-SFERA" encoding="cyr">Абонент: ' ..CallerName.. ' \
Номер: ' .. CallerNumber.. '&lt;/msg>&lt;/request>'

if (cell) then
        api = freeswitch.API();
        local response = api:execute("curl", "http://sms.it-sfera.com/websend/ post " ..urlencode(SMS) )
        freeswitch.consoleLog("DEBUG","Here's response:\n" .. response .. "\n")
end

И получаем SMS:

Абонент на линии
Абонент на линии