[asterisk-users] How to get the original SIP result code

Gareth Blades mailinglist+asterisk at dns99.co.uk
Fri Aug 23 03:21:20 CDT 2013


On 22/08/13 15:43, Mordechay Kaganer wrote:
> B.H.
>
> Hello, i'm using AMI Originate action (with async=true) to send 
> outgoing calls to a SIP trunk (using asterisk-java library to connect 
> to AMI).
>
> The problem is that in case of failed originate, OriginateResponse 
> event is returning only the reason code which is sometimes not 
> sufficient to determine the real cause of failure. Also, there's no 
> way to link between the channel that was trying to dial and failed and 
> the original Originate request, because OriginateResponse is issued 
> only after the failed channel was hang up. Only successful 
> OriginateResponse will contain the unique id of the established channel.
>
> Is there any way that my AMI application can get the original SIP 
> response of the failed Originate action?
>
> I'm using Asterisk 1.8.22 and slightly tweaked asterisk-java 
> (https://blogs.reucon.com/asterisk-java/) 1.0.0.
>

You could dial a local channel instead and have that then go on and dial 
the destination. You will then be able to retrieve the sip response 
using something like :-

[localdial]
exten => _X.,1,Set(ddi=${CUT(EXTEN,,1)})
exten => _X.,n,Set(carrier=${CUT(EXTEN,,2)})
exten => _X.,n,Set(dialtime=${EPOCH})
exten => _X.,n,Set(_MASTERCHANNEL=${CHANNEL})
exten => _X.,n,Dial(SIP/${ddi}@${carrier})
exten => 
_X.,n,Set(SIPcause=${MASTER_CHANNEL(HASH(SIP_CAUSE,${CDR(dstchannel)}))}, Responsetime=$[${EPOCH}-${dialtime}])
exten => _X.,n,Set(SIPcode=${CUT(SIPcause," ",2)})

However you will need to set "storesipcause=yes" in your sip.conf for 
this to work. It is known to have a performance hit.

A better way would be to upgrade Asterisk and use hangup handlers. The 
documentation on how to do this in Asterisk 11 is poor and often wrong. 
I have written a blog about how we set it up as we use the feature all 
the time.
http://gblades.blogspot.co.uk/2013/07/how-to-get-sip-response-code-in.html

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20130823/2541849f/attachment.htm>


More information about the asterisk-users mailing list