我正在处理CRON或其他一些外部事件触发操作,该操作应该使用FreeSwitch进行调用并播放声音文件。我想我必须使用入站事件套接字模式。
当使用出站模式(由来电触发)时,我可以播放文件,因为所有DialPlanTools都可用。对于入站模式,只有有限数量的命令mod_socket可用,而playback
不是其中之一。我还打算使用say
,record
,read
以及其他人。
我在单独的服务器中使用Outbound套接字模式来处理传入的调用,并且传递上下文似乎不是一件容易的事。我不能使用Outbound套接字,因为它不是持久的,FreeSwitch会在调用结束后立即断开连接。
答案 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