我无法找到执行以下操作的确切文档:
我有一个 SIP 帐户。我希望位于美国某处的 VPS 上的 Asterisk 服务器能够接受 SIP 帐户的凭证。当有人拨打我的 SIP 帐户电话号码 111-222-3333 分机 55 时,它应该将呼叫重新路由到位于加拿大某处的我的手机上。
有人能告诉我怎么做吗?或者给我参考一下相关文档?
答案1
你基本上应该做两件事:
- 设置 Asterisk 服务器以允许正确注册您的 SIP 帐户。这可以通过在 /etc/asterisk/sip.conf 中配置 SIP 凭证来完成
- 配置 Asterisk 拨号方案,将分机 55 映射为手机的拨出。此操作在 /etc/asterisk/extension.conf 中完成
您可以在 voip-info.org 网站上找到有关如何执行此操作的大量文档:配置文件和扩展配置文件)这个其他关联似乎是您所需要的一个很好的例子。
这是一个看起来可能像这样的小例子:
配置文件
[mysipprovider]
type=peer
secret=password
username=2345
host=sipserver.mysipprovider.com
fromuser=2345
canreinvite=no
insecure=very
qualify=yes
nat=yes
context=from-mysipprovider ; this section will be defined in extensions.conf
在 extension.conf 中:
[from-mysipprovider]
exten => 55,1,Verbose(1|Echo test application)
exten => 55,n,Dial(SIP/mysipprovider/5551234); Here is the outbound call, the exact dialstring depends on outgoing provider and channeltype
exten => 55,n,Hangup()
答案2
好的,我已开始工作。这正是我的 sip.conf 和 extensions.conf 的样子,我保留了所有其他配置文件
sip.conf - a) 将 [用户名]、[密码]、[主机] 和 [端口] 替换为适当的值
b) 因为我的 SIP 提供商非常挑剔,我不得不尝试各种 [host] 值,有时 register => 行中的 [host] 与 host= 行中的 [host] 值不同(但对其他人来说这可能不是问题)
[general]
register => [username]:[password]@[host]:[port]
context=default
[mysipprovider]
type=friend
secret=pass
username=[username]
host=host
port=5070
fromuser=[username]
canreinvite=no
;insecure=very
qualify=2000
dtmfmode=inband
nat=yes
扩展配置文件
[default]
exten => s,1,Answer
exten => s,n,Wait(1)
exten => s,n,Playback(vm-extension)
exten => s,n,WaitExten()
exten => 55,1,Dial(SIP/mysipacc/3332221111) ; extension 55 calls phone 3332221111
exten => 55,n,Hangup
exten => 66,1,Dial(SIP/mysipacc/1112225555) ; extension 66 calls phone 1112225555
exten => 66,n,Hangup