2014年7月9日水曜日

UbuntuでAsteriskを構築し「ブラステル」を登録する(CuBox-i2使用)

イエデン(HT702)を破壊してからここに至るまで、大急ぎでした。(妻が怖い)

本当はHT702だけを入替えて済ませるつもりだったのですが、新しく購入したHT702は、着信後10秒で切断される現象に悩まされ、結局はAsteriskの構築に至りました。

(着信後の即切断現象は<「FUSION IP-Phone SMART」や「ブラステル(050)」を固定電話として使う>のコメントで頂いている情報と同様の状況と思われます。)




今回は、CuBox-i2にインストールしたUbuntuでAsteriskを構築し、ブラステルを使えるようにするまでを紹介します。
Asteriskの話は、分かる人には簡単、でも、わからない人にはチンプンカンプンな話なので、さらっと流したいと思います。



【Asteriskのインストール】

  • Asteriskをインストールする。(makeやビルドなどは面倒なので行いません。)
    $ sudo apt-get install asterisk

    途中で「ITU-T Telephone code」を聞かれるので、日本の国番号「81」を指定します。


    ・・・以上でAsteriskのインストール完了!
    これだけで、Ubuntuの起動とともにAsteriskも自動実行されるようになります。

    「Linux = 難しい」と思っていましたが、結構適当な感じで行けそうな気がしてきました(・_・;)



    【設定ファイルの変更】

    設定を変更するファイルは、以下の2つだけです。
  • /etc/asterisk/sip.conf
  • /etc/asterisk/extensions.conf

    「sip.conf」に元々記載されていたデータはすべて消去して、以下設定を記載します。
    (心配な人はオリジナルファイルのバックアップを取っておきます。)


    まずは内線電話が通じるかを確認します。

    <sip.conf>
    [general]
    context=default
    port=5060
    bindaddr=0.0.0.0
    language=ja
    
    [201]
    type=friend
    defaultuser=201
    secret=pass
    canreinvite=no
    host=dynamic
    
    [202]
    type=friend
    defaultuser=202
    secret=pass
    canreinvite=no
    host=dynamic
    
    [203]
    type=friend
    defaultuser=203
    secret=pass
    canreinvite=no
    host=dynamic
    


    <extensions.conf>
    [default]
    
    exten => 201,1,Dial(SIP/201,30,r)
    exten => 201,2,Hangup()
    
    exten => 202,1,Dial(SIP/202,30,r)
    exten => 202,2,Hangup()
    


    この設定を終えたら、スマホを2台用意してAsteriskサーバをレジストします。
    2台のスマホをWi-Fi接続(ローカルネットワーク)とし、CSipSimpleなどのSIPクライアントに、以下SIP情報を登録します。

    [1台目]
    SIPサーバ:192.168.x.yyy(AsteriskサーバのIPアドレス)
    ユーザID:201
    パスワード:pass

    [2台目]
    SIPサーバ:192.168.x.yyy(AsteriskサーバのIPアドレス)
    ユーザID:202
    パスワード:pass


    これで、1台目⇔2台目の発着信及び通話テストを行います。
    電話番号は「201」と「202」です。(ユーザID=内線番号)

    無事に発着信と双方向通話ができることを確認します。

    両耳にスマホを当てながら、ブツブツと独り言を喋りつつ、通話ができる感動でニヤニヤします。
    (この姿は誰にも見られないようにしてください。キケンです。)



    【ブラステルの登録】

    早速、ブラステル050を使えるようにします。
    以下のように設定ファイルを書き換えます。

    <sip.conf>
    [general]
    context=default
    port=5060
    bindaddr=0.0.0.0
    dtmfmode=rfc2833
    language=ja
    
    ; Brastel 050 Free
    register => [ユーザID]@softphone.spc.brastel.ne.jp:[パスワード]:[ユーザID]@softphone.spc.brastel.ne.jp/200
    
    [brastel]
    type=friend
    secret=[パスワード]
    username=[ユーザID]
    fromuser=[ユーザID]
    fromdomain=softphone.spc.brastel.ne.jp
    host=softphone.spc.brastel.ne.jp
    context=default
    insecure=invite
    canreinvite=no
    disallow=all
    allow=ulaw
    allow=gsm
    
    [201]
    type=friend
    defaultuser=201 ;(SIPクライアント1が接続に使うユーザID)
    secret=password ;(SIPクライアント1が接続に使うパスワード)
    canreinvite=no
    host=dynamic
    
    [202]
    type=friend
    defaultuser=202 ;(SIPクライアント2が接続に使うユーザID)
    secret=password ;(SIPクライアント2が接続に使うパスワード)
    canreinvite=no
    host=dynamic
    
    [203]
    type=friend
    defaultuser=203 ;(SIPクライアント3が接続に使うユーザID)
    secret=password ;(SIPクライアント3が接続に使うパスワード)
    canreinvite=no
    host=dynamic
    


    <extensions.conf>
    [default]
    ; incoming call
    exten => 200,1,Dial(SIP/201&SIP/202&SIP/203)
    exten => 200,n,Hangup
    
    ; brastel
    MYNUMBER=05012345678 ;(自分のブラステルの電話番号)
    exten => _0.,1,Set(CALLERID(num)=${MYNUMBER})
    exten => _0.,n,Set(CALLERID(name)=${MYNUMBER})
    exten => _0.,n,Dial(SIP/${EXTEN}@brastel,120,T)
    
    ; naisen
    exten => 201,1,Dial(SIP/201,30,r)
    exten => 201,2,Hangup()
    
    exten => 202,1,Dial(SIP/202,30,r)
    exten => 202,2,Hangup()
    
    exten => 203,1,Dial(SIP/203,30,r)
    exten => 203,2,Hangup()
    


    これで、ブラステルの登録完了です。
    もし、内線番号を増やしたい場合は、同様の記述方法で「sip.conf」と「extensions.conf」に『204』『205』・・・と追記していきます。



    【完成】

    以上で、Asteriskの設定はすべて完了です。
    なお、この設定ではAsteriskは以下のように動作します。
  • 外線着信時は登録したすべての電話が一斉鳴動。
  • 内線通話は201~203で個別に呼び出し、200ですべての内線電話を一斉に呼び出し。
  • 外線発信の制限なし。

    なお、この設定ではセキュリティは一切考慮していません。
    外部(ローカルネットワーク以外)からこのAsteriskを使えるようにするためには、国際通話の禁止やパスワードの強化など、多くのセキュリティ対策を行う必要があります。
  • 0 件のコメント :

    コメントを投稿