I’m running Asterisk 15.5.0 , I’m trying to get the SIP_CAUSE info in order to inspect failure reason.
I added the storesipcause=yes and verified that sip configuration has now value Store SIP_CAUSE: Yes (using sip show settings).
Then I hadded the some logs in my context, with this results:
${CDR(channel)} -> ok, I got the correct value
${CDR(dstchannel)} -> no value
${HASH(SIP_CAUSE,${CDR(dstchannel)})} -> empty
${HASHKEYS(SIP_CAUSE)} -> empty
I’m not understanding what’s wrong…why the dstchannel is empty? I’m calling from my context, it’s correct or is to into the context from-internal (and how)?
If you need more info, please tell me…
Thanks in advance
Ok, thank you.
I resolved adding an handler to the channel hangup in the context from-internal, in this case I have both the dstchannel and the SIP_CAUSE like suggested in a guide , like this :
exten => _X.,n,Set(CHANNEL(hangup_handler_push)=hangup_handler,s,1)
[hangup_handler]
exten => s,1,Verbose(0, Executing Hangup Handler)
same => n,Set(CHANNEL_ID=${HANGUPCAUSE_KEYS()})
same => n,Verbose(0, CHANNEL_ID : ${CHANNEL_ID})
same => n,Set(ReasonTech=${HANGUPCAUSE(${CHANNEL_ID},tech)})
same => n,Set(ReasonAst=${HANGUPCAUSE(${CHANNEL_ID},ast)})
same => n,Verbose(0, ReasonTech : ${ReasonTech})
same => n,Verbose(0, ReasonAst : ${ReasonAst})