Synopsis:
Hangup(<causecode>)
Description:
This application hangs up the calling channel unconditionally and returns -1. If a causecode is given the channel’s hangup cause is set to the given value.
For SIP Connections
It is possible to send different reply errors (“404 Not found”, “484 Address incomplete” etc.) by setting <causecode> to one of the values defined by RFC 3398 – page 24.
The <causecode> parameter is the ISDN causecode and not the SIP response code. For example, to hang up a call with the SIP cause 503, the dialplan must execute hangup(42).
When call is hung up, Asterisk sends the extra SIP header “X-Asterisk-HangupCauseCode” in the BYE message.
For PRI Connections: Setting a PRI_CAUSE
Available on CVS versions March, 2004
On Zap PRI channels it is possible to set the PRI_CAUSE variable prior to Hangup(). This sends a PRI DISCONNECT message with the set CAUSE element to the switch. Some commonly used cause codes:
- 1 = Unallocated number
- 16 = Normal call clearing
- 17 = User busy
- 18 = No user responding (telephone device not connected)
- 21 = Call rejected
- 22 = Number changed
- 27 = Destignation out of order
- 38 = Network out of order
- 41 = Temporary failure
In Canada, through Group Telecom (May work through others) The hangup with PRI_CAUSE delivers these messages.
- PRI_CAUSE = 0,22,28,65-66 We’re sorry your call cannot be completed as dialed, please contact the group telecom customer service center at 1-877-484-5101 if you require assistance.
- PRI_CAUSE = 2-16,19-20,23-27,29-40,43-53,55-64,67-100 Fast Busy Signal / Congestions
- PRI_CAUSE = 17,41 Slow Busy Signal (Normal busy signal you hear every day)
- PRI_CAUSE = 18,21 Ringing (Normal ringing you hear every day)
- PRI_CAUSE = 42,54 We’re sorry, all circuits are busy, please try your call again later.
Example:
exten => i,1,SetVar(PRI_CAUSE=1); only needed for older Asterisk versions
; invalid extension dialed - PRI_CAUSE=unallocated number
exten => i,2,Hangup ; Outdated: Asterisk 1.4 allows to transmit the cause code as argument to Hangup()
; send the DISCONNECT message
; This results in most cases in a network generated recording like
"The number you have dialed has been disconnected ..."
See Also
- Asterisk h extension: Process call data after a hangup has been initiated, often used with DeadAGI
- Asterisk cmd SoftHangup
- Asterisk variable hangupcause
- Asterisk variable DIALSTATUS
- Asterisk variable PRI_CAUSE
- Asterisk variables
- Introduction
Asterisk | Applications | Functions | Variables | Expressions | Asterisk FAQ