I was bitten by this one recently and thought I’d share it.
tl;dr
After importing a known working “E1” config file into an SBC 1k/2k I found the ISDN will remain running in T1 mode – even though all of the running config says it’s E1. The fix is to reboot the box. Not even toggling back to T1 and then reinstating E1 fixed it for me – I had to go the reboot path.
Symptoms
I put my customer’s SBC upstream of their PABX one night and not long after I started receiving complaints of falls failing. Sure enough, the System / Statistics page was reporting an alarmingly high number of failed calls, although my test calls all seemed to succeed.
I eventually found the pattern – yes, calls were intermittently failing, and with an ISDN cause code 82: “Identified Channel Does Not Exist”. The failed calls were always for B-channels from 25 up. The penny dropped with a clang: it thinks it’s a T1.
Reproduce it
My customer had an SBC 2000 running v4.1.2 with 4 ISDN ports. I thought I’d see if the issue was present in my Lab’s SBC 1k running v5 b395 – and yes, the issue remains.
- Take a working SBC 1k. In my case I have my 2 E1 ISDNs looped back-to-back and all calls hairpin back to the SfB Conferencing Attendant. It’s all working fine. To help me test this I’ve set the ISDN Sig Gps for “Reverse Standard” Channel Hunting. (Had I done this initially on-site the problem would have been apparent straight away!)
- Back it up.
- Go to Tasks / Sonus SBC Factory Default. Select “Partial Factory Default” & click OK.
- When the box comes up, note that the DS1 port type and the ISDNs have all reset back to T1:
- Now go to Tasks / Import Partial Configuration and feed it the backup file above.
- When the box comes up this time, note that the DS1 port type and the ISDNs are all still T1. [I’m pretty sure the customer’s actually came up as E1, but here today they’ve stayed T1].
- Change them to E1:
- Looks good:
- Make a test call. Watch it fail:
(Ignore the typo from LX v2)com.sonus.sbc.isdn DEBUG (q931_machine.cpp:3003) - channel_id_ie is present channel number is =31 com.sonus.sbc.isdn ERROR (q931_machine.cpp:3034) - Q931Machine::ReceiveSetup: 0x4140e000 Demanded channel does not exist. com.sonus.sbc.isdn INFO (q931_coder.cpp:140) - Attempting to encode the CAUSE_AND_DIAGNOSTIC IE. com.sonus.sbc.isdn INFO (q931_coder.cpp:163) - Found CAUSE_AND_DIAGNOSTIC IE, encoding as is.
- Reboot the box one more time.
- Make a test call. Success!
The moral of the story?
Always give the SBC just one more reboot after you’ve completed your configuration and before you put it into service!
And maybe make a habit of setting your channel hunting to Reverse Standard.
– G.
Check if 5.0.1.build399 fixed it!
Nope – no change.
And this test just flushed out what might be another bug: having imported a Partial Config with logging enabled, it wasn’t outputting anything. I needed to set it to Disabled and back to Enabled… (Or perhaps give it that second reboot I suggested in the post!).
Oh my…. should happen an updated 5.0.2 from Sonus very soon then…
I understood it was a known issue they were going to document rather than fix? If you’re hearing differently, maybe Engineering’s had a change of heart…
Nono, what I meant: THEY BETTER FIX this ASAP!!!