Страницы

пятница, 1 ноября 2013 г.

Настройка преобразования dtmf от CUCM (RFC2833) к провайдеру (inband G711) по SIP trunk

           Да задали мне недавно весьма интересную задачку. А именно у заказчика развернут Cisco Unified Communication Manager (CUCM) 8.6 версии, который по средством шлюза Cisco ISR 2821 подключен к провайдеру. Подключения между   CUCM и ISR 2821 и провайдером осуществлено через SIP trunk рис.1. 

        Рис.1. Схема подключения.

            Вроде бы все хорошо, да вот dtmf  сигнал  между абонентами заказчика и провайдером не работал. Пообщавшись с провайдером я понял, что провайдер за бесплатно понимает только чистый  inband G711 dtmf, при чем при наличии какого либо упоминания про  RFC2833 нужно доплачивать монету. Расстроившись жадности провайдера я начал искать возможность транскодировать сигнал.
          Вот и задача: CUCM умеет только RFC2833 dtmf а провайдер только inband G711 dtmf, необходимо с помощью Cisco ISR 2821 транскодировать RFC2833 dtmf в inband G711 dtmf.
            Проглядев просторы интернета я нашел статьи как это сделать, за что большое спасибо их авторам:
Статья Михалыча - к сожалению упущен важный момент необходимость CCME;
Пост Nickulichev Alexander - все хорошо, вот только я долго не мог понять что к чему относиться и где именно нужно регистрировать  ресурс для транскодинга, и зачем мне CCME если у меня есть полноценный CUCM.

       Поэтому решил предложить свое описание решения данной задачи.

1. Создаем dial-peer на CUCM c  dtmf-relay rtp-nte;
dial-peer voice 7000 voip
    description to CUCM 7xxx
    destination-pattern 7...
    session protocol sipv2
    session target ipv4:192.168.1.2
    codec g711alaw
    dtmf-relay rtp-nte
    no vad

2. Создаем dial-peer на ISP без dtmf-relay;
 dial-peer voice 1 voip
    description to ISP 0xxxxxxxxx 
    destination-pattern 0.........
    session protocol sipv2
    session target ipv4:192.168.10.1
     codec g711alaw
    no vad

3. Определяем ресурс для dspfarm;
 voice-card 
    dsp services dspfarm

А вот тут самое интересное, для активации транскодинга dsp ресурс должен быть зарегистрирован на локальном CCME иначе CUBE он же IPIPGW не начнет транскодировать.

4. Настраиваем взаимодействие sccp на взаимодействие с локальным ссme;
 sccp local FastEthernet0/0 - определяем интерфейс, через который будем взаимодействовать                                                      с CCME 
 sccp ccm 192.168.1.1 identifier 1 version 7.0  - определяем адрес CCME   приоритет и версию                                                                                    CCME 
 sccp - просто включаем протокол sccp 

5. Определяем sccp группу;
  sccp ccm group 1
     associate ccm 1 priority 1 - ассоциируем ccme в группу где ccm 1
                                                     соответствует sccp ccm с identifier 1
     associate profile 1 register TRANSCODER - ассоциируем с dspfarm profile 1 и определяем имя                                                                              регистрации на ccme TRANSCODER 
6. Создаем dspfarm для транскодирования;
 dspfarm profile 1 transcode  
    codec g711alaw
    maximum sessions 4
    associate application SCCP
    shutdown

7.Активируем локальный CCME на один из интерфейсов в примере на 192.168.1.1.;
 telephony-service
   sdspfarm units 1
   sdspfarm transcode sessions 4 - максимальное количество сессий для транскодирования
   sdspfarm tag 1 TRANSCODER - имя профайла для транскодирования
   max-ephones 1
   max-dn 1
   ip source-address 192.168.1.1 port 2000 strict-match
   create cnf-files 

Вот и должно наступить счастье. По крайней мере у меня все заработало.











11 комментариев:

  1. Есть вариант упрощённой реализации данного сервиса. Достаточно добавить в пир
    "dtmf-relay h245-signal h245-alphanumeric cisco-rtp rtp-nte".

    ОтветитьУдалить
    Ответы
    1. Очень сомневаюсь. В статье описано inband G711 dtmf, то есть сигнал передается непосредственно в RTP потоке, а ваш dtmf-relay h245-signal h245-alphanumeric cisco-rtp rtp-nte использует H.323 протокол.

      Удалить
  2. Согласен, не обратил внимание, что в данном примере используется SIP протокол.

    ОтветитьУдалить
  3. Задумался я, видимо заработался совсем. Короче, у меня эта строка прописана в SIPовом пире, который смотрит в сторону именно SIP провайдера (у которого inband dtmf only), а на входе в пир у меня H.323 с CUCM-a (у которого RFC2833 only). Т.е. разница с представленной схемой только с одной левой ногой. И при этом одна строка в пире решает всю описанную выше проблему, DTMF-ы в сторону провайдера воспринимаются. Что же получается, делаем левую ногу схемы в H.323 и вуаля...

    ОтветитьУдалить
  4. Максим вы прости счастливчик, ваш оператор адекватно и главное бесплатно воспринял RFC2833 inband dtmf. И если быть откровенным таких большенство.
    Но я описал ситуацию, когда оператор за это хочет денюшку, и воспринимае dtmf только как чистые звуковые колебания, а при появлении rtp-nte DTMF не воспринимается.
    h245-alphanumeric and h245-signal—These two methods are available only on H.323 dial peers. This is an out-of-band DTMF relay
    rtp-nte—Real-Time Transport Protocol (RTP) Named Telephone Events (NTE). This is an in-band DTMF relay mechanism defined by RFC2833.

    http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/voice/cube/configuration/cube-book/dtmf-relay.html

    ОтветитьУдалить
    Ответы
    1. Спасибо за подробный ответ. Значит счастье есть)))

      Удалить
  5. Здравствуйте, уважаемый Mwmailster! Очень помогла Ваша статья, огромное Вам спасибо! Есть одна проблема с MVA. Можете помочь?

    ОтветитьУдалить
  6. Если можете, напишите, пожалуйста, на почту: nikoseol@mail.ru
    С большим уважением, Сергей.

    ОтветитьУдалить
  7. Добрый день !
    А как посоветуеье поступить - если в наличии только СМЕ с телефонами SCCP и SIP trunk в сторону оператора, принимающего только inband ?

    ОтветитьУдалить
  8. Здравствуйте,
    Скажите пожалуйста как быть если у меня задействован MGCP?

    ОтветитьУдалить
  9. Можно транскодинг на кубе без поднятия CME
    https://www.cisco.com/c/en/us/support/docs/voice-unified-communications/unified-border-element/115018-configure-cube-lti.html

    ОтветитьУдалить