2013-10-09 1 views
1

Я новичок в freeswitch, я попытался запустить команду в freeswitch из консоли fs_cli и работал нормально. теперь мое требование состоит в том, чтобы выполнить то же самое из приложения Java. Я попытался следующий кодКак выполнить FreeSWITCH (fs_cli) из 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/[email protected])\""); 
    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/местные/freeswitch/bin/"location Я создал символическую ссылку в своем каталоге рабочей области.

ответ

0

Почему вы не используете ESL client? Он должен предоставить гораздо больше вариантов, и возникновение вызова не будет проблемой.

Что касается вашей конкретной проблемы, похоже, что ваша программа пыталась выполнить команду «originate» в оболочке, а не ./fs_cli. Вероятно, ему нужно больше читать документацию по Java :)

+0

Спасибо, можете ли вы предложить мне класс ESL для вызова. Я нашел тот же самый синтаксис, чтобы инициировать вызов даже в esl-клиенте. предложите какое-то решение –

+0

Я не программист на Java. Вики Wiki FreeSWITCH предлагает несколько клиентских библиотек ESL, поэтому вам нужно их самостоятельно прорыть –

Смежные вопросы