Sunday, November 30, 2014

autohotkeyでコントロールのClassNNを調べる

Windowsで自動操作を行うためにautohotkeyを調べています。

クリックするコントロールを指定する場合に、ClassNNを調べる必要があり、それはautohotkey付属のWindow spyを使うということなのですが、Windows 8.1では、shift+alt+tabでWindow spyにフォーカスがうまく移せません。

で、調べているとautohotkeyでコントロールの情報を取得することができるようです。これを少し変更してみました。

使い方は次の通りです。


  1. 調べたいコントロールの上にマウスをのせて、Ctrlキーとマウスの左ボタンを押す。
  2. ポップアップで情報が表示され、その情報がクリップボードにコピーされます。

; Reference:
; http://www.autohotkey.com/board/topic/116344-window-spy-shiftalttab-doesnt-freeze-text/

^LButton::
;get the position of mouse pointer and a handle id of the control under the mouse pointer
MouseGetPos, M_X, M_Y, M_Win, M_Ctrl, 2

;get text in the control
ControlGetText, OutputText,,ahk_id %M_Ctrl%

;set focus to the control to get ClassNN of the %M_Ctrl%
ControlFocus,,ahk_id %M_Ctrl%
ControlGetFocus, OutputClassNN, ahk_id %M_Win%

info = Win:%M_Win%`nCtrl:%M_Ctrl%`nText:%OutputText%`nClassNN:%OutputClassNN%`n

Msgbox, %info% 
Clipboard = %info%
Return

Sunday, November 09, 2014

CentOS6にインストールしたAsterisk11の設定

CentOS 6にAsterisk 11をインストールするの続きです。今回はAsterisk 11の設定を行います。Asteriskで使用するプロトコルが利用できるようにOS側の設定も合わせて行います。

* OS側設定(iptables)

参考ページ:

各プロトコルで使用するポート番号の範囲を以下のようにします。
  •   SIPプロトコル 15060
  •   RTPプロトコル 20000-30000
iptablesの設定を行います。
 
iptables -A INPUT -p udp -m udp --dport 15060 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --sport 15060 -j ACCEPT
iptables -A INPUT -p udp -m udp --dport 20000:30000 -j ACCEPT
iptables -A OUTPUT -p udp -m udp --sport 20000:30000 -j ACCEPT

設定後はiptables-saveコマンドで設定を次回起動時に有効になるように保存します。

* Asterisk側設定

インストールでmake config すると/etc/asteriskに設定ファイルがコピーされるがそのままでは使えないので、/etc/asterisk.sampleにサンプルとして移動しておく

Asteriskの起動に必要なのは以下の8ファイル(●はサンプルからコピー。★は編集したものを使用します。)

●asterisk.conf
cli.conf
cli_aliases.conf
logger.conf
modules.conf
rtp.conf
★sip.conf
★extensions.conf

★rtp.conf

[general]
rtpstart=20000
rtpend=30000
★extensions.conf
内線番号1XXへの発信を行うだけの設定です。

[general]

[globals]

[default]


[service]
exten => _1XX,1,Dial(SIP/${EXTEN})
★sip.conf
SIPクライアントの設定を2つ用意します。内線番号それぞれ100と101です。
secretの部分がパスワードになります。「ひみつ」を変更してください。

[general]
udpbindaddr=0.0.0.0:15123 ; IP address to bind UDP listen socket to (0.0.0.0 binds to all)
transport=udp ; Set the default transports. The order determines the primary default transport.
srvlookup=yes ; Enable DNS SRV lookups on outbound calls

[authentication]

[basic-options](!) ; a template
dtmfmode=rfc2833
type=friend

[natted-phone](!,basic-options) ; another template inheriting basic-options
directmedia=no
host=dynamic
nat=yes

[my-codecs](!) ; a template for my preferred codecs
disallow=all
allow=ilbc
allow=g729
allow=gsm
allow=g723
allow=ulaw

[100](natted-phone,my-codecs)
context=service
secret=ひみつ

[101](natted-phone,my-codecs)
context=service
secret=ひみつ

CentOS 6にAsterisk 11をインストールする

CentOS6にAsterisk 11(正確には11.12.0)をインストールしたときのメモです。

参考ページ:

1. CentOS Updates (If Any)
2. Disabling SELinux
3. Reboot
4. Installation of Dependencies for Asterisk 11
5. Downloading your Asterisk Source Code
6. Extraction of Downloaded Files
7. DAHDI Installation
8. LibPRI Installation
9. Change Asterisk Directory
10. Run Configure Script for Asterisk
11. Install Sample Files
12. Start DAHDI
13. Start Asterisk

DAHDI(Digium/Asterisk Hardware Device Interface)は使わないので、7,8,12はスキップする。

1 CentOS Updates (If Any)
sudo yum update -y

2 Disabling SELinux
selinuxenabled ; echo $?
で0ならSELinux無効になっている。

3 Reboot
/usr/bin/reboot
/sbin/shutdown -r よりは確実

4 Installation of Dependencies for Asterisk 11
yum install -y make wget openssl-devel ncurses-devel newt-devel libxml2-devel kernel-devel gcc gcc-c++ sqlite-devel

Downloading your Asterisk Source Code

6 Extraction of Downloaded Files
sudo tar zxf asterisk-11-current.tar.gz 

9 Change Asterisk Directory
cd asterisk-11.12.0/

10 Run Configure Script for Asterisk
64bitなので

sudo ./configure --libdir=/usr/lib64 && sudo make menuselect && sudo make && sudo make install

11 Install Sample Files
デフォルトのconfigではAsteriskは使用できませんが、とりあえず、所定の/etc/asteriskに各種設定ファイルを置きました。(Asterisk設定時には別ディレクトリに移動します。)

sudo make samples