最新要闻
- 看不上油改电 要不来看看电改油?3000公里不用充电
- 友商旗舰陆续发布 产品经理:小米13毫无压力
- 焦点热文:支付宝可以绑境外银行卡了:4步搞定 直接扫码
- 世界百事通!卖不动车后 特斯拉上海工厂最新现状:闲下来了
- 天天速看:激光投影成了香饽饽!第三季度市场出货量17.5万台
- 苹果感受下!宋紫薇道出环保真谛:都用一套充电器才是真环保
- 直播两大奇观上演:火星冲日巧遇火星伴月 下次这么亮得等2033年
- 年薪90万 却起诉公司太无聊:每天上班只能摸鱼
- 喜大普奔!欧盟要求统一使用Type-C时间确定:苹果iPhone必须要换USB-C
- 被批沉闷 影迷吐槽矫情!《阿凡达2》首映后好评率超95% 首选必看IMAX 3D版
- 热点!卢伟冰:电竞手机注定要消亡
- 既是口罩又能降噪听歌!戴森发布空气净化耳机Dyson Zone:中国网友狂吐槽
- 天天快报!镜头可伸缩!传音发布Tecno Phantom X2系列新机
- SK海力士研发全球最快内存:超越DDR5-4800 80%!
- 环球短讯!小米13多次被偷跑 法务“好心”提醒:可判3-10年
- 12代i7售价过万!传音推出Tecno MegaBook S1笔记本
手机
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
- 警方通报辅警执法直播中被撞飞:犯罪嫌疑人已投案
- 男子被关545天申国赔:获赔18万多 驳回精神抚慰金
- 3天内26名本土感染者,辽宁确诊人数已超安徽
- 广西柳州一男子因纠纷杀害三人后自首
- 洱海坠机4名机组人员被批准为烈士 数千干部群众悼念
家电
今日最新!FreeSWITCH学习笔记:系统架构
本文更新于2022-12-09,使用FreeSWITCH 1.10.7。
目录- 目录结构
- 命令行
- freeswitch
- fs_cli
- 端口
- 日志
- 信号
- 数据库
- core.db
- sofia_reg_PROFILE.db
- 接口
- 拨号计划
- 呼叫字符串
- 挂机原因
- Channel状态机
- 事件
- 媒体协商
官方帮助文档:https://freeswitch.org/confluence/
(资料图片)
说明:下文中,部分大写为自定义变量,根据实际情况填写。使用[]
引起表示内容可选,|
表示使用左侧或右侧内容,...
表示重复之前内容。
目录结构
在Linux下的默认安装路径为/usr/local/freeswitch,在Windows下的默认安装路径为C:\Program Files\FreeSWITCH。
- bin:可执行程序目录。
- freeswitch:服务器。
- fs_cli:客户端。
- fs_encode:将声音文件从一种编码转换到另一种编码。
- fsxs:编译模块的辅助工具。不用Makefile也可编译,意味着不用源代码环境也可编译模块。
- tone2wav:从一个TGML标记语言描述文件生成声音文件。
- conf:配置文件目录。
- autoload_configs:自动加载的模块的配置文件的目录。
- *.conf.xml:一般每个模块一个配置文件,文件名格式为“不包含mod_的模块名.conf.xml”。
- chatplan:聊天计划的配置文件的目录。
- dialplan:拨号计划的配置文件的目录。
- default.xml:默认Context,一般用于内部注册用户路由。
- public.xml:一般用于外部来话路由。
- directory:用户目录。支持多个域(Domain),每个域可以写到一个XML文件中。
- default:默认域的SIP用户的配置目录。
- *.xml:默认域的SIP用户,每个用户一个文件,文件名为用户名,依次为1000~1019。
- default.xml:默认域。
- default:默认域的SIP用户的配置目录。
- freeswitch.xml:主配置文件,载入其他配置文件。
- ivr_menus:IVR菜单配置目录。
- jingle_profiles:连接Google Talk的相关配置的目录。
- lang:多语言支持的配置目录。
- en:英语。
- fr:法语。
- mrcp_profiles:MRCP的相关配置的目录,用于跟第三方语音合成和语音识别系统对接。
- vestec-mrcp-v1.xml:Vestec支持MRCP的V1版本协议(RTSP)的配置。
- sip_profiles:SIP配置文件目录。一般每个文件描述一个Profile。
- external.xml:一般用于外部网关。
- internal.xml:一般用于本地用户。
- skinny_profiles:思科SCCP协议话机的配置文件目录。
- vars.xml:定义一些全局变量。
- autoload_configs:自动加载的模块的配置文件的目录。
- db:数据库(sqlite)目录。
- core.db:核心数据库。记录系统的接口(interfaces)、任务(tasks)以及当前的通道(channels)、通话(calls)等实时数据。
- sofia_reg_*.db:SIP数据库。每个Profile一个文件。
- grammar:语法文件目录,用于ASR。
- htdocs:HTTP Server根目录。
- include:头文件目录。
- lib:库文件目录。
- libfreeswitch.so
- log:日志文件及CDR话单目录。
- cdr-csv:CSV话单目录。
- Master.csv:话单汇总文件。轮替的文件加上.2006-01-02-15-04-05格式的后缀。
- *.csv:每个独立分机一个话单文件。轮替的文件加上.2006-01-02-15-04-05格式的后缀。
- cdr-pg-csv:话单写入ProstgreSQL失败时保存的本地文件话单目录。
- freeswitch.log:日志文件。
- freeswitch.xml.fsxml:完整的XML文档的镜像。
- xml_cdr:XML话单目录。当话单POST请求失败时也会将话单保存至此。
- cdr-csv:CSV话单目录。
- mod:可加载的模块目录。
- recordings:录音文件目录。record应用程序默认的存放路径。
- run:运行目录。
- freeswitch.pid:存放FreeSWITCH运行时的PID。
- scripts:嵌入式语言写的脚本的目录。lua、luarun、jsrun等应用程序默认的查找路径。
- sounds:声音文件目录。playback应用程序默认的查找路径。
- en:英语提示音文件目录。
- us:美式英语提示音文件目录。
- callie:Callie(人名)录制的嗓音文件目录。每个子目录为某一类声音文件的目录。
- ascii:ASCII字符提示音目录。每个子目录为某一采样率(Hz)的声音文件目录。
- 8000:8000Hz语音的目录。
- base256
- conference
- currency
- digits:数字语音的目录。
- directory
- ivr:IVR提示音目录。
- misc
- phonetic-ascii
- time
- voicemail
- zrtp
- ascii:ASCII字符提示音目录。每个子目录为某一采样率(Hz)的声音文件目录。
- callie:Callie(人名)录制的嗓音文件目录。每个子目录为某一类声音文件的目录。
- us:美式英语提示音文件目录。
- music:MOH保持音乐目录。
- en:英语提示音文件目录。
- storage:语音信箱的录音文件及从其他HTTP服务器下载的语音文件缓存目录。
命令行
freeswitch
freeswitch可使用以下命令行选项:
- -c:启动到控制台,默认。
- -core:出错时进行内核转储。
- -g GROUP:启动进程的系统用户组。
- -h:查看帮助。
- -heavy-timer:更精确的时钟。可能会更精确,但对系统要求更高。
- -help:查看帮助。
- -lp:开启低优先级设置。
- -nc:启动到后台模式,没有控制台。
- -ncwait:后台模式,等待系统完全初始化完毕之后再退出父进程,隐含-nc选项。
- -nf:不允许fork子进程。
- -nocal:关闭时钟核准。FreeSWITCH理想的运行环境是1000Hz的内核时钟。如果你的内核时钟小于1000Hz或在虚拟机上,可以尝试关闭该选项。
- -nonat:如果路由器支持uPnP或NAT-PMP,则FreeSWITCH可以自动解决NAT穿透问题。如果路由器不支持,则该选项可以使启动更快。
- -nort:关闭实时时钟。
- -nosql:不使用SQL,show channels类的命令将不能显示结果。
- -np:开启普通优先级设置。
- -rp:开启高优先级(实时)设置。
- -stop:关闭FreeSWITCH,它会在run目录中查找PID文件。
- -u USER:启动进程的系统用户。
- -vg:在valgrind下运行,调试内存泄露时使用。
- -version:查看版本信息。
以及:
- -base DIR:指定其他的基准目录,在配置文件中使用$${base}。
- -certs DIR:指定其他SSL证书目录。
- -conf DIR:指定其他的配置文件所在目录,需与-log、-db合用。
- -db DIR:指定其他数据库目录。
- -grammar DIR:指定其他语法目录。
- -htdocs DIR:指定其他HTTP根目录。
- -log DIR:指定其他的日志目录。
- -mod DIR:指定其他模块目录。
- -recordings DIR:指定其他录音目录。
- -run DIR:指定其他存放PID文件的运行目录。
- -scripts DIR:指定其他脚本目录。
- -sounds DIR:指定其他声音文件目录。
- -storage DIR:指定其他存储目录(语音信箱等)。
- -temp DIR:指定其他临时文件目录。
fs_cli
配置文件为~/.fs_cli_conf。
- -P PORT:连接的端口。
- -x API [ARG[ ...]]:执行API后退出。
进入控制台可执行以下命令:
- /bye:退出。等同于Ctrl+D。
- /event plain|json|xml EVENTTYPE [SUBCLASS]:订阅事件。
- /exit:退出。等同于Ctrl+D。
- /filter:过滤事件。
- /help:查看帮助。
- /log LEVEL:设置日志级别。
- /nixevent:除了特定一种外,开启所有事件。
- /noevents:关闭事件接收。
- /nolog:关闭日志。
- /quit:退出。等同于Ctrl+D。
端口
- TCP 5060:SIP internal默认端口。
- TCP 5080:SIP external默认端口。
- TCP 8021:Event Socket默认端口。
- UDP 5060:SIP internal默认端口。
- UDP 5080:SIP external默认端口。
- TCP 8080:FreeSWITCH Portal默认端口。
日志
日志级别可使用数值或字符串表示。数值越大显示越详细,字符串不区分大小写:
- 0 - EMERG/CONSOLE
- 1 - ALERT
- 2 - CRIT
- 3 - ERR
- 4 - WARNING
- 5 - NOTICE
- 6 - INFO
- 7 - DEBUG
信号
- SIGHUP:重新解析全局变量,并执行日志轮转等其它事情。
数据库
core.db
show
命令的大部分内容基于这些表。
包含的表有:
- aliases:别名表,用于存储命令行别名。
- basic_calls:一个视图,基于channels和calls表,提供基本的呼叫信息。
- calls:呼叫表,在bridge的呼叫中,用于关联Channel表中的两条腿。
- channels:存储所有当前的Channel。
- complete:存储所有Tab Complete数据。
- detailed_calls:一个视图,基于channels和calls,提供详细的呼叫信息。
- interfaces:存储所有的Interface。
- nat:存储当前的NAT映射关系。
- recovery:在使用系统恢复功能时,该表存储所有呼叫的详细信息。
- registrations:存储注册用户的信息。与sofia_reg_PROFILE.db的sip_registrations表中有些数据是重复的。由于不止SIP用户需要注册,其它模块的用户也可能需要注册,此处存储的是统一的注册信息。
- tasks:当前的任务表,如heartbeat(心跳)、检测IP地址变化等。
sofia_reg_PROFILE.db
每个Profile都使用一个单独的数据库(PROFILE替换为实际的Profile名字)。
包含的表有:
- sip_authentication:SIP认证相关。
- sip_dialogs:SIP对话相关。
- sip_presence:SIP呈现相关。
- sip_registrations:SIP用户的注册信息。
- sip_shared_appearance_dialogs:SIP SLA相关,记录当前的Dialog。
- sip_shared_appearance_subscriptions:SIP SLA相关,记录订阅信息。
- sip_subscriptions:SIP订阅相关。
接口
FreeSWITCH在核心(Core)中提供了很多抽象的接口,这些接口对同类型的逻辑或功能实体进行了抽象,但没有具体实现,具体的实现一般由外围的模块负责,核心层通过回调(钩子)方式调用具体的实现代码。
- 应用程序(Application,APP):mod_dptools模块提供了系统中大部分的APP。
- 语音识别及语音合成(ASR/TTS):支持语音自动识别(ASR)及文本/语音转换(TTS)。
- 聊天计划(Chatplan):类似Dialplan,不同的是Chatplan主要对文本消息进行路由。它是在mod_sms中实现的。
- 编解码器(Codec):G711(即PCM)编解码是在核心中实现的,其他的编解码一般都由独立的模块实现。
- 数据库(DB):在核心中实现。
- 拨号计划(Dialplan):Dialplan主要提供查找电话路由的功能,默认的Dialplan由mod_dialplan_xml提供。
- 嵌入式语言(Embeded Language):通过swig可支持多种嵌入式语言进而控制呼叫流程。
- 终点(Endpoint):Endpoint是终结FreeSWITCH的地方,也就是说在往外走就超出FreeSWITCH的控制。它主要为实现一些跟通话相关的互联协议的接口,如SIP、H323、Google Talk等。
- 事件消费者(Event Consumer):通过Event Socket可以使用任何其他语音(只要支持Socket),通过TCP Socket可控制呼叫流程、扩展FreeSWITCH的功能。
- 格式、文件接口(Format,File Interface):支持不同格式的声音文件回放、录音。
- 命令接口(FSAPI):即FreeSWITCH API,简称API,它是一种对外的命令接口,它的原理非常简单——输入一个简单的字符串(以空格分隔),该字符串由模块的内部函数处理,然后得到一个输出。系统中大部分的API都是由mod_commands模块提供。
- 日志(Logger):日志可以写到控制台、日志文件、系统日志(syslog)以及远程的日志服务器。实现日志功能的模块有mod_console、mod_logfile、mod_syslog等。
- 分词短语(Say)
- 定时器(Timer):实时的话音通话需要非常准确的定时器,FreeSWITCH最理想的工作时钟频率是1000Hz。
- XML接口(XML Interface):对XML的解析和访问是在核心中实现的,但对XML的应用和扩展都是在外部模块中完成的。
拨号计划
系统支持的拨号计划(Dialplan)及对应的模块:
- asterisk:mod_dialplan_asterisk。
- enum:mod_enum。
- inline:mod_dptools。
- LUA:mod_lua。
- XML:mod_dialplan_xml。
呼叫字符串
呼叫字符串格式为(此处使用<>
引起表示内容可选,/
表示使用左侧或右侧内容,...
表示重复之前内容。):
<{GLOBALVAR=VALUE<,...>}...><[LOVALVAR=VALUE<,...>]>DIALSTR<,/|...>
{}
括起的通道变量是全局的,作用于呼叫字符串中每一条腿;[]
括起的通道变量为局部通道变量,只作用于呼叫字符串中靠近它的某一条腿。通道变量VALUE中的逗号需要使用\
转义,或在VALUE的开头使用^^C
来将分隔符替换为指定的字符C。DIALSTR使用,
隔开表示同振,使用|
隔开表示顺振。
DIALSTR可为(一般来说,每种Endpoint都会提供相应的呼叫字符串,每一种呼叫字符串的类型都属于一个Endpoint Interface):
- freetdm/SPAN/CHANNEL/USERNAME:mod_freetdm呼叫字符串。CHANNEL为a表示从小到大选择一个空闲时隙,为A表示从大到小选择一个空闲时隙。
- h323/USERNAME@IP:mod_h323的h323呼叫字符串。
- loopback/USERNAME:loopback呼叫字符串。
- opal/h323:USERNAME@IP:mod_opal的h323呼叫字符串。
- rtmp/UUID/USERNAME@IP[:PORT]:rtmp呼叫字符串。
- sofia/PROFILE/[sip:]USERNAME[@IP[:PORT]]:指定PROFILE的用户。
- sofia/gateway/GATEWAY/USERNAME:网关用户。
- user/USERNAME[@DOMAIN]:本地用户。
示例:
{origination_caller_id_name=test}{effective_caller_id_name=haha}user/1000{origination_caller_id_name=test}{effective_caller_id_name=haha}user/1000|sofia/internal/1001{origination_caller_id_name=test}[effective_caller_id_name=haha]user/1000,[effective_caller_id_name=hehe]sofia/internal/1001
挂机原因
官方文档见:https://freeswitch.org/confluence/display/FREESWITCH/Hangup+Cause+Code+Table
挂机原因有:
- CALL_REJECTED
- INVALID_GATEWAY
- NO_ROUTE_DESTINATION
- NORMAL_TEMPORARY_FAILURE
- SUCCESS
- USER_BUSY
Channel状态机
HuntingNEW --> INIT --> ROUTING ---------> EXECUTE --> HANAGUP --> REPORTIG --> DESTROY ^ | | Transfer | +------------------+
再Hunting时,只解析Dialplan,并不执行任何Action,而是将所有满足条件的Action都放到一个列表中,待呼叫流程进行到EXECUTE阶段时,再依次执行列表中的Action。
事件
- API:执行API。
- BACKGROUND_JOB:使用bgapi后台API执行完成。
- CHANNEL_ANSWER:Channel被应答。两条腿均会产生该事件。
- CHANNEL_BRIDGE:Channel与另一个Channel桥接成功。只在主动发起bridge的那条腿上产生该事件。
- CHANNEL_CALLSTATE
- CHANNEL_CREATE:来话或去话产生。
- CHANNEL_DESTROY:Channel完全释放。
- CHANNEL_EXECUTE:一个APP开始执行。
- CHANNEL_EXECUTE_COMPLETE:一个APP执行完成。
- CHANNEL_HANGUP:挂机。
- CHANNEL_HANGUP_COMPLETE:挂机完成。信息更详细。
- CHANNEL_PARK:通话挂起。
- CHANNEL_PROGRESS:收到100或180消息。
- CHANNEL_PROGRESS_MEDIA:在应答之前收到早期媒体,如收到183消息。
- CUSTOM:自定义。已约定的Subclass有:
- conference::maintenance
- fifo:info
- sofia::register
- sofia::unregister
- DTMF:双音多频按键信息。
- HEARTBEAT:心跳。每20秒产生一次。
- MODULE_LOAD:模块加载。
- MODULE_UNLOAD:模块卸载。
- PLAYBACK_START:放音开始。
- PLAYBACK_STOP:放音结束。
- RECORD_START:录音开始。
- RECORD_STOP:录音结束。
- SHUTDOWN:系统关闭。
- STARTUP:系统启动。
Channel事件发生顺序:
- CHANNEL_CREATE
- CHANNEL_PROGRESS
- CHANNEL_PROGRESS_MEDIA
- CHANNEL_ANSWER
- CHANNEL_BRIDGE
- CHANNEL_EXECUTE
- CHANNEL_EXECUTE_COMPLETE
- CHANNEL_HANGUP
- CHANNEL_HANGUP_COMPLETE
- CHANNEL_DESTROY
媒体协商
在FreeSWITCH中,编码名称的格式为CODEC@HZh@PTIMEi
。h代表Hz,即采样频率;i代表ptime,即打包间隔。CODEC、HZ、PTIME为实际的值。
FreeSWITCH支持的协商策略有:
- generous(普通的):优先考虑客户端的编码,默认的协商策略。
- greedy(贪婪的):优先考虑服务器的编码。
- scorooge(吝啬的):优先考虑服务器的编码,且强制使用服务器的采样率。
-
今日最新!FreeSWITCH学习笔记:系统架构
本文更新于2022-12-09,使用FreeSWITCH1 10 7。官方帮助文档:https: freeswitch org confluence...
来源: 今日最新!FreeSWITCH学习笔记:系统架构
Redis主从复制,哨兵模式和集群模式
漏洞预警:宝塔面板疑似出现高危漏洞
看不上油改电 要不来看看电改油?3000公里不用充电
友商旗舰陆续发布 产品经理:小米13毫无压力
焦点热文:支付宝可以绑境外银行卡了:4步搞定 直接扫码
世界快消息!SpringBoot中统一日志管理
MAUI新生3.5-深入理解XAML:行为Behavior
动态焦点:人工智能ChatGPT被玩坏了
世界百事通!卖不动车后 特斯拉上海工厂最新现状:闲下来了
天天速看:激光投影成了香饽饽!第三季度市场出货量17.5万台
苹果感受下!宋紫薇道出环保真谛:都用一套充电器才是真环保
直播两大奇观上演:火星冲日巧遇火星伴月 下次这么亮得等2033年
年薪90万 却起诉公司太无聊:每天上班只能摸鱼
全球今热点:JIT 即时编译 (史上最全)
喜大普奔!欧盟要求统一使用Type-C时间确定:苹果iPhone必须要换USB-C
被批沉闷 影迷吐槽矫情!《阿凡达2》首映后好评率超95% 首选必看IMAX 3D版
热点!卢伟冰:电竞手机注定要消亡
既是口罩又能降噪听歌!戴森发布空气净化耳机Dyson Zone:中国网友狂吐槽
天天快报!镜头可伸缩!传音发布Tecno Phantom X2系列新机
SK海力士研发全球最快内存:超越DDR5-4800 80%!
环球短讯!小米13多次被偷跑 法务“好心”提醒:可判3-10年
12代i7售价过万!传音推出Tecno MegaBook S1笔记本
看点:印度推首款黄金ATM机 插卡取金币的机子你用过吗?
【全球时快讯】俩孩童遇电梯迫降从16楼坠至1楼:万幸平安无事
排面!小刀电动车成芜湖官方指定用车:渔政、城管都在用
Model-Agnostic Meta-Learning (MAML) 理解
当前焦点!用HTML CSS 实现简洁美观的时间线(历史年表)
世界快资讯丨Win7/8.1再见了!前两大浏览器Chrome和Edge最新版均已放弃支持
环球关注:纯洁的曲线之美:索泰发布RTX 40 AMP月白显卡
环球即时:绿源、松果牌部分电动自行车召回 原因均是后尾灯反光
记录--微信小程序获取用户信息(附代码、流程图)
天天快看:13 Javac将源码编译为字节码的过程
每日精选:数据安全新战场,EasyMR为企业筑起“安全防线”
环球通讯!江淮大众退出历史!大众安徽首台预量产车下线:MEB纯电平台、对标Model Y
ThinkPad X1 Carbon 30周年纪念版开卖:18999元!只有300台
环球报道:可换京东100元充值卡:微软奖励积分计划国区上线
环球热消息:没钱买车了?乘联会公布11月零售销量:14年来首次“旺季”环比下滑
世界热点评!7399元大杀器?AMD RX 7900 XT显卡性能跑分首曝:不及期望
热讯:AI绘画,画你心中所想!【飞链云版图】,圆你心中所梦!
小米13 Pro旷野绿至尊套装公布:一整套全是绿的!
【天天时快讯】利润减少18亿!宗庆后承诺娃哈哈3万员工工资不降年终奖照发:网友直呼良心
焦点资讯:启动性能提升50%!Win11安卓子系统升级Android 13
每日看点!宁德时代拿下本田汽车超级大单 2030年前供货123GWh电池
全球速读:ChatGPT国产平替出现了:APP商店就能下载 还可给AI加人设
速看:【智能PDU】智慧网络远程电源开关管理系统
全球短讯!Python中12个常用模块的使用教程
你知道“智慧城市”是什么吗?
前沿资讯!NOIP2022第二题喵了个喵题解与SPJ
视点!libmongoc库和libbson库的使用
iQOO 11性能猛挤牙膏:130万跑分、内存秒变24GB
一块屏幕同时两种刷新率!iQOO 11支持LTPO4.0+分区高刷
最新快讯!领124元神券!蒙牛Nopa燃型低脂纤维奶昔牛乳大促:10瓶35元
《阿凡达2》首映后被批了 影评人:剧情没第一部好看!全片冗长、台词沉闷
Redis这个内存回收,确实有点牛逼!!!
Azure Devops 流水线任务插件开发教程 (1/3) —— Quick Start
滚动:一行代码 网页变灰
百度爱番番基于图技术、流式计算的实时CDP建设实践
世界微速讯:PDF转Word完全指南:3大方法满足各种场景!
Win10无Internet访问权限怎么解决?无Internet访问权限的原因
iphone11大小尺寸是多少?苹果iPhone11和iPhone13的区别是什么?
京东怎么分期付款?京东怎么看一共花了多少钱?
photoshopcs4序列号有哪些?pscs4的永久序列号分享
【天天报资讯】云边协同下的统一应用管理: 基于 OpenYurt 和 KubeVela 的解决方案
苹果手机显示iPhone已停用怎么办?iphone已停用是什么意思?
全球速读:行为管理(锐捷无线篇)
环球热议:app提交上架最新流程 ios
热讯:RFID读写器与西门子PLC 1200的tcp通信
C++的语法 学习笔记1
今日讯!聊聊与前端工程师天然互补的 Serverless
片长190分钟超130万人想看!《阿凡达2:水之道》总票房突破3000万
最新消息:Nature最新:熊去氧胆酸可预防新冠、不怕病毒变异
世界热门:骁龙8 Gen2价格屠夫!moto X40系列定档12月15日
环球讯息:南京一地铁口被大量共享单车堵死 密密麻麻场面壮观:大家应文明骑行规范停车
今日最新!家长注意!羽绒服会让儿童安全座椅失效:有致命危险
世界热门:CVE-2015-4852 Weblogic T3 反序列化分析
全球实时:新能源车爆发 锂矿价格翻10倍 宁德宜春等多城提出打造“锂都”
资讯:降多少你会买?消息称RTX 4080要降价几千 首发用户将受伤 会有赔偿吗?
走后门上班?马斯克两位堂兄弟入职推特 成全职员工
天天热点!一张照片立即变视频主角 “AI换脸”惹上事 女子获赔5000元
东北零下20度 男子雪碧放车里一晚被冻炸:按键都不好使了
环球视点!厉害!韩国所有人将至少年轻1-2岁:网友看完方法直呼意外
天天微资讯!30年老司机成功预判避免车祸 当事人:本能反应 预感到它们刹不住
每日看点!日本最好大学东京大学2022年校花冠军出炉引网友热议 甜美可爱的学霸妹子
视讯!OpenGL 透明度
大数据量、高并发业务怎么优化?(一)
每日简讯:第一次看到水冷的RX 7900 XTX:漂亮得不像话
环球微头条丨新一代显卡危机 《传送门》光追性能实测:卡成1帧PPT、RTX 4090惨败
全球首款第二代骁龙8+2K直屏旗舰!iQOO 11今天发
一到冬天就黑屏!但是 大众好像根本就不打算管
天天快资讯:python中的函数进阶
实时焦点:C++入门级基础知识汇总
天天微资讯!Arc显卡也能战未来 Intel新驱动实测:性能提升真打鸡血
大中华区立功 消息称马斯克将任命朱晓彤特斯拉全球CEO
当前最新:JavaWeb三大组件(Servlet、Filter、Listener)
世界报道:蓝牙协议(HFP、HSP、A2DP、AVRCP)简介
大前端html基础学习04--文本溢出
热推荐:电动车生产基地杀到欧洲?比亚迪最新回应来了
天天日报丨无2D版!《阿凡达2》预售开启:平均票价68元 首映口碑好评爆棚
【世界新要闻】备受年轻人追捧的“网红餐厅”有多坑?不服不行