This was an interesting issue one of my colleague at work came across.

Customer called and said they cannot transfer calls to mobile number. He can make calls to mobile number fine but when he was transferring an external (PSTN) call to mobile number, the call drops immediately. Transfer to any local or national number works perfectly fine.

External caller Mr. A (PSTN) ———— > Ext 114 —— > Hold —-> dial mobile number —- > Speaks to mobile caller —– > Hit transfer Key —— > Call drops

First of all I checked the service parameter Block OffNet To OffNet Transfer which has a default value of false but I made sure it is false. If we set it to true then transfer to any external number won’t work.

Next bit, I checked if it’s a dsp issue. Found out that their Voice traffic is quite high with almost 19-20 channels always busy out of 21 channels. I thought may be at the time of transfer the call is not getting a channel available to place call and hence dropping. I called him, asked to make a call to mobile number while I started running isdn q931 debugs.


This is the call I made from my PSTN phone to Customer extension

Jul 19 16:01:58.808: ISDN Se0/0/0:15 Q931: RX <- SETUP pd = 8  callref = 0x0008
Sending Complete
Bearer Capability i = 0x8090A3
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98388
Exclusive, Channel 8
Calling Party Number i = 0x2181, ‘XXXXXX1395’
Plan:ISDN, Type:National
Called Party Number i = 0x81, ‘214029’

Plan:ISDN, Type:Unknown
*Jul 19 16:01:58.824: ISDN Se0/0/0:15 Q931: TX -> CALL_PROC pd = 8  callref = 0x8008
Channel ID i = 0xA98388
Exclusive, Channel 8
*Jul 19 16:01:58.944: ISDN Se0/0/0:15 Q931: TX -> ALERTING pd = 8  callref = 0x8008
Progress Ind i = 0x8188 – In-band info or appropriate now available
*Jul 19 16:01:59.144: ISDN Se0/0/0:15 Q931: TX -> CONNECT pd = 8  callref = 0x8008
*Jul 19 16:01:59.212: ISDN Se0/0/0:15 Q931: RX <- CONNECT_ACK pd = 8  callref = 0x0008

Call connected successfully (callref = 0x0008)

OEH-VG-01#
OEH-VG-01#
*Jul 19 16:01:59.216: %ISDN-6-CONNECT: Interface Serial0/0/0:7 is now connected to XXXXXX1395 N/A
*Jul 19 16:01:59.216: %ISDN-6-CONNECT: Interface Serial0/0/0:7 is now connected to XXXXXX1395 N/A
*Jul 19 16:01:59.216: %ISDN-6-CONNECT: Interface Serial0/0/0:7 is now connected to XXXXXX1395 N/A
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
*Jul 19 16:02:05.216: %ISDN-6-CONNECT: Interface Serial0/0/0:7 is now connected to XXXXXX1395 N/A
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#
OEH-VG-01#

While putting me on hold, customer dials mobile number and call is established (callref = 0x929E)

*Jul 19 16:02:28.708: ISDN Se0/0/0:15 Q931: Applying typeplan for sw-type 0x12 is 0x0 0x0, Calling num 4000
*Jul 19 16:02:28.712: ISDN Se0/0/0:15 Q931: Applying typeplan for sw-type 0x12 is 0x0 0x0, Called num 0787XXXXXXX
*Jul 19 16:02:28.712: ISDN Se0/0/0:15 Q931: TX -> SETUP pd = 8  callref = 0x129E
Bearer Capability i = 0x8090A3
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
Channel ID i = 0xA98395
Exclusive, Channel 21
Calling Party Number i = 0x00A1, ‘4000’ <<< Outgoing calls
Plan:Unknown, Type:Unknown
Called Party Number i = 0x80, ‘0787XXXXXXX’
Plan:Unknown, Type:Unknown
*Jul 19 16:02:28.936: ISDN Se0/0/0:15 Q931: RX <- SETUP_ACK pd = 8  callref = 0x929E
Channel ID i = 0xA98395
Exclusive, Channel 21
Progress Ind i = 0x8288 – In-band info or appropriate now available
*Jul 19 16:02:29.884: ISDN Se0/0/0:15 Q931: RX <- CALL_PROC pd = 8  callref = 0x929E
*Jul 19 16:02:35.196: ISDN Se0/0/0:15 Q931: RX <- ALERTING pd = 8  callref = 0x929E
*Jul 19 16:02:39.900: ISDN Se0/0/0:15 Q931: RX <- CONNECT pd = 8  callref = 0x929E
*Jul 19 16:02:39.900: %ISDN-6-CONNECT: Interface Serial0/0/0:20 is now connected to 0787XXXXXXX N/A
*Jul 19 16:02:39.900: %ISDN-6-CONNECT: Interface Serial0/0/0:20 is now connected to 0787XXXXXXX N/A
*Jul 19 16:02:39.900: %ISDN-6-CONNECT: Interface Serial0/0/0:20 is now connected to 0787XXXXXXX N/A
*Jul 19 16:02:39.904: ISDN Se0/0/0:15 Q931: TX -> CONNECT_ACK pd = 8  callref = 0x129E

