[asterisk-users] PJSIP redirect_method=uri_core and header modifications

Daniel Tryba daniel at tryba.nl
Thu Aug 2 10:29:23 CDT 2018


With chan_sip there is the variable SIP_MAX_FORWARDS to set
Max-Forwards. This counter is persistant after a redirect. I can't find
the equivalent for PJSIP, so I went the way of header manipulation. Only
to find out that any headers added to the outbound leg are lost after a
redirect (with redirect_method=uri_core (didn't try any other since in
the past they didn't work for me)).

Am I missing something? Or is this a PJSIP feature?

chan_sip example:

[macro-maxforwards]
exten => s,1,NoOp()
exten => s,n,Set(mf=${SIP_HEADER(Max-Forwards)})
exten => s,n,Set(mf=$[ ${mf} - 1 ])
exten => s,n,ExecIf($[ ${mf} < 1 ]?Hangup(19))
exten => s,n,Set(__SIP_MAX_FORWARDS=${mf})
exten => s,n,SipAddHeader(X-Foo: bar)
exten => s,n,MacroExit()

[route]
...
exten => _+.,n,Macro(maxforwards)
exten => _+.,n,Dial(SIP/${EXTEN}@redirector)

An incomig INVITE will look like:

> INVITE sip:+number at asterisk;user=phone SIP/2.0
> Max-Forwards: 70

To the redirector:

> INVITE sip:+number at asterisk;user=phone SIP/2.0
> Max-Forwards: 69
> X-Foo: bar

< SIP/2.0 302 Redirect
< Contact: <sip:+number at somewhereelse:5060;transport=udp>

To somewhereelse:

> INVITE sip:+number at somewhereelse;user=phone SIP/2.0
> Max-Forwards: 69
> X-Foo: bar


PJSIP example (where the add strangely overrides the default
Max-Forwards: 70).

[setoutgoinglegvars]
exten => add,1,Set(PJSIP_HEADER(add,Max-Forwards)=60)
exten => add,1,Set(PJSIP_HEADER(add,X-Foo)=bar)
exten => add,n,Return()

[route]
...
exten => _+.,n,Macro(maxforwards)
exten => _+.,n,Dial(PJSIP/${EXTEN}@redirector,,b(setoutgoinglegvars,add,1))

> INVITE sip:+number at asterisk;user=phone SIP/2.0
> Max-Forwards: 70

To the redirector:

> INVITE sip:+number at asterisk;user=phone SIP/2.0
> Max-Forwards: 60
> X-Foo: bar

< SIP/2.0 302 Redirect
< Contact: <sip:+number at somewhereelse:5060;transport=udp>

To somewhereelse:

> INVITE sip:+number at somewhereelse;user=phone SIP/2.0
> Max-Forwards: 70

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: not available
URL: <http://lists.digium.com/pipermail/asterisk-users/attachments/20180802/892e051a/attachment.sig>


More information about the asterisk-users mailing list