10-21-2022 06:46 AM
Hi to everyone,
We have SIP Cisco IP Phone <-> CUCM <-> SIP Trunk <-> CUBE <-> SIP Trunk <-> ITSP.
PRACK is mandatory and agreed with the provider so it must be enabled both in CUCM and CUBE.
Provider says that no matter if they send us 183 Session Progress if they send us afterwards 180 Ringing then we must play the tone locally.
As far as I know and please correct me if I'm wrong:
Can someone please advice?
Below are the outputs from the packet captures in CUBEs internal and external interfaces where Cisco Phone makes a call to ITSP and PRACK is enabled in CUCM and CUBE.
Below are the outputs from the packet captures in CUBEs internal and external interfaces where Cisco Phone makes a call to ITSP and PRACK is disabled only in CUCM SIP Profile.
10-21-2022 08:50 AM
Is there an annunciator included in the MRGL of the outbound gateway? If not, that might be the problem. The annunciator is what would play the ringback tone.
10-24-2022 05:13 AM
Hi Elliot, Annunciator is included in MRGL. Also when PRACK is disabled the tone is played locally from the phone.
10-24-2022 05:37 AM
@TechLvr made what looks like a very helpful suggestion to the PRACK setting on the SIP trunk in CUCM. Have you tried that?
10-22-2022 11:38 AM - edited 10-22-2022 11:39 AM
ITSPs use 183 Session Progress to send early media (messages/tones) before the call is connected. If they use 183 Session Progress to only play messages, and not Ring Back Tones, then they send a 180 Ringing without SDP so the customer end plays RBT locally.
Now, I see in your first scenario that when PRACK is enabled, your CUCM sends a PRACK for both 183 Session Progress w/SDP and 180 Ringing w/o SDP. While this may not be an issue, your CUBE/ITSP does not require a PRACK for 180 Ringing. I know this is not required because your second scenario works fine (when PRACK is disabled altogether).
As a result, I suggest you enable PRACK but set it to "Send PRACK if 1xx Contains SDP" instead of "Send PRACK for all 1xx Messages" and test again. This way CUCM only sends PRACK to 183 Session Progress, and not 180 Ringing.
10-24-2022 05:59 AM - edited 10-24-2022 07:17 AM
Hi TechLvr,
I tried with "Send PRACK if 1xx Contains SDP" in SIP Profile of SIP Trunk in CUCM but nothing changed.
The obvious would be that CUCM should not send PRACK in 180Ringing without SDP but below is the debug from CUBE where you can see that CUCM continuous to send PRACK.
10-24-2022 06:43 AM
Did you reset the trunk after applying the change on the SIP profile?
Also, can you verify that your CUBE is set to "rel1xx supported100rel" under voice service voip / sip settings as shown below.
voice service voip
sip
rel1xx supported 100rel
It may currently be set to "rel1xx require 100rel" which is not what you need.
10-24-2022 07:24 AM
Yes I reset the trunk after the change and I confirm that we have rel1xx supported "100rel" under voice service voip and voice-class sip rel1xx system under incoming from CUCM dial-peer.
10-24-2022 07:43 AM
Since you have rel1xx supported 100rel configured at the global level, you don't need any rel1xx commands at the dial peer. Either remove that command from your dial peers or change it to "voice-class sip rel1xx supported 100rel" while keeping the global command unchanged.
If the above does not work please share the output of "debug ccsip messages" on a non-working call.
10-25-2022 04:45 AM
The command voice-class sip rel1xx system is the default one of the dial-peer which was revealed from "show run all". There is no manually entered command in dial-peer regarding rel.
Below you can see the debug ccsip messages output from a working B number which has RBT played from the ITSP side and a non working B number which has NO RBT either from ITSP side or locally.
Both calls have PRACK enabled end to end (CUCM-CUBE).
In the good scenario ITSP sends RBT after 183 with SDP.
In the bad scenario ITSP does not send RBT after 183 with SDP. Then after 180Ringing is received from ITSP, although RBT should be played locally from the phone this is not happening.
As said in my original post if PRACK is disabled for the bad scenario on CUCM side then RBT is locally played from the phone. Keep in mind that PRACK is mandatory and cant be disabled in the production. It was done only for testing purposes.
Debugs from both good and bad scenarios are attached.
10-25-2022 09:05 AM
Working Scenario:
From the logs, it seems like when the ITSP sends 180 Ringing with "Require: 100rel" to the CUBE, and the CUBE sends a PRACK to the ITSP as expected.
The CUBE then sends 180 Ringing with "Require: 100rel" to CUCM, and the CUCM sends a PRACK back to the CUBE.
ITSP sends 200OK to the CUBE for the PRACK message.
CUBE sends 200OK to the CUCM for the PRACK message.
Non-working Scenario:
ITSP send 180 Ringing WITHOUT "Require:100rel" to the CUBE. The CUBE does NOT send a PRACK to the ITSP as the ITSP did NOT request a PRACK.
The CUBE then sends 180 Ringing with "Require: 100rel" to CUCM, and the CUCM sends a PRACK back to the CUBE.
CUBE sends 200OK to the CUCM for the PRACK message.
I believe the issue is that the ITSP does not consistently send "Require:100rel" in the 180 Rining message to the CUBE.
I suggest you ask the ITSP to look into this on their end.
Also, I noticed something strange in your non-working call logs. For example, in the initial INVITE from the CUBE to the ITSP, the Via header says "ITSP" instead of "CUBE-EXTERNAL-IP". In that same Invite w/ SDP the connection header shows "c=IN IP4 ITSP" instead of "c=IN IP4 CUBE-EXTERNAL-IP". I think there are two possible reasons. Either you made a mistake while censoring the IP addresses in the non-working call logs, or the non-working calls use a specific dial peer with a SIP profile that messes up the SIP messages. Can you check that?
Screenshot below shows the difference between the working and non-working scenarios.
Screenshot below shows the errors you probably made while censoring or possible issues with the CUBE configs.
10-26-2022 02:03 AM
I'm sorry as in the non working scenario the errors in INVITE are made from me so please don't pay attention to them.
This is exactly what I also found regarding the "Require: 100rel" in good scenario or missing "Require: 100rel" on bad scenario in the 180 Ringing the ITSP sends us.
So our options are:
Why do you believe Cisco Phone does not play the RBT in bad scenario keeping in mind that, as you saw in good and bad scenarios, all the messages between CUCM & CUBE are exactly the same apart from "P-Early-Media: inactive" attribute in bad scenario, which comes from ITSP and is forwarded to CUCM in 180Ringing message.
10-31-2022 06:51 AM
Can you please apply the SIP profile below to your dial peer facing CUCM, and see if it makes a difference?
voice class sip-profiles 10
response 180 sip-header Require remove
response 180 sip-header P-Early-Media remove
Use the "voice-class sip profiles 10" command at the dial peer level. This SIP profile removes "Require: 100rel" and "P-Early-Media: inactive" only from the180 Ringing message toward CUCM.
10-24-2022 01:47 PM
Hi,
Is RBT heard when you dial any other mobile or landline number?
If so, can you share the debugs @TechLvr requested of a working & non-working call?
Would you also share the running configuration of your CUBE please?
10-25-2022 04:48 AM
Hi Scott, I uploaded the files in reply to @TechLvr
I'm afraid I can't upload the show run.
Please check the above post with the debugs and if is needed I may share specific informations from the Show Run.
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide