オッサン喜ぶPCケース X68000デザイン

PC Watch

長尾製作所の職人筐体 X68000デザイン

X68000デザインのPCケース

2013年9月に発足したプロジェクトらしい。
2015年5月に一般お披露目になると。

写真はプロトタイプだそう。
仕様は、Mini-ITXでFlexATX電源を搭載可能。
前面にはUSBx2、音声入出力など。

価格は未定。

イベント告知

マイコン・インフィニット

 

RasPi2 Asterisk sip.confとextensions.confとmeetme

Asteriskの設定ファイルは/etc/asteriskに設置されています。
されていない場合は、source dir で make sample とすれば、/etc/asterisk以下にサンプルファイルが作成されます。

/etc/astersik

:/etc/asterisk# ls
adsi.conf		 cel_pgsql.conf		  func_odbc.conf    queues.conf
agents.conf		 cel_sqlite3_custom.conf  gtalk.conf	    res_config_mysql.conf
ais.conf		 cel_tds.conf		  h323.conf	    res_config_sqlite.conf
alarmreceiver.conf	 chan_dahdi.conf	  http.conf	    res_curl.conf
alsa.conf		 chan_mobile.conf	  iax.conf	    res_fax.conf
amd.conf		 chan_ooh323.conf	  iaxprov.conf	    res_ldap.conf
app_mysql.conf		 cli.conf		  indications.conf  res_odbc.conf
asterisk.adsi		 cli_aliases.conf	  jabber.conf	    res_pgsql.conf
asterisk.conf		 cli_permissions.conf	  jingle.conf	    res_pktccops.conf
calendar.conf		 codecs.conf		  logger.conf	    res_snmp.conf
ccss.conf		 console.conf		  manager.conf	    res_stun_monitor.conf
cdr.conf		 dbsep.conf		  manager.d	    rtp.conf
cdr_adaptive_odbc.conf	 dnsmgr.conf		  meetme.conf	    say.conf
cdr_custom.conf		 dsp.conf		  mgcp.conf	    sip.conf
cdr_manager.conf	 dundi.conf		  minivm.conf	    sip_notify.conf
cdr_mysql.conf		 enum.conf		  misdn.conf	    skinny.conf
cdr_odbc.conf		 extconfig.conf		  modules.conf	    sla.conf
cdr_pgsql.conf		 extensions.ael		  musiconhold.conf  smdi.conf
cdr_sqlite3_custom.conf  extensions.conf	  muted.conf	    telcordia-1.adsi
cdr_syslog.conf		 extensions.lua		  osp.conf	    udptl.conf
cdr_tds.conf		 extensions_minivm.conf   oss.conf	    unistim.conf
cel.conf		 features.conf		  phone.conf	    users.conf
cel_custom.conf		 festival.conf		  phoneprov.conf    voicemail.conf
cel_odbc.conf		 followme.conf		  queuerules.conf   vpb.conf

複雑な多くの設定ファイルがありますが、まず最小設定で内線通話が可能になるよう設定していきます。
問題の切り分けのため、サンプルファイルはmvしておきます。

# cp -r /etc/asterisk /etc/asterisk.org
# mkdir /etc/asterisk
# cd /etc/asterisk

asteriskの音声はRTPで行います。
RTPはIP電話のデジタルデータを元にRTPパケットを構成し、IPネットワークに音声を送出します。IPパケットなので、ポートの指定をします。
今回は、内線のみの運用なのでポート使用は最小限に止めておきます。

rtp.conf

[general]
rtpstart=4000
rtpend=4010

読み込むモジュールの設定
読み込むモジュールの設定は、modules.confを使います。
多くのモジュール設定がありますから、sampleファイルを加工して使います。

# cp /etc/asterisk.org/modules.conf /etc/asterisk/modules.conf
# vi modules.conf

ほとんどのモジュールは、modules.confの

[modules]
autoload=yes

で自動的に読み込まれますから、不要なmoduleは”noload =>module_name”で読み込まないように設定します。

modules.conf

[modules]
autoload=yes
;
noload => pbx_gtkconsole.so
noload => pbx_kdeconsole.so
;
noload => app_intercom.so
;
noload => chan_mgcp.so
noload => chan_skinny.so
noload => chan_phone.so
;
noload => chan_modem.so
noload => chan_modem_aopen.so
noload => chan_modem_bestdata.so
noload => chan_modem_i41.so
noload => chan_misdn.so
;
load => res_susiconhold.so
;
noload => chan_alsa.so
noload => cham_oss.so
;
noload =>app_adsiprog.so
[global]
chan_modem.so=y

SIP電話機(sip client)から接続する際のIDとパスワード等を設定するファイルが、sip.confです。
sip.confを設定しますが、内線のみでテストするので、2台分のIDを登録します。

sip.conf

[general]
maxexpirey=3600
defaultexpirey=3600
content=test
port=5060
bindaddr=0.0.0.0
srvlookup=yes
disallow=all
allow=ulaw
allow=gsm
language=jp
localnet=192.168.1.0/255.255.255.0

[201]
type=friend
username=201
secret=password
canreinvite=no
host=dynamic
dtmfmode=auto
callgroup=1
pickupgroup=1

[202]
type=friend
username=201
secret=password
canreinvite=no
host=dynamic
dtmfmode=auto
callgroup=1
pickupgroup=1

ダイアルプランの作成
ダイアルプランは、何番を回せば、どういった処理をすると言ったことを記述していきます。
運用する上で非常に重要なファイルです。

extensions.conf

[general]
writeprotect=yes

[default]
exten => _20Z,1,Dial(SIP/${EXTEN},60,tT)
exten => _20Z,n,Congestion

ここまで設定が終われば、内線通話が可能になります。
asteriskを再起動するか、CLIで、

*CLI> sip reload
*CLI> dialplan reload

設定をreloadします。

SIP電話で内線の確認が出来れば、保留音と会議室を実装していきます。
保留音は、musiconhold.confを編集します。

musiconhold.conf

[default]
mode=mp3
directory=/var/lib/asterisk/mohmp3
;random=yes

/var/lib/asterisk/mohmp3が無いので、作成して適当なMP3ファイルを配置します。

# mkdir /var/lib/asterisk/mohmp3
# cp hoge.mp3 /var/lib/asterisk/mohmp3/
# chown -R asterisk:asterisk /var/lib/asterisk/mohmp3

会議室の設定
会議室(音声会議)の設定はmeetme.soで実現されます。この機能を利用するためにdahdiを作成したわけです。
設定は、meetme.confを使います。
ここでは、会議室の番号を「300」としました。

記述 意味 定義例
[general]
audiobuffers
audio bufferを設定
音声会議のジッタバッファとして動作
2-32
[room]
conf =>
会議室の設定を定義 会議室番号

[room]

conf => 300,4343 ←4343がPASSWORD

meetme.conf

[rooms]
conf => 300

300をダイアルすれば、会議室に繋がるようextensions.confに書き加えます。

extensions.conに追加

exten => 300,1,Meetme(300)
exten => 300,n,Hangup

すこしmeetme.confの説明を付け加える。
300番をダイアルすると、スグに会議室に繋がるが、誰も接続していない場合、無音になり稼働しているのかわからなくなります。そこで、extensions.confで、
exten => 300,1,Meetme(300|M) ← M を付け加えています。
こうすることによって、会議室に1人しか接続していない場合、保留音が流れるようになります。

ここまでの設定が終われば、asteriskを再起動するか、CLIでreloadします。

reload app_meetme.so
dialplan reload

RasPi2 Asterisk 050plus 収容準備

簡単なhtmlを書いて、050plusの接続情報を入手する。
先人たちの情報を有り難く頂戴し、情報を入手出来ました。
ifVerが違うと取得出来ないとこや、apVerなどいろいろ書き換えてやってみました。
何度か間違った情報をpostすると弾かれます。その場合は、パスワードを初期化して翌日にでもチャレンジすればOKのようです。

</html>
<html>
<form method="post" action="https://start.050plus.com/sFMCWeb/other/InitSet.aspx">
<p><input type="text" name="ifVer" value="3.0"/>
<p><input type="text" name="apVer" value="2.0.4"/>
<p><input type="text" name="buildOS" value="IOS"/>
<p><input type="text" name="buildVer" value="5.1"/>
<p><input type="text" name="buildModel" value="Android"/>
<p><input type="text" name="earlyStFlg" value="0"/>
<p><input type="text" name="no050" value="050電話番号"/>
<p><input type="text" name="pw050" value="パスワード"/>
<P><input type="submit" value="送信" />
</form>
</html>

2015/4/25取得できることを確認した。

正常に処理されると、xmlでデータが返されます。

<replyInfo>
   <resultInfo>
     <resCd>N0000</resCd>
     <resMsg>正常に終了しました</resMsg>
     <errCd/>
   </resultInfo>
   <resultEarlySt>
      <sipID>xxxxxxxx</sipID>
      <sipPwd>xxxxxxxx</sipPwd>
   <tranGwInfo>
      <tranGwAd>xxxx-xxxxx.050plus.com</tranGwAd>
      <payTranGwPNm>xxx</payTranGwPNm>
      <freeTranGwPNm>xxxx</freeTranGwPNm>
      <nicNm>xxxxxxxxxxx</nicNm>
      <pingTm>600</pingTm>
      <pongTm>120</pongTm>
   </tranGwInfo>
   <ticketInfo>
      <ticketEx/>
   </ticketInfo>
      <chargPlan>xx</chargPlan>
      <frdCd>xxxxxxxx</frdCd>
      <rNo050>050xxxxxxxx</rNo050>
      <rDistingId>xxxxxxxxx</rDistingId>
   </resultEarlySt>
</replyInfo>

この情報をもとに、後日sip.confに書き加えます。

OCN モバイル ONEを使うと、050plus番号が1つサービスで付与されるので、お得です。

sakura internet レンタルサーバーのターミナル設定

Mac OSXからssh でログインしていますが、日本語が表示されてなかったので、すこし調べてみた。
結果は、単純にLANGが指定されていなかっただけですが、viやその他すこし設定した内容を覚書しておく。
まず、使っているサーバーはやはりFreeBSDなのですね。

uname -a
FreeBSD www385.sakura.ne.jp 9.1-RELEASE-p22 FreeBSD 9.1-RELEASE-p22 #0: Wed Dec  3 15:24:48 JST 2014     root@www3304.sakura.ne.jp:/usr/obj/usr/src/sys/SAKURA17  amd64

しかも知らない間に9.1-RELEASEになってた。

まず、.bash_profile , .bashrc .vimrcを作成していく。
.vimrc
文字コードを自動認識してくれるrcがあるようで、そのまま有り難く頂戴する。

.vimrc
.vimrc
"#####表示設定#####
set number "行番号を表示する
set title "編集中のファイル名を表示
set showmatch "括弧入力時の対応する括弧を表示
syntax on "コードの色分け
set tabstop=4 "インデントをスペース4つ分に設定
set smartindent "オートインデント

"#####検索設定#####
set ignorecase "大文字/小文字の区別なく検索する
set smartcase "検索文字列に大文字が含まれている場合は区別して検索する
set wrapscan "検索時に最後まで行ったら最初に戻る

" 文字コードの自動認識
if &encoding !=# 'utf-8'
  set encoding=japan
  set fileencoding=japan
