1

我是 freeswitch 的新手,我尝试了从 fs_cli 控制台在 freeswitch 中发起命令,它工作正常。现在我的要求是从 java 应用程序中执行相同的操作。我试过以下代码

package org.freeswitch.esl.client.outbound.example;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

class Call {
Call() throws IOException {
    Process pr = Runtime.getRuntime().exec("./fs_cli -x \"originate    loopback/1234/default &bridge(sofia/internal/1789@192.168.0.198)\"");
    BufferedReader br = new BufferedReader(new InputStreamReader(pr.getInputStream()));
    String str = null;
    while ((str = br.readLine()) != null) {
        System.out.println(str);
    }
    System.out.print("success");
}

public static void main(String[] args) throws IOException {
    Call call;
    call = new Call();
}
}

输出

-ERR "未找到原始命令!

成功

请帮助我,fs_cli 位于“/usr/local/freeswitch/bin/”位置我在我的工作区目录中创建了一个符号链接。

4

1 回答 1

0

为什么不使用ESL 客户端?它应该提供更多选项,并且发起呼叫将没有问题。

关于您的特定问题,您的程序似乎试图在 shell 中执行“originate”命令,而不是 ./fs_cli。可能它需要更多的 Java 文档阅读:)

于 2013-10-09T11:02:57.063 回答