Unicast MoH and transcoding

Hi,

I'm having problems getting unicast MoH in CUCM 7.0.1 to work with a transcoder; All I'm getting is silence which seems more of a symptom of a multicast than a unicast stream

Everything is registered to the subscriber and each site has it's own transcoders to call upon

The MoH servers are in their own device pool which I've given access to the HQ transcoder and they're also in their own region

I initially configured G.711 between the MoH region and the rest and that worked fine; A remote phone played music when on hold and I could see that voice calls came in on G.729 whilst MoH was using G.711

What I'm having problems with now is to get MoH working with a transcoder to stream G.729 over the WAN as opposed to setting the service parameter to allow the server to take care of itself

Once I change the region setting for the MoH servers to use G.729 to remote sites, a phone at a remote site being placed on hold gets silence. Phones at the corporate HQ when put on hold will play music as G.711 is still allowed to them

The phone on hold does show G.729 as the incoming codec when it's on hold and looking at the HQ router I can see that a  transcoder has been invoked

CorpHQ#sh sccp conn
sess_id    conn_id      stype mode     codec   sport rport ripaddr

33559436   33554490     xcode sendonly g729ab  16470 28692 177.3.11.254
33559436   33554487     xcode recvonly g711u   17764 0     0.0.0.0

Total number of active session(s) 1, and connection(s) 2

RTMT is showing the subscriber is streaming in unicast and also confirms that a transcoder is active on the HQ router, so I don't understand what the issue is here

I've rebooted the phones and servers but that made no difference and I've even gone so far as putting each MoH server in it's own MRG in order to ensure that the subscriber is always used, but this makes no difference either

The config for the transcoder is relatively straightforward and I don't think I've missed anything out:

voice-card 0
 dsp services dspfarm
!
sccp local Loopback0
sccp ccm 177.1.10.10 identifier 1 version 7.0
sccp ccm 177.1.10.20 identifier 2 version 7.0
sccp
!
sccp ccm group 1
 bind interface Loopback0
 associate ccm 2 priority 1
 associate ccm 1 priority 2
 associate profile 10 register CORPHQ-SW-MTP
 associate profile 20 register CORPHQ-HW-CONF
 associate profile 30 register CORPHQ-XCODE
!
dspfarm profile 30 transcode
 codec g711ulaw
 codec g711alaw
 codec g729ar8
 codec g729abr8
 maximum sessions 8
 associate application SCCP

Any suggestions as to what the issue could be or how best to troublshoot this?

