代码之家  ›  专栏  ›  技术社区  ›  Ram

app_dial.c:dial_exec_full无法创建通道类型SIP(原因20未知)

  •  2
  • Ram  · 技术社区  · 12 年前

    我第一次尝试在我的Ubuntu Linux机器上配置星号。我安装了星号,在执行以下命令时,我在终端中得到了这个。。。

    root@ubuntu:~# asterisk -r
    Asterisk 1.8.4.4~dfsg-2ubuntu1.1, Copyright (C) 1999 - 2010 Digium, Inc. and others.
    Created by Mark Spencer <markster@digium.com>
    Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
    This is free software, with components licensed under the GNU General Public
    License version 2 and other licenses; you are welcome to redistribute it under
    certain conditions. Type 'core show license' for details.
     =========================================================================
    Connected to Asterisk 1.8.4.4~dfsg-2ubuntu1.1 currently running on ubuntu (pid = 1062)
    ubuntu*CLI> 
    

    现在我已经更新了 sip.conf 具有以下。。

    [general]
    port = 5060
    bindaddr = 0.0.0.0
    context = others
    
    [2000]
    type=friend
    context=my-phones
    secret=1234
    host=dynamic
    
    [2001]
    type=friend
    context=my-phones
    secret=1234
    host=dynamic
    

    这是我的 extensions.conf

    [others]
    
    [my-phones]
    exten => 2000,1,Dial(SIP/2000)
    exten => 2001,1,Dial(SIP/2001) 
    

    现在为了测试目的,我下载了 Twinkle 并尝试配置分机 2000 用户名为 2000 和域 Localhost . 现在我在闪烁中注册后,尝试呼叫分机 2001 来自Twinkle,但它正在向 Asterisk CLI ..

     [Apr  1 03:49:58] WARNING[2301]: app_dial.c:2041 dial_exec_full: Unable to create   channel of type 'SIP' (cause 20 - Unknown)
    

    这里是Command sip show peers 导致终端。。

      Name/username              Host                                    Dyn Forcerport ACL Port     Status     
      2000/2000                  127.0.0.1                                D          5061     Unmonitored 
      2001                       (Unspecified)                            D          0        Unmonitored 
      2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 1 online, 1 offline]
    

    Sip注册也显示为零。。

    ubuntu*CLI> sip show registry
    Host                                    dnsmgr Username       Refresh    State                Reg.Time                 
    0 SIP registrations.
    

    这都是关于我的问题。。我对星号和Linux都很熟悉,并且对这种情况印象深刻。 请帮我解决这个问题。

    5 回复  |  直到 12 年前
        1
  •  2
  •   moonstruck    12 年前

    您收到此错误,因为2001未在任何地方注册。

    在另一部软电话中注册2001并尝试。

        2
  •  1
  •   LaurentG Sherbrow    10 年前
    • sip show registration 显示为零
    • sip show peer 将你的手机ip显示在2001年的同类产品附近。

    因此,您需要在星号上注册您的软电话/手机。

    考虑到你们问题的层次,我建议你们阅读星号书。我建议你读一下奥雷利的《电话的未来》。

        3
  •  0
  •   Alexei - check Codidact    10 年前

    步骤1-从软电话中注销用户2001

    步骤2-再次注册用户2001,保持星号服务器。

        4
  •  0
  •   Capt    9 年前

    我知道这已经过时了,但对于那些研究同样问题的人来说:

    @moonstrack提供了唯一正确的答案。

    OP配置了2个SIP扩展,但仅使用了1个SIP客户端(2000)连接到星号。
    显然,两个SIP客户端必须连接到星号,才能在它们之间路由呼叫。

    sip show registry 列出注册 SIP服务器之间 。它与SIP客户端无关。

        5
  •  0
  •   Farhan    9 年前

    几天以来,我一直在寻找这个问题的解决方案,但在网上找不到一个解决方案。所以我做了自己的研究,发现了以下有趣的事实:-

    调查结果:-

    1. 我有13个扩展,都是我定义的每个队列的一部分。一次仅登录4到5个扩展(在线)。
    2. 每当一些入站呼叫到达队列时,队列就会开始搜索所有13个分机。此时星号显示此错误。
    3. 星号同时显示多个错误。一个特定时间内的错误总数可根据以下公式定义:

    一次显示的错误数=该队列中的总扩展数-在线扩展数

    1. 我用不同数量的扩展尝试了这一现象,每次都发现公式是正确的。
    2. 该系统在保持平稳运行方面完全没有问题。

    建议:-

    我建议保持系统运行,并接受此错误,除非有人找到解决这些恼人错误的方法。别看我;这是我第一次使用Asterisk和FreePBX。:)

    推荐文章