Author: Vitaly Kovalyshyn

IT-SFERA and Webitel
Managing Partner

Web: kovalyshyn.pp.ua

FreeSWITCHСегодня у нас есть FreeSWITCH с подключенными телефонами и отдельно у менеджеров установлен Terrasoft CRM. Необходимо обеспечить возможность определения имени из Terrasoft CRM звонящего абонента на SIP-телефонах. Для этого я написал PHP-скриптик:

Задача следующая: поступает вызов на один наш особый номер (только на этот номер) от абонента группе наших сотрудников. Сотрудник отвечает, общается с абонентом и абонент кладет трубку. Теперь начинается самое интересное, тот кто из группы поговорил с абонентом, надо коммутировать на руководителя отдела. Конечно, сотрудник может и сам потом перезвонить руководителю — но нет, его надо туда перевести 🙂 Вот как это можно решить на FreeSWITCH (99051000114579 — наш особый номер, 2000 — это номер группы, а 1000 — это номер руководителя отдела):

<extension name="in_extensions">
   <condition field="destination_number" expression="^(99051000114579)$">
       <action application="export" data="exec_after_bridge_app=transfer" />
       <action application="export" data="exec_after_bridge_arg=1000 XML features" />
       <action application="bridge" data="2000 XML default" />
    </condition>
</extension> 

«Лаборатория Касперского» подвела предварительные итоги вирусной активности за 2011 год и сделала киберпрогноз на следующий. В рамках ежегодного мероприятия «Вирусные итоги и прогнозы» эксперты компании собрали и проанализировали самую важную информацию об опасностях в кибермире за прошедшие 12 месяцев. Вирусные аналитики также отметили, что их прогнозы развития событий в киберпространстве на 2011 год во многом сбылись.

Согласно данным «Лаборатории Касперского», 2011 год был отмечен не только количественным, но и качественным ростом киберугроз. Под ударом оказались как частные пользователи, так и корпоративный сектор, с которым связаны наиболее заметные события в сфере информационной безопасности. В этом году киберпреступники продолжили развивать «традиционные» методы нелегального заработка и неустанно создавали банковские троянские программы, бесчисленные «блокировщики Windows», изощренные фишинговые схемы. Наиболее явно эти методы проявились именно в нашей стране: российские пользователиподвергались огромному количеству опасностей в социальных сетях и при работе в онлайн-банкинге. Этот год также запомнился многократным применением DDoS-атак. Наиболее громкие мировые инциденты были связаны с деятельностью групп Anonymous и LulzSec. В России же самыми нашумевшими стали атаки на LiveJournal.

Один из наших клиентов (очень большая компания в России) не может пользоваться Skype для звонков к нам в офис (политика безопасности), а на стационарный — дорого. Единственный вариант для него — Google Talk. А мне хочется что бы этот звонок отображался в единой статистике с возможностью прослушать его запись. Давайте объединим пожелания клиента с нашими!

Будем использовать FreeSWITCH. Необходимо включить модуль Dingaling. В файле conf/jingle_profiles/client.xml

  
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
  

Для входящих в dialplan добавляем:


     
         
         
     
   

Все! Теперь звонок будет поступать на номер 1000

И принимать звонок в Oktell

Наш адрес GTalk для звонков: it.sfera.com

Если Вы используете Oktell IP PBX без модуля КЦ и Вы не умеете разрабатывать плагины, а необходимо быстро решить вопрос: При входящем звонке отобразить историю всех звонков по номеру с комментариями. Как это сделать? Пойдем через веб-страничку 🙂

Для начало разработаем SQL запрос, что бы увидеть все входящие, исходящие и пропущенные звонки по номеру:

SELECT [s].[TimeAnswer] as [TimeAnswer]
   ,CONVERT(varchar(max), Cast (Cast ( [s].TimeStop - [s].TimeAnswer as float ) * 1440 as decimal(15,2))) as [TimeLong]
   ,'входящий' AS [D]
   ,CONVERT(varchar(max), [s].[Astr]) as [Abonent] 
   ,CONVERT(varchar(max), [s].[Bstr]) as [Oper] 
   ,l.LineCode as [LineCode]
   ,CONVERT(varchar(max), [c].[Comment])  AS [Comment]
   FROM [oktell].[dbo].[A_Stat_Comments] [c]
   right outer join [oktell].[dbo].[A_Stat_Connections_1x1] [s] on [s].[Id] = c.[id]
   join [oktell].[dbo].A_ServerExtLines [l] on [s].ALineId = [l].id
WHERE ([s].[AOutNumber] like '$c' AND [s].[Bstr] not like 'IVR') 

UNION

SELECT [s].[TimeAnswer] as [TimeAnswer]
   ,CONVERT(varchar(max), Cast (Cast ( [s].TimeStop - [s].TimeAnswer as float ) * 1440 as decimal(15,2))) as [TimeLong]
   ,'исходящий' AS [D]
   ,CONVERT(varchar(max), [s].[Bstr]) as [Abonent] 
   ,CONVERT(varchar(max), [s].[Astr]) as [Oper] 
   ,l.LineCode as [LineCode]
   ,CONVERT(varchar(max), [c].[Comment])  AS [Comment]
   FROM [oktell].[dbo].[A_Stat_Comments] [c]
   right outer join [oktell].[dbo].[A_Stat_Connections_1x1] [s] on [s].[Id] = c.[id]
   join [oktell].[dbo].A_ServerExtLines [l] on [s].BLineId = [l].id
WHERE [s].[BOutNumber] like '$c' AND [s].[Astr] not like 'IVR'

UNION

SELECT [s].[TimeAnswer] as [TimeAnswer]
   ,CONVERT(varchar(max), Cast (Cast ( [s].TimeStop - [s].TimeAnswer as float ) * 1440 as decimal(15,2))) as [TimeLong]
   ,'пропущенный' AS [D]
   ,CONVERT(varchar(max), [s].[Astr]) as [Abonent] 
   ,CONVERT(varchar(max), [s].[Bstr]) as [Oper] 
   ,l.LineCode as [LineCode]
   ,CONVERT(varchar(max), [c].[Comment])  AS [Comment]
   FROM [oktell].[dbo].[A_Stat_Comments] [c]
   right outer join [oktell].[dbo].[A_Stat_Connections_1x1] [s] on [s].[Id] = c.[id]
   join [oktell].[dbo].A_ServerExtLines [l] on [s].ALineId = [l].id
WHERE [s].[AOutNumber] like '$c' AND [s].[Bstr] like 'IVR' AND [s].[ReasonStop] = '3'

ORDER BY [TimeAnswer] DESC

На этих выходных у нас запланировано мероприятие — Партнерская конференция Terrasoft 2011!
Хотите знать что и как? Подписывайтесь на мой twiter @kovalyshyn или на наш корпоративный@it_sfera.

Читаем на этих выходных #terrasoft :wink: