在使用入站套接字模式进行呼叫后,是否可以将音频播放到线路?

时间:2012-08-06 13:57:41

标签: ruby telephony freeswitch

我正在处理CRON或其他一些外部事件触发操作,该操作应该使用FreeSwitch进行调用并播放声音文件。我想我必须使用入站事件套接字模式。

当使用出站模式(由来电触发)时,我可以播放文件,因为所有DialPlanTools都可用。对于入站模式,只有有限数量的命令mod_socket可用,而playback不是其中之一。我还打算使用sayrecordread以及其他人。

我在单独的服务器中使用Outbound套接字模式来处理传入的调用,并且传递上下文似乎不是一件容易的事。我不能使用Outbound套接字,因为它不是持久的,FreeSwitch会在调用结束后立即断开连接。

3 个答案:

答案 0 :(得分:1)

我猜你错过了“完整”参数: http://wiki.freeswitch.org/wiki/Event_socket_outbound

答案 1 :(得分:0)

Freeswitch很棘手。 Stanislav Sinyagin已经建议uuid_broadcast,但它没有单独行动。您需要立即添加另一个命令(uuid_phone_event)才能工作。整体代码如下:

originate sofia/external/sip:+<phone_number_here>@<freeswitch_ip_here> &park
# wait for remote side to pick up the call
uuid_broadcast <uuid_from_originate> speak::cepstral|david|'Some text in single quotes here' aleg
uuid_phone_event <uuid_from_originate>

uuid_broadcast <uuid_from_originate> playback::'<absolute_path_to_mp3_or_wav>' aleg
uuid_phone_event <uuid_from_originate>

sched_hangup +1 <uuid_from_originate>

FS wiki中uuid_phone_event命令的文档少于一些,我在fs_cli中意外地发现了它。 是的,您需要另一个入站套接字连接来监视事件(至少没有Ruby库支持侦听服务器生成的事件并在同一套接字连接上发出命令)。

答案 2 :(得分:0)

你有没有尝试过:

uuid_displace call_uuid start / path / to / file