用SPA3000 + FreePBX 可以接但不能撥, 怎麼回事?

我現在用一台 Linksys SPA3000 + FreePBX
目前打進來時會先經過 IVR, 然後我撥分機100, 我電腦上的 softphone 可以正確接聽
但是呢, 我如果用 softphone 撥號, 一撥出去就會立刻斷線

而且我一直不懂一件事, 在 DID Number 這裡
包含所有要對應到的地方, 例如在 SPA3000 裡的 Dial Plan 2
我究竟是要設定的號碼要不要含區碼?

假設我的電話是 02-29031234
那我 DID Number 是設 0229031234 還是 29031234?
在 SPA3000 裡的 Dial Plan 2: 是 (S0<:0229031234>) 還是 (S0<:29031234>)?

奇怪的是, 我不管加不加區碼, 我測試的結果都一樣可以接, 但撥不出去
我一撥, 在 Asterisk 的 log 是這樣的:

[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: -- Executing [s@macro-dialout-trunk:19] ExecIf("SIP/100-0000000a", "1?Set(CONNECTEDLINE(num,i)=29015678)") in new stack
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: -- Executing [s@macro-dialout-trunk:20] ExecIf("SIP/100-0000000a", "1?Set(CONNECTEDLINE(name,i)=CID:29031234)") in new stack
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: -- Executing [s@macro-dialout-trunk:21] GotoIf("SIP/100-0000000a", "0?customtrunk") in new stack
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: -- Executing [s@macro-dialout-trunk:22] Dial("SIP/100-0000000a", "SIP/pstn/29015678,300,Tt") in new stack
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] netsock2.c: == Using SIP RTP TOS bits 184
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] netsock2.c: == Using SIP RTP CoS mark 5
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] app_dial.c: -- Called SIP/pstn/29015678
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] app_dial.c: -- SIP/pstn-0000000b is ringing
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] app_dial.c: -- SIP/pstn-0000000b answered SIP/100-0000000a
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: -- Executing [h@macro-dialout-trunk:1] Macro("SIP/100-0000000a", "hangupcall,") in new stack
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: -- Executing [s@macro-hangupcall:1] GotoIf("SIP/100-0000000a", "1?theend") in new stack
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: -- Goto (macro-hangupcall,s,3)
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: -- Executing [s@macro-hangupcall:3] ExecIf("SIP/100-0000000a", "0?Set(CDR(recordingfile)=)") in new stack
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: -- Executing [s@macro-hangupcall:4] Hangup("SIP/100-0000000a", "") in new stack
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] app_macro.c: == Spawn extension (macro-hangupcall, s, 4) exited non-zero on 'SIP/100-0000000a' in macro 'hangupcall'
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: == Spawn extension (macro-dialout-trunk, h, 1) exited non-zero on 'SIP/100-0000000a'
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] app_macro.c: == Spawn extension (macro-dialout-trunk, s, 22) exited non-zero on 'SIP/100-0000000a' in macro 'dialout-trunk'
[2013-10-04 00:49:54] VERBOSE[18031][C-00000005] pbx.c: == Spawn extension (from-internal, 29015678, 5) exited non-zero on 'SIP/100-0000000a'

然後 SPA3000 的 syslog 如下:
Oct 4 00:49:54 192.168.1.145 [1: 0]AUD ALLOC CALL (port=16482)
Oct 4 00:49:54 192.168.1.145 [1: 0]RTP Rx Up
Oct 4 00:49:54 192.168.1.145 AUD: Stop PSTN Tone
Oct 4 00:49:54 192.168.1.145 CC: Connected
Oct 4 00:49:54 192.168.1.145 AUD: Stop PSTN Tone
Oct 4 00:49:54 192.168.1.145 [1: 0]ENC INIT 0
Oct 4 00:49:54 192.168.1.145 [1: 0]RTP Tx Up (pt=0->c0a80194:18066)
Oct 4 00:49:54 192.168.1.145 [1: 0]RTCP Tx Up
Oct 4 00:49:54 192.168.1.145 FXO: Off Hook
Oct 4 00:49:54 192.168.1.145 FXO: Stop CNDD
Oct 4 00:49:54 192.168.1.145 [1: 0]RTP Rx 1st PKT @16482(2)
Oct 4 00:49:54 192.168.1.145 [1: 0]DEC INIT 0
Oct 4 00:49:54 192.168.1.145 FXO: CPC
Oct 4 00:49:54 192.168.1.145 AUD: Stop PSTN Tone
Oct 4 00:49:54 192.168.1.145 FXO: On Hook
Oct 4 00:49:54 192.168.1.145 FXO: Stop CNDD
Oct 4 00:49:54 192.168.1.145 AUD: Stop PSTN Tone
Oct 4 00:49:54 192.168.1.145 [1: 0]AUD Rel Call
Oct 4 00:49:58 192.168.1.145 [0: 5060]->192.168.1.148:5060
Oct 4 00:49:58 192.168.1.145 [0: 5060]->192.168.1.148:5060

