[asterisk-bugs] [JIRA] (ASTERISK-30076) app_stack: Incorrect location in predial handlers

N A (JIRA) noreply at issues.asterisk.org
Sun May 22 07:31:49 CDT 2022


N A created ASTERISK-30076:
------------------------------

             Summary: app_stack: Incorrect location in predial handlers
                 Key: ASTERISK-30076
                 URL: https://issues.asterisk.org/jira/browse/ASTERISK-30076
             Project: Asterisk
          Issue Type: Bug
      Security Level: None
          Components: Applications/app_stack
    Affects Versions: 18.9.0
            Reporter: N A


Gosub prints out the wrong execution location to the CLI in predial handlers:

{noformat}
[2022-05-22 12:11:39] DEBUG[24614][C-00000052]: app_stack.c:578 expand_gosub_args: Gosub args:predial,s,1(2,) new_args:predial,s,1(2,)
[2022-05-22 12:11:39]     -- PJSIP/ATAxLB2-00000038 Internal Gosub(predial,s,1(2,)) start
[2022-05-22 12:11:39] DEBUG[24614][C-00000052]: app_stack.c:1070 gosub_run: PJSIP/ATAxLB2-00000038 Original location: orig-line-pjsip,s,1
[2022-05-22 12:11:39] DEBUG[24614][C-00000052]: app_stack.c:672 gosub_exec: Channel PJSIP/ATAxLB2-00000038 has no datastore, so we're allocating one.
[2022-05-22 12:11:39] DEBUG[24614][C-00000052]: app_stack.c:714 gosub_exec: Setting 'ARG1' to '2'
[2022-05-22 12:11:39] DEBUG[24614][C-00000052]: app_stack.c:714 gosub_exec: Setting 'ARG2' to ''
[2022-05-22 12:11:39] DEBUG[24614][C-00000052]: app_stack.c:1074 gosub_run: Gosub exited with status 0
[2022-05-22 12:11:39]     -- Executing [s at predial:1] PreDial("PJSIP/ATAxLB2-00000038", "c(2)") in new stack
[2022-05-22 12:11:39]     -- Executing [s at predial:2] Return("PJSIP/ATAxLB2-00000038", "") in new stack
[2022-05-22 12:11:39] DEBUG[24614][C-00000052]: app_stack.c:1132 gosub_run: Spawn extension (orig-line-pjsip,s,1) exited with -1 on 'PJSIP/ATAxLB2-00000038'
[2022-05-22 12:11:39]   == Spawn extension (orig-line-pjsip, s, 1) exited non-zero on 'PJSIP/ATAxLB2-00000038'
[2022-05-22 12:11:39]     -- PJSIP/ATAxLB2-00000038 Internal Gosub(predial,s,1(2,)) complete GOSUB_RETVAL=
[2022-05-22 12:11:39] DEBUG[24614][C-00000052]: app_stack.c:1158 gosub_run: PJSIP/ATAxLB2-00000038 Ending location: orig-line-pjsip,s,1
{noformat}

Here, orig-line-pjsip is the configured context for this PJSIP endpoint.

Execution never was in this context, since it's a predial handler. It should print out Spawn extension (predial,s,2) exited... instead, but it's printing out the channel's default context.

Doesn't affect anything per se but if a user is paying attention to the CLI, it can be quite confusing because it may seem as if the channel is doing something it shouldn't be.

Not fully sure what the most elegant fix here is, but it seems that we need to handle if we're doing a Gosub on a channel that didn't normally start in the PBX (like predial) and maybe NULL out the original context so that doesn't happen (though not sure of the implications of that).



--
This message was sent by Atlassian JIRA
(v6.2#6252)



More information about the asterisk-bugs mailing list