Linksys SPA400 + Asterisk : 有接通訊號,但沒話音

已查看 355 次
跳至第一个未读帖子

Gary

未读,
2008年10月27日 11:57:302008/10/27
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
大家好,

小弟是VoIP新學習者, 請大家多多指教. 近來設置 Asterisk VoIP, 但出現了一些奇怪問題, 想請教一下各界高手, 希望多多指
點.

================================================

現在的設置環境:

Office C :
只放一隻 Asterisk 1.4 VoIP server.
用固定公共 IP 直接放到網上.
已安裝上 g729 codec
core show translation
Translation times between formats (in milliseconds) for one
second of data
Source Format (Rows) Destination Format (Columns)

g723 gsm ulaw alaw g726aal2 adpcm slin lpc10 g729 speex ilbc
g726 g722
g723 - - - - - - - - - -
- - -
gsm - - 2 2 2 2 1 4 7 -
- 2 -
ulaw - 3 - 1 2 2 1 4 7 -
- 2 -
alaw - 3 1 - 2 2 1 4 7 -
- 2 -
g726aal2 - 3 2 2 - 2 1 4 7 -
- 1 -
adpcm - 3 2 2 2 - 1 4 7 -
- 2 -
slin - 2 1 1 1 1 - 3 6 -
- 1 -
lpc10 - 4 3 3 3 3 2 - 8 -
- 3 -
g729 - 3 2 2 2 2 1 4 - -
- 2 -
speex - - - - - - - - - -
- - -
ilbc - - - - - - - - - -
- - -
g726 - 3 2 2 1 2 1 4 7 -
- - -
g722 - - - - - - - - - -
- - -

================================================

Office A : (在香港)
用 Linksys SPA400 接上四條 PSTN 電話線
放在 Router 內的 DMZ
有固定IP, 用dynamic dns登記接上

[spa400a]
type=peer
user=spa400a
dtmfmode=auto
host=abcd01.dyndns.com
canreinvite=no
context=from-trunk
insecure=very
nat=yes
disallow=all
allow=gsm
allow=g729
;allow=ulaw
;allow=alaw

================================================

Office B : (在澳門)
用 Linksys SPA400 接上四條 PSTN 電話線
放在 Router 內的 DMZ
沒有固定IP, 用dynamic dns登記接上

[spa400b]
type=peer
user=spa400b
dtmfmode=auto
host=abcd02.dyndns.com
canreinvite=no
context=from-trunk
insecure=very
nat=yes
disallow=all
allow=ulaw ; 試過不加這個
allow=alaw ; 試過不加這個
allow=gsm
allow=g729

================================================

沒有用上以下 spa400 register, 因為 asterisk 回應是 incorrect password
但 office A 完全正常, 所以之後沒有再用
register = spa...@abcd01.dyndns.com
register = spa...@abcd02.dyndns.com

================================================

測試 dial plan
exten => _09XXXXXXXX,1,Playback(demo-nomatch)
exten => _09XXXXXXXX,2,Dial(SIP/${EXTEN:2}@spa400b)
exten => _09XXXXXXXX,3,Playback(demo-thanks)
exten => _09XXXXXXXX,4,Hangup()
exten => _09XXXXXXXX,103,Congestion(8)
exten => _09XXXXXXXX,104,Hangup()

================================================

現在使用結果:
ok --> User A 用 X-Lite 打電話到 X-lite user B
X-Lite user A --> Asterisk --> X-Lite user B

ok --> 用 X-Lite 經由office A spa400, 打電話到當地本地電話
X-Lite --> Asterisk --> Office A spa400 --> Local A mobile

ok --> 用當地本地電話經由 office A spa400 打電話到 X-Lite user A
Local A --> Office A spa400 --> Asterisk --> X-Lite user A

XX --> 用當地本地電話經由 office A spa400, 打電話到 office B spa400, 再到當地本地電話
Local A --> Office A spa400 --> Asterisk --> Office B spa400
--> Local B mobile

ok --> 用當地本地電話經由 office B spa400, 打電話到 office A spa400, 再到當地本地電話
Local B --> Office B spa400 --> Asterisk --> Office A spa400
--> Local A mobile