Comments

  • !
    dspfarm profile 30 transcode
     codec g729r8
    !

     

    Does this help?

     

    Jim

  • Thanks for the reply Jim

    I've added that codec in but I'm still getting silence

    I noticed that g729ab was being negotiated so I removed the g729abr8 codec to see if that would help but even though it was now showing g279 that makes no difference either

    Any other suggestions?

  • Hi

    Have you selected the g729 codec for the moh servers in service parameters? Its in the voice media streaming section

     

    hth

     

  • Sorry didnt read the question fully :-).  

  • You shouldnt need a transcoder to get this to work. Try without.

  • So one real rule of thumb for moh. 
    If u hear silence...it's an infrastructure issue.  Cucm is telling the phone to play a stream that it can't hear.  
    If it was a cucm issue (I.e. G729 not being chosen or MRGL issue) it would play tone on hold. 

    Since this is silence, check things like IP routing, maybe bring up the http page of the IP phone and look at the stream stats.  It SHOULD show the IP of the cucm server when it's on hold. 

    NOTE:  Never tested this, it's an educated guess that the page should show the cucm stream. 




    Sent from my iPhone

    On Nov 2, 2013, at 1:01 AM, dmckone <[email protected]> wrote:

    Thanks for the reply Jim

    I've added that codec in but I'm still getting silence

    I noticed that g729ab was being negotiated so I removed the g729abr8 codec to see if that would help but even though it was now showing g279 that makes no difference either

    Any other suggestions?




    INE - The Industry Leader in CCIE Preparation

    http://www.INE.com



    Subscription information may be found at:

    http://www.ieoc.com/forums/ForumSubscriptions.aspx
  • That's a good point Michael

    I ran a ping test sourced from the HQ router loopback interfaceto the remote phone and that worked fine

    Looking at the http page of the remote phone, the stream only shows the two phones involved, even when on hold so you can't tell if the MoH server is ever being used from that

    I went to the extreme of hard coding the audio source to be doubly sure the right file will be used but that made no difference

    So I've put a sniffer on the remote phone and what I've noticed is that after the phone is instructed to close the current channel and open a new one, which it does ACK, a UDP packet and then an RTP packet comes in from the transcoder for the phone but the phone doesn't reply to the RTP packet and from then on there a just station keepalives seen

    The RTP packet is a skinny setup for G.729 but for some reason the phone just ignores it

     

     

  • does it all work with g711?  did you try to bump a phone load version to make sure you're not hitting a situational bug of some sort?  That's fantastic troubleshooting, but it's blowing my mind that the phone is ignoring the stream.


    I would map out that MOH call setup on an HQ phone and make sure that the last part, while counter intuitive, isn't the normal setup process for an MOH.  what I mean, maybe it' isn't SUPPOSED to ACK the setup request and it's just supposed to listen.



    On Sat, Nov 2, 2013 at 2:50 PM, dmckone <[email protected]> wrote:

    That's a good point Michael

    I ran a ping test sourced from the HQ router loopback interfaceto the remote phone and that worked fine

    Looking at the http page of the remote phone, the stream only shows the two phones involved, even when on hold so you can't tell if the MoH server is ever being used from that

    I went to the extreme of hard coding the audio source to be doubly sure the right file will be used but that made no difference

    So I've put a sniffer on the remote phone and what I've noticed is that after the phone is instructed to close the current channel and open a new one, which it does ACK, a UDP packet and then an RTP packet comes in from the transcoder for the phone but the phone doesn't reply to the RTP packet and from then on there a just station keepalives seen

    The RTP packet is a skinny setup for G.729 but for some reason the phone just ignores it

     

     




    INE - The Industry Leader in CCIE Preparation

    http://www.INE.com



    Subscription information may be found at:

    http://www.ieoc.com/forums/ForumSubscriptions.aspx

  • Thanks for the 'rule of thumb' Michael - I ran into a Multicast MoH issue today and your tip popped into my head.

    @dmckone - I just reproduced your setup, but my unicast MoH is working. I only have G.711 enabled in the Service Parameters. In UCM, I have my transcoders and MTP's set as "Trusted Relay Point." In IOS, on my transcoder, I have is set as "dspfarm profile 3 transcode universal." I also have trp firewall-traversal set on it.

    When I run "sh sccp connections," on CorpHQ, I get the following:

    sess_id    conn_id      stype mode     codec   sport rport ripaddr
    16778244   16777367     xcode recvonly g711u   17098 0     0.0.0.0
    16778244   16777366     xcode sendrecv g729    17292 17708 177.1.254.1
    16778243   16777365     mtp   sendrecv g729    17708 17292 177.1.254.1
    16778243   16777359     mtp   sendrecv g729    16470 19530 177.1.254.2

    I am going to start turning off the trp pieces to see if I can break it now.

    HTH

    Jim

  • In your output above, what is 177.3.11.254 - Your phone in the branch?

    Interestingly, in my case, I have xcode and mtp being invoked on CorpHQ. I also see mtp being invoked on Branch1.

    Jim

  • MoH works if I stream G711 to the branch. I tested that first then switched to G729 to invoke a transcoder and that's when it broke

    When I ran the sniffer on the HQ phone there was a stready stream of RTP traffic and yet only a single UDP packet coming from the transcoder followed by a single RTP traffic for the branch phone

    I got a bit confused seeing the setup message inside that RTP packet as after checking the HQ phone again I see they're all like this so I now suspect something is up with the transcoder. For whatever reason it starts sending traffic then just stops

     

     

  • For me 177.3.11.254 is one of the branch phones

    Maybe I just have a hardware fault so I'm going to find something else to test transcoding with and see if that has the same problems

  • Hi

    Have you configured the transcoder on CUCM with the same name that you are using on the router and added the same to the MRG that you are using to assign to the phones?

     

     

  • Yes that's all correct

    The transcoder does actually get invoked and an initial UDP then an RTP packet get sent to the remote branch phone by the gateway but that's where it ends

    If I check the gateway it shows an active connection but the sniffer sees no more packets being received so the RTP stream for some strange reason seems to have stopped

  • Which gateway have you configured?

    Have you given MRGL at the gateway also?

  • The HQ gateway is configured as a SIP trunk while the branch 2 gateway is configured as an MGCP gateway. I didn't hard code the MRGLs as they will come from the device pool, but even if I do I've found it makes no difference

    Anyway, when I place the branch 2 phone on hold with hq phone 1, I don't hear any music being played

    If I check the HQ gateway I see this:

    CorpHQ#sh sccp conn
    sess_id    conn_id      stype mode     codec   sport rport ripaddr

    33569438   33554496     xcode sendonly g729    19302 23122 177.3.11.252
    33569438   33554493     xcode recvonly g711u   19376 0     0.0.0.0

    So transcoding certainly seems to be working

    The MRGLs that hq and branch 2 are setup with contain unicast MoH servers and MoH works fine if the regions allow G711 between them, but for some it doesn't when set for G729 and the transcoder is invoked

    Thinking the problem was the transcoder itself I've since configured CUC to use G711 only. I've put it in the same device pool as the MoH servers yet when branch 2 phone calls into voicemail it's working. I can also see the same HQ transcoder in operation

    CorpHQ#sh sccp conn
    sess_id    conn_id      stype mode     codec   sport rport ripaddr

    33569437   33554486     xcode sendrecv g711u   19030 21256 177.1.10.30
    33569437   33554485     xcode sendrecv g729    18468 32458 177.3.11.252

    So transcoding is working for the messaging but not for MoH

    The immediate assumption was to now think the problem was the MoH server but with a sniffer I can see a steady stream of RTP packets being sent from the subscriber to the loopback address of the gateway

    I'm not sure what change has caused this because last time I ran a sniffer on the branch 2 phone I only saw two packets coming from the hq gateway whereas now I see a steady stream of RTP packets being sent from the gateway to the branch2 phone. Not that it matters really as I'm still hearing nothing but silence on this phone

    There's only the default audio source available but even hard coding that on the phones and lines and then resetting them makes no difference

    All I'm actually doing here is to change the region settings. If I change it to G729 and do a reset, then place the phone on hold I hear nothing. So I hang up, change the region setting to G711 and reset it. Now when I put the phone on hold I hear music

    This made no sense to me so to dig deeper I did an analysis on the RTP streams either side of the gateway. Interestingly I've found that the one sent to the gateway has music in it whereas the one sent to the phone is just silence

    I've checked on RTMTand I can see an active unicast MoH resource on the subscriber so something seems to be going wrong when the trancoder converts that unicast MoH stream from g711 to g729

    I've since played with the codecs on the transcoder and it doesn't matter what flavour of g9729 is used

     

  • add the following commands:

    dspfarm pro transcoder

    codec g729r8

    codec g729br8

     

    ccm-manager music-on-hold

     

    Also restart the IPVMSA service.

     

    If that does not work then try enabling duplex streaming in the call manager.

     

  • Yay, success at last

    Enabling duplexing fixed the problem

    Now I'm more curious to know what made you think of that

    I know it's there for firewall and NAT issues so is there a bug?

    Anyway, many thanks for your help

  • Good to hear that your problem is resolved. [:)]

    In your show sccp command it was showing "send only" and "receive only". In order to enable transcoder for both ingress and egress streams enabling duplexing is required.

     

    Its not necessary that it is required for the purpose of firewall and NAT only. In case of firewall we are having a check box use TRP in media resources.

Sign In or Register to comment.