Wazo-add-predial-hook argument

Hi everyone

How can I use arguments in a subroutine called by wazo-add-predial-hook ?

I would like to send an argument on the INVITE sip header of a new channel (using Dial) using the content of a previous channel var

Hello,

Have you check the documentation here: https://wazo-platform.org/uc-doc/api_sdk/subroutine

Hi Sylvain

I did but I didn’t found anything about how to pass params

I’m trying to achieve this :

[xivo-subrgbl-user]
...
same = n,Set(MYVAR=aValue)
same = n,GoSub(wazo-add-pre-dial-hook,s,1(PJSipAddCallId,s,1))
...
same = n,return

[PJSipAddCallId]
exten = s,1,NoOp(Add header)
same = n,Set(PJSIP_HEADER(add,X-MYVAR)=${MYVAR})
same = n,return

and the result is

[Feb 27 17:12:34]     -- Executing [s@xivo-subrgbl-user:19] Set("PJSIP/trunkdemo-0000003c", "MYVAR=aValue") in new stack
[Feb 27 17:12:34]     -- Executing [s@xivo-subrgbl-user:20] Gosub("PJSIP/trunkdemo-0000003c", "wazo-add-pre-dial-hook,s,1(PJSipAddCallId,s,1)") in new stack
[Feb 27 17:12:34]     -- Executing [s@wazo-add-pre-dial-hook:1] Set("PJSIP/trunkdemo-0000003c", "HANDLER=PJSipAddCallId") in new stack
[Feb 27 17:12:34]     -- Executing [s@wazo-add-pre-dial-hook:2] Set("PJSIP/trunkdemo-0000003c", "PUSH(_WAZO_PRE_DIAL_HANDLERS,|)=PJSipAddCallId,s,1") in new stack
[Feb 27 17:12:34]     -- Executing [s@wazo-add-pre-dial-hook:3] Return("PJSIP/trunkdemo-0000003c", "") in new stack
[Feb 27 17:12:34]     -- Executing [s@xivo-subrgbl-user:21] GotoIf("PJSIP/trunkdemo-0000003c", "0?return") in new stack
 ...
[Feb 27 17:12:34]     -- Executing [s@user:43] Gosub("PJSIP/trunkdemo-0000003c", "wazo-schedule-pre-dial-hooks,s,1") in new stack
[Feb 27 17:12:34]     -- Executing [s@wazo-schedule-pre-dial-hooks:1] AGI("PJSIP/trunkdemo-0000003c", "agi://localhost/convert_pre_dial_handler") in new stack
[Feb 27 17:12:34]  agi://localhost/convert_pre_dial_handler: AGI handler 'convert_pre_dial_handler' successfully executed
[Feb 27 17:12:34]     -- <PJSIP/trunkdemo-0000003c>AGI Script agi://localhost/convert_pre_dial_handler completed, returning 0
[Feb 27 17:12:34]     -- Executing [s@wazo-schedule-pre-dial-hooks:2] GotoIf("PJSIP/trunkdemo-0000003c", "PJSipAddCallId,s,1?:done") in new stack
[Feb 27 17:12:34]     -- Executing [s@wazo-schedule-pre-dial-hooks:3] Set("PJSIP/trunkdemo-0000003c", "XIVO_CALLOPTIONS=m(mohclass-1)b(wazo-pre-dial-hooks^s^1)") in new stack
[Feb 27 17:12:34]     -- Executing [s@wazo-schedule-pre-dial-hooks:4] Return("PJSIP/trunkdemo-0000003c", "") in new stack
[Feb 27 17:12:34]     -- Executing [s@user:44] Dial("PJSIP/trunkdemo-0000003c", "PJSIP/300/sip:300@192.168.3.137:5075,,m(mohclass-1)b(wazo-pre-dial-hooks^s^1)") in new stack
[Feb 27 17:12:34]     -- PJSIP/300-0000003d Internal Gosub(wazo-pre-dial-hooks,s,1) start
[Feb 27 17:12:34]     -- Executing [s@wazo-pre-dial-hooks:1] While("PJSIP/300-0000003d", "1") in new stack
[Feb 27 17:12:34]     -- Executing [s@wazo-pre-dial-hooks:2] Gosub("PJSIP/300-0000003d", "PJSipAddCallId,s,1") in new stack
[Feb 27 17:12:34]     -- Executing [s@PJSipAddCallId:1] NoOp("PJSIP/300-0000003d", "Add header") in new stack
[Feb 27 17:12:34]     -- Executing [s@PJSipAddCallId:2] Set("PJSIP/300-0000003d", "PJSIP_HEADER(add,X-MYVAR)=") in new stack
[Feb 27 17:12:34]     -- Executing [s@PJSipAddCallId:4] Return("PJSIP/300-0000003d", "") in new stack
[Feb 27 17:12:34]     -- Executing [s@wazo-pre-dial-hooks:3] EndWhile("PJSIP/300-0000003d", "") in new stack
[Feb 27 17:12:34]     -- Executing [s@wazo-pre-dial-hooks:1] While("PJSIP/300-0000003d", "0") in new stack
[Feb 27 17:12:34]     -- Executing [s@wazo-pre-dial-hooks:4] Return("PJSIP/300-0000003d", "") in new stack

${MYVAR} doesn’t have any value inside the PJSipAddCallId despite I set it up previously.
Off course I understand that PJSipAddCallId is handling another channel (00003d) than the original one (00003c).
My question is : how can I pass a value to PJSipAddCallId subroutine

Hi,
You should look the Asterisk Variable Inheritance
Regards,

Thank you so much. I forgot about inheritance.

Have a nice week end folks