Отправить Sip сообщение через звездочку fastagi
Я могу ретранслировать сообщения, используя dialplan. Эта команда отправляет сообщение, но я не могу запустить его с помощью fastagi(Java)
DialPlan
exten => _X.,n,MessageSend(${ACTUALTO},${MESSAGE(from)})
FastAGI
public void service(AgiRequest ar, AgiChannel ac) throws AgiException {
System.out.println(ac.getFullVariable("${MESSAGE(body)}"));
System.out.println(ac.getFullVariable("${MESSAGE(to)}"));
System.out.println(ac.getFullVariable("${MESSAGE(from)}"));
System.out.println(ac.getFullVariable("${CUT(MESSAGE(to),@,1)}"));
//Correct values are show from above printlns
ac.exec("MessageSend(${CUT(MESSAGE(to),@,1)},${MESSAGE(from)})");
}
Последняя строка приводит к предупреждению в /var/asterisk/messages
ПРЕДУПРЕЖДЕНИЕ [2287][C-00000000] res_agi.c: не удалось найти приложение (MessageSend(${CUT(MESSAGE(to),@,1)})
2 ответа
Решение
Разобрался, вот как это делается в фастаг
ac.exec("MessageSend","sip:100,<sip:102@192.168.1.100:5080>");
Документация для MessageSend https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+Application_MessageSend
Пока сообщение ожидается. Там нет команды AGI, как это
Проверьте
asterisk -rx "core show application like message"
если нашел, попробуй сделать
ac.exec("MessageSend \"${CUT(MESSAGE(to),@,1)},${MESSAGE(from)})\"");
Для получения дополнительной информации проверьте спецификацию