我计划实施 Asterisk SIP 服务器来测试 eMTA 呼叫。我没有 eMTA,所以我决定从 Linux Soft 客户端开始,然后,当我有 eMTA 并可以物理访问设备时,再使用 eMTA。我在 Ubuntu 20.4 LTS 上安装了 Asterisk,并按照此手册操作https://ozeki.hu/p_1031-how-to-create-a-sip-account-in-asterisk.html
不幸的是,它不起作用。在控制台上,当我从 101 拨打电话时,我收到以下信息:
Connected to Asterisk GIT-18-9024bb989b currently running on MY-HOST-NAME (pid = 2288)
[Jun 9 18:57:54] NOTICE[2498]: res_pjsip/pjsip_distributor.c:676 log_failed_request: Request 'REGISTER' from '"101" <sip:[email protected]>' failed for 'client.ip.is.here:5060' (callid: a58ff143-2d22-4600-a3f4-c6538bf98ac1) - No matching endpoint found
[Jun 9 18:57:54] NOTICE[2498]: res_pjsip/pjsip_distributor.c:676 log_failed_request: Request 'REGISTER' from '"101" <sip:[email protected]>' failed for 'client.ip.is.here:5060' (callid: a58ff143-2d22-4600-a3f4-c6538bf98ac1) - No matching endpoint found
[Jun 9 18:57:54] NOTICE[2498]: res_pjsip/pjsip_distributor.c:676 log_failed_request: Request 'REGISTER' from '"101" <sip:[email protected]>' failed for 'client.ip.is.here:5060' (callid: a58ff143-2d22-4600-a3f4-c6538bf98ac1) - Failed to authenticate
[Jun 9 18:57:54] NOTICE[2498]: res_pjsip/pjsip_distributor.c:676 log_failed_request: Request 'REGISTER' from '"101" <sip:[email protected]>' failed for 'client.ip.is.here:5060' (callid: 71eb7de3-929d-4afa-b859-56e398ce91ee) - No matching endpoint found
在 users.conf 中添加
[100]
type=friend
username=100
callerid=100
secret=100
context=test
host=dynamic
allow=all
[101]
type=friend
username=101
callerid=101
secret=101
context=test
host=dynamic
allow=all
扩展配置文件
[test]
exten => 100,1,Dial(SIP/100)
exten => 101,1,Dial(SIP/101)
PBX*CLI> sip show peers
Name/username Host Dyn Forcerport Comedia ACL Port Status Description
100/100 (Unspecified) D Auto (No) No 0 Unmonitored
101/101 (Unspecified) D Auto (No) No 0 Unmonitored
2 sip peers [Monitored: 0 online, 0 offline Unmonitored: 0 online, 2 offline]
作为软客户端,我正在使用 jami: 在此处输入图片描述
我做错了什么?老实说,我尝试使用两本采用不同方法的手册,但都没有用。
答案1
你把两样东西混在一起了。Asterisk 中现在有两个兼容 SIP 的通道驱动程序:
- chan_sip:旧的,其技术标识符为 SIP/
- chan_pjsip:新的 pjproject,其技术标识符为 PJSIP/
您的配置(users.conf 和 extensions.conf)适用于 chan_sip,但您的日志显示 chan_pjsip。
明智的做法是决定要使用哪一个,并通过在 modules.conf 中以 noload => chan_xxxx.so 为前缀列出它来禁用另一个。