中国电信SIP账号在FreePBX 13中的中继设置

在《配置EPON家庭网关接入中国电信电话交换IP网络》一文中我们介绍了如何使用MicroSIP软电话程序接入中国电信的电话IP网络,并提出了实现局域网电话软交换(IP-PBX)的可能性。以下FreePBX 13的中继设置已经通过几周的实际测试,可以放心使用。

在FreePBX 13管理界面上,创建类型为chan_pjsip的SIP中继(Trunk),并在中继编辑页面的“pjsip Settings”选项卡里输入如下参数:

General:
  Username: +8621XXXXXXXX@sh.ctcims.cn
  Secret: <SECRET>
  SIP Server: sh.ctcims.cn
  SIP Server Port: 5060

Advanced:
  From Domain: sh.ctcims.cn
  From User: +8621XXXXXXXX
  Client URI: sip:+8621XXXXXXXX@sh.ctcims.cn:5060
  AOR Contact: sip:+8621XXXXXXXX@sh.ctcims.cn:5060
  Match(Permit): 15.192.0.0/16

Codecs: Enable g729

注:Match(Permit)为所有局端SIP服务器可能所在的网段。

由于电信IP电话网络的DNS服务器中没有sh.ctcims.cn这个记录,并且目前FreePBX 13中chan_pjsip的Outbound Proxy设置无效,我们必须在本地DNS服务器中为sh.ctcims.cn设置解析。在常见的DNS代理程序dnsmasq中,设置参数如下:

server=/sh.ctcims.cn/15.192.252.188
address=/sh.ctcims.cn/15.192.60.71

其中,server是EPON网关的VOICE_INTERNET连接(epon0.4)获得的DNS服务器之一,address为sh.ctcims.cn作本地解析(EPON网关中预置的OutboundProxy域名解析出来的两个IP地址之一)。

更新

  • 2017-07-20
    2017年6月底,15.192.60.71发生故障无响应导致中继失效,而OutboundProxy域名解析出来的另一个地址15.192.60.77仍能正常工作。配置dnsmasq使之将sh.ctcims.cn解析为两个IP地址可以解决这个问题,方法如下:
    1. 为sh.ctcims.cn创建hosts映射文件。
# cat > /tmp/hosts.addn <<EOF
15.192.60.71 sh.ctcims.cn
15.192.60.77 sh.ctcims.cn
EOF
    1. 在dnsmasq.conf中添加如下参数:
addn-hosts=/tmp/hosts.addn

注:Asterisk 14以后,chan_pjsip应该可以按照DNS SRV记录进行切换(srvlookup),详见【1】。

  • 2018-05-05
    抓包发现freepbx每几分钟会查询一次SRV记录_sip._udp.sh.ctcims.cn以及sh.ctcims.cn的AAAA记录。在dnsmasq配置中增加指向OutboundProxy域名的SRV记录_sip._udp.sh.ctcims.cn,可减少无效DNS查询,并且不再需要为sh.ctcims.cn设置本地解析;另外,为语音网络的“备选DNS”服务器增加一条server配置,DNS查询会更可靠。改进后的dnsmasq配置如下:
server=/sh.ctcims.cn/15.192.252.188
server=/sh.ctcims.cn/15.192.251.188
srv-host=_sip._udp.sh.ctcims.cn,BAC04.nq.sh.ctcims.cn,5060,0,0

至于无效的AAAA记录查询问题,目前竟然无法通过系统配置解决,即使通过内核参数禁用IPv6也不行,详见【2】和【3】。

  • 2018-05-10
    最近发现电话在通话几分钟后会无故断线。经过比较详尽的测试,我发现Asterisk 13根本不会按照SRV记录的priority/weight进行故障切换。它会选择优先级较高的主机,并按照权重进行轮询,但不会进行故障切换。另外,电信提供SIP接入的两台IMS服务器没有组成共享会话或者单一系统映像的集群——如果一个客户端向一个IP地址注册成功后,再向另一个IP地址注册,就会被拒绝,导致通话断线。综上,如果继续使用FreePBX 13,最好回到正文中的DNS设置,将域名sh.ctcims.cn本地解析为OutboundProxy两个IP地址中的一个,或者为指向两个IP地址的SRV记录设置不同的优先级,如下:
# addn-hosts file for dnsmasq
cat > /tmp/hosts.addn <<EOF
15.192.60.71 s1.nq.sh.ctcims.cn
15.192.60.77 s2.nq.sh.ctcims.cn
EOF

# dnsmasq.conf params for ctcims 
server=/sh.ctcims.cn/15.192.252.188
server=/sh.ctcims.cn/15.192.251.188
addn-hosts=/tmp/hosts.addn
srv-host=_sip._udp.sh.ctcims.cn,s1.nq.sh.ctcims.cn,5060,0,0
srv-host=_sip._udp.sh.ctcims.cn,s2.nq.sh.ctcims.cn,5060,1,0

