My only suggestion would be you could reduce your line count by replacing
your GotoIf statements with ExecIF statements.

exten => addheader,1,ExecIf($["x${ARG1}" !=
"x"]?Set(PJSIP_HEADER(add,Route)=${ARG1}))
 same => n,ExecIf($["x${ARG2}" !=
"x"]?Set(PJSIP_HEADER(add,P-Charging-Vector)=${ARG2}))
 same => n,ExecIf($["x${ARG3}" !=
"x"]?Set(PJSIP_HEADER(add,P-Visited-Network-ID)=${ARG3}))
 same => n,ExecIf($["x${ARG4}" !=
"x"]?Set(PJSIP_HEADER(add,X-C-Params)=${ARG4}))
 same => n,ExecIf($["x${ARG5}" != "x"]?Set(PJSIP_HEADER(add,X-URI)=${ARG5}))
 same => n,Return()


On Wed, Aug 2, 2017 at 6:39 AM, Carsten Bock <cars...@ng-voice.com> wrote:

> Hi,
>
> quick question:
> I need to pass-through some headers from the A-Leg to the B-Leg, which
> are connected using PJSIP.
> Currently I do the following:
>
> [handler]
> exten => addheader,1,GotoIf($["${ARG1}" == ""]?3)
> exten => addheader,2,Set(PJSIP_HEADER(add,Route)=${ARG1})
> exten => addheader,3,GotoIf($["${ARG2}" == ""]?5)
> exten => addheader,4,Set(PJSIP_HEADER(add,P-Charging-Vector)=${ARG2})
> exten => addheader,5,GotoIf($["${ARG3}" == ""]?7)
> exten => addheader,6,Set(PJSIP_HEADER(add,P-Visited-Network-ID)=${ARG3})
> exten => addheader,7,GotoIf($["${ARG4}" == ""]?9)
> exten => addheader,8,Set(PJSIP_HEADER(add,X-C-Params)=${ARG4})
> exten => addheader,9,GotoIf($["${ARG5}" == ""]?11)
> exten => addheader,10,Set(PJSIP_HEADER(add,X-URI)=${ARG5})
> exten => addheader,11,Return
>
> [pcscf1]
> exten => _.,1,Dial(PJSIP/pcscf1/sip:${EXTEN}@${SIPDOMAIN},,b(
> handler^addheader^1,(${PJSIP_HEADER(read,Route)},${PJSIP_
> HEADER(read,P-Charging-Vector)},${PJSIP_HEADER(read,P-
> Visited-Network-ID)},${PJSIP_HEADER(read,X-C-Params)},${
> PJSIP_HEADER(read,X-URI)})))
>
> This works, but you'll have to admit, it's not the most
> readable-Version of an extensions.conf.
>
> Are there any better solutions around?
>
> Thanks,
> Carsten
>
> P.S.: I may have found an issue in Asterisk 13.x (LTS); if I send the
> right SIP-Message I can make it crash. I'm currently verifying, if it
> still happens with the latest 13.x release from GIT. If I can confirm
> it with the latest 13.x from GIT, should I post my findings to the
> dev-list or is there some security mailing list, as this would apply
> to all installations around there?
>
> --
> Carsten Bock
> CEO (Geschäftsführer)
>
> ng-voice GmbH
> Millerntorplatz 1
> 20359 Hamburg / Germany
>
> http://www.ng-voice.com
> mailto:cars...@ng-voice.com
>
> Office +49 40 5247593-40
> Fax +49 40 5247593-99
>
> Sitz der Gesellschaft: Hamburg
> Registergericht: Amtsgericht Hamburg, HRB 120189
> Geschäftsführer: Carsten Bock
> Ust-ID: DE279344284
>
> Hier finden Sie unsere handelsrechtlichen Pflichtangaben:
> http://www.ng-voice.com/imprint/
>
> --
> _____________________________________________________________________
> -- 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




-- 
A human being should be able to change a diaper, plan an invasion, butcher
a hog, conn a ship, design a building, write a sonnet, balance accounts,
build a wall, set a bone, comfort the dying, take orders, give orders,
cooperate, act alone, solve equations, analyze a new problem, pitch manure,
program a computer, cook a tasty meal, fight efficiently, die gallantly.
Specialization is for insects.
---Heinlein
-- 
_____________________________________________________________________
-- 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