Get more information about SIP_CAUSE

I’m using SIP_CAUSE to get the Sip reason as describe below

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})

Do you know if is possible get more information about the reason it fails? I asked the provider to do some checks and return me information like :

  • SIP 503 Service Unavailable —> CAPS limit / Retry-After: 5
  • SIP 480 Temporarily Unavailable --> Q.850 cause=34 from destination carrier / destination number (mobile) was not reachable (no channel available)

, it could be great having the specific reason it fails (without annoying the provider), currently I have only the first one.

Thanks

Paolo

503, in particular, is a catch-all code. Only your provider can tell you all the possible causes on their system.

The basic meanings are in the SIP RFC, and there is an RFC giving preferred translations from ISDN codes.