2012-08-06 33 views
0

我正在研究一个CRON或其他外部事件触发的动作,该动作应该可以拨打电话并使用FreeSwitch播放声音文件。我想我必须使用入站事件套接字模式。使用入站套接字模式进行呼叫后,是否可以将音频播放到线路上?

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

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

回答

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维基uuid_phone_event命令没有文档有点少,我已经无意中发现它fs_cli。 是的,您需要另一个入站套接字连接来监视事件(至少没有Ruby库支持监听服务器生成的事件并在同一个套接字连接上发出命令)。

1

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

+0

我猜你错过了,我使用入站事件插座。 在出站模式下使用'full'需要实现应用程序级事件分派器,这不是我想要关注的。 – 2012-08-07 05:15:05

+1

是的,对,忽略了。尽管如此,我还是不太明白你想要达到的目标。你可以很容易地找到我在Skype,会很高兴谈话。 – 2012-08-07 20:54:13

+0

将增加更多的细节问题。 – 2012-08-08 11:35:35

0

你尝试:

uuid_displace call_uuid开始/路径/到/文件

相关问题