Drupalでは、.moduleファイルをWebから直接実行することはできません。各モジュールはhook_menuを実装する必要があり、そのフックが使用するURLを作成します。したがって、Tropoには、yourmodule.moduleへのパスではなく、yourmodule_menuによって作成されたURLを指定します。
たとえば、Tropoのサンプルモジュールのhook_menuを次に示します。
<?php
function demo_menu() {
$items = array();
// Set up a route for the incoming call
$items['demo/answer'] = array(
'page callback' => 'demo_answer',
'access arguments' => array('access content'),
'type' => MENU_NORMAL_ITEM,
);
return $items;
}
function demo_answer() {
module_load_include('php', 'tropo', 'lib/tropo/tropo.class');
$tropo = new Tropo();
$tropo->say('Hello. And Goodbye.');
print $tropo;
}
?>
demo_menu関数は、demo/answerをサイトのURLとして定義します。サイトがexample.comの場合、Tropoにhttp://example.com/demo/answerとしてURLを指定します。次に、誰かがTropoの電話番号に電話をかけると、demo_answer()関数が実行され、「Hello。AndGoodbye」と読み上げられます。その後、電話を切ります。
Drupalをアプリケーションフレームワークとして使用することについての講演で使用した簡単なデモモジュールがあります。デモではTropoを幅広く使用しています。https://github.com/akalsey/drupal-framework-demo
電話ポーリングモジュールも良い例です。Tropoを使用して、Drupal6の組み込みのポーリングモジュールに音声とSMSを追加します。http://drupal.org/project/phonepoll
また、VoipDrupalもご覧ください。これにより、Tropoなどのサービスと対話するスクリプトをDrupalで直接作成できます。http://drupal.org/project/voipdrupal