endif
if has('iconv')
  let s:enc_euc = 'euc-jp'
  let s:enc_jis = 'iso-2022-jp'
  " iconvがeucJP-msに対応しているかをチェック
  if iconv("\x87\x64\x87\x6a", 'cp932', 'eucjp-ms') ==# "\xad\xc5\xad\xcb"
    let s:enc_euc = 'eucjp-ms'
    let s:enc_jis = 'iso-2022-jp-3'
  " iconvがJISX0213に対応しているかをチェック
  elseif iconv("\x87\x64\x87\x6a", 'cp932', 'euc-jisx0213') ==# "\xad\xc5\xad\xcb"
    let s:enc_euc = 'euc-jisx0213'
    let s:enc_jis = 'iso-2022-jp-3'
  endif
  " fileencodingsを構築
  if &encoding ==# 'utf-8'
    let s:fileencodings_default = &fileencodings
    let &fileencodings = s:enc_jis .','. s:enc_euc .',cp932'
    let &fileencodings = &fileencodings .','. s:fileencodings_default
    unlet s:fileencodings_default
  else
    let &fileencodings = &fileencodings .','. s:enc_jis
    set fileencodings+=utf-8,ucs-2le,ucs-2
    if &encoding =~# '^\(euc-jp\|euc-jisx0213\|eucjp-ms\)$'
      set fileencodings+=cp932
      set fileencodings-=euc-jp
      set fileencodings-=euc-jisx0213
      set fileencodings-=eucjp-ms
      let &encoding = s:enc_euc
      let &fileencoding = s:enc_euc
    else
      let &fileencodings = &fileencodings .','. s:enc_euc
    endif
  endif
  " 定数を処分
  unlet s:enc_euc
  unlet s:enc_jis
endif
" 日本語を含まない場合は fileencoding に encoding を使うようにする
if has('autocmd')
  function! AU_ReCheck_FENC()
    if &fileencoding =~# 'iso-2022-jp' && search("[^\x01-\x7e]", 'n') == 0
      let &fileencoding=&encoding
    endif
  endfunction
  autocmd BufReadPost * call AU_ReCheck_FENC()
endif
" 改行コードの自動認識
set fileformats=unix,dos,mac
" □とか○の文字があってもカーソル位置がずれないようにする
if exists('&ambiwidth')
  set ambiwidth=double
endif

つづいて、.bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
       . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin
export PATH

LANG=ja_JP.UTF-8
export LANG

最後に、.bashrc

# .bashrc
 
# Source global definitions
if [ -f /etc/bashrc ]; then
       . /etc/bashrc
fi

# User specific aliases and functions
#export LANG=ja_JP.UTF-8

# path
export PATH="$PATH":/usr/sbin:/sbin
alias vi='vim'

ちなみに、.profileはこんな感じ

# $FreeBSD: src/share/skel/dot.profile,v 1.19.2.2 2002/07/13 16:29:10 mp Exp $
#
# .profile - Bourne Shell startup script for login shells
#
# see also sh(1), environ(7).
#

# remove /usr/games and /usr/X11R6/bin if you want
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:$HOME/bin; export PATH

# Setting TERM is normally done through /etc/ttys.  Do only override
# if you're sure that you'll never log in via telnet or xterm or a
# serial line.
# Use cons25l1 for iso-* fonts
# TERM=cons25;  export TERM

BLOCKSIZE=K;    export BLOCKSIZE
EDITOR=vi;      export EDITOR
PAGER=more;     export PAGER

# set ENV to a file invoked each time sh is started for interactive use.
ENV=$HOME/.shrc; export ENV

[ -x /usr/games/fortune ] && /usr/games/fortune freebsd-tips
PS1="[\u@\h \W]\\$ "

alias ls="ls -G"

ここまで設定して再ログインすると、日本語表示出来ました。

現状のwww.club535.comについて

先ほど、データベースから削除してしまったサイトのデータのみ復旧しました。

しかしながら、写真に関するデータは全て飛んでしまっており復旧不可能です。

あしからず・・・

以前の記事を少し見てみましたが、やっぱりほとんど身についてませんねー。

こんな事やってたのかー!とかemacsを使ってた時があったんだ!とかemacsでメールまで受信してたわ!とか、少しだけれど自分で読んで自分で突っこんでみたくなったわ。

404pageをclub535用に書き換えました。

書換は、ja.poを編集してja.moにコンパイルするという流れなのですね。
今日初めて知りました。

$ vi ja.po
日本語で表示変更したい箇所を修正する。
$ msgfmt -o ja.mo ja.po