I have configured a Cisco 2901 router with VWIC3 card as VoIP gateway.
When I throw calls from the IP network (with Asterisk PBX) to the PSTN network, and the call is rejected by the end user, the call end never arrives to my Asterisk PBX.
I can see in logs that the busy code arrives from PSTN to the 2901, but no SIP message is sent to the Asterisk PBX, so it can not know wich was the fail cause of the call.
The Asterisk PBX is connected to GigabitEthernet0/0 and the PSTN connection is an E1 primary trunk.
Scenario & Analysis :
VoIP gateway is configured correctly and all the necessary SIP commands are given.
PSTN is sending Call Fail Codes to the gateway but the gateway is not generating SIP fail codes and sending it to the PBX.
Checked IOS version and comparability for errors.
Normally the cause code mapping between the pstn and sip is set by default.
Tried the commands “signaling forward rawmsg/unconditional” under “voip service voip”:
Note: “signaling forward rawmsg/unconditional” adds information in the SIP messages payload (183, session progress), but doesn’t generate the SIP message, with the fail cause for PBX, when the end user rejects the call.
Possible Cause & Solutions :
After analysing “debug ISDN q931” , the problem seems to be that the CISCO postpone the forward of the call ends, as you can see in debug messages:
ISDN Se0/0/0:15 Q931: call_disc: PI received in disconnect; Postpone sending RELEASE for callid 0x8028
To solve it add “voice call disc-pi-off” in global configuration.
With this option enabled the Cisco router sends the SIP message SIP/2.0 486 Busy here. when the disconnects arrives from the ISDN interface.
If you have more info/doubts about this post, pls share it on the comment section #knowledge-the more u give more you gain 🙂