This does not work either.
getting returned sip code out of asterisk turns out to be very time
consuming, even though it is something that is already available to
PJSIP, I can see the information in sip logger, and asterisk forwards
the sip status code to the soft-phone. but does not give access it on
the dial-plan.
On Sat, Jun 9, 2018 at 7:46 PM Eric Wieling <[email protected]> wrote:
>
> My actual dialplan hangupcause handling is in AGI and AEL, so the
> dialplan below has not been tested.
>
> Don't use HANGUPCAUSE_KEYS, the order of the channels varies.  Save the
> channel name while the dialplan is in the predial handler like below.
> MASTER_CHANNEL is used to avoid silly issues with the scope of the
> out_chan variable.
>
> [test]
> exten => _X.,1,Set(CHANNEL(hangup_handler_push)=caller_hangup,s,1)
>   same => n,Dial(SIP/my-peer/12125551212,30,b(test_pre_dial^s^1))
>
> [test_pre_dial]
> ; while in the handler save the channel
> exten => _X.,1,Set(MASTER_CHANNEL(out_chan)=${CHANNEL{name})
>   same => n,Return
>
> You should be able to use the caller hangup handler to get tech
> hangupcauses like "SIP 480 Temporarily Unavailable".
>
> [caller_hangup]
> exten =>
> s,1,Noop(HANGUPCAUSE(${MASTER_CHANNEL(out_chan)},tech)='${HANGUPCAUSE(${MASTER_CHANNEL(out_chan)},tech)}')
> exten => n,Return
>
>
> On 06/09/2018 03:10 PM, Khalil Khamlichi wrote:
> > Thanks for your response Eric,
> >
> > Here is some testing code, as you can see ${HANGUPCAUSE(${ARG1},tech)}
> > is empty if number is not found (HANGUPCAUSE=1) or if sip request
> > times-out (HANGUPCAUSE=0) (a dead far end for example) so I had to
> > check value HANGUPCAUSE and filter out zero and one before moving on.
> > where all I need is simply the sip code returned from the server that
> > even softphones are able to give me.
> >
> >
> > [autodial_out]
> > exten => _X.,1,NoOP( testing manager dial out )
> >   same => 
> > n,Dial(PJSIP/${EXTEN}@${TRUNK},25,b(autodial_out^setup_hup_handler^1)g)
> >   same => n,Hangup()
> >
> >
> > exten => 
> > setup_hup_handler,1,Set(CHANNEL(hangup_handler_push)=hdlr1,s,1(${CHANNEL}))
> >   same => n,Return()
> >
> >
> > [hdlr1]
> > exten => 
> > s,1,NoOp(START==============================================================================)
> >   same => n,Set(HANGUPCAUSE_STRING=${HANGUPCAUSE_KEYS()})
> >   same => n,Set(ASTcause=${HANGUPCAUSE})
> >   same => n,Set(GO=Found)
> >   same => n,GotoIf($[${ASTcause}=0]?NotFound0:Check2)
> >   same => n(Check2),GotoIf($[${ASTcause}=1]?NotFound1:Found)
> >   same => n(Found),Set(SIPcause=${HANGUPCAUSE(${ARG1},tech)})
> >   same => n,Goto(End)
> >   same => n(NotFound0),Set(SIPcause=SIP 500 Server Internal Error)
> >   same => n,Goto(End)
> >   same => n(NotFound1),Set(SIPcause=SIP 404 Not Found)
> >   same => n,Goto(End)
> >   same => n(End),Set(============================ ${SIPcause} /
> > ${ASTcause} =======================END)
> >   same => n,Return()
> >
> >
> > On Sat, Jun 9, 2018 at 7:02 PM Eric Wieling <[email protected]> wrote:
> >>
> >> I think HANGUPCAUSE is channel agnostic.
> >>
> >> See: core show function HANGUPCAUSE
> >>
> >> Some thing like this IIRC:
> >>       Set(my_cause=${HANGUPCAUSE(${CHANNEL(name)},tech)})
> >>
> >> Remember the incoming leg of the call and the outgoing leg of the call
> >> are different channels.  Make sure you are giving HANGUPCAUSE the
> >> correct channel.
> >>
> >> On 06/09/2018 02:01 PM, Khalil Khamlichi wrote:
> >>> It seems very weird to me that we cannot access sip code of a call
> >>> from pjsip which information is actually returned from the provider,
> >>> so it is available to asterisk, why does asterisk hide it ?
> >>> On Sat, Jun 9, 2018 at 5:08 PM Khalil Khamlichi
> >>> <[email protected]> wrote:
> >>>>
> >>>> Hi,
> >>>>
> >>>> Is there any way I can get exact sip status from pjsip after a dial ?
> >>>> or all we can
> >>>> get is asterisk hangup causes ?
> >>>>
> >>>> Thanks in advance.
> >>>>
> >>>> KKh
> >>>
> >>
> >> --
> >> http://help.nyigc.net/
>
> --
> http://help.nyigc.net/

-- 
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --

Check out the new Asterisk community forum at: https://community.asterisk.org/

New to Asterisk? Start here:
      https://wiki.asterisk.org/wiki/display/AST/Getting+Started

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
   http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to