我正在尝试在IOS 上实现mod_verto(从iPhone调用到桌面).我正在使用Google的libjingle库用于RTC端,使用这个优秀的教程完成并运行.
如果我使用2个浏览器窗口(使用Verto Communicator)进行呼叫,则一切正常.
完全披露,我使用ws://不安全的websocket连接到FreeSwitch
这是我的JSONRPC日志:
发送登录请求:
{"jsonrpc":"2.0","method":"login","id":1,"params":{"login":"1000@MY-IP-ADDRESS","loginParams":{},"userVariables":{},"passwd":"1234","sessid":"53FB0781-B586-4CDA-98C6-558680663B46"}}
Run Code Online (Sandbox Code Playgroud)
登录响应:
{"jsonrpc":"2.0","id":1,"result":{"message":"logged in","sessid":"53FB0781-B586-4CDA-98C6-558680663B46"}}
Run Code Online (Sandbox Code Playgroud)
verto.invite(包括iPhone sdp):
{"jsonrpc":"2.0","method":"verto.invite","id":2,"params":{"dialogParams":{"remote_caller_id_number":"1008","useVideo":false,"useMic":"any","useStereo":false,"tag":"webcam","login":"1000@159.203.164.7","useCamera":"any","videoParams":{"minFrameRate":30,"minWidth":"1280","minHeight":"720"},"destination_number":"1008","screenShare":false,"caller_id_name":"FreeSWITCH User","caller_id_number":"1000","callID":"0CD433FC-A909-4DF2-BC46-0A4A94E9B800","remote_caller_id_name":"Outbound Call","useSpeak":"any"},"sessid":"53FB0781-B586-4CDA-98C6-558680663B46","sdp":"v=0\r\no=- 8564086442942257834 2 IN IP4 127.0.0.1\r\ns=-\r\nt=0 0\r\na=group:BUNDLE audio video\r\na=msid-semantic: WMS\r\nm=audio 58157 UDP\/TLS\/RTP\/SAVPF 111 103 104 9 102 0 8 106 105 13 127 126\r\nc=IN IP4 82.166.93.197\r\na=rtcp:52576 IN IP4 82.166.93.197\r\na=candidate:3168280865 1 udp 2122260223 11.0.0.244 58157 typ host generation 0\r\na=candidate:1260196625 1 udp 2122194687 10.134.172.254 58951 typ host generation 0\r\na=candidate:3168280865 2 udp …Run Code Online (Sandbox Code Playgroud) 我有一个条件,在我的 lua 脚本中我想使用枚举,对于成功,我可以给出 1,对于失败,我可以给出 0 我正在使用 lua 版本 5.2.4 任何人都可以帮助我如何使用我想使用的枚举枚举
elseif(cc_config_cmd == "DELETE" and file_found==1)then
api:executeString("callcenter_config queue unload " .. queue_name)
stream:write("1")
else
stream:write("0")
end
Run Code Online (Sandbox Code Playgroud) Asterisk具有Asterisk Manager接口(AMI)和Asterisk网关接口(AGI),使用它可以在Asterisk的某些事件中触发PHP脚本.使用相同的PHP脚本还可以指示Asterisk在呼叫/会议旁边做什么.FreeSWITCH中有与AMI和AGI的相似之处吗?
正如有人谁是很新的开源PBX项目,如Asterisk和FreeSWITCH,我与一些信息过载拼杀.已阅读Wiki上的基本FreeSWITCH文档,但仍然没有什么问题.由于我对术语不太熟悉,我将尝试使用近似值.
尝试创建FreeSWITCH的小/简约版本,需要在相当旧的笔记本电脑上运行(赛扬1GHz,512MB RAM,20GB硬盘,已经运行Debian"Wheezy"),并将其设置为6端口GSM-SIP/Jabber网关.因此,通过"小"和"简约",我的意思是没有绝对必要的模块/可选软件(例如,不需要IVR公告或Skype集成) - 以保持最小的内存占用,以及占用较少的硬盘空间.
粗略的想法是有6个GSM端口(通过'GSM开放模块',类似于chan_dongle)向公共电话网络,大约60个SIP扩展,并支持最多6个涉及GSM端口的呼叫,以及大约6个SIP-SIP呼叫(在此设置下,在PBX内).我已经读过GSMopen模块的CPU开销很低,所以我猜这是可能的.
我目前正在使用Freeswitch及其事件套接字库(通过mod事件套接字).例如:
from ESL import ESLconnection
cmd = 'uuid_kill %s' % active_call # active_call comes from a Django db and is unicode
con = ESLconnection(config.HOST, config.PORT, config.PWD)
if con.connected():
e = con.api(str(cmd))
else:
logging.error('Couldn\'t connect to Freeswitch Mod Event Socket')
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我不得不明确地con.api()使用str().没有它,调用将在以下堆栈跟踪中结束:
Traceback (most recent call last):
[...]
e = con.api(cmd)
File "/usr/lib64/python2.7/site-packages/ESL.py", line 87, in api
def api(*args): return apply(_ESL.ESLconnection_api, args)
TypeError: in method 'ESLconnection_api', argument 2 of type 'char const *'
Run Code Online (Sandbox Code Playgroud)
我不明白这个TypeError:这是什么意思? …
问题:我需要将Cepstral(tts引擎)安装到运行Debian 8的Freeswitch中。Freeswitch已经启动并正在运行,但是我需要从源代码构建它才能创建mod_cepstral模块。
当我运行make这是我得到的错误:
In file included from ./crypto/include/prng.h:17:0,
from ./crypto/include/crypto_kernel.h:50,
from ./include/srtp.h:53,
from srtp/srtp.c:46:
./crypto/include/aes_icm_ossl.h:66:20: error: field ‘ctx’ has incomplete type
EVP_CIPHER_CTX ctx;
^~~
In file included from srtp/srtp.c:50:0:
./crypto/include/aes_gcm_ossl.h:58:18: error: field ‘ctx’ has incomplete type
EVP_CIPHER_CTX ctx;
^~~
Makefile:646: recipe for target 'srtp.lo' failed
make[1]: *** [srtp.lo] Error 1
make[1]: Leaving directory '/usr/src/freeswitch/libs/srtp'
Makefile:3931: recipe for target 'libs/srtp/libsrtp.la' failed
make: *** [libs/srtp/libsrtp.la] Error 2
Run Code Online (Sandbox Code Playgroud)
我一直在互联网上寻找解决方案,但是我不是开发人员,这让我头疼。任何帮助,将不胜感激。
我已经安装了freeswitch,我正在关注这个
http://www.onlinesolution.co.nz/viewtopic.php?t=102
添加软电话用户.我已经连接了所以我可以测试拨打俄罗斯方块主题(9891)并且一切正常但是当我重新启动freeswitch它现在说
2012-07-19 11:25:37.882544 [警告] sofia_reg.c:1989无法找到用户[1000 @ MY_IP]您必须在目录中定义名为"MY_IP"的域,并添加id ="1000的用户"属性,您必须配置您的设备以使用其身份验证凭据中的正确域.
我不知道我改变了什么让它表现得与众不同.有人可以帮忙吗?
用户已连接到ipv6网络.SIP注册很好.但是当我从freeswitch命令行(fs_cli)调用该用户时,它显示错误,因为无法创建类型为[错误]的传出通道原因:[USER_NOT_REGISTERED] .it仅查找ip4配置文件.it不查看internal-ipv6轮廓
我正在尝试将视频轨道添加到流中,然后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) 我正在尝试使用 GKE(谷歌云管理的 kubernetes 集群)上的 freeswitch 迁移 voip 服务,以使该服务具有可扩展性。
我已经设法将 freeswitch 迁移到 docker 并让它运行。我需要打开大量端口以允许必要的流量。Kubernetes 服务似乎不允许打开那么多端口。
然后我尝试使用以下图像和 kubernetes 配置,但仍然无法联系 freeswitch 服务器。 https://github.com/sip-li/docker-freeswitch
我已经看到以下问题似乎说这是不可能的:https : //github.com/kubernetes/kubernetes/issues/23864
但我不是专家,所以我可能会误解,因此:
是否可以在可通过外部 IP 地址访问的 GKE 上运行 freeswitch 服务器?或者是否可以通过 GKE 上的 SIP 负载均衡器自动扩展和自动发现新 Pod?