Hello again, my dear colleagues! 🙂
Finally I got some time for another blog post. As always, there was a lot of work, despite the summer period, there was a business trip to our branch in Almaty, where I delivered my traditional Cisco voice courses. And, of course, there was a long-awaited vacation. 🙂
The reason for writing today’s message was my joint work with one of my students – Adonis Troitsky from Almaty. Recently, I assisted him in solving a problem with the registration of hardware media resources (conference bridge and transcoder) on CUCME 8.0. The Cisco Authorized Courses go into some detail about how media resources work with the “server” Cisco Call Manager (CUCM), but they don’t cover how to use it with CUCME (Cisco Unified Communication Manager Express). Let’s compensate the vendor’s omission and cover this topic in more detail.
Media resources in Cisco terminology are hardware or software devices that perform certain processing of voice streams / sessions. Voice stream processing operations include:
- Voice Termination – conversion of “traditional” (ie analog or digital) speech signals into VoIP packets;
- Conferencing – combining (multiplexing) several voice streams into a conference, i.e. a conversation of several users at the same time;
- Transcoding – converting a codec used in a voice session by one device into a codec that can be used by another device.
- Media Termination Point (MTP) – connection (“bridging”) of two voice sessions with each other, for example, in cases where the session uses the same codec, but different packetization intervals or companding laws.
- Music on Hold – play music when one of the participatns is put on hold
- Annunciator – playing voice messages or acoustic signals in various situations, for example, when dialing a non-existent number, etc.
Some voice stream processing operations can only be performed in hardware (Voice Termination, Transcoding), while others can only be performed in software (Music on Hold, Annunciator). Conferencing and MTP can be implemented on both hardware and software resources. The use of hardware is preferable, since software resources increase the load on the processors of the servers and voice gateways. In most cases, DSP (Digital Signal Processor) of voice gateways are used as hardware. To work as a transcoder, conference bridge or MTP DSP chips are combined into a construction called dspfarm (literally: DSP farm). A dspfarm should always register on the CUCM. The CUCM uses the SCCP signaling protocol to manage media resources.
Let’s consider the configuration of hardware media resources for CUCME using the example of a conference bridge and a transcoder. To use the DSP for transcoding or conference, you must perform the following steps (here I provide an example configuration of a Cisco 2811 router with CUCME functionality, explanations are given in italics; values of matching parameters are highlighted in the same color):
voice-card 0 – the slot number where the DSP cards are installed
dsp services dspfarm – enable dspfarm in slot 0
!
!
interface FastEthernet0/0
no ip address
duplex auto
speed auto
!
interface FastEthernet0/0.124 – Voice VLAN subinterface
description BR-2 Phones
encapsulation dot1Q 124
ip address 10.2.4.102 255.255.255.0
!
interface FastEthernet0/0.125 – Data VLAN subinterface
encapsulation dot1Q 124
ip address 10.2.4.102 255.255.255.0
!
interface FastEthernet0/0.125 – Data VLAN subinterface
description BR-2 Data
encapsulation dot1Q 125
ip address 10.2.5.102 255.255.255.0
!
interface Loopback 0
description For_CUCME
ip address 10.2.250.102 255.255.255.0
!
!
sccp local FastEthernet0/0.124 – bind local interface for SCCP signaling
sccp ccm 10.2.250.102 identifier 1 version 7.0 – configure the CUCME IP address on which media resources will be registered, its identifier and software version
sccp – enable SCCP signaling
!
sccp ccm group 1 – configure a CCM group for media resources registration (this is similar to CUCM media resources registration)
associate ccm 1 priority 1 – configure the priority of the CUCME for media resources registration
associate profile 2 register Transcoder – configure the name of the profile for transcoder registration
associate profile 1 register HW_CFB – configure the name of the profile for conference bridge registration
!
dspfarm profile 2 transcode – create a profile for transcoder
codec g711ulaw – specify the codecs, which can be processed by the transcoder
codec g711alaw
codec g729ar8
codec g729abr8
codec g729r8
maximum sessions 2 – maximum number of transcoder sessions
associate application SCCP – activate SCCP signaling for this profile
no shutdown – enable the transcoder
!
!
dspfarm profile 1 conference – create a profile for conference bridge
codec g711ulaw – specify the codecs, which can be used during conference
codec g711alaw
codec g729ar8
codec g729abr8
codec g729r8
codec g729br8
maximum sessions 2 – maximum number of conference sessions
associate application SCCP – activate SCCP signaling for this profile
no shutdown – enable conference bridge
!
!
!
telephony-service – CUCME settings
conference hardware – enable hardware conference
sdspfarm units 2 – number of the profiles for this CUCME
sdspfarm tag 1 HW_CFB – conference profile name (must match with the name of the DSP profile)
sdspfarm tag 2 Transcoder – transcoder profile name (must match with the name of the DSP profile)
max-ephones 10
max-dn 10
ip source-address 10.2.250.102 port 2000 – CUCME IP address
When configuring dspfarm profiles, a situation may arise when the system will not allow you to enter the required number of sessions (maximum sessions). This indicates a lack of DSP resources. It is necessary either to add DSP card to your router, or to reduce the number of traditional telephony ports (analog phones, time slots on E1 links).
After configuring, check the registration of media resources:
BR-2#sh dspfarm profile 1
Dspfarm Profile Configuration
Profile ID = 1, Service = CONFERENCING, Resource ID = 1
Profile Description :
Profile Service Mode : Non Secure
Profile Admin State : UP Profile Operation State : ACTIVE Application : SCCP Status : ASSOCIATED Resource Provider : FLEX_DSPRM Status : UP
Number of Resource Configured : 2
Number of Resource Available : 2
Codec Configuration
Codec : g711ulaw, Maximum Packetization Period : 30 , Transcoder: Not Required
Codec : g711alaw, Maximum Packetization Period : 30 , Transcoder: Not Required
Codec : g729ar8, Maximum Packetization Period : 60 , Transcoder: Not Required
Codec : g729abr8, Maximum Packetization Period : 60 , Transcoder: Not Required
Codec : g729r8, Maximum Packetization Period : 60 , Transcoder: Not Required
Codec : g729br8, Maximum Packetization Period : 60 , Transcoder: Not Required
BR-2#sh dspfarm profile 2
Dspfarm Profile Configuration
Profile ID = 2, Service = TRANSCODING, Resource ID = 2
Profile Description :
Profile Service Mode : Non Secure
Profile Admin State : UP Profile Operation State : ACTIVE Application : SCCP Status : ASSOCIATED Resource Provider : FLEX_DSPRM Status : UP
Number of Resource Configured : 1
Number of Resource Available : 1
Codec Configuration
Codec : g711ulaw, Maximum Packetization Period : 30
Codec : g711alaw, Maximum Packetization Period : 30
Codec : g729ar8, Maximum Packetization Period : 60
Codec : g729abr8, Maximum Packetization Period : 60
Codec : g729r8, Maximum Packetization Period : 60
From the output above, it can be seen that our hardware media resources have been successfully registered with CUCME and are ready for use (Operation State: ACTIVE, SCCP Status: ASSOSIATED). Sometimes it is not possible to immediately get the registration of hardware resources, in this case, the reinitialization of the SCCP protocol helps:
BR-2#(Config) no sccp
BR-2#(Config) sccp
Здравствуйте! Я настраивал транскодинг по Вашей инструкции. И у меня такая есть проблема.
Подскажите пожалуйста, как можно ее решить:
У меня на Cisco 2921 всегда при установлении вызова задействуются ресурсы DSP, даже если этого не нужно.
Например, при использовании на обоих плечах кодеков G711а—G711а работет транскодинг:
Вот пример:
SMA-Mos4a-R3#sh call active voice compact
A/O FAX T Codec type Peer Address IP R:
Total call-legs: 4
1 ANS T28 g711alaw VOIP P88462057001 10.200.104.11:17774
2 ORG T28 g711alaw VOIP P78469735050 91.218.111.140:40784
3 ORG T28 g711alaw VOIP P 10.200.15.229:2000
5 ORG T28 g711alaw VOIP P 10.200.15.229:2000
Добрый день,
Попробуем разобраться, почему так может быть. Для начала хотелось бы знать, между какими телефонами совершается данный звонок (между IP телефонами или между аналоговыми)?
Также попрошу Вас привести вывод команды show dspfarm dsp active во время звонка между телефонами. Она показывает, какие ресурсы ДСП-фермы действительно заняты.
Звонок приходит по SIP от станции SI3000 и уходит по SIP через провайдеров VoIP.
Вот что показывается при разговоре:
SMA-Mos4a-R3#show dspfarm dsp active
SLOT DSP VERSION STATUS CHNL USE TYPE RSC_ID BRIDGE_ID PKTS_TXED PKTS_RXED
0 1 28.3.1 UP 1 USED xcode 1 27 1003 1203
0 1 28.3.1 UP 1 USED xcode 1 26 1200 1005
Total number of DSPFARM DSP channel(s) 1
Портов FXS и плат с PRI в Cisco нет.
Да, действительно необычная ситуация. Давайте попробуем сделать еще вот такой дебаг:
debug voip ccapi inout
Посмотрим, что вызывает занятие транскодера.
Дабаг получился очень больше 4096 символов и не влез в окно блога. Выложил сздесь http://narod.ru/disk/50932401001.08f10e72bcb796b3305704a71cdc0922/1.txt.html
Посмотрите пожалуйста!
Посмотрел, и пока обнаружил вот какую штуку
000311: May 29 08:52:40.789: ccConferenceCreate: ret1=0, codecMask1=2, bytes1=160, negot1=1, dtmf1=0
ret2=0, codecMask2=2, bytes2=160, negot2=1, dtmf2=6,
Обратите внимание, что разный способ передачи dtmf (dtmf1=0 a dtmf2=6). Это может быть вероятной причиной того, что постоянно используется транскодер.
Не могли бы Вы привести конфигурацию входящего и исходящего диалпиров?
Спасибо, огромное за подсказку. Дело было действительно в разных DTMF. Прописал на входящем пире команды:
rtp payload-type nte 101
voice-class sip dtmf-relay force rtp-nte
Все заработало корректно.
Странно, что команда voice-class sip dtmf-relay force rtp-nte не выдается по подсказкам.
Добрый день. Рад, что удалось победить проблему 🙂 Действительно, из-за разных dtmf методов может постоянно заниматься транскодер.
Извините за задержки с ответом – веду курс на этой неделе, и все внимание уделяю слушателям.
Добрый день. Много раз работал с CUCME и настраивал ресурсы на оном. Но вот дожил….Ресурсы не регистрируются. Точнее MTP удалось,а вот с остальными беда. no sccp/sccp не помогает
Много раз работал с CUCME и медиаресурсами на оном и вот дожил…. Не регистрируются медиаресурсы. Точнее, MTP то регистрируется, а вот остальыне – НЕТ. no sccp/sccp – не помогает.
Добрый день, присылайте фрагмент конфига – посмотрим, что там у Вас получается. Всяко бывает 🙂
Спасибо. Разобрался сам.
Доброе утро! 🙂
Рад, что у Вас получилось. Если сочтете возможным, расскажите, пожалуйста о том, какая проблема была. Лишний опыт – всегда хорошо.
Здравствуйте, уважаемый Дмитрий!
Не могу настроить передачу DTMF-сигналов через SIP-trunk между CUCM 7.1 и Siemens Hipath 4000. Настраивал все по примеру из Cisco.com: http://www.cisco.com/en/US/solutions/collateral/ns340/ns414/ns728/ns784/7923951.pdf
Не работает DTMF ни при звонке с цискофонов в город через SIP-trunk, ни донабор при использовании MVA (при звонке из города на MVA-номер). Помогите, пож., разобраться, а то мозги уже закипели.
С уважением, Сергей.
Здравствуйте, Сергей!
Прошу извинить за задержку с ответом – не было совершенно времени и в блог я не заходил.
Я просмотрел тот документ, который Вы прислали. В нем все написано верно. На что Вам надо обратить внимание, так это на конфигурирование MTP, потому как именно МТР отвечают за преобразование ООВ DTMF в In-band DTMF (RFC 2833). Кроме того, в сип транке надо не забыть поставить галочку MTP Required, и ОБЯЗАТЕЛЬНО после сохранения нажать Apply Config -> Reset.
Попробуйте еще раз все перепроверить и сообщите результат. Если не получится, то будем копать глубже.
С уважением, Дмитрий.
Здравствуйте, Дмитрий!
В конфигурации SIP Trunk на CUCM стоит галка "MTP Required", DTMF Signaling Method "OOB and RFC 2833" (пробовал так же и только "RFC 2833"). Товарищ, который занимается настройкой Siemens (приходящий, но очень грамотный) утверждает, что в HiPath 4000 на транке – "DTMFCTRD=Y", что соответствует In-band DTMF (в примере на cisco.com так написано).
Насколько я понял, SCCP телефоны хотят только OOB DTMF, SIP trunk хочет In-band (RFC-2833), а MTP должен перекодировать одно в другое?
Часть конфига маршр-ра:
voice rtp send-recv
!
voice service voip
address-hiding
allow-connections h323 to h323
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
redirect ip2ip
sip
history-info
g729 annexb-all
!
voice class codec 1
codec preference 1 g729r8
codec preference 2 g711alaw
codec preference 3 g711ulaw
!
!
!
!
voice-card 0
dspfarm
dsp services dspfarm
!
!
application
service MVA http://192.168.251.52:8080/ccmivr/pages/IVRMainpage.vxml
!…
!…
interface FastEthernet0/0
description $ETH-LAN$$ETH-SW-LAUNCH$$INTF-INFO-FE 0/0$
ip address 192.168.251.53 255.255.255.240
duplex auto
speed auto
h323-gateway voip interface
h323-gateway voip bind srcaddr 192.168.251.53
!
interface FastEthernet0/1
no ip address
shutdown
duplex auto
speed auto
!
ip forward-protocol nd
no ip http server
ip http access-class 23
ip http authentication local
no ip http secure-server
ip http timeout-policy idle 60 life 86400 requests 10000
!
ip route 0.0.0.0 0.0.0.0 192.168.251.49
!
control-plane
!
mgcp fax t38 ecm
!
sccp local FastEthernet0/0
sccp ccm 192.168.251.52 identifier 1 version 7.0
sccp
!
sccp ccm group 1
bind interface FastEthernet0/0
associate ccm 1 priority 1
associate profile 101 register mtp04c5a43f7e99
associate profile 100 register mtp04c5a43f7e98
associate profile 99 register cfb04c5a43f7e98
!
dspfarm profile 101 transcode
codec g711ulaw
codec g711alaw
codec g729ar8
codec g729abr8
codec gsmamr-nb
codec ilbc
codec pass-through
maximum sessions 6
associate application SCCP
!
dspfarm profile 99 conference
codec g711ulaw
codec g711alaw
codec g729ar8
codec g729abr8
codec g729r8
codec g729br8
maximum sessions 2
associate application SCCP
!
dspfarm profile 100 mtp
codec g711ulaw
maximum sessions software 20
associate application SCCP
!
dial-peer voice 5769 voip
service mva
incoming called-number 5769
dtmf-relay rtp-nte digit-drop h245-signal h245-alphanumeric cisco-rtp
codec g711ulaw
no vad
!
dial-peer voice 5770 voip
destination-pattern 5770
session target ipv4:192.168.251.52
dtmf-relay h245-signal rtp-nte h245-alphanumeric cisco-rtp
codec g711ulaw
no vad
!
!
gateway
timer receive-rtp 600
С уважением, Сергей.
P.S. Прошу извинить за потраченное Ваше время.
Еще раз добрый день, Дмитрий.
Вот еще INVITE звонка с цискофона в город через SIP trunk: CUCM (192.168.251.52) – Siemens HiPath 4000 (192.168.251.14):
INVITE sip:084957257660@192.168.251.14:5060 SIP/2.0
Date: Mon, 27 Aug 2012 11:58:26 GMT
Call-Info: ;method="NOTIFY;Event=telephone-event;Duration=500"
Allow: INVITE, OPTIONS, INFO, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY
From: "Nikolaev S.L." ;tag=64416edd-2714-4f01-97d8-6d5908214519-28517748
Allow-Events: presence, kpml
P-Asserted-Identity: "Nikolaev S.L."
Supported: timer,resource-priority,replaces
Supported: X-cisco-srtp-fallback
Supported: Geolocation
Min-SE: 1800
Remote-Party-ID: "Nikolaev S.L." ;party=calling;screen=yes;privacy=off
Content-Length: 216
User-Agent: Cisco-CUCM7.1
To:
Contact:
Expires: 180
Content-Type: application/sdp
Call-ID: 80ee2280-3b160e2-9d-34fba8c0@192.168.251.52
Via: SIP/2.0/TCP 192.168.251.52:5060;branch=z9hG4bK11c5fa14a4b
CSeq: 101 INVITE
Session-Expires: 1800
Max-Forwards: 70
v=0
o=CiscoSystemsCCM-SIP 2000 1 IN IP4 192.168.251.52
s=SIP Call
c=IN IP4 192.168.251.53
t=0 0
m=audio 16858 RTP/AVP 0 101
a=rtpmap:0 PCMU/8000
a=ptime:20
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-15
Обратите, пожалуйста, внимание на "method=NOTIFY".
Такое ощущение, что CUCM хочет не RFC-2833, а sip-notify почему-то.
Здравствуйте Дмитрий,
при настройки meet me выдается ошибка
c2821#sh sdspfarm uni
conf-1 Device:mtp001b54ca9aa2 TCP socket:[18] REGISTERED in SCCP ver 18/18
actual_stream:48 max_stream 48 IP:10.27.120.7 * 65463 Conference Dixieland keepalive 0
Supported codec:
G711Ulaw
G711Alaw
G729
G729a
G729b
G729ab
max-mtps:2, max-streams:0, alloc-streams:0, act-streams:0
c2821#
может подскажите что не так
Здравствуйте, Ирина!
А какая, собственно, ошибка выдается? Max-streams:0?
TCP socket:[18] разве это не ошибка
Дмитрий, спасибо что откликнулись, вроде настроено все правильно, но не работает никак,
при создании конференции с телефона 1 звонок срабатывает, при вызове следующего абонента Нет доступных линий………..
Спасибо
С Уважение Ирина
Добрый день, Ирина!
Нет, TCP socket:[18] REGISTERED in SCCP – это не ошибка. Наоборот, это сообщение говорит о том, что конференц-мост успешно зарегистрирован. А вот то, что мах-streams:0, у меня вызывает больше подозрений.
Давайте для начала посмотрим, что нам показывает вывод команды show dspfarm dsp all (до установления конференции и после дозвона первого абонента на конфу MeetMe).
Также хотелось бы взглянуть на части конфига маршрутизатора, отвечающие за конференц-мост и конференцию MeetMe.
c2821#sh dspfarm dsp all
SLOT DSP VERSION STATUS CHNL USE TYPE RSC_ID BRIDGE_ID PKTS_TXED PKTS_RXED
0 3 28.3.1 UP N/A FREE conf 1 – – –
0 3 28.3.1 UP N/A FREE conf 1 – – –
0 4 28.3.1 UP N/A FREE conf 1 – – –
0 4 28.3.1 UP N/A FREE conf 1 – – –
0 5 28.3.1 UP N/A FREE conf 1 – – –
0 5 28.3.1 UP N/A FREE conf 1 – – –
Total number of DSPFARM DSP channel(s) 6
c2821#
после дозвона 1 абонента
ничего не изменилось
c2821#
voice call send-alert
voice call carrier capacity active
!
voice service pots
no direct-inward-dial isdn
!
voice service voip
allow-connections h323 to h323
redirect ip2ip
!
voice class codec 1
codec preference 1 g711ulaw
codec preference 2 g711alaw
!
voice class custom-cptone leavetone
dualtone conference
frequency 400 800
cadence 400 50 200 50 200 50
!
voice class custom-cptone jointone
dualtone conference
frequency 600 900
cadence 300 150 300 100 300 50
!
!
voice register global
!
!
!
!
voice-card 0
dsp services dspfarm
sccp ccm group 1
bind interface GigabitEthernet0/1.7
associate ccm 1 priority 1
associate profile 1 register HW_CFB
!
dspfarm profile 1 conference
codec g711ulaw
codec g711alaw
codec g729ar8
codec g729abr8
codec g729r8
codec g729br8
maximum sessions 6
conference-join custom-cptone jointone
conference-leave custom-cptone leavetone
associate application SCCP
telephony-service
sdspfarm units 2
sdspfarm tag 1 HW_CFB
conference hardware
max-ephones 58
ephone-template 1
conference drop-mode local
conference add-mode creator
conference admin
softkeys hold Join Newcall Resume Select
softkeys idle Cfwdall ConfList Dnd Join Newcall Pickup Redial RmLstC
softkeys seized Endcall Redial Meetme Cfwdall Pickup
softkeys alerting Callback Endcall
softkeys connected ConfList Confrn Endcall Hold Join Park RmLstC Select Trnsfer
softkeys ringing Answer Dnd
keep-conference
ephone-dn 29 dual-line
number 27000
conference meetme
preference 1
no huntstop
!
!
ephone-dn 30 dual-line
number 27000
conference meetme
preference 2
no huntstop
!
!
ephone-dn 31 dual-line
number 27000
conference meetme
preference 3
no huntstop
ephone 1
conference drop-mode creator
conference add-mode creator
conference admin
device-security-mode none
mac-address 001D.54CA.9AA2
ephone-template 1
type 7941
button 1:25
!
СПАСИБО
c2821#sh run | sec sccp
tftp-server flash:cvm41sccp.9-1-1TH1-16.sbn
tftp-server flash:jar41sccp.9-1-1TH1-16.sbn
tftp-server flash:/Phones/7911-7906/cvm11sccp.9-1-1TH1-16.sbn
tftp-server flash:/Phones/7911-7906/jar11sccp.9-1-1TH1-16.sbn
tftp-server flash:/Phones/7941-7961/cvm41sccp.9-1-1TH1-16.sbn
tftp-server flash:/Phones/7941-7961/jar41sccp.9-1-1TH1-16.sbn
tftp-server flash:/8.4/cvm41sccp.8-4-1-23.sbn
tftp-server flash:/8.4/jar41sccp.8-4-1-23.sbn
tftp-server flash:/mk-sccp.jar alias Russian_Federation/td-sccp.jar
tftp-server flash:/mk-sccp.jar alias Russian_Russia/mk-sccp.jar
tftp-server flash:/tc-sccp.jar alias Russian_Russia/tc-sccp.jar
tftp-server flash:/Locale/ru-mk-sccp.jar
tftp-server flash:/Locale/ru-tc-sccp.jar
tftp-server flash:/Locale/ru-td-sccp.jar
tftp-server flash:jar11sccp.8-3-3ES2.sbn
tftp-server flash:cvm11sccp.8-3-3ES2.sbn
tftp-server flash:7941-7961-sccp.8-4-2S.tar
tftp-server flash:7906-7911-sccp.8-4-2S.tar
tftp-server flash:cmterm-7941_7961-sccp.9-3-1-1.cop.sgn
tftp-server flash:cvm41sccp.9-3-1TH2-5.sbn
tftp-server flash:jar41sccp.9-3-1TH2-5.sbn
sccp local GigabitEthernet0/1.7
sccp ccm 10.27.120.7 identifier 1 version 7.0
sccp
sccp ccm group 1
bind interface GigabitEthernet0/1.7
associate ccm 1 priority 1
associate profile 1 register HW_CFB
keepalive retries 5
c2821#
c2821#sh sccp
SCCP Admin State: UP
Gateway Local Interface: GigabitEthernet0/1.7
IPv4 Address: 10.27.120.7
Port Number: 2000
IP Precedence: 5
User Masked Codec list: None
Call Manager: 10.27.120.7, Port Number: 2000
Priority: N/A, Version: 7.0, Identifier: 1
Trustpoint: N/A
Conferencing Oper State: ACTIVE – Cause Code: NONE
Active Call Manager: 10.27.120.7, Port Number: 2000
TCP Link Status: CONNECTED, Profile Identifier: 1
Reported Max Streams: 48, Reported Max OOS Streams: 0
Supported Codec: g711ulaw, Maximum Packetization Period: 30
Supported Codec: g711alaw, Maximum Packetization Period: 30
Supported Codec: g729ar8, Maximum Packetization Period: 60
Supported Codec: g729abr8, Maximum Packetization Period: 60
Supported Codec: g729r8, Maximum Packetization Period: 60
Supported Codec: g729br8, Maximum Packetization Period: 60
Supported Codec: rfc2833 dtmf, Maximum Packetization Period: 30
Supported Codec: rfc2833 pass-thru, Maximum Packetization Period: 30
Supported Codec: inband-dtmf to rfc2833 conversion, Maximum Packetization Period: 30
TLS : ENABLED
c2821#sh telephony-service
CONFIG (Version=8.6)
=====================
Version 8.6
Max phoneload sccp version 17
Max dspfarm sccp version 18
Cisco Unified Communications Manager Express
For on-line documentation please see:
http://www.cisco.com/en/US/products/sw/ … _home.html
protocol mode default
ip source-address 10.27.120.7 port 2000
ip qos dscp:
ef (the MS 6 bits, 46, in ToS, 0xB8) for media
cs3 (the MS 6 bits, 24, in ToS, 0x60) for signal
af41 (the MS 6 bits, 34, in ToS, 0x88) for video
default (the MS 6 bits, 0, in ToS, 0x0) for serviceservice directed-pickup
service dnis dir-lookup
service dss
load 7911 SCCP11.9-1-1SR1S
load 7941 SCCP41.9-3-1-1S
max-ephones 58
max-dn 192
max-conferences 16 gain -6
dspfarm units 2
dspfarm transcode sessions 0
dspfarm 1 HW_CFB
dspfarm 2
conference hardware
privacy
no privacy-on-hold
hunt-group report delay 1 hours
hunt-group logout DND
max-redirect 10
cnf-file location: flash:
cnf-file option: PER-PHONE
network-locale[0] RU (This is the default network locale for this box)
network-locale[1] US
network-locale[2] US
network-locale[3] US
network-locale[4] US
user-locale[0] RU (This is the default user locale for this box)
user-locale[1] US
user-locale[2] US
user-locale[3] US
user-locale[4] US
srst mode auto-provision is OFF
srst ephone template is 0
srst dn template is 0
srst dn line-mode single
moh flash:music-on-hold.au
time-format 24
date-format dd-mm-yy
timezone 51 Central Pacific Standard Time
secondary-dialtone 9
call-park system redirect
transfer-pattern 1
transfer-pattern 2
keepalive 30 auxiliary 30
timeout interdigit 5
timeout busy 10
timeout ringing 120
timeout transfer-recall 20
timeout ringin-callerid 8
timeout night-service-bell 12
caller-id name-only: enable
system message Rosreestr 27
web admin system name root password ********
web admin customer name mikle password *******
edit DN through Web: enabled.
edit TIME through web: enabled.
background save interval 10 minutes
Log (table parameters):
max-size: 1000
retain-timer: 30
create cnf-files version-stamp Jan 01 2002 00:00:00
transfer-system full-consult
transfer-digit-collect new-call
multicast moh 239.10.16.4 port 16384
route 10.27.120.5
10.27.120.240
local directory service: enabled.
Extension-assigner tag-type ephone-tag.
Вот вроде все основные моменты в трех файлах потому что объем ограничен
Спасибо
С Уважением Ирина
Доброе утро, Ирина!
На первый взгляд все настроено правильно. Однако, обратите внимание вот на что. У вас сконфигурировано 6 каналов и до звонка на MeetMe все они свободны. Но и после звонка и дозвона первого абонента они тоже свободны:
"c2821#sh dspfarm dsp all
SLOT DSP VERSION STATUS CHNL USE TYPE RSC_ID BRIDGE_ID PKTS_TXED PKTS_RXED
0 3 28.3.1 UP N/A FREE conf 1 – – –
0 3 28.3.1 UP N/A FREE conf 1 – – –
0 4 28.3.1 UP N/A FREE conf 1 – – –
0 4 28.3.1 UP N/A FREE conf 1 – – –
0 5 28.3.1 UP N/A FREE conf 1 – – –
0 5 28.3.1 UP N/A FREE conf 1 – – –
Total number of DSPFARM DSP channel(s) 6
c2821#
после дозвона 1 абонента
ничего не изменилось"
Так не должно быть. После дозвона первого абонента уже должен быть занят один из каналов.
Давайте проясним ситуацию, кто и как набирает. Судя по присланным конфигам, правильная последовательность должна быть такой:
1. Инициатор конфы MeetMe снимает трубку, нажимает кнопку MeetMe и далее набирает номер MeetMe (27000).
2. После этого инициатор входит в конфу.
3. Следующий участник для присоединения конфы должен снять трубку, набрать номер 27000 и войти в конфу (КЛАВИША MEETME при этом не нажимается!!! – это является самой распространенной ошибкой при использовании данного типа конференции, поэтому специально обращаю внимание).
Так ли у Вас собирается конференция?
Работает ли обычная конференция (т.е обычная "ручная" конфа)?
Дмитрий СПАСИБО ВАМ ОГРАМЕННОЕ,
все заработало:
c2821#sh dspf
c2821#sh dspfarm dsp all
SLOT DSP VERSION STATUS CHNL USE TYPE RSC_ID BRIDGE_ID PKTS_TXED PKTS_RXED
0 3 28.3.1 UP N/A FREE conf 1 – – –
0 3 28.3.1 UP N/A FREE conf 1 – – –
0 4 28.3.1 UP 1 USED conf 1 136 2725 2726
0 4 28.3.1 UP 1 USED conf 1 138 2284 2276
0 4 28.3.1 UP 1 USED conf 1 140 1434 1426
0 4 28.3.1 UP N/A FREE conf 1 – – –
0 5 28.3.1 UP N/A FREE conf 1 – – –
0 5 28.3.1 UP N/A FREE conf 1 – – –
Total number of DSPFARM DSP channel(s) 6
c2821#
СПАСИБО, СПАСИБО, СПАСИБО
С Огромным Уважением Ирина
Доброе утро, Ирина!
Пожалуйста 🙂 Рад, что все получилось и рад помочь! 🙂
Хорошего дня!
День добрый, Дмитрий!
Может у меня что-то не нак с руками, но конференция заработала только после того, как был создан DN для терминирования конференций:
ephone-dn 101 octo-line
number C001
conference add-hoc
Но вместе с этим возникла и другая проблема – все конференции "валятся" в одну DN несмотря на то, что я создал аналогичных DN по количеству max-conference и собираю конференции с разных аппаратов…
Не подскажите, как их можно их раскидать?
Добрый день, Андрей!
Создание отдельного ephone-dn для конференции является обязательным при конфигурировании именно аппаратной (hardware) конференции. Так что в том, что конференция заработала только после создания дополнительного номера, нет ничего необычного – так и должно быть.
"Все конференции "валятся" в одну DN" – думаю, что это из-за того, что Вы сконфигурировали именно octo-line. Octo-line – для одного DN "включается" 8 голосовых каналов, и система пытается занять для конференции все свободные каналы на этом DN. Думаю, что тут все будет зависеть от того, сколько участников будет в той или иной конфе.
Я бы предложил Вам попробовать создать DN'ы как dual-line. Например, по два одинаковых DN с dual-line(это даст 4 канала). И проверить, как это работает.
Добрый день, Дмитрий!
Странно, но с dual-line у меня возникли проблемы с подключением 4-го участника в конференцию… Но опять же самое что странное – octo-line заработал прекрасно просто после перегрузки роутера…
Кстати, еще один вопрос по теме: если мы делаем профиль для конференций с множеством кодеков, то это снижает по факту количество параллельных конференций. Логична ли моя мысль, что есть смысл оставить профиль конференций только с одним g711ulaw кодеком, а если абонент будет с другим кодеком, то cucme обработает его сначала через профиль транскодирования, а уже потом он "пойдет" в саму конференцию? Тогда мы сможем экономить аппаратные рессурсы, не так ли?
Спасибо за ответ и с праздником!
Добрый день, Андрей!
Действительно, если сделать профиль для конференции с несколькими кодеками, то количество одновременных конференций будет меньше, так как DSP резервируются на случай сессий с разными кодеками.
Однако, то же самое будет, если Вы дополнительно сконфигурируете транскодер, так как для него тоже нужны все те же DSP, которые точно так же будут резервироваться, только под транскодер. Думаю, что по факту с транскодером будет такая же ситуация, ведь по сути, конф мост при объединении сессий с разными кодеками играет сразу роль транскодера.
Нужно добавлять DSP, если нужно больше одновременных конференций с разными кодеками. Это самый лучший, но и самый дорогой вариант. Или, использовать только G711… но тут все зависит от вашего решения телефонии, т.е где расположены телефоны, какие между ними каналы итд.
Вас также поздравляю с НГ по старому стилю! 🙂
Спасибо, Дмитрий!
Вас так же с праздником, правда уже прошедшим…
добрый день Дмитрий!
Не могли бы Вы привести краткие настройки на интерфейсе cisco, для передачи имени абонента через поток Е1 от АТС Меридиан на телефоны Cisco и обратно, схема включения вот такая АТС–Cisco3845-TA_7961
Сигнализация на потоке QSIG
Вот мои настройки
interface Serial0/1/0:15
description to_CS1000
no ip address
encapsulation hdlc
isdn switch-type primary-qsig
isdn protocol-emulate network
isdn incoming-voice voice
isdn send-alerting
isdn outgoing ie facility
isdn outgoing display-ie
no cdp enable
!
Добрый день, Алексей!
Когда-то давно (года 4 назад) я стыковал Меридиан и Циску по QSIG согласно вот этого документа:
http://www.cisco.com/en/US/docs/voice_ip_comm/cucme/pbx/interop/notes/460185nt.pdf
Конфигурация Д-канала на циске приведена на стр.34. Все было супер, проблем с передачей имени не было.
На первый взгляд, Ваша конфига выглядит правильной. Однако, если имя не передается, то попробуйте в Дканале циски дописать:
isdn supp-service name calling
Не помогло. По трассировкам isdn вижу что имя передается в поле facility, но как его получить на дисплее ТА Cisco – ?
Доброе утро,
А не включено ли, случайно, на Меридиане где-нить ограничение отображения номера?
Проверьте, чтобы в Д-канале Меридиана стояло:
IFC ISGF
и
RCAP NDI
Дмитрий Здравствуйте,
возник вопрос как называется, а главное как настраивается конференция, когда ты дозваниваешься на номера с которыми хочешь создать конференцию и возможно ли такое на CUCME.
Спасибо
С уважением, Ирина
Добрый вечер, Ирина!
Такая конференция называется MeetMe, ее можно сделать и на CUCME. Вот пример конфигурации (т.е. того, что нужно добавить к конфигурации, описанной выше в посте):
!
ephone-template 1
softkeys seized Endcall Redial Meetme Cfwdall Pickup
!
ephone-dn 10 octo-line
description meet-me conference extension
number 8000
conference meetme
no huntstop
!
ephone 1
ephone-template 1
Вроде все :), надеюсь, что ничего в конфиге не забыл 🙂
Дмитрий здравствуйте,
ephone-dn 29 octo-line
number 27270
description mett-me conference extension
conference meetme
no huntstop
!
и ephone 29
device-security-mode none
mac-address 001D.450B.D768
ephone-template 1
type 7911
не прописывается команда butt 1:29,
и соответственно нет зуммера
остался еще вопрос, как собрать такую конференцию
Спасибо
С уважением, Ирина
Доброе утро, Ирина!
А номер MeetMe не нужно прописывать на кнопку. СМЕ не принимает эту команду, потому что ephone-dn 29 – это номер для конференции meetme.
По сборке: инициатор конференции поднимает трубку, нажимает клавишу MeetMe, далее набирает номер MeetMe (27270) и входит в конфу. Тот, кто желает присоединиться, просто снимает трубку и набирает этот же номер и все.
Не буду доступен в сети аж до четверга… Пишите, если потребуется еще помощь, но смогу ответить Вам не ранее 27.06.
Здравствуйте, Дмитрий!
срочно нужна Ваша помощь,
в логах 2821 пишет
Jul 8 00:14:27: %ENVMON-4-FAN_LOW_RPM: Fan 2 service recommended
так все работает, но при организации конференции meem-me, конференция делает вызов сама на себя
Доброе утро, Ирина!
Jul 8 00:14:27: %ENVMON-4-FAN_LOW_RPM: Fan 2 service recommended – это сообщение говорит о проблеме с одним из вентиляторов охлаждения Вашего маршрутизатора. Нужно вскрывать и чистить или вообще менять сам вентилятор.
По meet-me – пришлите, пожалуйста, конфиг Вашего маршрутизатора. Или напишите в коменте адрес почты (не буду этот комент публиковать), и далее спишемся по почте.
Добрый вечер, сразу оговорюсь, я в этом деле новичок. Я наверное что-то не так понимаю, или не понимаю вовсе.
Собственно проблема это передача DTMF через sip транк в In-Band режиме c SCCP телефонов. Собственно конфигурация такая
Есть C3825 (C3825-ADVENTERPRISEK9_IVS_LI-M , Version 12.4(24)T2 )с воткнутыми в нее pvdm2-32 и EVM-HD ( 8 – FXS )
К ней подключено один 7961, один SIP телефон ( какой-то самый простой ), и два SLT телефона подключенных EVM-HD
и SIP транк ( для примера я взял SIPNET ), настроены dial-peer -ы, в общем все на все звонит
7961 умеет ставить звонки на паузу ( moh ) переводить звонок на другие номера и пр. SIP телефон не ставит на паузу ( хотя кнопка hold на нем есть но музыку не дает ),
переводит но без assist ( впрочем этого от него никто и не требует т.к. в основной планируются SCCP телефоны ).
Ели звонить SCCP<->SLT DTMF ходит нормально
SIP <-> SCCP через раз проходят DTMF причем если SIP -> SCCP то всегда а SCCP -> SIP через раз ( хотя всегда при звонке sh call active voice выдает tx_DtmfRelay=rtp-nte
) – видимо кодек в SIP телефоне кривоват и не всегда ловит dtmf и передает в голосе )
Собственно проблема в транке – провайдер передает в DTMF в rtp-nte (т.е. In-Band ) ( а SCCP телефоны только в Out_Of_Band ). Поиски решения собственно и привели меня в к таким понятиям
как MTP и в частности к этой статье, за что автору огромная благодарность,( все очень четко расписано ). Так вот, делаю точно как у вас.
Создаю только
dspfarm profile 2 mtp и привязываю к telephony-service
В итоге
riuter# sh sccp
SCCP Admin State: UP
Gateway Local Interface: GigabitEthernet0/1.30
IPv4 Address: 192.168.30.1
Port Number: 2000
IP Precedence: 5
User Masked Codec list: None
Call Manager: 10.2.2.1, Port Number: 2000
Priority: N/A, Version: 7.0, Identifier: 1
Trustpoint: N/A
Conferencing Oper State: ACTIVE – Cause Code: NONE
Active Call Manager: 10.2.2.1, Port Number: 2000
TCP Link Status: CONNECTED, Profile Identifier: 1
Reported Max Streams: 16, Reported Max OOS Streams: 0
Supported Codec: g711ulaw, Maximum Packetization Period: 30
.
.
.
Supported Codec: inband-dtmf to rfc2833 conversion, Maximum Packetization Period: 30
MTP Oper State: ACTIVE – Cause Code: NONE
Active Call Manager: 10.2.2.1, Port Number: 2000
TCP Link Status: CONNECTED, Profile Identifier: 2
Reported Max Streams: 16, Reported Max OOS Streams: 0
Supported Codec: g711alaw, Maximum Packetization Period: 30
…
говорит что все хорошо
и
router#sh sccp ccm group 1
CCM Group Identifier: 1
Description: None
Binded Interface: None
Associated CCM Id: 1, Priority in this CCM Group: 1
Associated Profile: 2, Registration Name: MTP00001
Associated Profile: 1, Registration Name: HW_CFB
тоже все привязал
а вот
router# sh sdspfarm units
conf-1 Device:HW_CFB TCP socket:[1] REGISTERED in SCCP ver 17/10
actual_stream:16 max_stream 16 IP:192.168.30.1 45192 Conference Dixieland keepalive 305
Supported codec: …
mtp-2 Device:MTP00001 TCP socket:[-1] UNREGISTERED
actual_stream:0 max_stream 0 IP:0.0.0.0 0 Unknown 0 keepalive 0
Это смущает.
Отсюда вопрос, CUCME-вообще не признает MTP. ( тогда как настроить передачу DTMF ). Или этот MTP надо еще куда-то прописать чтобы все заработало.
И еще если делать shutdown no shutdown профилю MTP
то выдает
ephone-3:MTP00001 IP:192.168.30.1 Socket:2 DeviceType:Phone has unregistered normally.
returning empty string !!!!
*Jul 13 17:43:12.999: %IPPHONE-6-REGISTER_NEW: ephone-3:MTP00001 IP:192.168.30.1 Socket:2 DeviceType:Phone has registered.
т.е. как-то этот MTP теплится.
и что это за returning empty string !!!! ??
Доброе утро, Алексей!
В настоящее время я веду курс в Москве, поэтому все внимание уделяю ему. Я напишу Вам развернутый ответ в конце недели на выходных, как только появится свободное время.
Ок?
Хорошо, буду ждать ответа.
Добрый день, Алексей!
Наконец-то появилась минутка, чтобы поотвечать на вопросы читателей блога. Просто завал был… всю неделю испытывал жуткий цейтнот и не знал, за что браться в первую очередь. 🙂
По Вашей проблеме, сообщаю следующее. МТР для ССМЕ обычно не требуется, так как ССМЕ сам является МТР, и выполняет, в частности, конверсию DTMF OUT-OF-BAND в DTMF IN-BAND. Иными словами, для того, чтобы по протоколу SIP передать DTMF методом rtp-nte (rfc2833) МТР для ССМЕ не нужны.
Достаточно в диалпире, который сконфигурирован для звонков к сип-провайдеру, прописать dtmf-relay rtp-nte.
Для более подробной помощи Вам, мне потребуется взглянуть на конфиг Вашего устройства, и, возможно, дебаги. Поэтому, предлагаю, перенести общение в почту. Пришлите, пожалуйста, в коменте адрес своей почты (комент не будет опубликован), и я вам отвечу.
Добрый день!
Вопрос по настройке:
Имеется Cisco 2811 на ней прописано много dial-peer'ов с разными кодеками
dial-peer voice 331 voip
destination-pattern 331
session protocol sipv2
session target ipv4:192.168.12.250:5060
codec g726r16
dial-peer voice 310 voip
destination-pattern 310
session protocol sipv2
session target ipv4:192.168.38.250:5061
codec g711ulaw
их несколько десятков…
Задача сделать между ними транскодирование.
Я прописал
voice-card 0
dsp services dspfarm
создал профиль
dspfarm profile 10 transcode
но я не могу добавить кодек g726r16, парсер выдает ошибку.
Как быть, транскодинг не работает. Можно это по другому настроить?
Добрый вечер, Александр!
Я не помню на память, но вполне возможно, что 726й кодек не программируется для транскодера. Транскодер по-другому не настроить :(.
Добрый день!
Мне нужно завести транк между CUCM 9.1 и Asterisk без использования MTP. Так же у меня имеется CUBE. Я настроил SIP транки: CUCM<->CUBE<->Asterisk. Звонки проходят, но перевод звонков/снятие с удержания не работают.
На CUBE:
voice service voip
allow-connections sip to sip
sip
bind control source-interface GigabitEthernet0/0.1
bind media source-interface GigabitEthernet0/0.1
session transport tcp
early-offer forced
dial-peer voice 1 voip
description cucm
destination-pattern 1…
session protocol sipv2
session target ipv4:10.200.128.162
incoming called-number .T
dtmf-relay rtp-nte
codec g711alaw
dial-peer voice 2 voip
description asterisk
destination-pattern 2…
session protocol sipv2
session target ipv4:10.200.128.164
incoming called-number .T
dtmf-relay rtp-nte
codec g711alaw
На Asterisk: dtmfmode=rfc2833, codec=g711alaw, период пакетизации – 20
На CUCM: MTP не используется, dtmf=rfc2833
Что я упустил? Может это как-то по др. настраивается?
С уважением, Владимир Боженков
Доброе утро, Владимир.
А почему не хотите-то использовать МТР? При трансферах будет проблема без них – некуда терминировать RTP на момент перевода вызова. Решение этой проблемы – или МТР, или (в новых релизах иос) можно применить функцию Mid-call Re-INVITE Consumption. Циска о ней пишет вот что:
The purpose of Mid-call Re-INVITE Consumption is to ensure smooth interoperatibility of supplementary services like audio Hold/Resume and call transfer.
Применяется эта фича только для SIP звонков. Мне ее еще не приходилось тестировать. Собственно, МТР прекрасно решает все подобные проблемы.
Доброе утро, Дмитрий.
Спасибо за ответ – сегодня буду пробовать. А необходимость исключить из этой связки MTP – обусловлена задачей. Нужно интегрировать в эту схему XMediusFax – а с включенным MTP – CUCM при переводе звонка на XMediusFax в SIP сообщениях пишет "SIP/2.0 488 Not Acceptable Media". В вендоре сказали следующее:
"MTP нужно выключить, со стороны города (от шлюза до CUCM) должен быть SIP транк. На шлюзе в настройках sip соединения в сторону CUCM перечислить все варианты посылки DTMF. Если шлюз Cisco, то, соответственно, на dial-peer voice xxx voip -> dtmf-relay и перечислить все возможные варианты. На CUCM в настройках SIP транка в сторону шлюза в поле DTMF Signaling Method : RFC2833"
Так что буду пробовать ваш вариант. По результатам отпишусь. Еще раз спасибо!
С уважением, Владимир Боженков
Дмитрий – огромное спасибо – это как раз то, что я так долго искал. Факсы стали проходить ))
Еще раз огромное спасибо!!!
С уважением, Владимир Боженков
Пожалуйста, 🙂 рад, что все заработало. Обращайтесь 🙂
Дмитрий, добрый день. имею следующий конфиг:
С3725 – c3725-adventerprisek9_ivs-mz.124-15.T14.bin
Модуль NM-HDV и вставленный в него PVDM-12.
Проблема в том что нет в иосе команды
dspfarm profile
и соответственно не могу настроить транскодинг, ситуация тупа до безобразия. В главном офисе настроенная 3845 с sccp и sip телефонами, на филиальной этой 3725 – тоже самое. sccp и sip. Между ними h323 транк. Звонки проходят между всеми аппаратами во все стороны, кроме как с sip трубки, зареганной на 3725 в сторону главного офиса. Дебаг говорит о несовпадении кодеков(Disconnection cause (65)). При этом с этой же трубки звонится на местные sccp аппараты и в город, через сип-провайдера, приходящего на 3725. Есть какие-нибудь идеи такой мистики?
Добрый день, Сергей!
Попробуйте почитать вот эту статью:
http://www.cisco.com/en/US/docs/ios-xml/ios/voice/cminterop/configuration/12-4t/vc-enh-confr-vgr.html#GUID-DF87992D-E736-40CA-8731-A24C8F8BA2FF
В ней есть пример конфигурации транскодера на базе DSP, установленных в модуль NM-HDV.
О несовпадении кодеков – скорее всего, ваша трубка поддерживает только кодек G711, а на диал-пире выставлен только кодек G729. Выходом из ситуации (если, конечно, позволяет канал) может быть применение списка кодеков (voice class codec) на данном диал-пире.
Здравствуйте. Просветите пожалуйста пару моментов – есть cisco 2921 с cucme на борту и зарегистрированные на ней sip телефоны стороннего производителя (не cisco). Регистрация осуществляется через voice register pool. Как реализовать функцию перехвата вызова (pickup) с одного телефона на другой? я нашел описание данной функции только касательно ephone. Заранее спасибо.
Добрый день, Илья!
Вся проблема в том, что сторонние SIP-телефоны не поддерживают многие функции CUCME. Обычно с них можно совершить только базовый звонок, т.е снял трубу и набрал номер. Для некоторых телефонов (например, для того же X-lite) доступны такие функции как трансфер и конференция, но это уже зависит от телефона.
Однако, можно попытаться для подхвата вызова с SIP-телефона использовать FAC. На одном из форумов я вот вычитал такое:
SIP phones that do not support the PickUp and GpickUp soft keys must use feature access codes (FACs) to access these features.
Но я это сам не пробовал. Покопайте в сторону feature access codes, я же, в свою очередь, проверю это при случае в своей лабе.
меня устроит и ввод комбинации с клавиатуры – например *8#
прописываю Fac custom pickup local *8#
и в voice register dn – pickup-group 1 – результат нулевой
Илья, пока не могу ничего добавить более 🙁 Проверю в лабе, если удастся, я напишу. Времени только катастрофически нет…
спасибо, буду очень ждать
Добрый день! прошу помощи…
СМЕ подключено к SIP-оператору. Все звонки приходят с использование кодека g729r8. Хочу на эти номера повесить IVR, но как утверждает CISCO звуковые файлы будут воспроизводиться только при использовании кодека g711ulaw. Настроил транскондинг по вашей инструкции, все активировалось как вы написали. Возможно ли применить данную схему к моей проблеме и что нужно прописать в конфиге? т.е. я хочу чтобы входящий звонок по кодеку g729 транскодировался в g711ulaw и передавался на IVR.
На данный момент при навешивании IVR на входящий диалпир приводит к тому что при входящем звонке идет 3 сек тишины, потом "занято".
конфиг по транскодингу в точности ваш. Что нужно поменять/добавить чтобы заработал IVR?
Спасибо!
Добрый день, Сергей!
На чем реализуете IVR? На TCL/VXML? По идее, транскодер включится, если Вы пропишете кодек G711 на входящем диалпире, который используется для звонков с SIP оператора.
В этом случае получится, что пров просит кодек G729, а СМЕ на входящем диалпире поддерживает только кодек G711. И это послужит поводом для вовлечения транскодера в обработку входящего звонка.
Только в этом случае ресурсов транскодера (количество сессий им поддерживаемых) должно быть таким, чтобы обеспечить прохождение нужного количества звонков. Потому как все без исключения SIP звонки от прова (и на IVR, и на телефоны) будут идти через транскодер.
Хотя… путем правильной конфигурации выбора входящего диалпира, можно разделить SIP-звонки на телефоны и на IVR, например, один входящий диалпир выбирается для SIP-звонков на IVR, а другой – на телефоны. На диалпире для IVR установить кодек G711 (и тогда должен отработать транскодер), а на другом входящем диалпире поставить G729 (и в этом случае при звонке на телефоны транскодер не используется).
использую VXML. у меня два ДиалПира:
dial-peer voice 3004 voip
description –== Incoming to IVR ==–
translation-profile incoming city_3658254
incoming called-number 3658254
no vad
Этот диалпир отрабатывает входящий вызов, меняет DNIS на 500
dial-peer voice 5001 voip
description –== IVR ==–
service ivrr out-bound
destination-pattern 500
session target ipv4:10.12.99.254
no vad
Этот диалпир уже отправляет вызов на IVR.
Если прописываю кодек на первом диалпире, то звонок сразу отбрасывается при поступлении.
если прописываю кодек на втором диалпире, то звонок доходит до IVR, который в свою очередь делает "отбой".
лог VXML (выложил только кусок, на котором видно возникновение ошибки):
Mar 20 11:29:04.647: //2870/AD4BEDBE9E2C/VXML:/vxml_bind_lastprompt:
*Mar 20 11:29:04.647: //2870/AD4BEDBE9E2C/VXML:/vxml_digit_collect_process:
vxmlp 68D40D18 status 2 async_status 40000
*Mar 20 11:29:04.647: //2870//AFW_:/vapp_session_exit_event_name: Exit Event vxml.session.error
*Mar 20 11:29:04.647: //2870/AD4BEDBE9E2C/VXML:/vxml_vapp_terminate:
vapp_status=2 ref_count 0
*Mar 20 11:29:04.647: //2870/AD4BEDBE9E2C/VXML:/vxml_vapp_terminate:
CALL_ERROR; flash:ivr.vxml
vxml session terminating with code=ERROR
vapp status=VAPP_FAIL vxml async status=VXML_ERROR_VAPP
*Mar 20 11:29:04.647: //2870//AFW_:/vapp_terminate:
*Mar 20 11:29:04.647: //2870//AFW_:/AFW_M_VxmlModule_Terminate:
*Mar 20 11:29:04.647: //2870//AFW_:/vapp_checksessionstate:
*Mar 20 11:29:04.647: //2870//AFW_:/vapp_checkifdone: Object: 1, Leg: 1
*Mar 20 11:29:04.651: //2870/AD4BEDBE9E2C/VXML:/vxml_tree_delete:
vxmlp=68D40D18, usage_cnt=1 url=flash:ivr.vxml
*Mar 20 11:29:04.651: vxml_tree_delete:mem_mgr_mempool_free: mem_refcnt(69259670)=0 – mempool cleanup
*Mar 20 11:29:04.651: //2870/AD4BEDBE9E2C/VXML:/vxml_session_delete:
*Mar 20 11:29:04.651: vxml_session_delete:mem_mgr_mempool_free: mem_refcnt(6905B27C)=0 – mempool cleanup
*Mar 20 11:29:04.655: vxml_session_delete:mem_mgr_mempool_free: mempool=NULL
*Mar 20 11:29:04.655: //2870//AFW_:/vapp_checksessionstate:
*Mar 20 11:29:04.655: //2870//AFW_:/vapp_checkifdone: Object: 0, Leg: 0
*Mar 20 11:29:04.655: //2870//VXML:/Dialog_VxmlDialogDone: handoff return string return-status=fail:
*Mar 20 11:29:04.655: //-1//AFW_:HN1FD88F08:/AFW_M_VxmlModule_Free:
*Mar 20 11:29:04.655: MOD[VxmlModule_6A5AB9EC_0_534286088] ( )
IVR однозначно рабочий, если делаю внутренний звонок то все отрабатывается как надо, от SIP-оператора не работает.
Добрый день, Сергей!
Не совсем я понял наcчет IVR. Он на стороннем сервере реализован, что-ли или все же на этом же шлюзе? Я пока не могу понять схему маршрутизации звонка.
Пока, не имея достаточного представления о вашей схеме, хочу спросить вот что – прописана ли для транскодера команда sdspfarm transcode sessions? Она дается в режиме telephony-service.
Расскажите, пожалуйста, поподробнее, об организации IVR.
IVR настроен на данном шлюзе, все сервисы на одной железке. вот полный конфиг:
!
voice-card 0
dsp services dspfarm
!
!
application
service ivrr flash:ivr.vxml
!
global
service alternate default
!
!
vxml version 2.0
vxml allow-star-digit
!
sccp local Loopback1
sccp ccm 10.12.99.254 identifier 1 version 7.0
sccp
!
sccp ccm group 1
associate ccm 1 priority 1
associate profile 2 register transcoder
!
dspfarm profile 2 transcode
codec g711ulaw
codec g711alaw
codec g729ar8
codec g729abr8
codec g729br8
codec g729r8
maximum sessions 4
associate application SCCP
!
telephony-service
sdspfarm units 2
sdspfarm tag 2 transcoder
max-ephones 25
max-dn 25
ip source-address 10.12.99.254 port 2000
auto assign 1 to 25
date-format dd-mm-yy
max-conferences 8 gain -6
moh music-on-hold.au
multicast moh 239.0.0.1 port 2000
transfer-system full-consult
Схема простая, звонок приходит по SIP и обрабатывается 3004-ым диалпиром, далее меняется номер на 500 и отправляется на диалпир 5001 где должно срабатывать меню. но на 5001ом идет несовместимость кодеков и идет отбой.
Доброе утро, Сергей!
А на обоих диал-пирах одновременно не пробовали прописать кодек G711?
Дмитрий здравствуйте. У Вас не появилось никакой информации относительно перехвата вызовов на сип-фонах? Спасибо.
Добрый день, Илья! К сожалению, не смогу Вас ничем порадовать 🙁 До проверки дело так и не дошло. Я погряз в курсах и в ремонте квартиры, и на остальное не остается времени 🙁
Добрый день!
в данном случае оказалось проблема с диалпиром, который отправлял на IVR. Не знаю почему, но IVR заработал когда я создал два диалпира:
dial-peer voice 5001 voip
description IVR
service ivrr
session target ipv4:10.10.11.5
incoming called-number 555
dtmf-relay h245-alphanumeric
codec g711ulaw
!
dial-peer voice 5002 voip
description IVR
service ivrr
destination-pattern 555
session target ipv4:10.10.11.5
dtmf-relay h245-alphanumeric
codec g711ulaw
После этого все заработало.
Эту же схему применил на двух других шлюзах (но уже без транскодинга) там так же все работает.
начал настраивать на еще одной железке подобную конфигурацию с транкодингом, только уже с кодека g711alaw в g711ulaw. и опять все встало. конфиг такой:
voice service voip
allow-connections h323 to h323
allow-connections h323 to sip
allow-connections sip to h323
allow-connections sip to sip
sip
!
voice-card 0
dsp services dspfarm
!
interface Loopback1
description Voice interface
ip address 10.10.11.10 255.255.255.255
h323-gateway voip interface
!
sccp local Loopback1
sccp ccm 10.12.19.254 identifier 1 version 7.0
sccp
!
sccp ccm group 1
associate ccm 1 priority 1
associate profile 1 register Transcoder
!
dspfarm profile 1 transcode
codec g729r8
codec g711ulaw
codec g711alaw
codec g729ar8
codec g729abr8
maximum sessions 4
associate application SCCP
!
dial-peer voice 50000 voip
description **Incoming Call from SIP Trunk**
translation-profile incoming TP_INCOMING
session protocol sipv2
session target ipv4:10.222.16.10
incoming called-number .%
dtmf-relay rtp-nte
codec g711alaw
no vad
!
dial-peer voice 3002 voip
description IVR
service ivrr
session target ipv4:10.10.11.10
incoming called-number 555
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad
!
dial-peer voice 3003 voip
description IVR
service ivrr
destination-pattern 555
session target ipv4:10.10.11.10
dtmf-relay h245-alphanumeric
codec g711ulaw
no vad
конфиг по сути отличается только указанием кодека на входящем диалпире.
при звонке прилетает вот такое sip-сообщение:
*Apr 21 10:31:45.289: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 488 Not Acceptable Media
Via: SIP/2.0/UDP 10.222.16.10:5060;branch=z9hG4bKc05t011088jhufc7n1j1.1
From: "anonymous" ;tag=kqiave7r0d
To: "2282970" ;tag=1052BFCC-18E1
Date: Mon, 21 Apr 2014 10:31:45 GMT
Call-ID: 41ee2a2ru3v74fm7v@10.66.85.2
CSeq: 499 INVITE
Allow-Events: telephone-event
Warning: 304 10.222.17.112 "Media Type(s) Unavailable"
Reason: Q.850;cause=65
Server: Cisco-SIPGateway/IOS-12.x
Content-Length: 0
транкодер активен:
vrn#sh dspfarm dsp all
SLOT DSP VERSION STATUS CHNL USE TYPE RSC_ID BRIDGE_ID PKTS_TXED PKTS_RXED
0 1 28.3.9 UP N/A FREE xcode 1 – – –
0 1 28.3.9 UP N/A FREE xcode 1 – – –
0 1 28.3.9 UP N/A FREE xcode 1 – – –
0 2 28.3.9 UP N/A FREE xcode 1 – – –
Total number of DSPFARM DSP channel(s) 4
Можете подсказать в чем проблема?
если убрать кодек на входящем диалпире звонок отбивается с тем же сообщением. Если звонок трансферить не на IVR то все работает нормально.
Добрый день, Сергей. Сложно так сразу сказать. 🙁 Нужно моделировать всю ситуацию у себя в лабе, а на это необходимо время, которого в данный момент нету. 🙁
Все оказалось просто… нужно указать :
telephony-service
sdspfarm units 1
sdspfarm transcode sessions 8
вот последней строчки у меня не было, добавил – заработало. В вашем примере ее тоже нет, очевидно что когда настраивал в прошлый раз взял ее из другой статьи
http://www.cisco.com/c/en/us/support/docs/voice-unified-communications/unified-border-element/99863-cube-config.html#transcoding
и кстати настраивая уже на следующем роутере ту же схему у меня опять не заработало. методом научного тыка попробовал увеличить кол-во сессий с 4х до 8ми и все пошло. кому то может пригодиться.
Сергей, спасибо за обмен опытом. Я думаю, что это еще не одному цискарю пригодится.
По поводу sdspfarm transcode sessions 8 – в статье действительно этого нет, но я спрашивал у Вас настроена ли эта команда (22.03.2014, см. нашу переписку выше). Нужно будет добавить эту строчку в статью.
Добрый день!
Читая Ваш Блог, хотел бы выразить Благодарность за столь развернутые материалы!
Возник вот какой вопрос.
Есть CUCM 8.6, CUCME 2951 c PVDM3-128, и двумя платами VWIC3-2MFT-T1/E1
Исторически сложилось так, что CCM c CCME агрегированы по Н.323 как gateway не с использованием MGCP.
На ССМЕ есть транки SIP, 3-и PRI подключпения к разным операторам связи на ТфОП.
Проблема состоит в следующем при звонках с ССМ в город все нормально проходит, вот только звонки проходящие через третий PRI поток проходят без гудка вызова. Т.е. тишина, а потом на том конце человек поднимает трубку. Ни транскодинг ни МТР не включены. С Оператором общались он выслал следующее:
> по проблеме с КПВ необходимо проверять настройки вашего оборудования.
> С нашей стороны по сигнализации DSS1 мы отдаем вам сообщение ALERTING
> , что видно из трейса:
>
> PA-MSG : сообщение от вашего оборудования
> PA-CMD : сообщение, которые мы отдаем к вашему оборудованию.
>
>
Вот следующая часть:
Вот некоторые настройки CCME:
controller E1 0/0/0
pri-group timeslots 1-31
!
controller E1 0/0/1
pri-group timeslots 1-31
!
controller E1 0/1/0
pri-group timeslots 1-31
!
controller E1 0/1/1
pri-group timeslots 1-31
!
interface Serial0/0/0:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn incoming-voice voice
isdn sending-complete
no cdp enable
!
!
interface Serial0/0/1:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn incoming-voice voice
no cdp enable
!
!
interface Serial0/1/0:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn incoming-voice voice
isdn sending-complete
no cdp enable
!
!
interface Serial0/1/1:15
no ip address
encapsulation hdlc
isdn switch-type primary-net5
isdn incoming-voice voice
isdn sending-complete
no cdp enable
!
voice-port 0/0/0:15
!
voice-port 0/1/0:15
!
voice-port 0/0/1:15
!
voice-port 0/1/1:15
!
dial-peer voice 1 pots
incoming called-number .
direct-inward-dial
!
dial-peer voice 2 pots
translation-profile outgoing Out1
destination-pattern .Т
port 0/0/1:15
forward-digits all
Необходимо ли наличие транскодинга в этом сулчае? Т.к. на СИП направления все нормально проходит, а вот с эти диалпиром на внешку нет гудков, но вызов на той стороне проходит и когда поднимают трубку все слышно и разговор нормально.
За ранее благодарю!
Добрый день, Александр! Спасибо за Ваш отзыв.
По поводу проблемы: попробуйте прописать в диал-пире 2 команду progress_ind alert enable 8. Отпишитесь, пожалуйста, по результату, помогло или нет.
Хорошего дня!
Дмитрий, добрый день!
столкнулся с похоже проблемой. имею SIP-trunk до провайдера и не при каких условиях не хочет работать DTMF.
Провайдер приносил свой голосовой шлюз (не CISCO), сделал настройки моих SIP-номеров и продемонстрировал мне работу DTMF в режиме RFC2833.
При этом я на своих диалпирах прописывал и dtmf-relay rtp-nte и пробовал в жесткую прописывать строчкой voice-class sip dtmf-relay force rtp-nte – результат один и тот же, DTMF не работает ни на исходящих ни на входящих.
если вам удалось решить проблему в прошлом случае прошу подсказать как.
спасибо!
Добрый день, Сергей!
Давайте для начала посмотрим на debug ccsip messages при звонке по данному транку. В предыдущем случае решение проблемы прервалось последним комментом в блоге, далее не копали.
Входящий звонок:
Jun 25 05:14:49.947: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
INVITE sip:2169000@10.223.232.50:5060 SIP/2.0
Via: SIP/2.0/UDP 10.223.224.4:5060;branch=z9hG4bKu32t8l006gehaj84t220.1
Accept: application/sdp
Allow: INVITE,ACK,CANCEL,BYE,INFO,PRACK,UPDATE,OPTIONS,REGISTER,REFER,SUBSCRIBE,MESSAGE,PUBLISH
Call-ID: 418faa9p56wl76x7n@172.16.1.10
Contact: "89882444462"
CSeq: 323 INVITE
Expires: 3600
From: "89882444462" ;tag=cpoisly9d8
To: "2169000"
Organization: Iskratel
Supported: 100rel
User-Agent: SI3000
P-Access-Network-Info: 3GPP-GERAN;cgi-3gpp=79184790491
Max-Forwards: 69
Subject: Call from SI3000
P-Asserted-Identity: "89882444462"
Privacy: none
Content-Length: 211
Content-Type: application/sdp
Content-Disposition: session;handling=required
v=0
o=- 4462070 8888673 IN IP4 10.223.224.4
s=-
c=IN IP4 10.223.224.4
b=AS:64
t=0 0
m=audio 10310 RTP/AVP 18 8 0
a=rtpmap:18 G729/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=sendrecv
a=ptime:20
Jun 25 05:14:49.951: //4458/775F2BFF80D3/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 10.223.224.4:5060;branch=z9hG4bKu32t8l006gehaj84t220.1
From: "89882444462" ;tag=cpoisly9d8
To: "2169000"
Date: Wed, 25 Jun 2014 05:14:49 GMT
Call-ID: 418faa9p56wl76x7n@172.16.1.10
CSeq: 323 INVITE
Allow-Events: telephone-event
Server: Cisco-SIPGateway/IOS-15.3.3.M
Content-Length: 0
Jun 25 05:14:49.995: //4458/775F2BFF80D3/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.223.224.4:5060;branch=z9hG4bKu32t8l006gehaj84t220.1
From: "89882444462" ;tag=cpoisly9d8
To: "2169000" ;tag=9460940-EF4
Date: Wed, 25 Jun 2014 05:14:49 GMT
Call-ID: 418faa9p56wl76x7n@172.16.1.10
CSeq: 323 INVITE
Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER
Allow-Events: telephone-event
Remote-Party-ID: ;party=called;screen=no;privacy=off
Contact:
Supported: replaces
Supported: sdp-anat
Server: Cisco-SIPGateway/IOS-15.3.3.M
Supported: timer
Content-Type: application/sdp
Content-Disposition: session;handling=required
Content-Length: 194
v=0
o=CiscoSystemsSIP-GW-UserAgent 5179 3960 IN IP4 10.223.232.50
s=SIP Call
c=IN IP4 10.223.232.50
t=0 0
m=audio 16524 RTP/AVP 8
c=IN IP4 10.223.232.50
a=rtpmap:8 PCMA/8000
a=ptime:20
Jun 25 05:14:50.003: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
ACK sip:2169000@10.223.232.50:5060 SIP/2.0
Via: SIP/2.0/UDP 10.223.224.4:5060;branch=z9hG4bK0kl2fg1078812jsil7h1.1
Call-ID: 418faa9p56wl76x7n@172.16.1.10
CSeq: 323 ACK
From: "89882444462" ;tag=cpoisly9d8
To: "2169000" ;tag=9460940-EF4
Max-Forwards: 69
Content-Length: 0
Jun 25 05:15:06.303: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Received:
BYE sip:2169000@10.223.232.50:5060 SIP/2.0
Via: SIP/2.0/UDP 10.223.224.4:5060;branch=z9hG4bK0kl2fg1078812jsil7h1cd0002021.1
Call-ID: 418faa9p56wl76x7n@172.16.1.10
CSeq: 324 BYE
From: "89882444462" ;tag=cpoisly9d8
To: "2169000" ;tag=9460940-EF4
Reason: Q.850;cause=16;text="Normal call clearing"
Max-Forwards: 69
Content-Length: 0
Jun 25 05:15:06.307: //-1/xxxxxxxxxxxx/SIP/Msg/ccsipDisplayMsg:
Sent:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.223.224.4:5060;branch=z9hG4bK0kl2fg1078812jsil7h1cd0002021.1
From: "89882444462" ;tag=cpoisly9d8
To: "2169000" ;tag=9460940-EF4
Date: Wed, 25 Jun 2014 05:15:06 GMT
Call-ID: 418faa9p56wl76x7n@172.16.1.10
Server: Cisco-SIPGateway/IOS-15.3.3.M
CSeq: 324 BYE
Reason: Q.850;cause=16
P-RTP-Stat: PS=815,OS=130400,PR=813,OR=130080,PL=0,JI=0,LA=0,DU=16
Content-Length: 0
Диалпир выглядит так:
dial-peer voice 3001 voip
description Incoming From City
translation-profile incoming city_incoming
session protocol sipv2
session target ipv4:10.223.224.4
incoming called-number .T
dtmf-relay rtp-nte
codec g711alaw
Хорошо, но из дебага следует, что город не присылает Вашей стороне уведомление о том, что он поддерживает RFC2833!
От них приходит вот такое SDP:
m=audio 10310 RTP/AVP 18 8 0
a=rtpmap:18 G729/8000
a=rtpmap:8 PCMA/8000
a=rtpmap:0 PCMU/8000
a=sendrecv
a=ptime:20
А должно быть подобное такому:
m=audio 46090 RTP/AVP 0 8 101
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
РТ=101 и является уведомлением о том, что сторона поддерживает RFC2833.
Хотелось бы взглянуть на дебаг исходящего звонка от вас.
Jun 25 05:44:36.532: //4497/98D7ABB280E3/SIP/Msg/ccsipDisplayMsg:
Sent:
INVITE sip:88002500890@10.223.224.4:5060 SIP/2.0
Via: SIP/2.0/UDP 10.223.232.50:5060;branch=z9hG4bK11FFFBB
Remote-Party-ID: ;party=calling;screen=no;privacy=off
From: ;tag=9614BF4-EB4
To:
Date: Wed, 25 Jun 2014 05:44:36 GMT
Call-ID: A041D8D4-FB6211E3-80E8F5A5-251DC047@10.223.232.50
Supported: 100rel,timer,resource-priority,replaces,sdp-anat
Min-SE: 1800
Cisco-Guid: 2564271026-4217508323-2162423205-0622706759
User-Agent: Cisco-SIPGateway/IOS-15.3.3.M
Allow: INVITE, OPTIONS, BYE, CANCEL, ACK, PRACK, UPDATE, REFER, SUBSCRIBE, NOTIFY, INFO, REGISTER
CSeq: 101 INVITE
Max-Forwards: 70
Timestamp: 1403675076
Contact:
Expires: 180
Allow-Events: telephone-event
Content-Type: application/sdp
Content-Disposition: session;handling=required
Content-Length: 250
v=0
o=CiscoSystemsSIP-GW-UserAgent 9458 5772 IN IP4 10.223.232.50
s=SIP Call
c=IN IP4 10.223.232.50
t=0 0
m=audio 16536 RTP/AVP 8 101
c=IN IP4 10.223.232.50
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
Jun 25 05:44:36.536: //4497/98D7ABB280E3/SIP/Msg/ccsipDisplayMsg:
Received:
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 10.223.232.50:5060;branch=z9hG4bK11FFFBB
From: ;tag=9614BF4-EB4
To:
Call-ID: A041D8D4-FB6211E3-80E8F5A5-251DC047@10.223.232.50
CSeq: 101 INVITE
Timestamp: 1403675076
Jun 25 05:44:36.608: //4497/98D7ABB280E3/SIP/Msg/ccsipDisplayMsg:
Received:
SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP 10.223.232.50:5060;branch=z9hG4bK11FFFBB
From: ;tag=9614BF4-EB4
To: ;tag=ud7ggnkn58
Call-ID: A041D8D4-FB6211E3-80E8F5A5-251DC047@10.223.232.50
CSeq: 101 INVITE
Timestamp: 1403675076
Allow: INVITE,ACK,CANCEL,INFO,PRACK,UPDATE,OPTIONS,REGISTER,REFER,SUBSCRIBE,PUBLISH
Contact:
Require: 100rel
Min-SE: 1800
RSeq: 1
Content-Length: 0
Jun 25 05:44:36.608: //4497/98D7ABB280E3/SIP/Msg/ccsipDisplayMsg:
Sent:
PRACK sip:88002500890@10.223.224.4:5060;transport=udp SIP/2.0
Via: SIP/2.0/UDP 10.223.232.50:5060;branch=z9hG4bK1200AE
From: ;tag=9614BF4-EB4
To: ;tag=ud7ggnkn58
Date: Wed, 25 Jun 2014 05:44:36 GMT
Call-ID: A041D8D4-FB6211E3-80E8F5A5-251DC047@10.223.232.50
CSeq: 102 PRACK
RAck: 1 101 INVITE
Allow-Events: telephone-event
Max-Forwards: 70
Content-Length: 0
Jun 25 05:44:36.612: //4497/98D7ABB280E3/SIP/Msg/ccsipDisplayMsg:
Received:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 10.223.232.50:5060;branch=z9hG4bK1200AE
From: ;tag=9614BF4-EB4
To: ;tag=ud7ggnkn58
Call-ID: A041D8D4-FB6211E3-80E8F5A5-251DC047@10.223.232.50
CSeq: 102 PRACK
Content-Length: 0
Jun 25 05:44:36.616: //4497/98D7ABB280E3/SIP/Msg/ccsipDisplayMsg:
Received:
SIP/2.0 183 Session Progress
Via: SIP/2.0/UDP 10.223.232.50:5060;branch=z9hG4bK11FFFBB
From: ;tag=9614BF4-EB4
To: ;tag=ud7ggnkn58
Call-ID: A041D8D4-FB6211E3-80E8F5A5-251DC047@10.223.232.50
CSeq: 101 INVITE
Timestamp: 1403675076
Allow: INVITE,ACK,CANCEL,INFO,PRACK,UPDATE,OPTIONS,REGISTER,REFER,SUBSCRIBE,PUBLISH
Contact:
Require: 100rel
RSeq: 2
Content-Length: 161
Content-Type: application/sdp
Content-Disposition: session;handling=required
v=0
o=- 7378107 8080266 IN IP4 10.223.224.4
s=-
c=IN IP4 10.223.224.4
b=AS:64
t=0 0
m=audio 10006 RTP/AVP 8
a=rtpmap:8 PCMA/8000
a=sendrecv
a=ptime:20
Это первая часть лога. Если нужно остальное скажите, добавлю.
Ну вот. Из этого дебага совершенно четко видно, что циска предлагает прову DTMF по RFC2833:
m=audio 16536 RTP/AVP 8 101
c=IN IP4 10.223.232.50
a=rtpmap:8 PCMA/8000
a=rtpmap:101 telephone-event/8000
a=fmtp:101 0-16
a=ptime:20
Похоже, что стороны просто не могут договориться и виной этому есть сторона провайдера, так как ваша сторона ей запрос на RFC2833 отдает. Самое время спросить у них, почему так происходит, с приведением им соответствующих фрагментов дебага.
Спасибо за ответ! попробую с ними решить вопрос, хотя я уже с ними месяц пытаюсь разобраться.
И вопрос почему же их оборудование все таки работает, а CISCO нет.
сразу сложно сказать, почему их оборудование работает. Много факторов влияет. Первый вопрос, который я задам: как это проверялось? что именно делалось, чтобы показать, что DTMF передается и передается именно по RFC2833, а не OUT-OF-BAND или просто в кодеке G711?
Второй вопрос: показано ли это было дебагами (так, как я Вам только что показал)?
Третий вопрос: какой кодек был выбран при входящем и исходящем звонках?
И только после этого можно будет сказать, как работала их железка. Знаете, я являюсь сторонником физического подтверждения событий и процессов (т.е имея багаж теор. знаний, я всегда пытаюсь увидеть это в дебагах, трейсах, логах, осциллограммах, в показаниях вольтметра итд ). Тогда, действительно, с уверенностью можно сказать, почему именно так, а не иначе.
Добрый день! Хочу выразить огромную благодарность Сергею Волкову. Его метод решения проблемы (совершенно не понимаю, как он действует), добавить дополнительный диал-пир, что б заработал IVR, меня осчастливил! У меня ушло уйму времени, на этот IVR, я уже было отчаялся, но наконец-то прорыв! :))) Сергей, спасибо тебе большое, что поделился своим решением!
Отдельное спасибо Вам Дмитрий! Без вашего блога, люди бы не обменивались опытом в решении проблем, а я бы продолжал искать ответ на свой вопрос. Да будет свет!
Добрый день, Дмитрий!
не получается настроить транскодинг на CUCME для совместной работы с IVR. Проблема аналогична описанной выше Sergey Volkov. После добавления дополнительного диал-пира, транскодинг заработал, но если из IVR перевести звонок на телефон не идет голос. Можете мне помочь в решении?
Добрый день, Константин.
Правильно ли я понимаю, что приветствия IVR Вы слышите, а после перевода вызова на телефон и ответе на нем голоса нет?
Добрый день, Дмитрий!
да, правильно понимаете.
У вас NAT используется? При переводе звонка на телефон транскодер не будет задействован, скорее всего, поскольку телефон поддерживает и кодек 729, и кодек 711.
Нет, ната нет. По логам после перевода звонка, CME отправляет на SIP телефон INVITE, получает Trying, Ringing и начинается карусель из бесконечных посылок ОК от телефона.По логам CME их видит но не реагирует.
A можно взглянуть на сам лог звонка? Можете мне прислать адрес своей почты через форму связи, я вам напишу адрес своей.
Дмитрий, спасибо огромное за статью!
Сделал всё как написано, всё работает, всё хорошо…но столкнулся с одним "но": стоит только задать команду hardware conference, как конференция перестаёт работать – телефон при нажатии кнопки "Конф" говорит "Невозможно создать конференцию"… Хотелось бы чтобы аппаратно реализовывалась конференция, но что-то не хочет никак… Пробовал по-разному уже – никакого результата =(
Здравствуйте, а Вы создали отдельный ephone-dn для конференции? Все делали так, как описано в приведенной pdf-ке?
Хм, а вот про отдельный ephone-dn увидел только в комментариях =) Добавил – заработало. Кстати, а в чём логика? Зачем системе отдельный ephone-dn да ещё и с восемью линиями, да ещё и с отдельным номером? Конференцию планирую собирать не более двух человек…и отдельный номер не хочется иметь. Кстати, при звонке на этот номер идёт отбой "невозможно создать конференцию"..зачем он тогда?
P.S. Если conference hardware не включен, получается конференция собирается силами софта или как?
Да, если не включен conference hardware, то конфа будет средствами софта. В моем понимании отдельный dn используется потому, что мы задействуем конференц-мост. И нужны отдельные голосовые каналы к нему для каждого участника. 8 линий как раз и надо, чтобы обеспечить до 8 участников в конфе. Это максимальное количество для CME.
А есть какой-то опыт с софтовой обработкой такой конференции – насколько она сильно грузит систему и сколько максимально человек позволяет собирать? По опыту есть ли какие-то "нехорошести" при использовании софтовой конференции?
Дмитрий и такой момент ещё – игрался с транскодингом, пытался заставить включиться аппаратный. Получилось включить DSP только при хитрой комбинации кодеков типа iLBC (CIPC) – G729. Если использовать, к примеру, G722-64<->G711u/a, то транскодинг насколько понимаю софтовый задействуется – ресурсы DSP всё время свободны при любом количестве одновременных звонков. А есть какой-то способ принудительно транскодировать на DSP, чтобы быть уверенным в том, что если все вдруг начнут звонить, то железка не упадёт от перегрузки CPU?
Нет, у меня какой-то статистики по софтовой конфе на СМЕ нет. Максимально в конфе будет 3 участника. Сколько таких одновременных конференций может быть сразу затрудняюсь ответить – надо доку смотреть. Обычно при наличии DSP мы всегда конфигурировали аппаратную конфу.
По транскодингу G722-G711: а Вы точно уверены, что именно такая комбинация кодеков была в плечах звонка? Дело в том, что телефоны циско поддерживают G722, G711u/a, G729 по дефолту, и как правило, очень редко нужно использовать транскодинг. Можете описать как именно Вы звоните? Без понимания этого мне очень сложно сказать, почему так себя ведет ваш СМЕ.
На телефонах G722-64, на CME к провайдеру G711 и G729 SIP транки. Плюс ещё несколько софтовых телефонов CIPC по iLBC. Не готов сейчас конкретно сказать конфигурацию на которой заработал DSP, в какой-то из конфигурация включился.
Вы говорите о том, что транскодинг не обязательно должен быть даже если разные кодеки везде? То есть CME может "сказать" телефону использовать тот кодек, который он согласовал при установлении соединения по SIP? Я думал собственно по причине того, что разные кодеки с двух сторон без транскодинга никак не обойтись…
Я не сказал дословно, что "транскодинг не обязательно должен быть даже если разные кодеки везде". Транскодинг применяется тогда, когда стороны не могут договориться об общем кодеке, иными словами тогда, когда одна из сторон не поддерживает предлагаемый кодек.
В ситуации при звонке по транку следует понимать следующее правило: For calls to phones that are not in the same Cisco Unified CME system (such as VoIP calls), the codec is negotiated based on the protocol that is used for the call (such as H.323). The Cisco Unified CME system plays no part in the negotiation.
Иными словами, выбор кодека будет базироваться на свойствах телефона и транка, но определяться настройками транка. На транках G729 и G711. Телефоны циско поддерживают эти кодеки, транскодер не вовлекается в звонок. Если же будет телефон, который, например, поддерживает только ilbc или G723, то тогда будет искаться и подключаться ресурс транскодирования.
Доброго времени суток коллега!
Настроил конференцию ad-hoc, но на сколько я понимаю вычитав на cisco.com, что ad-hoc конференция ограничивает количество участников не более 8. Действительно ли это так в том смысле, что может быть есть какая то возможность собрать ad-hoc конференцию более чем с 8 участниками