投げ銭

★当サイトへの投げ銭(PayPal)★

LINK


(無償、寄付歓迎) logo
世界中で使われるISO標準オフィスソフト(MSオフィス互換)

★LibreOfficeの導入事例★
詳細について

人気の投稿(1ヶ月間)

Ad

Ad

投げ銭

★当サイトへの投げ銭(PayPal)★

2011年10月15日土曜日

【ASTERISK 1.6.2.12】 #include<ファイル名>に存在しないファイル名を指定したときASTERISKは正常動作しない

ASTERISKでは、”#include<ファイル名>”ステートメントで、各種.confファイルにファイル内容を挿入することができるが、
ここで存在しないファイル名を指定すると、ASTERISKは正常に動作しなくなった。

たとえばextensions.confで、#includeステートメントをつかっていくつかのファイルを挿入しようとしたとする。
このうちいくつかのファイルは存在し成功したものの、いくつかのファイルは存在せずに失敗した場合には、
存在していて挿入できたはずのファイルに書かれていたコンテクストやエクステンションについても、ASTERISKは見つけられずに運用時にエラーとなった。

次のエラーがログに見られた。
(略)
ERROR[20071] config.c: The file 'abc.conf' was listed as a #include but it does not exist.
(略)
NOTICE[20086] chan_sip.c: Call from '123456789' to extension 'test' rejected because extension not found in context 'test-context'.
(略)
上記、エラーで表示されている、
コンテクスト'test-context'もエクステンション'test'も、#includeステートメントによって挿入されたはずの存在していたファイルに書かれていたものである。
これらは存在しない'abc.conf'に含まれていたわけではない。
それなのに、ASTERISKはこれらを見つけることができずにエラーとなった。

存在しないファイルを指定しても、エラーメッセージを吐くだけで、それについては無視されるだろうと考えていたが、その認識は甘かったようだ。
どうやら、存在しないファイルを#includeステートメントで指定した場合には、
同時に指定しているきちんと存在するファイルの内容についても正常に読み込まれないようである
#includeステートメントの数に上限があるのではないかとか、コンテクストやエクステンションの最大値を超えてしまったのではないかとか、考えたがそうではなかったようだ。

存在しないファイルを指定していた#includeステートメントをコメントアウトし取り除いてやれば、
再び正常に動作するようになった

これは、ASTERISK 1.6.2.12 の話である。バージョンアップで改善しているのかもしれない。

投げ銭

★当サイトへの投げ銭(PayPal)★

Ad

Ad