Customer now connected to my mobile phone, he could speak to me as well.

Now he hits transfer key to transfer my Original call to my mobile phone.

*Jul 19 16:03:15.960: %ISDN-6-DISCONNECT: Interface Serial0/0/0:20  disconnected from 0787XXXXXXX , call lasted 36 seconds
*Jul 19 16:03:15.960: ISDN Se0/0/0:15 Q931: TX -> DISCONNECT pd = 8  callref = 0x129E
Cause i = 0x80AF – Resource unavailable, unspecified

*Jul 19 16:03:16.040: %ISDN-6-DISCONNECT: Interface Serial0/0/0:7  disconnected from XXXXXX1395 , call lasted 76 seconds
*Jul 19 16:03:16.040: ISDN Se0/0/0:15 Q931: TX -> DISCONNECT pd = 8  callref = 0x8008
Cause i = 0x80AF – Resource unavailable, unspecified

*Jul 19 16:03:16.112: ISDN Se0/0/0:15 Q931: RX <- RELEASE pd = 8  callref = 0x929E
*Jul 19 16:03:16.112: ISDN Se0/0/0:15 Q931: TX -> RELEASE_COMP pd = 8  callref = 0x129E
*Jul 19 16:03:16.208: ISDN Se0/0/0:15 Q931: RX <- RELEASE pd = 8  callref = 0x0008
*Jul 19 16:03:16.212: ISDN Se0/0/0:15 Q931: TX -> RELEASE_COMP pd = 8  callref = 0x8008

You can see both call drop immediately (0x8008 & 0x929E)

There is no proper description of this ISDN error so that was not helpful at all.

I did enable the dspfarm which was disabled and applied the local bypass to hairpin the call without DSPs.

R(config)#voice-card 1
R(config-voicecard)#?
Voice-card configuration commands:
codec Manage codec configuration parameters for voice card
default Set a command to its defaults
dsp Manage DSP configuration for the voice card
exit Exit from voice card configuration mode
local-bypass Enable TDM hairpinning
no Negate a command or set its defaults

Even this didn’t resolve the issue and call was dropping as soon as he hits transfer.

This is where me and my colleague started getting frustrated. We then asked the customer to hit ‘?’ key when we make call to his extension which he did. He told us the codec used was G711ulaw. We asked them to repeat the process when he makes an outbound call to mobile phone and this time the codec was G711alaw which is quite normal for our region (UK). So, the problem was mis-match of codecs as the call was coming in as G711ulaw and was getting transferred to G711alaw. I quickly found out the voice class codec 1 as follows:

voice class codec 1
 codec preference 1 g711ulaw
 codec preference 2 g729r8

I added  the codec pref 3 g711alaw line and that fixed the issue.

voice class codec 1
 codec preference 1 g711ulaw
 codec preference 2 g729r8
 codec preference 3 g711alaw

I think, this is something I didn’t try but if I had removed the pref 1 codec from G711ulaw to G711alaw, things would have worked as well.

voice class codec 1
 codec preference 1 g711alaw
 codec preference 2 g729r8
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s