Channel Names With Semicolons

Home » Asterisk Users » Channel Names With Semicolons
Asterisk Users 6 Comments

This is a follow-up to an email I posted earlier today to the list, although I
haven’t seen it come back yet. If it’s under moderation for some reason, I
hope some kindly admin will release it 🙂

I see something very similar in the documentation about local channels at https://wiki.asterisk.org/wiki/display/AST/Using+Callfiles+and+Local+Channels –
there are examples of both devices-ecf0;1 and devices-ecf0;2 but no mention of what the final digit means.

Can anyone enlighten me please?

Antony.


Never automate fully anything that does not have a manual override capability. Never design anything that cannot work under degraded conditions in emergency.

Please reply to the list;
please *don’t* CC me.

6 thoughts on - Channel Names With Semicolons

  • There’s nothing in the moderator queue that I can see.

    A single channel can’t do two things at once (you can’t have a channel talking to Alice while also executing the Voicemail dialplan application for example) – so Local channels solve this by having two independent channels that exchange things back and forth internally. The ;2 leg is the one that gets sent into the dialplan, while the ;1 leg is doing whatever dialed it decides to do with it. If you send audio to ;1 it then pops out of ;2, and vice versa.

  • From https://wiki.asterisk.org/wiki/display/AST/Channels

    “The primary exception is with Local Channels. In the case of local channels, you’ll typically have two local channel legs, one that is treated as outbound and the other as inbound. In this case both are really inside Asterisk, but one is executing dialplan and the other is not. The leg executing dialplan is the one treated as inbound.”

    In your case, context-00000ce9;1 is the inbound channel because you did Dial(Local/number@context) and context-00000ce9;2 is the outbound channel because it did the Dial to another destination. Simply, the numbers represent each leg of a local channel.

    Tom

     > Hi.

    This is a follow-up to an email I posted earlier today to the list, although I
    haven’t seen it come back yet. If it’s under moderation for some reason, I
    hope some kindly admin will release it 🙂

    > I’m trying to deal with a problem regarding putting a call on hold and then
    > later resuming it. I am using chan_sip throughout, and Asterisk 16.

    > The main thing which is puzzling me about this is that I see examples of
    > both Local/number@context-00000ce9;1 and Local/number@context-00000ce9;2
    > during the processing of the calls.
    >
    > What is the significance of the number following the semi-colon?
    >
    > I also see in verbose logging output:
    >
    > [2022-09-07 09:37:57.310706] pbx VERBOSE[29148]: dial.c:598 in
    > handle_frame: Local/number@context-00000ce9;1 answered
    >
    > [2022-09-07 09:37:57.310792] pbx VERBOSE[29155][C-00001265]:
    > bridge_channel.c:2252 in bridge_channel_internal_push_full: Channel
    > SIP/Trunkname-00002b55 joined ‘simple_bridge’ basic-bridge <7e260e93-
    > abd4-48ea-96f1-33601165dba2>
    >
    > [2022-09-07 09:37:57.310937] pbx VERBOSE[29149][C-00001265]:
    > bridge_channel.c:2252 in bridge_channel_internal_push_full: Channel
    > Local/number@context-00000ce9;2 joined ‘simple_bridge’ basic-bridge
    > <7e260e93- abd4-48ea-96f1-33601165dba2>
    >
    >
    > So, when the channel Local/number@context-00000ce9;1 gets answered, the
    > result is to bridge the channels Local/number@context-00000ce9;2 and
    > SIP/Trunkname-00002b55

    I see something very similar in the documentation about local channels at
    https://wiki.asterisk.org/wiki/display/AST/Using+Callfiles+and+Local+Channels
    there are examples of both devices-ecf0;1 and devices-ecf0;2 but no mention of
    what the final digit means.

    Can anyone enlighten me please?

    Antony.


    Never automate fully anything that does not have a manual override capability.
    Never design anything that cannot work under degraded conditions in emergency.

    Please reply to the list;
    please *don’t* CC me.

  • Thanks, sent again, and immediately received back.

    Ah, splendid – thanks for the clarification.

    So, coming back to my original difficulty, if I want to put this “thing” on hold, should I do ChannelRedirect() on the ;1 or the ;2 part? Maybe even both??

    I *believe* I have tried each (today my dialplan is processing ;2) and in both cases, as soon as the channel is put on hold, the hangup handler is called and the call ends.

    I am perfectly successful in using ChannelRedirect() for putting calls on hold when they are a SIP/ channel and not a Local/ one.

    Regards,

    Antony.


    If you can’t find an Open Source solution for it, then it isn’t a real problem.

    Please reply to the list;
    please *don’t* CC me.

  • Thanks – so, which one should I pass as the parameter to ChannelRedirect()
    when I want to put the call on hold (and then Bridge() when I want to join it back to the other caller again)?

    Antony.


    “Once you have a panic, things tend to become rather undefined.”

    – murble

    Please reply to the list;
    please *don’t* CC me.

  • From: asterisk-users on behalf of “Joshua C. Colp”
    Reply-To: Asterisk Users Mailing List – Non-Commercial Discussion
    Date: Wednesday, September 7, 2022 at 10:23 AM
    To: Asterisk Users Mailing List – Non-Commercial Discussion
    Subject: Re: [asterisk-users] Channel names with semicolons

    This is a follow-up to an email I posted earlier today to the list, although I
    haven’t seen it come back yet. If it’s under moderation for some reason, I
    hope some kindly admin will release it 🙂

    There’s nothing in the moderator queue that I can see.

    I see something very similar in the documentation about local channels at https://wiki.asterisk.org/wiki/display/AST/Using+Callfiles+and+Local+Channels
    there are examples of both devices-ecf0;1 and devices-ecf0;2 but no mention of what the final digit means.

    Can anyone enlighten me please?

    A single channel can’t do two things at once (you can’t have a channel talking to Alice while also executing the Voicemail dialplan application for example) – so Local channels solve this by having

    two independent channels that exchange things back and forth internally. The ;2 leg is the one that gets sent into the dialplan, while the ;1 leg is doing whatever dialed it decides to do with it. If you send audio to ;1 it then pops out of ;2, and vice versa.

  • It… depends on who you want to be affected by it. For example:

    PJSIP/alice <---> Local;1 <----> Local;2 <---> PJSIP/bob

    If you redirect “Local;1” then PJSIP/bob is going to be impacted, because you’re changing what Local;1 is doing. If you redirect “Local;2” then PJSIP/alice is going to be impacted, because you’re changing what Local;2 is doing.