注:在有如此DNS设置的网络环境下,FreePBX到电信语音网络的pjsip中继可以长期稳定运行。

参考
【1】http://blogs.asterisk.org/2016/04/20/pjsip-dns-support/
【2】https://linux.ioerror.us/2015/07/25/how-to-disable-aaaa-lookups/
【3】https://bugzilla.redhat.com/show_bug.cgi?id=1027452

63 thoughts on “中国电信SIP账号在FreePBX 13中的中继设置”

  1. 博主,你好。我坐标在020广州,按照你写的方法,目前卡在FreePBX 13的配置上,或多或少的研究了2个礼拜,依然一无所获。
    我根据你前文的一篇–《配置EPON家庭网关接入中国电信电话交换IP网络》中,尝试用microsip已经可以呼出呼入成功。
    唯独剩下这个freepbx 13做中继的配置,毫无头绪,还望博主能看到我的评论,不吝赐教!!

    1. 祝贺你,如果MicroSIP能调通,FreePBX应该也一定可以的;加油!呵呵
      我核对了一下配置,我可能漏记一个关键参数:Edit Trunk / pjsip Settings / Advanced / Match (Permit),把它设为局端所有SIP服务器可能所在的CIDR网段(/16应该就可以了);还有一个Qualify Frequency参数,现在我不清楚它缺省值是多少秒,建议改到60以下。

  2. 很高兴那么快能看到博主的回复!
    freepbx13要我填呼出的拨号规则,这个我真心不会,还望可以指点一二!

    1. 估计你现在只有一个中继,拨号规则很简单啊,一个点号”.”就可以了。读读freepbx的文档吧

  3. 博主你好,请忽略那条评论,是我错误输入了URI内容。
    我修正后,我按照你的设置指引进行设置,目前日志上提示
    [2017-05-02 01:11:57] VERBOSE[6255] res_pjsip/pjsip_configuration.c: Contact test/sip:+862037612170@gd.ctcims.cn:5060 is now Unreachable. RTT: 0.000 msec
    以上错误,请问如何调通??

      1. 不知道这样是否算搞定了,我这边电信的SIP代理服务器是bac01.gz.gd.ctcims.cn,这个域名可以正常被解析。
        而gd.ctcims.cn则无法解析,我尝试过,无论在公网下,还是在VOIP专网下(用VOIP专网下的DNS为192.168.200.1去进行解析),也无法解析此域名。因此我在openwrt的DNSMASQ里面强制将gd.ctcims.cn的IP解析为bac01.gz.gd.ctcims.cn的IP。
        IP为219.137.176.128,不知道这样是否正确。
        博主,未知是否可以方便留下即时通讯的方式?? 我目前搞不定freepbx13的设定,已经搞得头都大了

        1. 两地电信网络结构未必相同,我们的局域网结构也不一样,问题比较复杂,我自己也是琢磨了好久历时一个多星期搞定的,恕不能提供即时技术支持。不过,根据你已提供的信息,如果你多花时间调试,肯定可以在freepbx里连通的。建议你在freepbx或openwrt路由器中抓包分析一下。这几天有时间我倒是可以重新创建Trunk核对一遍本文里的中继设置信息,以确保至少在上海电信范围内信息完整无误。不过,基本上就这些配置信息了。现在我用两个Cisco 7911话机作为分机,效果很好。

          其他具体设置,如分机设置、拨号规则,你还得多读freepbx文档,或者向freepbx社区咨询。

          1. 对配置作了如下变更:
            1. 去掉Contact User
            2. 增加Match(Permit)网段
            3. 增加g729 codec

            已通过重建trunk确认设置完整无误。

          2. 我也是用Cisco 7911话机作为分机,怎么注册不到asterisk. 你的7911是哪个固件? SIP11.8-5-2S?还是9-?
            我只有用TCP能注册,但接不了电话。能发一个CNF文件给我吗?

          3. 我的是 SIP11.9-4-2SR3-1S 在刷的时候也看到加载9-4-2SR2文件了。您可以把你的XML文件的例子给我一个吗?多谢多谢。
            emincn at gmail com 的这个。麻烦啦。

        2. 上海电信话音网络跟Internet隔离开的,分配的竟然是惠普公司IP地址段15.0.0.0/8。既然MicroSIP已经能注册上219.137.176.128,你只需在freepbx里作个DNS查询,确认gd.ctcims.cn解析到219.137.176.128,DNS解析及网络连通性上应该就没有问题了。

          1. 非常感谢博主的新编辑的指引操作,我已经按照你的指引配置好并成功使用了! 非常感谢博主!

  4. 我粘贴一段microsip的日志,看看是否有助于分析问题

    10:32:44.813 sip_endpoint.c .Module “mod-pjsua-log” registered
    10:32:44.813 sip_endpoint.c .Module “mod-tsx-layer” registered
    10:32:44.813 sip_endpoint.c .Module “mod-stateful-util” registered
    10:32:44.813 sip_endpoint.c .Module “mod-ua” registered
    10:32:44.813 sip_endpoint.c .Module “mod-100rel” registered
    10:32:44.813 sip_endpoint.c .Module “mod-pjsua” registered
    10:32:44.813 sip_endpoint.c .Module “mod-invite” registered
    10:32:44.816 wmme_dev.c ..WMME found 3 devices:
    10:32:44.816 wmme_dev.c .. dev_id 0: Wave mapper (in=2, out=2)
    10:32:44.816 wmme_dev.c .. dev_id 1: 麦克风 (Realtek High Definition (in=2, out=0)
    10:32:44.816 wmme_dev.c .. dev_id 2: Skyworth UHD-4 (2- NVIDIA High (in=0, out=2)
    10:32:44.816 wmme_dev.c ..WMME initialized
    10:32:44.816 pjlib ..select() I/O Queue created (0154E874)
    10:32:44.816 silk.c ..Init silk
    10:32:44.816 silk.c ..Init silk > DONE
    10:32:44.816 silk.c ..silk enum codecs
    10:32:44.816 silk.c ..silk add codecs
    10:32:44.816 silk.c ..Add codec 24000
    10:32:44.816 silk.c ..silk add codecs
    10:32:44.816 silk.c ..Add codec 16000
    10:32:44.816 silk.c ..silk add codecs
    10:32:44.816 silk.c ..Add codec 12000
    10:32:44.816 silk.c ..silk add codecs
    10:32:44.816 silk.c ..Add codec 8000
    10:32:44.816 pj_opus.c ..Init opus
    10:32:44.816 pj_opus.c ..Init opus > DONE
    10:32:44.816 pj_opus.c ..opus enum codecs
    10:32:44.816 sip_endpoint.c ..Module “mod-opus-sdp-rewriter” registered
    10:32:44.816 conference.c ..Creating conference bridge with 254 ports
    10:32:44.816 Master/sound ..Using delay buffer with WSOLA.
    10:32:44.818 pjsua_vid.c ..Initializing video subsystem..
    10:32:44.818 ffmpeg_vid_cod …Cannot find H261 encoder in ffmpeg library
    10:32:44.818 ffmpeg_vid_cod …Cannot find H261 decoder in ffmpeg library
    10:32:44.818 pj_vpx.c …Init vpx codec
    10:32:44.818 pj_vpx.c …Enum codecs…
    10:32:44.822 dshow_dev.c …Windows found no video input devices
    10:32:44.822 dshow_dev.c …DShow has 0 devices:
    10:32:44.827 sdl_dev.c …SDL 1.3 initialized
    10:32:44.827 colorbar_dev.c …Colorbar video src initialized with 2 device(s):
    10:32:44.827 colorbar_dev.c … 0: Colorbar generator
    10:32:44.827 colorbar_dev.c … 1: Colorbar-active
    10:32:44.827 sip_endpoint.c .Module “mod-evsub” registered
    10:32:44.827 sip_endpoint.c .Module “mod-presence” registered
    10:32:44.827 evsub.c .Event pkg “presence” registered by mod-presence
    10:32:44.827 sip_endpoint.c .Module “mod-mwi” registered
    10:32:44.827 evsub.c .Event pkg “message-summary” registered by mod-mwi
    10:32:44.827 sip_endpoint.c .Module “mod-refer” registered
    10:32:44.827 evsub.c .Event pkg “refer” registered by mod-refer
    10:32:44.827 sip_endpoint.c .Module “mod-pjsua-pres” registered
    10:32:44.827 sip_endpoint.c .Module “mod-pjsua-im” registered
    10:32:44.827 sip_endpoint.c .Module “mod-pjsua-options” registered
    10:32:44.827 pjsua_core.c .1 SIP worker threads created
    10:32:44.827 pjsua_core.c .pjsua version 2.6 for win32-6.2/i386/msvc-15.0 initialized
    10:32:44.827 pjsua_core.c .PJSUA state changed: CREATED –> INIT
    10:32:44.827 pjsua_core.c PJSUA state changed: INIT –> STARTING
    10:32:44.827 sip_endpoint.c .Module “mod-unsolicited-mwi” registered
    10:32:44.827 pjsua_core.c .PJSUA state changed: STARTING –> RUNNING
    10:32:44.828 silk.c silk default attr
    10:32:44.828 silk.c silk default attr
    10:32:44.828 silk.c silk default attr
    10:32:44.828 silk.c silk default attr
    10:32:44.830 pjsua_core.c SIP UDP socket reachable at 192.168.50.7:63994
    10:32:44.830 udp01523F68 SIP UDP transport started, published address is 192.168.50.7:63994
    10:32:44.832 tcptp:2505 SIP TCP listener ready for incoming connections at 192.168.50.7:2505
    10:32:44.834 tlstp:2506 SIP TLS listener is ready for incoming connections at 192.168.50.7:2506
    10:32:44.834 pjsua_acc.c Adding account: id=
    10:32:44.835 pjsua_acc.c .Account added with id 0
    10:32:44.835 pjsua_acc.c .Acc 0: setting registration..
    10:32:44.835 endpoint ..Request msg REGISTER/cseq=26747 (tdta0152BBA8) created.
    10:32:44.835 tsx0152CC14 …Transaction created for Request msg REGISTER/cseq=26748 (tdta0152BBA8)
    10:32:44.835 tsx0152CC14 ..Sending Request msg REGISTER/cseq=26748 (tdta0152BBA8) in state Null
    10:32:44.835 sip_resolve.c …Target ‘219.137.176.128:0’ type=Unspecified resolved to ‘219.137.176.128:5060’ type=UDP (UDP transport)
    10:32:44.835 pjsua_core.c …TX 573 bytes Request msg REGISTER/cseq=26748 (tdta0152BBA8) to UDP 219.137.176.128:5060:
    REGISTER sip:gd.ctcims.cn SIP/2.0

    Via: SIP/2.0/UDP 192.168.50.7:63994;rport;branch=z9hG4bKPj1af244a6d82f456da22934bb35288332

    Route:

    Max-Forwards: 70

    From: ;tag=14165e8eae0e491aae36d79d25ab5da9

    To:

    Call-ID: 266faef82a90470c94d7c6b71cbaeb8a

    CSeq: 26748 REGISTER

    User-Agent: MicroSIP/3.15.3

    Contact:

    Expires: 300

    Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS

    Content-Length: 0

    –end msg–
    10:32:44.835 tsx0152CC14 …State changed from Null to Calling, event=TX_MSG
    10:32:44.835 pjsua_acc.c ..Acc 0: Registration sent
    10:32:44.835 pjsua_acc.c Acc 0: setting online status to 1..
    10:32:44.895 sip_endpoint.c !Processing incoming message: Response msg 423/REGISTER/cseq=26748 (rdata01528844)
    10:32:44.895 pjsua_core.c .RX 501 bytes Response msg 423/REGISTER/cseq=26748 (rdata01528844) from UDP 219.137.176.128:5060:
    SIP/2.0 423 Interval Too Brief

    Via: SIP/2.0/UDP 192.168.50.7:63994;received=192.168.50.7;rport=63994;branch=z9hG4bKPj1af244a6d82f456da22934bb35288332

    To: ;tag=ztesipNk5lI0FL6VGC*3-3-16648*daa.3

    From: ;tag=14165e8eae0e491aae36d79d25ab5da9

    Call-ID: 266faef82a90470c94d7c6b71cbaeb8a

    CSeq: 26748 REGISTER

    X-ZTE-Cause: “CSCF-3.3.0xBC00161B-0xBC001505-0xBC0015D3-0xBC00151E@scscf04.gd.ctcims.cn”

    Min-Expires: 1800

    Content-Length: 0

    –end msg–
    10:32:44.895 tsx0152CC14 .Incoming Response msg 423/REGISTER/cseq=26748 (rdata01528844) in state Calling
    10:32:44.895 tsx0152CC14 ..State changed from Calling to Completed, event=RX_MSG
    10:32:44.896 endpoint …Request msg REGISTER/cseq=26748 (tdta0152F300) created.
    10:32:44.896 tsx0153036C ….Transaction created for Request msg REGISTER/cseq=26749 (tdta0152F300)
    10:32:44.896 tsx0153036C …Sending Request msg REGISTER/cseq=26749 (tdta0152F300) in state Null
    10:32:44.896 sip_resolve.c ….Target ‘219.137.176.128:0’ type=Unspecified resolved to ‘219.137.176.128:5060’ type=UDP (UDP transport)
    10:32:44.896 pjsua_core.c ….TX 574 bytes Request msg REGISTER/cseq=26749 (tdta0152F300) to UDP 219.137.176.128:5060:
    REGISTER sip:gd.ctcims.cn SIP/2.0

    Via: SIP/2.0/UDP 192.168.50.7:63994;rport;branch=z9hG4bKPj04c1f323ac1c49ed9d7446092e54177f

    Route:

    Max-Forwards: 70

    From: ;tag=10838b74c81b4b49bc1322f8fe82107f

    To:

    Call-ID: 266faef82a90470c94d7c6b71cbaeb8a

    CSeq: 26749 REGISTER

    User-Agent: MicroSIP/3.15.3

    Contact:

    Expires: 1800

    Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS

    Content-Length: 0

    –end msg–
    10:32:44.896 tsx0153036C ….State changed from Null to Calling, event=TX_MSG
    10:32:44.984 sip_endpoint.c Processing incoming message: Response msg 401/REGISTER/cseq=26749 (rdata01528844)
    10:32:44.984 pjsua_core.c .RX 567 bytes Response msg 401/REGISTER/cseq=26749 (rdata01528844) from UDP 219.137.176.128:5060:
    SIP/2.0 401 Unauthorized

    Via: SIP/2.0/UDP 192.168.50.7:63994;received=192.168.50.7;rport=63994;branch=z9hG4bKPj04c1f323ac1c49ed9d7446092e54177f

    To: ;tag=ztesip27CO6h6o0*3-3-16648*daf.3

    From: ;tag=10838b74c81b4b49bc1322f8fe82107f

    Call-ID: 266faef82a90470c94d7c6b71cbaeb8a

    CSeq: 26749 REGISTER

    Content-Length: 0

    WWW-Authenticate: Digest realm=”gd.ctcims.cn”,domain=”sip:scscf04.gd.ctcims.cn”,nonce=”9bae5d773dbf0957a12e0c97736d666f”,opaque=”aW1zLmNvbS5jbg==”,stale=TRUE,algorithm=MD5,qop=”auth”

    –end msg–
    10:32:44.984 tsx0153036C .Incoming Response msg 401/REGISTER/cseq=26749 (rdata01528844) in state Calling
    10:32:44.984 tsx0153036C ..State changed from Calling to Completed, event=RX_MSG
    10:32:44.985 tsx01532EC4 ….Transaction created for Request msg REGISTER/cseq=26750 (tdta0152F300)
    10:32:44.985 tsx01532EC4 …Sending Request msg REGISTER/cseq=26750 (tdta0152F300) in state Null
    10:32:44.985 endpoint ….Request msg REGISTER/cseq=26750 (tdta0152F300): skipping target resolution because address is already set
    10:32:44.985 pjsua_core.c ….TX 876 bytes Request msg REGISTER/cseq=26750 (tdta0152F300) to UDP 219.137.176.128:5060:
    REGISTER sip:gd.ctcims.cn SIP/2.0

    Via: SIP/2.0/UDP 192.168.50.7:63994;rport;branch=z9hG4bKPj5be701ce71d84352a2afd781693275c6

    Route:

    Max-Forwards: 70

    From: ;tag=10838b74c81b4b49bc1322f8fe82107f

    To:

    Call-ID: 266faef82a90470c94d7c6b71cbaeb8a

    CSeq: 26750 REGISTER

    User-Agent: MicroSIP/3.15.3

    Contact:

    Expires: 1800

    Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, MESSAGE, OPTIONS

    Authorization: Digest username=”+862037612170@gd.ctcims.cn”, realm=”gd.ctcims.cn”, nonce=”9bae5d773dbf0957a12e0c97736d666f”, uri=”sip:gd.ctcims.cn”, response=”1359ce93b333c19aace6529b3fc99e64″, algorithm=MD5, cnonce=”b1ad16da92514bcaa72d53a2b52e0a6f”, opaque=”aW1zLmNvbS5jbg==”, qop=auth, nc=00000001

    Content-Length: 0

    –end msg–
    10:32:44.985 tsx01532EC4 ….State changed from Null to Calling, event=TX_MSG
    10:32:45.075 sip_endpoint.c Processing incoming message: Response msg 200/REGISTER/cseq=26750 (rdata01528844)
    10:32:45.075 pjsua_core.c .RX 747 bytes Response msg 200/REGISTER/cseq=26750 (rdata01528844) from UDP 219.137.176.128:5060:
    SIP/2.0 200 OK

    Via: SIP/2.0/UDP 192.168.50.7:63994;received=192.168.50.7;rport=63994;branch=z9hG4bKPj5be701ce71d84352a2afd781693275c6

    To: ;tag=ztesipuBtX2SQqSHu_vE15_O*3-3-16648*dba.3

    From: ;tag=10838b74c81b4b49bc1322f8fe82107f

    Call-ID: 266faef82a90470c94d7c6b71cbaeb8a

    CSeq: 26750 REGISTER

    Contact: ;expires=300

    P-Associated-URI:

    P-Associated-URI:

    Date: Tue, 02 May 2017 02:32:39 GMT

    Authentication-Info: nextnonce=”3d510648940e4c12d7d95bb5d04b2954″,qop=auth,rspauth=”2b296868aae622ed91d44c81d8cfb9b8″,cnonce=”b1ad16da92514bcaa72d53a2b52e0a6f”,nc=00000001

    Content-Length: 0

    –end msg–
    10:32:45.075 tsx01532EC4 .Incoming Response msg 200/REGISTER/cseq=26750 (rdata01528844) in state Calling
    10:32:45.076 tsx01532EC4 ..State changed from Calling to Completed, event=RX_MSG
    10:32:45.076 pjsua_acc.c ….SIP outbound status for acc 0 is not active
    10:32:45.076 pjsua_acc.c ….: registration success, status=200 (OK), will re-register in 300 seconds
    10:32:45.076 pjsua_acc.c ….Keep-alive timer started for acc 0, destination:219.137.176.128:5060, interval:15s
    10:32:49.896 tsx0152CC14 Timeout timer event
    10:32:49.896 tsx0152CC14 .State changed from Completed to Terminated, event=TIMER
    10:32:49.896 tsx0152CC14 Timeout timer event
    10:32:49.896 tsx0152CC14 .State changed from Terminated to Destroyed, event=TIMER
    10:32:49.896 tdta0152BBA8 ..Destroying txdata Request msg REGISTER/cseq=26748 (tdta0152BBA8)
    10:32:49.896 tsx0152CC14 Transaction destroyed!
    10:32:49.986 tsx0153036C Timeout timer event
    10:32:49.986 tsx0153036C .State changed from Completed to Terminated, event=TIMER
    10:32:49.986 tsx0153036C Timeout timer event
    10:32:49.986 tsx0153036C .State changed from Terminated to Destroyed, event=TIMER
    10:32:49.986 tsx0153036C Transaction destroyed!
    10:32:50.076 tsx01532EC4 Timeout timer event
    10:32:50.076 tsx01532EC4 .State changed from Completed to Terminated, event=TIMER
    10:32:50.076 tsx01532EC4 Timeout timer event
    10:32:50.076 tsx01532EC4 .State changed from Terminated to Destroyed, event=TIMER
    10:32:50.076 tdta0152F300 ..Destroying txdata Request msg REGISTER/cseq=26750 (tdta0152F300)
    10:32:50.076 tsx01532EC4 Transaction destroyed!
    10:33:00.076 pjsua_acc.c Sending 2 bytes keep-alive packet for acc 0 to 219.137.176.128:5060
    10:33:00.076 tdta0152BBA8 Destroying txdata raw

  5. 我也是上海电信的,但好像下载不到配置密码,能否留个联系方式请教一下。

    谢谢

        1. 光猫型号/版本不同吧。我听说过上海贝尔生产的有些光猫不允许useradmin下载backupsettings.conf。你试过telecomadmin登录吗?

  6. 请问下我用的raspbx(一个基于树莓派的freepbx)其自带了chan_sip,因为电信的用户名中有@,导致和其规定的register String冲突(user:pwd @ host),想请问博主有没有试过chan_sip,还是必须安装pjsip

    1. chan_sip当初我试过,打普通号码好像没问题,打10000号热线电话没有声音。由于基于pjsip的MicroSIP程序可以完美运行,后来就定下来用pjsip。我记录的chan_sip配置如下:
      Peer Details:

      type=peer
      nat=yes
      host=15.192.60.71
      outboundproxy=15.192.60.71
      fromdomain=sh.ctcims.cn
      fromuser=+8621XXXXXXXX
      username=+8621XXXXXXXX@sh.ctcims.cn
      secret=XXXXXX
      insecure=port,invite
      context=from-trunk
  7. 你好,sh.ctcims.cn这个域名是ping不出来的。我用sip代理服务器地址BAC09.jd.sh.ctcims.cn解析出来的IP地址有2个,15.192.60.86、15.192.60.82。请问你是通过什么办法拿到15.192.60.71这个IP的?我尝试过只有将sh.ctcims.cn强制解析为15.192.60.71才可以正常拨打电话,如果解析为15.192.60.86或者15.192.60.82会报proxy authentication required无法拨打电话。我通过各种手段都没有办法获得正确的IP 15.192.60.71。所以很好奇你是怎么拿到这个IP的

    1. 我家光猫里配置的SIP代理服务器的域名是BAC04.nq.sh.ctcims.cn。它们不对ping报文作出响应的。

      1. 我在光猫子把VLAN46 改成桥接,现在在树莓派上能拿到VOIP DHCP的IP地址,也能拿到网关地址,解析BAC11.DQ.SH.CTCIMS.CN 没问题。
        在树莓派上ASTERISK出现下面报错。

        Unable to find authenticate header in challenge
        不知道怎么搞了

        1. 你试试在树莓派的/etc/hosts里添加一行:

          15.192.60.136 sh.ctcims.cn

          正文提到在freepbx 13中设置outboud proxy不管用,须给sh.ctcims.cn设置本地DNS解析,解析为outbound proxy的IP地址之一。

  8. 语音+上网用的一个口吗?绑定了vlan的吗?我目前从光猫接到路由器,路由器再接的freepbx,这样,freepbx才有外网,如果直接在freepbx插线上到光猫,虽然可以接入语音,但是没有外网了?请问怎么把语音+上网口接入到路由器上?

    1. 我是通过在路由器上设置基于源地址的策略路由实现freepbx同时访问Internet和电信语音网络的。上海电信语音网络配置的是已经分配给其他单位的IPv4公网地址,直接在路由器上设置静态路由不是个好主意。

      1. 是在路由器上设置 VLAN 吗?我也是在raspberry上跑的FREEPBX 和ASTERISK; raspberry无线接入 Asus MERLIN 路由器

          1. 我家的网络是,光猫–> ASUS AC88U (Merlin) (IPTV, 网络从路由器桥接出来,GITHUB上有个脚本,路由上改DNS,OPTION 125什么的,VLAN设置)
            本来普通电话机接在光猫上,但最近我把电话接口估计静电打坏了。
            我也在上海电信的光猫上设置了 VLAN46, 用电脑接光猫LAN口,在MICROSIP上能打电话了。

            但我把RASPBERRY也接在光猫LAN上,
            [2019-02-24 20:11:04] WARNING[2202]: res_pjsip_outbound_registration.c:796 schedule_retry: No response received from ‘sip:sh.ctcims.cn:5060’ on registration attempt to ‘sip:+86216xxxxxx@sh.ctcims.cn:5060′, retrying in ’60’
            .
            如果接在路由器LAN口上,按照你设置的DNS
            sh.ctcims.cn创建hosts映射文件。
            # cat > /tmp/hosts.addn <<EOF
            15.192.60.71 sh.ctcims.cn
            15.192.60.77 sh.ctcims.cn
            EOF
            也会出错
            connected to asterisk 16.2.0 currently running on raspberrypi (pid = 629) [2019-02-24 04:06:33] error[1033]: res_pjsip_outbound_authenticator_digest.c:128 digest_create_request_with_auth: host: '15.192.60.71:5060': unable to find authenticate header in challenge

            请问是不是下面的设置没设置的原因? 我不知道写在哪?
            server=/sh.ctcims.cn/15.192.252.188
            server=/sh.ctcims.cn/15.192.251.188
            srv-host=_sip._udp.sh.ctcims.cn,BAC04.nq.sh.ctcims.cn,5060,0,0

          2. 问题复杂,根据你提供的信息我无法确定原因。两点建议:1.确保路由器有到语音网段的路由;2.关闭路由器SIP ALG功能(若启用)。

            另,我这里Outbound Proxy是nq.bac04,你那儿光猫里的缺省配置的不一样的话,IP地址不能照抄我文章里的。

          3. MicroSip log里的信息显示,解析出来的地址是 15.192.60.136
            但FREEPBX, Asterisk 解不出这个地址出来。(我把raspberry pi 接在同样的网口上,光猫LAN口)
            08:42:54.480 sip_resolve.c …DNS resolver not available, target ‘BAC11.dq.sh.ctcims.cn:0’ type=Unspecified will be resolved with getaddrinfo()
            08:43:02.549 sip_resolve.c …Target ‘BAC11.dq.sh.ctcims.cn:0’ type=Unspecified resolved to ‘15.192.60.136:5060’ type=UDP (UDP transport)
            08:43:02.550 sip_resolve.c …Target ‘BAC11.dq.sh.ctcims.cn:0’ type=Unspecified resolved to ‘15.192.60.132:5060’ type=UDP (UDP transport)

            请问,我要在光猫上设置什么DNSMASQ吗?

  9. 你好,我是北京联通的用户,看过你之前的文章,并且已经成功配置windows的SIP客户端MicroSIP,可以接听和拨打电话。
    已经配置好CentOS6.9(32位)+Asterisk12+FreePBX13,但中继不成功。
    其他参数均核对无误,其实北京联通SIP参数很少,在MicroSIP中,只需要
    SIP服务器:bj.ims.chinaunicom.cn
    SIP代理:10.203.253.225
    账户:+8610xxxxxxxx@bj.ims.chinaunicom.cn
    域:bj.ims.chinaunicom.cn
    密码:xxx
    这些信息。
    其他信息都已经在中继设置中找到,除了SIP代理这一项。请问我的SIP代理是这个IP:10.203.253.225,要填写到中继设置的哪里?
    谢谢

  10. 你好,我是北京联通的用户,看过你之前的文章,并且已经成功配置windows的SIP客户端MicroSIP,可以接听和拨打电话。
    已经配置好CentOS6.9(32位)+Asterisk12+FreePBX13,但中继不成功。
    其他参数均核对无误,其实北京联通SIP参数很少,在MicroSIP中,只需要
    SIP服务器:bj.ims.chinaunicom.cn
    SIP代理:10.203.253.225
    账户:+8610xxxxxxxx@bj.ims.chinaunicom.cn
    域:bj.ims.chinaunicom.cn
    密码:xxx
    这些信息。
    其他信息都已经在中继设置中找到,除了SIP代理这一项。请问我的SIP代理是这个IP:10.203.253.225,要填写到中继设置的哪里?
    谢谢!

    1. FreePBX 13设置Outbound Proxy好像不管用。我是用dnsmasq将SIP域名直接解析为两个电信SIP Proxy地址,来解决这个问题的。

  11. 你好,我之前按照您指导在树莓派上做成功了,但是最近SD卡坏了配置没了,按照以前的印象配,InBound没有问题,Outbound总是不行,想问问看您Outbound Dial Patterns您是怎么设置的?能分享一下嘛?谢谢!

    1. 我的设置比较复杂。如果你只有一路中继,Dial Pattern用一个点号”.”就可以了。

  12. 您好,我在家庭局域网使用microsip 实验成功,在国外l2tp 拨回家庭局域网,sip代理提示407需要认证,请问一下您是否了解sip代理的认证信息

  13. 使用microsip后,注册可以成功,可以拨出电话,但是接通后没有声音,microsip中既然显示拨号中,而且手机无法拨入,请问哪里还需要设置吗?

    1. 我用microsip测试时毫无障碍,不过我现在用freepbx作PBX,很久没试过microsip了。也许局端服务器设置不完全一样。你可以查一下MicroSIP网站的faq,看看调节参数管不管用。

        1. SIP ALG确实常会造成问题,我当时测试过,启用了就无法通话。但是,在我家光猫里这个选项缺省是关闭的。你家光猫缺省启用的?我有必要更新一下上一篇SIP博客。

          1. 我用的是单口纯光猫,光猫里没有关于语音这部分的配置,需要在自己的路由器上建立vlan46的语音接口,所以电脑上的SIP已经处于nat后面了,路由器上要处理SIP NAT的问题,包括SIP ALG,还有一些UDP端口的映射。我买了一个语音网关接在局域网里,看了一下,里面用的是asterisk,现在基本上解决了电话的接打问题,除了来电显示在模拟电话上显示不出来。

  14. 我是联通用户,目前我已经配上chan_sip了,我配pjsip不成功,请求帮助。我留个电话吧13291826224,请大佬联系一下我,有偿帮助

    1. 我没有时间,抱歉!我配置信息都给出了,就这点。dns问题解决后,运行长期稳定。

    2. 我最终确定的dns配置是这样的:

      # addn-hosts file for dnsmasq
      cat > /tmp/hosts.addn <<EOF
      15.192.60.71 s1.nq.sh.ctcims.cn
      15.192.60.77 s2.nq.sh.ctcims.cn
      EOF

      # dnsmasq.conf params for ctcims
      server=/sh.ctcims.cn/15.192.252.188
      server=/sh.ctcims.cn/15.192.251.188
      addn-hosts=/tmp/hosts.addn
      srv-host=_sip._udp.sh.ctcims.cn,s1.nq.sh.ctcims.cn,5060,0,0
      srv-host=_sip._udp.sh.ctcims.cn,s2.nq.sh.ctcims.cn,5060,1,0

  15. 博主您好,我用光猫测试电信的DNS 192.168.200.1是通的,延迟20ms多吧没有丢包,根据traceroute结果,跃点数超过30也没有跳到DNS,跟traceroute某些大型IDS类似,所以我猜测电信的DNS可能是个自治系统,就是Autonomous system, AS,但是把DNS设置在路由上就ping不通了,同样的设置,用一些语音网关没有问题,非常奇怪,在报文里也发现了一些公网IP地址

    1. 上海电信的话音网络跟公网隔离的,而且分配了不属于他们的公网地址。光纤宽带到运营商服务器的RTT通常在几个毫秒。

      1. 今天用笔记本装了MicroSip,DNS:192.168.200.1是通的,从抓取的包看起来,发了一次DNS请求,bac05.st.gd.ctcims.cn,回包2个IP地址,接着是SIP注册,很流畅就注册完了,后面我把2个地址做了SRV,gd.ctcims.cn在后来的包里没发现解析记录,但也做了219.137.176.128解析,microsip注册、呼叫、被叫都测试过,再根据包内容修改路由(思科CUBE)报文格式,线路切到路由之后起初有几次已经200了,但是N秒掉线,还在修改软参就再也注册不上,再切回microsip又正常,现在的问题还是路由ping不通DNS,非常头疼

          1. 优先级调整过了,思科的好像SRV优先级设置一样也会轮询,不过昨天这个问题已经解决了,现在一直200,DNS不通跟目标地址不通的问题出在路由表上,因为是双线,电信移动共3个号码,必须设置路由,ip route interface type tag,问题就在这里,next-hop是DHCP获取的default-gateway,而不是本地获取的IP,原命令加个dhcp参数解决,现在两个路由器分别连接2个电信账号也可以,希望可以帮到有需要的人,也希望懂思科号码转换规则的大佬可以帮到我^*^

  16. 感谢博主,今天测试已经200了,路由重置设置,DNS也ping通了,只是不太稳定,1-4分钟就重新注册,原因未知,还在努力看debug日志,之前ping不通DNS的问题感觉可能是因为启用了loopback口导致发出包源地址变成loopback导致,或许启用NAT会正常,现在开始折腾分机,思科系统IP折腾久了还算熟悉,语音是个陌生领域,再请教博主是否有移动IMS VOIP接入经验,密码从光猫抄出来正确,路由和microsip一样代码403

  17. 再次咨询博主,拨打长途返回487,拆线,找了很多资料都没有提及,或者没有针对性的提出哪个参数问题,invite修改为tel格式也不行,请教博主是否遇到过,另外中移动ims已经可以注册,需要修改register头域,SIP-Req-URI从ims.gd.chinamobile.com:5060修改为ims.gd.chinamobile.com,invite头域也一样不能带端口,否则403

Leave a Reply to wenzhuo Cancel reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.