【问题标题】:Filtering pjsip show channels with grep in asterisk用星号中的 grep 过滤 pjsip 显示频道
【发布时间】:2020-05-18 09:10:18
【问题描述】:

我正在使用

asterisk -rx "pjsip show channels"

显示正在响铃的通话,但由于我有很多分机同时响铃,所以我得到了类似的东西

[root@freepbx ~]# asterisk -rx "pjsip show channels"

  Channel:  <ChannelId........................................>  <State.....>  <Time.....>
      Exten: <DialedExten.............>  CLCID: <ConnectedLineCID.......>
==========================================================================================

  Channel: PJSIP/214-0001190d/AppDial                            Ringing       00:00:19
      Exten: 214                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/215-0001190e/AppDial                            Ringing       00:00:19
      Exten: 215                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/221-00011909/AppDial                            Ringing       00:00:19
      Exten: 221                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/222-00011910/AppDial                            Ringing       00:00:19
      Exten: 222                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/223-0001190b/AppDial                            Ringing       00:00:19
      Exten: 223                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/225-00011912/AppDial                            Ringing       00:00:19
      Exten: 225                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/226-00011914/AppDial                            Ringing       00:00:19
      Exten: 226                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/227-0001190a/AppDial                            Ringing       00:00:19
      Exten: 227                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/228-00011915/AppDial                            Ringing       00:00:19
      Exten: 228                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/230-00011913/AppDial                            Ringing       00:00:19
      Exten: 230                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/231-000118d7/AppDial                            Up            00:01:41
      Exten: s                           CLCID: "0566437XX" <0566437XX>

  Channel: PJSIP/232-0001190f/AppDial                            Ringing       00:00:19
      Exten: 232                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/234-00011911/AppDial                            Ringing       00:00:19
      Exten: 234                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/235-00011908/AppDial                            Ringing       00:00:19
      Exten: 235                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/236-00011907/AppDial                            Ringing       00:00:19
      Exten: 236                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/237-000118ed/AppDial                            Up            00:01:01
      Exten: s                           CLCID: "0415346979" <0415346979>

  Channel: PJSIP/238-0001190c/AppDial                            Ringing       00:00:19
      Exten: 238                         CLCID: "+336506736XX" <+336506736XX>

  Channel: PJSIP/272-00011919/AppDial                            Ringing       00:00:09
      Exten: 2030                        CLCID: "Venezia:33339180XX" <33339180XX>

  Channel: PJSIP/276-0001191a/AppDial                            Ringing       00:00:09
      Exten: 2030                        CLCID: "Venezia:33339180XX" <33339180XX>

  Channel: PJSIP/ANCONA_UFFICIO-0001184b/Queue                   Up            00:05:21
      Exten: 2000                        CLCID: "" <>

  Channel: PJSIP/ANCONA_UFFICIO-0001189c/Queue                   Up            00:03:20
      Exten: 2000                        CLCID: "" <>

  Channel: PJSIP/ANCONA_UFFICIO-000118e9/Queue                   Up            00:01:14
      Exten: 2000                        CLCID: "" <>

  Channel: PJSIP/VENEZIA_PASSEGGERI-000118e6/Queue               Up            00:01:20
      Exten: 2000                        CLCID: "" <>

  Channel: PJSIP/VENEZIA_PASSEGGERI-00011918/Dial                Ring          00:00:09
      Exten: s                           CLCID: "" <>


Objects found: 24

所以……有没有一种方法可以过滤这个,每次来电响起时只显示一个条目?我试过了

asterisk -rx "pjsip show channels" | grep -o '"[^"]\+"' | sort -t: -u -k1,1

这将显示预期的输出,但我会在显示是否启动或是否响铃之前松开线路,所以我尝试了

asterisk -rx "pjsip show channels" | grep -B 1 -o '"[^"]\+"' | sort -t: -u -k1,1

但结果是错误的 非常感谢

【问题讨论】:

    标签: grep asterisk freepbx


    【解决方案1】:

    您正在使用人类可读的版本。只需使用机器可读的

    asterisk -rx "pjsip show channels concise"
    

    请注意,一般询问渠道是不稳定的。使用其他方式,例如 CEL 或 AMI 事件

    【讨论】:

    • 谢谢,您能给我指出如何通过 AMI 事件完成此任务的方向吗?
    • 只听 NewChannel、Bridge 和 Hangup 事件。参见 FOP 面板开源代码。
    猜你喜欢
    • 1970-01-01
    • 2010-11-07
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多