ok --> 用當地本地電話經由 office B spa400 打電話到 X-Lite user B
Local B --> Office A spa400 --> Asterisk --> X-Lite user B

XX --> 用 X-Lite 經由office B spa400, 打電話到當地本地電話
X-Lite --> Asterisk --> Office B spa400 --> Local B mobile

================================================

經以上測試, 大部份可以使用, 只是如電話沒辦法經 Office B SPA400 完全接通.
用上測試 Dial Plan 做例子:

1. 可以播出Playback(demo-nomatch)
2. 打電話到手提上, 手提電話亦出現來電鈴聲
可是接手機之後, 相方亦聽不見對方話音
十多秒後, 會自動斷線, asterisk 播出 user not available......
3. 其後正常播出Playback(demo-thanks)

表面看來是Asterisk 可以接上Office B SPA400b,
但電話話音不可以正常交流,相方聽不見對方話音.
如果相反地經由 Office B SPA400b 打入電話,完全沒這問題.

================================================

估計可能是以下問題,但不知道甚樣處理
1. 不知道跟 dynamic ip 有沒直接關係, 但已經用上 ddns
2. 不知道跟 firewall 有沒直接關係, 但已經把 spa400 放到 dmz
3. 不知道跟 office B (澳門) 電話公司有沒關係, 因為待電話的訊號聲音不同
4. 已經在 office B 換上另一個新的 spa400 , 問題還是一樣

現在煩惱得很, 完全摩不著頭腦, 希望請大家多多指點, 謝謝

A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW

未读,
2008年10月27日 21:09:302008/10/27
收件人 aster...@googlegroups.com
有關與 SPA4000 連接的 Trunk 是參考哪篇文章設定的呢?

我是沒用過 SPA4000,但最近在設 SPA3000,有可能可以套用,請參考這篇

http://wiki.osslab.org.tw/index.php?title=%E5%AF%A6%E9%A9%97%E5%B0%88%E6%A1%88/Asterisk/Linksys_SPA3000&highlight=spa3000

提供另一個 debug 的方式,比較正常與不正常的 CLI  logs 看看有何差異之處。

你結論所提的幾項原因都有可能,所以必須將其一一排除,交互作驗證,就可以找出問題。

Gary

未读,
2008年10月27日 23:09:512008/10/27
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
謝謝你的回應, 現在還是搞不清楚問題...... 很煩惱......
請問用那一個 Debug 方式比較好呢?? 請多多指教.

我是參考這個網頁去設定的
http://forum.voxilla.com/voip-wiki/using-linksys-spa400-asterisk-24184.html

這是有關 Linksys SPA400 的資料
http://forum.voxilla.com/product-reviews/linksys-spa400-4-port-fxo-gateway-product-review-24299.html

Linksys SPA400 官方網頁
http://www.linksys.com/servlet/Satellite?c=L_Product_C2&childpagename=US%2FLayout&cid=1149821922369&pagename=Linksys%2FCommon%2FVisitorWrapper




On 10月28日, 上午9時09分, "A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW"
<alang....@gmail.com> wrote:
> 有關與 SPA4000 連接的 Trunk 是參考哪篇文章設定的呢?
>
> 我是沒用過 SPA4000,但最近在設 SPA3000,有可能可以套用,請參考這篇
>
> http://wiki.osslab.org.tw/index.php?title=%E5%AF%A6%E9%A9%97%E5%B0%88...
>
> 提供另一個 debug 的方式,比較正常與不正常的 CLI logs 看看有何差異之處。
>
> 你結論所提的幾項原因都有可能,所以必須將其一一排除,交互作驗證,就可以找出問題。
>
> 2008/10/27 Gary <garychan....@gmail.com>
> > register = spa4...@abcd01.dyndns.com
> > register = spa4...@abcd02.dyndns.com

A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW

未读,
2008年10月28日 01:40:232008/10/28
收件人 aster...@googlegroups.com
看起來 Trunk 的設定與文章不太一樣,怎不用 type=friend 的方式?

Wa Pa

