星号:将Asterisk系统连接到SIP提供商

时间:2014-05-04 17:22:13

标签: asterisk voip

设定:
Centos 6
操作系统:Linux CentOS 64位 CPU:Intel®Core™i7-4核

Asterisk 11
libpri 1.4
dahdi 2.9.1

<小时/> 我想通过星号向我的SIP提供商发送电话。我想使用软电话拨打电话,当我在软电话上拨打电话时,需要通过我的星号服务器然后转到SIP提供商。目前,当我拨打一个外拨电话时,它会产生“无法验证”,状态为“收件人”通知。

我的问题很简单:因为我的软电话是从“User1”调用的(如下所示)我需要在sip.conf和extensions.conf文件中编写什么才能让SIP提供商拨打电话我吗?

我的想法:
我觉得我错过了这个过程的一部分,比如User1如何设置来处理拨出电话......

查看我目前如何设置这两个文件的概述:

备注:
- 此帖子的所有用户名和密码均已删除。
- sip.us是sip提供商

sip.conf:

[general]
transport=udp
register => username:password@gw1.sip.us

[myprovider]

type=peer
insecure=port,invite
host=gw1.sip.us
port=5060
dtmfmode=rfc2833
canrevinvite=no
disallow=all
allow=ulaw
qualify=yes
qualifyfreq=30
nat=force_rport,comedia
trustrpid=yes
fromdomain=gw1.sip.us
username=*****
secret=*****
context=from-trunk
rfc2833compensate=yes
session-timers=refuse


[friends_internal](!)
type=friend
host=dynamic
context=users
disallow=all
allow=ulaw
allow=alaw

[user1](friends_internal)
secret=****
[user2](friends_internal)
secret=****

现在是extensions.conf:

...
...    
exten=>_1NXXNXXXXXX,1,Dial(SIP/${EXTEN}@gw1.sip.us)

[users]
exten=>6001,1,Dial(SIP/user1,20)
exten=>6002,1,Dial(SIP/user2,20)

现在当我尝试使用软电话拨打电话时,星号cli输出:

  == Using SIP RTP CoS mark 5
  -- Executing [12015550155@users:1] Dial("SIP/user1-0000001e",
  "SIP/12015550155@gw1.sip.us") in new stack
  == Using SIP RTP CoS mark 5
  -- Called SIP/12015550155@gw1.sip.us
  [May  4 10:02:13] NOTICE[28935][C-0000002a]: chan_sip.c:23094 
  handle_response_invite:    Failed to authenticate on INVITE to 
  '<sip:user1@501.62.174.2>;tag=as798e5009'
  -- SIP/gw1.sip.us-0000001f is circuit-busy
  == Everyone is busy/congested at this time (1:0/1/0)
  -- Auto fallthrough, channel 'SIP/user1-0000001e' status is 'CONGESTION'

asterisk cli&gt; sip show registery

Host               dnsmgr Username       Refresh State      Reg.Time                 
gw1.sip.us:5060    N      username       105     Registered  Sun, 04 May 2014 10:28:05
1 SIP registrations.

asterisk cli&gt; sip show peers

Name/username     Host     Dyn Forcerport Comedia  ACL Port  Status                     
user1/user1       68.198.. D   Auto (No)   No          55461 Unmonitored                                  
user2/user2         68.198..   D   Auto (No)   No      55461 Unmonitored                                  
myprovider/username 65.254.44.194 Yes     Yes           5060 OK (42 ms)             

2 个答案:

答案 0 :(得分:2)

您的DialPlan在配置文件中显示不正确。

第一步更改您的寄存器字符串,如:

register => username:password@gw1.sip.us\Myprovider

然后在extensions.conf中添加拨出和拨入的拨号方案,并将这些拨号方案包含在用户上下文中。像:

例如:您使用6XXX系列拨打提供商:

[outgoing]

exten => _6XXX,1,Dial(SIP/Myprovider/${EXTEN:0})
exten => _6XXX,2,Hangup

和来电

[incoming]
include = users  ; this will go into your local context and dial your extensions

并在用户上下文中添加传出上下文,如

[users]
include = outgoing

我希望这会对你有所帮助:)。

答案 1 :(得分:1)

尝试将@ gw1.sip.us更改为@myprovider并查看是否有任何更改。这将强制星号使用配置的trunk [myprovider],而不是直接将调用直接转发给gw.sip.us。

希望这有帮助。