首先我想知道freeSwitch和Red5有什么区别?
由于我对red5有很好的工作经验,而且我使用Red5制作了许多使用流媒体视频/音频的应用程序.
但现在我无法理解如果Red5可以进行视频/音频会议或流式直播视频,那么FreeSwitch在会议或其他方面的用途是什么.
我想用PHP或rails或Django(Python)创建一个应用程序,用户可以通过参加会议录制他们的语音,并且在录制时,所有用户的语音将被广播给其他成员.
那么现在我真的想知道什么是正确的解决方案呢?
我有一台运行在一台服务器上的FS服务器,在一台远程服务器上,我有一个Node JS实例,它使用node_esl(用于FS的Node JS事件套接字库)控制它。
每次向服务器发送请求时,都会出现以下错误:
[WARNING] mod_event_socket.c:2603 IP ::ffff:192.168.59.3 Rejected by acl "loopback.auto"
Run Code Online (Sandbox Code Playgroud)
FS服务器具有2个接口:一个使用公共IP,第二个在专用网络(192.168.59.0/24)上。
我检查了acl.conf.xml文件和event_socket.con.xml,到目前为止,我看不到任何特别之处。
最后一件事:这是一个开发环境,FS正在VM(VirtualBox)中运行。用于VM的接口是192.168.59.103,而GW是192.168.59.3,因此,如果不是ACL问题(或两者都不是),则可能是NAT问题。
您对ACL配置应该有什么想法?
我在freeswitch上尝试以下场景:
b-leg手机是其他freeswitch的拨号方案如下:
<extension name="EarlyMedia">
<condition field="destination_number" expression="^[+]?[1]?<MY_NUMBER>">
<action application="pre_answer"/>
<action application="playback" data="/home/ubuntu/EARLY_MEDIA.wav"/>
<action application="sleep" data="1000"/>
<action application="answer"/>
<action application="playback" data="/home/ubuntu/CALL_MEDIA.wav"/>
<action application="sleep" data="1000"/>
</condition>
</extension>
Run Code Online (Sandbox Code Playgroud)
我发送给freeswitch的命令序列如下:
bgapi originate {ignore_early_media=true,bridge_early_media=false,origination_caller_id_number=sofia/external/<MY_FROM_NUMBER>@<MY_IP>,origination_channel_name=<MY_CHANNEL>,ringback=\'%(2000,4000,440,480)\'}sofia/external/<A-LEG NUMBER>@<MY_IP> &park()
bgapi originate {ignore_early_media=true,bridge_early_media=false,origination_caller_id_number=sofia/external/<MY_FROM_NUMBER>@<MY_IP>,origination_channel_name=<MY_CHANNEL>,ringback=\'%(2000,4000,440,480)\'}sofia/external/<B-LEG NUMBER>@<MY_IP> &park()
bgapi uuid_bridge <A-LEG UUID> <B-LEG UUID>
问题是即使使用ignore_early_media = true,bridge_early_media = false我听到A-LEG上的早期媒体
我正在尝试将视频轨道添加到流中,然后renegotiate()从JsSip 调用.但是,当我从调用者那里做它时工作正常,但是当我从被调用者那里做它时它不起作用(会话终止).我查看了Freeswitch日志,发现了下一行:
2017-05-25 07:41:02.177674 [NOTICE] switch_rtp.c:4591 Activating RTP video ICE: 1Xn5:7JJhZkbbu6MxTEpr 95.29.39.101:55140
2017-05-25 07:41:02.177674 [INFO] switch_core_media.c:3675 Activating video RTCP PORT 55140
2017-05-25 07:41:02.177674 [INFO] switch_core_media.c:3684 Skipping video RTCP ICE (Same as RTP)
2017-05-25 07:41:02.177674 [INFO] switch_core_media.c:6717 RE-SETTING video DTLS
2017-05-25 07:41:02.177674 [INFO] switch_rtp.c:3574 Activate RTP/RTCP video DTLS client
2017-05-25 07:41:02.177674 [INFO] switch_rtp.c:3723 Changing video DTLS state from OFF to HANDSHAKE
2017-05-25 07:41:02.187678 [WARNING] switch_rtp.c:970 sofia/internal/nn9s29br@2cjo9eh03237.invalid got audio stun binding response 487 Role Conflict
2017-05-25 07:41:02.187678 [WARNING] switch_rtp.c:982 audio …Run Code Online (Sandbox Code Playgroud) 如何使用Sipp将日志写入文件,我怎么知道每个调用返回状态,
我只想知道每个呼叫返回响应状态,例如200 ..
我在 Lua 中有一些代码可以应答呼叫,并在执行一系列操作后将呼叫桥接到新的分支。
操作时间从几秒钟到几分钟不等。
为了保留客户端,我需要播放声音,我遇到的问题是桥接呼叫后播放仍在继续。
具体问题是,如何停止播放调用的声音?
我的代码看起来像
session:answer()
session:execute("playback", '/some/file.wav')
.
.
.
local connectionString = '{bypass_media=true,origination_caller_id_number=555,destination_number=646}'
connectionString = connectionString .. 'sofia/external/192.168.0.1@1000'
session:execute('bridge', connectionString)
Run Code Online (Sandbox Code Playgroud) 我安装了一个默认开箱即用的FreeSwitch实例,但是当我尝试拨打内线电话(扩展到分机)时,它需要大约12秒才能建立呼叫,我可以听到铃声.
当我查看日志时,我几乎立即看到了连接请求但没有活动,10秒或更长时间后呼叫开始,我听到电话响了.
这是它有用的日志文件,请看130:08:07到13:08:17之间的10秒延迟.
freeswitch@vps-1170411-23979.manage.myhosting.com> 2015-09-26 13:07:41.591949 [CONSOLE] mod_voicemail.c:4091 Event Thread Started
2015-09-26 13:08:02.171949 [NOTICE] switch_channel.c:1075 New Channel sofia/internal/1001@168.144.85.16 [25229804-6471-11e5-9558-f1a7477c5309]
2015-09-26 13:08:07.331948 [INFO] mod_dialplan_xml.c:635 Processing BSmarter.CA <1001>->1000 in context default
2015-09-26 13:08:07.331948 [CRIT] mod_dptools.c:1670 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
2015-09-26 13:08:07.331948 [CRIT] mod_dptools.c:1670 Open /usr/local/freeswitch/conf/vars.xml and change the default_password.
2015-09-26 13:08:07.331948 [CRIT] mod_dptools.c:1670 Once changed type 'reloadxml' at the console.
2015-09-26 13:08:07.331948 [CRIT] mod_dptools.c:1670 WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING
2015-09-26 13:08:17.371961 [INFO] switch_ivr_async.c:3932 …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个用于一个目的的最小SIP代理:将请求重定向到另一个域.catch是我重定向到需要授权的域,因此我假设我需要重写一些SIP属性,因为SIP授权部分基于目标的域名.
我已经尝试发布302重定向以及简单地代理和更改每个SIP请求的值,但似乎没有人退出这个技巧.我正在使用node.js库(sip.js),并尝试了重定向和代理模块(https://github.com/kirm/sip.js/blob/master/doc/api.markdown).
是否有任何想法我需要修改SIP数据以将请求重定向到另一个域并启用针对该其他域的身份验证?
我有 FreeSwitch 的问题。我尝试了几个小时将我系统上的 FreeSwitch 服务器与另一个系统上的 FreeSwitch 服务器连接起来。但是,我想要的是与用户“abc@myip”一起调用用户“123@buddysIp”。我尝试的是向 acl.conf.xml 添加一个新的“列表”项
<list name="buddy" default="deny">
<node type="allow" cidr="hisip/32"/>
</list>
Run Code Online (Sandbox Code Playgroud)
我还尝试在 conf/dialplan/default 目录中添加一个扩展
<include>
<extension name="outbound_calls">
<condition field="destination_number" expression="^(.*)$">
<action application="bridge" data="sofia/gateway/buddy/$1"/>
</condition>
</extension>
Run Code Online (Sandbox Code Playgroud)
和他的网关,它存储在 conf/sip_profiles/buddy.xml 中,看起来像这样
<include>
<gateway name="buddy">
<param name="realm" value="hisip"/>
<param name="username" value="myuser"/>
<param name="password" value="mypw"/>
</gateway>
Run Code Online (Sandbox Code Playgroud)
我希望有人可以帮助我。也许我忘记了什么。我们在同一个网络中。如果您需要更多信息,请告诉我,谢谢。
这是我的通话记录:
INVITE sip:666@myip SIP/2.0
Via: SIP/2.0/UDP myip:51155;rport;branch=z9hG4bKPjyv0EW.k04poUhm7kdxHae5kheAypVEBc
Max-Forwards: 70
From: "me" <sip:1001@myip>;tag=Hd47q6ldQvMGLJO5RcMsO4AJQwWmRU28
To: <sip:666@myip>
Contact: "me" <sip:1001@myip:51155;ob>
Call-ID: WW8ZDSQvHKuKTSjTJTX.hiefO6liAh7W
CSeq: 24074 INVITE
Allow: PRACK, INVITE, ACK, BYE, CANCEL, UPDATE, INFO, SUBSCRIBE, NOTIFY, REFER, …Run Code Online (Sandbox Code Playgroud) 我有一个在一台服务器上工作的 freeswitch,通话工作正常。但现在我想记录每一个特定格式的调用,比如我已经尝试过使用“record_session”应用程序的 .wav 或 .gsm。录制会话应用程序
录音电话的申请是正确的吗?
如果是,那么请建议我举一些例子,如果不是,那么也建议我其他应用程序。
freeswitch ×10
sip ×3
voip ×3
node.js ×2
acl ×1
asterisk ×1
audio ×1
ice ×1
lua ×1
playback ×1
red5 ×1
sdp ×1
sip-server ×1
virtualbox ×1
webrtc ×1