2008年10月7日火曜日

iPhone3GのFringでAsterisk(ひかり電話)を使う

iPhone3GのFringでAsteriskを使うには以下の点を気をつけること

1,LAN内のAsteriskマシンにWAN側から接続できるようにする
2、FringのSIPアカウントを設定する

iPhoneのFringは、SIPを利用する際に一旦Fringサーバを経由してproxyへアクセスする為、外部からLAN内のAsteriskマシンに接続できるようになっていなくてはならない。

このためWAN側の5060番をAsteriskマシンのローカルIPにポートフォワードさせる必要がある。
また、DynDns等を用いてWAN側のIPにドメイン名でアクセスできるようにしておく。

外部からAsteriskマシンにアクセスできる関係上、パスワードを簡単なものにしないよう気をつけること

Fring側設定は、Add OnからSIPを選び
sip.conf上のusernameをSIP設定のusernameに
同secretをpasswordに設定し、proxyにDynDns等のドメイン名を入力する。

以上で、FringでAsteriskが使えるようになる。

ちなみに構築した環境は玄箱Asterisk+Fletsひかり電話です。

2008年8月24日日曜日

OCN WEBスタンダード等で、WordPressのパーマリンクを動作させる

OCNのビジネス向けプラン(WEBスタンダード等)は、PHPは動作可能(mod_rewriteも可)であるのだが、CGI版で提供されているにもかかわらず、cgi.fix_pathinfoが有効化されていない。

そのため、パーマリンク設定でWordPressを運用すると、No input file specified.というエラーが出る。

これを回避するには、下記rewriteルールを.htaccess内で記述する。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule (.*) /index.php?pagename=/$1 [L]
RewriteRule ^(.+) - [PT]

上記で、ページがパーマリンク形式のアクセスで表示できるようになるが、このままでは通常の投稿が表示できない。(すべてページとして処理されるため)
通常の投稿を表示させるために、下記を追加する。

WordPress側で、パーマリンクを/%category%/%postname%/としておく。
インストールルートにcategoryというフォルダを作り、その中の.htaccessで下記を記述する。

RewriteEngine On
RewriteBase /category
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ /index.php?category_name=$1 [L]
RewriteRule ^(.+) - [PT]

2008年7月30日水曜日

(WordPress2.6)エントリーの添付ファイルの取り出し方

<?php $attachment = get_posts('numberposts=1&post_type=attachment&post_parent=' . get_the_ID()); ?>
<?php var_dump($attachment); ?>

2008年7月24日木曜日

和暦から西暦への変換をSQLで行う(MySQL)

select case when 0 != locate('平成', <和暦>) then concat_ws('/',
replace(substring_index(<和暦>, '年', 1), '平成', '') - 12 + 2000,
lpad(substring_index(substring_index(<和暦>, '年', -1), '月', 1), 2, 0),
lpad(substring_index(substring_index(<和暦>, '月', -1), '日', 1), 2, 0) ) else
(case when 0 != locate('昭和', <和暦>) then concat_ws('/',
replace(substring_index(<和暦>, '年', 1), '昭和', '') + 25 + 1900,
lpad(substring_index(substring_index(<和暦>, '年', -1), '月', 1), 2, 0),
lpad(substring_index(substring_index(<和暦>, '月', -1), '日', 1), 2, 0) ) else null end) end as ymd from <テーブル>;

<和暦>は以下のようなデータが格納されたフィールド
昭和52年11月8日

2008年6月12日木曜日

PHP組み込み定数 PATH_SEPARATOR

ini_setでinclude_pathを追加する場合に、パスの区切りに使う。
windowsとunix系とで、パスの区切り文字が変わる。このため、PATH_SEPARATORを使うと違いを吸収してくれる

2008年6月9日月曜日

再考:エンターキーでフォームが送信されるのをブロックする

エンターキーでフォームが送信されるのをブロックするでformのonsubmitに指定するやり方は結局間違いだった。

input要素のonkeydownに if ( (arguments[0]?arguments[0]:window.event).keyCode == 13) { return false; } と指定する。

onkeydownなのは、keyCode を見るため。
13はRETURNのキーコード(Event.KEY_RETURN)

prototype.jsが必要なくなった。

2008年5月31日土曜日

エンターキーでフォームが送信されるのをブロックする

onsubmit="var ev = (!arguments[0]) ? window.event : arguments[0]; if (!ev.isLeftClick() && (Event.element(ev)).type != 'submit') return false;"

をFORMタグに入れる
要prototype.js