2016-08-09 10 views
1

番号を呼び出して、自分のコンピュータにあるオーディオファイルを再生したいと思います。Javaアスタリスクでのダイヤル方法

以前に設定されたアスタリスクサーバーがあります。以下のコードでは番号を呼ぶことができ、拡張機能は音声を再生します(これはテストコールです)。私は、私がそれを変更すると、オーディオが変化するので、私は拡張機能がこれを行うことを知っ

おそらく、私がextensions.confのデータを変更すると、私が望むすべてのオーディオを再生できます。しかし、私がインターンシップをしている会社は、アスタリスクのファイルを見たり変更することはできません。だから私はjavaでそれをしなければならない。

短いストーリー、どのように番号をダイヤルして、私はJavaでハングアップしたいオーディオを再生することができます。私は日々ウェブ上を検索していますが、何も見つかりませんでした。私を助けてください:(

public void run() throws IOException, AuthenticationFailedException, 
     TimeoutException 
{ 
    OriginateAction originateAction; 
    ManagerResponse originateResponse; 

    originateAction = new OriginateAction(); 
    originateAction.setChannel(number); 
    originateAction.setContext(context); 
    originateAction.setExten(extension); 
    originateAction.setPriority(Integer.parseInt(priority)); 
    originateAction.setTimeout(new Integer(30000)); 

    managerConnection.login();            // connect to Asterisk and log in 
    originateResponse = managerConnection.sendAction(originateAction, 30000);// send the originate action and wait for a maximum of 30 seconds for Asterisk to send a reply 
    System.out.println(originateResponse.getResponse());     // print out whether the originate succeeded or not 
    managerConnection.logoff();            // and finally log off and disconnect 

} 

答えて

1

this

を見てくださいあなたは、execコマンドファイル

public class ExampleCallIn extends BaseAgiScript { 
    public void service(AgiRequest request, AgiChannel channel) throws AgiException { 
    answer(); 
    exec("Playback", "tt-monkeys"); 
    hangup(); 
    } 
} 

を再生するには、exec( "再生"、 "ファイル")を使用することができますすることができますダイヤルやオリジンなどのアスタリスクサーバーで定義されているアプリケーションを使用してください

+0

私はexecを使用できるかどうかわかりませんでした。 "プレイバックk "、" tt-monkeys ");電話を切る(); }それは私に論理的だが、私はエラーを取得する "java.lang.IllegalStateException:無効なスレッドからコマンドを送信しようとしています" –

+0

アスタリスクのバージョンはあなたの会社ですか使用しますか?あなたはアスタリスクサーバのいくつかの設定を変更するように彼らに頼むことができますか? – QGA

+0

アスタリスクコールマネージャ/ 1.3アスタリスクの使用法はこのプロジェクトだけではありませんので、私が作業システムを台無しにした場合、私は変更を許可しません。今のところ、私がしようとしていることは、originateResponse = managerConnection.sendAction(originateAction、30000)でコールを開始することです。あなたのメソッドを呼び出した直後に再生してハングアップすることができます。あなたのメソッドを私が与えたコードと呼ぶのを手伝ってください。私はそれを呼び出すことができません:(私は何を要求とチャネルのために書く必要がありますか? –

関連する問題