1

我正在处理 CRON 或其他一些外部事件触发的操作,它应该使用 FreeSwitch 拨打电话并播放声音文件。我想我必须为此使用入站事件套接字模式。

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

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

4

3 回答 3

1

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

于 2012-08-06T20:15:33.970 回答
1

自由切换很棘手。斯坦尼斯拉夫·辛亚金( 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 库支持侦听服务器生成的事件并在同一套接字连接上发出命令)。

于 2012-08-09T13:42:53.193 回答
0

你试过了吗:

uuid_displace call_uuid start /path/to/file

于 2012-10-13T02:40:56.540 回答