[cisco-voip] MOH with CUBE

Anthony Holloway avholloway+cisco-voip at gmail.com
Tue Feb 9 12:11:51 EST 2016


In my experience, turning up SIP services is like peeing an onion, you do
it one layer at a time.  I don't just swoop in a blast the CUBE with all
these commands that worked in the past, rather, I turn on the necessary
ones first (sip to sip) and then starting layering on new commands as my
pre-testing exposes their need.  It's really too bad IOS config doesn't
have a commenting feature, so when you do a show run you can read comments
on why a command is present.

Some commands that seem to always be needed are:

voice service voip
 mode border-element                      ; Not really required unless
doing local transcoding interfaces,
                                          ; which I'm usually not, but I
put this in anyway for the show cube commands
 allow-connections sip to sip             ; should be obvious and really
the only required command to enable CUBE
 sip
  midcall-signaling passthru media-change ; Suppresses most chatter from
peer but passes any media changes required
!
voice iec syslog                          ; Awesome for logging error
messages that would otherwise go unnoticed
dial-peer voice 100 voip                  ; Not a complete DP config, just
some important bits
 session protocol sipv2                   ; Should be obvious
 dtmf-relay sip-kpml rtp-nte digit-drop   ; I've seen CUC receive double
digit presses without the drop
 codec g711ulaw                           ; feel free to use a voice class
to the PSTN, but if migrating from PRI to SIP,
                                          ; then g729 is a step backwards
in quality and your SIP trunk may receive negative reviews
 ip qos dscp cs3 signaling                ; if you're into CS3 vs AF31
 no vad                                   ; should be obvious
 voice-class sip options-keepalive        ; This is such a must now.
Always turn on SIP OPTIONS where you can,
                                          ; even in CUCM SIP Profile for
the trunk. (Only needed on outgoing DP)
                                          ; And now you don't have to tweak
timers and retries under sip-ua
!

Also, I don't always go straight to binding the media and control, because
most of the time I have two interfaces for enterprise side and ITSP side,
and I let the Layer 3 routing decide which interface is best to egress.
But if I had, for example, a Loopback interface which I needed to bind to,
then I would do it at the Dial-Peer level.

Lastly, I don't even use the address-hiding command, as address-hiding is
not needed under normal circumstances; it's a natural part of CUBE being a
back to back user agent.  Never would your internal enterprise IP addresses
be sent to the ITSP...normally.  If you are however, using SDP pass thru,
or SIP transparencies, then yes they could.  The documentation on the
command
<http://www.cisco.com/c/en/us/td/docs/ios/voice/command/reference/vr_book/vr_a1.html#wp1612621>
is a bit confusing for me, so I might have it wrong, though empirical
evidence and a few years of experience in SIP trunking tells me it's not a
required command.

I'm always willing to learn more to be the best, so please comment if I'm
wrong here.

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


On Mon, Feb 8, 2016 at 5:12 PM, Ed Leatherman <ealeatherman at gmail.com>
wrote:

> Hi Anthony,
>
> For #2.. Its just there because the sp's integration guide had it in
> there- I'll try it tomorrow without and see if it fixes it, what you say
> makes sense.  thanks!
>
> On Mon, Feb 8, 2016, 5:49 PM Anthony Holloway <
> avholloway+cisco-voip at gmail.com> wrote:
>
>> I just wanted to comment on two things:
>>
>> 1) The port 4000 thing.  CUCM does this to just give a port number, it
>> doesn't actually use it.  I wouldn't be looking to hard at that as a
>> problem.
>>
>> *4000 - 4005 / TCP*
>> *These ports are used as phantom Real-Time Transport Protocol (RTP) and
>> Real-Time Transport Control Protocol (RTCP) ports for audio, video and data
>> channel when Cisco Unified Communications Manager does not have ports for
>> these media.*
>> *Source: TCP and UDP Port Usage Guide for Cisco Unified Communications
>> Manager, Release 10.0(1)
>> <http://www.cisco.com/c/en/us/td/docs/voice_ip_comm/cucm/port/10_0_1/CUCM_BK_T537717B_00_tcp-port-usage-guide-100.html>*
>>
>>
>> With the way SDP works, if the offered port is 4000, and the media
>> attribute a=sednonly is present, then the port is essentially ignored.
>> Hence, a half duplex stream, and not full duplex.
>>
>> 2) Why are you using this command "pass-thru content sdp"  As far as I am
>> aware, that command will pass thru SDP from CUCM directly to the ITSP.  Is
>> that something you need?  Typically, CUBE is your demarc between your
>> enterprise network and the service provider, and as such, you don't pass
>> through anything directly.  If you don't know why that's there, then I
>> would recommend removing it and re-testing your MOH scenario.
>>
>> A similar command you might want to run is to suppress all of the chatter
>> CUCM will send to CUBE that really has no business going out to the ITSP,
>> but keeping the important messages, such as mid-call media changes.
>>
>> voice service voip
>>  sip
>>   midcall-signaling passthru media-change
>> !
>>
>> As far as your 4K router and the closeness of the AS1K defect, I really
>> don't know.
>>
>> On Mon, Feb 8, 2016 at 3:47 PM, Ed Leatherman <ealeatherman at gmail.com>
>> wrote:
>>
>>> I'm working on getting a SIP trunk with an ITSP fully functional. I can
>>> get basic calls ok but Unicast MOH is not working out - no audio. Going
>>> off-hold i get the call audio back.
>>>
>>> Quick packet cap on the CUBE confirms i'm getting MOH packets from CUCM
>>> but they don't make it across CUBE out to the SP.
>>>
>>> For the re-INVITE to get the music audio, CUCM is sending SDP with:
>>> m=audio 4000 RTP/AVP 0
>>>
>>> From the packet cap, the audio packets are not being sourced from port
>>> 4000 - they are coming in from ephemeral ports. Could this be causing an
>>> issue with CUBE not translating the streams?
>>>
>>> The reason I ask is that I noticed a bug out there CSCtb32219
>>> <https://www.cisco.com/cisco/psn/bssprt/bss?searchType=bstbugidsearch&page=bstBugDetail&BugID=CSCtb32219> for
>>> ASR1K which seems close, in my case this is a 4431 (Also ios-xe) running
>>> 15.5(1)S. Anyone run into that? The workaround is to enable duplex
>>> streaming in CUCM, which seems a little goofy.
>>>
>>> I dont feel like I have anything special configured on CUBE:
>>> voice service voip
>>>  ip address trusted list
>>>   ipv4 blahblahblah
>>>  address-hiding
>>>  allow-connections sip to sip
>>>  no supplementary-service sip refer
>>>  fax protocol pass-through g711ulaw
>>>  sip
>>>   pass-thru content sdp
>>>   sip-profiles 100
>>> !
>>>
>>> dialpeers all have
>>> !
>>>
>>>  dtmf-relay rtp-nte
>>>  codec g711ulaw
>>>  no vad
>>>
>>>
>>> Thanks!
>>>
>>>
>>>
>>> --
>>> Ed Leatherman
>>>
>>> _______________________________________________
>>> cisco-voip mailing list
>>> cisco-voip at puck.nether.net
>>> https://puck.nether.net/mailman/listinfo/cisco-voip
>>>
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://puck.nether.net/pipermail/cisco-voip/attachments/20160209/9a912215/attachment.html>


More information about the cisco-voip mailing list