我看不出來是什麼問題? 我只知道可能問題出在 SPA3000 這裡, 沒有正確撥出去就掛掉了的樣子?
不知道是否有人對此有經驗?
感謝大家, 我是IPPBX領域的新手, 搞2,3天了還不太明白
謝謝各位
2013-10-04 1:06 發佈
文章關鍵字 SPA3000 FreePBX

blp330 wrote:
我現在用一台 Lin...(恕刪)

提示幾個重點:

1. 那個號碼加不加區號都可以,重點是所設的號碼在 SPA3000 與 FreePBX 上兩者必須相同,所以,即使你設為 12345678 也行。

2. 那個號碼的相關設定,只作為撥入用途,如果撥出有問題,與這號碼以及相關的設定是無關的。

-- IPOX: 0702500267 iNum: +883 510008099702
謝謝您的說明

那想請教一下, 我的問題是不是可能出在 SPA3000 裡 PSTN Line 的設定上?
就我現在的了解, 當我撥號出去時, 例如由 Extension 100 撥出
是由 softphone -> Freepbx (Outbound Route -> SIP Trunk 的 Outgoing Settings) -> SPA3000
而 Outbound Route 裡十分單純的只是設定 Trunk Sequence for Matched Routes 設為 PSTN 的 SIP Trunk
然後我的 Dial Patterns 是:
NXXXXXXX

至於 SIP Trunk (Outbound CallerID: "PSTN Caller"<29031234>) 的 Outgoing Settings 如下:
disallow=all
allow=ulaw
canreinvite=no
context=from-trunk
dtmfmode=rfc2833
host=192.168.1.145
incominglimit=1
nat=yes
port=5061
qualify=yes
secret=XXXXXXXX
type=friend
username=pstn

感覺起來好像不是在 Freepbx 這段有錯, 因為好像有串到 SPA3000 上(不然就不會有LOG了)
但一撥了就被掛掉
所以我在猜是 PSTN Line 的設定有問題?

另外, 我撥出去的時候應該怎麼撥啊? 一般電話拿起來是撥29015678, 區碼我也不必加
但如果用 Freepbx -> SPA3000, 我撥的時候要不要加區碼?
也是直接撥29015678嗎?

謝謝
剛看了一下,

一個port 設5061 ,有一個port設 5060,

port要一樣!

blp330 wrote:
謝謝您的說明那想請教...(恕刪)


將 SIP Trunk 的 Trunk Name 設定與 username 相同試試

撥出方式要看你的 outbound route 如何設定
-- IPOX: 0702500267 iNum: +883 510008099702
感謝各位的幫忙

後來我把問題解決了, 我直接把問題拿去問當時賣我 SPA3000 的賣家
他叫我看看 PSTN Disconnect Reason 是什麼
我看了一下是 CPC Signal
接著他要我把 Min CPC Duration 調大一倍
問題就解決了

我是外行, 他是和我解釋說, 可能是因為我們這裡的線路品質不好
所以會瞬斷, 一般是不必調就可以

總之問題是解決了
謝謝各位

我現在反而有另一個問題是, 我撥到電話後轉IVR然後撥100分機
奇怪的是, 有時候 X-Lite 還有我平版上的 Lin-phone 會響, 有時候則不會
不懂 (不過好像是同時有2個裝置用同一個帳號時才會這樣...不是會同時響啊?)

blp330 wrote:
感謝各位的幫忙後來我...(恕刪)


你不應該用兩個不同裝置用同一個分機註冊,替代方式可以用 followme 或 ring group。
-- IPOX: 0702500267 iNum: +883 510008099702
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?