未读,
2008年10月28日 15:43:502008/10/28
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
What kind of router are you using in Office B?
Sometimes the router still blocks certain packet when you turn on some
protection features (I don't mean firewall here), Even though you
place the SPA400 behind DMZ, it could still happen.

Gary

未读,
2008年10月29日 11:52:452008/10/29
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
我也試過 type=friend 和 type=peer, 問題都是一樣

Office B 是用D-Link Xtreme N Gigabit Router (DIR-655)
我昨天試一下關了firewall 內的SPI 功能,當時問題也是一樣,
另外,我在SPA400內的Caller ID/CP Tone Method 轉為Chinese,
和 RTP 由10000 改為179, 當時問題亦是沒改善,
但一日之後,問題好像又沒出現了,真是不知道為什麼?

一個問題好像解決了,另一個問題又出現....

Office B 是在澳門,那裡的 ADSL 經常改 IP
我已經在 Asterisk 內用上 DDNS 名字,
但發覺 Asterisk 是不會 update 個 register IP,
每次都要入 CLI reload 一次要才會 update IP,
請問各界高手有沒遇上這個問題?

Thanks

Gary

未读,
2008年10月29日 11:52:592008/10/29
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
我也試過 type=friend 和 type=peer, 問題都是一樣

Office B 是用D-Link Xtreme N Gigabit Router (DIR-655)
我昨天試一下關了firewall 內的SPI 功能,當時問題也是一樣,
另外,我在SPA400內的Caller ID/CP Tone Method 轉為Chinese,
和 RTP 由10000 改為179, 當時問題亦是沒改善,
但一日之後,問題好像又沒出現了,真是不知道為什麼?

一個問題好像解決了,另一個問題又出現....

Office B 是在澳門,那裡的 ADSL 經常改 IP
我已經在 Asterisk 內用上 DDNS 名字,
但發覺 Asterisk 是不會 update 個 register IP,
每次都要入 CLI reload 一次要才會 update IP,
請問各界高手有沒遇上這個問題?

Thanks




On 10月29日, 上午3時43分, Wa Pa <red.rain.se...@gmail.com> wrote:

A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW

未读,
2008年10月29日 21:40:522008/10/29
收件人 aster...@googlegroups.com
只要不放棄,我想一定可以找出問題的。

提供一些意見參考看看:

1. 要排除 firewall 的因素,最徹底的方式就是將 ATA 放在外部網路。
2. RTP port 不宜設的太小,有可能會與其他服務相衝突,維持預設值即可。
3. ATA 端變更 IP 後,如果重啟 ATA,Asterisk 也無法取得新 IP??有調過分機註冊的時間參數?應該將它調小。

Gary

未读,
2008年10月30日 00:57:012008/10/30
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
謝謝你的回應

我在 Asterisk CLI 內用 sip show peers, 有時會更新到新的 IP, 有時要 reload 一次才可以,
請問分機註冊的時間參數在那裡找呢?? 我還在找在那裡可以調一下更新(reload) Asterisk 的參數,
Thanks


On 10月30日, 上午9時40分, "A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW"
<alang....@gmail.com> wrote:
> 只要不放棄,我想一定可以找出問題的。
>
> 提供一些意見參考看看:
>
> 1. 要排除 firewall 的因素,最徹底的方式就是將 ATA 放在外部網路。
> 2. RTP port 不宜設的太小,有可能會與其他服務相衝突,維持預設值即可。
> 3. ATA 端變更 IP 後,如果重啟 ATA,Asterisk 也無法取得新 IP??有調過分機註冊的時間參數?應該將它調小。
>
> 2008/10/29 Gary <garychan....@gmail.com>

A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW

未读,
2008年10月30日 01:10:492008/10/30
收件人 aster...@googlegroups.com
reload 並沒有參數可以調,也不需要,這是用來作變更主機設定時,在不想重啟服務但又必須套用新設定時才會用到。

除了註冊時間參數調整外也可以試試有關 DNS resolve 的參數,詳情見
http://www.voip-info.org/wiki-Asterisk+config+sip.conf

我認為這情形是個案,所以沒法在我的環境幫你試。

Wa Pa

未读,
2008年10月30日 01:30:302008/10/30
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
照我的理解, 你把
qualify=yes

加到你的 [spa400b] context 裡

qualify=yes 的功能應該就是常常去認對方還在線上,所以也會update IP address

你試試吧

Gary

未读,
2008年10月30日 23:03:412008/10/30
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
非常感謝各位回應

我在 A-Lang 介紹的文章內, 找到 externrefresh, 這好像是用在Asterisk Server 上, 不知道 A-
Lang 是不是說這個呢?

Asterisk SIP externrefresh = Number : Specify how often (in seconds) a
hostname DNS lookup should be performed for the value entered in
'externhost'. Default 10 seconds. (New in Asterisk 1.2.x).

RTP 有關資料, 我是參考這個, 但不知道有沒幫助 (大家可以參考討論一下)
http://tw.network01.net/modules/newbb/viewtopic.php?topic_id=34&forum=7

我的天啊, 只有一天成功之可以在澳門打出打入後, 現在又不成了...... 我也沒修改什麼參數.... 為什麼會這樣....
我已經 reload asterisk 和 reboot spa400, 還是由X-lite打出時(outbound call), 只見
spa400 接上電話線和接通了電話 (我用同一條線上的分支機聽到), 但 x-lite (也試過 sip router phone) 都是沒
聲音......, 用外線打入 spa400 (inbound call), 但asterisk 完全沒有把線接上.....

現在我已經改了用 type=friend, quality=yes, 我在 asterisk --> sip show peers 上看到
status = OK (102ms), 那証明asterisk 已經找到 spa400b 這個了.... 可是問題還是出現....

其實我也分不出 type=friend 和 type=peer 有多大分別?

我在想要是用VPN直接接到香港Asterisk Server 上會不會解決問題? 因為我想在 asterisk 和 spa400b 會用上
192.168.x.x 去登記. 外部的 ip 轉變不會受影響, 可能被免因 dynamic ip 而出現要更新 asterisk 的問
題, 但我也只是在想, 不知道可不可成功, 但這個安排要很大工程..... 真煩惱了....

請大家多多指教

A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW

未读,
2008年10月30日 23:38:572008/10/30
收件人 aster...@googlegroups.com
當 sip show peer, status = ok 時,當時取得的 IP 是否正確,不能撥時,Asterisk 有無任何 log 等等。

你必須將問題盡可能一一拆解,是無法取得正確 IP  或 無法重新註冊 或 主機路由問題 或 設備問題 或 設備的設定問題等等。

混著看時得瞎摸碰運氣或許仍可以解決,一旦釐清問題的發生點後,才有可能針對問題點找出解決方案。

type= friend or peer 這是 Asterisk 的 SIP 信任類型,我是從兩部 Asterisk 之間連接的實做及幾種不同的 Skype 整合方案實做中理解的

最近在設定 SPA3000 作 PSTN Inbound 過程中,也發現了同樣的設定在不同縣市就會有不同的狀況。
已删除帖子
已删除帖子

Wa Pa

未读,
2008年10月31日 12:50:482008/10/31
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
你說Office 主機是用公網IP ,是把公網IP 指向內網還是Server 直接就是公網IP
如是前者, 你必須要在 sip.conf 裡設定:
nat=yes
externip=外網IP
localnet=內網IP/內網遮罩


Another thing, I still think you need to get your "register =" working

register=spa...@abcd02.dyndns.com/spa400

A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW

未读,
2008年10月31日 13:12:412008/10/31
收件人 aster...@googlegroups.com
猜測可能的一個狀況,因為 Client 變更 IP 後,主機端無法立即正確解析正確的 IP 位址。

試著以 Trunk 的 host=dynamic 的方式來作,spa400 Register Expires 調小一點。



2008/10/31 A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW <alan...@gmail.com>

Gary

未读,
2008年11月3日 02:07:082008/11/3
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
現在設定是用了
nat=yes
externip=202.xx.xx.xx
localnet=202.xx.xx.0/255.255.255.0
在香港的是同一樣的接上spa400, 只是用上 static ip, 沒有跟澳門的問題.

我同事在linux寫了一個 script, 一分鐘 check ip一次, 如果有改變, 就立即 reload asterisk
第一天ip雖然給很快地更新, 但好像沒什麼幫助,
在星期六日的澳門spa400 dynamic ip沒有改變, 剛好這三天我也沒修改任何東西,
現在竟然可以用得上.....這才令我非常煩惱,
要是再出現問題, 都不知道甚樣處理好了....



On 11月1日, 上午1時12分, "A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW"
<alang....@gmail.com> wrote:
> 猜測可能的一個狀況,因為 Client 變更 IP 後,主機端無法立即正確解析正確的 IP 位址。
>
> 試著以 Trunk 的 host=dynamic 的方式來作,spa400 Register Expires 調小一點。
>
> 2008/10/31 A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW <alang....@gmail.com>
>
> > 當 sip show peer, status = ok 時,當時取得的 IP 是否正確,不能撥時,Asterisk 有無任何 log 等等。
>
> > 你必須將問題盡可能一一拆解,是無法取得正確 IP 或 無法重新註冊 或 主機路由問題 或 設備問題 或 設備的設定問題等等。
>
> > 混著看時得瞎摸碰運氣或許仍可以解決,一旦釐清問題的發生點後,才有可能針對問題點找出解決方案。
>
> > type= friend or peer 這是 Asterisk 的 SIP 信任類型,我是從兩部 Asterisk 之間連接的實做及幾種不同的
> > Skype 整合方案實做中理解的
>
> > 最近在設定 SPA3000 作 PSTN Inbound 過程中,也發現了同樣的設定在不同縣市就會有不同的狀況。
>
> > 2008/10/31 Gary <garychan....@gmail.com>

A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW

未读,
2008年11月3日 02:22:182008/11/3
收件人 aster...@googlegroups.com
這地方用法錯了

externip=外部真實 IP
localnet=內部虛擬IP/網路遮罩

Gary

未读,
2008年11月5日 11:48:332008/11/5
收件人 Asterisk/Trixbox User Group in Taiwan - ITblog.ITview.Com.TW
謝謝回應

我的 Asterisk VoIP server 在data center直接用 public ip 放上網, 所以我用左呢個方法

近日太忙, 沒空搞個 server, 但發現沒有之前常出現的"接通但沒話音"的問題,
還有澳門個 dynamic ip 幾日也沒轉換過, 不知道是電訊公司近來沒轉IP,
還是加了 qualify=yes 之後好像沒轉換過 IP (不知道是不是長期有 data 交通才沒轉ip呢?)

回應之前 register 的問題, 我試過以下幾個 register 方法, 沒有一個成功 ~ "incorrect password"
register=spa...@abcd02.dyndns.com
register=spa...@abcd02.dyndns.com/spa400b
register=Admin:loginp...@abcd02.dyndns.com/spa400b
register=spa400b:loginp...@abcd02.dyndns.com/spa400b

現在想請教一下各位朋友, 除了 linksys spa400 外, 有沒試過接上其他品牌的 FXO gateway? 因為想找一個可以控制用指
定的 landline 來打出outbound call, 請問有沒介紹呢?

另外, 有關 caller id 問題, 想了解一下有沒得分別以下情況
1. 來電者的電話號碼 caller id
2. 來電者用那一個電話(號碼)打出的電話
3. 接受來電的那條 landline電話號碼 (因為FXO gateway有可能有多幾條landline, 想了解來電者打進那一個電話號
碼)
4. 打出 outbound call 時, 可不可以修改 caller id 成為公司總機號碼, 令受話者不會看到FXO的
landline 號碼, 只看到總機號碼?

感謝各位朋友指教


On 11月3日, 下午3時22分, "A-Lang, Hsu - ITBLOG.ITVIEW.COM.TW"
<alang....@gmail.com> wrote:
> 這地方用法錯了
>
> externip=外部真實 IP
> localnet=內部虛擬IP/網路遮罩
>
> 2008/11/3 Gary <garychan....@gmail.com>
> > > >> > 你試試吧- 隱藏被引用文字 -
>
> - 顯示被引用文字 -

A.Lang, Hsu - ITBLOG.ITVIEW.COM.TW

未读,
2008年11月5日 20:15:402008/11/5
收件人 aster...@googlegroups.com
Server 如果使用 public IP,就不用加上那幾個參數。

Register String 的正確用法為
username:pass...@my.sip.server/mysipnumber

最後面的 /mysipnumber 與註冊無直接關係,但與進線路由有關,特別是用在 type=peer 時。
回复全部
回复作者
转发
0 个新帖子