2018年1月9日 星期二

Asterisk SIP Trunk 設定

之前都是用遠傳的,最近有機會接觸到亞太電信,兩個註冊方式不一樣,一個是使用帳號密碼,一個是用IP認證,記錄一下兩種註冊方式

A. 帳號密碼
Outgoing Setting:
Trunk Name: sip_trunk

PEER Details:
username=77771111
type=friend
secret=XXX
qualify=yes
port=5060
insecure=very
host=ip_address

Register String:
77771111:xxx@ip_address:5060/77771111

B.IP認證
Outgoing Setting:
Trunk Name: sip_trunk
PEER Details:
fromuser=0277771111 <=指定撥出的顯示號碼
host=ip_address
type=friend
context=from-trunk
insecure=port,invite
qualify=yes
nat=yes
dtmfmode=rfc2833
disallow=all
allow=g711&ulaw&alaw

Register String:空白

遠傳在設定時沒甚麼問題,但亞太在註冊時遇到一些問題,一個是Status(用sip show peers查)會顯示Unmonitored,而且撥打時沒有撥號音,對方會響但卻聽不到聲音,查詢後發現是NAT的部分要修改
在sip_nat.conf加入
externip=ip_address(外部IP)
localnet=192.168.0.0/255.255.255.0(內網IP)
若沒固定IP可以使用DDNS
externhost=www.mydomain.com

設定完後要重啟服務生效
使用 sip show settings 檢查有無被套用

12 則留言:

  1. 亞太的是10線 為單位的 sip TRUNK?

    回覆刪除
    回覆
    1. 亞太給的測試號碼,10門的sip trunk,用IP認證,一直只能撥出無法撥入,但近期剛好有機會用客戶的遠傳30門,也是用ip認證,就正常撥出接聽

      刪除
  2. 可以跟你請教在 Asterisk 上如何設定遠傳 SIP Trunk 的 Early Media 嗎? 當撥電話到一些空號的時候,遠傳會發送 Early Media 語音宣告,謝謝。

    回覆刪除
    回覆
    1. 是撥到空號號碼聽不到是空號的語音嗎?

      刪除
  3. Hi~
    想跟您請教一下
    我們有申請中華電信 sip trunk要用我們的asterisk server 設定外播功能,sip trunk 裝置也有一組電話號碼及設定與asterisk 相通的內網ip,他們說在可依您的設定設定,host 改成 sip trunk ip,那請問 extensions conf 要如何設定呢,謝謝

    回覆刪除
    回覆
    1. 你是要設定sip trunk還是要設定撥號規則? extensions.conf應該是在設定撥號規則

      刪除
    2. 設定 sip trunk,還是撥號規劃不用設定呢 ? 先給你看一下我的設定

      [TT-MIS](!); create a template for our devices
      type = friend ; the channel driver will match on username first, IP second
      context = TT ; this is where calls from the device will enter the dialplan
      host = dynamic ; the device will register with asterisk
      ;nat=yes ; assume device is behind NAT
      ; *** NAT stands for Network Address Translation, which allows
      ; multiple internal devices to share an external IP address.
      secret = XXXXXX ; a secure password for this device -- DON'T USE THIS PASSWORD!
      dtmfmode = auto ; accept touch-tones from the devices, negotiated automatically
      allow = all ; reset which voice codecs this device will accept or offer
      allow=ulaw ; which audio codecs to accept from, and request to, the device
      allow=alaw ; in the order we prefer

      ;TT-MIS Extensions
      [299](TT-MIS) ;Tanya

      播號規則目前如下 :
      [Truetel]
      exten => _[0-9a-zA-Z].,1,Dial(SIP/${EXTEN},30)
      exten => _[0-9a-zA-Z].,n,Hangup()

      exten =>9991,1,Answer()
      same => n, Playback(/var/lib/asterisk/sounds/custom/voice_80629)
      same => n, WaitExten(20)
      ;exten =>505,1,Dial(SIP/505)
      ;exten => _9X.,1,Dial(SIP/${EXTEN}@trunk)

      exten => _09..,1,Dial(SIP/${EXTEN}@trunk)
      那請問 outgoing setting 要設定在那~

      刪除
    3. 更正一下~ 想知道您的 outgoing 是設定在 sip conf 這邊嗎 ? 那我的分機要怎麼設定可以外播 ~

      extension conf 這段是我另外加的~ 但測試後不成功,可以忽略

      ;exten => _9X.,1,Dial(SIP/${EXTEN}@trunk)
      exten => _09..,1,Dial(SIP/${EXTEN}@trunk)

      刪除
    4. sip trunk是要在sip.conf中設定,但若環境不複雜或不需高度自訂,建議你可以安裝freePBX、elastix此類的PBX server,用的是asterisk核心,有UI可以設定,可以省下不少麻煩,我自己也是用這個,也沒甚麼問題,設定好sip trunk後,撥號規則會好設定很多

      刪除
    5. 所以還是要設定播號規則囉 ~ 可以參考一下您的 ui 設定嗎

      刪除
    6. 您好,我已經裝了 freepbx,也在 sip trunk 中設定好中華提供 sip trunk 裝置的ip及 outbound route,播號規規則也設定了,但call out 的時候會一直出現 your call cannot be completed as dialed, 且看封包似乎 Invite 消息沒有送到中華提供的 SIP Trunk 裝置,可否跟您確認一下您在 freepbx/elastix 上的設定畫面,謝謝。

      刪除
    7. freepbx有提供sip和pjsip兩種註冊方式,請問你是用哪一種?中華有提供工單告訴你註冊的server嗎?還有你是用IP認證還是密碼認證?另外撥號時需指定caller id,每家電信撥號規則不太一樣,必須要問一下電信商
      還是你打上你的設定來看這樣比較快,雖然我是用遠傳的但或許可以提供一些意見

      刪除